예제 #1
0
    /**
     * Spawn armor potions in the area
     */
    private void SpawnArmorPotions()
    {
        FunctionPeriodic.Create(
            () =>
        {
            if (IngestibleManager.IngestibleCount <ArmorPotion>() < _ARMOR_POTION_MAX_SPAWNS)
            {
                Vector3 armorPotionWorldPosition = new Vector3(
                    Random.Range(-_MAX_RADIUS, _MAX_RADIUS),
                    AssetManager.Get_Prefab_ArmorPotion().transform.localScale.y / 2 + AssetManager.GetTerrain().localScale.y,
                    Random.Range(-_MAX_RADIUS, _MAX_RADIUS)
                    );

                ArmorPotion armorPotion = Instantiate(
                    AssetManager.Get_Prefab_ArmorPotion(),
                    armorPotionWorldPosition,
                    Quaternion.identity
                    );

                IngestibleManager.AddIngestible(armorPotion);
            }
        },
            "SpawnArmorPotions",
            0f,
            0f,
            () =>
        {
            if (IngestibleManager.IngestibleCount <ArmorPotion>() >= _ARMOR_POTION_MAX_SPAWNS)
            {
                Destroy(GameObject.Find("SpawnArmorPotions"));
            }
        }
            );
    }
예제 #2
0
 private void Awake()
 {
     _instance = this;
     _instance._ingestibles = new List <Ingestible>();
 }