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);
    }