From 7e627453daa081acad0d66aac8d0bdc61173ccf6 Mon Sep 17 00:00:00 2001 From: Maruno17 Date: Sat, 17 Oct 2020 00:56:30 +0100 Subject: [PATCH] Moved item data constants into module ItemData --- .../003_Battle/007_Battle_Action_UseItem.rb | 4 +- .../003_Battle/011_Battle_Phase_Attack.rb | 2 +- Data/Scripts/012_Battle/004_AI/002_AI_Item.rb | 2 +- .../005_Battle scene/008_Scene_Commands.rb | 4 +- .../013_Overworld/013_PField_DayCare.rb | 2 +- Data/Scripts/015_Items/001_PItem_Items.rb | 68 ++++++++++--------- Data/Scripts/021_Debug/004_Editor_Screens.rb | 56 +++++++-------- Data/Scripts/021_Debug/005_Editor_SaveData.rb | 23 ++++--- Data/Scripts/021_Debug/007_Editor_Listers.rb | 4 +- Data/Scripts/022_Compiler/002_Compiler_PBS.rb | 34 +++++----- 10 files changed, 104 insertions(+), 95 deletions(-) diff --git a/Data/Scripts/012_Battle/003_Battle/007_Battle_Action_UseItem.rb b/Data/Scripts/012_Battle/003_Battle/007_Battle_Action_UseItem.rb index bf51ddfb7..83e8cf7b3 100644 --- a/Data/Scripts/012_Battle/003_Battle/007_Battle_Action_UseItem.rb +++ b/Data/Scripts/012_Battle/003_Battle/007_Battle_Action_UseItem.rb @@ -41,7 +41,7 @@ class PokeBattle_Battle #============================================================================= def pbConsumeItemInBag(item,idxBattler) return if item==0 - useType = pbGetItemData(item,ITEM_BATTLE_USE) + useType = pbGetItemData(item,ItemData::BATTLE_USE) return if !useType || useType==0 || (useType>=6 && useType<=10) # Not consumed upon use if pbOwnedByPlayer?(idxBattler) if !$PokemonBag.pbDeleteItem(item) @@ -60,7 +60,7 @@ class PokeBattle_Battle def pbReturnUnusedItemToBag(item,idxBattler) return if item==0 - useType = pbGetItemData(item,ITEM_BATTLE_USE) + useType = pbGetItemData(item,ItemData::BATTLE_USE) return if !useType || useType==0 || (useType>=6 && useType<=10) # Not consumed upon use if pbOwnedByPlayer?(idxBattler) if $PokemonBag && $PokemonBag.pbCanStore?(item) diff --git a/Data/Scripts/012_Battle/003_Battle/011_Battle_Phase_Attack.rb b/Data/Scripts/012_Battle/003_Battle/011_Battle_Phase_Attack.rb index 6a1c12314..265490c38 100644 --- a/Data/Scripts/012_Battle/003_Battle/011_Battle_Phase_Attack.rb +++ b/Data/Scripts/012_Battle/003_Battle/011_Battle_Phase_Attack.rb @@ -70,7 +70,7 @@ class PokeBattle_Battle b.lastMoveFailed = false # Counts as a successful move for Stomping Tantrum item = @choices[b.index][1] next if !item || item<=0 - useType = pbGetItemData(item,ITEM_BATTLE_USE) + useType = pbGetItemData(item,ItemData::BATTLE_USE) next if !useType case useType when 1, 2, 6, 7 # Use on Pokémon/Pokémon's move diff --git a/Data/Scripts/012_Battle/004_AI/002_AI_Item.rb b/Data/Scripts/012_Battle/004_AI/002_AI_Item.rb index ba83512d1..238b04689 100644 --- a/Data/Scripts/012_Battle/004_AI/002_AI_Item.rb +++ b/Data/Scripts/012_Battle/004_AI/002_AI_Item.rb @@ -7,7 +7,7 @@ class PokeBattle_AI item, idxTarget = pbEnemyItemToUse(idxBattler) return false if item==0 # Determine target of item (always the Pokémon choosing the action) - useType = pbGetItemData(item,ITEM_BATTLE_USE) + useType = pbGetItemData(item,ItemData::BATTLE_USE) if useType && (useType==1 || useType==6) # Use on Pokémon idxTarget = @battle.battlers[idxTarget].pokemonIndex # Party Pokémon end diff --git a/Data/Scripts/012_Battle/005_Battle scene/008_Scene_Commands.rb b/Data/Scripts/012_Battle/005_Battle scene/008_Scene_Commands.rb index 7b702cfc3..56b987539 100644 --- a/Data/Scripts/012_Battle/005_Battle scene/008_Scene_Commands.rb +++ b/Data/Scripts/012_Battle/005_Battle scene/008_Scene_Commands.rb @@ -200,7 +200,7 @@ class PokeBattle_Scene # Start Bag screen itemScene = PokemonBag_Scene.new itemScene.pbStartScene($PokemonBag,true,Proc.new { |item| - useType = pbGetItemData(item,ITEM_BATTLE_USE) + useType = pbGetItemData(item,ItemData::BATTLE_USE) next useType && useType>0 },false) # Loop while in Bag screen @@ -211,7 +211,7 @@ class PokeBattle_Scene break if item==0 # Choose a command for the selected item itemName = PBItems.getName(item) - useType = pbGetItemData(item,ITEM_BATTLE_USE) + useType = pbGetItemData(item,ItemData::BATTLE_USE) cmdUse = -1 commands = [] commands[cmdUse = commands.length] = _INTL("Use") if useType && useType!=0 diff --git a/Data/Scripts/013_Overworld/013_PField_DayCare.rb b/Data/Scripts/013_Overworld/013_PField_DayCare.rb index 39d2bc2e1..aea7a56cb 100644 --- a/Data/Scripts/013_Overworld/013_PField_DayCare.rb +++ b/Data/Scripts/013_Overworld/013_PField_DayCare.rb @@ -263,7 +263,7 @@ def pbDayCareGenerateEgg itemsData = pbLoadItemsData for i in 0...itemsData.length next if !itemsData[i] - atk = itemsData[i][ITEM_MACHINE] + atk = itemsData[i][ItemData::MOVE] next if !atk || atk==0 next if !egg.compatibleWithMove?(atk) next if !movefather.hasMove?(atk) diff --git a/Data/Scripts/015_Items/001_PItem_Items.rb b/Data/Scripts/015_Items/001_PItem_Items.rb index 428b0b926..851e35d0f 100644 --- a/Data/Scripts/015_Items/001_PItem_Items.rb +++ b/Data/Scripts/015_Items/001_PItem_Items.rb @@ -1,16 +1,18 @@ #=============================================================================== # Item data #=============================================================================== -ITEM_ID = 0 -ITEM_NAME = 1 -ITEM_PLURAL = 2 -ITEM_POCKET = 3 -ITEM_PRICE = 4 -ITEM_DESCRIPTION = 5 -ITEM_FIELD_USE = 6 -ITEM_BATTLE_USE = 7 -ITEM_TYPE = 8 -ITEM_MACHINE = 9 +module ItemData + ID = 0 + NAME = 1 + NAME_PLURAL = 2 + POCKET = 3 + PRICE = 4 + DESCRIPTION = 5 + FIELD_USE = 6 + BATTLE_USE = 7 + TYPE = 8 + MOVE = 9 +end @@ -42,92 +44,92 @@ def pbClearData end def pbGetPocket(item) - ret = pbGetItemData(item,ITEM_POCKET) + ret = pbGetItemData(item,ItemData::POCKET) return ret || 0 end def pbGetPrice(item) - ret = pbGetItemData(item,ITEM_PRICE) + ret = pbGetItemData(item,ItemData::PRICE) return ret || 0 end def pbGetMachine(item) - ret = pbGetItemData(item,ITEM_MACHINE) + ret = pbGetItemData(item,ItemData::MOVE) return ret || 0 end def pbIsTechnicalMachine?(item) - ret = pbGetItemData(item,ITEM_FIELD_USE) + ret = pbGetItemData(item,ItemData::FIELD_USE) return ret && ret==3 end def pbIsHiddenMachine?(item) - ret = pbGetItemData(item,ITEM_FIELD_USE) + ret = pbGetItemData(item,ItemData::FIELD_USE) return ret && ret==4 end def pbIsMachine?(item) - ret = pbGetItemData(item,ITEM_FIELD_USE) + ret = pbGetItemData(item,ItemData::FIELD_USE) return ret && (ret==3 || ret==4) end def pbIsMail?(item) - ret = pbGetItemData(item,ITEM_TYPE) + ret = pbGetItemData(item,ItemData::TYPE) return ret && (ret==1 || ret==2) end def pbIsMailWithPokemonIcons?(item) - ret = pbGetItemData(item,ITEM_TYPE) + ret = pbGetItemData(item,ItemData::TYPE) return ret && ret==2 end def pbIsPokeBall?(item) - ret = pbGetItemData(item,ITEM_TYPE) + ret = pbGetItemData(item,ItemData::TYPE) return ret && (ret==3 || ret==4) end def pbIsSnagBall?(item) - ret = pbGetItemData(item,ITEM_TYPE) + ret = pbGetItemData(item,ItemData::TYPE) return ret && (ret==3 || (ret==4 && $PokemonGlobal.snagMachine)) end def pbIsBerry?(item) - ret = pbGetItemData(item,ITEM_TYPE) + ret = pbGetItemData(item,ItemData::TYPE) return ret && ret==5 end def pbIsKeyItem?(item) - ret = pbGetItemData(item,ITEM_TYPE) + ret = pbGetItemData(item,ItemData::TYPE) return ret && ret==6 end def pbIsEvolutionStone?(item) - ret = pbGetItemData(item,ITEM_TYPE) + ret = pbGetItemData(item,ItemData::TYPE) return ret && ret==7 end def pbIsFossil?(item) - ret = pbGetItemData(item,ITEM_TYPE) + ret = pbGetItemData(item,ItemData::TYPE) return ret && ret==8 end def pbIsApricorn?(item) - ret = pbGetItemData(item,ITEM_TYPE) + ret = pbGetItemData(item,ItemData::TYPE) return ret && ret==9 end def pbIsGem?(item) - ret = pbGetItemData(item,ITEM_TYPE) + ret = pbGetItemData(item,ItemData::TYPE) return ret && ret==10 end def pbIsMulch?(item) - ret = pbGetItemData(item,ITEM_TYPE) + ret = pbGetItemData(item,ItemData::TYPE) return ret && ret==11 end def pbIsMegaStone?(item) # Does NOT include Red Orb/Blue Orb - ret = pbGetItemData(item,ITEM_TYPE) + ret = pbGetItemData(item,ItemData::TYPE) return ret && ret==12 end @@ -135,9 +137,9 @@ end def pbIsImportantItem?(item) itemData = pbLoadItemsData[getID(PBItems,item)] return false if !itemData - return true if itemData[ITEM_TYPE] && itemData[ITEM_TYPE]==6 # Key item - return true if itemData[ITEM_FIELD_USE] && itemData[ITEM_FIELD_USE]==4 # HM - return true if itemData[ITEM_FIELD_USE] && itemData[ITEM_FIELD_USE]==3 && INFINITE_TMS # TM + return true if itemData[ItemData::TYPE] && itemData[ItemData::TYPE]==6 # Key item + return true if itemData[ItemData::FIELD_USE] && itemData[ItemData::FIELD_USE]==4 # HM + return true if itemData[ItemData::FIELD_USE] && itemData[ItemData::FIELD_USE]==3 && INFINITE_TMS # TM return false end @@ -681,7 +683,7 @@ end # Use an item from the Bag and/or on a Pokémon #=============================================================================== def pbUseItem(bag,item,bagscene=nil) - useType = pbGetItemData(item,ITEM_FIELD_USE) + useType = pbGetItemData(item,ItemData::FIELD_USE) if pbIsMachine?(item) # TM or HM if $Trainer.pokemonCount==0 pbMessage(_INTL("There is no Pokémon.")) @@ -782,7 +784,7 @@ def pbUseItemOnPokemon(item,pkmn,scene) ret = ItemHandlers.triggerUseOnPokemon(item,pkmn,scene) scene.pbClearAnnotations scene.pbHardRefresh - useType = pbGetItemData(item,ITEM_FIELD_USE) + useType = pbGetItemData(item,ItemData::FIELD_USE) if ret && useType && useType==1 # Usable on Pokémon, consumed $PokemonBag.pbDeleteItem(item) if !$PokemonBag.pbHasItem?(item) diff --git a/Data/Scripts/021_Debug/004_Editor_Screens.rb b/Data/Scripts/021_Debug/004_Editor_Screens.rb index 4b791644c..8c21a9c44 100644 --- a/Data/Scripts/021_Debug/004_Editor_Screens.rb +++ b/Data/Scripts/021_Debug/004_Editor_Screens.rb @@ -635,26 +635,26 @@ def pbItemEditor else data = [getConstantName(PBItems,selection)] itemdata = pbLoadItemsData - data.push(itemdata[selection][ITEM_NAME]) - data.push(itemdata[selection][ITEM_PLURAL]) - data.push(itemdata[selection][ITEM_POCKET]) - data.push(itemdata[selection][ITEM_PRICE]) - data.push(itemdata[selection][ITEM_DESCRIPTION]) - data.push(itemdata[selection][ITEM_FIELD_USE]) - data.push(itemdata[selection][ITEM_BATTLE_USE]) - data.push(itemdata[selection][ITEM_TYPE]) - data.push(itemdata[selection][ITEM_MACHINE]) - save = pbPropertyList(data[ITEM_NAME],data,items,true) + data.push(itemdata[selection][ItemData::NAME]) + data.push(itemdata[selection][ItemData::NAME_PLURAL]) + data.push(itemdata[selection][ItemData::POCKET]) + data.push(itemdata[selection][ItemData::PRICE]) + data.push(itemdata[selection][ItemData::DESCRIPTION]) + data.push(itemdata[selection][ItemData::FIELD_USE]) + data.push(itemdata[selection][ItemData::BATTLE_USE]) + data.push(itemdata[selection][ItemData::TYPE]) + data.push(itemdata[selection][ItemData::MOVE]) + save = pbPropertyList(data[ItemData::NAME],data,items,true) if save - itemdata[selection][ITEM_NAME] = data[ITEM_NAME] - itemdata[selection][ITEM_PLURAL] = data[ITEM_PLURAL] - itemdata[selection][ITEM_POCKET] = data[ITEM_POCKET] - itemdata[selection][ITEM_PRICE] = data[ITEM_PRICE] - itemdata[selection][ITEM_DESCRIPTION] = data[ITEM_DESCRIPTION] - itemdata[selection][ITEM_FIELD_USE] = data[ITEM_FIELD_USE] - itemdata[selection][ITEM_BATTLE_USE] = data[ITEM_BATTLE_USE] - itemdata[selection][ITEM_TYPE] = data[ITEM_TYPE] - itemdata[selection][ITEM_MACHINE] = data[ITEM_MACHINE] + itemdata[selection][ItemData::NAME] = data[ItemData::NAME] + itemdata[selection][ItemData::NAME_PLURAL] = data[ItemData::NAME_PLURAL] + itemdata[selection][ItemData::POCKET] = data[ItemData::POCKET] + itemdata[selection][ItemData::PRICE] = data[ItemData::PRICE] + itemdata[selection][ItemData::DESCRIPTION] = data[ItemData::DESCRIPTION] + itemdata[selection][ItemData::FIELD_USE] = data[ItemData::FIELD_USE] + itemdata[selection][ItemData::BATTLE_USE] = data[ItemData::BATTLE_USE] + itemdata[selection][ItemData::TYPE] = data[ItemData::TYPE] + itemdata[selection][ItemData::MOVE] = data[ItemData::MOVE] save_data(itemdata,"Data/items.dat") $PokemonTemp.itemsData = nil pbSaveItems @@ -711,15 +711,15 @@ def pbItemEditorNew(defaultname) return -1 if price==-1 desc = StringProperty.set(_INTL("Description"),"") # Item list will create record automatically - itemdata[index][ITEM_ID] = index - itemdata[index][ITEM_NAME] = itemname - itemdata[index][ITEM_POCKET] = pocket - itemdata[index][ITEM_PRICE] = price - itemdata[index][ITEM_DESCRIPTION] = desc - itemdata[index][ITEM_FIELD_USE] = 0 - itemdata[index][ITEM_BATTLE_USE] = 0 - itemdata[index][ITEM_TYPE] = 0 - itemdata[index][ITEM_MACHINE] = 0 + itemdata[index][ItemData::ID] = index + itemdata[index][ItemData::NAME] = itemname + itemdata[index][ItemData::POCKET] = pocket + itemdata[index][ItemData::PRICE] = price + itemdata[index][ItemData::DESCRIPTION] = desc + itemdata[index][ItemData::FIELD_USE] = 0 + itemdata[index][ItemData::BATTLE_USE] = 0 + itemdata[index][ItemData::TYPE] = 0 + itemdata[index][ItemData::MOVE] = 0 PBItems.const_set(cname,index) save_data(itemdata,"Data/items.dat") $PokemonTemp.itemsData = nil diff --git a/Data/Scripts/021_Debug/005_Editor_SaveData.rb b/Data/Scripts/021_Debug/005_Editor_SaveData.rb index 23b779d85..0b16dad84 100644 --- a/Data/Scripts/021_Debug/005_Editor_SaveData.rb +++ b/Data/Scripts/021_Debug/005_Editor_SaveData.rb @@ -242,19 +242,26 @@ def pbSaveItems data = itemData[i] cname = getConstantName(PBItems,i) rescue sprintf("ITEM%03d",i) next if !cname || cname=="" || data[0]==0 - if curpocket!=data[ITEM_POCKET] - curpocket = data[ITEM_POCKET] + if curpocket!=data[ItemData::POCKET] + curpocket = data[ItemData::POCKET] f.write("\#-------------------------------\r\n") end machine = "" - if data[ITEM_MACHINE]>0 - machine = getConstantName(PBMoves,data[ITEM_MACHINE]) rescue pbGetMoveConst(data[ITEM_MACHINE]) rescue "" + if data[ItemData::MOVE]>0 + machine = getConstantName(PBMoves,data[ItemData::MOVE]) rescue pbGetMoveConst(data[ItemData::MOVE]) rescue "" end f.write(sprintf("%d,%s,%s,%s,%d,%d,%s,%d,%d,%d,%s", - data[ITEM_ID],csvQuote(cname),csvQuote(data[ITEM_NAME]), - csvQuote(data[ITEM_PLURAL]),data[ITEM_POCKET],data[ITEM_PRICE], - csvQuoteAlways(data[ITEM_DESCRIPTION]),data[ITEM_FIELD_USE], - data[ITEM_BATTLE_USE],data[ITEM_TYPE],csvQuote(machine))) + data[ItemData::ID], + csvQuote(cname), + csvQuote(data[ItemData::NAME]), + csvQuote(data[ItemData::NAME_PLURAL]), + data[ItemData::POCKET], + data[ItemData::PRICE], + csvQuoteAlways(data[ItemData::DESCRIPTION]), + data[ItemData::FIELD_USE], + data[ItemData::BATTLE_USE], + data[ItemData::TYPE], + csvQuote(machine))) f.write("\r\n") end } diff --git a/Data/Scripts/021_Debug/007_Editor_Listers.rb b/Data/Scripts/021_Debug/007_Editor_Listers.rb index bef3e9344..1595e3e4e 100644 --- a/Data/Scripts/021_Debug/007_Editor_Listers.rb +++ b/Data/Scripts/021_Debug/007_Editor_Listers.rb @@ -408,8 +408,8 @@ class ItemLister cmds = [] for i in 1..PBItems.maxValue next if !@itemdata[i] - name = @itemdata[i][ITEM_NAME] - if name && name!="" && @itemdata[i][ITEM_POCKET]!=0 + name = @itemdata[i][ItemData::NAME] + if name && name!="" && @itemdata[i][ItemData::POCKET]!=0 cmds.push([i,name]) end end diff --git a/Data/Scripts/022_Compiler/002_Compiler_PBS.rb b/Data/Scripts/022_Compiler/002_Compiler_PBS.rb index 59402554c..1e80c6aca 100644 --- a/Data/Scripts/022_Compiler/002_Compiler_PBS.rb +++ b/Data/Scripts/022_Compiler/002_Compiler_PBS.rb @@ -546,24 +546,24 @@ def pbCompileItems linerecord = pbGetCsvRecord(line,lineno,[0,"vnssuusuuUN"]) id = linerecord[0] record = [] - record[ITEM_ID] = id - constant = linerecord[1] - constants += "#{constant}=#{id}\r\n" - record[ITEM_NAME] = linerecord[2] - itemnames[id] = linerecord[2] - record[ITEM_PLURAL] = linerecord[3] - itempluralnames[id] = linerecord[3] - record[ITEM_POCKET] = linerecord[4] - record[ITEM_PRICE] = linerecord[5] - record[ITEM_DESCRIPTION] = linerecord[6] - itemdescs[id] = linerecord[6] - record[ITEM_FIELD_USE] = linerecord[7] - record[ITEM_BATTLE_USE] = linerecord[8] - record[ITEM_TYPE] = linerecord[9] - if record[ITEM_TYPE]!="" && linerecord[10] - record[ITEM_MACHINE] = parseMove(linerecord[10]) + record[ItemData::ID] = id + constant = linerecord[1] + constants += "#{constant}=#{id}\r\n" + record[ItemData::NAME] = linerecord[2] + itemnames[id] = linerecord[2] + record[ItemData::NAME_PLURAL] = linerecord[3] + itempluralnames[id] = linerecord[3] + record[ItemData::POCKET] = linerecord[4] + record[ItemData::PRICE] = linerecord[5] + record[ItemData::DESCRIPTION] = linerecord[6] + itemdescs[id] = linerecord[6] + record[ItemData::FIELD_USE] = linerecord[7] + record[ItemData::BATTLE_USE] = linerecord[8] + record[ItemData::TYPE] = linerecord[9] + if record[ItemData::TYPE]!="" && linerecord[10] + record[ItemData::MOVE] = parseMove(linerecord[10]) else - record[ITEM_MACHINE] = 0 + record[ItemData::MOVE] = 0 end maxValue = [maxValue,id].max records[id] = record