private bool CharacterEffect_Apply(On.Sunshine.Metric.CharacterEffect.orig_Apply orig, CharacterEffect self, CharacterSheet ch, ModifierType type, IModifierCause modifierCause)
        {
            var modifier = self.GetModifier(type, modifierCause);

            if (self.effect == EffectType.STAT_BONUS)
            {
                for (int i = 0; i < ch.skills.Length; i++)
                {
                    if (ch.skills[i].abilityType == self.abilityType)
                    {
                        ch.skills[i].Add(modifier);
                    }
                }
            }

            return(orig(self, ch, type, modifierCause));
        }
        private void CharacterEffect_Remove(On.Sunshine.Metric.CharacterEffect.orig_Remove orig, CharacterEffect self, CharacterSheet ch, ModifierType type, IModifierCause modifierCause)
        {
            var modifier = self.GetModifier(type, modifierCause);

            if (self.effect == EffectType.STAT_BONUS)
            {
                for (int i = 0; i < ch.skills.Length; i++)
                {
                    if (ch.skills[i].abilityType == self.abilityType)
                    {
                        ch.skills[i].Remove(modifier);
                    }
                }
            }

            orig(self, ch, type, modifierCause);
        }