}//*/

        internal static T CheckPerks <T>(CharacterMotherClass player,
                                         Perk.Trigger trigger, T arguments)
        {
            return((T)CheckPerksM(player, trigger, arguments)[0]);
        }
 internal static object[] CheckPerks(CharacterMotherClass player,
                                     Perk.Trigger trigger, params object[] arguments)
 {
     return(CheckPerksM(player, trigger, arguments));
 }
 internal static object[] CheckPerksM(CharacterMotherClass player,
                                      Perk.Trigger trigger, params object[] arguments)
 {
     if (player.perks != null && player.perks.Count > 0)
     {
         for (int i = 0; i < player.perks.Count; i++)
         {
             Perk p = player.perks[i];
             try
             {
                 if (p.trigger == trigger)
                 {
                     arguments = p.Run(player, false, arguments);
                 }
                 if (p.end != Perk.Trigger.Null && p.end == trigger)
                 {
                     arguments = p.Run(player, true, arguments);
                 }
             }
             catch (Exception e)
             {
                 _ = Handlers.UniqueChannels.Instance.SendToLog(e, $"Error in perk {p.name}");
             }
         }
     }
     for (int i = 0; i < Equipment.gearCount; i++)
     {
         var gear = player.equipment.GetGear(i);
         if (gear?.perk != null)
         {
             try
             {
                 if (gear.perk.trigger == trigger)
                 {
                     arguments = gear.perk.Run(player, false, arguments);
                 }
                 if (gear.perk.end != Perk.Trigger.Null && gear.perk.end == trigger)
                 {
                     arguments = gear.perk.Run(player, true, arguments);
                 }
             }
             catch (Exception e) { _ = Handlers.UniqueChannels.Instance.SendToLog(e, $"Error in equipment perk {gear?.perk?.name}"); }
         }
     }
     if (player.status != null)
     {
         for (int i = 0; i < player.status.Count;)
         {
             var p = player.status[i];
             try
             {
                 if (p.trigger == trigger)
                 {
                     arguments = p.Run(player, false, arguments);
                 }
                 if (p.end != Perk.Trigger.Null && p.end == trigger)
                 {
                     arguments = p.Run(player, true, arguments);
                 }
             }
             catch (Exception e) { _ = Handlers.UniqueChannels.Instance.SendToLog(e, $"Error in status {p.name}"); }
             //
             if (p.rank <= 0)
             {
                 player.status.RemoveAt(i);
             }
             else
             {
                 i++;
             }
         }
     }
     return(arguments);
 }//*/