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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -107,7 +107,7 @@ Removed features that probably won't be coming back
############ KNOWN ISSUES ##############
- Some areas might have abnormal lag (please tell me in the discord if you find one that's unreasonably laggy)
- Some areas might have abnormal lag - please tell me in the discord if you find one that's unreasonably laggy (you will know if you see one)
- Some side-stairs might act strange
- The Pokedex is currently all sorts of messed up
- Long loading time when starting up the game
@@ -116,4 +116,5 @@ Removed features that probably won't be coming back
- Significant stutter in the overworld when playing the game on an AMD CPU
- Several custom items have not yet been reimplemented
- Some battle backgrounds might be missing
- Erika's backsprite uses's May's backsprite from RSE
- Some NPC trades likely to crash the game