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