Added some Gen 8 item effects, added super shininess

This commit is contained in:
Maruno17
2021-06-23 23:15:15 +01:00
parent 0ad86e6b03
commit feb9e3b2de
20 changed files with 586 additions and 171 deletions

View File

@@ -117,69 +117,73 @@ end
#===============================================================================
# Change a Pokémon's level
#===============================================================================
def pbChangeLevel(pkmn,newlevel,scene)
newlevel = newlevel.clamp(1, GameData::GrowthRate.max_level)
if pkmn.level==newlevel
pbMessage(_INTL("{1}'s level remained unchanged.",pkmn.name))
elsif pkmn.level>newlevel
attackdiff = pkmn.attack
defensediff = pkmn.defense
speeddiff = pkmn.speed
spatkdiff = pkmn.spatk
spdefdiff = pkmn.spdef
totalhpdiff = pkmn.totalhp
pkmn.level = newlevel
def pbChangeLevel(pkmn, new_level, scene)
new_level = new_level.clamp(1, GameData::GrowthRate.max_level)
if pkmn.level == new_level
if scene.is_a?(PokemonPartyScreen)
scene.pbDisplay(_INTL("{1}'s level remained unchanged.", pkmn.name))
else
pbMessage(_INTL("{1}'s level remained unchanged.", pkmn.name))
end
return
end
old_total_hp = pkmn.totalhp
old_attack = pkmn.attack
old_defense = pkmn.defense
old_special_attack = pkmn.spatk
old_special_defense = pkmn.spdef
old_speed = pkmn.speed
if pkmn.level > new_level
pkmn.level = new_level
pkmn.calc_stats
scene.pbRefresh
pbMessage(_INTL("{1} dropped to Lv. {2}!",pkmn.name,pkmn.level))
attackdiff = pkmn.attack-attackdiff
defensediff = pkmn.defense-defensediff
speeddiff = pkmn.speed-speeddiff
spatkdiff = pkmn.spatk-spatkdiff
spdefdiff = pkmn.spdef-spdefdiff
totalhpdiff = pkmn.totalhp-totalhpdiff
if scene.is_a?(PokemonPartyScreen)
scene.pbDisplay(_INTL("{1} dropped to Lv. {2}!", pkmn.name, pkmn.level))
else
pbMessage(_INTL("{1} dropped to Lv. {2}!", pkmn.name, pkmn.level))
end
total_hp_diff = pkmn.totalhp - old_total_hp
attack_diff = pkmn.attack - old_attack
defense_diff = pkmn.defense - old_defense
special_attack_diff = pkmn.spatk - old_special_attack
special_defense_diff = pkmn.spdef - old_special_defense
speed_diff = pkmn.speed - old_speed
pbTopRightWindow(_INTL("Max. HP<r>{1}\r\nAttack<r>{2}\r\nDefense<r>{3}\r\nSp. Atk<r>{4}\r\nSp. Def<r>{5}\r\nSpeed<r>{6}",
totalhpdiff,attackdiff,defensediff,spatkdiff,spdefdiff,speeddiff))
total_hp_diff, attack_diff, defense_diff, special_attack_diff, special_defense_diff, speed_diff), scene)
pbTopRightWindow(_INTL("Max. HP<r>{1}\r\nAttack<r>{2}\r\nDefense<r>{3}\r\nSp. Atk<r>{4}\r\nSp. Def<r>{5}\r\nSpeed<r>{6}",
pkmn.totalhp,pkmn.attack,pkmn.defense,pkmn.spatk,pkmn.spdef,pkmn.speed))
pkmn.totalhp, pkmn.attack, pkmn.defense, pkmn.spatk, pkmn.spdef, pkmn.speed), scene)
else
attackdiff = pkmn.attack
defensediff = pkmn.defense
speeddiff = pkmn.speed
spatkdiff = pkmn.spatk
spdefdiff = pkmn.spdef
totalhpdiff = pkmn.totalhp
pkmn.level = newlevel
pkmn.level = new_level
pkmn.changeHappiness("vitamin")
pkmn.calc_stats
scene.pbRefresh
if scene.is_a?(PokemonPartyScreen)
scene.pbDisplay(_INTL("{1} grew to Lv. {2}!",pkmn.name,pkmn.level))
scene.pbDisplay(_INTL("{1} grew to Lv. {2}!", pkmn.name, pkmn.level))
else
pbMessage(_INTL("{1} grew to Lv. {2}!",pkmn.name,pkmn.level))
pbMessage(_INTL("{1} grew to Lv. {2}!", pkmn.name, pkmn.level))
end
attackdiff = pkmn.attack-attackdiff
defensediff = pkmn.defense-defensediff
speeddiff = pkmn.speed-speeddiff
spatkdiff = pkmn.spatk-spatkdiff
spdefdiff = pkmn.spdef-spdefdiff
totalhpdiff = pkmn.totalhp-totalhpdiff
total_hp_diff = pkmn.totalhp - old_total_hp
attack_diff = pkmn.attack - old_attack
defense_diff = pkmn.defense - old_defense
special_attack_diff = pkmn.spatk - old_special_attack
special_defense_diff = pkmn.spdef - old_special_defense
speed_diff = pkmn.speed - old_speed
pbTopRightWindow(_INTL("Max. HP<r>+{1}\r\nAttack<r>+{2}\r\nDefense<r>+{3}\r\nSp. Atk<r>+{4}\r\nSp. Def<r>+{5}\r\nSpeed<r>+{6}",
totalhpdiff,attackdiff,defensediff,spatkdiff,spdefdiff,speeddiff),scene)
total_hp_diff, attack_diff, defense_diff, special_attack_diff, special_defense_diff, speed_diff), scene)
pbTopRightWindow(_INTL("Max. HP<r>{1}\r\nAttack<r>{2}\r\nDefense<r>{3}\r\nSp. Atk<r>{4}\r\nSp. Def<r>{5}\r\nSpeed<r>{6}",
pkmn.totalhp,pkmn.attack,pkmn.defense,pkmn.spatk,pkmn.spdef,pkmn.speed),scene)
pkmn.totalhp, pkmn.attack, pkmn.defense, pkmn.spatk, pkmn.spdef, pkmn.speed), scene)
# Learn new moves upon level up
movelist = pkmn.getMoveList
for i in movelist
next if i[0]!=pkmn.level
pbLearnMove(pkmn,i[1],true) { scene.pbUpdate }
next if i[0] != pkmn.level
pbLearnMove(pkmn, i[1], true) { scene.pbUpdate }
end
# Check for evolution
newspecies = pkmn.check_evolution_on_level_up
if newspecies
new_species = pkmn.check_evolution_on_level_up
if new_species
pbFadeOutInWithMusic {
evo = PokemonEvolutionScene.new
evo.pbStartScreen(pkmn,newspecies)
evo.pbStartScreen(pkmn, new_species)
evo.pbEvolution
evo.pbEndScreen
scene.pbRefresh if scene.is_a?(PokemonPartyScreen)
@@ -191,7 +195,7 @@ end
def pbTopRightWindow(text, scene = nil)
window = Window_AdvancedTextPokemon.new(text)
window.width = 198
window.x = Graphics.width-window.width
window.x = Graphics.width - window.width
window.y = 0
window.z = 99999
pbPlayDecisionSE
@@ -205,6 +209,98 @@ def pbTopRightWindow(text, scene = nil)
window.dispose
end
def pbChangeExp(pkmn, new_exp, scene)
new_exp = new_exp.clamp(0, pkmn.growth_rate.maximum_exp)
if pkmn.exp == new_exp
if scene.is_a?(PokemonPartyScreen)
scene.pbDisplay(_INTL("{1}'s Exp. Points remained unchanged.", pkmn.name))
else
pbMessage(_INTL("{1}'s Exp. Points remained unchanged.", pkmn.name))
end
return
end
old_level = pkmn.level
old_total_hp = pkmn.totalhp
old_attack = pkmn.attack
old_defense = pkmn.defense
old_special_attack = pkmn.spatk
old_special_defense = pkmn.spdef
old_speed = pkmn.speed
if pkmn.exp > new_exp # Loses Exp
difference = pkmn.exp - new_exp
if scene.is_a?(PokemonPartyScreen)
scene.pbDisplay(_INTL("{1} lost {2} Exp. Points!", pkmn.name, difference))
else
pbMessage(_INTL("{1} lost {2} Exp. Points!", pkmn.name, difference))
end
pkmn.exp = new_exp
pkmn.calc_stats
scene.pbRefresh
return if pkmn.level == old_level
# Level changed
if scene.is_a?(PokemonPartyScreen)
scene.pbDisplay(_INTL("{1} dropped to Lv. {2}!", pkmn.name, pkmn.level))
else
pbMessage(_INTL("{1} dropped to Lv. {2}!", pkmn.name, pkmn.level))
end
total_hp_diff = pkmn.totalhp - old_total_hp
attack_diff = pkmn.attack - old_attack
defense_diff = pkmn.defense - old_defense
special_attack_diff = pkmn.spatk - old_special_attack
special_defense_diff = pkmn.spdef - old_special_defense
speed_diff = pkmn.speed - old_speed
pbTopRightWindow(_INTL("Max. HP<r>{1}\r\nAttack<r>{2}\r\nDefense<r>{3}\r\nSp. Atk<r>{4}\r\nSp. Def<r>{5}\r\nSpeed<r>{6}",
total_hp_diff, attack_diff, defense_diff, special_attack_diff, special_defense_diff, speed_diff), scene)
pbTopRightWindow(_INTL("Max. HP<r>{1}\r\nAttack<r>{2}\r\nDefense<r>{3}\r\nSp. Atk<r>{4}\r\nSp. Def<r>{5}\r\nSpeed<r>{6}",
pkmn.totalhp, pkmn.attack, pkmn.defense, pkmn.spatk, pkmn.spdef, pkmn.speed), scene)
else # Gains Exp
difference = new_exp - pkmn.exp
if scene.is_a?(PokemonPartyScreen)
scene.pbDisplay(_INTL("{1} gained {2} Exp. Points!", pkmn.name, difference))
else
pbMessage(_INTL("{1} gained {2} Exp. Points!", pkmn.name, difference))
end
pkmn.exp = new_exp
pkmn.changeHappiness("vitamin")
pkmn.calc_stats
scene.pbRefresh
return if pkmn.level == old_level
# Level changed
if scene.is_a?(PokemonPartyScreen)
scene.pbDisplay(_INTL("{1} grew to Lv. {2}!", pkmn.name, pkmn.level))
else
pbMessage(_INTL("{1} grew to Lv. {2}!", pkmn.name, pkmn.level))
end
total_hp_diff = pkmn.totalhp - old_total_hp
attack_diff = pkmn.attack - old_attack
defense_diff = pkmn.defense - old_defense
special_attack_diff = pkmn.spatk - old_special_attack
special_defense_diff = pkmn.spdef - old_special_defense
speed_diff = pkmn.speed - old_speed
pbTopRightWindow(_INTL("Max. HP<r>+{1}\r\nAttack<r>+{2}\r\nDefense<r>+{3}\r\nSp. Atk<r>+{4}\r\nSp. Def<r>+{5}\r\nSpeed<r>+{6}",
total_hp_diff, attack_diff, defense_diff, special_attack_diff, special_defense_diff, speed_diff), scene)
pbTopRightWindow(_INTL("Max. HP<r>{1}\r\nAttack<r>{2}\r\nDefense<r>{3}\r\nSp. Atk<r>{4}\r\nSp. Def<r>{5}\r\nSpeed<r>{6}",
pkmn.totalhp, pkmn.attack, pkmn.defense, pkmn.spatk, pkmn.spdef, pkmn.speed), scene)
# Learn new moves upon level up
movelist = pkmn.getMoveList
for i in movelist
next if i[0] <= old_level || i[0] > pkmn.level
pbLearnMove(pkmn, i[1], true) { scene.pbUpdate }
end
# Check for evolution
new_species = pkmn.check_evolution_on_level_up
if new_species
pbFadeOutInWithMusic {
evo = PokemonEvolutionScene.new
evo.pbStartScreen(pkmn, new_species)
evo.pbEvolution
evo.pbEndScreen
scene.pbRefresh if scene.is_a?(PokemonPartyScreen)
}
end
end
end
#===============================================================================
# Restore HP
#===============================================================================

View File

@@ -479,7 +479,7 @@ ItemHandlers::UseOnPokemon.add(:FULLHEAL,proc { |item,pkmn,scene|
ItemHandlers::UseOnPokemon.copy(:FULLHEAL,
:LAVACOOKIE,:OLDGATEAU,:CASTELIACONE,:LUMIOSEGALETTE,:SHALOURSABLE,
:BIGMALASADA,:LUMBERRY)
:BIGMALASADA,:PEWTERCRUNCHIES,:LUMBERRY)
ItemHandlers::UseOnPokemon.copy(:FULLHEAL,:RAGECANDYBAR) if Settings::RAGE_CANDY_BAR_CURES_STATUS_PROBLEMS
ItemHandlers::UseOnPokemon.add(:FULLRESTORE,proc { |item,pkmn,scene|
@@ -705,7 +705,7 @@ ItemHandlers::UseOnPokemon.add(:CARBOS,proc { |item,pkmn,scene|
next true
})
ItemHandlers::UseOnPokemon.add(:HEALTHWING,proc { |item,pkmn,scene|
ItemHandlers::UseOnPokemon.add(:HEALTHFEATHER,proc { |item,pkmn,scene|
if pbRaiseEffortValues(pkmn,:HP,1,false)==0
scene.pbDisplay(_INTL("It won't have any effect."))
next false
@@ -716,7 +716,9 @@ ItemHandlers::UseOnPokemon.add(:HEALTHWING,proc { |item,pkmn,scene|
next true
})
ItemHandlers::UseOnPokemon.add(:MUSCLEWING,proc { |item,pkmn,scene|
ItemHandlers::UseOnPokemon.copy(:HEALTHFEATHER,:HEALTHWING)
ItemHandlers::UseOnPokemon.add(:MUSCLEFEATHER,proc { |item,pkmn,scene|
if pbRaiseEffortValues(pkmn,:ATTACK,1,false)==0
scene.pbDisplay(_INTL("It won't have any effect."))
next false
@@ -726,7 +728,9 @@ ItemHandlers::UseOnPokemon.add(:MUSCLEWING,proc { |item,pkmn,scene|
next true
})
ItemHandlers::UseOnPokemon.add(:RESISTWING,proc { |item,pkmn,scene|
ItemHandlers::UseOnPokemon.copy(:MUSCLEFEATHER,:MUSCLEWING)
ItemHandlers::UseOnPokemon.add(:RESISTFEATHER,proc { |item,pkmn,scene|
if pbRaiseEffortValues(pkmn,:DEFENSE,1,false)==0
scene.pbDisplay(_INTL("It won't have any effect."))
next false
@@ -736,7 +740,9 @@ ItemHandlers::UseOnPokemon.add(:RESISTWING,proc { |item,pkmn,scene|
next true
})
ItemHandlers::UseOnPokemon.add(:GENIUSWING,proc { |item,pkmn,scene|
ItemHandlers::UseOnPokemon.copy(:RESISTFEATHER,:RESISTWING)
ItemHandlers::UseOnPokemon.add(:GENIUSFEATHER,proc { |item,pkmn,scene|
if pbRaiseEffortValues(pkmn,:SPECIAL_ATTACK,1,false)==0
scene.pbDisplay(_INTL("It won't have any effect."))
next false
@@ -746,7 +752,9 @@ ItemHandlers::UseOnPokemon.add(:GENIUSWING,proc { |item,pkmn,scene|
next true
})
ItemHandlers::UseOnPokemon.add(:CLEVERWING,proc { |item,pkmn,scene|
ItemHandlers::UseOnPokemon.copy(:GENIUSFEATHER,:GENIUSWING)
ItemHandlers::UseOnPokemon.add(:CLEVERFEATHER,proc { |item,pkmn,scene|
if pbRaiseEffortValues(pkmn,:SPECIAL_DEFENSE,1,false)==0
scene.pbDisplay(_INTL("It won't have any effect."))
next false
@@ -756,7 +764,9 @@ ItemHandlers::UseOnPokemon.add(:CLEVERWING,proc { |item,pkmn,scene|
next true
})
ItemHandlers::UseOnPokemon.add(:SWIFTWING,proc { |item,pkmn,scene|
ItemHandlers::UseOnPokemon.copy(:CLEVERFEATHER,:CLEVERWING)
ItemHandlers::UseOnPokemon.add(:SWIFTFEATHER,proc { |item,pkmn,scene|
if pbRaiseEffortValues(pkmn,:SPEED,1,false)==0
scene.pbDisplay(_INTL("It won't have any effect."))
next false
@@ -766,6 +776,8 @@ ItemHandlers::UseOnPokemon.add(:SWIFTWING,proc { |item,pkmn,scene|
next true
})
ItemHandlers::UseOnPokemon.copy(:SWIFTFEATHER,:SWIFTWING)
ItemHandlers::UseOnPokemon.add(:RARECANDY,proc { |item,pkmn,scene|
if pkmn.level>=GameData::GrowthRate.max_level || pkmn.shadowPokemon?
scene.pbDisplay(_INTL("It won't have any effect."))
@@ -1088,23 +1100,23 @@ ItemHandlers::UseOnPokemon.add(:NLUNARIZER,proc { |item,pkmn,scene|
})
ItemHandlers::UseOnPokemon.add(:ABILITYCAPSULE,proc { |item,pkmn,scene|
abils = pkmn.getAbilityList
abil1 = nil; abil2 = nil
for i in abils
abil1 = i[0] if i[1]==0
abil2 = i[0] if i[1]==1
end
if abil1.nil? || abil2.nil? || pkmn.hasHiddenAbility? || pkmn.isSpecies?(:ZYGARDE)
scene.pbDisplay(_INTL("It won't have any effect."))
next false
end
newabil = (pkmn.ability_index + 1) % 2
newabilname = GameData::Ability.get((newabil==0) ? abil1 : abil2).name
if scene.pbConfirm(_INTL("Would you like to change {1}'s Ability to {2}?",
pkmn.name,newabilname))
if scene.pbConfirm(_INTL("Do you want to change {1}'s Ability?", pkmn.name))
abils = pkmn.getAbilityList
abil1 = nil
abil2 = nil
for i in abils
abil1 = i[0] if i[1] == 0
abil2 = i[0] if i[1] == 1
end
if abil1.nil? || abil2.nil? || pkmn.hasHiddenAbility? || pkmn.isSpecies?(:ZYGARDE)
scene.pbDisplay(_INTL("It won't have any effect."))
next false
end
newabil = (pkmn.ability_index + 1) % 2
newabilname = GameData::Ability.get((newabil == 0) ? abil1 : abil2).name
pkmn.ability_index = newabil
scene.pbRefresh
scene.pbDisplay(_INTL("{1}'s Ability changed to {2}!",pkmn.name,newabilname))
scene.pbDisplay(_INTL("{1}'s Ability changed! Its Ability is now {2}!", pkmn.name, newabilname))
next true
end
next false

View File

@@ -122,7 +122,7 @@ ItemHandlers::CanUseInBattle.add(:FULLHEAL,proc { |item,pokemon,battler,move,fir
ItemHandlers::CanUseInBattle.copy(:FULLHEAL,
:LAVACOOKIE,:OLDGATEAU,:CASTELIACONE,:LUMIOSEGALETTE,:SHALOURSABLE,
:BIGMALASADA,:LUMBERRY,:HEALPOWDER)
:BIGMALASADA,:PEWTERCRUNCHIES,:LUMBERRY,:HEALPOWDER)
ItemHandlers::CanUseInBattle.copy(:FULLHEAL,:RAGECANDYBAR) if Settings::RAGE_CANDY_BAR_CURES_STATUS_PROBLEMS
ItemHandlers::CanUseInBattle.add(:FULLRESTORE,proc { |item,pokemon,battler,move,firstAction,battle,scene,showMessages|
@@ -419,7 +419,7 @@ ItemHandlers::BattleUseOnPokemon.add(:FULLHEAL,proc { |item,pokemon,battler,choi
ItemHandlers::BattleUseOnPokemon.copy(:FULLHEAL,
:LAVACOOKIE,:OLDGATEAU,:CASTELIACONE,:LUMIOSEGALETTE,:SHALOURSABLE,
:BIGMALASADA,:LUMBERRY)
:BIGMALASADA,:PEWTERCRUNCHIES,:LUMBERRY)
ItemHandlers::BattleUseOnPokemon.copy(:FULLHEAL,:RAGECANDYBAR) if Settings::RAGE_CANDY_BAR_CURES_STATUS_PROBLEMS
ItemHandlers::BattleUseOnPokemon.add(:FULLRESTORE,proc { |item,pokemon,battler,choices,scene|