1
0
Fork 0

Change item spawn probabilities

This commit is contained in:
Moritz Ruth 2020-06-19 17:44:26 +02:00
parent 66d091c7fb
commit 2d67cdb3dd
No known key found for this signature in database
GPG key ID: AFD57E23E753841B
12 changed files with 26 additions and 28 deletions

View file

@ -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))
} }

View file

@ -0,0 +1,7 @@
package de.moritzruth.spigot_ttt.game.items
enum class SpawnProbability(val multiplier: Int) {
VERY_LOW(1),
LOW(4),
NORMAL(10)
}

View file

@ -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
) { ) {

View file

@ -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

View file

@ -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 {

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -1,7 +0,0 @@
package de.moritzruth.spigot_ttt.utils
enum class Probability {
VERY_LOW,
LOW,
NORMAL
}