public override void Enter(StateController <BattleSystem.BattlePhase> owner, IStateArgument argument = null)
            {
                var arg = new InvokeCommand.Argument
                {
                    command        = battleSystem.Enemy.GetCommand(),
                    commandInvoker = battleSystem.Enemy,
                    completeInvokeCommandAction = () => owner.Change(BattleSystem.BattlePhase.EnemyTurnEnd)
                };

                owner.Change(BattleSystem.BattlePhase.InvokeCommand, arg);
            }
 public override void Enter(StateController <BattleSystem.BattlePhase> owner, IStateArgument argument = null)
 {
     battleSystem.Enemy.EndTurn()
     .Subscribe(_ =>
     {
         if (battleSystem.CanEnd())
         {
             owner.Change(BattleSystem.BattlePhase.End);
         }
         else
         {
             owner.Change(BattleSystem.BattlePhase.PlayerTurnStart);
         }
     })
     .AddTo(ActiveDisposables);
 }
 public override void Enter(StateController <BattleSystem.BattlePhase> owner, IStateArgument argument = null)
 {
     battleSystem.UIView.SetCommandButtonInteractable(true);
     battleSystem.UIView.SelectCommandAsObservable()
     .Subscribe(x =>
     {
         var arg = new InvokeCommand.Argument
         {
             command        = x.Command,
             commandInvoker = battleSystem.Player,
             completeInvokeCommandAction = () => owner.Change(BattleSystem.BattlePhase.PlayerTurnEnd)
         };
         x.ResetCoolTime();
         owner.Change(BattleSystem.BattlePhase.InvokeCommand, arg);
     })
     .AddTo(ActiveDisposables);
 }
示例#4
0
 public override void Enter(StateController <BattleSystem.BattlePhase> owner, IStateArgument argument = null)
 {
     battleSystem.Player.StartBattle()
     .Subscribe();
     battleSystem.Enemy.StartBattle()
     .Subscribe();
     battleSystem.UIView.EnemyStatusView.Setup(battleSystem.Enemy);
     battleSystem.UIView.PlayerStatusView.Setup(battleSystem.Player);
     battleSystem.UIView.CreateCommandButton(battleSystem.Player.Commands);
     battleSystem.UIView.SetCommandButtonInteractable(false);
     owner.Change(BattleSystem.BattlePhase.PlayerTurnStart);
 }
            public override void Enter(StateController <BattleSystem.BattlePhase> owner, IStateArgument argument = null)
            {
                var arg = (Argument)argument;

                Assert.IsNotNull(arg);

                battleSystem.UIView.SetCommandButtonInteractable(false);
                battleSystem.InvokeCommand(arg.commandInvoker, arg.command)
                .Subscribe(x =>
                {
                    if (battleSystem.CanEnd())
                    {
                        owner.Change(BattleSystem.BattlePhase.End);
                    }
                }, () =>
                {
                    if (!battleSystem.CanEnd())
                    {
                        arg.completeInvokeCommandAction();
                    }
                })
                .AddTo(ActiveDisposables);
            }
 public override void Enter(StateController <BattleSystem.BattlePhase> owner, IStateArgument argument = null)
 {
     battleSystem.Player.StartTurn();
     owner.Change(BattleSystem.BattlePhase.PlayerSelectCommand);
 }
示例#7
0
 public override void Enter(StateController <BattleSystem.BattlePhase> owner, IStateArgument argument = null)
 {
     owner.Change(BattleSystem.BattlePhase.EnemySelectCommand);
 }