scroll.server/crates/logic/src
WiseDev 438e2c6491 compare the server checksum against the client's
LogicGameMode::calculateChecksum runs the whole game mode through a
ChecksumEncoder - in a battle there is no client home, so it is the same
encode as the snapshot with the command manager left out. we compute the
same number now and log it beside the one the client sends in every turn
message, with whether they agree.

that comparison only means something because of what turned up while
reading the encoder: the two vints the decoder throws away are not
padding. the client writes getCheckSum() into both, once after the
server tick and once after the tutorial manager. we were writing zero,
which parses fine - the decoder discards them either way - but poisons
the running checksum, so the numbers could never have matched. they
carry the real running value now.

the two will not agree yet. the point is to see how far apart they are
and where, since the gap is what stands between this and battle type 0.
2026-08-23 13:44:51 +03:00
..
battle compare the server checksum against the client's 2026-08-23 13:44:51 +03:00
commands decode the two battle commands 2026-08-23 11:51:17 +03:00
data match against a bot player instead of an npc 2026-08-23 11:28:17 +03:00
home battle model: LogicBattle, the object manager and BattleResultMessage 2026-08-23 10:00:16 +03:00
messages push messages to the client during a battle 2026-08-23 13:03:07 +03:00
model deck swapping and achievement claims 2026-08-23 09:24:30 +03:00
factory.rs move all crates into crates/, glob members 2026-08-23 08:15:45 +03:00
lib.rs spawn the played card on the server 2026-08-23 12:09:30 +03:00
logic_random.rs battle model: LogicBattle, the object manager and BattleResultMessage 2026-08-23 10:00:16 +03:00