Aller au contenu principal

Session 83 — Debut systeme de combat : structures GLF (ShootDef/BulletDef)

Objectif

Demarrage du chantier « tir / bullet / explosion / animation ». Suit la logique
de newplayershoot.s (fonction Plr1_Shot) et newanims.s (fonction
ItsABullet). Approche incrementale proche de l’ASM, par phases :
– Phase 1.A : structures de donnees (ce commit)
– Phase 1.B : input + cooldown
– Phase 1.C : creation de projectile (spawn)
– Phase 1.D : mouvement de projectile (BulletUpdateSystem)
– Puis : collision murs, impact aliens, SFX, explosions, animations…

Nouveautes session 83

Fichier TEST.LNK copie dans src/main/resources/ (~85KB). C’est le « Game
Link File » (GLF) d’AB3D2 qui contient toutes les definitions statiques
(armes, bullets, aliens, niveaux, sons). Reference par GLF_DatabasePtr_l
dans l’ASM.

Package com.ab3d2.combat cree avec :
ShootDef (record) : config d’une arme (bulletType, delay, bulletCount, sfx).
Correspond a ShootT_SizeOf_l = 8 bytes dans l’ASM.
BulletDef (record) : config d’un projectile (17 champs + animData + popData).
Correspond a BulT_SizeOf_l = 300 bytes dans l’ASM.
GlfDatabase : parser binaire du GLF. Lit les ShootDefs et BulletDefs avec
les offsets calcules depuis STRUCTURE GLFT,64 de defs.i :
GLFT_BulletDefs_l = 6848 (20 bullets)
GLFT_ShootDefs_l = 13448 (10 guns)
GLFT_BulletNames_l = 12848 (2020)
GLFT_GunNames_l = 13248 (10
20)

Outil diagnostic GlfDumpTool : affiche les contenus lus pour validation.
– Task ./gradlew dumpGlf
– Liste les 10 armes + leurs stats (bullet type, cooldown, count, sfx)
– Liste les 20 bullets + leurs stats (hitscan, gravity, damage, speed, …)
– Resume detaille par arme avec la bullet liee

Prochaine etape

Phase 1.B : input + cooldown. Ecrire le PlayerShootSystem qui :
– Ecoute le clic souris (ou touche de tir configuree)
– Applique le cooldown Plr1_TimeToShoot_w (decremente chaque frame)
– Lit les defs via GlfDatabase quand le joueur tire
– Declenche (pour l’instant) juste un log de tir, sans projectile encore

Fichiers crees/modifies

  • src/main/resources/TEST.LNK (NEW, a copier par l’utilisateur)
  • src/main/java/com/ab3d2/combat/ShootDef.java (NEW)
  • src/main/java/com/ab3d2/combat/BulletDef.java (NEW)
  • src/main/java/com/ab3d2/combat/GlfDatabase.java (NEW)
  • src/main/java/com/ab3d2/tools/GlfDumpTool.java (NEW)
  • build.gradle : task dumpGlf

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *