Пример #1
0
    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);
            }
        }
Пример #3
0
 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);
                     }
                 }
             }
         }
     }
 }
Пример #4
0
    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);
    }