mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-09 06:04:59 +00:00
Initial commit
This commit is contained in:
110
Data/Scripts/015_Pokemon/003_Pokemon_MegaEvolution.rb
Normal file
110
Data/Scripts/015_Pokemon/003_Pokemon_MegaEvolution.rb
Normal file
@@ -0,0 +1,110 @@
|
||||
#===============================================================================
|
||||
# Mega Evolution
|
||||
# NOTE: These are treated as form changes in Essentials.
|
||||
#===============================================================================
|
||||
class PokeBattle_Pokemon
|
||||
def getMegaForm(checkItemOnly=false)
|
||||
formData = pbLoadFormToSpecies
|
||||
return 0 if !formData[@species] || formData[@species].length==0
|
||||
ret = 0
|
||||
speciesData = pbLoadSpeciesData
|
||||
for i in 0...formData[@species].length
|
||||
fSpec = formData[@species][i]
|
||||
next if !fSpec || fSpec<=0
|
||||
megaStone = speciesData[fSpec][SpeciesMegaStone] || 0
|
||||
if megaStone>0 && self.hasItem?(megaStone)
|
||||
ret = i; break
|
||||
end
|
||||
if !checkItemOnly
|
||||
megaMove = speciesData[fSpec][SpeciesMegaMove] || 0
|
||||
if megaMove>0 && self.hasMove?(megaMove)
|
||||
ret = i; break
|
||||
end
|
||||
end
|
||||
end
|
||||
return ret # form number, or 0 if no accessible Mega form
|
||||
end
|
||||
|
||||
def getUnmegaForm
|
||||
return -1 if !mega?
|
||||
unmegaForm = pbGetSpeciesData(@species,formSimple,SpeciesUnmegaForm)
|
||||
return unmegaForm # form number
|
||||
end
|
||||
|
||||
def hasMegaForm?
|
||||
megaForm = self.getMegaForm
|
||||
return megaForm>0 && megaForm!=self.formSimple
|
||||
end
|
||||
|
||||
def mega?
|
||||
megaForm = self.getMegaForm
|
||||
return megaForm>0 && megaForm==self.formSimple
|
||||
end
|
||||
alias isMega? mega?
|
||||
|
||||
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 = pbGetMessage(MessageTypes::FormNames,self.fSpecies)
|
||||
return (formName && formName!="") ? formName : _INTL("Mega {1}",PBSpecies.getName(@species))
|
||||
end
|
||||
|
||||
def megaMessage # 0=default message, 1=Rayquaza message
|
||||
return pbGetSpeciesData(@species,getMegaForm,SpeciesMegaMessage)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
#===============================================================================
|
||||
# Primal Reversion
|
||||
# NOTE: These are treated as form changes in Essentials.
|
||||
#===============================================================================
|
||||
class PokeBattle_Pokemon
|
||||
def hasPrimalForm?
|
||||
v = MultipleForms.call("getPrimalForm",self)
|
||||
return v!=nil
|
||||
end
|
||||
|
||||
def primal?
|
||||
v = MultipleForms.call("getPrimalForm",self)
|
||||
return v!=nil && v==@form
|
||||
end
|
||||
alias isPrimal? primal?
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
MultipleForms.register(:GROUDON,{
|
||||
"getPrimalForm" => proc { |pkmn|
|
||||
next 1 if isConst?(pkmn.item,PBItems,:REDORB)
|
||||
next
|
||||
}
|
||||
})
|
||||
|
||||
MultipleForms.register(:KYOGRE,{
|
||||
"getPrimalForm" => proc { |pkmn|
|
||||
next 1 if isConst?(pkmn.item,PBItems,:BLUEORB)
|
||||
next
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user