From 17631e980b66c6775eef111dabe3861c9adc203e Mon Sep 17 00:00:00 2001
From: Chris Kearney <chris@kearneymail.com>
Date: Tue, 16 Aug 2016 21:44:15 -0700
Subject: [PATCH] readded the lightning burn effect

---
 .../spells/LightningSpellRunnable.java        | 20 +++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/comandante/creeper/spells/LightningSpellRunnable.java b/src/main/java/com/comandante/creeper/spells/LightningSpellRunnable.java
index 7bced2a7..9da25cc2 100644
--- a/src/main/java/com/comandante/creeper/spells/LightningSpellRunnable.java
+++ b/src/main/java/com/comandante/creeper/spells/LightningSpellRunnable.java
@@ -1,12 +1,15 @@
 package com.comandante.creeper.spells;
 
+import com.comandante.creeper.Items.EffectBuilder;
 import com.comandante.creeper.managers.GameManager;
 import com.comandante.creeper.npc.Npc;
 import com.comandante.creeper.player.CoolDown;
 import com.comandante.creeper.player.CoolDownType;
 import com.comandante.creeper.player.Player;
 import com.comandante.creeper.server.Color;
-import com.comandante.creeper.spells.SpellRunnable;
+import com.comandante.creeper.stat.StatsBuilder;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
 
 import java.util.Arrays;
 import java.util.Optional;
@@ -50,6 +53,8 @@ public class LightningSpellRunnable implements SpellRunnable {
         long intelligence = player.getPlayerStatsWithEquipmentAndLevel().getIntelligence();
         long power = (player.getLevel() * 1) + (3 * intelligence);
         player.addActiveFight(npc);
+        long burnEffectPower = (long) ((player.getLevel() * .05) + (1 * intelligence));
+        gameManager.getEffectsManager().applyEffectsToNpcs(player, Sets.newHashSet(npc), Sets.newHashSet(getBurnEffect(burnEffectPower, 2).createEffect()));
         npc.doHealthDamage(player, Arrays.asList(getDamageMessage(power, npc.getColorName())), -power);
     }
 
@@ -62,10 +67,21 @@ public class LightningSpellRunnable implements SpellRunnable {
     }
 
     private String getDamageMessage(long amt, String name) {
-        return Color.BOLD_ON + Color.YELLOW + "[spell] " + Color.RESET + Color.YELLOW + "+" + amt + Color.RESET + Color.BOLD_ON + Color.RED + " DAMAGE " + Color.RESET + getAttackMessage() + Color.BOLD_ON + Color.RED + " >>>> " + Color.RESET + name;
+        return Color.BOLD_ON + Color.YELLOW + "[spell] " + Color.RESET'' + Color.YELLOW + "+" + amt + Color.RESET + Color.BOLD_ON + Color.RED + " DAMAGE " + Color.RESET + getAttackMessage() + Color.BOLD_ON + Color.RED + " >>>> " + Color.RESET + name;
     }
 
     private void announceSpellCastToCurrentRoom(Player player, String name) {
         gameManager.writeToPlayerCurrentRoom(player.getPlayerId(), player.getPlayerName() + Color.CYAN + " casts " + Color.RESET + "a " + Color.BOLD_ON + Color.WHITE + "[" + Color.RESET + getName() + Color.BOLD_ON + Color.WHITE + "]" + Color.RESET + " on " + name + "! \r\n");
     }
+
+    private EffectBuilder getBurnEffect(long amt, int ticksDuration) {
+        return new EffectBuilder()
+                .setEffectApplyMessages(Lists.newArrayList("You are " + Color.BOLD_ON + Color.RED + "burning" + Color.RESET + " from the lightning strike!"))
+                .setEffectDescription(Color.BOLD_ON + Color.YELLOW + "lightning" + Color.RESET + Color.BOLD_ON + Color.RED + " BURN" + Color.RESET)
+                .setEffectName(Color.BOLD_ON + Color.YELLOW + "lightning" + Color.RESET + Color.BOLD_ON + Color.RED + " BURN" + Color.RESET)
+                .setDurationStats(new StatsBuilder().createStats())
+                .setApplyStatsOnTick(new StatsBuilder().setCurrentHealth(-amt).createStats())
+                .setFrozenMovement(false)
+                .setLifeSpanTicks(ticksDuration);
+    }
 }
-- 
GitLab