Skip to content

Instantly share code, notes, and snippets.

@Prof9
Last active January 3, 2024 23:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Prof9/7049dd160bbcd7ad000edba4f40a95cf to your computer and use it in GitHub Desktop.
Save Prof9/7049dd160bbcd7ad000edba4f40a95cf to your computer and use it in GitHub Desktop.
EXEPoN event parser
import struct
import zipfile
from argparse import ArgumentParser
from io import BytesIO
from pathlib import Path
from common import Constants
path_7zip = Path("C:\\Program Files\\7-Zip\\7z.exe")
arg_parser = ArgumentParser()
arg_parser.add_argument("e_file", type=Path)
args = arg_parser.parse_args()
path_e: Path = args.e_file
# Unpack .jar in memory
e = path_e.read_bytes()
if path_e.suffix == ".jar":
e_file = BytesIO(e)
with zipfile.ZipFile(e_file) as zip_file:
e = zip_file.read("data.dat")
e = BytesIO(e)
(event_cnt,) = struct.unpack(">I", e.read(4))
event_siz = []
for _ in range(event_cnt):
event_siz.append(struct.unpack(">I", e.read(4))[0])
for i in range(event_cnt):
print(f"Event {i+1}")
for _ in range(event_siz[i]):
(event_dat,) = struct.unpack(">I", e.read(4))
a = event_dat >> 2 & 63
b = event_dat >> 8 & 255
c = event_dat >> 16 & 1023
d = event_dat >> 26 & 31
e_set = event_dat & 3
type = ["mes", "efc", "cmd", "end"][e_set]
print(f"{type} {a:2}, {b:3}, {c:4}, {d:2}\t// ", end="")
mes_types = [
"scenario",
"quest",
"mail",
"common",
"chip_desc",
"skill_desc",
"quest_desc",
None,
None,
None,
"sys_mes",
"sina_mes",
]
if e_set == 0:
mes_type = mes_types[b]
mes_id = str(c // 100) + "_" + str(c % 100) if b == 0 else str(c)
face_id = Constants.face_ids[a]
if e_set == 1 and a == 14:
mes_type = mes_types[d]
mes_id = str(c // 100) + "_" + str(c % 100) if d == 0 else str(c)
cmd_desc = ""
match e_set:
case 0:
cmd_desc = f"message type={mes_type} id={mes_id} face={face_id}"
case 1:
match a:
case 0:
cmd_desc = "clear effect"
case 1:
cmd_desc = "fill half screen black"
case 2:
cmd_desc = "fill half screen white"
case 3:
cmd_desc = "flash full screen white"
case 4:
cmd_desc = "fill full screen black"
case 5:
cmd_desc = "fill full screen white"
case 6:
cmd_desc = f"fade out half screen black starting from frame {b}"
case 7:
cmd_desc = f"fade in half screen black starting from frame {b}"
case 8:
cmd_desc = f"jack in effect"
case 9:
cmd_desc = f"shake screen"
case 10:
cmd_desc = f"wait {b} frames"
case 11:
if b == 0:
cmd_desc = f"stop audio"
else:
cmd_desc = f"play audio {c}"
case 12:
cmd_desc = f"show new mail notification and wait {b} frames"
case 13:
cmd_desc = f"explosions at {c},{d}"
case 14:
cmd_desc = f"message type={mes_type} id={mes_id} in center of black screen then wait {b} frames"
pass
case 2:
match a:
case 0:
if d == 10:
cmd_desc = f"increment talk flag by 1 for npc {c} in real world area {b}={Constants.map_real_name[b]}"
else:
cmd_desc = f"set talk flag to {d} for npc {c} in real world area {b}={Constants.map_real_name[b]}"
case 1:
if c in [0, 1, 2, 3]:
cmd_desc = f"set item flag to {d} for item {c} in cyberworld area {b}={Constants.map_cyber_name[b]}"
elif c in [4, 5]:
cmd_desc = f"set security cube flag to {d} for cube {c-4} in cyberworld area {b}={Constants.map_cyber_name[b]}"
elif c in [6, 7, 8, 9]:
cmd_desc = f"set npc flag to {d} for npc {c-6} in cyberworld area {b}={Constants.map_cyber_name[b]}"
case 3:
if c == 0:
cmd_desc = f"enable move options up to {d} for real world area {b}={Constants.map_real_name[b]}"
else:
cmd_desc = f"enable jack in options up to {d} for real world area {b}={Constants.map_real_name[b]}"
case 4:
cmd_desc = f"set talk faces {Constants.face_ids[b]}, {Constants.face_ids[c]}, {Constants.face_ids[d]}"
case 5:
cmd_desc = f"set jump to event {b} if yes chosen"
case 6:
if b == 0:
cmd_desc = f"give chip {c}={Constants.chip_ids[c]}"
else:
cmd_desc = f"take chip {c}={Constants.chip_ids[c]}"
case 7:
if b == 0:
cmd_desc = f"give zenny {c*100}"
else:
cmd_desc = f"take zenny {c*100}"
case 8:
if b == 0:
cmd_desc = f"give bugfrag {c}"
else:
cmd_desc = f"take bugfrag {c}"
case 9:
if b == 0:
cmd_desc = f"give skill {Constants.skill_ids[c]}"
else:
cmd_desc = f"take skill {Constants.skill_ids[c]}"
case 10:
cmd_desc = f"set player position to {b},{c} direction {d}"
case 11:
cmd_desc = f"goto event {c}"
case 12:
cmd_desc = f"increase regmem by {b}"
case 13:
cmd_desc = f"receive mail up to mail {b}"
case 14:
cmd_desc = f"increment navi {b} flag by 1"
case 15:
cmd_desc = f"enable skill editor"
case 16:
cmd_desc = f"receive hpmem"
case 17:
cmd_desc = f"receive skill slot x3"
case 18:
cmd_desc = f"give new folder"
case 19:
cmd_desc = f"clear quest"
case 20:
cmd_desc = f"clear scenario"
case 21:
cmd_desc = f"jack out"
case 22:
cmd_desc = f"draw sprite {b} at {c},{d} in slot 0"
case 23:
cmd_desc = f"draw sprite {b} at {c},{d} in slot 1"
case 24:
cmd_desc = f"draw sprite {b} at {c},{d} in slot 2"
case 25:
cmd_desc = f"draw sprite {b} at {c},{d} in slot 3"
case 26:
if c >= 300:
cmd_desc = f"start battle {c} + navi flag {b}, can lose={d}"
else:
cmd_desc = f"start battle {c}, can lose={d}"
case 27:
cmd_desc = f"start battle gauntlet {b}, can lose={d}"
case 28:
match d:
case 0:
cmd_desc = f"if zenny >= {c*100} goto event {b}"
case 1:
cmd_desc = f"if library standard+mega+giga >= {c} goto event {b}"
case 2:
cmd_desc = f"if library standard >= {c} goto event {b}"
case 3:
cmd_desc = f"if library mega >= {c} goto event {b}"
case 4:
cmd_desc = f"if library giga >= {c} goto event {b}"
case 5:
cmd_desc = f"if bugfrag >= {c} goto event {b}"
case 6:
cmd_desc = f"if navi {c % 100} flag < {c // 100} goto event {b}"
case 7:
cmd_desc = f"if battle won goto event {b}"
case 8:
cmd_desc = f"if chip {c}={Constants.chip_ids[c]} count >= 1 goto event {b}"
case 9:
cmd_desc = f"if scenario state >= {c} goto event {b}"
case 10:
cmd_desc = f"if quest state >= {c} goto event {b}"
case 11:
cmd_desc = f"if scenario state == {c} goto event {b}"
case 12:
cmd_desc = f"if quest state == {c} goto event {b}"
case 13:
cmd_desc = f"if story complete star goto event {b}"
case 14:
cmd_desc = f"if quest complete star goto event {b}"
case 29:
if c == 0:
cmd_desc = f"change real world area {b}={Constants.map_real_name[b]}"
elif b != 31:
cmd_desc = f"change real world area {b}={Constants.map_real_name[b]} and continue with event"
else:
cmd_desc = f"change real world area {b}=None and continue with event"
case 30:
if b == 0:
cmd_desc = f"increment scenario state by 1"
elif b == 1:
cmd_desc = f"decrement scenario state by 1"
elif b == 2:
cmd_desc = f"set scenario state to {c}"
case 31:
if b == 0:
cmd_desc = f"increment quest state by 1"
elif b == 1:
cmd_desc = f"decrement quest state by 1"
elif b == 2:
cmd_desc = f"set quest state to {c}"
case 32:
cmd_desc = f"set gauntlet {b} battle # {d} to battle {c}"
case 3:
match a:
case 0:
if b == 0:
cmd_desc = f"end to field screen"
elif b == 1:
cmd_desc = f"end to talk screen (1)"
elif b == 2:
cmd_desc = f"end to talk screen (2)"
elif b == 3:
cmd_desc = f"end to chapter end"
case 1:
cmd_desc = f"end with shop {b}"
case 2:
cmd_desc = f"end with chip trader {b} open"
case 3:
cmd_desc = f"end with chip trader {b} reward and save"
case 4:
cmd_desc = f"end with rank screen"
case 5:
cmd_desc = f"end with bugfrag trader"
pass
assert cmd_desc != ""
print(cmd_desc)
print()
class Constants:
chip_ids = [
"MegaBstr *",
"ChrgBstr *",
"Cannon A",
"Cannon B",
"Cannon C",
"Cannon *",
"HiCannon C",
"HiCannon D",
"HiCannon E",
"HiCannon *",
"M-Cannon E",
"M-Cannon F",
"M-Cannon G",
"M-Cannon *",
"Vulcan1 E",
"Vulcan1 S",
"Vulcan1 V",
"Vulcan1 *",
"Vulcan2 B",
"Vulcan2 H",
"Vulcan2 O",
"Vulcan2 *",
"Vulcan3 O",
"Vulcan3 T",
"Vulcan3 W",
"Vulcan3 *",
"ShotGun B",
"ShotGun G",
"ShotGun J",
"ShotGun *",
"V-Gun D",
"V-Gun G",
"V-Gun V",
"V-Gun *",
"SideGun C",
"SideGun G",
"SideGun S",
"SideGun *",
"Spreader L",
"Spreader M",
"Spreader N",
"Spreader *",
"Bubbler B",
"Bubbler D",
"Bubbler F",
"Bubbler *",
"Bub-V B",
"Bub-V D",
"Bub-V E",
"Bub-V *",
"BublSide B",
"BublSide E",
"BublSide F",
"BublSide *",
"HeatShot B",
"HeatShot C",
"HeatShot H",
"HeatShot *",
"Heat-V C",
"Heat-V D",
"Heat-V H",
"Heat-V *",
"HeatSide D",
"HeatSide E",
"HeatSide H",
"HeatSide *",
"ZapRing1 A",
"ZapRing1 Q",
"ZapRing1 S",
"ZapRing1 *",
"ZapRing2 B",
"ZapRing2 R",
"ZapRing2 W",
"ZapRing2 *",
"ZapRing3 C",
"ZapRing3 T",
"ZapRing3 Z",
"ZapRing3 *",
"Tornado E",
"Tornado L",
"Tornado T",
"Tornado *",
"EleShok1 C",
"EleShok1 D",
"EleShok1 E",
"EleShok1 *",
"EleShok2 B",
"EleShok2 C",
"EleShok2 D",
"EleShok2 *",
"EleShok3 E",
"EleShok3 F",
"EleShok3 G",
"EleShok3 *",
"MiniBomb B",
"MiniBomb L",
"MiniBomb T",
"MiniBomb *",
"LineBomb C",
"LineBomb M",
"LineBomb U",
"LineBomb *",
"CrosBomb D",
"CrosBomb N",
"CrosBomb V",
"CrosBomb *",
"CannBall B",
"CannBall T",
"CannBall V",
"CannBall *",
"IceBall D",
"IceBall M",
"IceBall Z",
"IceBall *",
"LavaBall E",
"LavaBall H",
"LavaBall U",
"LavaBall *",
"PoisBall C",
"PoisBall H",
"PoisBall Z",
"PoisBall *",
"Ratton1 A",
"Ratton1 C",
"Ratton1 H",
"Ratton1 *",
"Ratton2 A",
"Ratton2 C",
"Ratton2 F",
"Ratton2 *",
"Ratton3 A",
"Ratton3 C",
"Ratton3 S",
"Ratton3 *",
"TreeBom1 M",
"TreeBom1 S",
"TreeBom1 Y",
"TreeBom1 *",
"TreeBom2 E",
"TreeBom2 K",
"TreeBom2 O",
"TreeBom2 *",
"TreeBom3 M",
"TreeBom3 Q",
"TreeBom3 Y",
"TreeBom3 *",
"Geyser B",
"Geyser L",
"Geyser V",
"Geyser *",
"Sword E",
"Sword L",
"Sword S",
"Sword *",
"WideSwrd E",
"WideSwrd L",
"WideSwrd S",
"WideSwrd *",
"LongSwrd E",
"LongSwrd L",
"LongSwrd S",
"LongSwrd *",
"WideBlde B",
"WideBlde K",
"WideBlde S",
"WideBlde *",
"LongBlde B",
"LongBlde R",
"LongBlde S",
"LongBlde *",
"FireSwrd F",
"FireSwrd N",
"FireSwrd P",
"FireSwrd *",
"AquaSwrd A",
"AquaSwrd N",
"AquaSwrd P",
"AquaSwrd *",
"ElecSwrd E",
"ElecSwrd N",
"ElecSwrd P",
"ElecSwrd *",
"BambSwrd B",
"BambSwrd N",
"BambSwrd P",
"BambSwrd *",
"FireBlde D",
"FireBlde F",
"FireBlde M",
"FireBlde *",
"AquaBlde A",
"AquaBlde D",
"AquaBlde Q",
"AquaBlde *",
"ElecBlde D",
"ElecBlde E",
"ElecBlde K",
"ElecBlde *",
"BambBlde B",
"BambBlde D",
"BambBlde N",
"BambBlde *",
"ShockWav D",
"ShockWav J",
"ShockWav R",
"ShockWav *",
"SonicWav G",
"SonicWav M",
"SonicWav W",
"SonicWav *",
"DynaWave E",
"DynaWave Q",
"DynaWave T",
"DynaWave *",
"FlmLine1 F",
"FlmLine1 G",
"FlmLine1 H",
"FlmLine1 *",
"FlmLine2 D",
"FlmLine2 E",
"FlmLine2 F",
"FlmLine2 *",
"FlmLine3 J",
"FlmLine3 K",
"FlmLine3 L",
"FlmLine3 *",
"AquaTwr1 C",
"AquaTwr1 D",
"AquaTwr1 E",
"AquaTwr1 *",
"AquaTwr2 L",
"AquaTwr2 M",
"AquaTwr2 N",
"AquaTwr2 *",
"AquaTwr3 S",
"AquaTwr3 T",
"AquaTwr3 U",
"AquaTwr3 *",
"WoodTwr1 B",
"WoodTwr1 H",
"WoodTwr1 K",
"WoodTwr1 *",
"WoodTwr2 C",
"WoodTwr2 I",
"WoodTwr2 L",
"WoodTwr2 *",
"WoodTwr3 D",
"WoodTwr3 J",
"WoodTwr3 M",
"WoodTwr3 *",
"AirHoc1 M",
"AirHoc1 N",
"AirHoc1 O",
"AirHoc1 *",
"AirHoc2 E",
"AirHoc2 F",
"AirHoc2 G",
"AirHoc2 *",
"AirHoc3 S",
"AirHoc3 T",
"AirHoc3 U",
"AirHoc3 *",
"Boomer1 L",
"Boomer1 M",
"Boomer1 N",
"Boomer1 *",
"Boomer2 L",
"Boomer2 M",
"Boomer2 N",
"Boomer2 *",
"Boomer3 S",
"Boomer3 T",
"Boomer3 U",
"Boomer3 *",
"MokoRus1 C",
"MokoRus1 H",
"MokoRus1 M",
"MokoRus1 *",
"MokoRus2 G",
"MokoRus2 K",
"MokoRus2 U",
"MokoRus2 *",
"MokoRus3 O",
"MokoRus3 T",
"MokoRus3 Y",
"MokoRus3 *",
"Satelit1 D",
"Satelit1 J",
"Satelit1 N",
"Satelit1 *",
"Satelit2 I",
"Satelit2 M",
"Satelit2 T",
"Satelit2 *",
"Satelit3 H",
"Satelit3 Q",
"Satelit3 S",
"Satelit3 *",
"Lance A",
"Lance G",
"Lance R",
"Lance *",
"RandMtr1 B",
"RandMtr1 E",
"RandMtr1 O",
"RandMtr1 *",
"RandMtr2 I",
"RandMtr2 L",
"RandMtr2 S",
"RandMtr2 *",
"RandMtr3 M",
"RandMtr3 R",
"RandMtr3 V",
"RandMtr3 *",
"Mine C",
"Mine H",
"Mine P",
"Mine *",
"IceCube *",
"RockCube *",
"Wind *",
"Fan *",
"Guard A",
"Guard L",
"Guard V",
"Guard *",
"CrsShld1 A",
"CrsShld1 C",
"CrsShld1 L",
"CrsShld1 *",
"CrsShld2 B",
"CrsShld2 C",
"CrsShld2 L",
"CrsShld2 *",
"CrsShld3 C",
"CrsShld3 E",
"CrsShld3 L",
"CrsShld3 *",
"CrakOut *",
"DublCrak B",
"DublCrak L",
"DublCrak R",
"DublCrak *",
"TripCrak B",
"TripCrak L",
"TripCrak R",
"TripCrak *",
"Recov10 A",
"Recov10 L",
"Recov10 S",
"Recov10 *",
"Recov30 F",
"Recov30 H",
"Recov30 R",
"Recov30 *",
"Recov50 E",
"Recov50 L",
"Recov50 S",
"Recov50 *",
"Recov80 B",
"Recov80 J",
"Recov80 O",
"Recov80 *",
"Recov120 F",
"Recov120 J",
"Recov120 Q",
"Recov120 *",
"Recov150 C",
"Recov150 T",
"Recov150 Z",
"Recov150 *",
"Recov200 H",
"Recov200 M",
"Recov200 W",
"Recov200 *",
"Recov300 J",
"Recov300 N",
"Recov300 Y",
"Recov300 *",
"PanlGrab K",
"PanlGrab O",
"PanlGrab Y",
"PanlGrab *",
"AreaGrab E",
"AreaGrab M",
"AreaGrab S",
"AreaGrab *",
"PnlRetrn *",
"Geddon1 J",
"Geddon1 K",
"Geddon1 X",
"Geddon1 *",
"Geddon2 N",
"Geddon2 T",
"Geddon2 X",
"Geddon2 *",
"Geddon3 H",
"Geddon3 Q",
"Geddon3 X",
"Geddon3 *",
"LavaStge M",
"LavaStge *",
"IceStage I",
"IceStage *",
"GrassStg K",
"GrassStg *",
"FstGauge I",
"FstGauge Q",
"FstGauge U",
"FstGauge *",
"NrthWind E",
"NrthWind M",
"NrthWind T",
"NrthWind *",
"HolyPanl *",
"Invisibl *",
"Barrier A",
"Barrier D",
"Barrier Z",
"Barrier *",
"Barr100 P",
"Barr100 Q",
"Barr100 W",
"Barr100 *",
"AntiFire K",
"AntiFire *",
"AntiWatr D",
"AntiWatr *",
"AntiElec H",
"AntiElec *",
"AntiWood M",
"AntiWood *",
"AntiDmg H",
"AntiDmg M",
"AntiDmg R",
"AntiDmg *",
"AntiNavi H",
"AntiNavi M",
"AntiNavi T",
"AntiNavi *",
"Atk+10 *",
"Atk+20 *",
"Navi+10 *",
"Navi+20 *",
"SuprVulc V",
"SuprVulc *",
"SuprCann C",
"SuprCann *",
"BigBomb B",
"BigBomb *",
"Barr200 B",
"Barr200 *",
"SonicBom S",
"SonicBom *",
"HeroSwrd P",
"HeroSwrd *",
"Muramasa M",
"Muramasa *",
"Meteors R",
"Meteors *",
"FullCust *",
"Snctuary S",
"Snctuary *",
"Atk+30 *",
"Navi+30 *",
"Roll R",
"RollV2 R",
"RollV3 R",
"RollSP R",
"GutsMan G",
"GutsMnV2 G",
"GutsMnV3 G",
"GutsMnSP G",
"ProtoMan B",
"ProtoMV2 B",
"ProtoMV3 B",
"ProtoMSP B",
"FireMan F",
"FireMnV2 F",
"FireMnV3 F",
"FireMnSP F",
"IceMan I",
"IceManV2 I",
"IceManV3 I",
"IceManSP I",
"WoodMan W",
"WoodMnV2 W",
"WoodMnV3 W",
"WoodMnSP W",
"ShadoMan S",
"ShadoMV2 S",
"ShadoMV3 S",
"ShadoMSP S",
"DrillMan D",
"DrilMnV2 D",
"DrilMnV3 D",
"DrilMnSP D",
"JamMan J",
"JamManV2 J",
"JamManV3 J",
"JamManSP J",
"HatMan H",
"HatManV2 H",
"HatManV3 H",
"HatManSP H",
"Bass X",
"BassAnly X",
"Cache X",
"CacheEX X",
]
face_ids = [
"Lan",
"Mayl",
"Dex",
"Chaud",
"Dad",
"Mom",
"MegaMan",
"Roll",
"ProtoMan",
"Higsby",
"MsMari",
"DrFroid",
"Shuichi",
"MrHat",
"ChaudsDad",
"Kitagawa",
"CacheShadow",
"Cache",
"IceMan",
"HatMan",
"20",
"21",
"22",
"23",
"24",
"25",
"26",
"27",
"28",
"29",
"30",
"",
]
map_cyber_name = [
"ACDC Area 1",
"ACDC Area 2",
"ACDC Area 3",
"Den Area 1",
"Den Area 2",
"Den Area 3",
"Government Area 1",
"Government Area 2",
"Undernet 1",
"Undernet 2",
"Undernet 3",
"Undernet 4",
"Undernet 5",
"Secret Area 1",
"Secret Area 2",
"Lan's PC Comp",
"TV Comp",
"Fridge Comp",
"Doghouse Comp",
"Stuffed Toy Comp",
"Blackboard Comp",
"Desk Comp",
"Teacher's PC Comp",
"Ticket Vending Machine Comp",
"Registration Machine Comp",
"Houseplant Comp",
"Billboard Comp",
"Traffic Light Comp",
"New PET Comp",
"Surveillance System Comp",
"Seat Comp",
"Automatic Door Comp",
"Monument Comp",
"Dad's PC Comp",
"Control Panel Comp",
"Antenna Comp",
"Mayl's PC Comp 1",
"Mayl's PC Comp 2",
"Mayl's PC Comp 3",
"Water Management Server Comp 1",
"Water Management Server Comp 2",
"Water Management Server Comp 3",
"Battle Machine Comp 1",
"Battle Machine Comp 2",
"Battle Machine Comp 3",
"Tent Comp 1",
"Tent Comp 2",
"Stage Equipment Comp 1",
"Stage Equipment Comp 2",
"Stage Equipment Comp 3",
"IPC Server Comp 1",
"IPC Server Comp 2",
"IPC Server Comp 3",
"IPC Server Comp 4",
"Mobile Area Comp 1",
"Mobile Area Comp 2",
"Mobile Area Comp 3",
"Mobile Area Comp 4",
"Cyberworld Hole Comp 1",
"Cyberworld Hole Comp 2",
"Cyberworld Hole Comp 3",
"Cyberworld Hole Comp 4",
"Security Server Comp 1",
"Security Server Comp 2",
"Cache Server Comp 1",
"Cache Server Comp 2",
"Cache Server Comp 3",
"Cache Server Comp 4",
"Cache Server Comp 5",
]
map_real_name = [
"Lan's Room",
"Lan's House",
"ACDC Town",
"Mayl's House",
"Higsby's",
"School - Classroom",
"School - Staff Room",
"DenTown",
"DenDome",
"Battle Stadium",
"Inside Tent",
"Staff Area",
"IPC - Lobby",
"IPC - Control Room",
"Government District",
"Dad's Lab",
"Mobile Base Station",
"Former Cyber Research Institute",
"Server Room",
"Metroline Station",
"Talk to MegaMan",
]
skill_ids = [
"Custom1",
"Custom1 col2",
"Custom1 col3",
"Custom1 col4",
"Custom1 col5",
"Custom2",
"Custom2 col2",
"Custom2 col3",
"Custom2 col4",
"Custom2 col5",
"MegFldr1",
"MegFldr1 col2",
"MegFldr1 col3",
"MegFldr1 col4",
"MegFldr1 col5",
"MegFldr2",
"MegFldr2 col2",
"MegFldr2 col3",
"MegFldr2 col4",
"MegFldr2 col5",
"GigFldr1",
"GigFldr1 col2",
"GigFldr1 col3",
"GigFldr1 col4",
"GigFldr1 col5",
"SprArmr",
"SprArmr col2",
"SprArmr col3",
"SprArmr col4",
"SprArmr col5",
"FstBarr",
"FstBarr col2",
"FstBarr col3",
"FstBarr col4",
"FstBarr col5",
"AirShoes",
"AirShoes col2",
"AirShoes col3",
"AirShoes col4",
"AirShoes col5",
"UnderSht",
"UnderSht col2",
"UnderSht col3",
"UnderSht col4",
"UnderSht col5",
"BodyPack",
"BodyPack col2",
"BodyPack col3",
"BodyPack col4",
"BodyPack col5",
"SneakRun",
"SneakRun col2",
"SneakRun col3",
"SneakRun col4",
"SneakRun col5",
"Collect",
"Collect col2",
"Collect col3",
"Collect col4",
"Collect col5",
"MonyMakr",
"MonyMakr col2",
"MonyMakr col3",
"MonyMakr col4",
"MonyMakr col5",
"LocEnemy",
"LocEnemy col2",
"LocEnemy col3",
"LocEnemy col4",
"LocEnemy col5",
"GhostAnt",
"GhostAnt col2",
"GhostAnt col3",
"GhostAnt col4",
"GhostAnt col5",
"2ndChanc",
"2ndChanc col2",
"2ndChanc col3",
"2ndChanc col4",
"2ndChanc col5",
"Attack+1",
"Attack+1 col2",
"Attack+1 col3",
"Attack+1 col4",
"Attack+1 col5",
"Charge+1",
"Charge+1 col2",
"Charge+1 col3",
"Charge+1 col4",
"Charge+1 col5",
"AttckMAX",
"AttckMAX col2",
"AttckMAX col3",
"AttckMAX col4",
"AttckMAX col5",
"ChargMAX",
"ChargMAX col2",
"ChargMAX col3",
"ChargMAX col4",
"ChargMAX col5",
"BustPack",
"BustPack col2",
"BustPack col3",
"BustPack col4",
"BustPack col5",
"ElemBatc",
"ElemBatc col2",
"ElemBatc col3",
"ElemBatc col4",
"ElemBatc col5",
"HubBatc",
"HubBatc col2",
"HubBatc col3",
"HubBatc col4",
"HubBatc col5",
"HP+50",
"HP+50 col2",
"HP+50 col3",
"HP+50 col4",
"HP+50 col5",
"HP+100",
"HP+100 col2",
"HP+100 col3",
"HP+100 col4",
"HP+100 col5",
"HP+200",
"HP+200 col2",
"HP+200 col3",
"HP+200 col4",
"HP+200 col5",
"HP+300",
"HP+300 col2",
"HP+300 col3",
"HP+300 col4",
"HP+300 col5",
"HP+400",
"HP+400 col2",
"HP+400 col3",
"HP+400 col4",
"HP+400 col5",
"HP+500",
"HP+500 col2",
"HP+500 col3",
"HP+500 col4",
"HP+500 col5",
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment