public bool IsLegalTileForUnit(MultiTile position, Unit unit) { BFS(unit); int legalDistance = 0; if (unit.IsInCombat() && unit.statistics.movementPoints > 0) { legalDistance = 1; } else if (unit.IsInCombat() == false) { legalDistance = unit.statistics.movementPoints; } return(distances[position.bottomLeftCorner.position.x, position.bottomLeftCorner.position.z] <= legalDistance && distances[position.bottomLeftCorner.position.x, position.bottomLeftCorner.position.z] > 0); }
public void OnTileToMoveHovered(Unit unitToMove, MultiTile targetTile) { if (targetTile.IsProtectedByEnemyOf(unitToMove)) { SetCursorTo(enterCombatCursor, clickingEnterCombatCursor); } else if (unitToMove.IsInCombat()) { SetCursorTo(combatExitingMovementCursor, clickingCombatExitingMovementCursor); } else { SetCursorTo(walkingCursor, clickingWalkingCursor); } }
bool IsQuittingCombatIntoCombat(Unit unitToMove, MultiTile position) { return(unitToMove.IsInCombat() && position.IsProtectedByEnemyOf(unitToMove)); }
public void OnAttack(BattlescapeLogic.Unit Attacker, BattlescapeLogic.Unit Defender) { if (Attacker == myUnit && GameRound.instance.currentPhase == TurnPhases.Attack && myUnit.IsInCombat() == false) { if (Application.isEditor) { DestroyImmediate(transform.GetChild(0).gameObject); } else { Destroy(transform.GetChild(0).gameObject); } } }