152 lines
4.4 KiB
Kotlin
152 lines
4.4 KiB
Kotlin
package club.mcscrims.speedhg.config
|
|
|
|
import club.mcscrims.core.config.annotations.ConfigClass
|
|
import club.mcscrims.core.config.annotations.ConfigField
|
|
|
|
@ConfigClass(
|
|
name = "kits",
|
|
description = "Kit configuration",
|
|
version = "1.0"
|
|
)
|
|
data class KitConfig(
|
|
|
|
@ConfigField(name = "anchor", description = "Anchor configurations")
|
|
val anchor: Map<String, Double> = getAnchorConfigurations(),
|
|
|
|
@ConfigField(name = "armorer", description = "Armorer configurations")
|
|
val armorer: Map<String, Double> = getArmorerConfigurations(),
|
|
|
|
@ConfigField(name = "blackpanther", description = "BlackPanther configurations")
|
|
val blackPanther: Map<String, Double> = getBlackPantherConfigurations(),
|
|
|
|
@ConfigField(name = "blitzcrank", description = "Blitzcrank configurations")
|
|
val blitzcrank: Map<String, Double> = getBlitzcrankConfigurations(),
|
|
|
|
@ConfigField(name = "gladiator", description = "Gladiator configurations")
|
|
val gladiator: Map<String, Double> = getGladiatorConfigurations(),
|
|
|
|
@ConfigField(name = "goblin", description = "Goblin configurations")
|
|
val goblin: Map<String, Double> = getGoblinConfigurations(),
|
|
|
|
@ConfigField(name = "icemage", description = "IceMage configurations")
|
|
val iceMage: Map<String, Double> = getIceMageConfigurations(),
|
|
|
|
@ConfigField(name = "poseidon", description = "Poseidon configurations")
|
|
val poseidon: Map<String, Double> = getPoseidonConfigurations(),
|
|
|
|
@ConfigField(name = "rattlesnake", description = "Rattlesnake configurations")
|
|
val rattlesnake: Map<String, Double> = getRattlesnakeConfigurations(),
|
|
|
|
@ConfigField(name = "tesla", description = "Tesla configurations")
|
|
val tesla: Map<String, Double> = getTeslaConfigurations(),
|
|
|
|
@ConfigField(name = "voodoo", description = "Voodoo configurations")
|
|
val voodoo: Map<String, Double> = getVoodooConfigurations(),
|
|
|
|
@ConfigField(name = "perks", description = "Perk configuration")
|
|
val perks: Map<String, Pair<String, Double>> = getPerkConfiguration()
|
|
) {
|
|
|
|
fun getAllKitConfigurations(): Map<String, Double>
|
|
{
|
|
return anchor + armorer + blackPanther + gladiator + goblin + iceMage + poseidon +
|
|
rattlesnake + tesla + voodoo
|
|
}
|
|
|
|
fun getConfigForKit(id: String): Map<String, Double>
|
|
{
|
|
return when (id.lowercase()) {
|
|
"anchor" -> anchor
|
|
"armorer" -> armorer
|
|
"blackpanther" -> blackPanther
|
|
"gladiator" -> gladiator
|
|
"goblin" -> goblin
|
|
"icemage" -> iceMage
|
|
"poseidon" -> poseidon
|
|
"rattlesnake" -> rattlesnake
|
|
"tesla" -> tesla
|
|
"voodoo" -> voodoo
|
|
else -> emptyMap()
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
private fun getAnchorConfigurations() = mapOf(
|
|
"offensive extra damage" to 1.0
|
|
)
|
|
|
|
private fun getArmorerConfigurations() = mapOf(
|
|
"kills until new armor" to 2.0
|
|
)
|
|
|
|
private fun getBlackPantherConfigurations() = mapOf(
|
|
"enderpearl hit damage" to 3.0,
|
|
"extra damage on top" to 0.5,
|
|
"default hit radius" to 3.0,
|
|
"explosion multiplier" to 3.0
|
|
)
|
|
|
|
private fun getBlitzcrankConfigurations() = mapOf(
|
|
"ultimate damage" to 10.0,
|
|
"ultimate radius" to 5.0,
|
|
"ultimate stun duration" to 0.5,
|
|
"hook range" to 8.0,
|
|
"stun height" to 4.0,
|
|
"stun radius" to 3.0,
|
|
"stun slow duration" to 5.0
|
|
)
|
|
|
|
private fun getGladiatorConfigurations() = mapOf(
|
|
"cage radius" to 23.0,
|
|
"cage height" to 10.0,
|
|
"wither effect after x seconds" to 180.0
|
|
)
|
|
|
|
private fun getGoblinConfigurations() = mapOf(
|
|
"bunker radius" to 10.0,
|
|
"bunker time until disappear" to 15.0,
|
|
"knockback and pullin radius" to 7.0,
|
|
"kit steal time" to 60.0,
|
|
"soup steal chance" to 20.0
|
|
)
|
|
|
|
private fun getIceMageConfigurations() = mapOf(
|
|
"chance for slowness" to 2.0
|
|
)
|
|
|
|
private fun getPoseidonConfigurations() = mapOf(
|
|
"default hit radius" to 3.0,
|
|
"lightning hit damage" to 4.0
|
|
)
|
|
|
|
private fun getRattlesnakeConfigurations() = mapOf(
|
|
"maximum jump distance" to 10.0,
|
|
"speed duration" to 10.0,
|
|
"poison duration" to 8.0,
|
|
"maximum negative effect duration" to 16.0,
|
|
"default jump radius" to 10.0
|
|
)
|
|
|
|
private fun getTeslaConfigurations() = mapOf(
|
|
"disable push at height" to 50.0,
|
|
"default thunder radius" to 5.0,
|
|
"push strength" to 1.0,
|
|
"fire tick duration" to 5.0,
|
|
"time until thunder disables" to 7.0,
|
|
"thunder damage" to 1.5
|
|
)
|
|
|
|
private fun getVoodooConfigurations() = mapOf(
|
|
"default curse radius" to 3.0,
|
|
"maximum effect duration" to 15.0,
|
|
"clicked players minimum health" to 10.0,
|
|
"voodoo hold duration" to 5.0,
|
|
"chance for wither effect" to 5.0
|
|
)
|
|
|
|
private fun getPerkConfiguration() = mapOf(
|
|
"knockback" to Pair( "knockback strength", 1.5 ),
|
|
"pullin" to Pair( "pullin strength", 0.5 ),
|
|
"radiusincrease" to Pair( "new radius", 5.0 )
|
|
) |