Existing problems:
1.codes for triggerSpeedCalc and triggerWeightCalc are still not corrected though.
2.hasActiveAbility? is broken when checking a pokemon's ability, since the first element of abilityMutationList is a MultiAbilityProxy, and you can directly check self.ability == check_ability or check_ability.any? { |abil| self.ability == abil } if is an Array.