scroll.server/crates
WiseDev 6c5295bc07 fix the LogicGameObject field mapping
the base object writes owner index, component mask, position and z, in
that order. we had the first field unnamed and were writing the owner
into the z slot, so every object belonged to player 0, and the mask slot
carried a zero.

the mask matters: getHitpointComponent tests bit 2 of it before touching
components[2], so a zero mask made every tower report no hitpoints,
LogicCharacter::isAlive fell through to the z field, shouldDestruct went
true and the towers were destroyed on the first tick - which then hit
"cant find summoner tower" in LogicBattle::removeGameObjectReferences.

entries are built through LogicGameObjectEntry::new now so the mask is
derived from the component array and cannot drift from it.

also rename the first character flag after what sets it: kamikaze
death and morph both raise it right before the object is removed.
2026-08-23 11:17:10 +03:00
..
auth-service stop minting a new account on every login 2026-08-23 08:54:43 +03:00
game-service fix the LogicGameObject field mapping 2026-08-23 11:17:10 +03:00
gateway matchmake against a bot instead of searching forever 2026-08-23 10:28:28 +03:00
logic fix the LogicGameObject field mapping 2026-08-23 11:17:10 +03:00
logic-derive move all crates into crates/, glob members 2026-08-23 08:15:45 +03:00
scroll-server supervised mode: run the services as child processes 2026-08-23 09:46:59 +03:00
service-rpc matchmake against a bot instead of searching forever 2026-08-23 10:28:28 +03:00
storage fix chest shop prices and gate the free chest 2026-08-23 09:02:49 +03:00
titan build and send the battle sector state 2026-08-23 10:24:20 +03:00
titan-derive build and send the battle sector state 2026-08-23 10:24:20 +03:00