Change item spawn probabilities
This commit is contained in:
parent
66d091c7fb
commit
2d67cdb3dd
12 changed files with 26 additions and 28 deletions
|
@ -2,7 +2,6 @@ package de.moritzruth.spigot_ttt.game.items
|
|||
|
||||
import de.moritzruth.spigot_ttt.game.GameManager
|
||||
import de.moritzruth.spigot_ttt.utils.ConfigurationFile
|
||||
import de.moritzruth.spigot_ttt.utils.Probability
|
||||
import de.moritzruth.spigot_ttt.utils.roundToCenter
|
||||
import org.bukkit.Location
|
||||
import java.util.*
|
||||
|
@ -27,8 +26,8 @@ object ItemSpawner {
|
|||
|
||||
fun spawnWeapons() {
|
||||
val spawningItems = mutableListOf<TTTItem<*>>()
|
||||
loop@ for (tttItem in ItemManager.ITEMS) {
|
||||
val count = Probability.values().indexOf(tttItem.spawnProbability) + 1
|
||||
for (tttItem in ItemManager.ITEMS) {
|
||||
val count = tttItem.spawnProbability?.multiplier ?: 0
|
||||
spawningItems.addAll(Collections.nCopies(count, tttItem))
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
package de.moritzruth.spigot_ttt.game.items
|
||||
|
||||
enum class SpawnProbability(val multiplier: Int) {
|
||||
VERY_LOW(1),
|
||||
LOW(4),
|
||||
NORMAL(10)
|
||||
}
|
|
@ -4,7 +4,6 @@ import com.comphenix.protocol.events.PacketListener
|
|||
import de.moritzruth.spigot_ttt.game.players.Role
|
||||
import de.moritzruth.spigot_ttt.game.players.TTTPlayer
|
||||
import de.moritzruth.spigot_ttt.plugin
|
||||
import de.moritzruth.spigot_ttt.utils.Probability
|
||||
import de.moritzruth.spigot_ttt.utils.applyMeta
|
||||
import de.moritzruth.spigot_ttt.utils.nextTick
|
||||
import org.bukkit.ChatColor
|
||||
|
@ -21,7 +20,7 @@ open class TTTItem<InstanceT: TTTItem.Instance>(
|
|||
val templateItemStack: ItemStack,
|
||||
val instanceType: KClass<out InstanceT>,
|
||||
val shopInfo: ShopInfo? = null,
|
||||
val spawnProbability: Probability? = null,
|
||||
val spawnProbability: SpawnProbability? = null,
|
||||
val disableDamage: Boolean = true,
|
||||
val removeInstanceOnDeath: Boolean = true
|
||||
) {
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package de.moritzruth.spigot_ttt.game.items.impl
|
||||
|
||||
import de.moritzruth.spigot_ttt.game.items.SpawnProbability
|
||||
import de.moritzruth.spigot_ttt.game.items.TTTItem
|
||||
import de.moritzruth.spigot_ttt.game.players.Role
|
||||
import de.moritzruth.spigot_ttt.game.players.roles
|
||||
import de.moritzruth.spigot_ttt.utils.Probability
|
||||
import de.moritzruth.spigot_ttt.utils.applyMeta
|
||||
import org.bukkit.ChatColor
|
||||
import org.bukkit.Material
|
||||
|
@ -15,7 +15,7 @@ object EnderPearl : TTTItem<EnderPearl.Instance>(
|
|||
templateItemStack = ItemStack(Material.ENDER_PEARL).applyMeta {
|
||||
setDisplayName("${ChatColor.DARK_GREEN}Enderperle")
|
||||
},
|
||||
spawnProbability = Probability.VERY_LOW,
|
||||
spawnProbability = SpawnProbability.VERY_LOW,
|
||||
shopInfo = ShopInfo(
|
||||
buyableBy = roles(Role.TRAITOR, Role.JACKAL, Role.DETECTIVE),
|
||||
price = 1
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package de.moritzruth.spigot_ttt.game.items.impl
|
||||
|
||||
import de.moritzruth.spigot_ttt.game.items.SpawnProbability
|
||||
import de.moritzruth.spigot_ttt.game.items.TTTItem
|
||||
import de.moritzruth.spigot_ttt.game.items.TTTItemListener
|
||||
import de.moritzruth.spigot_ttt.game.players.Role
|
||||
import de.moritzruth.spigot_ttt.game.players.roles
|
||||
import de.moritzruth.spigot_ttt.utils.Probability
|
||||
import de.moritzruth.spigot_ttt.utils.applyMeta
|
||||
import de.moritzruth.spigot_ttt.utils.applyTypedMeta
|
||||
import org.bukkit.ChatColor
|
||||
|
@ -21,7 +21,7 @@ import org.bukkit.potion.PotionType
|
|||
object HealingPotion: TTTItem<HealingPotion.Instance>(
|
||||
instanceType = Instance::class,
|
||||
type = Type.SPECIAL,
|
||||
spawnProbability = Probability.VERY_LOW,
|
||||
spawnProbability = SpawnProbability.VERY_LOW,
|
||||
templateItemStack = ItemStack(Material.POTION)
|
||||
.applyTypedMeta<PotionMeta> { basePotionData = PotionData(PotionType.INSTANT_HEAL, false, true) }
|
||||
.applyMeta {
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
package de.moritzruth.spigot_ttt.game.items.impl.weapons.guns
|
||||
|
||||
import de.moritzruth.spigot_ttt.Resourcepack
|
||||
import de.moritzruth.spigot_ttt.utils.Probability
|
||||
import de.moritzruth.spigot_ttt.game.items.SpawnProbability
|
||||
import de.moritzruth.spigot_ttt.utils.heartsToHealth
|
||||
import org.bukkit.ChatColor
|
||||
|
||||
object Deagle: Gun(
|
||||
type = Type.PISTOL_LIKE,
|
||||
instanceType = Instance::class,
|
||||
spawnProbability = Probability.NORMAL,
|
||||
spawnProbability = SpawnProbability.NORMAL,
|
||||
displayName = "${ChatColor.BLUE}${ChatColor.BOLD}Deagle",
|
||||
damage = heartsToHealth(3.0),
|
||||
cooldown = 1.4,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package de.moritzruth.spigot_ttt.game.items.impl.weapons.guns
|
||||
|
||||
import de.moritzruth.spigot_ttt.Resourcepack
|
||||
import de.moritzruth.spigot_ttt.utils.Probability
|
||||
import de.moritzruth.spigot_ttt.game.items.SpawnProbability
|
||||
import de.moritzruth.spigot_ttt.utils.heartsToHealth
|
||||
import org.bukkit.ChatColor
|
||||
|
||||
|
@ -10,7 +10,7 @@ object Glock: Gun(
|
|||
instanceType = Instance::class,
|
||||
displayName = "${ChatColor.YELLOW}${ChatColor.BOLD}Glock",
|
||||
damage = heartsToHealth(1.5),
|
||||
spawnProbability = Probability.NORMAL,
|
||||
spawnProbability = SpawnProbability.NORMAL,
|
||||
cooldown = 0.3,
|
||||
magazineSize = 20,
|
||||
reloadTime = 2.0,
|
||||
|
|
|
@ -7,7 +7,7 @@ import de.moritzruth.spigot_ttt.game.items.LoreHelper
|
|||
import de.moritzruth.spigot_ttt.game.items.TTTItem
|
||||
import de.moritzruth.spigot_ttt.game.players.DeathReason
|
||||
import de.moritzruth.spigot_ttt.game.players.TTTPlayer
|
||||
import de.moritzruth.spigot_ttt.utils.Probability
|
||||
import de.moritzruth.spigot_ttt.game.items.SpawnProbability
|
||||
import de.moritzruth.spigot_ttt.utils.applyMeta
|
||||
import de.moritzruth.spigot_ttt.utils.hideInfo
|
||||
import de.moritzruth.spigot_ttt.utils.startExpProgressTask
|
||||
|
@ -21,7 +21,7 @@ import kotlin.reflect.KClass
|
|||
abstract class Gun(
|
||||
type: Type,
|
||||
instanceType: KClass<out Instance>,
|
||||
spawnProbability: Probability? = null,
|
||||
spawnProbability: SpawnProbability? = null,
|
||||
shopInfo: ShopInfo? = null,
|
||||
material: Material,
|
||||
displayName: String,
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
package de.moritzruth.spigot_ttt.game.items.impl.weapons.guns
|
||||
|
||||
import de.moritzruth.spigot_ttt.Resourcepack
|
||||
import de.moritzruth.spigot_ttt.utils.Probability
|
||||
import de.moritzruth.spigot_ttt.game.items.SpawnProbability
|
||||
import de.moritzruth.spigot_ttt.utils.heartsToHealth
|
||||
import org.bukkit.ChatColor
|
||||
|
||||
object Pistol: Gun(
|
||||
type = Type.PISTOL_LIKE,
|
||||
instanceType = Instance::class,
|
||||
spawnProbability = Probability.NORMAL,
|
||||
spawnProbability = SpawnProbability.NORMAL,
|
||||
displayName = "${ChatColor.YELLOW}${ChatColor.BOLD}Pistol",
|
||||
damage = heartsToHealth(2.5),
|
||||
cooldown = 0.8,
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
package de.moritzruth.spigot_ttt.game.items.impl.weapons.guns
|
||||
|
||||
import de.moritzruth.spigot_ttt.Resourcepack
|
||||
import de.moritzruth.spigot_ttt.utils.Probability
|
||||
import de.moritzruth.spigot_ttt.game.items.SpawnProbability
|
||||
import de.moritzruth.spigot_ttt.utils.heartsToHealth
|
||||
import org.bukkit.ChatColor
|
||||
|
||||
object Rifle: Gun(
|
||||
type = Type.HEAVY_WEAPON,
|
||||
instanceType = Instance::class,
|
||||
spawnProbability = Probability.NORMAL,
|
||||
spawnProbability = SpawnProbability.NORMAL,
|
||||
displayName = "${ChatColor.YELLOW}${ChatColor.BOLD}Rifle",
|
||||
damage = heartsToHealth(0.8),
|
||||
cooldown = 0.15,
|
||||
|
|
|
@ -4,7 +4,7 @@ import de.moritzruth.spigot_ttt.Resourcepack
|
|||
import de.moritzruth.spigot_ttt.game.GameManager
|
||||
import de.moritzruth.spigot_ttt.game.players.TTTPlayer
|
||||
import de.moritzruth.spigot_ttt.plugin
|
||||
import de.moritzruth.spigot_ttt.utils.Probability
|
||||
import de.moritzruth.spigot_ttt.game.items.SpawnProbability
|
||||
import de.moritzruth.spigot_ttt.utils.heartsToHealth
|
||||
import de.moritzruth.spigot_ttt.utils.secondsToTicks
|
||||
import de.moritzruth.spigot_ttt.utils.startProgressTask
|
||||
|
@ -18,7 +18,7 @@ private const val MAGAZINE_SIZE = 8
|
|||
object Shotgun: Gun(
|
||||
type = Type.HEAVY_WEAPON,
|
||||
instanceType = Instance::class,
|
||||
spawnProbability = Probability.LOW,
|
||||
spawnProbability = SpawnProbability.LOW,
|
||||
displayName = "${ChatColor.YELLOW}${ChatColor.BOLD}Shotgun",
|
||||
damage = heartsToHealth(3.0),
|
||||
cooldown = 0.9,
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
package de.moritzruth.spigot_ttt.utils
|
||||
|
||||
enum class Probability {
|
||||
VERY_LOW,
|
||||
LOW,
|
||||
NORMAL
|
||||
}
|
Reference in a new issue