public override void OnDeselectTarget(GameObject target) { base.OnDeselectTarget(target); if ((UnityEngine.Object)target != (UnityEngine.Object)null) { Unsubscribe(target, -1697596308, onStorageChangeDelegate); Unsubscribe(target, -1197125120, onStorageChangeDelegate); Unsubscribe(target, 1059811075, OnBreedingChanceChanged); } KSelectable component = target.GetComponent <KSelectable>(); if ((UnityEngine.Object)component != (UnityEngine.Object)null) { StatusItemGroup statusItemGroup = component.GetStatusItemGroup(); if (statusItemGroup != null) { StatusItemGroup statusItemGroup2 = statusItemGroup; statusItemGroup2.OnAddStatusItem = (Action <StatusItemGroup.Entry, StatusItemCategory>)Delegate.Remove(statusItemGroup2.OnAddStatusItem, new Action <StatusItemGroup.Entry, StatusItemCategory>(OnAddStatusItem)); StatusItemGroup statusItemGroup3 = statusItemGroup; statusItemGroup3.OnRemoveStatusItem = (Action <StatusItemGroup.Entry, bool>)Delegate.Remove(statusItemGroup3.OnRemoveStatusItem, new Action <StatusItemGroup.Entry, bool>(OnRemoveStatusItem)); foreach (StatusItemEntry statusItem in statusItems) { statusItem.Destroy(true); } statusItems.Clear(); foreach (StatusItemEntry oldStatusItem in oldStatusItems) { oldStatusItem.onDestroy = null; oldStatusItem.Destroy(true); } oldStatusItems.Clear(); } } }
private void ItemCardStatus(HoverTextDrawer hoverTextDrawer, KSelectable kselectable3) { // 何故IEnumerable<Entry>を宣言してないのか??? List <StatusItemGroup.Entry> entries = new List <StatusItemGroup.Entry>(); foreach (StatusItemGroup.Entry entry in kselectable3.GetStatusItemGroup()) { entries.Add(entry); } var a = entries. Where((e) => __private_accessor.ShowStatusItemInCurrentOverlay(e.item)). OrderBy((e) => e.category != null && e.category.Id != "Main" ? 0 : 1). Take(SelectToolHoverTextCard.maxNumberOfDisplayedSelectableWarnings); foreach (StatusItemGroup.Entry entry in entries) { Sprite icon = entry.item.sprite?.sprite ?? __this.iconWarning; Color color = __this.Styles_BodyText.Standard.textColor; TextStyleSetting style = __this.Styles_BodyText.Standard; if (__private_accessor.IsStatusItemWarning(entry)) { color = __this.HoverTextStyleSettings[1].textColor; style = __this.HoverTextStyleSettings[1]; } hoverTextDrawer.NewLine(26); hoverTextDrawer.DrawIcon(icon, color, 18, 2); hoverTextDrawer.DrawText(entry.GetName(), style); } }
public EffectInstance(GameObject game_object, Effect effect, bool should_save) : base(game_object, effect) { this.effect = effect; shouldSave = should_save; ConfigureStatusItem(); if (effect.showInUI) { KSelectable component = base.gameObject.GetComponent <KSelectable>(); if (!component.GetStatusItemGroup().HasStatusItemID(statusItem)) { component.AddStatusItem(statusItem, this); } } if (effect.triggerFloatingText && (Object)PopFXManager.Instance != (Object)null) { PopFXManager.Instance.SpawnFX(PopFXManager.Instance.sprite_Plus, effect.Name, game_object.transform, 1.5f, false); } if (!string.IsNullOrEmpty(effect.emoteAnim)) { ReactionMonitor.Instance sMI = base.gameObject.GetSMI <ReactionMonitor.Instance>(); if (sMI != null) { if (effect.emoteCooldown < 0f) { SelfEmoteReactable selfEmoteReactable = (SelfEmoteReactable) new SelfEmoteReactable(game_object, effect.Name + "_Emote", Db.Get().ChoreTypes.Emote, effect.emoteAnim, 100000f, 20f, float.PositiveInfinity).AddStep(new EmoteReactable.EmoteStep { anim = (HashedString)"react" }); selfEmoteReactable.AddPrecondition(NotInATube); if (effect.emotePreconditions != null) { foreach (Reactable.ReactablePrecondition emotePrecondition in effect.emotePreconditions) { selfEmoteReactable.AddPrecondition(emotePrecondition); } } sMI.AddOneshotReactable(selfEmoteReactable); } else { reactable = new SelfEmoteReactable(game_object, effect.Name + "_Emote", Db.Get().ChoreTypes.Emote, effect.emoteAnim, effect.emoteCooldown, 20f, float.PositiveInfinity).AddStep(new EmoteReactable.EmoteStep { anim = (HashedString)"react" }); reactable.AddPrecondition(NotInATube); if (effect.emotePreconditions != null) { foreach (Reactable.ReactablePrecondition emotePrecondition2 in effect.emotePreconditions) { reactable.AddPrecondition(emotePrecondition2); } } } } } }
public override void OnSelectTarget(GameObject target) { base.OnSelectTarget(target); Subscribe(target, -1697596308, onStorageChangeDelegate); Subscribe(target, -1197125120, onStorageChangeDelegate); RefreshStorage(); Subscribe(target, 1059811075, OnBreedingChanceChanged); RefreshBreedingChance(); vitalsPanel.SetTitle((!((UnityEngine.Object)target.GetComponent <WiltCondition>() == (UnityEngine.Object)null)) ? UI.DETAILTABS.SIMPLEINFO.GROUPNAME_REQUIREMENTS : UI.DETAILTABS.SIMPLEINFO.GROUPNAME_CONDITION); KSelectable component = target.GetComponent <KSelectable>(); if ((UnityEngine.Object)component != (UnityEngine.Object)null) { StatusItemGroup statusItemGroup = component.GetStatusItemGroup(); if (statusItemGroup != null) { StatusItemGroup statusItemGroup2 = statusItemGroup; statusItemGroup2.OnAddStatusItem = (Action <StatusItemGroup.Entry, StatusItemCategory>)Delegate.Combine(statusItemGroup2.OnAddStatusItem, new Action <StatusItemGroup.Entry, StatusItemCategory>(OnAddStatusItem)); StatusItemGroup statusItemGroup3 = statusItemGroup; statusItemGroup3.OnRemoveStatusItem = (Action <StatusItemGroup.Entry, bool>)Delegate.Combine(statusItemGroup3.OnRemoveStatusItem, new Action <StatusItemGroup.Entry, bool>(OnRemoveStatusItem)); foreach (StatusItemGroup.Entry item in statusItemGroup) { StatusItemGroup.Entry current = item; if (current.category != null && current.category.Id == "Main") { DoAddStatusItem(current, current.category, false); } } foreach (StatusItemGroup.Entry item2 in statusItemGroup) { StatusItemGroup.Entry current2 = item2; if (current2.category == null || current2.category.Id != "Main") { DoAddStatusItem(current2, current2.category, false); } } } } statusItemPanel.gameObject.SetActive(true); statusItemPanel.scalerMask.UpdateSize(); Refresh(true); }