コード例 #1
0
ファイル: Patches_Misc.cs プロジェクト: Abbysssal/RogueLibs
        public static void Updater_Update()
        {
            foreach (Agent agent in GameController.gameController.agentList.ToList())
            {
                foreach (IDoUpdate obj in agent.GetHooks <IDoUpdate>())
                {
                    try { obj.Update(); }
                    catch (Exception e) { RogueFramework.LogError(e, "IDoUpdate.Update", obj); }
                }

                InvItem specialAbility = agent.inventory.equippedSpecialAbility;
                if (specialAbility != null)
                {
                    foreach (IDoUpdate obj in specialAbility.GetHooks <IDoUpdate>())
                    {
                        try { obj.Update(); }
                        catch (Exception e) { RogueFramework.LogError(e, "IDoUpdate.Update", obj, agent); }
                    }
                }

                foreach (InvItem item in agent.inventory.InvItemList.ToList())
                {
                    if (item != specialAbility)
                    {
                        foreach (IDoUpdate obj in item.GetHooks <IDoUpdate>())
                        {
                            try { obj.Update(); }
                            catch (Exception e) { RogueFramework.LogError(e, "IDoUpdate.Update", obj, agent); }
                        }
                    }
                }

                foreach (StatusEffect effect in agent.statusEffects.StatusEffectList.ToList())
                {
                    foreach (IDoUpdate obj in effect.GetHooks <IDoUpdate>())
                    {
                        try { obj.Update(); }
                        catch (Exception e) { RogueFramework.LogError(e, "IDoUpdate.Update", obj, agent); }
                    }
                }

                foreach (Trait trait in agent.statusEffects.TraitList.ToList())
                {
                    foreach (IDoUpdate obj in trait.GetHooks <IDoUpdate>())
                    {
                        try { obj.Update(); }
                        catch (Exception e) { RogueFramework.LogError(e, "IDoUpdate.Update", obj, agent); }
                    }
                }
            }

            foreach (ObjectReal objectReal in GameController.gameController.objectRealListUpdate.ToList())
            {
                foreach (IDoUpdate obj in objectReal.GetHooks <IDoUpdate>())
                {
                    try { obj.Update(); }
                    catch (Exception e) { RogueFramework.LogError(e, "IDoUpdate.Update", obj); }
                }

                if (objectReal.objectInvDatabase != null)
                {
                    foreach (InvItem item in objectReal.objectInvDatabase.InvItemList)
                    {
                        foreach (IDoUpdate obj in item.GetHooks <IDoUpdate>())
                        {
                            try { obj.Update(); }
                            catch (Exception e) { RogueFramework.LogError(e, "IDoUpdate.Update", obj, objectReal); }
                        }
                    }
                }
            }

            foreach (Item item in GameController.gameController.itemList.ToList())
            {
                foreach (IDoUpdate obj in item.invItem.GetHooks <IDoUpdate>())
                {
                    try { obj.Update(); }
                    catch (Exception e) { RogueFramework.LogError(e, "IDoUpdate.Update", obj, item); }
                }
            }
        }