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