Пример #1
0
    void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }

        int index = 0;

        foreach (UnicornEnum.UnicornTypeEnum type in Enum.GetValues(typeof(UnicornEnum.UnicornTypeEnum)))
        {
            instance.unicornBackup.Add(type, instance.unicornTypes[index]);
            instance.unicornCollection.Add(type, new List <GameObject>());
            instance.unicornCollection.TryGetValue(type, out List <GameObject> value);

            for (int i = 0; i < cachedUnicorns; i++)
            {
                GameObject unicorn = Instantiate(unicornTypes[index]);
                value.Add(unicorn);
                unicorn.gameObject.SetActive(false);
            }

            index++;
        }
    }
Пример #2
0
    public static Sprite SpawnNewUnicorn(UnicornEnum.UnicornTypeEnum type)
    {
        Transform    spawn    = instance.spawnLocations[Random.Range(0, instance.spawnLocations.Count)];
        Vector3      location = spawn.position;
        GameObject   spawned  = UnicornPool.SpawnUnicorn(type);
        UnicornStats stats    = spawned.GetComponent <UnicornStats>();

        spawned.transform.position = location;
        spawned.SetActive(true);
        stats.SetSpawn(spawn);
        instance.spawnLocations.Remove(spawn);
        instance.activeUnicorns.Add(spawned);
        ParticleSpawner.SpawnParticleEffect(ParticleSpawner.Particles.UnicornSpawn, location);

        return(stats.GetSprite());
    }
Пример #3
0
        private static void SpawnAlarmCallBack()
        {
            try
            {
                if (Household.ActiveHousehold == null)
                {
                    return;
                }

                UnicornPool.sSpawnAlarm = AlarmHandle.kInvalidHandle;
                if (RandomUtil.RandomChance01(UnicornPool.kChanceOfSpawningUnicorn))
                {
                    using (BaseWorldReversion reversion = new BaseWorldReversion())
                    {
                        UnicornPool.SpawnNPCUnicorn(false);
                    }
                }
            }
            catch (Exception e)
            {
                Common.Exception("SpawnAlarmCallBack", e);
            }
        }
Пример #4
0
 public void GetPooled()
 {
     UnicornPool.AddToList(colorType, gameObject);
 }