public IEnumerator InitCoroutine(BattleGroup battleGroup, BattleUnit.Team team = BattleUnit.Team.Red, List <HeroData> heroList = null) { while (actorList.Count > 0) { actorList[0].onDie -= OnDie; actorList[0].Despawn(); yield return(null); } deadTeamMemberCount = 0; teamMemberCount = 0; if (heroList == null) { yield break; } teamMemberCount = heroList.Count; for (int i = 0; i < teamMemberCount; i++) { BattleHero battleHero = null; yield return(StartCoroutine(actorPool.Instance.GetActor(heroList[i].heroID, x => battleHero = x))); if (!battleHero) { continue; } battleHero.team = team; if (battleGroup.battleType == BattleGroup.BattleType.PvP) { battleHero.InitPvP(battleGroup, heroList[i]); } else if (battleGroup.battleType == BattleGroup.BattleType.Normal) { battleHero.Init(battleGroup, heroList[i]); } battleHero.gameObject.SetActive(true); battleHero.ReGen(); battleHero.onDie += OnDie; actorList.Add(battleHero); } //스테이지 시작 trigger인 버프 적용하기 for (int i = 0; i < actorList.Count; i++) { BattleHero hero = actorList[i]; for (int a = 0; a < hero.buffController.buffList.Count; a++) { Buff buff = hero.buffController.buffList[a]; if (buff.baseData.trigger != "OnStartStage") { continue; } if (buff.triggerProbability < UnityEngine.Random.Range(1, 10001)) { continue; } BattleUnit target = null; if (buff.baseData.triggerTarget == "SkillTarget") { target = hero; } else if (buff.baseData.triggerTarget == "BuffTarget") { target = hero; } if (target && !target.isDie) { target.buffController.AttachBuff(hero, buff.baseData.triggerBuff, 1, buff); } } } }