def CanSwitch(mon_idx):
if TrappedStatus[mon_idx]:return False
if Battler[1 - mon_idx].Ability == "Shadow Tag":return False
if (Battler[1 - mon_idx].Ability == "Arena Trap") && (("Flying" not in Battler[mon_idx].Type) || (Battler[mon_idx].Ability != "Levitate") || ("Magnet Rise" not Battler[mon_idx].Substatus) || ("Gravity" in FieldEffects)):return False
return True
def CanUseMove(mon_idx, move_idx):
if Battler[mon_idx].Moves[move_idx].PP == 0:return False
if ("Disabled" in Battler[mon_idx].Substatus) && (move_idx == LockedMove[mon_idx]):return False
if ("Encore" in Battler[mon_idx].Substatus) && (move_idx != LockedMove[mon_idx]):return False
if ("Taunt" in Battler[mon_idx].Substatus) && (Battler[mon_idx].Moves[move_idx].Type2 == "Status"):return False
if ("Torment" in Battler[mon_idx].Substatus) && (Battler[mon_idx].LastMove == move_idx):return False
if ("Imprison" in Battler[mon_idx].Substatus) && (Battler[mon_idx].Moves[move_idx].Name in [x.Name for x in Battler[1 - mon_idx].Moves]):return False
return True
Comments