From 10b772a5838ce842dc42e39d54d20aaa1697d33e Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 12 Aug 2019 15:21:11 -0400 Subject: [PATCH] v0.7.4c: class armor abilities no longer affect allies --- .../shatteredpixeldungeon/items/armor/HuntressArmor.java | 6 ++++-- .../shatteredpixeldungeon/items/armor/MageArmor.java | 4 +++- .../shatteredpixeldungeon/items/armor/RogueArmor.java | 5 +++-- .../shatteredpixeldungeon/items/armor/WarriorArmor.java | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/HuntressArmor.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/HuntressArmor.java index 62a1d1dc1..2cb152cdb 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/HuntressArmor.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/HuntressArmor.java @@ -22,6 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.armor; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Shuriken; @@ -40,7 +41,7 @@ public class HuntressArmor extends ClassArmor { image = ItemSpriteSheet.ARMOR_HUNTRESS; } - private HashMap targets = new HashMap(); + private HashMap targets = new HashMap<>(); @Override public void doSpecial() { @@ -49,7 +50,8 @@ public class HuntressArmor extends ClassArmor { for (Mob mob : Dungeon.level.mobs) { if (Dungeon.level.distance(curUser.pos, mob.pos) <= 12 - && Dungeon.level.heroFOV[mob.pos]) { + && Dungeon.level.heroFOV[mob.pos] + && mob.alignment != Char.Alignment.ALLY) { Callback callback = new Callback() { @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/MageArmor.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/MageArmor.java index 023276804..73d300abe 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/MageArmor.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/MageArmor.java @@ -24,6 +24,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.armor; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; +import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Roots; @@ -42,7 +43,8 @@ public class MageArmor extends ClassArmor { public void doSpecial() { for (Mob mob : Dungeon.level.mobs.toArray(new Mob[0])) { - if (Dungeon.level.heroFOV[mob.pos]) { + if (Dungeon.level.heroFOV[mob.pos] + && mob.alignment != Char.Alignment.ALLY) { Buff.affect( mob, Burning.class ).reignite( mob ); Buff.prolong( mob, Roots.class, 3 ); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/RogueArmor.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/RogueArmor.java index 550aa9f7d..fa3683371 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/RogueArmor.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/RogueArmor.java @@ -24,6 +24,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.armor; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; +import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; @@ -68,8 +69,8 @@ public class RogueArmor extends ClassArmor { curUser.HP -= (curUser.HP / 3); - for (Mob mob : Dungeon.level.mobs.toArray(new Mob[Dungeon.level.mobs.size()])) { - if (Dungeon.level.heroFOV[mob.pos]) { + for (Mob mob : Dungeon.level.mobs.toArray(new Mob[0])) { + if (Dungeon.level.heroFOV[mob.pos] && mob.alignment != Char.Alignment.ALLY) { Buff.prolong( mob, Blindness.class, 2 ); if (mob.state == mob.HUNTING) mob.state = mob.WANDERING; mob.sprite.emitter().burst( Speck.factory( Speck.LIGHT ), 4 ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/WarriorArmor.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/WarriorArmor.java index d7ab44821..8f1ffa78b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/WarriorArmor.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/WarriorArmor.java @@ -79,7 +79,7 @@ public class WarriorArmor extends ClassArmor { for (int i = 0; i < PathFinder.NEIGHBOURS8.length; i++) { Char mob = Actor.findChar(curUser.pos + PathFinder.NEIGHBOURS8[i]); - if (mob != null && mob != curUser) { + if (mob != null && mob != curUser && mob.alignment != Char.Alignment.ALLY) { Buff.prolong(mob, Paralysis.class, SHOCK_TIME); } }