public void UpdateEvent(TownEvent townEvent) { switch (townEvent.Tone) { case TownEventTone.Good: eventTone.sprite = tones.Find(sprite => sprite.name.EndsWith("good")); break; case TownEventTone.Bad: eventTone.sprite = tones.Find(sprite => sprite.name.EndsWith("bad")); break; case TownEventTone.Neutral: eventTone.sprite = tones.Find(sprite => sprite.name.EndsWith("neutral")); break; } eventImage.sprite = eventImages.Find(sprite => sprite.name.EndsWith(townEvent.Id)); eventName.text = LocalizationManager.GetString("town_event_title_" + townEvent.Id); eventDescription.text = LocalizationManager.GetString("town_event_description_" + townEvent.Id); bool isRecruitEvent = townEvent.Data.Find(data => data.Type == TownEventDataType.BonusRecruit || data.Type == TownEventDataType.DeadRecruit) != null; if (isRecruitEvent) { eventRecruits.gameObject.SetActive(true); eventRecruits.UpdateRecruitPanel(DarkestDungeonManager.Campaign.Estate.StageCoach.EventHeroes); eventEffects.gameObject.SetActive(false); } else { eventRecruits.gameObject.SetActive(false); eventEffects.gameObject.SetActive(true); eventEffects.text = townEvent.EffectTooltip; } }
public void IncludeEvent(TownEvent townEvent) { for (int i = 0; i < townEvent.Data.Count; i++) { EventData.AddRange(townEvent.Data); switch (townEvent.Data[i].Type) { case TownEventDataType.ActivityCostChange: if (!ActivityCostModifiers.ContainsKey(townEvent.Data[i].StringData)) { ActivityCostModifiers.Add(townEvent.Data[i].StringData, 0); } ActivityCostModifiers[townEvent.Data[i].StringData] += townEvent.Data[i].NumberData; break; case TownEventDataType.ActivityLock: if (!ActivityLocks.ContainsKey(townEvent.Data[i].StringData)) { ActivityLocks.Add(townEvent.Data[i].StringData, true); } break; case TownEventDataType.FreeActivity: if (!FreeActivities.ContainsKey(townEvent.Data[i].StringData)) { FreeActivities.Add(townEvent.Data[i].StringData, true); } break; case TownEventDataType.NoLevelRestriction: NoLevelRestrictions = true; break; case TownEventDataType.ProvisionTypeAmountChange: if (!ProvisionAmountModifiers.ContainsKey(townEvent.Data[i].StringData)) { ProvisionAmountModifiers.Add(townEvent.Data[i].StringData, 0); } ProvisionAmountModifiers[townEvent.Data[i].StringData] += townEvent.Data[i].NumberData; break; case TownEventDataType.ProvisionTypeCostChange: if (!ProvisionCostModifiers.ContainsKey(townEvent.Data[i].StringData)) { ProvisionCostModifiers.Add(townEvent.Data[i].StringData, 0); } ProvisionCostModifiers[townEvent.Data[i].StringData] += townEvent.Data[i].NumberData; break; case TownEventDataType.UpgradeTagDiscount: if (!UpgradeTagCostModifiers.ContainsKey(townEvent.Data[i].StringData)) { UpgradeTagCostModifiers.Add(townEvent.Data[i].StringData, 0); } UpgradeTagCostModifiers[townEvent.Data[i].StringData] += townEvent.Data[i].NumberData; break; case TownEventDataType.UpgradeTagFree: if (!FreeUpgradeTags.ContainsKey(townEvent.Data[i].StringData)) { FreeUpgradeTags.Add(townEvent.Data[i].StringData, 0); } FreeUpgradeTags[townEvent.Data[i].StringData] += (int)townEvent.Data[i].NumberData; break; case TownEventDataType.BonusRecruit: DarkestDungeonManager.Campaign.Estate.RestockBonus(townEvent.Data[i].StringData, (int)townEvent.Data[i].NumberData); break; case TownEventDataType.DeadRecruit: DarkestDungeonManager.Campaign.Estate.RestockFromGrave((int)townEvent.Data[i].NumberData); break; default: break; } } }