mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
79 lines
2.1 KiB
Ruby
79 lines
2.1 KiB
Ruby
class Pokemon
|
|
#=============================================================================
|
|
# Mega Evolution
|
|
# NOTE: These are treated as form changes in Essentials.
|
|
#=============================================================================
|
|
def getMegaForm
|
|
ret = 0
|
|
GameData::Species.each do |data|
|
|
next if data.species != @species || data.unmega_form != form_simple
|
|
if data.mega_stone && hasItem?(data.mega_stone)
|
|
ret = data.form
|
|
break
|
|
elsif data.mega_move && hasMove?(data.mega_move)
|
|
ret = data.form
|
|
break
|
|
end
|
|
end
|
|
return ret # form number, or 0 if no accessible Mega form
|
|
end
|
|
|
|
def getUnmegaForm
|
|
return (mega?) ? species_data.unmega_form : -1
|
|
end
|
|
|
|
def hasMegaForm?
|
|
megaForm = self.getMegaForm
|
|
return megaForm > 0 && megaForm != form_simple
|
|
end
|
|
|
|
def mega?
|
|
return (species_data.mega_stone || species_data.mega_move) ? true : false
|
|
end
|
|
|
|
def makeMega
|
|
megaForm = self.getMegaForm
|
|
self.form = megaForm if megaForm > 0
|
|
end
|
|
|
|
def makeUnmega
|
|
unmegaForm = self.getUnmegaForm
|
|
self.form = unmegaForm if unmegaForm >= 0
|
|
end
|
|
|
|
def megaName
|
|
formName = species_data.form_name
|
|
return (formName && !formName.empty?) ? formName : _INTL("Mega {1}", species_data.name)
|
|
end
|
|
|
|
def megaMessage # 0=default message, 1=Rayquaza message
|
|
return species_data.mega_message
|
|
end
|
|
|
|
#=============================================================================
|
|
# Primal Reversion
|
|
# NOTE: These are treated as form changes in Essentials.
|
|
#=============================================================================
|
|
def hasPrimalForm?
|
|
v = MultipleForms.call("getPrimalForm", self)
|
|
return !v.nil?
|
|
end
|
|
|
|
def primal?
|
|
v = MultipleForms.call("getPrimalForm", self)
|
|
return !v.nil? && v == @form
|
|
end
|
|
|
|
def makePrimal
|
|
v = MultipleForms.call("getPrimalForm", self)
|
|
self.form = v if !v.nil?
|
|
end
|
|
|
|
def makeUnprimal
|
|
v = MultipleForms.call("getUnprimalForm", self)
|
|
if !v.nil?; self.form = v
|
|
elsif primal?; self.form = 0
|
|
end
|
|
end
|
|
end
|