9
0
mirror of https://github.com/Auxilor/EcoSkills.git synced 2026-01-02 13:56:38 +00:00

Fixed bravery and infernal resistance

This commit is contained in:
Auxilor
2021-08-23 13:58:04 +01:00
parent f8b7d3a2ba
commit 8b1a9a4d4f
4 changed files with 30 additions and 29 deletions

View File

@@ -4,14 +4,13 @@ import com.google.common.collect.ImmutableSet;
import com.willfp.eco.core.config.updating.ConfigUpdater;
import com.willfp.ecoskills.effects.effects.EffectAcceleratedEscape;
import com.willfp.ecoskills.effects.effects.EffectBountifulHarvest;
import com.willfp.ecoskills.effects.effects.EffectBravery;
import com.willfp.ecoskills.effects.effects.EffectInfernalResistance;
import com.willfp.ecoskills.effects.effects.EffectCraftsmanship;
import com.willfp.ecoskills.effects.effects.EffectDazzle;
import com.willfp.ecoskills.effects.effects.EffectDodging;
import com.willfp.ecoskills.effects.effects.EffectEfficientBrewing;
import com.willfp.ecoskills.effects.effects.EffectEyeOfTheDepths;
import com.willfp.ecoskills.effects.effects.EffectGoldenYield;
import com.willfp.ecoskills.effects.effects.EffectInfernalResistance;
import com.willfp.ecoskills.effects.effects.EffectMysticResilience;
import com.willfp.ecoskills.effects.effects.EffectPotionmaster;
import com.willfp.ecoskills.effects.effects.EffectSatiation;
@@ -19,6 +18,7 @@ import com.willfp.ecoskills.effects.effects.EffectSeamlessMovement;
import com.willfp.ecoskills.effects.effects.EffectSecondChance;
import com.willfp.ecoskills.effects.effects.EffectSerratedStrikes;
import com.willfp.ecoskills.effects.effects.EffectShamanism;
import com.willfp.ecoskills.effects.effects.EffectStrongImpact;
import com.willfp.ecoskills.effects.effects.EffectVersatileTools;
import org.bukkit.NamespacedKey;
import org.jetbrains.annotations.ApiStatus;
@@ -50,9 +50,10 @@ public class Effects {
public static final Effect GOLDEN_YIELD = new EffectGoldenYield();
public static final Effect DODGING = new EffectDodging();
public static final Effect ACCELERATED_ESCAPE = new EffectAcceleratedEscape();
public static final Effect BRAVERY = new EffectBravery();
public static final Effect BRAVERY = new EffectInfernalResistance();
public static final Effect INFERNAL_RESISTANCE = new EffectInfernalResistance();
public static final Effect DAZZLE = new EffectDazzle();
public static final Effect STRONG_IMPACT = new EffectStrongImpact();
@ApiStatus.Internal
public static void registerNewEffect(@NotNull final Effect effect) {

View File

@@ -1,41 +1,44 @@
package com.willfp.ecoskills.effects.effects
import com.willfp.eco.util.NamespacedKeyUtils
import com.willfp.eco.util.NumberUtils
import com.willfp.ecoskills.effects.Effect
import com.willfp.ecoskills.getEffectLevel
import org.bukkit.entity.Boss
import org.bukkit.entity.ElderGuardian
import org.bukkit.entity.Player
import org.bukkit.event.EventHandler
import org.bukkit.event.EventPriority
import org.bukkit.event.entity.EntityDamageEvent
import org.bukkit.event.entity.EntityDamageByEntityEvent
import org.bukkit.persistence.PersistentDataType
class EffectBravery: Effect(
"bravery"
) {
override fun formatDescription(string: String, level: Int): String {
return string.replace("%chance%", NumberUtils.format(config.getDouble("chance-per-level") * level))
return string.replace("%percent_less%", NumberUtils.format(config.getDouble("percent-less-per-level") * level))
}
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
fun handle(event: EntityDamageEvent) {
fun handle(event: EntityDamageByEntityEvent) {
val player = event.entity
if (player !is Player) {
return
}
if (event.cause != EntityDamageEvent.DamageCause.FIRE
&& event.cause != EntityDamageEvent.DamageCause.FIRE_TICK
&& event.cause != EntityDamageEvent.DamageCause.LAVA
&& event.cause != EntityDamageEvent.DamageCause.HOT_FLOOR) {
if (event.damager !is Boss && event.damager !is ElderGuardian
&& !event.damager.persistentDataContainer.has(NamespacedKeyUtils.create("ecobosses", "boss"), PersistentDataType.STRING)) {
return
}
val level = player.getEffectLevel(this)
val chance = config.getDouble("chance-per-level") * level
var multiplier = config.getDouble("percent-less-per-level") * level
multiplier /= 100
multiplier = 1 - multiplier
if (NumberUtils.randFloat(0.0, 100.0) < chance) {
event.isCancelled = true
}
event.damage = event.damage * multiplier
}
}

View File

@@ -1,44 +1,41 @@
package com.willfp.ecoskills.effects.effects
import com.willfp.eco.util.NamespacedKeyUtils
import com.willfp.eco.util.NumberUtils
import com.willfp.ecoskills.effects.Effect
import com.willfp.ecoskills.getEffectLevel
import org.bukkit.entity.Boss
import org.bukkit.entity.ElderGuardian
import org.bukkit.entity.Player
import org.bukkit.event.EventHandler
import org.bukkit.event.EventPriority
import org.bukkit.event.entity.EntityDamageByEntityEvent
import org.bukkit.persistence.PersistentDataType
import org.bukkit.event.entity.EntityDamageEvent
class EffectInfernalResistance: Effect(
"infernal_resistance"
) {
override fun formatDescription(string: String, level: Int): String {
return string.replace("%percent_less%", NumberUtils.format(config.getDouble("percent-less-per-level") * level))
return string.replace("%chance%", NumberUtils.format(config.getDouble("chance-per-level") * level))
}
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
fun handle(event: EntityDamageByEntityEvent) {
fun handle(event: EntityDamageEvent) {
val player = event.entity
if (player !is Player) {
return
}
if (event.damager !is Boss && event.damager !is ElderGuardian
&& !event.damager.persistentDataContainer.has(NamespacedKeyUtils.create("ecobosses", "boss"), PersistentDataType.STRING)) {
if (event.cause != EntityDamageEvent.DamageCause.FIRE
&& event.cause != EntityDamageEvent.DamageCause.FIRE_TICK
&& event.cause != EntityDamageEvent.DamageCause.LAVA
&& event.cause != EntityDamageEvent.DamageCause.HOT_FLOOR) {
return
}
val level = player.getEffectLevel(this)
var multiplier = config.getDouble("percent-less-per-level") * level
multiplier /= 100
multiplier = 1 - multiplier
val chance = config.getDouble("chance-per-level") * level
event.damage = event.damage * multiplier
if (NumberUtils.randFloat(0.0, 100.0) < chance) {
event.isCancelled = true
}
}
}

View File

@@ -120,7 +120,7 @@ infernal_resistance:
# The chance to ignore damage, as a percentage
chance-per-level: 2
bravery:
description: "&8Take &a%chance%%&8 less damage from bosses"
description: "&8Take &a%percent_less%%&8 less damage from bosses"
# The percent less damage to take
percent-less-per-level: 1.5