# Worms game assets (drop-in)

This folder holds the sprite-sheet and sound assets for the Worms game. The
original Worms Armageddon art and audio are **not bundled in the repository**
because they are copyrighted by Team17 and are not redistributable.

To enable the original assets, obtain them under an appropriate licence
(e.g. a licence from, or written permission of, the rights holder) and place the
files here. The renderer falls back to built-in procedural art, and the sound
layer falls back to the built-in generic effects, so the game keeps working
either way.

> **Current state:** the assets have been downloaded from the upstream demo into
> this folder for local development. They are **git-ignored** (see
> `FrontEnd/flutter/.gitignore`) so they are not committed or redistributed — do
> not remove that ignore rule unless you hold the rights.

## Source

The upstream clone is <https://www.ciaranmccann.me/wormsjs/> (source:
`CiaranMcCann/Worms-Armageddon-HTML5-Clone`, Apache-2.0). Its assets live on the
live server under `http://www.ciaranmccann.me/college/fyp/data/…` and are
deliberately absent from the git repo (`data/images/README.md`: "Game Assets are
not in the git repo due to the fact I don't own the copyright to them.").

## Sprites (`assets/games/worms/`)

Sprite sheets are **vertical strips** — frames are stacked top-to-bottom, one
column, each frame spanning the full image width × (`height / frameCount`). The
upstream `Sprite.ts` slices them with `frameHeight = image.height / frameCount`
and `sourceY = frame * frameHeight` (x is always 0). A few sheets start part-way
down the strip (`frameY`), not at frame 0.

### Worms
| File | Frames | Start frame (`frameY`) | Used for |
|------|-------:|----------------------:|----------|
| `wselbak.png` | 12 | 0 | idle |
| `wwalk.png`   | 15 | 0 | walking |
| `wfall.png`   | 2  | 0 | falling |
| `wdie.png`    | 60 | 0 | death |
| `wbackflp.png`| 22 | 0 | backflip |
| `wbaz.png`    | 32 | 16 | aiming bazooka |
| `wthrgrn.png` | 32 | 15 | aiming grenade |
| `wwinner.png` | 14 | 0 | victory |

### Weapons / effects (optional)
`grenade.png` (32), `missile.png` (32, frameY 9), `dynamite.png` (129),
`elipse75.png` (10), `smklt75.png` (28), `flame1.png` (32)

### Level artwork
`level2.png` — the level background (the one image actually in the upstream repo).

See `lib/src/games/worms_assets.dart` for the manifest consumed by the renderer.

## Sounds (`assets/games/worms/sounds/`)

Sound files are `.wav` and the exact file name and **case** must match (asset
paths are case-sensitive on Android/Linux). When a file is absent the game
silently falls back to the built-in generic effects (see
`lib/src/games/worms_sounds.dart`).

### Effects
`explosion1.wav`, `explosion2.wav`, `explosion3.wav` (these three ship in the
upstream repo), `CursorSelect.wav`, `WalkExpand.wav`, `WalkCompress.wav`,
`WormLanding.wav`, `StartRound.wav`, `TIMERTICK.WAV`, `drill.wav`, `fuse.wav`,
`holygrenade.wav`, `cantclickhere.wav`, `JetPackLoop1.wav`, `JetPackLoop2.wav`,
`NinjaRopeFire.wav`, `NinjaRopeImpact.wav`, `ROCKETPOWERUP.wav`,
`HOLYGRENADEIMPACT.wav`, `GRENADEIMPACT.wav`, `THROWPOWERUP.wav`,
`THROWRELEASE.wav`, `SHOTGUNRELOAD.wav`, `ShotGunFire.wav`, `MiniGunFire.wav`,
`MINETICK.wav`, `MINEIMPACT.wav`

### Worm speech (Irish) — `Speech/Irish/`
`fire.wav`, `incoming.wav`, `grenade.wav`, `watchthis.wav`, `justyouwait.wav`,
`youllregretthat.wav`, `yessir.wav`, `laugh.wav`, `ow1.wav`, `ow2.wav`,
`ow3.wav`, `ohdear.wav`, `byebye.wav`, `fatality.wav`, `traitor.wav`,
`victory.wav`, `hurry.wav`

### Fanfare
`fanfare/Ireland.wav`
