コード例 #1
0
ファイル: Actions.cs プロジェクト: mcmelmon/archfey
    public void ActOnTurn()
    {
        CanTakeAction      |= (Me == Player.Instance.Me);
        CanTakeBonusAction |= (Me == Player.Instance.Me);

        if (Stealth.IsHiding)
        {
            Stealth.Hide(); // re-up the Stealth CR for the round; TODO: account for obscurity at the new location, etc
        }

        if (Stealth.IsPerforming)
        {
            Stealth.Performance(); // re-up the Performance CR
        }

        Decider.ChooseState();

        switch (Decider.state)
        {
        case Decider.State.BadlyInjured:
            OnBadlyInjured?.Invoke();
            break;

        case Decider.State.Crafting:
            OnCrafting?.Invoke();
            break;

        case Decider.State.FriendsInNeed:
            OnFriendsInNeed?.Invoke();
            break;

        case Decider.State.FriendlyActorsSighted:
            OnFriendlyActorsSighted?.Invoke();
            break;

        case Decider.State.DamagedFriendlyStructuresSighted:
            OnDamagedFriendlyStructuresSighted?.Invoke();
            break;

        case Decider.State.FullLoad:
            OnFullLoad?.Invoke();
            break;

        case Decider.State.Harvesting:
            OnHarvesting?.Invoke();
            break;

        case Decider.State.HasObjective:
            OnHasObjective?.Invoke();
            break;

        case Decider.State.HostileActorsSighted:
            OnHostileActorsSighted?.Invoke();
            break;

        case Decider.State.HostileStructuresSighted:
            OnHostileStructuresSighted?.Invoke();
            break;

        case Decider.State.Idle:
            OnIdle?.Invoke();
            break;

        case Decider.State.InCombat:
            OnInCombat?.Invoke();
            break;

        case Decider.State.Medic:
            OnMedic?.Invoke();
            break;

        case Decider.State.MovingToGoal:
            OnMovingToGoal?.Invoke();
            break;

        case Decider.State.NeedsRest:
            OnNeedsRest?.Invoke();
            break;

        case Decider.State.ReachedGoal:
            OnReachedGoal?.Invoke();
            break;

        case Decider.State.Resting:
            OnResting?.Invoke();
            break;

        case Decider.State.UnderAttack:
            OnUnderAttack?.Invoke();
            break;

        case Decider.State.Watch:
            OnWatch?.Invoke();
            break;

        default:
            OnIdle?.Invoke();
            break;
        }
    }