Decouverte cle
L’utilisateur confirme que le jeu original AB3D2 TKG a 10 armes
selectionnables, mais que les slots 8 et 9 (touches 9 et 0) reutilisent
les modeles 3D de leurs cousines :
| Touche | Slot | Arme | bulletType | Apparence 3D |
|---|---|---|---|---|
| 1 | 0 | Shotgun | 7 Shotgun Round | shotgun.j3o |
| 2 | 1 | Plasma Gun | 0 Plasma Bolt | plasmagun.j3o |
| 3 | 2 | Grenade Launcher | 8 Grenade | grenadelauncher |
| 4 | 3 | Assault Rifle | 1 Machine Gun | rifle.j3o |
| 5 | 4 | Blaster | 9 Blaster Bolt | blaster.j3o |
| 6 | 5 | Rocket Launcher | 2 Rocket | rocketlauncher |
| 7 | 6 | Lazer | 14 Lazer | laser.j3o |
| 8 | 7 | Drop Mine | 15 Mine | plink.j3o |
| 9 | 8 | Plasma Multi-Shot | 13 MegaPlasma | plasmagun.j3o (meme apparence) |
| 0 | 9 | MegaLaser | 10 Assault Lazer | laser.j3o (meme apparence) |
Analyse TEST.LNK (dump hex raw)
Le dump confirme que les slots 8 et 9 existent bien dans le GLF mais
sont configures comme des placeholders :
Gun 8 : "GUN I" — bulType=8, delay=0, count=0, sfx=0
Gun 9 : "GUN J" — bulType=9, delay=0, count=0, sfx=0
Les bullets MegaPlasma (13), Assault Lazer (10) et MindZap (12)
sont presentes dans la table BulletDefs mais inutilisees par les 8
premieres armes — ce sont probablement les munitions des armes manquantes
dans cette version de test du GLF.
Modifications
-
CombatBootstrap.WeaponOverride: nouvelle classe interne avec les
ShootDef par defaut pour les slots 8 et 9 :
– Slot 8 Plasma Multi-Shot : MegaPlasma × 3, delay 30f, SFX 1
– Slot 9 MegaLaser : Assault Lazer × 1, delay 10f, SFX 28 -
CombatBootstrap.getEffectiveShootDef(glf, gunIdx): retourne
l’override si le GLF a count=0, sinon la valeur du GLF. Preserve la
possibilite de modder via un GLF personnalise. -
CombatBootstrap.newLevelStart(): itere maintenant sur les 10 armes
(et pas 8), donne les slots 8 et 9 via les overrides. -
PlayerShootSystem.update(): utilisegetEffectiveShootDef()au
lieu deglf.getShootDef()pour que le tir des slots 8 et 9 fonctionne. -
PlayerShootSystem.registerMappings(): ajouteWEAPON_9et
WEAPON_10dans les actions ecoutees. -
PlayerShootSystem.onAction(): utilise un switch explicite slot→action
(slot 8 → touche 9, slot 9 → touche 0) au lieu de la formule generique
qui ne marchait que pour les touches 1-8. -
KeyBindings: ajouteAction.WEAPON_9etAction.WEAPON_10,
bindees respectivement sur KEY_9 et KEY_0. -
WeaponType: ajoutePLASMA_MULTISHOT(slot 8 → plasmagun.j3o)
etMEGALASER(slot 9 → laser.j3o). Meme modele 3D que les armes
cousines comme confirme par l’utilisateur.
A tester
Au lancement du jeu :
– Les touches 9 et 0 doivent switcher sur les nouvelles armes
– Touche 9 (Plasma Multi-Shot) : meme apparence que touche 2 (Plasma Gun),
mais 3 projectiles en eventail de couleur bleue/blanche (MegaPlasma)
– Touche 0 (MegaLaser) : meme apparence que touche 7 (Lazer), mais cadence
de tir 2x plus rapide avec bullets magenta (Assault Lazer)
– Les 10 armes sont donnees au joueur au spawn