Esempio n. 1
0
 public void SetPlayer(BattleCharaModel m)
 {
     if (chara.Count < 2)
     {
         chara.Add(m);
     }
 }
Esempio n. 2
0
    IEnumerator Start()
    {
        Debug.Log("[DiceSeq] Start");
        if (PlayerManager.Instance.CurrentPlayerModel.CurrentBattle == null)
        {
            BattleController = new BattleController();
            BattleController.SetPlayer(CreateBattleChara(PlayerManager.Instance.CurrentPlayerModel));
        }
        else
        {
            BattleController = PlayerManager.Instance.CurrentPlayerModel.CurrentBattle;
        }

        var currentChara = BattleController.Chara;


        var otherChara = SearchAndCreateBattleCharaModels(
            PlayerManager.Instance.CurrentPlayerModel.Id,
            PlayerManager.Instance.CurrentPlayerModel.Status.MapPos);//同じマスのぷれいやーけんさく

        //すでに戦闘中の敵がいれば選択肢に追加
        otherChara.AddRange(currentChara.Where(c => c.PlayerId != PlayerManager.Instance.CurrentPlayerModel.Id).ToList());

        BattleCharaModel selected = null;

        if (otherChara.Count > 0)
        {
            var index = 0;
            if (otherChara.Count > 1)
            { //選ばせる。
                yield return(InputManager.Instance.WaitForSelect(
                                 PlayerManager.Instance.CurrentPlayerModel,
                                 otherChara.Select(c => c.Name).ToArray(),
                                 num => { index = num; }));
            }

            selected = otherChara[index];
            BattleController.Clear();
            BattleController.SetPlayer(CreateBattleChara(PlayerManager.Instance.CurrentPlayerModel));
            BattleController.SetPlayer(selected);
        }
        else
        {
            //新しいエネミー
            //todo ますたーからひっぱる
            BattleController.SetPlayer(new BattleCharaModel()
            {
                additionalStatus = new StatusModel(),
                status           = new StatusModel(),
                isPlayer         = false,
                Name             = "dummy"
            });
        }



        _statemachine.Next(BattleSequence.State.WaitInput);
        yield return(null);
    }