fixed abilities and rival evolution

This commit is contained in:
infinitefusion
2021-09-05 11:00:51 -04:00
parent 39714c97ef
commit a62ab706c5
30 changed files with 55 additions and 54 deletions

View File

@@ -701,7 +701,7 @@ end
#===============================================================================
# Picking up an item found on the ground
#===============================================================================
def pbItemBall(item,quantity=1)
def pbItemBall(item,quantity=1,item_name="",canRandom=true)
item = GameData::Item.get(item)
return false if !item || quantity<1
itemname = (quantity>1) ? item.name_plural : item.name
@@ -745,7 +745,8 @@ end
#===============================================================================
# Being given an item
#===============================================================================
def pbReceiveItem(item,quantity=1)
def pbReceiveItem(item,quantity=1,item_name="",music=nil)
#item_name -> pour donner un autre nom à l'item. Pas encore réimplémenté et surtout là pour éviter que ça plante quand des events essaient de le faire
item = GameData::Item.get(item)
return false if !item || quantity<1
itemname = (quantity>1) ? item.name_plural : item.name

View File

@@ -154,7 +154,7 @@ class PokemonIconSprite < SpriteWrapper
end
def useRegularIcon(species)
dexNum = convertSpeciesSymbolToDexNumber(species)
dexNum = getDexNumberForSpecies(species)
return true if dexNum <= Settings::NB_POKEMON
return false if $game_variables == nil
return true if $game_variables[220] != 0

View File

@@ -15,7 +15,7 @@ class PokemonBoxIcon < IconSprite
end
def useRegularIcon(species)
dexNum = convertSpeciesSymbolToDexNumber(species)
dexNum = getDexNumberForSpecies(species)
return true if dexNum <= Settings::NB_POKEMON
return false if $game_variables == nil
return true if $game_variables[220] != 0

View File

@@ -466,30 +466,31 @@ module PBItems
AIRMAIL = 462
MOSAICMAIL = 463
BRICKMAIL = 464
XATTACK = 465
XATTACK2 = 466
XATTACK3 = 467
XATTACK6 = 468
XDEFENSE = 469
XDEFENSE2 = 470
XDEFENSE3 = 471
XDEFENSE6 = 472
XSPATK = 473
XSPATK2 = 474
XSPATK3 = 475
XSPATK6 = 476
XSPDEF = 477
XSPDEF2 = 478
XSPDEF3 = 479
XSPDEF6 = 480
XSPEED = 481
XSPEED2 = 482
XSPEED3 = 483
XSPEED6 = 484
XACCURACY = 485
XACCURACY2 = 486
XACCURACY3 = 487
XACCURACY6 = 488
XATTACK = 465
XATTACK2 = 466
XATTACK3 = 467
XATTACK6 = 468
XDEFENSE = 469
XDEFENSE2 = 470
XDEFENSE3 = 471
XDEFENSE6 = 472
XSPATK = 473
XSPECIAL = 473
XSPATK2 = 474
XSPATK3 = 475
XSPATK6 = 476
XSPDEF = 477
XSPDEF2 = 478
XSPDEF3 = 479
XSPDEF6 = 480
XSPEED = 481
XSPEED2 = 482
XSPEED3 = 483
XSPEED6 = 484
XACCURACY = 485
XACCURACY2 = 486
XACCURACY3 = 487
XACCURACY6 = 488
DIREHIT = 489
DIREHIT2 = 490
DIREHIT3 = 491

View File

@@ -130,8 +130,8 @@ end
#in: pokemon number
def Kernel.isPartPokemon(src, target)
src = convertSpeciesSymbolToDexNumber(src)
target = convertSpeciesSymbolToDexNumber(target)
src = getDexNumberForSpecies(src)
target = getDexNumberForSpecies(target)
return true if src == target
return false if src <= NB_POKEMON
bod = getBasePokemonID(src, true)
@@ -152,8 +152,6 @@ def getBasePokemonID(pokemon, body = true)
# cname = getConstantName(PBSpecies, pokemon) rescue nil
cname = GameData::Species.get(pokemon).id.to_s
return pokemon if pokemon <= NB_POKEMON
return pokemon if cname == nil

View File

@@ -116,7 +116,7 @@ def pbCheckPokemonIconFiles(speciesNum,egg=false, dna=false)
end
def convertSpeciesSymbolToDexNumber(species)
def getDexNumberForSpecies(species)
return species if species.is_a?(Integer)
if species.is_a?(Symbol)
dexNum = GameData::Species.get(species).id_number
@@ -158,13 +158,13 @@ def getRandomCustomFusion(returnRandomPokemonIfNoneFound=true,customPokeList=[],
end
def getBodyID(species)
dexNum = convertSpeciesSymbolToDexNumber(species)
dexNum = getDexNumberForSpecies(species)
return (dexNum / NB_POKEMON).round
end
def getHeadID(species, bodyId)
head_dexNum = convertSpeciesSymbolToDexNumber(species)
body_dexNum = convertSpeciesSymbolToDexNumber(bodyId)
head_dexNum = getDexNumberForSpecies(species)
body_dexNum = getDexNumberForSpecies(bodyId)
calculated_number = (head_dexNum - (body_dexNum * NB_POKEMON)).round
return calculated_number == 0 ? 420 : calculated_number
end

View File

@@ -788,9 +788,9 @@ def pbChooseAbility(poke, hidden1 = false, hidden2 = false)
ability2_name = GameData::Ability.get(abID2).name
if (Kernel.pbMessage("Choose an ability.", [_INTL("{1}", ability1_name), _INTL("{1}", ability2_name)], 2)) == 0
return hidden1 ? 4 : 0
return abID1#hidden1 ? 4 : 0
end
return hidden2 ? 5 : 1
return abID2#hidden2 ? 5 : 1
end
def pbChooseNature(species1_nature, species2_nature)

View File

@@ -148,17 +148,15 @@ def getEvolution(species)
head = getBasePokemonID(species,false)
ret_evoB = pbGetEvolvedFormData(body)
ret_evoH = pbGetEvolvedFormData(head)
evoBody = ret_evoB.any? ? ret_evoB[0][2] : -1
evoHead = ret_evoH.any? ? ret_evoH[0][2] : -1
return -1 if isNegativeOrNull(evoBody) && isNegativeOrNull(evoHead)
return body*Settings::NB_POKEMON+evoHead if isNegativeOrNull(evoBody) #only head evolves
return evoBody*Settings::NB_POKEMON + head if isNegativeOrNull(evoHead) #only body evolves
return evoBody*Settings::NB_POKEMON+evoHead #both evolve
else
evo = pbGetEvolvedFormData(species)
return evo.any? ? evo[0][2] : -1
return evo.any? ? getDexNumberForSpecies(evo[0][0]) : -1
end
end
@@ -169,25 +167,27 @@ def getFusionSpecies(body,head)
end
#
def evolveHead(species)
if species <= Settings::NB_POKEMON
evo = getEvolution(species)
return evo == -1 ? species : evo
species_id = getDexNumberForSpecies(species)
if species_id <= Settings::NB_POKEMON
evo = getEvolution(species_id)
return evo == -1 ? species_id : evo
end
head = getBasePokemonID(species,false)
body = getBasePokemonID(species)
head = getBasePokemonID(species_id,false)
body = getBasePokemonID(species_id)
headEvo = getEvolution(head)
return headEvo == -1 ? species : getFusionSpecies(body,headEvo)
return headEvo == -1 ? species_id : getFusionSpecies(body,headEvo)
end
def evolveBody(species)
if species <= Settings::NB_POKEMON
evo = getEvolution(species)
return evo == -1 ? species : evo
species_id = getDexNumberForSpecies(species)
if species_id <= Settings::NB_POKEMON
evo = getEvolution(species_id)
return evo == -1 ? species_id : evo
end
head = getBasePokemonID(species,false)
body = getBasePokemonID(species)
head = getBasePokemonID(species_id,false)
body = getBasePokemonID(species_id)
bodyEvo = getEvolution(body)
return bodyEvo == -1 ? species : getFusionSpecies(bodyEvo,head)
return bodyEvo == -1 ? species_id : getFusionSpecies(bodyEvo,head)
end