Пример #1
0
    private void VoidEvent_Started(VoidEvent.EventType eventType, int tier)
    {
        TutorialController.Instance.TriggerEvent(TutorialController.Triggers.FIRST_EVENT);
        switch (eventType)
        {
        case VoidEvent.EventType.Junkyard:
            Debug.Log("Junkyard " + tier + " begin.");
            blockSpawner.SetJunkyardTier(tier);
            blockSpawner.BeginJunkyardEvent();
            TutorialController.Instance.TriggerEvent(TutorialController.Triggers.FIRST_URANIUM);
            break;

        case VoidEvent.EventType.Radiation:
            Debug.Log("Radiation " + tier + " begin.");
            blockSpawner.SetVestigesPerBlock(tierToVestigeCount[tier]);
            blockSpawner.SetVestigeLevel(tierToVestigeLevel[tier]);
            grid.SetBaseEnergyDecayRateBonus(tierToDecayBonus[tier]);
            TutorialController.Instance.TriggerEvent(TutorialController.Triggers.FIRST_CONTAMINATION);
            break;

        case VoidEvent.EventType.Asteroids:
            Debug.Log("Asteroids " + tier + " begin.");
            grid.AddAsteroids(tierToAsteroidCount[tier]);
            TutorialController.Instance.TriggerEvent(TutorialController.Triggers.FIRST_BREACH);
            break;
        }
    }
Пример #2
0
    // Read variables from JSON data.
    private void Tune()
    {
        JSONNode json = JSON.Parse(voidEventsJSON.ToString());

        // Read JSON data for tier-specific data.
        JSONNode nodeTierData = json["tier-specific data"];

        for (int i = 0; i < nodeTierData.Count; ++i)
        {
            JSONNode nodeTier = nodeTierData[i];
            int      tier     = nodeTier["tier"].AsInt;
            int      radiationVestigeCount = nodeTier["radiation vestige count"].AsInt;
            tierToVestigeCount.Add(tier, radiationVestigeCount);
            int radiationVestigeLevel = nodeTier["radiation vestige level"].AsInt;
            tierToVestigeLevel.Add(tier, radiationVestigeLevel);
            int radiationBEDRB = nodeTier["radiation base energy decay rate bonus"].AsInt;
            tierToDecayBonus.Add(tier, radiationBEDRB);
            int asteroidCount = nodeTier["asteroid count"].AsInt;
            tierToAsteroidCount.Add(tier, asteroidCount);
        }

        // Read the actual void event JSON data.
        JSONNode nodeEvents = json["events"];

        for (int i = 0; i < nodeEvents.Count; ++i)
        {
            JSONNode  nodeEvent = nodeEvents[i];
            int       begin     = nodeEvent["begin"].AsInt;
            int       end       = nodeEvent["end"].AsInt;
            JSONArray types     = nodeEvent["types"].AsArray;

            List <VoidEvent> myEvents = new List <VoidEvent>();
            for (int j = 0; j < types.Count; ++j)
            {
                string typeString = types[j];
                char   tierLetter = typeString[0];
                char   typeLetter = typeString[1];

                VoidEvent.EventType theType = letterBindings[typeLetter];
                int tier = (int)char.GetNumericValue(tierLetter);

                VoidEvent newEvent = new VoidEvent(theType, tier);
                newEvent.Started  += VoidEvent_Started;
                newEvent.Finished += VoidEvent_Finished;
                myEvents.Add(newEvent);
            }

            VoidEventGroup newEventGroup = new VoidEventGroup(myEvents, begin, end);
            newEventGroup.Started += VoidEventGroup_Started;
            voidEventGroups.Add(newEventGroup);
        }
    }
Пример #3
0
    private void VoidEvent_Finished(VoidEvent.EventType eventType, int tier)
    {
        switch (eventType)
        {
        case VoidEvent.EventType.Junkyard:
            Debug.Log("Junkyard " + tier + " end.");
            blockSpawner.SetJunkyardTier(0);
            blockSpawner.EndJunkyardEvent();
            break;

        case VoidEvent.EventType.Radiation:
            Debug.Log("Radiation " + tier + " end.");
            blockSpawner.SetVestigesPerBlock(0);
            grid.SetBaseEnergyDecayRateBonus(0);
            // Don't need to do anything to vestige level.
            break;

        case VoidEvent.EventType.Asteroids:
            Debug.Log("Asteroids " + tier + " end.");
            grid.ClearAllAsteroids();
            break;
        }
    }