v0.4.1: adjusted and buffed wand of corruption

This commit is contained in:
Evan Debenham 2016-07-10 18:07:47 -04:00 committed by Evan Debenham
parent 2f243a403b
commit acab166cde
2 changed files with 29 additions and 10 deletions

View File

@ -34,7 +34,7 @@ public class Corruption extends Buff {
@Override @Override
public boolean act() { public boolean act() {
buildToDamage += target.HT/100f; buildToDamage += target.HT/200f;
int damage = (int)buildToDamage; int damage = (int)buildToDamage;
buildToDamage -= damage; buildToDamage -= damage;

View File

@ -180,15 +180,24 @@ public abstract class Mob extends Char {
} }
} }
//resets target if: there is no current target, the target is dead, the target has been lost (wandering) //find a new enemy if..
//or if the mob is amoked/corrupted and targeting the hero (will try to target something else) boolean newEnemy = false;
if ( enemy == null || !enemy.isAlive() || state == WANDERING || //we have no enemy, or the current one is dead
((buff( Amok.class ) != null || buff(Corruption.class) != null) && enemy == Dungeon.hero )) { if ( enemy == null || !enemy.isAlive() || state == WANDERING)
newEnemy = true;
//We are amoked and current enemy is the hero
else if (buff( Amok.class ) != null && enemy == Dungeon.hero)
newEnemy = true;
//We are corrupted, and current enemy is either the hero or another corrupted character.
else if (buff(Corruption.class) != null && (enemy == Dungeon.hero || enemy.buff(Corruption.class) != null))
newEnemy = true;
if ( newEnemy ) {
HashSet<Char> enemies = new HashSet<>(); HashSet<Char> enemies = new HashSet<>();
//if the mob is amoked or corrupted... //if the mob is amoked...
if ( buff(Amok.class) != null || buff(Corruption.class) != null) { if ( buff(Amok.class) != null) {
//try to find an enemy mob to attack first. //try to find an enemy mob to attack first.
for (Mob mob : Dungeon.level.mobs) for (Mob mob : Dungeon.level.mobs)
@ -202,11 +211,21 @@ public abstract class Mob extends Char {
enemies.add(mob); enemies.add(mob);
if (enemies.size() > 0) return Random.element(enemies); if (enemies.size() > 0) return Random.element(enemies);
//if there is nothing, go for the hero, unless corrupted, then go for nothing. //if there is nothing, go for the hero
if (buff(Corruption.class) != null) return null;
else return Dungeon.hero; else return Dungeon.hero;
//if the mob is not amoked... //if the mob is corrupted...
} else if (buff(Corruption.class) != null) {
//look for enemy mobs to attack, which are also not corrupted
for (Mob mob : Dungeon.level.mobs)
if (mob != this && Level.fieldOfView[mob.pos] && mob.hostile && mob.buff(Corruption.class) == null)
enemies.add(mob);
if (enemies.size() > 0) return Random.element(enemies);
//otherwise go for nothing
return null;
} else { } else {
//try to find ally mobs to attack. //try to find ally mobs to attack.