README files added.

This commit is contained in:
Storm Dragon
2025-02-15 13:53:16 -05:00
parent cdcb9acaa3
commit 70d02a8db3
3 changed files with 199 additions and 0 deletions

44
README.md Normal file
View File

@@ -0,0 +1,44 @@
# Wicked Quest
Welcome to Wicked Quest, an audio only Halloween themed side scroller.
## Features
- 13 levels of action packed game play
- Multiple keyboard layouts
- Multiple boss battles and enemy types
- Collectible items and power-ups throughout each level
- Customizable levels, add your own levels for endless fun.
## installation
The game uses git lfs, so you will need to have git-lfs installed. You will need to type once:
git lfs install
To clone the game:
git clone --recurse-submodules https://git.stormux.org/storm/wicked-quest
Make sure the files in sounds are actually sound files, if they are not, you will need to do:
git lfs pull
Normally this step is not necessary. You also need python 3.8 or higher. Check the requirements.txt file in the libstormgames directory for necessary packages.
## License
The game is released under the terms of the GPL, there is a license file included in the git repository. For exceptions to the license terms, see the credits file in the files directory. This file can be read in game under the credits option in the menu.
## Instructions
Instructions are available in game in the menu. You can also read the instructions file with a text editor, it is located in the files directory.
## Creating Custom Levels
See the README file in the levels directory. Level files are in .json format.

154
levels/README.md Normal file
View File

@@ -0,0 +1,154 @@
# 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.

View File

@@ -179,6 +179,7 @@ class WickedQuest:
report.append(f"Final Score: {self.player.scoreboard.get_score()}") report.append(f"Final Score: {self.player.scoreboard.get_score()}")
if self.player.scoreboard.check_high_score(): if self.player.scoreboard.check_high_score():
pygame.event.clear()
self.player.scoreboard.add_high_score() self.player.scoreboard.add_high_score()
cut_scene(self.sounds, "game_over") cut_scene(self.sounds, "game_over")