Creo que sería más fácil si agregan un condicional adicional en la sección
PokeBattle_BattlerEffects, solo buscas el efecto que deseas cambiar, por ejemplo el veneno, entonces buscamos el
def pbCanPoison?
Código:
def pbCanPoison?(showMessages)
return false if isFainted?
if status==PBStatuses::POISON
@battle.pbDisplay(_INTL("{1} ya se ha envenenado",pbThis)) if showMessages
return false
end
if self.status!=0 || @effects[PBEffects::Substitute]>0
@battle.pbDisplay(_INTL("But it failed!")) if showMessages
return false
end
#AQUI ESTA LA PARTE DE "INMUNIDAD"
if (pbHasType?(:POISON) || pbHasType?(:STEEL)) && !hasWorkingItem(:RINGTARGET)
@battle.pbDisplay(_INTL("It doesn't affect {1}...",pbThis(true))) if showMessages
return false
end
Si quieres que por ejemplo que los tipos insecto no puedan ser envenenados, solo agregas el condicional asi :
Código:
if ( pbHasType?(:POISON) || pbHasType?(:STEEL) || pbHasType?(:BUG) ) && !hasWorkingItem(:RINGTARGET)
@battle.pbDisplay(_INTL("It doesn't affect {1}...",pbThis(true))) if showMessages
return false
end
Mas abajo de este mismo script, estarán otros condicionales adicionales, por ejemplo en el caso del veneno, están los condicionales para el efecto de Synchronize y PoisonSpikes, solo es cuestion de agregar ahí también la inmunidad para el tipo insecto.
Código:
def pbCanPoisonSynchronize?(opponent)
return false if isFainted?
# AL IGUAL QUE EL ANTERIOR SOLO AGREGAN EL TIPO ADICIONAL
if ( pbHasType?(:POISON) || pbHasType?(:STEEL) || pbHasType?(:BUG) ) && !hasWorkingItem(:RINGTARGET)
@battle.pbDisplay(_INTL("{1}'s {2} had no effect on {3}!",
opponent.pbThis,PBAbilities.getName(opponent.ability),pbThis(true)))
return false
end
Código:
def pbCanPoisonSpikes?
return false if isFainted?
return false if self.status!=0
return false if pbHasType?(:POISON) || pbHasType?(:STEEL) || pbHasType?(:BUG)
De está manera será un poco más sencillo para todos los tipos de cambios de estado, solo revisar bien todos los condicionales y ver si aplican con lo que desean hacer.
Espero que les sirva, saludos.