// Update is called once per frame void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hitInfo; if (Physics.Raycast(ray, out hitInfo)) { Tile hitTile = hitInfo.collider.GetComponentInParent <Tile>(); HoverTile(hitTile); //Set current tile as hovered tile. } else { //myHoveredIndicator.disableSelection(); ClearSelection(); } if (Input.GetMouseButtonDown(0)) { if (hoveredTile != null) { UnitCheck = hoveredTile.GetComponentInChildren <Unit>(); if (UnitCheck != null) { temp = UnitCheck.GetComponentInChildren <PlayerOwned>(); checkPlayer = temp.owner; if (checkPlayer == currentPlayer) { selectedTile = hoveredTile; SelectObject(selectedTile); mySelectedIndicator.activateSelection(); } } if (UnitCheck == null || (checkPlayer == currentPlayer)) { selectedTile = hoveredTile; SelectObject(selectedTile); mySelectedIndicator.activateSelection(); } } } if (Input.GetMouseButtonUp(1)) { UnitCheck.MoveNextTile(); } if (Input.GetKeyDown(KeyCode.Escape)) { selectedTile = null; mySelectedIndicator.disableSelection(); } if (Input.GetKeyDown(KeyCode.UpArrow)) { UnitCheck.MoveNextTile(); } }
// Temporary until we figure out a better way to decide where to spawn. //public Vector2Int SpawnCoordinate; public void SpawnUnit(Tile tile) { bool canAfford = true; for (int i = 0; i < Costs.Count; i++) { if (!Costs[i].CanAfford()) { canAfford = false; } } if (canAfford) { for (int i = 0; i < Costs.Count; i++) { Costs[i].Pay(); } Unit newUnit = Instantiate(Prototype); PlayerOwned ownertag = newUnit.GetComponent <PlayerOwned>(); if (ownertag == null) { Debug.LogError("Unit needs to have a player owned component"); } Player owner = GetComponentInParent <Player>(); ownertag.setOwner(owner); newUnit.transform.SetParent(tile.transform, false); //Debug.Log("SET GRID?"); newUnit.SetGrid(Map); newUnit.tileX = tile.X; newUnit.tileY = tile.Y; Map.SelectedUnit = newUnit; } else { Debug.Log("Not enough resources!"); } }
public void SpawnUnit() { bool canAfford = true; for (int i = 0; i < Costs.Count; i++) { if (!Costs[i].CanAfford()) { canAfford = false; } } if (canAfford) { for (int i = 0; i < Costs.Count; i++) { Costs[i].Pay(); } Unit newUnit = Instantiate(Prototype); Cell cell = Map.GetCell(SpawnCoordinate.x = Random.Range(0, 5), SpawnCoordinate.y = Random.Range(0, 5)); PlayerOwned ownertag = newUnit.GetComponent <PlayerOwned>(); if (ownertag == null) { Debug.LogError("Unit needs to have a PlayerOwned component"); } Player owner = GetComponentInParent <Player>(); ownertag.setOwner(owner); newUnit.transform.SetParent(cell.transform, false); } else { Debug.Log("Not enough resources!"); } }
public void SpawnUnit(Cell cell) { bool canAfford = true; for (int i = 0; i < Costs.Count; i++) { if (!Costs[i].CanAfford()) { canAfford = false; } } if (canAfford) { for (int i = 0; i < Costs.Count; i++) { Costs[i].Pay(); } Unit newUnit = Instantiate(Prototype); PlayerOwned ownerTag = newUnit.GetComponent <PlayerOwned>(); if (ownerTag == null) { Debug.LogError("Unit needs to have a PlayerOwned component"); } else { ownerTag.SetOwner(owner); } newUnit.transform.SetParent(cell.transform, false); } else { Debug.Log("Not enough resources!"); } }
void Start() { unit = GetComponent <Unit>(); ownerData = GetComponent <PlayerOwned>(); }
public bool IsHostile(PlayerOwned other) { return(Owner.IsHostile(other.Owner)); }