Training targets, and restyle the character as an irregular fighter - #13
Merged
Conversation
…ar fighter **There was nothing to shoot at.** `character.glb` was built and then had no consumer — the multiplayer entry point that would draw remote players does not exist yet — so the sandbox was an empty yard with a working rifle and no enemy. PRD §40 puts "one enemy and one rifle" ahead of everything else. Five training targets now stand in the yard. They take hits, topple, and stand back up after three seconds. Deliberately targets rather than AI: there is no animation system and no client-side bot pathing, and a figure sliding around frozen in a standing pose would look worse than one that honestly stands still. Hit detection is presentation only, like the weapon effects — the server owns hit registration through resolveHitscan. A target only counts if it is nearer than the world geometry behind it, so one standing behind a container cannot be shot through it. **The character read as a Western regular** — high-cut ballistic helmet, NVG mount, plate carrier with shoulder yoke, pauldrons. That is the wrong silhouette for a story whose stated premise is that neither nationality is the default villain, and whose two factions are fictional. Restyled as an irregular fighter: cloth head wrap with a tail and face cloth, field jacket, simple chest rig with rifle pouches and a bandolier, canvas satchel, rolled blanket, cloth knee wraps. No helmet, no optics mount, no armour plate. It stays unmarked and fictional — no insignia, no script, no religious or ethnic signifiers. Faction identity is carried by an armband and a head-wrap band in the team colour and nothing else. CLAUDE.md gates Iranian/Farsi content on native review that has not happened, and a caricature would fail that review and the PRD's own §21.12 launch gate. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
vu1nz Security Review0 finding(s) in PR #? No security issues found. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces #12, which was branched off a squash-merged branch and conflicted.
There was nothing to shoot at
character.glbwas built and then had no consumer — the multiplayer entry point that would draw remote players doesn't exist yet — so the sandbox was an empty yard with a working rifle and no enemy. PRD §40 puts "one enemy and one rifle" ahead of everything else.Five training targets now stand in the yard. They take hits, topple, and stand back up after three seconds.
Deliberately targets, not AI: there's no animation system, and a figure sliding around frozen in a standing pose looks worse than one that honestly stands still.
Hit detection is presentation only, like the weapon effects — the server owns registration via
resolveHitscan. A target only counts if it's nearer than the world geometry behind it, so one standing behind a container can't be shot through it.The character read as a Western regular
High-cut ballistic helmet, NVG mount, plate carrier with shoulder yoke, pauldrons — the wrong silhouette for a story whose stated premise is that neither nationality is the default villain, and whose two factions are fictional.
Restyled as an irregular fighter: cloth head wrap with tail and face cloth, field jacket, chest rig with rifle pouches and a bandolier, canvas satchel, rolled blanket, cloth knee wraps. No helmet, no optics mount, no armour plate.
Unmarked and fictional — no insignia, no script, no religious or ethnic signifiers. Faction identity is an armband and head-wrap band in the team colour, nothing else.
CLAUDE.mdgates Iranian/Farsi content on native review that hasn't happened.201 tests pass. Format, lint, typecheck clean.
🤖 Generated with Claude Code