예제 #1
0
    void Update()
    {
        //Rotate health UI to camera rotation
        transform.GetChild(0).localEulerAngles = new Vector3(0, Camera.main.transform.root.GetChild(0).rotation.eulerAngles.y, 0);

        //HACK: AI Movement?
        if (isMyTurn && !mapConfig.turnSystem.playerTurn && unitConfig.actionPoints.CheckAvailableActions(unitConfig.unitClassStats.moveCost) && unitConfig.CheckUnitState(UnitConfig.UnitState.Idle))
        {
            int currentActions = unitConfig.actionPoints.ReturnAvailableActions();
            foreach (UnitConfig unit in unitConfig.mapConfig.turnSystem.playerUnits)
            {
                IsPlayerNextToMe(unit.tileX, unit.tileY);
                if (isAttacking)
                {
                    break;
                }
            }

            if (!isAttacking)
            {
                FindClosestPlayerUnit();
            }

            unitConfig.EnemyMoveNextTile();
            if (currentActions == unitConfig.actionPoints.ReturnAvailableActions())
            {
                unitConfig.actionPoints.SubtractAllActions();
            }
        }
        if (isMyTurn && !unitConfig.actionPoints.CheckAvailableActions(1) && unitConfig.CheckUnitState(UnitConfig.UnitState.Idle))
        {
            if (mapConfig.turnSystem.enemyUnits.Count > mapConfig.turnSystem.enemyIndex)
            {
                isAttacking = false;
                isMyTurn    = false;
                mapConfig.turnSystem.StartNextEnemy();
            }
        }
    }