mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-12 07:35:00 +00:00
6.6 update
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class PokemonGlobalMetadata
|
||||
#Map that keeps track of all the npc trainers the player has battled
|
||||
# [map_id,event_id] =>BattledTrainer
|
||||
attr_accessor :battledTrainers
|
||||
end
|
||||
|
||||
TIME_FOR_RANDOM_EVENTS = 60#3600 #1 hour
|
||||
|
||||
|
||||
## Extend pbTrainerBattle to call postTrainerBattleAction at the end of every trainer battle
|
||||
alias original_pbTrainerBattle pbTrainerBattle
|
||||
def pbTrainerBattle(trainerID, trainerName,endSpeech=nil,
|
||||
doubleBattle=false, trainerPartyID=0,
|
||||
*args)
|
||||
result = original_pbTrainerBattle(trainerID, trainerName, endSpeech,doubleBattle,trainerPartyID, *args)
|
||||
postTrainerBattleActions(trainerID, trainerName,trainerPartyID) if Settings::GAME_ID == :IF_HOENN
|
||||
return result
|
||||
end
|
||||
def postTrainerBattleActions(trainerID, trainerName,trainerVersion)
|
||||
trainer = registerBattledTrainer(@event_id,$game_map.map_id,trainerID,trainerName,trainerVersion)
|
||||
makeRebattledTrainerTeamGainExp(trainer)
|
||||
end
|
||||
|
||||
|
||||
#Do NOT call this alone. Rebattlable trainers are always intialized after
|
||||
# defeating them.
|
||||
# Having a rematchable trainer that is not registered will cause crashes.
|
||||
def registerBattledTrainer(event_id, mapId, trainerType, trainerName, trainerVersion=0)
|
||||
key = [event_id,mapId]
|
||||
$PokemonGlobal.battledTrainers = {} unless $PokemonGlobal.battledTrainers
|
||||
trainer = BattledTrainer.new(trainerType, trainerName, trainerVersion)
|
||||
$PokemonGlobal.battledTrainers[key] = trainer
|
||||
return trainer
|
||||
end
|
||||
|
||||
def unregisterBattledTrainer(event_id, mapId)
|
||||
key = [event_id,mapId]
|
||||
$PokemonGlobal.battledTrainers = {} unless $PokemonGlobal.battledTrainers
|
||||
if $PokemonGlobal.battledTrainers.has_key?(key)
|
||||
$PokemonGlobal.battledTrainers[key] =nil
|
||||
echoln "Unregistered Battled Trainer #{key}"
|
||||
else
|
||||
echoln "Could not unregister Battled Trainer #{key}"
|
||||
end
|
||||
end
|
||||
|
||||
def resetTrainerRebattle(event_id, map_id)
|
||||
trainer = getRebattledTrainer(event_id,map_id)
|
||||
|
||||
trainerType = trainer.trainerType
|
||||
trainerName = trainer.trainerName
|
||||
|
||||
unregisterBattledTrainer(event_id,map_id)
|
||||
registerBattledTrainer(event_id,map_id,trainerType,trainerName)
|
||||
end
|
||||
|
||||
def updateRebattledTrainer(event_id,map_id,updated_trainer)
|
||||
key = [event_id,map_id]
|
||||
$PokemonGlobal.battledTrainers = {} if !$PokemonGlobal.battledTrainers
|
||||
$PokemonGlobal.battledTrainers[key] = updated_trainer
|
||||
end
|
||||
|
||||
def getRebattledTrainer(event_id,map_id)
|
||||
key = [event_id,map_id]
|
||||
$PokemonGlobal.battledTrainers = {} if !$PokemonGlobal.battledTrainers
|
||||
return $PokemonGlobal.battledTrainers[key]
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user