public void action() { if (enemy == null) { return;//need to fix enemy and 2 line should initial } Point tmpRescueLine = new Point(this.baseLine.chooseCloserFrom(this.rescueLine, enemy.frontLine())); foreach (Warrior each in group) { switch (each.Type) { case Warrior_Type.attacker: each.moveTo(enemy.frontLine()); each.attackTo(enemy); break; case Warrior_Type.shielder: each.moveTo(enemy.frontLine()); break; case Warrior_Type.helper: each.moveTo(tmpRescueLine); each.helpTo(this); break; } } }
public override void attackTo(Warriors they) { if (CDTime.isCoolDown() || they.size() == 0) { return; } if (this.distance(they.frontLine()) <= this.attackDistance) { img.Image = myRealStatus[(int)Status.attack]; attackGroup(they.frontGroup()); CDTime.record(); } }
//attack to warriors public virtual void attackTo(Warriors they) { if (CDTime.isCoolDown() || they.size() == 0) { return; } if (this.distance(they.frontLine()) <= this.attackDistance) { changeStatusTo((int)Status.attack); they.frontGroup()[0].beAttackFrom(this); CDTime.record(); } }
public override void attackTo(Warriors they) { if (they.size() <= 1) { this.beKill(); return; } if (this.distance(they.frontLine()) <= 0) { for (int i = 0; i < they.size(); ++i) { if (distance(they.At(i)) < this.attackDistance) { they.At(i).beAttackFrom(this); } } } }