Exemplo n.º 1
0
            /// <summary>
            /// Applied before GetValueString runs.
            /// </summary>
            internal static bool Prefix(StandardAmountDisplayer __instance, Amount master,
                                        AmountInstance instance, ref string __result)
            {
                var text = CACHED_BUILDER;

                text.Clear();
                GetValueString(text, __instance.Formatter, instance, master);
                __result = text.ToString();
                return(false);
            }
Exemplo n.º 2
0
            /// <summary>
            /// Applied before GetTooltip runs.
            /// </summary>
            internal static bool Prefix(StandardAmountDisplayer __instance, Amount master,
                                        AmountInstance instance, ref string __result)
            {
                var    text      = CACHED_BUILDER;
                var    formatter = __instance.Formatter;
                var    timeSlice = formatter.DeltaTimeSlice;
                string desc      = master.description;
                var    modifiers = instance.deltaAttribute.Modifiers;
                int    n         = modifiers.Count;

                // Yes the base game uses None even if the time slice is not none
                text.Clear().Append(desc).Replace("{0}", formatter.GetFormattedValue(instance.
                                                                                     value, TimeSlice.None));
                if (desc.Contains("{1}"))
                {
                    // GetIdentityDescriptor calls GetComponent so only call if needed
                    text.Replace("{1}", GameUtil.GetIdentityDescriptor(instance.gameObject));
                }
                text.AppendLine().AppendLine();
                if (timeSlice == TimeSlice.PerCycle)
                {
                    text.Append(STRINGS.UI.CHANGEPERCYCLE).Replace("{0}", formatter.
                                                                   GetFormattedValue(instance.deltaAttribute.GetTotalDisplayValue(),
                                                                                     TimeSlice.PerCycle));
                }
                else if (timeSlice == TimeSlice.PerSecond)
                {
                    text.Append(STRINGS.UI.CHANGEPERSECOND).Replace("{0}", formatter.
                                                                    GetFormattedValue(instance.deltaAttribute.GetTotalDisplayValue(),
                                                                                      TimeSlice.PerSecond));
                }
                for (int i = 0; i < n; i++)
                {
                    var modifier = modifiers[i];
                    text.AppendLine().Append(Constants.TABBULLETSTRING).Append(modifier.
                                                                               GetDescription()).Append(": ").Append(formatter.GetFormattedModifier(
                                                                                                                         modifier));
                }
                __result = text.ToString();
                return(false);
            }