Files
wicked-quest/levels/README.md

155 lines
3.8 KiB
Markdown

# Creating Custom Levels for Wicked Quest
Want to add your own levels? It's pretty simple! Every level is a JSON file, and you can create as many as you want.
## Getting Started
1. Make a directory under levels/ with your level pack name:
levels/My Cool Levels/
2. Start with 1.json in your new directory. Each level after that is numbered in order: 2.json, 3.json, etc.
## Basic Level Structure
Every level needs these things:
{
"level_id": 1,
"name": "My Level",
"description": "Set the scene for your level.",
"locked": false,
"player_start": {
"x": 0,
"y": 0
},
"boundaries": {
"left": 0,
"right": 200
},
"ambience": "Graveyard Blitz.ogg",
"footstep_sound": "footstep_stone"
}
If you set locked to true, the player may not leave the level until all enemies have been defeated. Drop custom ambience files, e.g. music or creepy sound track in sounds/ambience. Add custom footstep sounds into the sounds directory.
## Adding Objects
All objects go in an "objects" list. Here are some examples of what you can add:
### Bone Dust
{
"x_range": [5, 8],
"y": 3,
"sound": "bone_dust",
"collectible": true,
"static": true
}
### Coffins
{
"x": 15,
"y": 3,
"sound": "coffin",
"type": "coffin",
"item": "extra_life"
}
Items are optional, can be extra_life, hand_of_glory, jack_o_lantern, or anything from graves.
### Graves
{
"x": 35,
"y": 0,
"type": "grave",
"sound": "grave",
"static": true,
"zombie_spawn_chance": 20,
"item": "shin_bone"
}
Zombie spawn chance is 0-100, higher means more zombies. Item is also optional, can be shin_bone, guts, or any item from coffin.
### Enemies
{
"x_range": [20, 35], // patrol or hunting range
"y": 0,
"enemy_type": "goblin", // goblin, witch, ghoul, boogie_man, ghost, revenant
"health": 4,
"damage": 2,
"attack_range": 1.5,
"attack_pattern": {
"type": "hunter",
"turn_threshold": 5
}
}
Attacks can be "hunter" or "patrol". The "patrol" option does not use the "turn_threshold" option. The "turn_threshold" option is how quickly the hunting enemy will turn around to attack the player. Hunters will leave their area to pursue the player once he has entered the enemy's range.
### Hazards
#### Skull Storm
{
"x_range": [40, 60],
"y": 12,
"type": "skull_storm",
"damage": 4,
"maximum_skulls": 2,
"frequency": {
"min": 1,
"max": 4
}
}
The maximum setting is how many skulls can be falling at once. Frequence is the number of seconds that can expire before the next skull falls.
#### Catapult
{
"x": 55,
"y": 0,
"type": "catapult",
"fire_interval": 4000, // milliseconds between shots
"range": 25
}
#### Spider Web
{
"type": "spider_web",
"x": 15,
"y": 0
}
## Creating New Enemies
Want to add a new enemy type? You'll need two sound files in the sounds directory:
- enemy.ogg - The sound the enemy makes while alive
- enemy_dies.ogg - The death sound
For example, to add a werewolf enemy:
- Add werewolf.ogg and werewolf_dies.ogg to the sounds directory
- Use "werewolf" as the enemy_type in your level file
## Tips
- Add at least 33 bone dust per level
- Space out hazards to give players a chance
- Enemy health:
- Regular enemies: 4-6 HP
- Mini-bosses: 8 HP
- Bosses: 40+ HP
- Lock boss levels with "locked": true
- Test your levels thoroughly!
Check out the Wicked Quest levels for more examples.