// this function check mouse clicked on the building in map or // it is clicked for soldier // when clicked left on soldier, it is selected, after this when click empty grid cell right click, soldier starts to move. private void CheckClickIsGameObject(int clickedXIndex, int clickedYIndex, int mouseClickType) { BuildingEventType eventType = new BuildingEventType(); foreach (BuildingEventTypes enumType in eventType.GetValidEventTypes()) { for (int i = 0; i < _buildingsList[enumType].Count; i++) { if (_buildingsList[enumType][i].CheckCollision(clickedXIndex, clickedYIndex)) { InfoController.Instance().ShowInfoClickedObject(_buildingsList[enumType][i]); break; } } } if (mouseClickType == 0) { if (_gridCellCellArray[clickedXIndex, clickedYIndex].GridCellType == GridCellTypes.Soldier) { foreach (var soldier in _soldiersList) { if (soldier.transform.position == _gridCellGameObjectArray[clickedXIndex, clickedYIndex].transform.position) { soldier.GetComponent <SoldierView>().GetSoldierController().SetSoldierXIndex(clickedXIndex); soldier.GetComponent <SoldierView>().GetSoldierController().SetSoldierYIndex(clickedYIndex); soldier.GetComponent <SoldierView>().SetSoldierXIndex(clickedXIndex); soldier.GetComponent <SoldierView>().SetSoldierYIndex(clickedYIndex); soldier.GetComponent <SoldierView>().GetSoldierController().SetSoldierSelected(true); } else { soldier.GetComponent <SoldierView>().GetSoldierController().SetSoldierSelected(false); } } _soldierClickedChecker = true; } else { _soldierClickedChecker = false; } } if (mouseClickType == 1) { if (_gridCellCellArray[clickedXIndex, clickedYIndex].GridCellType == GridCellTypes.Empty && _soldierClickedChecker) { foreach (var soldier in _soldiersList) { if (soldier.GetComponent <SoldierView>().GetSoldierController().GetSoldierSelected() == true) { if (soldier.GetComponent <SoldierView>().GetSoldierController().GetSoldierMoving() == false) { if (soldier.GetComponent <SoldierView>().GetSoldierController().GetSoldierHasPath() == false) { _soldierPath = _shortestPath.GetShortestPathWithAStarAlgorithm(soldier, (int)clickedXIndex, (int)clickedYIndex); soldier.GetComponent <SoldierView>().SetSoldierPath(_soldierPath); soldier.GetComponent <SoldierView>().GetSoldierController().SetSoldierPath(_soldierPath); soldier.GetComponent <SoldierView>().GetSoldierController().SetSoldierHasPath(true); if (_soldierPath == null) { soldier.GetComponent <SoldierView>().GetSoldierController().SetSoldierHasPath(false); } else if (_soldierPath.Count == 1) { soldier.GetComponent <SoldierView>().SetSoldierMovingXIndex(_soldierPath[0].XIndex); soldier.GetComponent <SoldierView>().SetSoldierMovingYIndex(_soldierPath[0].YIndex); soldier.GetComponent <SoldierView>().GetSoldierController().SetSoldierMovingXIndex(_soldierPath[0].XIndex); soldier.GetComponent <SoldierView>().GetSoldierController().SetSoldierMovingYIndex(_soldierPath[0].YIndex); soldier.GetComponent <SoldierView>().StartMove(); } else if (_soldierPath.Count > 1) { Debug.Log("asdfas"); soldier.GetComponent <SoldierView>().SetSoldierMovingXIndex(_soldierPath[1].XIndex); soldier.GetComponent <SoldierView>().SetSoldierMovingYIndex(_soldierPath[1].YIndex); soldier.GetComponent <SoldierView>().GetSoldierController().SetSoldierMovingXIndex(_soldierPath[1].XIndex); soldier.GetComponent <SoldierView>().GetSoldierController().SetSoldierMovingYIndex(_soldierPath[1].YIndex); soldier.GetComponent <SoldierView>().StartMove(); } } } } } } } }
public static void TriggerEvent(BuildingEventType type, Building building) { m_buildingEvents[type].Raise(building); }