diff options
Diffstat (limited to 'src/main/java/fyresmodjam/blessings/standard/BerserkerBlessing.java')
| -rw-r--r-- | src/main/java/fyresmodjam/blessings/standard/BerserkerBlessing.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/main/java/fyresmodjam/blessings/standard/BerserkerBlessing.java b/src/main/java/fyresmodjam/blessings/standard/BerserkerBlessing.java new file mode 100644 index 0000000..4e7f784 --- /dev/null +++ b/src/main/java/fyresmodjam/blessings/standard/BerserkerBlessing.java @@ -0,0 +1,50 @@ +package fyresmodjam.blessings.standard; + +import fyresmodjam.blessings.Blessing; +import fyresmodjam.blessings.BlessingUtils; +import fyresmodjam.misc.EntityStatHelper; +import net.minecraft.entity.Entity; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; + +public class BerserkerBlessing extends Blessing { + + @Override + public String name() { + return "Berserker"; + } + + @Override + public String description() { + return "@@§ePASSIVE - §oKills are added as berserk charges. (10 max)@@§eACTIVE - §oTurn on/off berserk mode. While berserk mode is active, you do increased damage, and expend a counter every 2 seconds"; + } + + @Override + public float onOutgoingDamage(LivingHurtEvent event, + float damageMultiplier) { + if (BlessingUtils.isBlessingActive( + event.getSource().getTrueSource())) { + return damageMultiplier + 0.3f; + } + + return damageMultiplier; + } + + @Override + public void onMobKill(LivingDeathEvent event) { + Entity trueSource = event.getSource().getTrueSource(); + + if (!EntityStatHelper.hasStat(trueSource, + "BlessingCounter")) { + EntityStatHelper.giveStat(trueSource, + "BlessingCounter", 0); + } + + EntityStatHelper.giveStat(trueSource, "BlessingCounter", + Math.min(10, Integer.parseInt( + EntityStatHelper.getStat( + trueSource, + "BlessingCounter")) + + 1)); + } +} |
