Exemple #1
0
        public static void addCommodityMultiplier(Sim s, CommodityKind commodity, float multiplier)
        {
            BuffCommodityDecayModifier.BuffInstanceCommodityDecayModifier buffModifier
                = s.BuffManager.GetElement(BuffNames.CommodityDecayModifier)
                  as BuffCommodityDecayModifier.BuffInstanceCommodityDecayModifier;

            if (buffModifier == null)
            {
                BuffManager.BuffDictionary.TryGetValue((ulong)BuffNames.CommodityDecayModifier,
                                                       out BuffInstance value);
                if (value == null)
                {
                    StyledNotification.Show(new StyledNotification.Format("ERROR Add Commodity Multiplier buff failed for: "
                                                                          + s.Name, StyledNotification.NotificationStyle.kDebugAlert));
                    return;
                }

                buffModifier = (BuffCommodityDecayModifier.BuffInstanceCommodityDecayModifier)value;
                buffModifier.mTimeoutPaused = true;
                buffModifier.SetCustomBuffInstanceName("EWDecayModifierBuff");
                buffModifier.SetCustomBuffInstanceDescription("EWDecayModifierBuff_BuffDescription");
                buffModifier.SetThumbnail("moodlet_whackedout", 0x48000000, s);
                s.BuffManager.AddBuff(buffModifier);
            }
            buffModifier.AddCommodityMultiplier(commodity, multiplier);
        }
Exemple #2
0
        public static void removeCommodityMultiplier(Sim s, CommodityKind commodity, float multiplier)
        {
            BuffCommodityDecayModifier.BuffInstanceCommodityDecayModifier buffModifier
                = s.BuffManager.GetElement(BuffNames.CommodityDecayModifier)
                  as BuffCommodityDecayModifier.BuffInstanceCommodityDecayModifier;
            if (buffModifier == null)
            {
                StyledNotification.Show(new StyledNotification.Format("ERROR Remove " + commodity +
                                                                      " multiplier failed for: " + s.Name, StyledNotification.NotificationStyle.kDebugAlert));
                return;
            }

            buffModifier.AddCommodityMultiplier(commodity, 1 / multiplier);
            if (buffModifier.GetCommodityMultiplier(commodity) == 1f)
            {
                buffModifier.mCommodityDecayMultipliers.Remove(commodity);
            }

            if (buffModifier.mCommodityDecayMultipliers.Count == 0)
            {
                s.BuffManager.RemoveElement(buffModifier.Guid);
            }
        }