Made various changes to effects, added some Gen 8 mechanics

This commit is contained in:
Maruno17
2021-06-30 23:25:47 +01:00
parent d5459fb97c
commit 5736ef404b
14 changed files with 249 additions and 62 deletions

View File

@@ -373,13 +373,13 @@ def pbJustRaiseEffortValues(pkmn, stat, evGain)
return evGain
end
def pbRaiseEffortValues(pkmn, stat, evGain = 10, ev_limit = true)
def pbRaiseEffortValues(pkmn, stat, evGain = 10, no_ev_cap = false)
stat = GameData::Stat.get(stat).id
return 0 if ev_limit && pkmn.ev[stat] >= 100
return 0 if !no_ev_cap && pkmn.ev[stat] >= 100
evTotal = 0
GameData::Stat.each_main { |s| evTotal += pkmn.ev[s.id] }
evGain = evGain.clamp(0, Pokemon::EV_STAT_LIMIT - pkmn.ev[stat])
evGain = evGain.clamp(0, 100 - pkmn.ev[stat]) if ev_limit
evGain = evGain.clamp(0, 100 - pkmn.ev[stat]) if !no_ev_cap
evGain = evGain.clamp(0, Pokemon::EV_LIMIT - evTotal)
if evGain > 0
pkmn.ev[stat] += evGain

View File

@@ -28,7 +28,7 @@ ItemHandlers::UseFromBag.add(:ESCAPEROPE,proc { |item|
next 0
end
if ($PokemonGlobal.escapePoint rescue false) && $PokemonGlobal.escapePoint.length>0
next 4 # End screen and consume item
next (GameData::Item.get(item).is_key_item?) ? 2 : 4 # End screen and use item
end
pbMessage(_INTL("Can't use that here."))
next 0
@@ -177,7 +177,7 @@ ItemHandlers::UseInField.add(:ESCAPEROPE,proc { |item|
$game_map.refresh
}
pbEraseEscapePoint
next 3
next (GameData::Item.get(item).is_key_item?) ? 1 : 3
})
ItemHandlers::UseInField.add(:SACREDASH,proc { |item|
@@ -366,11 +366,11 @@ ItemHandlers::UseOnPokemon.copy(:POTION,:BERRYJUICE,:SWEETHEART)
ItemHandlers::UseOnPokemon.copy(:POTION,:RAGECANDYBAR) if !Settings::RAGE_CANDY_BAR_CURES_STATUS_PROBLEMS
ItemHandlers::UseOnPokemon.add(:SUPERPOTION,proc { |item,pkmn,scene|
next pbHPItem(pkmn,50,scene)
next pbHPItem(pkmn, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 60 : 50, scene)
})
ItemHandlers::UseOnPokemon.add(:HYPERPOTION,proc { |item,pkmn,scene|
next pbHPItem(pkmn,200,scene)
next pbHPItem(pkmn, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 120 : 200, scene)
})
ItemHandlers::UseOnPokemon.add(:MAXPOTION,proc { |item,pkmn,scene|
@@ -378,15 +378,15 @@ ItemHandlers::UseOnPokemon.add(:MAXPOTION,proc { |item,pkmn,scene|
})
ItemHandlers::UseOnPokemon.add(:FRESHWATER,proc { |item,pkmn,scene|
next pbHPItem(pkmn,50,scene)
next pbHPItem(pkmn, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 30 : 50, scene)
})
ItemHandlers::UseOnPokemon.add(:SODAPOP,proc { |item,pkmn,scene|
next pbHPItem(pkmn,60,scene)
next pbHPItem(pkmn, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 50 : 60, scene)
})
ItemHandlers::UseOnPokemon.add(:LEMONADE,proc { |item,pkmn,scene|
next pbHPItem(pkmn,80,scene)
next pbHPItem(pkmn, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 70 : 80, scene)
})
ItemHandlers::UseOnPokemon.add(:MOOMOOMILK,proc { |item,pkmn,scene|
@@ -524,7 +524,7 @@ ItemHandlers::UseOnPokemon.add(:MAXREVIVE,proc { |item,pkmn,scene|
})
ItemHandlers::UseOnPokemon.add(:ENERGYPOWDER,proc { |item,pkmn,scene|
if pbHPItem(pkmn,50,scene)
if pbHPItem(pkmn, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 60 : 50, scene)
pkmn.changeHappiness("powder")
next true
end
@@ -532,7 +532,7 @@ ItemHandlers::UseOnPokemon.add(:ENERGYPOWDER,proc { |item,pkmn,scene|
})
ItemHandlers::UseOnPokemon.add(:ENERGYROOT,proc { |item,pkmn,scene|
if pbHPItem(pkmn,200,scene)
if pbHPItem(pkmn, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 120 : 200, scene)
pkmn.changeHappiness("energyroot")
next true
end
@@ -645,7 +645,7 @@ ItemHandlers::UseOnPokemon.add(:PPMAX,proc { |item,pkmn,scene|
})
ItemHandlers::UseOnPokemon.add(:HPUP,proc { |item,pkmn,scene|
if pbRaiseEffortValues(pkmn,:HP)==0
if pbRaiseEffortValues(pkmn, :HP, 10, Settings::NO_VITAMIN_EV_CAP) == 0
scene.pbDisplay(_INTL("It won't have any effect."))
next false
end
@@ -656,7 +656,7 @@ ItemHandlers::UseOnPokemon.add(:HPUP,proc { |item,pkmn,scene|
})
ItemHandlers::UseOnPokemon.add(:PROTEIN,proc { |item,pkmn,scene|
if pbRaiseEffortValues(pkmn,:ATTACK)==0
if pbRaiseEffortValues(pkmn, :ATTACK, 10, Settings::NO_VITAMIN_EV_CAP) == 0
scene.pbDisplay(_INTL("It won't have any effect."))
next false
end
@@ -666,7 +666,7 @@ ItemHandlers::UseOnPokemon.add(:PROTEIN,proc { |item,pkmn,scene|
})
ItemHandlers::UseOnPokemon.add(:IRON,proc { |item,pkmn,scene|
if pbRaiseEffortValues(pkmn,:DEFENSE)==0
if pbRaiseEffortValues(pkmn, :DEFENSE, 10, Settings::NO_VITAMIN_EV_CAP) == 0
scene.pbDisplay(_INTL("It won't have any effect."))
next false
end
@@ -676,7 +676,7 @@ ItemHandlers::UseOnPokemon.add(:IRON,proc { |item,pkmn,scene|
})
ItemHandlers::UseOnPokemon.add(:CALCIUM,proc { |item,pkmn,scene|
if pbRaiseEffortValues(pkmn,:SPECIAL_ATTACK)==0
if pbRaiseEffortValues(pkmn, :SPECIAL_ATTACK, 10, Settings::NO_VITAMIN_EV_CAP) == 0
scene.pbDisplay(_INTL("It won't have any effect."))
next false
end
@@ -686,7 +686,7 @@ ItemHandlers::UseOnPokemon.add(:CALCIUM,proc { |item,pkmn,scene|
})
ItemHandlers::UseOnPokemon.add(:ZINC,proc { |item,pkmn,scene|
if pbRaiseEffortValues(pkmn,:SPECIAL_DEFENSE)==0
if pbRaiseEffortValues(pkmn, :SPECIAL_DEFENSE, 10, Settings::NO_VITAMIN_EV_CAP) == 0
scene.pbDisplay(_INTL("It won't have any effect."))
next false
end
@@ -696,7 +696,7 @@ ItemHandlers::UseOnPokemon.add(:ZINC,proc { |item,pkmn,scene|
})
ItemHandlers::UseOnPokemon.add(:CARBOS,proc { |item,pkmn,scene|
if pbRaiseEffortValues(pkmn,:SPEED)==0
if pbRaiseEffortValues(pkmn, :SPEED, 10, Settings::NO_VITAMIN_EV_CAP) == 0
scene.pbDisplay(_INTL("It won't have any effect."))
next false
end

View File

@@ -323,11 +323,11 @@ ItemHandlers::BattleUseOnPokemon.copy(:POTION,:BERRYJUICE,:SWEETHEART)
ItemHandlers::BattleUseOnPokemon.copy(:POTION,:RAGECANDYBAR) if !Settings::RAGE_CANDY_BAR_CURES_STATUS_PROBLEMS
ItemHandlers::BattleUseOnPokemon.add(:SUPERPOTION,proc { |item,pokemon,battler,choices,scene|
pbBattleHPItem(pokemon,battler,50,scene)
pbBattleHPItem(pokemon, battler, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 60 : 50, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:HYPERPOTION,proc { |item,pokemon,battler,choices,scene|
pbBattleHPItem(pokemon,battler,200,scene)
pbBattleHPItem(pokemon, battler, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 120 : 200, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:MAXPOTION,proc { |item,pokemon,battler,choices,scene|
@@ -335,15 +335,15 @@ ItemHandlers::BattleUseOnPokemon.add(:MAXPOTION,proc { |item,pokemon,battler,cho
})
ItemHandlers::BattleUseOnPokemon.add(:FRESHWATER,proc { |item,pokemon,battler,choices,scene|
pbBattleHPItem(pokemon,battler,50,scene)
pbBattleHPItem(pokemon, battler, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 30 : 50, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:SODAPOP,proc { |item,pokemon,battler,choices,scene|
pbBattleHPItem(pokemon,battler,60,scene)
pbBattleHPItem(pokemon, battler, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 50 : 60, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:LEMONADE,proc { |item,pokemon,battler,choices,scene|
pbBattleHPItem(pokemon,battler,80,scene)
pbBattleHPItem(pokemon, battler, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 70 : 80, scene)
})
ItemHandlers::BattleUseOnPokemon.add(:MOOMOOMILK,proc { |item,pokemon,battler,choices,scene|
@@ -451,13 +451,13 @@ ItemHandlers::BattleUseOnPokemon.add(:MAXREVIVE,proc { |item,pokemon,battler,cho
})
ItemHandlers::BattleUseOnPokemon.add(:ENERGYPOWDER,proc { |item,pokemon,battler,choices,scene|
if pbBattleHPItem(pokemon,battler,50,scene)
if pbBattleHPItem(pokemon, battler, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 60 : 50, scene)
pokemon.changeHappiness("powder")
end
})
ItemHandlers::BattleUseOnPokemon.add(:ENERGYROOT,proc { |item,pokemon,battler,choices,scene|
if pbBattleHPItem(pokemon,battler,200,scene)
if pbBattleHPItem(pokemon, battler, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 120 : 200, scene)
pokemon.changeHappiness("energyroot")
end
})