diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index de34ee324..7dc94ec34 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -127,15 +127,15 @@ actors.buffs.burning.desc=Few things are more distressing than being engulfed in actors.buffs.championenemy.warn=You sense a deadly presence. actors.buffs.championenemy$blazing.name=blazing champion -actors.buffs.championenemy$blazing.desc=Blazing champions deal 25% more melee damage, ignite enemies they attack, are immune to fire, and spread fire around them as they die. +actors.buffs.championenemy$blazing.desc=Blazing champions deal 25% more melee damage, ignite enemies they attack, are immune to fire, and spread fire around them as they die. They can't spread fire onto water however. actors.buffs.championenemy$projecting.name=projecting champion -actors.buffs.championenemy$projecting.desc=Projecting champions deal 25% more melee damage, and are able to attack any enemy that they can see. +actors.buffs.championenemy$projecting.desc=Projecting champions deal 25% more melee damage and have +4 attack range. actors.buffs.championenemy$antimagic.name=antimagic champion -actors.buffs.championenemy$antimagic.desc=Antimagic champions take 25% less damage and are completely immune to magical effects. +actors.buffs.championenemy$antimagic.desc=Antimagic champions take 50% less damage and are completely immune to magical effects. actors.buffs.championenemy$giant.name=giant champion -actors.buffs.championenemy$giant.desc=Giant champions take 75% less damage and have +1 attack range, but cannot move through enclosed spaces. +actors.buffs.championenemy$giant.desc=Giant champions take 80% less damage and have +1 attack range, but cannot move through enclosed spaces. actors.buffs.championenemy$blessed.name=blessed champion -actors.buffs.championenemy$blessed.desc=Blessed champions have 200% more accuracy and evasion. +actors.buffs.championenemy$blessed.desc=Blessed champions have 4x accuracy and evasion. actors.buffs.championenemy$growing.name=growing champion actors.buffs.championenemy$growing.desc=Growing champions gain a steadily increasing bonus to accuracy, evasion, melee damage, and a reduction to damage taken.\n\nCurrent acc/eva/dmg boost: %1$d%%\nCurrent damage reduction: %2$d%% diff --git a/core/src/main/assets/messages/misc/misc.properties b/core/src/main/assets/messages/misc/misc.properties index 59218493c..6d28d72ef 100644 --- a/core/src/main/assets/messages/misc/misc.properties +++ b/core/src/main/assets/messages/misc/misc.properties @@ -194,7 +194,7 @@ challenges.darkness_desc=It is a dungeon after all!\n\n- Regular visible distanc challenges.no_scrolls=Forbidden runes challenges.no_scrolls_desc=A certain rune is harder to find. Unfortunately, it's always the most useful one.\n\n- Half of the dungeon's upgrade scrolls are removed challenges.champion_enemies=Hostile champions -challenges.champion_enemies_desc=You're not the only one who can level up!\n\n- Regular enemies have a 1/8 chance to spawn with a special champion buff\n- Champions wake up if they spawn asleep\n- The hero knows when a champion spawns\n- Champions are immune to corruption\n\nThere are six types of champion enemy:\n_Blazing (orange):_ +25% melee damage, ignites on hit, immune to fire, spreads flames on death\n_Projecting (purple):_ +25% melee damage, can attack anything they see\n_Antimagic (green):_ -25% damage taken, immune to magical effects\n_Giant (blue):_ -75% damage taken, +1 melee range, cannot move into tunnels\n_Blessed (yellow):_ +200% accuracy, +200% evasion\n_Growing (red):_ +20% accuracy, evasion, damage, and effective HP. Increases by 1% every 3 turns. +challenges.champion_enemies_desc=You're not the only one who can level up!\n\n- Regular enemies have a 1/8 chance to spawn with a special champion buff\n- Champions wake up if they spawn asleep\n- The hero knows when a champion spawns\n- Champions are immune to corruption\n\nThere are six types of champion enemy:\n_Blazing (orange):_ +25% melee damage, ignites on hit, spreads flames on death, can't ignite water tiles\n_Projecting (purple):_ +25% melee damage, +4 melee range\n_Antimagic (green):_ -50% damage taken, immune to magical effects\n_Giant (blue):_ -80% damage taken, +1 melee range, cannot move into tunnels\n_Blessed (yellow):_ 4x accuracy and evasion\n_Growing (red):_ +20% accuracy, evasion, damage, and effective HP. Increases by 1% every 4 turns. challenges.stronger_bosses=Badder bosses challenges.stronger_bosses_desc=Bosses are much tougher with this challenge!\n\n_Goo:_ +20% health\n_-_ Healing in water ramps up, to 3/turn\n_-_ Pumps up in 1 turn instead of 2\n_Tengu:_ +25% health\n_-_ Phase 1: traps are much deadlier\n_-_ Phase 2: abilities are more frequent\n_DM-300:_ +33% health\n_-_ Pylons are tougher and 3 activate\n_-_ Abilities are more powerful and frequent\n_-_ DM-300 is faster when supercharged\n_-_ Exposed wires are twice as common\n_Dwarf King:_ +50% health\n_-_ Minions are stronger in all phases\n_-_ Phase 1: faster abilities and summons\n_-_ Phase 2: 2 more minions per round\n_-_ Phase 3: 2x health, faster summons\n_Yog-Dzewa:_\n_-_ Two fists are summoned at a time!\n_-_ +60% laser damage\n_-_ Stronger minions diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ChampionEnemy.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ChampionEnemy.java index bf510e76e..836aca661 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ChampionEnemy.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ChampionEnemy.java @@ -116,7 +116,9 @@ public abstract class ChampionEnemy extends Buff { @Override public void onAttackProc(Char enemy) { - Buff.affect(enemy, Burning.class).reignite(enemy); + if (!Dungeon.level.water[enemy.pos]) { + Buff.affect(enemy, Burning.class).reignite(enemy); + } } @Override @@ -124,7 +126,7 @@ public abstract class ChampionEnemy extends Buff { //don't trigger when killed by being knocked into a pit if (target.flying || !Dungeon.level.pit[target.pos]) { for (int i : PathFinder.NEIGHBOURS9) { - if (!Dungeon.level.solid[target.pos + i]) { + if (!Dungeon.level.solid[target.pos + i] && !Dungeon.level.water[target.pos + i]) { GameScene.add(Blob.seed(target.pos + i, 2, Fire.class)); } } @@ -154,8 +156,20 @@ public abstract class ChampionEnemy extends Buff { } @Override - public boolean canAttackWithExtraReach( Char enemy ) { - return target.fieldOfView[enemy.pos]; //if it can see it, it can attack it. + public boolean canAttackWithExtraReach(Char enemy) { + if (Dungeon.level.distance( target.pos, enemy.pos ) > 5){ + return false; + } else { + boolean[] passable = BArray.not(Dungeon.level.solid, null); + for (Char ch : Actor.chars()) { + //our own tile is always passable + passable[ch.pos] = ch == target; + } + + PathFinder.buildDistanceMap(enemy.pos, passable, 5); + + return PathFinder.distance[target.pos] <= 5; + } } } @@ -167,7 +181,7 @@ public abstract class ChampionEnemy extends Buff { @Override public float damageTakenFactor() { - return 0.75f; + return 0.5f; } { @@ -185,7 +199,7 @@ public abstract class ChampionEnemy extends Buff { @Override public float damageTakenFactor() { - return 0.25f; + return 0.2f; } @Override @@ -214,7 +228,7 @@ public abstract class ChampionEnemy extends Buff { @Override public float evasionAndAccuracyFactor() { - return 3f; + return 4f; } } @@ -229,7 +243,7 @@ public abstract class ChampionEnemy extends Buff { @Override public boolean act() { multiplier += 0.01f; - spend(3*TICK); + spend(4*TICK); return true; }