Exemplo n.º 1
0
        public static void SetupEffectHook(StatusEffect effect, StatusEffects parent)
        {
            bool debug = RogueFramework.IsDebugEnabled(DebugFlags.Effects);

            effect.__RogueLibsContainer = parent;
            foreach (IHookFactory <StatusEffect> factory in RogueFramework.EffectFactories)
            {
                if (factory.TryCreate(effect, out IHook <StatusEffect> hook))
                {
                    if (debug)
                    {
                        if (hook is CustomEffect)
                        {
                            RogueFramework.LogDebug($"Initializing custom effect {hook} ({effect.statusEffectName}, {parent.agent.agentName}).");
                        }
                        else
                        {
                            RogueFramework.LogDebug($"Initializing effect hook {hook} ({effect.statusEffectName}, {parent.agent.agentName}).");
                        }
                    }
                    effect.AddHook(hook);
                    // CustomEffect does not call OnAdded when initialized,
                    // because of the GetStatusEffectTime/Hate patches
                    if (hook is CustomEffect custom)
                    {
                        custom.OnAdded();
                    }
                }
            }
        }