public Turn(ArrayList characters, Heroes.Core.Battle.Heros.Hero attackHero, Hashtable attackArmies, Heroes.Core.Battle.Heros.Hero defendHero, Heroes.Core.Battle.Quick.Monster monster, Hashtable defendArmies) { _characters = characters; _attackArmies = attackArmies; _defendArmies = defendArmies; if (_characters.Count > 0) { _currentCharacter = (Heroes.Core.Battle.Armies.Army)_characters[0]; _currentCharacter._isBeginTurn = true; } else _currentCharacter = null; _attackHero = attackHero; _defendHero = defendHero; _monster = monster; FindHero(); }
private void FindHero() { if (_currentCharacter != null) { if (_attackHero != null && _currentCharacter._heroId == _attackHero._id) { _currentHero = _attackHero; _targetHero = _defendHero; _targetArmies = _defendArmies; } else if (_defendHero != null && _currentCharacter._heroId == _defendHero._id) { _currentHero = _defendHero; _targetHero = _attackHero; _targetArmies = _attackArmies; } else if (_monster != null) { _currentHero = null; _targetHero = _attackHero; _targetArmies = _attackArmies; } } }
public BattleCommander(Heroes.Core.Player attackPlayer, Heroes.Core.Hero attackHero, Heroes.Core.Player defendPlayer, Heroes.Core.Hero defendHero, Heroes.Core.Monster monster, bool quickCombat) { _battleTerrain = new BattleTerrain(); _attackPlayer = attackPlayer; _defendPlayer = defendPlayer; { _attackHeroOriginal = attackHero; _attackHero = new Heroes.Core.Battle.Heros.Hero(); _attackHero.CopyFrom(attackHero); _attackHero._armySide = Heroes.Core.Battle.Characters.ArmySideEnum.Attacker; _attackHero._spells = attackHero._spells; foreach (Heroes.Core.Army army in attackHero._armyKSlots.Values) { Heroes.Core.Battle.Armies.Army army2 = new Heroes.Core.Battle.Armies.Army(); army2.CopyFrom(army); army2._armySide = Heroes.Core.Battle.Characters.ArmySideEnum.Attacker; army2._qtyLeft = army2._qty; army2._healthRemain = army2._health; army2._shotRemain = army2._noOfShot; army2._retaliateRemain = army2._noOfRetaliate; army2._cell = GetCell(army2._armySide, army2._slotNo, army2._isBig); army2._cell._character = army2; _attackHero._armyKSlots.Add(army2._slotNo, army2); } _attackArmies = _attackHero._armyKSlots; } _defendHeroOriginal = null; _defendHero = null; if (defendHero != null) { _defendHeroOriginal = defendHero; _defendHero = new Heroes.Core.Battle.Heros.Hero(); _defendHero.CopyFrom(defendHero); _defendHero._armySide = Heroes.Core.Battle.Characters.ArmySideEnum.Defender; _defendHero._spells = attackHero._spells; foreach (Heroes.Core.Army army in defendHero._armyKSlots.Values) { Heroes.Core.Battle.Armies.Army army2 = new Heroes.Core.Battle.Armies.Army(); army2.CopyFrom(army); army2._armySide = Heroes.Core.Battle.Characters.ArmySideEnum.Defender; army2._qtyLeft = army2._qty; army2._healthRemain = army2._health; army2._shotRemain = army2._noOfShot; army2._retaliateRemain = army2._noOfRetaliate; army2._cell = GetCell(army2._armySide, army2._slotNo, army2._isBig); army2._cell._character = army2; _defendHero._armyKSlots.Add(army2._slotNo, army2); } _defendArmies = _defendHero._armyKSlots; } _monsterOriginal = null; _monster = null; if (monster != null) { _monsterOriginal = monster; _monster = new Heroes.Core.Battle.Quick.Monster(); _monster.CopyFrom(monster); _monster._armySide = Heroes.Core.Battle.Characters.ArmySideEnum.Defender; foreach (Heroes.Core.Army army in monster._armyKSlots.Values) { Heroes.Core.Battle.Armies.Army army2 = new Heroes.Core.Battle.Armies.Army(); army2.CopyFrom(army); army2._armySide = Heroes.Core.Battle.Characters.ArmySideEnum.Defender; army2._qtyLeft = army2._qty; army2._healthRemain = army2._health; army2._shotRemain = army2._noOfShot; army2._retaliateRemain = army2._noOfRetaliate; army2._cell = GetCell(army2._armySide, army2._slotNo, army2._isBig); army2._cell._character = army2; _monster._armyKSlots.Add(army2._slotNo, army2); } _defendArmies = _monster._armyKSlots; } _heroes = new Hashtable(); _heroes.Add(_attackHero._id, _attackHero); if (_defendHero != null) _heroes.Add(_defendHero._id, _defendHero); _armies = new ArrayList(); foreach (Heroes.Core.Army army in _attackArmies.Values) { _armies.Add(army); } foreach (Heroes.Core.Army army in _defendArmies.Values) { _armies.Add(army); } BattleEngine.SortBySpeed(_armies); _quickCombat = quickCombat; _turn = new Turn(_armies, _attackHero, _attackArmies, _defendHero, _monster, _defendArmies); }