public virtual void addSoldier(Soldier soldier) { _addedSoldier = true; switch(soldier.getType()) { case Soldier.TYPE_PIKE: addSoldierToRow(soldier, _pikeRows); break; case Soldier.TYPE_SWINGER: addSoldierToRow(soldier, _supportRows); break; case Soldier.TYPE_SHOT: addSoldierToRow(soldier, _shotRows); break; case Soldier.TYPE_CAVALRY: addSoldierToRow(soldier, _cavRows); break; case Soldier.TYPE_SUPPORT: addSoldierToRow(soldier, _supportRows); break; case Soldier.TYPE_MELEE: addSoldierToRow(soldier, _meleeRows); break; default: addSoldierToRow(soldier, _supportRows); break; } soldier.setSide(_side); if (_screen.getPlayerFormation() == this) soldier.inPlayerFormation = true; soldier.initCharge = false; soldier.setSpeed(0.15f); // determine speed avgSpeed = 0; foreach (Soldier s in _soldiers) { avgSpeed += s.getSpeed(); } avgSpeed /= (float)_soldiers.Count; _speed = avgSpeed - 0.04f; //_speed = avgSpeed - (0.002f * (float)_soldiers.Count); soldier.myFormation = this; if (soldier.getType() == Soldier.TYPE_PIKE) { reiteratePikeCommand((Pikeman)soldier); numberOfPikes++; } else if (soldier is Dopple && _state == STATE_PIKE) { ((Dopple)soldier).charge(); } else if (soldier.getType() == Soldier.TYPE_SHOT) { numberOfShots++; } }
public override void addSoldier(Soldier soldier) { base.addSoldier(soldier); if (soldier is Wolf) { ((Wolf)soldier).bossFormation = this; soldier.setSpeed(0.24f); } }