protected boolean canAttack( Char enemy ) { return Dungeon.level.adjacent( pos, enemy.pos ); }
protected boolean canAttack( Char enemy ) { return Dungeon.level.adjacent( pos, enemy.pos ); }
@Override protected boolean act() { if (enemy == null || !Dungeon.level.adjacent(pos, enemy.pos)) { HP = Math.min(HT, HP + 3); } return super.act(); }
@Override protected boolean canAttack( Char enemy ) { Ballistica attack = new Ballistica( pos, enemy.pos, Ballistica.PROJECTILE); return !Dungeon.level.adjacent(pos, enemy.pos) && attack.collisionPos == enemy.pos; }
@Override protected boolean canAttack( Char enemy ) { Ballistica attack = new Ballistica( pos, enemy.pos, Ballistica.PROJECTILE); return !Dungeon.level.adjacent( pos, enemy.pos ) && attack.collisionPos == enemy.pos; }
@Override protected boolean canAttack( Char enemy ) { Ballistica attack = new Ballistica( pos, enemy.pos, Ballistica.PROJECTILE); return !Dungeon.level.adjacent( pos, enemy.pos ) && attack.collisionPos == enemy.pos; }
@Override protected boolean canAttack( Char enemy ) { Ballistica attack = new Ballistica( pos, enemy.pos, Ballistica.PROJECTILE); return !Dungeon.level.adjacent(pos, enemy.pos) && attack.collisionPos == enemy.pos; }
@Override protected boolean act() { if (enemy == null || !Dungeon.level.adjacent(pos, enemy.pos)) { HP = Math.min(HT, HP + 3); } return super.act(); }
public boolean canAttack(Char enemy){ if (enemy == null || pos == enemy.pos) { return false; } //can always attack adjacent enemies if (Dungeon.level.adjacent(pos, enemy.pos)) { return true; } KindOfWeapon wep = Dungeon.hero.belongings.weapon; if (wep != null){ return wep.canReach(this, enemy.pos); } else { return false; } }
@Override protected boolean canAttack( Char enemy ) { return canTryToSummon() ? pos == ((CityBossLevel)Dungeon.level).pedestal( nextPedestal ) : Dungeon.level.adjacent( pos, enemy.pos ); }
@Override protected boolean canAttack( Char enemy ) { return canTryToSummon() ? pos == ((CityBossLevel)Dungeon.level).pedestal( nextPedestal ) : Dungeon.level.adjacent( pos, enemy.pos ); }
@Override public void attack( int cell ) { if (!Dungeon.level.adjacent( cell, ch.pos )) { cellToAttack = cell; turnTo( ch.pos , cell ); play( zap ); } else { super.attack( cell ); } }
@Override protected boolean doAttack(Char enemy) { if (enemy == Dungeon.hero) Dungeon.hero.resting = false; sprite.attack( enemy.pos ); spend( attackDelay() ); return !Dungeon.level.adjacent(pos, enemy.pos); }
protected boolean doAttack( Char enemy ) { if (Dungeon.level.adjacent( pos, enemy.pos )) { return super.doAttack( enemy ); } else { boolean visible = fieldOfView[pos] || fieldOfView[enemy.pos]; if (visible) { sprite.zap( enemy.pos ); } else { zap(); } return !visible; } }
@Override protected boolean doAttack(Char enemy) { if (enemy == Dungeon.hero) Dungeon.hero.resting = false; sprite.attack( enemy.pos ); spend( attackDelay() ); return !Dungeon.level.adjacent(pos, enemy.pos); }
@Override public void attack( int cell ) { if (!Dungeon.level.adjacent( cell, ch.pos )) { cellToAttack = cell; turnTo( ch.pos , cell ); play( zap ); } else { super.attack( cell ); } }
protected boolean doAttack( Char enemy ) { if (Dungeon.level.adjacent( pos, enemy.pos )) { return super.doAttack( enemy ); } else { boolean visible = fieldOfView[pos] || fieldOfView[enemy.pos]; if (visible) { sprite.zap( enemy.pos ); } else { zap(); } return !visible; } }
private boolean actInteract( HeroAction.Interact action ) { NPC npc = action.npc; if (Dungeon.level.adjacent( pos, npc.pos )) { ready(); sprite.turnTo( pos, npc.pos ); return npc.interact(); } else { if (fieldOfView[npc.pos] && getCloser( npc.pos )) { return true; } else { ready(); return false; } } }
@Override public int proc( Armor armor, Char attacker, Char defender, int damage) { if (Random.Int( 8 ) == 0) { if (Dungeon.level.adjacent( attacker.pos, defender.pos )) { Buff.prolong(attacker, Frost.class, Frost.duration(attacker) * Random.Float(0.5f, 1f)); CellEmitter.get(attacker.pos).start(SnowParticle.FACTORY, 0.2f, 6); } Buff.affect( defender, Burning.class ).reignite( defender ); defender.sprite.emitter().burst( FlameParticle.FACTORY, 5 ); } return damage; }
@Override public int proc( Armor armor, Char attacker, Char defender, int damage) { if (Random.Int( 8 ) == 0) { if (Dungeon.level.adjacent( attacker.pos, defender.pos )) { Buff.prolong(attacker, Frost.class, Frost.duration(attacker) * Random.Float(0.5f, 1f)); CellEmitter.get(attacker.pos).start(SnowParticle.FACTORY, 0.2f, 6); } Buff.affect( defender, Burning.class ).reignite( defender ); defender.sprite.emitter().burst( FlameParticle.FACTORY, 5 ); } return damage; }