public void UnitPlayerAttack(int _clientId, int _unitPosition, int _unitTarget) { Unit _CurrentUnit = new Unit(); Unit _CurrentTarget = new Unit(); //Console.WriteLine("Unit Player Attack"); if (currentBattleState == BattleState.PLAYER_TURN) { if (Unit_PlayerCrew.TryGetValue(_unitPosition, out _CurrentUnit)) { if (Unit_EnemyCrew.TryGetValue(_unitTarget, out _CurrentTarget)) { if (_CurrentTarget.isSpawned && _CurrentUnit.isSpawned) { // Target & Player Unit are Spawned if (_CurrentTarget.UnitHp > 0 && _CurrentUnit.UnitHp > 0) { Console.WriteLine(_CurrentUnit.UnitName + " deal " + _CurrentUnit.UnitPower.ToString() + " to the Enemy unit " + _CurrentTarget.UnitName); ServerSend.AttackUnit(_clientId, _unitPosition, _unitTarget); // Target & Player Unit are Alive _CurrentTarget.UnitHp -= _CurrentUnit.UnitPower; if (_CurrentTarget.UnitHp <= 0) { //TargetDied // Check If Win foreach (var Unit in Unit_EnemyCrew) { if (Unit.Value.UnitHp > 0) { } else { currentBattleState = BattleState.WON; } } } else { currentBattleState = BattleState.IA_TURN; // EndPlayerTurn } } } } } //sortedUnits = GetUnitsSortedByTurnMeter(); // Update units Parameters (Hp, TurnMeter..) } }