コード例 #1
0
        private TurnStateEnum GetNext()
        {
            TurnStateEnum next = ReturnExecute[current];

            current = ((current + 1) % ReturnExecute.Count);
            return(next);
        }
コード例 #2
0
        protected override void Setup()
        {
            player = new Player(always10, 11, 11, FightingStyle.Archery, mh, ohs, feats, buffs);
            enemy  = new Enemy(14);
            status = new PlayerStatus(always10, player);

            ret = (TurnStateEnum)(999);
        }
コード例 #3
0
ファイル: InfoStrings.cs プロジェクト: mike-live/RWGame
 public static string ToDescriptionString(this TurnStateEnum val)
 {
     DescriptionAttribute[] attributes = (DescriptionAttribute[])val
                                         .GetType()
                                         .GetField(val.ToString())
                                         .GetCustomAttributes(typeof(DescriptionAttribute), false);
     return(attributes.Length > 0 ? attributes[0].Description : string.Empty);
 }
コード例 #4
0
        public ITurnState Get(TurnStateEnum state)
        {
            Assert.ValidEnum(state);
            Assert.IsTrue(state != TurnStateEnum.Error);

            TurnState turnState = null;

            switch (state)
            {
            case TurnStateEnum.Start:
            {
                turnState = new StartTurnEvent();
                break;
            }

            case TurnStateEnum.FirstTurnSpellBuff:
            {
                turnState = new FirstTurnSpellBuffEvent();
                break;
            }

            case TurnStateEnum.ActionSurge:
            {
                turnState = new ActionSurgeEvent();
                break;
            }

            case TurnStateEnum.Action:
            {
                turnState = new ActionEvent();
                break;
            }

            case TurnStateEnum.OffHandAttack:
            {
                turnState = new OffHandAttackEvent();
                break;
            }

            case TurnStateEnum.End:
            {
                turnState = new EndTurnEvent();
                break;
            }

            default:
            {
                throw new ArgumentException($"Invalid turn state {state}.");
            }
            }

            return(turnState);
        }
コード例 #5
0
        public override TurnStateEnum Execute(IPlayerStatus player, IEnemy enemy)
        {
            Validate(player, enemy);

            TurnStateEnum ret = TurnStateEnum.End;

            if (!IsBroken(player.MainHand))
            {
                ret = UseAction(player, enemy);
            }

            return(ret);
        }
コード例 #6
0
        private TurnStateEnum UseAction(IPlayerStatus player, IEnemy enemy)
        {
            TurnStateEnum ret = TurnStateEnum.End;

            if (IsMisfired(player.MainHand))
            {
                ret = UseActionFixMisfire(player);
            }
            else
            {
                ret = UseAttackAction(player, enemy);
            }

            return(ret);
        }
コード例 #7
0
        public TurnStateEnum Execute(IPlayerStatus player, IEnemy enemy)
        {
            if (ReturnExecute[current] == TurnStateEnum.End)
            {
                MockPlayerStatus mockPlayer = (MockPlayerStatus)player;
                mockPlayer.NumberOfTurnsPassed++;
                TurnComplete = true;
            }
            else
            {
                TurnComplete = false;
            }

            TurnStateEnum next = GetNext();

            return(next);
        }
コード例 #8
0
ファイル: PartyController.cs プロジェクト: hdunphy/Card-Game
    private void Awake()
    {
        Mingmings        = new List <Mingming>();
        CurrentTurnState = TurnStateEnum.PostTurn;
        TurnStateMachine = new Dictionary <TurnStateEnum, ITurnStateMachine>
        {
            { TurnStateEnum.PreTurn, new PreTurnState() },
            { TurnStateEnum.AttackTurn, new AttackTurnState() },
            { TurnStateEnum.PostTurn, new PostTurnState() },
            { TurnStateEnum.End, new EndTurnState() }
        };

        foreach (TurnStateEnum _enum in TurnStateMachine.Keys)
        {
            TurnStateEvent _event = stateEvents.Find(x => x.StateEnum.Equals(_enum));
            if (_event != null)
            {
                TurnStateMachine[_enum].SetEvent(_event.Event);
            }
        }
    }
コード例 #9
0
 public ITurnState Get(TurnStateEnum state)
 {
     return(ReturnState);
 }
コード例 #10
0
ファイル: PartyController.cs プロジェクト: hdunphy/Card-Game
 private void Instance_BattleOver(PartyController obj)
 {
     CurrentTurnState = TurnStateEnum.End;
 }
コード例 #11
0
ファイル: PartyController.cs プロジェクト: hdunphy/Card-Game
 public void StartTurn()
 {
     CurrentTurnState = TurnStateEnum.PreTurn;
     TurnStateMachine[CurrentTurnState].Invoke();
 }
コード例 #12
0
ファイル: PartyController.cs プロジェクト: hdunphy/Card-Game
 public void GetNextTurnState()
 {
     CurrentTurnState = TurnStateMachine[CurrentTurnState].GetNextState();
     TurnStateMachine[CurrentTurnState].Invoke();
 }