155 lines
3.8 KiB
Markdown
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:
|
|
|
|
### Coins (Bone Dust)
|
|
|
|
{
|
|
"x_range": [5, 8],
|
|
"y": 3,
|
|
"sound": "coin",
|
|
"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 coins 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.
|