Beispiel #1
0
        protected override void OnOpen(params object[] args)
        {
            battleInfo = args[0] as BattleBeginReceive;
            stageInfo  = Entity.Instance.StageInfo;

            // 敵配置
            for (int i = 0; i < battleInfo.enemies.Length; i++)
            {
                var enemy = Instantiate(enemyUnitPrefab, enemiesArea.transform);
                enemy.name = enemy.name.Replace("(Clone)", "");
                var unit = enemy.GetComponent <Unit>();
                unit.Setup(battleInfo.enemies[i]);
                combat.AddEnemy(unit);
                units.Add(unit);
            }
            // 自分のユニット配置
            for (int i = 0; i < stageInfo.pets.Length; i++)
            {
                var item = Entity.Instance.PetList.Find(stageInfo.pets[i]);
                if (item != null)
                {
                    var pet = Instantiate(playerUnitPrefab, playersArea.transform);
                    pet.name = pet.name.Replace("(Clone)", "");
                    var unit = pet.GetComponent <Unit>();
                    unit.Setup(item);
                    combat.AddPlayer(unit);
                    units.Add(unit);
                }
            }

            Observer.Instance.Subscribe(Combat.StartEvent, OnSubscribe);
            Observer.Instance.Subscribe(Combat.TurnEvent, OnSubscribe);
            Observer.Instance.Subscribe(Combat.MoveEvent, OnSubscribe);
            Observer.Instance.Subscribe(Combat.PlayEvent, OnSubscribe);
            Observer.Instance.Subscribe(Combat.ResultEvent, OnSubscribe);

            combat.Next();
            base.OnOpen(args);
        }