Exemplo n.º 1
0
 public void UseHealing()
 {
     // TODO: switch healing interactable for each unit
     // and channel alpha of image of button
     actionBT[1].interactable = false;
     unitSelection.GetSelectedUnit().Heal();
 }
Exemplo n.º 2
0
        private void DoAction(Vector3 targetPosition)
        {
            if (cellManager.GetCell(targetPosition) != null)
            {
                Debug.Log(actionDefiner.DefineAction(targetPosition));
                switch (actionDefiner.DefineAction(targetPosition))
                {
                case ActionDefiner.Action.SelectCell:
                    cellSelection.SelectCell(cellManager.GetCell(targetPosition));
                    unitSelection.DeselectUnit();
                    break;

                case ActionDefiner.Action.SelectFriend:
                    cellSelection.SelectCell(cellManager.GetCell(targetPosition));
                    unitSelection.SelectUnit(unitsList.GetUnit(targetPosition));
                    unitSelection.GetSelectedUnit().ShowActions();
                    break;

                case ActionDefiner.Action.SelectEnemy:
                    cellSelection.SelectCell(cellManager.GetCell(targetPosition));
                    unitSelection.SelectUnit(unitsList.GetUnit(targetPosition));
                    break;

                case ActionDefiner.Action.Attack:
                    unitSelection.GetSelectedUnit().HideActions();
                    unitSelection.GetSelectedUnit().Attack(targetPosition);
                    break;

                case ActionDefiner.Action.ShowActions:
                    cellSelection.SelectCell(cellManager.GetCell(targetPosition));
                    unitSelection.GetSelectedUnit().ShowActions();
                    break;

                case ActionDefiner.Action.Spawn:
                    cellSelection.SelectCell(cellManager.GetCell(targetPosition));
                    spawnMenu.Open();
                    break;

                case ActionDefiner.Action.Cancel:
                    unitSelection.GetSelectedUnit().HideActions();
                    break;

                case ActionDefiner.Action.Move:
                    cellSelection.SelectCell(cellManager.GetCell(targetPosition));
                    unitSelection.GetSelectedUnit().MoveTo(targetPosition);
                    break;

                case ActionDefiner.Action.Ignore:
                    break;
                }
                GameEvents.GetInstance().ActionDone();
            }
        }
Exemplo n.º 3
0
 private Action CellAction(Vector3 targetPosition)
 {
     if (unitSelection.GetSelectedUnit() == null)
     {
         return(Action.SelectCell);
     }
     else
     {
         if (unitSelection.GetSelectedUnit().state == Unit.UnitState.Waiting)
         {
             if (pathFinder.CanRich(targetPosition))
             {
                 return(Action.Move);
             }
             else
             {
                 return(Action.Cancel);
             }
         }
         else
         {
             return(Action.SelectCell);
         }
     }
 }
Exemplo n.º 4
0
        private Cell[] GetPossibleCells()
        {
            var pCells       = new List <Cell>();
            var unitPosition = selectedUnit.GetSelectedUnit().transform.position;
            var unitSpeed    = selectedUnit.GetSelectedUnit().GetSpeed();

            foreach (Cell cell in cells.GetAllCells())
            {
                if (Vector3.Distance(unitPosition, cell.transform.position) <= unitSpeed + 0.1f)
                {
                    //if(units.GetUnit(cell) == null)
                    //{
                    pCells.Add(cell);
                    //}
                }
            }
            return(pCells.ToArray());
        }