public void SwitchAttackMode() { if (attackMode) { attackMode = false; avalibleMovementTiles = AreaCalculations.GetTilesAvalibleForMovement(currentCharacter); if (attackArea != null) { ClearTiles(attackArea.AffectedTiles); ClearTilesFromHashtable(attackArea.AffectedCharacters); } ShowTilesFromHashtable(avalibleMovementTiles, tileAvailableForMove); } else { attackMode = true; ClearTilesFromHashtable(avalibleMovementTiles); if (currentCharacter.ActionAvailable) { attackArea = AreaCalculations.GetAreaOfEffect(Vector3Int.FloorToInt(currentCharacter.transform.position), currentCharacter.AttackRange, currentCharacter.Team); ShowTiles(attackArea.AffectedTiles, tileAffected); ShowTilesFromHashtable(attackArea.AffectedCharacters, tileTarget); } } }
public void StartTurn() { clearAllTiles(); if (currentCharacter != null) { clearTileOnPosition(Vector3Int.FloorToInt(currentCharacter.transform.position)); } currentCharacter = gameController.GetNextCharacter(currentCharacter); DisplayCurrentCharacterData(); setTileOnPosition(Vector3Int.FloorToInt(currentCharacter.transform.position), tileCurrentCharacter); attackMode = false; avalibleMovementTiles = AreaCalculations.GetTilesAvalibleForMovement(currentCharacter); ShowTilesFromHashtable(avalibleMovementTiles, tileAvailableForMove); }
private void MoveCharacter(RaycastHit2D hit) { Vector3 mouseWorldPos = camera.ScreenToWorldPoint(Input.mousePosition); Vector3Int tilemapMousePos = UILayer.WorldToCell(mouseWorldPos); if (avalibleMovementTiles.Contains(tilemapMousePos)) { clearTileOnPosition(Vector3Int.FloorToInt(currentCharacter.transform.position)); currentCharacter.Move(tilemapMousePos, 0); currentCharacter.ChangeCurrentSpeedByCost((int)avalibleMovementTiles[tilemapMousePos]); logEvent.Invoke(currentCharacter.name + " moved to: " + tilemapMousePos); ClearTilesFromHashtable(avalibleMovementTiles); setTileOnPosition(Vector3Int.FloorToInt(currentCharacter.transform.position), tileCurrentCharacter); avalibleMovementTiles = AreaCalculations.GetTilesAvalibleForMovement(currentCharacter); ShowTilesFromHashtable(avalibleMovementTiles, tileAvailableForMove); } DisplayCurrentCharacterData(); }