Ejemplo n.º 1
0
 private void SpawnEnemy()
 {
     enemyToSpawn = enemies[Random.Range(0, enemies.Length)];
     GetFreeSnapPoints();
     if (freeSnapPoints.Count == 0)
     {
         return;
     }
     enemyToSpawn = Instantiate(enemyToSpawn, GetSpawnPosition(), Quaternion.identity);
     enemyToSpawn.CurrentSnapPoint = tempSnapPoints;
     enemyToSpawn.OnDeatForQuest  += quest.CheckQuests;
     enemiesMover.AddEnemy(enemyToSpawn);
     combat.AddEnemy(enemyToSpawn);
 }
Ejemplo n.º 2
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);
        }