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;
        }
    }
Пример #2
0
    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;
            }
        }
    }