ff9mapkit 1.0.0b3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ff9mapkit/__init__.py +18 -0
- ff9mapkit/__main__.py +36 -0
- ff9mapkit/_animdb.py +2994 -0
- ff9mapkit/_animdb_all.py +14125 -0
- ff9mapkit/_fieldtable.py +1516 -0
- ff9mapkit/_fieldtext.py +845 -0
- ff9mapkit/_held_poses.py +44 -0
- ff9mapkit/_itemdb.py +65 -0
- ff9mapkit/_modeldb.py +725 -0
- ff9mapkit/_narrowmap_data.py +10 -0
- ff9mapkit/_npcparams.py +634 -0
- ff9mapkit/_regen_animdb.py +72 -0
- ff9mapkit/_regen_animdb_all.py +66 -0
- ff9mapkit/_regen_fieldtable.py +95 -0
- ff9mapkit/_regen_fieldtext.py +66 -0
- ff9mapkit/_regen_modeldb.py +67 -0
- ff9mapkit/_regen_npcparams.py +123 -0
- ff9mapkit/_regen_scenedb.py +57 -0
- ff9mapkit/_scenedb.py +869 -0
- ff9mapkit/abilities.py +225 -0
- ff9mapkit/animations.py +120 -0
- ff9mapkit/archetypes.py +218 -0
- ff9mapkit/areatitle.py +76 -0
- ff9mapkit/battle/__init__.py +21 -0
- ff9mapkit/battle/abilityfeatures.py +294 -0
- ff9mapkit/battle/actiondelta.py +441 -0
- ff9mapkit/battle/aiauthor.py +305 -0
- ff9mapkit/battle/ailint.py +140 -0
- ff9mapkit/battle/aipatch.py +175 -0
- ff9mapkit/battle/battleai.py +148 -0
- ff9mapkit/battle/battlecsv.py +390 -0
- ff9mapkit/battle/battlepatch.py +395 -0
- ff9mapkit/battle/build.py +558 -0
- ff9mapkit/battle/camera_codec.py +332 -0
- ff9mapkit/battle/camera_data.py +128 -0
- ff9mapkit/battle/characterdelta.py +789 -0
- ff9mapkit/battle/event_data.py +72 -0
- ff9mapkit/battle/extract.py +540 -0
- ff9mapkit/battle/fbx.py +223 -0
- ff9mapkit/battle/reskin.py +149 -0
- ff9mapkit/battle/scene_codec.py +314 -0
- ff9mapkit/battle/scene_data.py +369 -0
- ff9mapkit/battle/scenelint.py +125 -0
- ff9mapkit/battle/seqasm.py +131 -0
- ff9mapkit/battle/seqauthor.py +220 -0
- ff9mapkit/battle/seqcodec.py +300 -0
- ff9mapkit/battle/seqdis.py +106 -0
- ff9mapkit/battle/seqpatch.py +137 -0
- ff9mapkit/battle_bgm.py +133 -0
- ff9mapkit/binutils.py +60 -0
- ff9mapkit/build.py +5445 -0
- ff9mapkit/campaign.py +1276 -0
- ff9mapkit/catalog.py +316 -0
- ff9mapkit/chain.py +358 -0
- ff9mapkit/cli.py +3114 -0
- ff9mapkit/config.py +360 -0
- ff9mapkit/content/__init__.py +13 -0
- ff9mapkit/content/areatitle.py +36 -0
- ff9mapkit/content/ate.py +118 -0
- ff9mapkit/content/camera.py +123 -0
- ff9mapkit/content/chest.py +186 -0
- ff9mapkit/content/choice.py +163 -0
- ff9mapkit/content/conductor.py +217 -0
- ff9mapkit/content/cutscene.py +290 -0
- ff9mapkit/content/encounter.py +41 -0
- ff9mapkit/content/entry_settle.py +50 -0
- ff9mapkit/content/equipment.py +93 -0
- ff9mapkit/content/event.py +191 -0
- ff9mapkit/content/gateway.py +101 -0
- ff9mapkit/content/inventory.py +59 -0
- ff9mapkit/content/itemdata.py +644 -0
- ff9mapkit/content/itemtext.py +168 -0
- ff9mapkit/content/jump.py +114 -0
- ff9mapkit/content/ladder.py +633 -0
- ff9mapkit/content/movement.py +53 -0
- ff9mapkit/content/music.py +97 -0
- ff9mapkit/content/npc.py +348 -0
- ff9mapkit/content/object.py +340 -0
- ff9mapkit/content/onentry.py +135 -0
- ff9mapkit/content/party.py +111 -0
- ff9mapkit/content/pathfind.py +138 -0
- ff9mapkit/content/platform.py +314 -0
- ff9mapkit/content/player.py +168 -0
- ff9mapkit/content/prop.py +75 -0
- ff9mapkit/content/region.py +340 -0
- ff9mapkit/content/reinit.py +59 -0
- ff9mapkit/content/savepoint.py +90 -0
- ff9mapkit/content/shop.py +178 -0
- ff9mapkit/content/sps_trigger.py +66 -0
- ff9mapkit/content/startup.py +71 -0
- ff9mapkit/content/synthesis.py +106 -0
- ff9mapkit/content/text.py +183 -0
- ff9mapkit/content/textcarry.py +290 -0
- ff9mapkit/content/verbatim.py +86 -0
- ff9mapkit/content/walkmesh_hotfix.py +38 -0
- ff9mapkit/data/__init__.py +48 -0
- ff9mapkit/data/_regen_provenance.py +142 -0
- ff9mapkit/data/provenance/blank.es.patch +1 -0
- ff9mapkit/data/provenance/blank.fr.patch +1 -0
- ff9mapkit/data/provenance/blank.gr.patch +1 -0
- ff9mapkit/data/provenance/blank.it.patch +1 -0
- ff9mapkit/data/provenance/blank.jp.patch +1 -0
- ff9mapkit/data/provenance/blank.uk.patch +1 -0
- ff9mapkit/data/provenance/blank.us.patch +1 -0
- ff9mapkit/data/provenance/manifest.json +65 -0
- ff9mapkit/data/provenance/region_template.patch +1 -0
- ff9mapkit/data/reference_arcs.toml +89 -0
- ff9mapkit/data/region_catalog.toml +593 -0
- ff9mapkit/deploystack.py +358 -0
- ff9mapkit/dialogue.py +803 -0
- ff9mapkit/eb/__init__.py +12 -0
- ff9mapkit/eb/_exprtable.py +59 -0
- ff9mapkit/eb/_membertable.py +38 -0
- ff9mapkit/eb/_optables.py +537 -0
- ff9mapkit/eb/_regen_optables.py +76 -0
- ff9mapkit/eb/cmdasm.py +323 -0
- ff9mapkit/eb/disasm.py +332 -0
- ff9mapkit/eb/edit.py +439 -0
- ff9mapkit/eb/exprasm.py +158 -0
- ff9mapkit/eb/model.py +178 -0
- ff9mapkit/eb/opcodes.py +463 -0
- ff9mapkit/eblint.py +177 -0
- ff9mapkit/editor/__init__.py +20 -0
- ff9mapkit/editor/app.py +950 -0
- ff9mapkit/editor/battle_forms.py +240 -0
- ff9mapkit/editor/breadcrumb.py +89 -0
- ff9mapkit/editor/dialogs.py +116 -0
- ff9mapkit/editor/feedback.py +208 -0
- ff9mapkit/editor/forms.py +632 -0
- ff9mapkit/editor/graphview.py +350 -0
- ff9mapkit/editor/jobs.py +342 -0
- ff9mapkit/editor/model.py +243 -0
- ff9mapkit/editor/picker.py +120 -0
- ff9mapkit/editor/theme.py +212 -0
- ff9mapkit/eventscan.py +1441 -0
- ff9mapkit/extract.py +2279 -0
- ff9mapkit/flags.py +693 -0
- ff9mapkit/forkreport.py +1383 -0
- ff9mapkit/hub.py +477 -0
- ff9mapkit/idgated.py +101 -0
- ff9mapkit/infohub.py +580 -0
- ff9mapkit/items.py +63 -0
- ff9mapkit/itemstats.py +346 -0
- ff9mapkit/journey.py +1902 -0
- ff9mapkit/keyitems.py +93 -0
- ff9mapkit/logic_add.py +632 -0
- ff9mapkit/logic_edit.py +728 -0
- ff9mapkit/logic_map.py +526 -0
- ff9mapkit/pack.py +175 -0
- ff9mapkit/playerswap.py +231 -0
- ff9mapkit/prop_archetypes.py +228 -0
- ff9mapkit/provision.py +282 -0
- ff9mapkit/refarc.py +825 -0
- ff9mapkit/save.py +337 -0
- ff9mapkit/save_items.py +1673 -0
- ff9mapkit/scene/__init__.py +11 -0
- ff9mapkit/scene/arena.py +63 -0
- ff9mapkit/scene/bgart.py +140 -0
- ff9mapkit/scene/bgi.py +732 -0
- ff9mapkit/scene/bgs.py +174 -0
- ff9mapkit/scene/bgx.py +185 -0
- ff9mapkit/scene/cam.py +345 -0
- ff9mapkit/scene/guide.py +311 -0
- ff9mapkit/scene/paint.py +506 -0
- ff9mapkit/scene/placeholder.py +107 -0
- ff9mapkit/sjbinary.py +285 -0
- ff9mapkit/sps/__init__.py +17 -0
- ff9mapkit/sps/author.py +294 -0
- ff9mapkit/sps/catalog.py +88 -0
- ff9mapkit/sps/codec.py +264 -0
- ff9mapkit/sps/edit.py +184 -0
- ff9mapkit/sps/lint.py +58 -0
- ff9mapkit/sps/render.py +116 -0
- ff9mapkit/sps/templates.py +47 -0
- ff9mapkit/sps/texture.py +131 -0
- ff9mapkit/walkmesh_hotfixes.py +163 -0
- ff9mapkit/workspace/__init__.py +18 -0
- ff9mapkit/workspace/battledoc.py +985 -0
- ff9mapkit/workspace/builddoc.py +607 -0
- ff9mapkit/workspace/forms_qt.py +586 -0
- ff9mapkit/workspace/importdoc.py +665 -0
- ff9mapkit/workspace/mapview.py +131 -0
- ff9mapkit/workspace/palette.py +85 -0
- ff9mapkit/workspace/savedoc.py +664 -0
- ff9mapkit/workspace/shell.py +6907 -0
- ff9mapkit/workspace/style.py +105 -0
- ff9mapkit/workspace/tuningdialog.py +223 -0
- ff9mapkit-1.0.0b3.dist-info/METADATA +155 -0
- ff9mapkit-1.0.0b3.dist-info/RECORD +193 -0
- ff9mapkit-1.0.0b3.dist-info/WHEEL +5 -0
- ff9mapkit-1.0.0b3.dist-info/entry_points.txt +5 -0
- ff9mapkit-1.0.0b3.dist-info/licenses/LICENSE +31 -0
- ff9mapkit-1.0.0b3.dist-info/top_level.txt +1 -0
ff9mapkit/_held_poses.py
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"""Generated by `tools/extract_attach_poses.py --build-kit` -- do not hand-edit.
|
|
2
|
+
|
|
3
|
+
HELD_POSES[(carrier_model_id, prop_model_id)] = (bone, held_pose, holder_pose): which bone a
|
|
4
|
+
character holds a prop at, the prop's held orientation, and the HOLDER's own holding pose --
|
|
5
|
+
harvested from every AttachObject in shipping fields. Powers `[[npc]] holds = "..."` (poses
|
|
6
|
+
the prop AND the holder). Provenance-clean (numeric ids only, no game bytes).
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
HELD_POSES = {
|
|
10
|
+
(8, 222): (16, 10359, 148), # VIV holds TKT
|
|
11
|
+
(66, 275): (26, 2471, 4696), # RAS holds HDB
|
|
12
|
+
(98, 243): (13, 4470, 3511), # ZDN holds SWD
|
|
13
|
+
(98, 277): (12, 10643, 200), # ZDN holds TUR
|
|
14
|
+
(108, 628): (11, 4353, 13372), # HUM holds LG1
|
|
15
|
+
(109, 243): (6, 4470, 3311), # MRC holds SWD
|
|
16
|
+
(117, 234): (17, 5010, 6535), # JJY holds CUP
|
|
17
|
+
(171, 489): (19, 8006, 2266), # TOT holds WRE
|
|
18
|
+
(173, 223): (14, 7077, 85), # BAR holds GRS
|
|
19
|
+
(173, 411): (14, 813, 85), # BAR holds BON
|
|
20
|
+
(189, 234): (7, 6868, 8116), # CSM holds CUP
|
|
21
|
+
(192, 223): (12, 935, 805), # FRJ holds GRS
|
|
22
|
+
(199, 258): (19, 13331, 2904), # MOG holds LTT
|
|
23
|
+
(204, 555): (16, 1894, 2978), # BTX holds STQ
|
|
24
|
+
(220, 258): (19, 9580, 2904), # MOG holds LTT
|
|
25
|
+
(306, 98): (21, 10633, 1484), # GRG holds ZDN
|
|
26
|
+
(368, 377): (29, 1894, 8344), # SBW holds LNW
|
|
27
|
+
(418, 226): (11, 3349, 3410), # TGR holds BLL
|
|
28
|
+
(422, 234): (11, 8238, 7285), # DOM holds CUP
|
|
29
|
+
(443, 258): (23, 13331, 7503), # EIK holds LTT
|
|
30
|
+
(551, 234): (11, 8238, 7285), # DOM holds CUP
|
|
31
|
+
(600, 277): (6, 4960, 2506), # CSM holds TUR
|
|
32
|
+
(658, 490): (25, 13160, 14367), # STN holds ZBR
|
|
33
|
+
(5464, 31): (15, 1027, 780), # BAK holds DGR
|
|
34
|
+
(5464, 35): (6, 1038, 780), # BAK holds DBR
|
|
35
|
+
(5467, 227): (13, 1880, 1321), # BLN holds BIN
|
|
36
|
+
(5467, 243): (14, 4470, 1953), # BLN holds SWD
|
|
37
|
+
(5467, 258): (14, 2479, 462), # BLN holds LTT
|
|
38
|
+
(5489, 243): (16, 4470, 2001), # STN holds SWD
|
|
39
|
+
(5492, 226): (11, 3349, 3414), # TGR holds BLL
|
|
40
|
+
(5492, 577): (11, 3349, 3414), # TGR holds BLL
|
|
41
|
+
(5492, 578): (11, 3349, 3410), # TGR holds BLL
|
|
42
|
+
(5492, 579): (11, 3349, 3410), # TGR holds BLL
|
|
43
|
+
(5501, 243): (14, 4470, 1192), # BAK holds SWD
|
|
44
|
+
}
|
ff9mapkit/_itemdb.py
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"""FF9 item id <-> name, baked from Memoria's open-source ``RegularItem`` enum (Memoria.Data) -- NOT
|
|
2
|
+
game data (it's the same id table Memoria publishes in source; see docs/PROVENANCE.md). Used by
|
|
3
|
+
:mod:`ff9mapkit.items` so authors can write ``give_item = ["Potion", 1]`` instead of memorizing 236.
|
|
4
|
+
|
|
5
|
+
Regenerate from a Memoria checkout by transcribing
|
|
6
|
+
``Memoria/Assembly-CSharp/Memoria/Data/Battle/RegularItem.cs``.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
# id -> canonical PascalCase name (weapons 0-87, armor/add-ons 88-223, gems 224-235, items 236-254).
|
|
12
|
+
ITEMS = {
|
|
13
|
+
0: "Hammer", 1: "Dagger", 2: "MageMasher", 3: "MythrilDagger", 4: "Gladius", 5: "ZorlinShape",
|
|
14
|
+
6: "Orichalcon", 7: "ButterflySword", 8: "TheOgre", 9: "Exploda", 10: "RuneTooth",
|
|
15
|
+
11: "AngelBless", 12: "Sargatanas", 13: "Masamune", 14: "TheTower", 15: "UltimaWeapon",
|
|
16
|
+
16: "Broadsword", 17: "IronSword", 18: "MythrilSword", 19: "BloodSword", 20: "IceBrand",
|
|
17
|
+
21: "CoralSword", 22: "DiamondSword", 23: "FlameSaber", 24: "RuneBlade", 25: "Defender",
|
|
18
|
+
26: "SaveTheQueen", 27: "UltimaSword", 28: "Excalibur", 29: "Ragnarok", 30: "ExcaliburII",
|
|
19
|
+
31: "Javelin", 32: "MythrilSpear", 33: "Partisan", 34: "IceLance", 35: "Trident",
|
|
20
|
+
36: "HeavyLance", 37: "Obelisk", 38: "HolyLance", 39: "KainLance", 40: "DragonHair",
|
|
21
|
+
41: "CatClaws", 42: "PoisonKnuckles", 43: "MythrilClaws", 44: "ScissorFangs", 45: "DragonClaws",
|
|
22
|
+
46: "TigerFangs", 47: "Avenger", 48: "KaiserKnuckles", 49: "DuelClaws", 50: "RuneClaws",
|
|
23
|
+
51: "AirRacket", 52: "MultinaRacket", 53: "MagicRacket", 54: "MythrilRacket", 55: "PriestRacket",
|
|
24
|
+
56: "TigerRacket", 57: "Rod", 58: "MythrilRod", 59: "StardustRod", 60: "HealingRod",
|
|
25
|
+
61: "AsuraRod", 62: "WizardRod", 63: "WhaleWhisker", 64: "GolemFlute", 65: "LamiaFlute",
|
|
26
|
+
66: "FairyFlute", 67: "Hamelin", 68: "SirenFlute", 69: "AngelFlute", 70: "MageStaff",
|
|
27
|
+
71: "FlameStaff", 72: "IceStaff", 73: "LightningStaff", 74: "OakStaff", 75: "CypressPile",
|
|
28
|
+
76: "OctagonRod", 77: "HighMageStaff", 78: "MaceOfZeus", 79: "Fork", 80: "NeedleFork",
|
|
29
|
+
81: "MythrilFork", 82: "SilverFork", 83: "BistroFork", 84: "GastroFork", 85: "Pinwheel",
|
|
30
|
+
86: "RisingSun", 87: "WingEdge", 88: "Wrist", 89: "LeatherWrist", 90: "GlassArmlet",
|
|
31
|
+
91: "BoneWrist", 92: "MythrilArmlet", 93: "MagicArmlet", 94: "ChimeraArmlet", 95: "EgoistArmlet",
|
|
32
|
+
96: "NKaiArmlet", 97: "JadeArmlet", 98: "ThiefGloves", 99: "DragonWrist", 100: "PowerWrist",
|
|
33
|
+
101: "Bracer", 102: "BronzeGloves", 103: "SilverGloves", 104: "MythrilGloves",
|
|
34
|
+
105: "ThunderGloves", 106: "DiamondGloves", 107: "VenetiaShield", 108: "DefenseGloves",
|
|
35
|
+
109: "GenjiGloves", 110: "AegisGloves", 111: "Gauntlets", 112: "LeatherHat", 113: "StrawHat",
|
|
36
|
+
114: "FeatherHat", 115: "SteepledHat", 116: "Headgear", 117: "MagusHat", 118: "Bandana",
|
|
37
|
+
119: "MageHat", 120: "LamiaTiara", 121: "RitualHat", 122: "TwistHeadband", 123: "MantraBand",
|
|
38
|
+
124: "DarkHat", 125: "GreenBeret", 126: "BlackHood", 127: "RedHat", 128: "GoldenHairpin",
|
|
39
|
+
129: "Coronet", 130: "FlashHat", 131: "AdamanHat", 132: "ThiefHat", 133: "HolyMiter",
|
|
40
|
+
134: "GoldenSkullcap", 135: "Circlet", 136: "RubberHelm", 137: "BronzeHelm", 138: "IronHelm",
|
|
41
|
+
139: "Barbut", 140: "MythrilHelm", 141: "GoldHelm", 142: "CrossHelm", 143: "DiamondHelm",
|
|
42
|
+
144: "PlatinumHelm", 145: "KaiserHelm", 146: "GenjiHelmet", 147: "GrandHelm", 148: "AlohaTshirt",
|
|
43
|
+
149: "LeatherShirt", 150: "SilkShirt", 151: "LeatherPlate", 152: "BronzeVest", 153: "ChainPlate",
|
|
44
|
+
154: "MythrilVest", 155: "AdamanVest", 156: "MagicianCloak", 157: "SurvivalVest",
|
|
45
|
+
158: "Brigandine", 159: "JudoUniform", 160: "PowerVest", 161: "GaiaGear", 162: "DemonVest",
|
|
46
|
+
163: "MinervaPlate", 164: "NinjaGear", 165: "DarkGear", 166: "RubberSuit", 167: "BraveSuit",
|
|
47
|
+
168: "CottonRobe", 169: "SilkRobe", 170: "MagicianRobe", 171: "GluttonRobe", 172: "WhiteRobe",
|
|
48
|
+
173: "BlackRobe", 174: "LightRobe", 175: "RobeOfLords", 176: "TinArmor", 177: "BronzeArmor",
|
|
49
|
+
178: "LinenCuirass", 179: "ChainMail", 180: "MythrilArmor", 181: "PlateMail", 182: "GoldArmor",
|
|
50
|
+
183: "ShieldArmor", 184: "DemonMail", 185: "DiamondArmor", 186: "PlatinaArmor",
|
|
51
|
+
187: "CarabiniMail", 188: "DragonMail", 189: "GenjiArmor", 190: "Maximillian", 191: "GrandArmor",
|
|
52
|
+
192: "DesertBoots", 193: "MagicianShoes", 194: "GerminasBoots", 195: "Sandals",
|
|
53
|
+
196: "FeatherBoots", 197: "BattleBoots", 198: "RunningShoes", 199: "Anklet", 200: "PowerBelt",
|
|
54
|
+
201: "BlackBelt", 202: "GlassBuckle", 203: "MadainRing", 204: "RosettaRing", 205: "ReflectRing",
|
|
55
|
+
206: "CoralRing", 207: "PromistRing", 208: "RebirthRing", 209: "ProtectRing", 210: "PumicePiece",
|
|
56
|
+
211: "Pumice", 212: "YellowScarf", 213: "GoldChoker", 214: "FairyEarrings", 215: "AngelEarrings",
|
|
57
|
+
216: "PearlRouge", 217: "PearlArmlet", 218: "Cachusha", 219: "Barette", 220: "Extension",
|
|
58
|
+
221: "Ribbon", 222: "MaidenPrayer", 223: "AncientAroma", 224: "Garnet", 225: "Amethyst",
|
|
59
|
+
226: "Aquamarine", 227: "Diamond", 228: "Emerald", 229: "Moonstone", 230: "Ruby", 231: "Peridot",
|
|
60
|
+
232: "Sapphire", 233: "Opal", 234: "Topaz", 235: "LapisLazuli", 236: "Potion", 237: "HiPotion",
|
|
61
|
+
238: "Ether", 239: "Elixir", 240: "PhoenixDown", 241: "EchoScreen", 242: "Soft", 243: "Antidote",
|
|
62
|
+
244: "EyeDrops", 245: "MagicTag", 246: "Vaccine", 247: "Remedy", 248: "Annoyntment",
|
|
63
|
+
249: "PhoenixPinion", 250: "DarkMatter", 251: "GysahlGreens", 252: "DeadPepper", 253: "Tent",
|
|
64
|
+
254: "Ore", 255: "NoItem",
|
|
65
|
+
}
|