Exemplo n.º 1
0
    public override List <GameCommand> CreateCommands()
    {
        List <GameCommand> tmpCommands = new List <GameCommand>();

        if (_battleEnd)
        {
            tmpCommands.Add(new GameCommand
            {
                Visual = "タイトルへ",
                Exec   = delegate
                {
                    SceneManager.LoadScene(SceneConfig.TitleScene);
                }
            });
        }

        if (IsCommandOk(_my))
        {
            tmpCommands.Add(new GameCommand
            {
                Visual = "たたかう",
                Exec   = (delegate {
                    BattleManager.Instance.Command(new BattleCommand
                    {
                        ActorId = _my.Id,
                        ActionCallback = BattleActionLibrary.Attack,
                        Target = TargetInfo.CreateTargetId(_enemy.Id)
                    });
                })
            });

            var items = ItemManager.Instance.Items;
            foreach (var item in items.Values)
            {
                var copiedItem = item;
                tmpCommands.Add(new GameCommand
                {
                    Visual = copiedItem.Name,
                    Exec   = delegate
                    {
                        BattleManager.Instance.Command(new BattleCommand
                        {
                            ActorId        = _my.Id,
                            ActionCallback = copiedItem.Action,
                            Target         = TargetInfo.CreateTargetId(_my.Id)
                        });

                        ItemManager.Instance.UseItem(copiedItem);
                    }
                });
            }
        }

        return(tmpCommands);
    }
Exemplo n.º 2
0
    private IEnumerator EnemyWatch()
    {
        while (true)
        {
            if (IsCommandOk(_enemy))
            {
                BattleManager.Instance.Command(
                    new BattleCommand
                {
                    ActorId        = _enemy.Id,
                    ActionCallback = BattleActionLibrary.Attack,
                    Target         = TargetInfo.CreateTargetId(_my.Id)
                });
            }

            yield return(new WaitForSeconds(WatchTime));
        }
    }