public void OnMouseClick() { Player currentPlayer = PlayerManager.Instance.getCurrentPlayer(); // If an object is currently selected, check if unit and then move to current tile if (currentPlayer.selectedObject != null) { if (currentPlayer.selectedObject.tag == "Unit") { // if the tile is marked as traversable travel to it Vector2i tilePos = GLOBAL.worldToGrid(transform.position); if (TileMarker.Instance.travTiles.ContainsKey(tilePos)) { currentPlayer.selectedObject.GetComponent <Unit>().TravelToPos(tilePos); TileMarker.Instance.Clear(); } // if the tile is marked with an AoE tile, begin AoE selection else if (TileMarker.Instance.AoETiles.ContainsKey(tilePos)) { //TileMarker.Instance.Clear(); // clear purple tiles //CombatSequence.Instance.AoEWeapon.markAoEPattern(GLOBAL.worldToGrid(transform.position)); //CombatSequence.Instance.AoERoot = GLOBAL.worldToGrid(transform.position); //UIManager.Instance.activateAttackButton(); // activate confirm button for AoE attacks } } } }
public void createNext() { Unit unit = CombatSequence.Instance.attacker;//PlayerManager.Instance.getCurrentPlayer().selectedObject.GetComponent<Unit>(); Vector2i next = GLOBAL.worldToGrid(transform.position) + direction; if (next.x >= 0 && next.x < MapScript.Instance.mapWidth && next.y >= 0 && next.y < MapScript.Instance.mapHeight) { GameObject go = GameObject.Instantiate(Resources.Load("WeaponEffects/EnergyGreen") as GameObject, GLOBAL.gridToWorld(GLOBAL.worldToGrid(transform.position) + direction), Quaternion.identity) as GameObject; go.GetComponent <EnergyChainShot>().max = max; go.GetComponent <EnergyChainShot>().direction = direction; } }
public void OnMouseClick() { CombatSequence combatSequence = CombatSequence.Instance; TileMarker.Instance.Clear(); // clear purple tiles combatSequence.AoEWeapon.markAoEPattern(GLOBAL.worldToGrid(transform.position)); combatSequence.AoERoot = GLOBAL.worldToGrid(transform.position); UIManager.Instance.activateAttackButton(); // activate confirm button for AoE attacks }
public void destroy() { Vector2i pos = GLOBAL.worldToGrid(transform.position); Unit unit = CombatSequence.Instance.attacker;//PlayerManager.Instance.getCurrentPlayer().selectedObject.GetComponent<Unit>(); if (pos.Distance(unit.pos) == max) { // last shot, administer damage (TODO: only administer once regardless of how many max distance tiles there are) CombatSequence.Instance.AoEDamage(); } Destroy(gameObject); }