mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
release 6.2
This commit is contained in:
74
Data/Scripts/051_AddOns/FusionUtils.rb
Normal file
74
Data/Scripts/051_AddOns/FusionUtils.rb
Normal file
@@ -0,0 +1,74 @@
|
||||
def is_fusion_of_any(species_id, pokemonList)
|
||||
is_species = false
|
||||
for fusionPokemon in pokemonList
|
||||
if is_fusion_of(species_id, fusionPokemon)
|
||||
is_species = true
|
||||
end
|
||||
end
|
||||
return is_species
|
||||
end
|
||||
|
||||
def is_fusion_of(checked_species, checked_against)
|
||||
return species_has_body_of(checked_species, checked_against) || species_has_head_of(checked_species, checked_against)
|
||||
end
|
||||
|
||||
def is_species(checked_species, checked_against)
|
||||
return checked_species == checked_against
|
||||
end
|
||||
|
||||
def species_has_body_of(checked_species, checked_against)
|
||||
if !species_is_fusion(checked_species)
|
||||
return is_species(checked_species, checked_against)
|
||||
end
|
||||
bodySpecies = get_body_species_from_symbol(checked_species)
|
||||
ret = bodySpecies == checked_against
|
||||
#echoln _INTL("{1} HAS BODY OF {2} : {3} (body is {4})",checked_species,checked_against,ret,bodySpecies)
|
||||
return ret
|
||||
end
|
||||
|
||||
def species_has_head_of(checked_species, checked_against)
|
||||
if !species_is_fusion(checked_species)
|
||||
return is_species(checked_species, checked_against)
|
||||
end
|
||||
headSpecies = get_head_species_from_symbol(checked_species)
|
||||
ret = headSpecies == checked_against
|
||||
#echoln _INTL("{1} HAS HEAD OF {2} : {3}",checked_species,checked_against,ret)
|
||||
return ret
|
||||
end
|
||||
|
||||
def species_is_fusion(species_id)
|
||||
dex_number = get_dex_number(species_id)
|
||||
return dex_number > NB_POKEMON && dex_number < Settings::ZAPMOLCUNO_NB
|
||||
end
|
||||
|
||||
def get_dex_number(species_id)
|
||||
return GameData::Species.get(species_id).id_number
|
||||
end
|
||||
|
||||
def getBodyID(species)
|
||||
if species.is_a?(Integer)
|
||||
dexNum = species
|
||||
else
|
||||
dexNum = getDexNumberForSpecies(species)
|
||||
end
|
||||
if dexNum % NB_POKEMON == 0
|
||||
return (dexNum / NB_POKEMON) - 1
|
||||
end
|
||||
return (dexNum / NB_POKEMON).round
|
||||
end
|
||||
|
||||
def getHeadID(species, bodyId = nil)
|
||||
if species.is_a?(Integer)
|
||||
fused_dexNum = species
|
||||
else
|
||||
fused_dexNum = getDexNumberForSpecies(species)
|
||||
end
|
||||
|
||||
if bodyId == nil
|
||||
bodyId = getBodyID(species)
|
||||
end
|
||||
body_dexNum = getDexNumberForSpecies(bodyId)
|
||||
|
||||
calculated_number = (fused_dexNum - (body_dexNum * NB_POKEMON)).round
|
||||
return calculated_number == 0 ? NB_POKEMON : calculated_number
|
||||
end
|
||||
Reference in New Issue
Block a user