Compare commits

...

45 Commits

Author SHA1 Message Date
Storm Dragon 04b9ac5a51 Fixed a bug where random items found in coffins didn't correctly trigger events. 2025-10-12 01:03:34 -04:00
Storm Dragon 275ead1e80 Bug fixes from the massive code cleanup. 2025-10-04 02:17:54 -04:00
Storm Dragon dd67eb5e1d Fix up some inconsistancies in the code levels should only be needed in one directory now, so update the hook to move levels into place on first run if needed. Warning, this version breaks existing save files. 2025-10-03 01:46:53 -04:00
Storm Dragon 95fc94a507 Improvements and lots of bug fixes to new weapon systems. 2025-09-30 16:12:42 -04:00
Storm Dragon 6d49ea25c3 Simplified the spec file and it will hopefully include all files in levels, not just folders. 2025-09-27 21:36:47 -04:00
Storm Dragon 870ef051ba Alternative key ' for console. 2025-09-27 16:25:34 -04:00
Storm Dragon fbbb970303 Fixed some console command bugs. 2025-09-27 02:20:31 -04:00
Storm Dragon a16b6f0b1f Well, unifying the way levels are called didn't seem to fix the requirement, so now using copy for levels in the hook file. 2025-09-26 17:49:38 -04:00
Storm Dragon 4681dc5a2e Found some differences in how levels are called that required the levels directory be in both _internal and in source directory. This fix hopefully makes them work from a single location. 2025-09-26 17:41:32 -04:00
Storm Dragon 28856d2662 Hopefully improve packaging. This is experimental and may have to be removed. 2025-09-26 17:05:20 -04:00
Storm Dragon 525c9d7563 Hopefully improve packaging. This is experimental and may have to be removed. 2025-09-26 17:04:13 -04:00
Storm Dragon 10f859136b Fixed a few bugs in console commands. 2025-09-26 13:42:17 -04:00
Storm Dragon 1d39ff0ca7 Console added, bound to ` 2025-09-26 05:05:42 -04:00
Storm Dragon 7eb353677a Fixed wrong name used for catapult firing interval in Wicked Quest levels. There shouldn't really be any noticeable changes in game play. 2025-09-24 11:53:24 -04:00
Storm Dragon fcf54760d7 Fixed errors in documentation for level creation. Fixed some save loading bugs. 2025-09-24 11:52:09 -04:00
Storm Dragon 33e0f6093b Updated submodule. 2025-09-23 18:04:07 -04:00
Storm Dragon 8688c8fad3 Added speech history in the game bound to f1 previous, f2 current, f3 next. I may expand this later. 2025-09-23 17:56:22 -04:00
Storm Dragon e15b497c54 Updated submodule. 2025-09-23 14:29:40 -04:00
Storm Dragon d2304fae85 Tweaks to survival mode with spawn chances. 2025-09-23 00:41:32 -04:00
Storm Dragon a686e816f5 Missed a bit of the skullstorm override system. Fixed that and updated documentation. 2025-09-21 23:40:10 -04:00
Storm Dragon 77633adf14 Updated submodule. 2025-09-21 22:38:44 -04:00
Storm Dragon b516593f5d Updated submodule. 2025-09-21 22:18:28 -04:00
Storm Dragon 3845d93808 Fixed all spiders to have their original behavior. The ability to customize spider webs broke them. Players would have been in for a nasty shock if I hadn't caught that lol. 2025-09-21 20:48:22 -04:00
Storm Dragon 477fb747b1 Updated documentation for custom levels. 2025-09-21 19:54:25 -04:00
Storm Dragon 948d0c32f7 Extended override system to include spider webs. They can now be altered to be on the ground and require jumping, the name and the sponned monster can be changed as well. Fixed various bugs. 2025-09-21 19:25:09 -04:00
Storm Dragon bd7df4804d Updated submodule. 2025-09-21 14:34:13 -04:00
Storm Dragon b1d6fc3468 Updated submodule. 2025-09-21 14:21:12 -04:00
Storm Dragon bd1eb7c1c7 Introduced a bug with coffins and items when working on survival mode. Hopefully fixed now. 2025-09-21 12:37:26 -04:00
Storm Dragon 4b21552ca9 Actually found a bug with weapon progression. Made survival mode more random. Graves can now have any item from all levels or be empty. Coffins will always have a random item. 2025-09-21 01:38:49 -04:00
Storm Dragon ed764cdfdf More improvements to the override system. Fixed a bug that reared its ugly head during updates to grasping hands code. 2025-09-21 00:17:25 -04:00
Storm Dragon befc6bbe92 Updated level creation documentation. Fixed a couple bugs in weapon overrides. 2025-09-20 20:48:08 -04:00
Storm Dragon 63a5088f51 Fixed a few bugs with the new override system. 2025-09-20 20:15:02 -04:00
Storm Dragon 5dd78a1687 Added override capabilities for lots of items, weapons, and hazards. 2025-09-20 04:10:32 -04:00
Storm Dragon 91eecae786 Updated submodule, hopefully clicks and pops are gone once and for all. Added dialogue system for levels that mave more than just a simple 1 line description. 2025-09-19 16:20:20 -04:00
Storm Dragon 0d4e5e7bde Add ability for dialogue based messages. 2025-09-18 15:52:21 -04:00
Storm Dragon 3fa36e4ac1 Updated submodule. 2025-09-17 22:48:27 -04:00
Storm Dragon 5826aa4580 Updated libstormgames. Added end of skull storm sound. Fixed inconsistancy with escape key in survival as apposed to story mode. 2025-09-17 15:34:01 -04:00
Storm Dragon bd298ab17e fixed a bug with nunchucks not saving weapon speed. Updated libstormgames. 2025-09-16 12:54:27 -04:00
Storm Dragon 90f14b842e Fixed jumping while ducking bug. Updated level creation documentation. 2025-09-15 17:22:47 -04:00
Storm Dragon 4041983385 Finally got it, I think. The path to the end.ogg file was constructed differently from other sounds loaded by libstormgames. Because the libstormgames version works, just use it here too. 2025-09-13 14:44:19 -04:00
Storm Dragon 8218d28701 Sound file error hopefully fixed for pyinstaller. 2025-09-13 01:33:16 -04:00
Storm Dragon 82f1128087 Fixed sample rate for sounds. Removed debug statement for info for survival mode. 2025-09-12 16:47:15 -04:00
Storm Dragon 1f51a2e6be Clarify information about bone dust. 2025-09-11 20:30:00 -04:00
Storm Dragon d5fcbcaf40 Volume a bit too low on Spider's Domain. 2025-09-11 20:01:33 -04:00
Storm Dragon 8ee60f7f45 Fixed bug with missing Spider's Domain music, updated credits. 2025-09-11 18:36:14 -04:00
118 changed files with 2905 additions and 758 deletions
+7
View File
@@ -6,6 +6,9 @@ https://git.stormux.org/storm/wicked-quest
Angus Kola: Beta testing.
https://angus.kola.casa
Chris Wright: Beta testing.
https://www.youtube.com/channel/UCDWOwfwJ18lQiXRubVBEFkw
Deedra Waters: Beta testing.
Ember Wolfe: Sound effects, beta testing, and visual verification of messages.
@@ -37,6 +40,10 @@ https://youtu.be/3F8C713XUj8
Wayward Ghouls:
http://teknoaxe.com/Link_Code_3.php?q=1469
Spider's Domain
Alexey Kasyanchuk (DEgITx) [ https://degitx.com/links ]
https://creativecommons.org/licenses/by/4.0/
Sound Effects:
_finish_level.ogg uses Shock Stab 08 by nomiqbomi from freesound. License Creative Commons 0.
+5 -1
View File
@@ -35,6 +35,9 @@ Alt+Home: Ambience volume increase.
Alt+Delete: Game sounds volume decrease.
Alt+Insert: Game sounds volume increase.
Backspace: Pause or resume the game.
F1: Navigate to previous speech message in history.
F2: Repeat current speech message.
F3: Navigate to next speech message in history.
Notes
@@ -51,7 +54,8 @@ The game automatically saves your progress when you have collected 200 bone dust
Game Modes
Story Mode: Traditional level-by-level progression through predefined stages. Your progress is saved, and you can collect extra lives by gathering bone dust.
Story Mode: Traditional level-by-level progression through predefined stages. Your progress is saved, and you can collect extra lives by gathering 100 bone dust.
At 200 bone dust the game will save allowing you to load from the current level.
Survival Mode: An endless challenge where you face wave after wave of increasingly difficult enemies. Each wave gets progressively harder with stronger enemies, faster spawn rates, and longer levels. Level length starts at 300 units and increases by 20 units per wave (capped at 500 units). In survival mode:
No saving or loading - each run is a fresh start
+895 -140
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -123,7 +123,7 @@
"x": 135,
"y": 0,
"type": "catapult",
"fire_interval": 4000,
"fireInterval": 5000,
"range": 30
},
{
@@ -254,7 +254,7 @@
"x": 310,
"y": 0,
"type": "catapult",
"fire_interval": 4000,
"fireInterval": 5000,
"range": 30
},
{
+4 -4
View File
@@ -61,7 +61,7 @@
{
"type": "spider_web",
"x": 65,
"y": 0
"y": 1
},
{
"x": 75,
@@ -130,7 +130,7 @@
"x": 155,
"y": 0,
"type": "catapult",
"fire_interval": 4000,
"fireInterval": 5000,
"range": 30
},
{
@@ -143,7 +143,7 @@
{
"type": "spider_web",
"x": 180,
"y": 0
"y": 1
},
{
"x": 190,
@@ -265,7 +265,7 @@
{
"type": "spider_web",
"x": 355,
"y": 0
"y": 1
},
{
"x_range": [365, 380],
+12 -12
View File
@@ -25,7 +25,7 @@
"x": 50,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
@@ -38,7 +38,7 @@
{
"type": "spider_web",
"x": 70,
"y": 0
"y": 1
},
{
"x_range": [75, 85],
@@ -55,7 +55,7 @@
"x": 100,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
@@ -85,7 +85,7 @@
"x": 150,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
@@ -117,7 +117,7 @@
"x": 200,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
@@ -142,13 +142,13 @@
{
"type": "spider_web",
"x": 220,
"y": 0
"y": 1
},
{
"x": 250,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
@@ -169,7 +169,7 @@
"x": 300,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
@@ -194,7 +194,7 @@
"x": 350,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
@@ -220,7 +220,7 @@
"x": 400,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
@@ -245,7 +245,7 @@
"x": 450,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
@@ -266,7 +266,7 @@
"x": 500,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
+14 -14
View File
@@ -26,13 +26,13 @@
"x": 50,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
"type": "spider_web",
"x": 35,
"y": 0
"y": 1
},
{
"x_range": [55, 60],
@@ -54,7 +54,7 @@
"x": 100,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
@@ -91,13 +91,13 @@
"x": 150,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
"type": "spider_web",
"x": 135,
"y": 0
"y": 1
},
{
"x_range": [155, 160],
@@ -110,7 +110,7 @@
"x": 200,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
@@ -154,7 +154,7 @@
"x": 300,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
@@ -174,13 +174,13 @@
{
"type": "spider_web",
"x": 335,
"y": 0
"y": 1
},
{
"x": 350,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
@@ -202,7 +202,7 @@
"x": 400,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
@@ -241,7 +241,7 @@
"x": 500,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
@@ -254,13 +254,13 @@
{
"type": "spider_web",
"x": 525,
"y": 0
"y": 1
},
{
"x": 550,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
@@ -281,7 +281,7 @@
"x": 600,
"y": 0,
"type": "catapult",
"fire_interval": 3000,
"fireInterval": 5000,
"range": 30
},
{
+1 -1
View File
@@ -107,7 +107,7 @@
"x": 120,
"y": 0,
"type": "catapult",
"fire_interval": 5000,
"fireInterval": 5000,
"range": 15
},
{
+1 -1
View File
@@ -229,7 +229,7 @@
"x": 175,
"y": 0,
"type": "catapult",
"fire_interval": 4500,
"fireInterval": 5000,
"range": 20
},
{
+1 -1
View File
@@ -125,7 +125,7 @@
"x": 90,
"y": 0,
"type": "catapult",
"fire_interval": 4500,
"fireInterval": 5000,
"range": 20
},
{
+2 -2
View File
@@ -76,7 +76,7 @@
"x": 55,
"y": 0,
"type": "catapult",
"fire_interval": 4000,
"fireInterval": 5000,
"range": 25
},
{
@@ -198,7 +198,7 @@
"x": 175,
"y": 0,
"type": "catapult",
"fire_interval": 4000,
"fireInterval": 5000,
"range": 25
},
{
+6 -6
View File
@@ -18,7 +18,7 @@
{
"type": "spider_web",
"x": 15,
"y": 0
"y": 1
},
{
"x_range": [20, 35],
@@ -75,7 +75,7 @@
"x": 60,
"y": 0,
"type": "catapult",
"fire_interval": 4000,
"fireInterval": 5000,
"range": 30
},
{
@@ -99,7 +99,7 @@
{
"type": "spider_web",
"x": 90,
"y": 0
"y": 1
},
{
"x_range": [95, 98],
@@ -194,7 +194,7 @@
"x": 175,
"y": 0,
"type": "catapult",
"fire_interval": 4000,
"fireInterval": 5000,
"range": 30
},
{
@@ -214,7 +214,7 @@
{
"type": "spider_web",
"x": 205,
"y": 0
"y": 1
},
{
"x_range": [215, 230],
@@ -281,7 +281,7 @@
{
"type": "spider_web",
"x": 290,
"y": 0
"y": 1
},
{
"x_range": [295, 298],
+10 -10
View File
@@ -17,7 +17,7 @@
{
"type": "spider_web",
"x": 10,
"y": 0
"y": 1
},
{
"x": 15,
@@ -57,7 +57,7 @@
{
"type": "spider_web",
"x": 40,
"y": 0
"y": 1
},
{
"x": 45,
@@ -126,7 +126,7 @@
"x": 100,
"y": 0,
"type": "catapult",
"fire_interval": 4000,
"fireInterval": 5000,
"range": 30
},
{
@@ -147,7 +147,7 @@
{
"type": "spider_web",
"x": 120,
"y": 0
"y": 1
},
{
"x_range": [125, 145],
@@ -196,7 +196,7 @@
{
"type": "spider_web",
"x": 175,
"y": 0
"y": 1
},
{
"x_range": [180, 200],
@@ -256,13 +256,13 @@
{
"type": "spider_web",
"x": 220,
"y": 0
"y": 1
},
{
"x": 225,
"y": 0,
"type": "catapult",
"fire_interval": 4000,
"fireInterval": 5000,
"range": 20
},
{
@@ -293,7 +293,7 @@
{
"type": "spider_web",
"x": 255,
"y": 0
"y": 1
},
{
"x_range": [260, 275],
@@ -334,7 +334,7 @@
{
"type": "spider_web",
"x": 305,
"y": 0
"y": 1
},
{
"x_range": [310, 325],
@@ -371,7 +371,7 @@
{
"type": "spider_web",
"x": 355,
"y": 0
"y": 1
},
{
"x_range": [360, 375],
+2 -2
View File
@@ -95,7 +95,7 @@
"x": 115,
"y": 0,
"type": "catapult",
"fire_interval": 4000,
"fireInterval": 5000,
"range": 30
},
{
@@ -217,7 +217,7 @@
"x": 270,
"y": 0,
"type": "catapult",
"fire_interval": 4000,
"fireInterval": 5000,
"range": 30
},
{
+4 -4
View File
@@ -17,7 +17,7 @@
{
"type": "spider_web",
"x": 15,
"y": 0
"y": 1
},
{
"x_range": [25, 45],
@@ -111,13 +111,13 @@
{
"type": "spider_web",
"x": 140,
"y": 0
"y": 1
},
{
"x": 150,
"y": 0,
"type": "catapult",
"fire_interval": 4000,
"fireInterval": 5000,
"range": 30
},
{
@@ -244,7 +244,7 @@
"x": 330,
"y": 0,
"type": "catapult",
"fire_interval": 4000,
"fireInterval": 5000,
"range": 30
},
{
+59
View File
@@ -0,0 +1,59 @@
import os
import sys
import shutil
# Runtime hook to move directories and files from _internal to parent directory
if hasattr(sys, '_MEIPASS'):
# We're running from a PyInstaller bundle
bundleDir = os.path.dirname(sys.executable)
internalDir = sys._MEIPASS
# Directories to move from _internal to parent
# All these use the parent directory for easier user customization
dirsToMove = ['sounds', 'libstormgames', 'levels']
# Directories to copy (keep in both locations)
# None needed - everything now uses parent directory
dirsToCopy = []
# Files to move from _internal to parent
filesToMove = ['files', 'logo.png']
# Move directories
for dir_name in dirsToMove:
internalPath = os.path.join(internalDir, dir_name)
targetPath = os.path.join(bundleDir, dir_name)
# Only move if source exists and target doesn't exist
if os.path.exists(internalPath) and not os.path.exists(targetPath):
try:
shutil.move(internalPath, targetPath)
except Exception as e:
# Silently fail if we can't move - game will still work from _internal
pass
# Copy directories (keep in both locations)
for dir_name in dirsToCopy:
internalPath = os.path.join(internalDir, dir_name)
targetPath = os.path.join(bundleDir, dir_name)
# Only copy if source exists and target doesn't exist
if os.path.exists(internalPath) and not os.path.exists(targetPath):
try:
shutil.copytree(internalPath, targetPath)
except Exception as e:
# Silently fail if we can't copy - game will still work from _internal
pass
# Move files
for file_name in filesToMove:
internalPath = os.path.join(internalDir, file_name)
targetPath = os.path.join(bundleDir, file_name)
# Only move if source exists and target doesn't exist
if os.path.exists(internalPath) and not os.path.exists(targetPath):
try:
shutil.move(internalPath, targetPath)
except Exception as e:
# Silently fail if we can't move - game will still work from _internal at least enough to exit.
pass
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More