IEnumerator RefreshAgents() { while (true) { if (PETools.PEUtil.SqrMagnitudeH(PeCreature.Instance.mainPlayer.position, Center) <= _playerRadius * _playerRadius) { int n = GetEntitiesCnt(); if (n < _maxCntOfMonsters && _posOfMonsters != null && _posOfMonsters.Length > 0 && _protoIdsOfMonsters != null && _protoIdsOfMonsters.Length > 0) { Vector3 pos = GetSpawnPos(); int protoId = GetProtoId(); if (PeGameMgr.IsAdventure) { SceneDoodadLodCmpt lod = GetComponentInParent <SceneDoodadLodCmpt> (); if (lod != null && lod.Index >= 0) { int allyId = VArtifactTownManager.Instance.GetTownByID(lod.Index).AllyId; int playerId = VATownGenerator.Instance.GetPlayerId(allyId); int allyColor = VATownGenerator.Instance.GetAllyColor(allyId); MonsterEntityCreator.CreateAdMonster(protoId, pos, allyColor, playerId); } } else { MonsterEntityCreator.CreateMonster(protoId, pos); } // } } yield return(new WaitForSeconds(UnityEngine.Random.Range(_timeIntervalMinMax.x, _timeIntervalMinMax.y))); } }
void Start() { //PeEntity entity = null; if (protoType == ProtoType.Doodad) { DoodadEntityCreator.CreateDoodad(protoID, transform.position); } else if (protoType == ProtoType.NpcRandom) { NpcEntityCreator.CreateNpc(protoID, transform.position); } else if (protoType == ProtoType.NpcLine) { NpcEntityCreator.CreateStoryLineNpcFromID(protoID, transform.position); } else { MonsterEntityCreator.CreateAdMonster(protoID, transform.position, colorId, -1); } Destroy(gameObject); }