Compare commits

..

980 commits
demo3 ... main

Author SHA1 Message Date
9748c64035 Set up exports 2025-03-25 13:33:43 -04:00
da17fbc52e this dragged out too long.. 2025-03-25 01:50:08 -04:00
6344896134 i hate revolution 2083 2025-03-24 23:49:56 -04:00
5f736ae3b0 more speccy stuff 2025-01-19 00:57:48 -05:00
eaa9490636 ewwww destroy that fucking tonguegit statusgit status! 2025-01-06 05:44:06 -05:00
5748d7dcf8 cheering you on 2025-01-06 05:30:13 -05:00
299dcaf06e killemall1989 2!! 2025-01-06 05:28:29 -05:00
ddd3728704 break the glass!! 2025-01-06 05:22:40 -05:00
79bb0b1323 shoot the eye! 2025-01-06 05:17:18 -05:00
bc234930b0 option for speccy help 2025-01-06 05:17:01 -05:00
dce789752f speccy noise 2025-01-06 04:40:03 -05:00
7b4d519791 oi, go right! 2025-01-05 14:53:19 -05:00
ac0f3c8d58 configurable speccy 2025-01-05 04:33:34 -05:00
0d570f3dad new glass break? 2025-01-04 20:09:36 -05:00
5080ae5436 "Oi, SG!" Beginnings 2025-01-04 20:09:19 -05:00
0a706e1120 make HTTP requests work in web build 2024-12-10 16:12:04 -05:00
b8c3cdd0a7 add my woofer to special thanks 2024-12-10 13:16:17 -05:00
05af56709e fix player name in special thanks overlapping other text 2024-12-10 03:33:16 -05:00
4c94f01513 save options when scoreboard name gets set via file create 2024-12-10 03:21:36 -05:00
f73a7ca01e fix speedrun timer credits crash 2024-12-10 00:27:51 -05:00
8252ff66b8 level select menu indicator 2024-12-09 14:50:19 -05:00
93656bdcfa polish high score/score submit stuff 2024-12-09 01:14:32 -05:00
ba836830d2 cave transportation realignment 2024-12-09 00:10:47 -05:00
f004479da1 glass break particles 2024-12-07 22:22:20 -05:00
32189c29a4 gotta go fast, hit that BLJgit status 2024-12-07 21:58:34 -05:00
pennyrigate
b54e9272c6 fixed the funny ladder 2024-12-06 17:45:11 -05:00
pennyrigate
29dfadb193 new glass noises 2024-12-06 17:44:32 -05:00
pennyrigate
7e57c2b7a6 credits fix 2024-12-06 16:46:49 -05:00
e218f3c10b beta gameplay in beta levels ;) 2024-12-05 02:35:46 -05:00
b6daa18e6c quite incredible 2024-12-05 02:21:22 -05:00
94ed6c6c68 guards in place for when scoreboard_host.txt is not present 2024-12-03 16:08:33 -05:00
6a68e025ea drag beta cave back to the stone age 2024-12-03 15:33:48 -05:00
a26cacad18 Merge branch 'scoreboard-scholar' 2024-12-03 13:54:37 -05:00
ceb65b4318 difficulty icons in file create screen :) 2024-12-01 23:09:20 -05:00
b7b6ff64f3 increase http timeout to give a bit more grace period 2024-12-01 22:54:05 -05:00
2e604bb5f6 That is supposed to say 'time' 2024-12-01 22:35:29 -05:00
04c87ebf66 EEEEEH?? EASY MODO?? 2024-12-01 22:34:49 -05:00
65053aa223 Player scoreboard name option 2024-12-01 21:37:15 -05:00
b61a5122f4 New scoreboard viewing screengit commit -m "New scoreboard viewing screen" 2024-12-01 20:14:51 -05:00
155c86c013 Hook score submission into new server and move into the results screen. 2024-12-01 13:30:51 -05:00
06f7d16aca Change shard sprite. 2024-12-01 13:25:24 -05:00
29d84b0c80 Change shard sprite. 2024-12-01 11:45:41 -05:00
e656b51232 All in a days yield(get_tree(), "idle_frame")!!! 2024-11-24 19:14:37 -05:00
86e3b5d0a9 godo3.6 tileset diff 2024-11-24 18:58:03 -05:00
b919ebb658 Animated and hidden whirlpool. 2024-11-24 18:54:21 -05:00
e9700219db Add the arrow sign to save new players from the stuccy. 2024-11-23 20:21:42 -05:00
f22e8706ca Update to godot 3.6 2024-11-02 02:26:44 -04:00
f895270218 Update credit's to Scarlett's new name 2024-10-30 11:07:59 -04:00
4e85053411 Slight correction 2024-08-21 21:27:06 -04:00
ca3bd478c1 What need be done for the repository to become public. 2024-08-21 21:22:58 -04:00
pennyrigate
2a1eda7cc0 shield! 2024-08-13 20:33:46 -04:00
pennyrigate
1dc515904c the game is done... right? 2024-07-14 20:44:26 -04:00
db6c5e9ccd HERO MARK 2 2024-07-14 03:30:05 -04:00
pennyrigate
aded502360 black & white 2024-07-14 03:21:15 -04:00
pennyrigate
45de661aa3 fixed a bug 2024-07-14 02:54:23 -04:00
pennyrigate
b00d83ac7d mori mark graphics 2024-07-14 02:43:42 -04:00
pennyrigate
243620528c lucas! 2024-07-14 02:33:32 -04:00
f1168c099a SUPER PLAYER! 2024-07-14 01:46:14 -04:00
pennyrigate
fa94bf6601 fastest future 2024-07-14 00:20:48 -04:00
pennyrigate
5eee885d46 recolor lives head 2024-07-13 23:58:44 -04:00
pennyrigate
f328ea581a nothing can stope scope and the sheriff! 2024-07-13 23:19:47 -04:00
pennyrigate
4da22ca726 weird bug 2024-07-13 22:48:26 -04:00
pennyrigate
5e2f789e40 fixed more menu weirdness 2024-07-13 22:38:34 -04:00
pennyrigate
84182e5665 fixed abyss blood color 2024-07-13 22:13:06 -04:00
pennyrigate
11c4fa456f fixed some menu jank 2024-07-13 22:03:54 -04:00
pennyrigate
8702910467 added target time to graveyard 2024-07-13 22:02:27 -04:00
pennyrigate
ae16a01820 The End? 2024-07-13 18:48:47 -04:00
pennyrigate
77737e009e improved mixing as much as i can + finally fixed bonus dialogue 2024-07-13 18:05:48 -04:00
pennyrigate
c6120801e4 new climb sound 2024-07-13 16:42:03 -04:00
pennyrigate
444c816a71 steel factory lore 2024-07-13 16:23:04 -04:00
pennyrigate
db7530e311 finalized sound test 2024-07-13 04:04:26 -04:00
e4c4f36c39 windows icon and stuff prepared 2024-07-13 03:31:47 -04:00
pennyrigate
7fd32cc7b0 SMAAAHHH 2024-07-13 03:30:14 -04:00
pennyrigate
cebcf43981 touched up famira sprites 2024-07-13 03:02:02 -04:00
07bba49cc9 steel background 2024-07-13 02:56:02 -04:00
0f674f2f83 the glowey 2024-07-13 02:28:22 -04:00
pennyrigate
7babb27960 fixed last rolling fiend issue 2024-07-13 02:19:33 -04:00
784df36471 bloodness 2024-07-13 02:10:27 -04:00
cad6fbc7e7 a little bandaid 2024-07-13 02:03:21 -04:00
1e771aa41c He's coming!!!! 2024-07-13 02:00:14 -04:00
pennyrigate
e7c71c2112 squa compleat 2024-07-13 01:56:55 -04:00
pennyrigate
fcfaec94a6 step two to squa 2024-07-13 01:54:54 -04:00
pennyrigate
69df2d6ce4 step one to squa 2024-07-13 01:25:14 -04:00
741d734b11 git status again... 2024-07-13 01:03:55 -04:00
pennyrigate
6a581b960c fixed the bug affecting today's political climate 2024-07-13 00:51:50 -04:00
2ed1969ba1 famira greengit statusgit status 2024-07-13 00:40:34 -04:00
28fb9adf28 yipeegit statusgit status 2024-07-13 00:16:08 -04:00
pennyrigate
0cfe581493 buncha bullshit 2024-07-12 23:37:59 -04:00
pennyrigate
0fa8ab9930 loooore 2024-07-12 23:31:00 -04:00
pennyrigate
d6279aa96d more lore entries 2024-07-12 23:29:00 -04:00
pennyrigate
d116bee666 scope squash 2024-07-12 23:28:14 -04:00
pennyrigate
6b9c4af28a scope and the sheriff 2024-07-12 23:27:32 -04:00
pennyrigate
ac600e5e6b sounds !! HEHE 2024-07-12 23:23:24 -04:00
pennyrigate
94840d9744 music fades out on famira death 2024-07-12 20:07:36 -04:00
pennyrigate
d06eee6455 adjusted some lore entries 2024-07-12 19:13:53 -04:00
pennyrigate
587bafc821 finalized intro and ending,,, hopefully 2024-07-12 17:25:03 -04:00
pennyrigate
3a4a6edf40 fixed issue where options screen didnt focus on tab selector 2024-07-12 00:47:48 -04:00
pennyrigate
655d000b51 fixed bug where exiting from options would softlock 2024-07-12 00:36:02 -04:00
pennyrigate
e8ec987c6a fixed some menu bugs 2024-07-12 00:18:59 -04:00
pennyrigate
906e43df66 forgot to commit these :P 2024-07-12 00:08:24 -04:00
pennyrigate
69767c6ffb new borders 2024-07-12 00:07:20 -04:00
pennyrigate
4ad406c44c hopefully the final revision of the credits 2024-07-11 23:04:50 -04:00
pennyrigate
af935b5031 oops forgot to commit that 2024-07-11 23:03:52 -04:00
pennyrigate
cc3c48dac3 fixed issue where you couldnt retry final boss, as well as making transformation cutscene not pausable 2024-07-11 19:51:29 -04:00
pennyrigate
5800db8432 fixed bug where the game over text would glitch out for a few frames 2024-07-11 19:32:26 -04:00
pennyrigate
102c170983 added steel factory to world map 2024-07-11 19:25:57 -04:00
pennyrigate
42ada42044 critical heat sound 2024-07-11 17:58:00 -04:00
pennyrigate
7cbf467c81 differentiated explosion volumes and fixed mine explosion sound not playing 2024-07-11 17:33:24 -04:00
pennyrigate
8a3fc9be82 import 2024-07-11 16:57:30 -04:00
pennyrigate
a6374aa311 new channels 2024-07-11 16:54:44 -04:00
9ea457e21d basic implementation of famira blood 2024-07-11 12:44:16 -04:00
pennyrigate
40ad1c6fe8 more palettes 2024-07-10 20:09:42 -04:00
pennyrigate
8b47d86acf ending 2024-07-09 22:44:57 -04:00
f3758b26d2 allow changing fps of noise shader 2024-07-09 20:14:52 -04:00
pennyrigate
04f1e8ed44 tuned shard requirements 2024-07-09 19:15:09 -04:00
121af4481e more granular shard requirements 2024-07-09 18:10:53 -04:00
9ca36421dc change quick-select to up/down 2024-07-08 17:29:39 -04:00
pennyrigate
6cb90da8c6 double oopsie 2024-07-08 17:22:59 -04:00
pennyrigate
3a22c134ee oopsie. zappy sound. 2024-07-08 17:22:18 -04:00
pennyrigate
8a24ae2dbd fixed game date and added dogjelly to credits 2024-07-08 17:17:15 -04:00
pennyrigate
9a93b04173 change the zappy 2024-07-08 17:17:15 -04:00
d5260e5ec6 figured it out lol 2024-07-08 17:12:22 -04:00
45ffc4d3b7 GET BZAPPED 2024-07-08 16:36:30 -04:00
c97f41fb47 WIP zap death sound 2024-07-08 15:48:43 -04:00
pennyrigate
47134ec4c5 scope & sheriff 2024-07-08 15:38:40 -04:00
9ca4cf10d2 sploosh! BZAAP! 2024-07-08 15:22:49 -04:00
e5859ae452 add all sounds to sound test 2024-07-08 14:57:34 -04:00
pennyrigate
9c84ac09bf Time bonus! 2024-07-07 22:11:53 -04:00
pennyrigate
db434a43af the virus is contained once again 2024-07-07 21:39:43 -04:00
pennyrigate
49b5e7c2ca sploosh 2024-07-07 21:23:36 -04:00
pennyrigate
2423e99ccf some time requirements 2024-07-07 21:23:35 -04:00
pennyrigate
6a8eab1eb7 stuff' 2024-07-07 21:23:35 -04:00
9f42a196e9 moving platforms, eh? 2024-07-07 20:22:40 -04:00
1c28e4d005 fix artificial souls popping into place at beginning of level 2024-07-07 19:50:32 -04:00
2790c238b1 finally make one-sided ladders fully-functional 2024-07-07 19:33:42 -04:00
pennyrigate
36bac00ac8 stupid problems demand stupid solutions 2024-07-07 18:56:31 -04:00
pennyrigate
16a152903f options on level select 2024-07-07 18:51:30 -04:00
pennyrigate
3ad1b32492 menu stuff 2024-07-07 18:27:54 -04:00
89df5eaca0 best recolor job I can do without the original layers shrug 2024-07-07 17:27:36 -04:00
65f6467205 disable pausing while beating a level 2024-07-07 16:39:22 -04:00
5968de9ced route pause music through the music audio bus 2024-07-07 16:34:15 -04:00
pennyrigate
6b1ec6a4b5 AMAZING GRAPHICS 2024-07-07 16:30:59 -04:00
d7e29f43e8 finally make boss-specific stats popup 2024-07-07 16:26:36 -04:00
4068e19857 potentially better indication that more shards are needed to progress 2024-07-07 15:34:58 -04:00
6888ae2189 EHEHE silly oversight. fullscreen works again 2024-07-07 15:09:05 -04:00
pennyrigate
198c669b41 several changes. 2024-07-07 14:46:00 -04:00
72f84c88a5 famira is more or less finished? :) 2024-07-07 14:42:59 -04:00
pennyrigate
1fd71f48ec noises 2024-07-06 17:25:12 -04:00
pennyrigate
034c8033ab the metadata virus is under control. 2024-07-05 21:05:02 -04:00
pennyrigate
8e8869ba9f I HATE YOU 2024-07-05 21:01:19 -04:00
pennyrigate
b3f1a30d13 annoying. 2024-07-05 20:57:35 -04:00
pennyrigate
31b901acb5 more sounds 2024-07-04 23:23:43 -04:00
9b1e7bd813 body and head of famira: PRETTY GOOD! :) 2024-07-02 21:04:14 -04:00
a5680b3357 fix some fami graphics 2024-07-02 16:53:47 -04:00
34346c5052 make player lose control when beating fami 2024-07-02 16:53:47 -04:00
63e0834b27 further work on famira's head 2024-07-02 16:53:47 -04:00
64954f0339 work on refining famira sprites 2024-07-02 16:53:43 -04:00
pennyrigate
77f38526bc more fami stuff 2024-07-01 21:59:32 -04:00
pennyrigate
fbac189239 more cutscene work 2024-06-30 22:52:01 -04:00
pennyrigate
f7c60470a2 bullet casing sound 2024-06-25 22:49:28 -04:00
pennyrigate
940a03acec bullet outline 2024-06-25 22:13:33 -04:00
pennyrigate
92813f5448 new new penny 2024-06-22 18:26:40 -04:00
pennyrigate
18491453a6 new penny 2024-06-22 17:57:02 -04:00
pennyrigate
ccca031ed2 credits should be done for good now 2024-06-21 23:58:59 -04:00
pennyrigate
ccfd437318 more sounds in fami cutscene 2024-06-20 22:37:24 -04:00
pennyrigate
bd0c4e2e32 HUD only displays when fight begins 2024-06-20 18:53:54 -04:00
pennyrigate
a1fb454384 world titles 2024-06-19 22:32:05 -04:00
pennyrigate
ea36720f7b tweaked famira design 2024-06-16 16:36:30 -04:00
4c2d8344e6 fix death animation not including new legs 2024-06-16 01:30:48 -04:00
cd7653fdbb initial work on proper famira sprites 2024-06-16 01:03:50 -04:00
pennyrigate
342e925f6b no more restart :( 2024-06-15 21:52:16 -04:00
pennyrigate
e25db2a638 made fight start state standing instead of unduck 2024-06-15 21:25:43 -04:00
pennyrigate
ba4e603f2b fixed ducking bug duckbug.... ぶ 2024-06-15 20:56:09 -04:00
pennyrigate
02793ddc38 wonderful sounds and visuals 2024-06-14 23:20:34 -04:00
pennyrigate
828a4ccecc new health bars wow 2024-06-13 16:38:19 -04:00
pennyrigate
9e8abe19ef adjusted famira balancing 2024-06-11 19:30:24 -04:00
pennyrigate
7240402776 great job! 2024-05-05 20:12:18 -04:00
6fdd5b5510 make scoreboard index accurate on other pages of scores 2024-04-18 01:22:42 -04:00
69d5b2723f fix little focus issue in a level select popup 2024-04-18 01:22:42 -04:00
PennyRigate
9bf8470d40 portable commit - fixed bug world and marathon mode 2024-04-16 19:05:29 -04:00
ec7ad7bfc9 elain.png import 2024-04-14 13:56:22 -04:00
ab094fd6ce seperate ui controls from gameplay controls, scrolling controls screen 2024-04-01 14:12:32 -04:00
pennyrigate
3c69e4d14d elaine sprite 2024-03-16 10:47:55 -04:00
85a331ed37 gamepad buttons 2024-03-15 19:00:59 -04:00
35b757cd22 make start_in_fullscreen actually only apply during startup 2024-03-15 15:51:18 -04:00
aa40a0c6c2 new thing, level editor thing maybe, not really useful right now, not sure why i did this 2024-03-13 14:02:01 -04:00
0b00c9ff4a fix player hovering 1px above vertical moving platform 2024-03-12 17:49:25 -04:00
9914542ffe freedom of the leg 2024-03-11 22:01:28 -04:00
11531397a8 palette pngs are dead, long live .tex 2024-03-11 17:13:03 -04:00
7a4e34a0cb make level select menu a bit better 2024-03-11 17:00:52 -04:00
b6d3fc68ba zilog 2024-03-11 16:49:40 -04:00
63ec6a679c fix palette select scene file 2024-03-11 16:40:44 -04:00
c3a468a044 fix roboterret's proj 2024-03-11 16:33:10 -04:00
abfee852cb make msx's cage more cell-like 2024-03-11 16:16:22 -04:00
d8cdd29c79 improve stain removal on player animation a bit 2024-03-11 16:16:22 -04:00
pennyrigate
3543c98c46 who is elaine? 2024-03-11 16:13:48 -04:00
pennyrigate
57f92b2e46 more palettes 2024-03-11 16:11:00 -04:00
88eb019a78 improve metal turning platform a bit 2024-03-11 15:52:10 -04:00
3dc2ae4dd2 fix arrow palette on boss hud 2024-03-11 15:47:37 -04:00
eabc01e512 TURNIWOOD REVOLUTION!!! 2024-03-11 15:37:49 -04:00
7993b1d4e5 make arrows follow player's palette :) 2024-03-09 13:52:12 -05:00
f1ad9d5825 palette textures! working with palettes will be a breezegit status! 2024-03-08 20:21:25 -05:00
7974ac26c4 fix sleet's name 2024-03-08 20:21:25 -05:00
pennyrigate
b032eea7ea more palette stuff 2024-03-08 20:18:37 -05:00
pennyrigate
f88e8e0110 removed some electric tiles 2024-03-08 20:18:24 -05:00
pennyrigate
dbd2d47202 made some jingles :))) 2024-03-08 17:44:08 -05:00
pennyrigate
bf4c85fe44 more voices 2024-03-08 17:44:08 -05:00
72733db609 fix most of the script errors and warnings, fixed a couple tiny bugs in the process :) 2024-03-08 15:11:48 -05:00
9435089f21 show deaths on marathon results, fix fade visual bug 2024-03-08 13:34:00 -05:00
d62e08745f bypass boss progression locks in debug save 2024-03-08 13:17:52 -05:00
0e63883cdd fix unfocused animations in more places 2024-03-05 22:16:59 -05:00
0bae67fd3b more work on final boss 2024-03-05 22:03:51 -05:00
3e3b327f5e no level restart/select shenanagins during the grand marathon 2024-03-05 18:46:37 -05:00
d06acf2522 the start of marathon mode 2024-03-05 18:20:32 -05:00
83f0bccd9a remove some stray random prints 2024-02-29 01:26:56 -05:00
7ffdbf6219 set up famira for proper spriting 2024-02-29 01:19:44 -05:00
3ff2f837d8 disable sg2083 and pan camera over to fami when defeated 2024-02-29 00:40:38 -05:00
12d6adaf94 improve famira death animation 2024-02-29 00:19:54 -05:00
ded320d2dc make actual death animation for fami 2024-02-29 00:06:30 -05:00
06a4541f27 load current palette in palette select 2024-02-29 00:06:18 -05:00
3f7da8aa83 expand level select menu, implement palettes fully :) 2024-02-28 14:31:42 -05:00
923b638cca initial work on palette selection + load palette from save 2024-02-28 02:35:58 -05:00
dc8408c646 fix minor error in new tileset 2024-02-28 01:57:49 -05:00
5649f97720 new canopy tileset 2024-02-28 01:45:13 -05:00
96b2b2a804 pause on unfocused 2024-02-27 23:34:27 -05:00
0fadeb7998 pause cutscenes when unfocused 2024-02-27 22:59:40 -05:00
2da5935c3b implement rest of options, including CRT/LCD filter! 2024-02-27 22:35:28 -05:00
e0e56d3ffa add energy mechanic to sg2083 2024-02-27 22:12:30 -05:00
fd10cfca8c make fami cutscene skipable 2024-02-27 22:12:00 -05:00
5e8ebcd3d0 fix slight weirdness in menu SG's blink 2024-02-27 21:00:54 -05:00
24f763d3f6 add new options screen to main menu and pause screen 2024-02-27 20:57:14 -05:00
9333d5a61f select last-played level on level select screen 2024-02-27 20:29:00 -05:00
824b8751dc fix debug save 2024-02-27 20:28:28 -05:00
90d0ec86c0 fix bug world a little 2024-02-27 20:13:12 -05:00
39fdf11807 boss variant of hud 2024-02-27 20:04:51 -05:00
3693b99bfc always save time and deaths 2024-02-27 19:51:04 -05:00
74fd1ec4f2 make debug save only exist in debug and not count for continue button 2024-02-27 19:39:49 -05:00
bfbc0dfd2b global takeover of transition_speed variable 2024-02-27 19:26:35 -05:00
ddafe49d12 ability to leave level select for main menu 2024-02-27 19:22:25 -05:00
470857ecfa make options screen always save changes 2024-02-27 19:21:21 -05:00
262690f237 level select improvements: shard count, locations for missing bosses and beta levels 2024-02-27 18:53:14 -05:00
e2a45fafda make shard requirements depend on difficulty, assign better defaults lol 2024-02-26 22:55:25 -05:00
87973f77e0 tie fami cutscene into boss3 level 2024-02-26 18:34:58 -05:00
7cf99cb510 ability to set background color in electricity shader 2024-02-26 17:02:48 -05:00
79294c0098 fix electricity shader noise resetting every second 2024-02-26 15:35:59 -05:00
f0a6cb49f3 add final boss to level select, make bullets hurt famira 2024-02-26 15:11:27 -05:00
c28e105e78 enforce level progression 2024-02-12 01:00:08 -05:00
21181a24c8 boss3 health bars 2024-02-12 00:03:10 -05:00
1274e989b4 famira can die 2024-02-05 16:49:45 -05:00
5b520f0a46 more finalboss workd 2024-02-04 21:57:28 -05:00
63b24cb614 chicken man 2024-02-03 02:02:25 -05:00
a7f5ad6db2 fix explosions on big mechs a little 2024-02-02 22:14:28 -05:00
24a2e5e4ab make player player player player player player player player player player player player player player player player player player player palyer player player player player player player player player player 2024-01-29 19:13:12 -05:00
f6248630d2 make stars look a little more underwater in abyss 2024-01-29 17:00:24 -05:00
pennyrigate
d16f59d6d1 removed demo text 2024-01-16 14:46:24 -05:00
pennyrigate
3cd791388d fixed 3 pixel thick outline 2024-01-16 14:44:59 -05:00
pennyrigate
7fb4c77a08 penny haze and ivy voice lines 2024-01-16 14:39:34 -05:00
8e9ecc9ed2 add a silly cheatcode 2024-01-16 03:31:40 -05:00
4848dca875 revisit abyss lighting. make bullet fish, stars, and shards draw at full brightness as they glow in the depths. 2024-01-16 03:22:17 -05:00
70ef1a8450 basic implementation of input remapping 2024-01-15 18:00:03 -05:00
5f2b3c6d5e add name to new border 2024-01-15 14:23:20 -05:00
pennyrigate
4933287570 new logo 2024-01-02 03:14:27 -05:00
pennyrigate
cdb1a9250b fixed bug where pausing after collecting a shard would play 2 songs at once 2024-01-02 03:04:22 -05:00
pennyrigate
833ef2056a ducking now works with the stick 2024-01-02 03:04:00 -05:00
pennyrigate
f0e4d71489 new border 2024-01-02 02:48:01 -05:00
pennyrigate
460e783c99 penny and haze title screen 2024-01-02 02:47:24 -05:00
983245368d fix some msx diving graphics 2023-12-29 03:10:44 -05:00
ccb4e30d39 msx goes down into the sewer 2023-12-29 02:58:34 -05:00
pennyrigate
90c51d8ce7 fixed sound sound test crash (fixes #192) 2023-12-26 22:24:05 -05:00
pennyrigate
8088322761 adjusted key sound 2023-12-26 21:52:13 -05:00
pennyrigate
a07d929c4c msx off level indicator 2023-12-26 21:42:56 -05:00
403924d210 aescending key pitch 2023-12-26 21:17:04 -05:00
pennyrigate
2774decaf9 begun work on msx off level indicator 2023-12-26 21:15:04 -05:00
pennyrigate
137f5ff414 fixed credits 2023-12-26 19:05:56 -05:00
pennyrigate
5026b8eb8f touched up team sg splash 2023-12-26 18:32:39 -05:00
pennyrigate
ef54e27c93 removed built in godot splash 2023-12-26 18:29:29 -05:00
pennyrigate
d9f7eaaede more ms.x work 2023-12-26 17:58:57 -05:00
pennyrigate
e03cede4bb come here 2023-12-26 17:58:57 -05:00
fe9f682818 implement splash screens 2023-12-25 15:23:27 -05:00
pennyrigate
62885d32cb msx dialogue 2023-12-25 01:52:03 -05:00
pennyrigate
afc233c3c2 made land sound louder 2023-12-25 01:24:25 -05:00
27bb8429df replace landing sound 2023-12-25 01:10:15 -05:00
263d6219cc Marisa Rigate's Big Commit: Disaster Averted! 2023-12-25 01:01:59 -05:00
1215099f4d add sparkles to cave ores 2023-12-24 22:58:39 -05:00
e9583ecada implement level requirements (closes #206) 2023-12-24 22:38:17 -05:00
f263ce7842 add completion requirements and flag to level data and save 2023-12-24 21:23:28 -05:00
pennyrigate
885082c7c4 extended sg spritesheet 2023-12-03 23:27:53 -05:00
5893106174 fix broken drowning 2023-12-03 22:46:10 -05:00
pennyrigate
4b53044f9f converting sg to spritesheet 2023-12-03 22:30:33 -05:00
0bc9d18762 allow climbing smoothly across ladder boundaries (closes #216) 2023-12-03 21:44:31 -05:00
pennyrigate
b925b22333 made it so certain cheats disallow you from submitting scores (fixes #215) 2023-12-02 22:04:25 -05:00
pennyrigate
ee3e1dc650 added cave scholar to level data 2023-12-02 21:39:56 -05:00
pennyrigate
60c054acc3 fixed upside down spike tile 2023-11-30 00:40:51 -05:00
pennyrigate
46b0f5b2a6 oops committed everything at once! 2023-11-29 23:52:31 -05:00
51677cd402 make sparkles a little less frequent 2023-11-29 23:32:13 -05:00
24e25d6757 SPARKLES OMG 2023-11-29 20:11:34 -05:00
pennyrigate
3fe77e0052 decorated cave and fixed some ladder issues 2023-11-29 19:41:29 -05:00
pennyrigate
b885599165 cave almost done 2023-11-29 19:38:41 -05:00
59b8047181 new cave background 2 2023-11-29 19:34:37 -05:00
pennyrigate
b54f7e986c more cave stuff 2023-11-29 19:10:21 -05:00
pennyrigate
27c08c8e4e more work on cave 2023-11-29 17:16:46 -05:00
pennyrigate
247bc011bc made flowers in hills less dense 2023-11-29 16:46:57 -05:00
pennyrigate
21c68de88f stalactite wiggle 2023-11-28 02:56:42 -05:00
pennyrigate
8f14ca22cb more cave details 2023-11-28 02:47:25 -05:00
pennyrigate
a9350a3991 dancing mushrooms and flowing seaweed! 2023-11-27 23:03:29 -05:00
29ea139f1b fix another silly did not update references to moved files crash 2023-11-26 18:27:26 -05:00
ed28f741e7 re-hide statechart debug 2023-11-26 17:46:46 -05:00
e5b4fa05b0 fix softlock with respawn animation 2023-11-26 17:45:30 -05:00
pennyrigate
cd444e84c1 redrew flowers 2023-11-26 04:09:49 -05:00
pennyrigate
bddfcc0267 added grabbable sides to ladders 2023-11-26 00:25:43 -05:00
pennyrigate
014d8e9a78 added rays to mountain sunset 2023-11-26 00:25:28 -05:00
pennyrigate
efd9b9abf2 touched up mountain tiles 2023-11-26 00:23:42 -05:00
pennyrigate
328dd06a1d fixed bug where you could pause and go to debug level select durinh game over slowdown 2023-11-25 23:27:06 -05:00
pennyrigate
b0d4bff070 more work on neo blue ray cavern 2023-11-25 22:15:58 -05:00
pennyrigate
5f4939430d adjusted some lore entries 2023-11-25 22:15:58 -05:00
pennyrigate
fc7b6c1722 adjusted position 2023-11-25 22:15:57 -05:00
a9c7106c3b fix teleporter graphics in name entry 2023-11-25 19:38:47 -05:00
8299648c98 allow switching sides of ladder (implements #212) 2023-11-25 19:02:35 -05:00
cb6a9e13f4 respawn animation (implements #213) 2023-11-25 18:40:39 -05:00
pennyrigate
7cc669e813 a NEW game mechanic?? 2023-11-24 21:44:12 -05:00
pennyrigate
c4da203de7 falling block not interactable while flashing 2023-11-24 21:43:32 -05:00
pennyrigate
e0a43e69a0 more credits stuff 2023-11-24 18:09:04 -05:00
pennyrigate
b235abbd70 more work on cutscenes 2023-11-21 22:20:41 -05:00
pennyrigate
3498db5051 boss2_arena spikes no longer bloodstainable 2023-11-21 21:33:30 -05:00
6888928fbb starting work on final boss fight 2023-11-21 21:23:28 -05:00
pennyrigate
34a466ae71 turning platforms are now one way 2023-11-21 21:22:33 -05:00
pennyrigate
0e32c44c46 steam is now more forgiving 2023-11-21 21:21:27 -05:00
pennyrigate
dc730827f1 made spikes not bloodstainable + level touchups 2023-11-21 21:21:04 -05:00
pennyrigate
a9be4be0d1 more cutscene work 2023-11-21 18:12:29 -05:00
pennyrigate
c45c9120c8 fixed speccy being misaligned 2023-11-21 18:12:15 -05:00
pennyrigate
b7960f82c0 sg lore entry uses palette 2023-11-21 18:11:42 -05:00
pennyrigate
33b8e191f3 some ending stuff and new hills background 2023-11-12 22:49:09 -05:00
pennyrigate
948ecb97c7 fixed issue where player land sound and vibration play on frame 1 2023-11-12 22:49:09 -05:00
b0bb26a81b initial work on sg2083 controls 2023-11-06 15:40:16 -05:00
69d6a4b4f7 progress on new options screen 2023-11-06 15:40:16 -05:00
6ed5743144 improve gale sg border 2023-11-06 15:40:16 -05:00
pennyrigate
7cb7946584 rocks splash (fixes #210 fixes #211) 2023-11-06 00:23:29 -05:00
pennyrigate
4e042386f7 switched to button down 2023-11-06 00:20:11 -05:00
pennyrigate
8afbb0f7f5 fixed issue where indicator showed up on frame 1 2023-11-05 23:45:33 -05:00
pennyrigate
9a08b79c2c fast punishment 2023-11-05 21:42:52 -05:00
pennyrigate
ae41ff0917 fixed error where left bouyndary was extra big 2023-11-05 21:42:42 -05:00
pennyrigate
0904099c5a lcd filter not automatically enabled 2023-11-05 21:31:29 -05:00
pennyrigate
b073452805 fixed lcd filter (fixes #207) 2023-11-05 21:28:46 -05:00
pennyrigate
82cc54fa26 sus cheat (fixes #209) 2023-11-05 21:24:47 -05:00
pennyrigate
436c604849 sg 2083 2023-11-05 21:07:16 -05:00
pennyrigate
dfc203fa41 did credits 2023-11-01 18:22:38 -04:00
pennyrigate
bb531795f5 fixed some palette errors 2023-10-30 14:26:18 -04:00
pennyrigate
b9aec6ac38 made script to recolor graphics representing sg (fixes #208) 2023-10-30 14:26:02 -04:00
pennyrigate
8b1ccd366f indicator for if sg is off the top of the screen 2023-10-30 12:32:37 -04:00
pennyrigate
ae0e52f506 new level select arrow 2023-10-30 12:32:12 -04:00
pennyrigate
d40970d590 fixed respawn points 2023-10-30 12:31:13 -04:00
pennyrigate
53f21bdf1e 'settings' changed to 'options' 2023-10-30 11:16:35 -04:00
pennyrigate
e52dc56d7b adjusted colors 2023-10-30 11:16:06 -04:00
3f2c9e1cc3 here come the gays 2023-10-30 11:07:52 -04:00
pennyrigate
4a34248d73 some level design tweaks 2023-10-30 01:25:12 -04:00
pennyrigate
21cfcc49d7 squig ink WILL cause cancer 2023-10-30 01:24:42 -04:00
pennyrigate
c67775290d enter no longer pauses 2023-10-30 01:23:55 -04:00
pennyrigate
6bc9c83b95 added bug world (fixes #194) 2023-10-29 19:28:25 -04:00
78e44e262c experimental smaller encoding of all audio 2023-10-25 14:42:29 -04:00
b57b7dd7cd use current palette in sg lore (closes #202) 2023-10-25 13:49:49 -04:00
cb2c2991d5 fix broken renames.. 2023-10-25 13:44:21 -04:00
pennyrigate
8e2946c3cd finished lore entries! (fixes #101) 2023-10-24 23:25:22 -04:00
pennyrigate
892d3c7f2c graffiti! 2023-10-24 23:25:22 -04:00
26d5806061 drowning fixes (closes #147) YIPEE!!! :) :) :) 2023-10-24 20:33:50 -04:00
2ca88e511f cheesy demise 2023-10-24 20:10:25 -04:00
7a12628fa3 new borders 2023-10-24 20:09:29 -04:00
pennyrigate
624739a970 mkey sound and level design adjustments 2023-10-18 13:35:22 -04:00
3cfcc4eef7 fix restart+game over crash 2023-10-16 17:49:07 -04:00
8b5b68b338 fix crash when pausing with no lore entries 2023-10-16 17:35:18 -04:00
cbc2ed6b78 make stomp a bit better 2023-10-16 16:51:09 -04:00
46578f033f STG-2600 death animation. 2023-10-16 11:21:49 -04:00
f61dbb3d32 make game over fade out on exit to map 2023-10-16 09:32:14 -04:00
1e472333a5 scrump projectile disapear on collision and better disappear graphics (closes #190) 2023-10-16 09:29:44 -04:00
f3d5446d66 canopy background, not rough draft edition 2023-10-15 17:06:53 -04:00
10216b4e3d switchable lore entries (closes #176) 2023-10-15 16:30:31 -04:00
pennyrigate
6c00959941 worked on more lore 2023-10-15 03:03:20 -04:00
pennyrigate
440695634f made pause loop 2023-10-15 00:35:49 -04:00
pennyrigate
8434f20934 fixed dependency 2023-10-15 00:31:44 -04:00
pennyrigate
4570202be4 ms. x lore 2023-10-15 00:27:05 -04:00
pennyrigate
c6f6dcfc0c *snip* 2023-10-14 20:20:42 -04:00
pennyrigate
8d279d6d14 made select go to debug level select 2023-10-14 20:19:04 -04:00
ff223ce786 make newly created save file actually take effect 2023-10-14 19:33:09 -04:00
9c507a9b4f reduce shader time rollover to 240 seconds and alter shaders to accomodate (closes #198) 2023-10-14 17:06:52 -04:00
bd12aa68c1 splash particlesgit status 2023-10-14 16:14:15 -04:00
002737706b make player TRULY intangible when dying/teleporting 2023-10-14 13:09:58 -04:00
d1d8ff89e4 fix souls that are underblood 2023-10-14 13:09:27 -04:00
175670455f fix time bonus giving you 2500 or nothin' 2023-10-14 10:35:16 -04:00
95cb7ee138 integrate scoreboards into main menu (closes #195) 2023-10-14 10:26:10 -04:00
481edb15b7 unity of scores (closes #196) 2023-10-14 09:52:45 -04:00
eda2db4a3a fix 100% detection 2023-10-13 21:07:41 -04:00
1838605be3 fix exit not having requirement 2023-10-13 21:07:32 -04:00
9d6e68907c set up scoreboard ids for all levels 2023-10-13 18:29:30 -04:00
7e83f2feaf include ngio.ini in exports 2023-10-13 18:18:07 -04:00
a415f4158a autodetection of newgrounds.com login 2023-10-13 18:17:52 -04:00
5610401840 score submission :) 2023-10-13 17:54:12 -04:00
f7581231e8 scoreboard screen slight refactor 2023-10-13 16:26:37 -04:00
644748463c newgrounds login system :) 2023-10-13 16:26:37 -04:00
penelope
a205fc3008 new jump and double jump sounds 2023-10-13 14:47:34 -04:00
4b58c56473 repair broken references to .wav files 2023-10-13 14:38:37 -04:00
377b7b2211 scoreboards screen implemented! 2023-10-13 01:23:14 -04:00
4fa7f1ff56 remove multi-dispatch code, not that useful to us 2023-10-12 23:17:20 -04:00
c5a3a002b6 layout of scoreboards menu 2023-10-12 22:08:56 -04:00
92b4dbe5a8 basic newgrounds.io network protocol support 2023-10-12 22:02:57 -04:00
cf5064f9eb fix messed up track in RESET animation 2023-10-12 19:52:16 -04:00
35ad2e1f2d outlined 2nd puberty 2023-10-11 21:33:25 -04:00
a5cea08767 initial work on level select statistics popup 2023-10-11 13:27:34 -04:00
cf54fd2eca teleporting sound 2023-10-11 11:18:33 -04:00
314b365f7f Nothing personnel, milliseconds... 2023-10-11 00:08:47 -04:00
pennyrigate
b8d9a9e935 landing sound 2023-10-09 15:46:39 -04:00
pennyrigate
28c5dd991d final score 3d text is loaded during fade in to make performance issues on MY PC less noticeable 2023-10-09 15:46:39 -04:00
6111fec2d9 big explosion for stg death 2023-10-09 14:08:14 -04:00
pennyrigate
832191e99c converted sounds to ogg (fixes #188) 2023-10-09 01:50:59 -04:00
pennyrigate
687bf87df9 fixed burnt out dependency (fixes #191) 2023-10-09 01:11:30 -04:00
pennyrigate
c832346c62 added more detail 2023-10-09 01:00:21 -04:00
pennyrigate
9f89fccd64 menu sounds play from Audio.tscn, fixing certain selections not making any noise 2023-10-09 00:53:18 -04:00
pennyrigate
bc75c3fd50 added SCORE: before score 2023-10-09 00:52:47 -04:00
pennyrigate
aab9a99f25 set loop points for music (fixes #171) 2023-10-09 00:29:53 -04:00
pennyrigate
876dabddda cfox cheat works now (fixes #187) 2023-10-08 21:43:13 -04:00
pennyrigate
17aabe2eb9 WHATS THAT SMELL 2023-10-08 21:35:01 -04:00
pennyrigate
b5e75bb509 removed kill bonus (fixes #153) 2023-10-08 21:19:38 -04:00
pennyrigate
999bd4f143 fixed slight background tile error 2023-10-08 21:18:54 -04:00
pennyrigate
de2e33a87a every stage is bloodstainable (fixes #183) 2023-10-08 21:06:15 -04:00
pennyrigate
4e98108935 made all water tiles appear above the player 2023-10-08 21:05:34 -04:00
pennyrigate
e5d12c4c43 final score sounds 2023-10-08 20:09:27 -04:00
pennyrigate
f136dc4740 wonderful 2023-10-08 20:08:54 -04:00
pennyrigate
1c1021c3d2 changed timing on 3d text 2023-10-08 20:08:31 -04:00
pennyrigate
81bcfdc34c RESULTS SCREEN 2023-10-08 19:28:54 -04:00
pennyrigate
435855cd5b begin work on results screen 2023-10-08 19:27:18 -04:00
pennyrigate
e4168e1260 made shard on small platform easier 2023-10-08 19:27:18 -04:00
pennyrigate
868b949123 made blue star easier 2023-10-08 19:27:18 -04:00
599117a23a make menu sounds chromatic unless you go enough times 2023-10-08 18:56:56 -04:00
899a985643 level complete victory sound 2023-10-08 18:21:23 -04:00
a7f00ddde7 more level complete stuff (3d text) 2023-10-08 17:13:32 -04:00
172ecd3235 fix turtles breaking after restart :/ 2023-10-08 16:16:24 -04:00
071ff439b9 make turtles use super slime logic instead (fixes #146) 2023-10-08 16:03:52 -04:00
298e31c5d5 musical menu sounds :) 2023-10-08 13:29:35 -04:00
pennyrigate
b4952da4d8 de-essed intro 2023-10-07 21:57:20 -04:00
pennyrigate
f7d436b5b8 comma 2023-10-07 21:57:20 -04:00
c25382dd83 exit teleport animation :) 2023-10-07 21:43:05 -04:00
a03a1d8f6d make exit collision match more with graphics 2023-10-06 15:17:36 -04:00
aa00590334 fix exit in name entry 2023-10-06 15:16:48 -04:00
5ffd99fb08 robots have oil, not blood 2023-10-06 14:52:37 -04:00
fe09f34bf8 fix collection bonus 2023-10-06 14:24:09 -04:00
pennyrigate
2b37a68f14 INTRO VOICEOVER 2023-10-05 22:25:32 -04:00
pennyrigate
b88f212ba1 deaths counter starts at zero even during fade in (fixes #177) 2023-10-05 22:25:32 -04:00
e256cc15cb new exit graphics 2023-10-05 19:45:05 -04:00
caa33c0592 fix last save loading 2023-10-05 19:45:05 -04:00
pennyrigate
035bd68980 game over screen 2023-10-05 18:49:07 -04:00
pennyrigate
e49de76c47 made first jump a little easier 2023-10-05 18:48:37 -04:00
pennyrigate
12ea0b0b72 begin work on game over screen 2023-10-03 04:08:55 -04:00
pennyrigate
01cca79c79 adjusted menu sounds volume 2023-10-03 03:55:56 -04:00
pennyrigate
394f53585e pause music 2023-10-03 03:55:16 -04:00
pennyrigate
cf8bfa6210 moved bubbles on top of first screen so they dont pop 2023-10-01 00:49:05 -04:00
pennyrigate
5e625630fe added new moon trail 2023-10-01 00:48:12 -04:00
pennyrigate
8d845c9def adjusted O2 length (fixes #170) 2023-10-01 00:47:11 -04:00
pennyrigate
0a0b3e2f42 added menu sounds 2023-09-30 23:13:36 -04:00
pennyrigate
76f68b59b6 added klystron vip to stg-2600 fight 2023-09-30 23:12:09 -04:00
pennyrigate
d2cf53e5e1 made the falling blocks lab falling blocks 2023-09-30 22:52:13 -04:00
pennyrigate
935c47a46e implemented 3d text and fixed timer not working 2023-09-30 22:51:45 -04:00
pennyrigate
393b4b26c8 made beating the boss boot you to level select scholar instead of debug level select 2023-09-30 22:51:12 -04:00
pennyrigate
0acf955e60 added intro cutscene 2023-09-30 22:16:27 -04:00
pennyrigate
de38a0f5d9 added continuous collision detection and removed print statement 2023-09-30 22:16:27 -04:00
pennyrigate
140116bb30 minor wording change 2023-09-30 22:16:27 -04:00
3406a0617e fix arrow jumping issue (fixes #117) 2023-09-29 16:42:10 -04:00
1258a0e427 stained with your own blood?!?!?! LUDICROUS!!! 2023-09-29 15:13:21 -04:00
a77860ca41 smokestack mark II 2023-09-29 15:13:21 -04:00
pennyrigate
235616a281 new menu sounds 2023-09-29 15:10:01 -04:00
pennyrigate
1a7c40f688 made some changes :) 2023-09-26 20:56:08 -04:00
d3e402bb5b they say i'm the best at handling balls 2023-09-21 18:41:23 -04:00
a40347a52f killing is a messy business 2023-09-21 18:41:23 -04:00
pennyrigate
19465f37ca more difficulty adjustments 2023-09-20 14:57:34 -04:00
pennyrigate
600d469cf0 new arrow collect sound 2023-09-20 14:07:06 -04:00
pennyrigate
cca3331d4b whisper 2023-09-20 14:06:36 -04:00
pennyrigate
dbc046d34c RESIDENT REVOLUTION 2083 2023-09-20 01:44:28 -04:00
pennyrigate
d82b2632fa new penny take 2023-09-20 01:44:01 -04:00
pennyrigate
b464f12024 difficulty adjustments 2023-09-19 12:39:44 -04:00
pennyrigate
ad7391811b fixed turchins 2023-09-19 12:32:05 -04:00
pennyrigate
259fc5ce76 fixed shmeconds 2023-09-19 10:16:07 -04:00
pennyrigate
245abf90f3 credit revisions 2023-09-19 07:59:38 -04:00
pennyrigate
00151e1a0d fixed daytime title screen 2023-09-19 07:59:37 -04:00
pennyrigate
5c19e60cef added pong 2023-09-19 07:59:37 -04:00
bdc3000760 blood holds no right to vote in this society 2023-09-18 17:15:55 -04:00
4a3f1a7ac3 no more zombie save files 2023-09-18 17:14:52 -04:00
pennyrigate
f97c611b61 other half of collection bonus checks for 5 shards instead of 5 keys 2023-09-17 03:19:57 -04:00
pennyrigate
4590d6e7fb finished lab 2023-09-17 03:09:09 -04:00
pennyrigate
27c8407992 new title screen 2023-09-17 03:08:55 -04:00
pennyrigate
0356dcf2b2 50 keys cheat 2023-09-17 03:07:50 -04:00
pennyrigate
c496455393 made green for more visibility 2023-09-17 03:07:28 -04:00
pennyrigate
9d1bdc262c uhh credits 2023-09-17 03:06:19 -04:00
pennyrigate
f9cea973cb begin work on credits 2023-09-17 03:05:57 -04:00
pennyrigate
fb8fddb57f added key toll 2023-09-17 03:05:25 -04:00
pennyrigate
ea4d34988e cool new title screen 2023-09-16 02:42:32 -04:00
pennyrigate
08da671afa good job! 2023-09-16 00:59:21 -04:00
pennyrigate
e310f9b1ee adjusted spike hitbox 2023-09-16 00:58:00 -04:00
fd2d7e73d8 yummy 2023-09-16 00:49:09 -04:00
2c6dfcf5d8 correct figure 8 in pause screen 2023-09-15 23:44:27 -04:00
pennyrigate
33b41c267b fixed super slime again 2023-09-15 23:28:00 -04:00
b73ed13df3 slimes are messy too 2023-09-15 22:57:40 -04:00
bc079d58f2 change electrified tiles design 2023-09-15 22:45:46 -04:00
39b28d3554 reset stains on map change 2023-09-15 22:45:02 -04:00
6f6c5d06e1 bloodstain improvements. work during pause for player, vastly more efficient 2023-09-15 22:16:30 -04:00
pennyrigate
686b57f798 more work on lab 2023-09-15 21:29:46 -04:00
pennyrigate
ffba0c6620 made archers and roboturrets syncable 2023-09-15 21:29:46 -04:00
pennyrigate
902ec2c4a9 bug world text 2023-09-15 21:29:46 -04:00
pennyrigate
acecd4eb83 adjusted spike block hitbox 2023-09-15 21:29:45 -04:00
pennyrigate
6084cd8a14 adjusted timing 2023-09-15 21:29:45 -04:00
pennyrigate
b0795001c0 BUG WORLD :D 2023-09-15 21:29:45 -04:00
9ff570e869 make electrified thing stainable 2023-09-14 21:37:48 -04:00
pennyrigate
0aa328fb59 new spike graphics + lab falling block 2023-09-12 01:15:00 -04:00
pennyrigate
519670e0cd fixed roboturret turning when seeing blocks 2023-09-12 01:14:59 -04:00
pennyrigate
1c232945dc new shoot sound 2023-09-12 01:14:58 -04:00
pennyrigate
689605ce4f fixed flashing pixel on snail 2023-09-12 01:14:58 -04:00
48af9875b5 fix drowning always softlocking 2023-09-11 16:45:47 -04:00
8264c9c1b8 It's blood. 2023-09-11 16:23:13 -04:00
8c818ac174 What's that smell? 2023-09-10 23:26:21 -04:00
dde551db56 arrows bonus 2023-09-10 23:18:56 -04:00
e2b3db0b93 game.gd cleaning and partial results screen implementation 2023-09-10 19:34:04 -04:00
pennyrigate
b126484109 NO MORe Autoplay 2023-09-10 19:23:39 -04:00
pennyrigate
24d94821e0 added 3D Text anims 2023-09-10 19:19:13 -04:00
pennyrigate
fe0c126d47 more work on lab 2023-09-10 19:19:13 -04:00
Haze Weathers
54b3e3c1e2 some mech juice (eww?) 2023-09-09 17:54:59 -04:00
Haze Weathers
d2a777f47c 3d text scene 2023-09-09 13:02:01 -04:00
Haze Weathers
762205b006 scale3x... 2023-09-08 22:51:40 -04:00
Haze Weathers
004e22e3b5 fix stg animation reset 2023-09-08 22:13:27 -04:00
Haze Weathers
d87ff6531c STG-2600 redraw 2023-09-08 22:11:48 -04:00
pennyrigate
d215a8728a being work on results screen 2023-09-08 20:47:33 -04:00
pennyrigate
0693bd91d3 started work on lab 2023-09-08 15:39:13 -04:00
pennyrigate
398e39ff1b fixed collapse bug 2023-09-04 05:49:28 -04:00
pennyrigate
4b7db186c7 tweaked far side of level 2023-09-04 05:49:02 -04:00
pennyrigate
8b831ea616 scrump sounds and more work on stg2600 2023-09-01 18:38:58 -04:00
pennyrigate
ba12787fcb menu sounds 2023-08-26 21:52:26 -04:00
pennyrigate
098ab161de sped up name entry, added delete, and max char limit 2023-08-26 21:12:30 -04:00
pennyrigate
62e6e23d94 eye is now centered 2023-08-23 19:11:22 -04:00
pennyrigate
362ff7f6ee added ground to the scrump fight 2023-08-23 19:11:06 -04:00
pennyrigate
0a4d9995d0 began work on STG-2600 2023-08-22 23:01:19 -04:00
pennyrigate
c3b6ef3467 removed print 2023-08-22 23:01:19 -04:00
pennyrigate
4c888d5413 animated the scrump (fixes #143) 2023-08-22 23:01:19 -04:00
Haze Weathers
c7a310c0a4 superslime rev2 2023-08-22 15:45:07 -04:00
pennyrigate
dab7b58504 removed junk tiles from hills 2023-08-22 14:46:39 -04:00
pennyrigate
31a71a542d added rumble and pixel snap 2023-08-22 14:46:11 -04:00
pennyrigate
12eadd86e8 adjustments in abyss 2023-08-15 21:21:51 -04:00
pennyrigate
c2792083ca ladder jump replaced with normal jump 2023-08-03 23:09:31 -04:00
pennyrigate
be26a5c6ec renamed Map2 back to Map 2023-08-03 23:09:12 -04:00
pennyrigate
735b386b84 touched up abyss and hills 2023-08-03 22:46:25 -04:00
pennyrigate
109f4347ba bubbelk 2023-08-03 22:46:25 -04:00
pennyrigate
48cc91ae26 fixed stick input 2023-08-03 22:46:25 -04:00
pennyrigate
fa7352bc73 begun work on lab 2023-08-03 22:46:25 -04:00
acf9628d4c turtle: option for direction turtle can spike 2023-08-03 21:12:26 -04:00
pennyrigate
8ba46dc705 put more text on menus 2023-07-27 22:33:03 -04:00
pennyrigate
f14e8ebdd0 added sound test 2023-07-24 19:21:04 -04:00
pennyrigate
79667b593c added support for left stick movement 2023-07-24 19:21:03 -04:00
pennyrigate
8ed3375a90 edge detector repositioned (fixes #124) 2023-07-24 19:21:03 -04:00
7b0d520d1f difficulty descriptions 2023-07-21 21:19:18 -04:00
dd31a1764f logo concept 2023-07-21 21:00:29 -04:00
c5e2d52fb8 fix file create screen 2023-07-20 18:25:49 -04:00
f7496c5e6f file select and file creation, menus glued together 2023-07-20 18:21:59 -04:00
13708b4046 death of the super slime 2023-07-20 08:56:50 -04:00
8f2b42f968 SUPERSLIMES 2023-07-20 00:09:18 -04:00
3b835b78f1 make death liquids not cause blood splatter (closes #140) 2023-07-13 11:41:10 -04:00
5a73af8887 eel waving animation capability 2023-07-13 11:18:20 -04:00
a8906f82f0 eel chompy animation 2023-07-13 11:03:19 -04:00
10a18a014e slightly enlarge player hitbox so that tiles can be collided with and killed by at same time 2023-07-11 16:57:29 -04:00
be2008163d laboratory tiles and electrification shader 2023-07-11 16:57:02 -04:00
pennyrigate
cb5f9284cf revolution 2083 2023-07-09 02:10:00 -04:00
pennyrigate
b29fe4068b verdant hills redesign done 2023-07-09 02:08:22 -04:00
pennyrigate
57db1e5327 changed slime hitbox 2023-07-09 01:32:21 -04:00
pennyrigate
8e3817690c gave hills tiles collision 2023-07-09 01:28:21 -04:00
pennyrigate
f832cc739f adjusted abyss 2023-07-08 21:05:10 -04:00
ef41940949 clean up and comment eel.gd 2023-07-08 11:54:24 -04:00
99a9595413 fix turtle script error when killed while not spiking 2023-07-08 11:54:01 -04:00
1f77bc4513 comment save.gd and add format version 2023-07-08 11:31:35 -04:00
e524faba5f comment rolling fiend 2023-07-08 10:57:08 -04:00
ed32a378c4 add palette-cycling cheat (closes #126) 2023-07-08 01:36:08 -04:00
8d3373e771 fool that pesky ol' oxygen timer into rendering on a higher z-layer :3 (closes #129) 2023-07-08 01:09:20 -04:00
ae83195868 position-based turtle spiking (closes #135) 2023-07-08 00:52:45 -04:00
311528e6ed fix ladder jump bug (closes #132) 2023-07-04 12:11:51 -04:00
f2ff65807a verdant hills tileset: scholar of the first bear n burd graphic 2023-07-04 00:54:46 -04:00
pennyrigate
f81b0fd7a6 nightcore cheat is true nightcore 2023-07-03 23:25:34 -04:00
pennyrigate
86b5dbb018 reimplemented coyote time 2023-07-03 23:25:14 -04:00
pennyrigate
3c4d8f07ab fixed camera in canopy 2023-07-03 23:24:48 -04:00
pennyrigate
cf3550bb9a new lighter water 2023-07-03 17:05:24 -04:00
pennyrigate
b3dadff025 sg can now always control themself in air 2023-07-03 17:05:23 -04:00
2974cce19e disable collision while drowning (fixes #133) 2023-06-30 19:03:42 -04:00
pennyrigate
85478370b4 fixed problem where sg could 3 block jump into the next screen 2023-06-30 18:44:35 -04:00
pennyrigate
7ea93b421f fixed issue #138 2023-06-30 18:38:57 -04:00
pennyrigate
15375271f6 fixed centering on debug level select 2023-06-30 18:11:02 -04:00
pennyrigate
b80a218f04 value variable obselete, removed 2023-06-30 18:11:02 -04:00
5748c48c71 death count 2023-06-30 13:46:39 -04:00
11286539c6 leave edge state if no longer on edge (moving platform against wall pushes SG back onto platform, etc) 2023-06-30 13:18:04 -04:00
75a1091ce8 disable ladder dismount while pressing towards ladder (closes #128) 2023-06-30 13:13:01 -04:00
63840a3199 set player down slightly when walking off edge (fixes #122) 2023-06-30 12:28:46 -04:00
9a3a62d16b make pushing need horizontal input (fixes #123) 2023-06-30 12:23:34 -04:00
494916361b fix eel border z-index 2023-06-30 12:11:07 -04:00
pennyrigate
843561915c fixed a few bugs with drowning 2023-06-30 06:00:29 -04:00
pennyrigate
13f01397ef new title 2023-06-30 05:59:57 -04:00
pennyrigate
5ab0883cdb bubbles take a second before they can pop 2023-06-30 05:59:36 -04:00
pennyrigate
cdaa5f84bd abyss is pretty much done 2023-06-30 05:58:59 -04:00
pennyrigate
36707573ed add drown cheat 2023-06-30 05:58:25 -04:00
723d596893 make everything use new difficulty system 2023-06-29 23:40:38 -04:00
99f46651f9 fix errorspew from bubbles 2023-06-29 23:04:02 -04:00
325f2a6dd3 implement drowning 2023-06-29 23:01:59 -04:00
4958c420d8 Save System Mk.III (and start of new difficulty system) 2023-06-29 22:08:00 -04:00
pennyrigate
746b9813e2 added drowning anim 2023-06-25 19:25:26 -04:00
pennyrigate
a096a4c6c5 drowning muffles and reverbs the audio 2023-06-25 16:13:46 -04:00
pennyrigate
8330b50ab3 fixed respawn points in mountain 2023-06-25 13:33:35 -04:00
penelope
ce394a29be water breathing cheat 2023-06-24 15:08:25 -04:00
penelope
b527bd27c3 gave turtles hind legs 2023-06-24 15:07:25 -04:00
pennyrigate
e3c9328fd7 yet again adjusted oxygen time 2023-06-22 21:21:39 -04:00
pennyrigate
146c388d71 fixed collision on turtle 2023-06-22 21:21:11 -04:00
pennyrigate
df5a1b07e1 new water mine sprite 2023-06-22 21:18:43 -04:00
pennyrigate
f220a85cd3 changed abyss to abyss scholar 2023-06-22 18:33:47 -04:00
pennyrigate
4e53014966 ink back! 2023-06-22 18:33:47 -04:00
pennyrigate
a822927518 fish has extra animation frame 2023-06-22 18:33:47 -04:00
pennyrigate
087bc27d84 fuck uhh i dunno 2023-06-22 18:33:47 -04:00
04dec83275 eels reborn 2023-06-22 18:01:50 -04:00
pennyrigate
7e460cc4e1 more work on abyss 2023-06-22 16:22:52 -04:00
pennyrigate
70fdeff1ca edge anim! 2023-06-22 16:22:52 -04:00
pennyrigate
9439d0313c one way platform 2023-06-22 16:22:52 -04:00
pennyrigate
c93c34d098 put the rolling fiend back where it was 2023-06-22 16:22:52 -04:00
pennyrigate
4f49766171 reenabled hud\ 2023-06-22 16:22:52 -04:00
b386d4ffb9 change way inputs are checked in level select 2023-06-22 15:45:17 -04:00
pennyrigate
52dd5221b0 redoing abyss 2023-06-21 22:08:29 -04:00
pennyrigate
511a4bfccc mines dont sway anymore 2023-06-21 22:07:23 -04:00
pennyrigate
23eda848be eel has blood 2023-06-21 22:06:56 -04:00
pennyrigate
cb7c660e44 squigs now move up and down 2023-06-21 22:04:41 -04:00
pennyrigate
f1b54fc4e2 collectibles still animate when paused 2023-06-21 22:02:40 -04:00
pennyrigate
929b63c454 changed the way the fall sprite works 2023-06-20 08:20:35 -04:00
pennyrigate
67e9a93b2b removed slopes from platform 2023-06-20 07:43:24 -04:00
pennyrigate
49bef9ef17 only the head hitbox is active 2023-06-20 07:32:25 -04:00
pennyrigate
5f93e9ef9c scrump projectile disappears when it hits you 2023-06-20 07:14:50 -04:00
pennyrigate
b7b96a7bd3 edge hanging sprite 2023-06-20 04:13:32 -04:00
pennyrigate
e972edcc41 new jump sprite 2023-06-20 02:45:45 -04:00
ebe999a93c fix the player jump double-up issue, make sure compound states do not enter a child state twice if they are the default (fixes #119) 2023-06-18 19:51:21 -04:00
46bd32f3b2 fix head hitbox 2023-06-18 19:51:21 -04:00
pennyrigate
20584fc8d3 start work on abyss 2023-06-18 01:38:30 -04:00
pennyrigate
e6a393c5e2 add oxygen timer 2023-06-18 01:38:04 -04:00
pennyrigate
fd218d6b13 adjusted mine hitbox 2023-06-13 05:11:41 -04:00
pennyrigate
ace4a53bd5 made rock work with weird parent stuff 2023-06-13 05:10:49 -04:00
pennyrigate
c2151b8ea8 fixed eel! 2023-06-13 04:03:39 -04:00
pennyrigate
acaa6f2d52 eel moves on path 2023-06-13 03:25:17 -04:00
pennyrigate
56ee4ccb58 set delay to 0 2023-06-13 02:49:42 -04:00
pennyrigate
9a6a40cec7 begin work on kill mode 2023-06-13 02:49:42 -04:00
51997bc222 fix turtle hitbox staying 2023-06-08 20:21:29 -04:00
bcd8faf650 eepy turtles 2023-06-08 19:15:25 -04:00
penelope
c467e13d94 removed bottomless pit from mountain 2023-06-08 18:36:15 -04:00
penelope
c8e5291b6b invincibility code 2023-06-08 18:36:15 -04:00
penelope
318aed4560 adjusted levels to account for ladder fix 2023-06-08 18:36:15 -04:00
penelope
48180bad64 duck jumping makes sg's jump one pixel higher 2023-06-08 18:36:15 -04:00
29e8f77d5c new canopy ladder 2023-06-08 17:22:48 -04:00
penelope
9c6eb512d9 added ducking! 2023-06-08 16:52:52 -04:00
d59c37eb49 add letter block 2023-06-05 17:42:14 -04:00
d318add375 can't have shit in Virginia 2023-06-02 21:12:18 -04:00
pennyrigate
4e92501432 more menu stuf 2023-06-02 20:30:50 -04:00
pennyrigate
a5f4c34236 changed sg sprite to work better with palettes 2023-06-02 20:30:50 -04:00
463b7952b1 wibblin' on the border now 2023-06-02 20:31:35 -04:00
168eb7814e offset uniform for wibble wobble 2023-06-02 20:09:51 -04:00
331899dcbf add a new shader 2023-06-02 18:45:23 -04:00
df4ba3a11a advanced ska 2023-06-02 18:03:22 -04:00
fcca65922b slightly increase ska shader efficiency 2023-06-02 03:50:41 -04:00
2d00fe8c43 ska dimension 2023-06-02 03:38:18 -04:00
7ed967908b fix title screen start button 2023-06-02 02:24:04 -04:00
pennyrigate
51601d5ad1 started work on menus 2023-06-02 02:14:07 -04:00
pennyrigate
6e16aead24 player scholar now just player 2023-06-01 23:09:06 -04:00
penelope
9f7668107b partially reimplemented cheats 2023-06-01 22:02:08 -04:00
penelope
bfa052968b made moon jump code work 2023-06-01 22:02:08 -04:00
465fac1674 add tiny bit of detail to mountain tileset 2023-06-01 17:13:11 -04:00
penelope
94ea38f5b4 adjusted respawn points more 2023-05-29 10:16:42 -04:00
b5d985c834 fix some ladder bugs 2023-05-29 10:18:21 -04:00
penelope
19638bb520 git fix: this time i changed the positioning of the respawn points in one of our vertical levels, echo mountain 2023-05-29 03:03:35 -04:00
016a304303 eel fixes 2023-05-29 01:28:25 -04:00
pennyrigate
1096679637 added music note to scrump song 2023-05-27 22:52:42 -04:00
7df261b58e EEEEELLLLLLSSSSS uuuuuuuuuuuuuuuuuuuuuu 2023-05-27 22:01:03 -04:00
4c31420e52 abyss tiles update 2023-05-26 14:25:51 -04:00
bcc9540c3e make ink look better 2023-05-26 14:25:02 -04:00
a0fe2e01b8 touch up abyss tile thing 2023-05-26 12:10:14 -04:00
0051d52cdd new cave tileset 2023-05-25 12:15:38 -04:00
ad0344e5c5 abyss tileset 2023-05-24 18:05:00 -04:00
2caa329418 fix tiny weirdness of ladder 2023-05-24 18:04:09 -04:00
18f1eca8ed make squig actually center on player 2023-05-24 17:38:05 -04:00
e4db343059 finally disable the player state-change spam 2023-05-24 12:53:22 -04:00
ebdb4e51aa go to opposite side of ladder if at the top and holding direction (fixes #37) 2023-05-24 12:53:01 -04:00
5f3d907c3f finish squig behavior 2023-05-23 14:39:08 -04:00
8b3a5f88a4 ladder grounded dismount (closes #107) 2023-05-23 12:52:15 -04:00
89faf26b2c fix some errorspew from falling blocks 2023-05-23 12:44:56 -04:00
b1a736745c re-implement i-frames (closes #103) 2023-05-23 12:38:59 -04:00
5413d8aa5f fix errorspew in level select 2023-05-23 12:09:35 -04:00
4c0513e84a walking acceleration when player is grounded 2023-05-23 12:06:55 -04:00
b4b7577479 first half of the squig 2023-05-20 21:25:24 -04:00
pennyrigate
afa641901c shard titles pop up in game 2023-05-20 21:03:03 -04:00
a13a9cee10 make new musics loop 2023-05-19 01:05:39 -04:00
990531663c implement real game title 2023-05-18 04:33:23 -04:00
c9a61d021e move death barrier up to stop scroll down 2023-05-17 03:04:47 -04:00
db9589ab6a change apk name 2023-05-17 03:00:44 -04:00
a7a22f5069 disable eepy abyss 2023-05-17 02:45:36 -04:00
9b5244b589 make spine_v2 ogg 2023-05-17 02:42:06 -04:00
pennyrigate
540f6ccc53 added song for station 2023-05-17 02:35:34 -04:00
pennyrigate
89d83443d3 added song name text 2023-05-17 02:35:34 -04:00
2ead919489 disable CI for now 2023-05-17 02:33:14 -04:00
f4d481e43b select precision parasite as graveyard music (closes #98) 2023-05-17 02:31:14 -04:00
caff76a99d make hud music text dynamic 2023-05-17 02:24:56 -04:00
da6a97cb70 slight msx hair change 2023-05-17 02:22:59 -04:00
pennyrigate
84c92ac4b7 Ms.X now plays the give animation when spawning a shard 2023-05-17 01:58:37 -04:00
pennyrigate
1ae04b7368 default value for song title changed to include ♫ 2023-05-17 01:58:12 -04:00
pennyrigate
3324ff7861 adjusted shape of ♫ 2023-05-17 01:57:43 -04:00
pennyrigate
4d29c5720a set the text to have drop shadow and outline 2023-05-17 01:57:24 -04:00
pennyrigate
fe2b50a5a9 set playing to on again 2023-05-17 01:56:40 -04:00
pennyrigate
18d0d81ae6 changed @ to ♫ 2023-05-17 01:56:19 -04:00
pennyrigate
542351dbe5 touched up a few levels to be less unfair/more interesting 2023-05-17 00:53:30 -04:00
pennyrigate
1423ce1e69 changed default shoot time 2023-05-17 00:53:30 -04:00
pennyrigate
c3b6a7b045 added punctuation 2023-05-17 00:53:30 -04:00
f88a3a1479 make rolling fiend animation speed scale with movement speed 2023-05-17 00:09:09 -04:00
b77ea88c50 make top of ladder always be a jump (fixes #96) 2023-05-16 23:48:08 -04:00
ad59e73568 fix turning platforms suspending SG again 2023-05-16 23:25:42 -04:00
8d2c0248e1 fix collectibles not working 2023-05-16 23:25:19 -04:00
ca947c2f09 make collectibles always use full hitbox 2023-05-16 23:10:15 -04:00
pennyrigate
e4cc684603 replaced player with player scholar and touched up level design 2023-05-14 21:35:09 -04:00
pennyrigate
5d8fb52a9c moved another key to direct player in the direction of the up route 2023-05-14 21:34:41 -04:00
pennyrigate
4b98846b01 moved a key so the rock didnt block it and extended ladder 2023-05-14 21:03:34 -04:00
6da085b6a6 adjust uis to scholar font 2023-05-12 12:53:26 -04:00
15d82ec724 return of the border 2023-05-12 12:17:56 -04:00
cea2d29e46 SG, grip tighter! (fixes #92) 2023-05-12 12:01:45 -04:00
09a15604f1 hide lore entries during options screen (fixes #93) 2023-05-11 14:48:33 -04:00
pennyrigate
0006f02a0f made some changes :D 2023-05-10 23:02:53 -04:00
pennyrigate
5f89fbc891 fixed moving platform apply velocity 2023-05-10 23:02:53 -04:00
pennyrigate
07ac0247dc changed z index so sgs push sprite looks right 2023-05-10 23:02:53 -04:00
pennyrigate
09d168482b yet another fall sprite 2023-05-10 23:02:53 -04:00
8c05357fa3 fix vertical offset thingy in camera 2023-05-10 22:10:42 -04:00
7c2bb78ec2 fix weird thing in mountain (fixes #89) 2023-05-10 22:10:24 -04:00
0655605091 fix errorspew in movesideside enemies without an AnimatedSprite (fixes #88) 2023-05-10 21:42:55 -04:00
28920ef700 MsX fixes 2023-05-10 21:16:45 -04:00
pennyrigate
e6939813dd better fall sprite 2023-05-10 20:47:47 -04:00
pennyrigate
48baab72b7 bandana code works now 2023-05-10 20:47:47 -04:00
pennyrigate
8f208f7d51 adjusted blink duration and changed push sprite 2023-05-10 20:47:47 -04:00
39d7387f61 disallow jumping while pressing towards ladder 2023-05-10 20:46:14 -04:00
pennyrigate
6946592a6e msx is now a stinky catgirl 2023-05-10 19:50:16 -04:00
pennyrigate
e7c96298da buck twwth 2023-05-10 19:50:15 -04:00
pennyrigate
9b856067b5 changed z index of background wallpaper 2023-05-10 19:50:15 -04:00
pennyrigate
b02c3747a1 added more lore entries 2023-05-10 19:50:15 -04:00
65e1d2f015 they are autistic 2023-05-10 18:55:04 -04:00
3ba9afd2be sg pushin' shovin' squishin' some snails n' skeles with rocks 2023-05-10 18:25:26 -04:00
56fb173a24 rolling fiends, unshackled 2023-05-10 17:12:38 -04:00
3bab40915c oggification (closes #68) 2023-05-10 16:13:07 -04:00
e6ed63dd60 piggy gore UwU 2023-05-10 15:50:43 -04:00
e1b5c498f3 fix projectiles not killing player 2023-05-10 14:34:03 -04:00
7b0fb8ece5 scholar of the first climbing sound 2023-05-10 11:21:04 -04:00
pennyrigate
469efad30d exit doors use keys instead of shards 2023-05-08 03:31:25 -04:00
pennyrigate
9c9cc7c6b6 work in easy mode 2023-05-08 03:19:36 -04:00
pennyrigate
51a6a6c10d renamed game.golds into game.keys 2023-05-08 03:16:41 -04:00
bc57ba4171 player.tscn: scholar of the first bullet casings 2023-05-08 01:02:41 -04:00
79cbd62a69 state chart additions: consumed events export and auto_initialize toggle 2023-05-08 01:01:07 -04:00
941f8f0f09 add normal falling sprite 2023-05-08 01:01:07 -04:00
32131e7e17 more state chart updatres :/ 2023-05-08 01:01:07 -04:00
02b85c7dd2 state chart updates 2023-05-08 01:01:07 -04:00
pennyrigate
d11ccb37a1 finished graveyard!!! 2023-05-07 22:11:23 -04:00
pennyrigate
63c412ea01 adjusted hitbox to be less giant 2023-05-07 22:10:22 -04:00
pennyrigate
39d6f06fef sg blinkf 2023-05-07 17:12:33 -04:00
pennyrigate
ce1fb72a58 changed graveyard ladder and added sg stim! 2023-05-07 16:56:50 -04:00
pennyrigate
de3a2e3252 on and off time is slower on easy 2023-05-01 15:17:12 -04:00
pennyrigate
53c9abdf33 added bone block and woeful soul palettes 2023-05-01 14:49:15 -04:00
pennyrigate
ea8f5798a6 bones color changed 2023-05-01 14:46:39 -04:00
pennyrigate
6e138239d2 difficulty is now saved 2023-05-01 14:45:17 -04:00
pennyrigate
10b6e8e89d removed hatches beneath the level 2023-05-01 14:44:35 -04:00
pennyrigate
4408800a43 added key icon to 2ndpubertyscholar 2023-05-01 14:43:58 -04:00
pennyrigate
eb17344785 made ladder tangible 2023-05-01 14:43:33 -04:00
pennyrigate
fe61dafe6c added new type of falling block 2023-05-01 04:45:34 -04:00
pennyrigate
05339e3ac1 adjusted spike hitbox to be a little more lenient 2023-05-01 03:17:46 -04:00
pennyrigate
5fff13eede made the blood lake more blood-like 2023-05-01 02:39:47 -04:00
pennyrigate
9f9e399127 added fall sprite 2023-05-01 00:42:07 -04:00
pennyrigate
8a3b95c71f added pushing anim 2023-05-01 00:05:43 -04:00
pennyrigate
98bc5119d4 changed hitbox 2023-05-01 00:05:30 -04:00
pennyrigate
0185f55dc4 changed node name to key 2023-05-01 00:05:15 -04:00
pennyrigate
aa39838e16 made falling blocks harder 2023-05-01 00:04:35 -04:00
pennyrigate
afe7c35ea7 changed node name to key 2023-05-01 00:01:41 -04:00
pennyrigate
ae006c05ff adjusted hitbox to be square 2023-04-30 21:33:37 -04:00
pennyrigate
788e59a963 added 2ndpuberty scholar no dropshadow 2023-04-30 20:42:40 -04:00
pennyrigate
c21eb241c9 made some changes in station 2023-04-28 21:49:20 -04:00
pennyrigate
85b77fbb08 adjusted some non playtested bs in canopy 2023-04-28 19:39:47 -04:00
pennyrigate
e248521ae0 fixed bug where hellarcher would turn into skelarcher 2023-04-28 19:39:29 -04:00
pennyrigate
d3f2500f20 added blood water 2023-04-28 19:31:32 -04:00
pennyrigate
1605cf20a7 made it so artificial souls can't be killed 2023-04-28 19:31:14 -04:00
pennyrigate
fd444d505c more easy mode stuff 2023-04-28 18:27:34 -04:00
pennyrigate
82f2ebfc12 made some changes :3 2023-04-28 16:58:17 -04:00
a0b48c76d1 make ghost initial speed a little more granular 2023-04-28 16:06:12 -04:00
pennyrigate
22656e9efa eeeh? easy mode? only kids play in easy mode!! 2023-04-20 04:06:29 -04:00
pennyrigate
273ede7e9d un-bullshitted some levels 2023-04-20 04:03:07 -04:00
pennyrigate
472497019f adjusted snails boundaries so they can be squashed! 2023-04-17 16:57:42 -04:00
pennyrigate
f9c27a8dab adjusted blocks in the middle of the first screen so its easier to get up to the arrow 2023-04-17 16:56:28 -04:00
pennyrigate
05585dd073 fixed issue where skelarchers turned into hellarchers 2023-04-17 16:30:31 -04:00
pennyrigate
ee779f2899 im too lazy to do commit messages right now 2023-04-17 02:50:35 -04:00
pennyrigate
4f5a66379a fixed the ladders to not be skulls 2023-04-17 02:50:35 -04:00
892c3c80f9 should've called this game Boogit add objects/enemy/! Haunted Housegit add objects/enemy/! 2023-04-13 15:22:32 -04:00
9864a042dd fix console errors from audio thing in enemies, exported death sound property 2023-04-13 15:22:02 -04:00
6eff1601a9 statecharts ehehehehehe 2023-04-13 14:24:46 -04:00
pennyrigate
4d59717b88 added verdant hills lore 2023-04-13 13:27:24 -04:00
pennyrigate
463014f22e added 2ndpubertyscholoor no dorpshadow 2023-04-13 13:26:52 -04:00
pennyrigate
25149b376d adjusted amount of slime splatter 2023-04-13 13:24:38 -04:00
pennyrigate
8d49710a97 finished station 2023-04-13 11:16:04 -04:00
pennyrigate
331ed2dbb3 begin designing horror 2023-04-13 11:16:04 -04:00
pennyrigate
cbccd40fa2 starting designing pause for lore 2023-04-13 11:16:04 -04:00
pennyrigate
8ac962d855 cops only shoot characters on the same screen as them (fixes issue #79) 2023-04-13 11:16:04 -04:00
pennyrigate
3e51a5062f added switch action to turn off laser 2023-04-13 11:16:03 -04:00
pennyrigate
d69c775c4b added horror 2023-04-13 11:16:03 -04:00
e0e0e3b150 tales from the refactory, chapter 17: assasination of a fullstop 2023-04-09 00:50:57 -04:00
f6a2f53aac 2nd Puberty: Scholar of the Original Bitmap 2023-04-08 21:43:44 -04:00
c1a9ab7cdc ThE GREAT SHATTERINGgit status! control.tscn is DEAD! LoNG LIVE CONTROL.TSCNgit statusgit status! MWAHAHAHAHAHAHAHA 2023-04-08 00:33:55 -04:00
6c22279e41 shoulda called this game boo haunted house 2023-04-07 20:38:55 -04:00
pennyrigate
353fb7f89e infinite ammo cheat 2023-04-07 14:47:20 -04:00
pennyrigate
408c1062ed added glowy eye to emitter 2023-04-07 14:47:08 -04:00
pennyrigate
d6e35580fd ms.x gives shard 2023-04-04 18:18:54 -04:00
pennyrigate
e303d5ac6c fixed air shoot sprite offset and renamed jump to sg_jump 2023-04-04 17:46:54 -04:00
pennyrigate
92da2106d0 fixed bug where acab shard was given every frame 2023-04-04 16:21:30 -04:00
pennyrigate
d59533b4b1 made killing all cops net you a shard 2023-04-04 03:02:15 -04:00
pennyrigate
fd012360ba adjusted collision layers 2023-04-04 02:52:54 -04:00
pennyrigate
739eb6e48a added ms.x 2023-04-04 02:51:16 -04:00
pennyrigate
2281627223 renamed gold to key 2023-03-25 15:35:46 -04:00
pennyrigate
139a6c50de more blood! 2023-03-25 13:39:11 -04:00
pennyrigate
c67d1ca257 sg's devastating arrows debone cops 2023-03-25 13:36:04 -04:00
pennyrigate
149f0ecafe reset player anim 2023-03-25 02:24:37 -04:00
pennyrigate
8d899a0172 took kinematicbody2D off of collision layers 2023-03-25 02:18:32 -04:00
pennyrigate
57d1e6317a laser wall collision layers changed so the pigs would not stop lasers 2023-03-25 00:55:21 -04:00
a8e187a150 tasty little switch refactoring and an extra dessert :) :3 :3 2023-03-25 00:52:02 -04:00
pennyrigate
5684e5b3a0 upper rightmost steam in rust no longer has infinite off time 2023-03-25 00:31:12 -04:00
02eb7ece33 laser wall fixes 2023-03-25 00:16:30 -04:00
4264d26e4a another minute another player snapp change 2023-03-24 23:41:23 -04:00
pennyrigate
7d21e86f01 added jail bars! 2023-03-24 23:38:52 -04:00
pennyrigate
ee7b21141b adjusted muzzle flash duration 2023-03-24 23:38:52 -04:00
pennyrigate
cbe6ec45ab changed palette so its not a temporary palette anymore 2023-03-24 23:38:52 -04:00
pennyrigate
17db88bbda set sector manually so arrows will always shoot 2023-03-24 23:38:52 -04:00
0fd1d894c0 fix player snap length, SG could step down whole tiles :3 2023-03-24 22:17:41 -04:00
659e812189 give the pigs' guns a little more BANG for their buck HAHAHAHAHAHAHAHAHAHA 2023-03-24 21:22:39 -04:00
64ff2d38df better slope handling 2023-03-24 21:22:07 -04:00
e02288fb3a make DelayedInstance timer not process while paused (fixes #76) 2023-03-24 19:51:43 -04:00
pennyrigate
1ed02f7d26 adjusted z index so shows up above background tiles 2023-03-24 19:19:57 -04:00
pennyrigate
96e5b8f34c shortened sight and added to cop and enemy groups 2023-03-24 18:48:25 -04:00
pennyrigate
f1f21e83c6 removed stray cave ladder tile 2023-03-24 18:32:14 -04:00
pennyrigate
aa7714066c added cfox code 2023-03-22 16:30:24 -04:00
ce964f5567 UNIVERSAL LADDER TAKEOVER 2023-03-22 16:24:20 -04:00
e0c3cffaeb updated station tileset 2023-03-22 15:44:54 -04:00
pennyrigate
899084733a cryokiller loops now 2023-03-22 15:25:09 -04:00
pennyrigate
32feac9f67 changed hatch speed 2023-03-22 15:25:09 -04:00
pennyrigate
72f1d63f6a touched up blood and water graphics 2023-03-22 15:25:09 -04:00
9a5d19789c piggy fixies! :) 2023-03-22 15:05:50 -04:00
0c9528c7c1 make arrows collide with dynamic objects (closes #61) 2023-03-22 13:28:16 -04:00
83a06510e5 remove sword gorups from player stuff 2023-03-22 13:27:20 -04:00
940583c7aa fix debug mouse thingy (fixes #13) 2023-03-22 13:10:10 -04:00
ba66c8a6f7 make mobile port be in landscape by default 2023-03-22 11:53:38 -04:00
094584e1b7 fix another arrow crash (closes #72) 2023-03-22 11:53:16 -04:00
563bb46a44 debug drawing of moving enemy paths 2023-03-22 02:59:12 -04:00
pennyrigate
5862958924 slime particles! 2023-03-22 02:11:10 -04:00
d012e9f5ac make hatch mildly more stable 2023-03-22 02:07:49 -04:00
0a5c111615 added the pigs 2023-03-22 02:07:49 -04:00
pennyrigate
708d89e5be added station 2023-03-22 01:42:11 -04:00
pennyrigate
a5d847abfd added popup showing currently playing song 2023-03-22 01:40:30 -04:00
pennyrigate
d23567a0da added cop graphics and heist background 2023-03-21 22:34:54 -04:00
pennyrigate
3433dae09c added hatches! 2023-03-21 20:22:52 -04:00
9947cdfc45 another TEENY optimization in star 2023-03-21 17:56:07 -04:00
b67086b41e star.gd rearrange and make color show up in editor 2023-03-21 17:54:30 -04:00
08322ec2d1 swap star and arrow in hills 2023-03-21 17:51:45 -04:00
5a9751946c add noise shader to laser graphics 2023-03-21 17:19:41 -04:00
90cc0f0550 make still moving enemies not vibrate 2023-03-21 17:19:41 -04:00
pennyrigate
7c124cad5e gold counter now key counter 2023-03-21 17:06:56 -04:00
pennyrigate
a6c6114e14 fixed ladder being on wrong layer 2023-03-21 16:51:52 -04:00
pennyrigate
3d3b7ce0cf added crates! 2023-03-21 16:48:45 -04:00
pennyrigate
002184cc64 coins are now keys 2023-03-21 15:39:38 -04:00
pennyrigate
66d1ba0ad9 rust leveldata 2023-03-21 15:39:38 -04:00
pennyrigate
0357d40cd4 fix fullscreen key not working while paused,,, again. 2023-03-21 15:39:38 -04:00
35777da5fb make rolling saw unkillable (closes #71) 2023-03-13 01:41:49 -04:00
pennyrigate
9a03a8e52e finished rust inc! 2023-03-13 00:53:35 -04:00
pennyrigate
1701d66c4e put on separate layer so doesnt collide with spikes 2023-03-13 00:53:35 -04:00
pennyrigate
dc337079ee pressing f no longer goes fullscreen during cheat input 2023-03-13 00:53:35 -04:00
pennyrigate
67997de4a6 changed default on time value 2023-03-13 00:53:34 -04:00
pennyrigate
a4bbe37ca6 the almighty alt+enter 2023-03-13 00:53:34 -04:00
pennyrigate
6a180c4f0c made it so roboturret can be flipped in editor 2023-03-13 00:53:34 -04:00
319eec7f5b fix options screen focus issue 2023-03-10 15:24:58 -05:00
ebac7e2da2 make scaling.gd utilize Options.gd scaling_mode variable, fix the other scaling modes 2023-03-10 15:20:31 -05:00
8452ebce66 initial android export experiments 2023-03-10 15:04:33 -05:00
pennyrigate
a2b9da421a oiI 2023-03-09 22:18:30 -05:00
pennyrigate
a3e793e114 adjusted sound volume 2023-03-09 22:18:30 -05:00
pennyrigate
2ecceae4a7 broken pipe tile 2023-03-09 22:18:29 -05:00
pennyrigate
b548612ecc button sound! 2023-03-09 22:18:29 -05:00
pennyrigate
00558c3e13 roboturret resets timer when offscreen 2023-03-09 22:18:29 -05:00
pennyrigate
feef4019a4 tin particles put on dynamic layer 2023-03-09 22:18:29 -05:00
pennyrigate
8d81f986aa roboturret death particles 2023-03-09 22:18:28 -05:00
pennyrigate
cff4eb867c corner tile just as big as regular pipe tile 2023-03-09 22:18:28 -05:00
pennyrigate
1be92824ef roboturret has hue shifting eye 2023-03-09 22:18:28 -05:00
pennyrigate
51a3214407 renamed tin_die to robot_die 2023-03-09 22:18:28 -05:00
pennyrigate
a5302367de made move direction export actually work 2023-03-09 22:18:27 -05:00
pennyrigate
0454ec21b8 add rolling saw 2023-03-09 22:18:27 -05:00
7606485692 fix (i think....) the silly one-way platform issueeee 2023-03-08 19:26:09 -05:00
57b341f515 another week, another OUTSiDE iDle TIMEgit statusgit status console error squelched 2023-03-08 19:18:26 -05:00
e85c09a6a4 fix fullscreen buggy :3 2023-03-08 18:21:15 -05:00
7020914046 sed magic: fixeth the great 'boundry' misprint 2023-03-08 17:27:08 -05:00
342c333e61 save options :), only show confirm when something has changed 2023-03-08 17:03:53 -05:00
1fc44271f1 options screen functionality :):):):):) 2023-03-08 16:46:23 -05:00
89b4bc045e the options screen is 𝔞𝔩𝔦𝔳𝔢. 2023-03-08 04:01:55 -05:00
pennyrigate
99fd0f6473 turned off border corners in arrow pickup 2023-03-08 01:08:47 -05:00
pennyrigate
f1e7f136f8 shaders folder! 2023-03-08 01:07:24 -05:00
pennyrigate
69c28ced8b changed crt shader to lcd shader 2023-03-08 01:03:09 -05:00
pennyrigate
38b04a3bbb set to process mode (fixes #65) 2023-03-08 01:02:47 -05:00
pennyrigate
c88bc930ff removed useless idle_fall() function 2023-03-08 00:31:58 -05:00
pennyrigate
8a08b71404 moved coin back so original route is doable again 2023-03-08 00:17:51 -05:00
1fa0fa44ed give SG those GRIPPY SHOES OH MY GOODNESS, they can now stop freaking out on the edge of platforms... IN STYEL 2023-03-07 23:07:38 -05:00
d74c82cd56 rolling fiend hitbox solidification protocol, difficulty superposition finally collapsed 2023-03-07 21:30:46 -05:00
pennyrigate
b20467a598 set max fall speed to 255 (fixes #63) 2023-03-07 21:03:42 -05:00
pennyrigate
79ff122f29 adjusted amount to be pushed away from corner collision 2023-03-07 21:02:59 -05:00
pennyrigate
437d48c15a added controller restart button 2023-03-07 21:02:05 -05:00
pennyrigate
9b3eeed4ec adjusted platform on second screen so player couldnt fall down from being on edge of platform 2023-03-07 21:00:51 -05:00
pennyrigate
a2b7591e48 repositioned bats so one doesnt go in the floor 2023-03-07 20:58:07 -05:00
pennyrigate
9a9669847a changed ledge length in hills and renamed map01 to hills 2023-03-07 19:42:22 -05:00
pennyrigate
9e813ca076 rolling fiend freezes when time is slowed down 2023-03-07 19:03:46 -05:00
pennyrigate
512469f732 respawn only happens after dying (fixes #64) 2023-03-07 18:44:35 -05:00
pennyrigate
3ac3c7343c hitting a corner in falling state pushes sg back (fixes #62) 2023-03-07 18:35:58 -05:00
pennyrigate
51eeef3941 adjusted hitboxes so that *one* star in mountain is possible again 2023-03-06 16:49:26 -05:00
pennyrigate
f76836b22f removed pesky bat in mountain 2023-03-06 16:48:50 -05:00
pennyrigate
776ed065d4 drunk cheat 2023-03-06 16:46:04 -05:00
pennyrigate
1ca58bba19 removed a star because this level used to have 6! 2023-03-03 23:57:28 -05:00
pennyrigate
f989459751 restart actually works again 2023-03-03 23:18:59 -05:00
pennyrigate
abc448fa0a fixed transition scale 2023-03-03 23:18:36 -05:00
pennyrigate
23cfde864e upside down cracked pipe given collision 2023-03-03 23:06:55 -05:00
pennyrigate
7b6d0197cd pausing only possible in map.gd 2023-03-03 23:05:31 -05:00
pennyrigate
aa86cbc928 harmony of dissonance ass outline 2023-03-03 23:03:13 -05:00
pennyrigate
f62d356d9a changed user directory 2023-03-03 20:59:00 -05:00
d518dce44d make the steam more fair 2023-03-03 20:28:10 -05:00
pennyrigate
8a210d1da1 steam fizzles out when turned off 2023-03-03 17:59:54 -05:00
pennyrigate
17dbf626d6 button graphics 2023-03-03 14:32:02 -05:00
pennyrigate
34b447cff1 added a button :D 2023-03-03 00:01:02 -05:00
pennyrigate
215d930022 add cracked pipe tile 2023-03-02 22:41:37 -05:00
pennyrigate
0b39769e1f rolling fiend defaults to counterclockwise motion again 2023-03-02 22:13:06 -05:00
pennyrigate
52f856ad6b adjusted roboturret turn speed 2023-03-02 22:12:11 -05:00
pennyrigate
f92e302535 rebaalanced gold sound 2023-03-01 20:44:59 -05:00
pennyrigate
2a9fcd17a1 add rust inc 2023-03-01 18:58:44 -05:00
pennyrigate
ab992ae383 arrows no longer border corners 2023-03-01 18:54:50 -05:00
pennyrigate
78cc2e6a09 climbray only checks for ladder layer 2023-03-01 18:54:50 -05:00
pennyrigate
e862aed89a removed unnecessary shootpos variable 2023-03-01 18:54:49 -05:00
pennyrigate
55ecaefb72 added robo animation 2023-03-01 18:54:49 -05:00
pennyrigate
5f838027ec rock put on dynamic objects layer and added ladder layer 2023-03-01 18:54:49 -05:00
pennyrigate
e22e2408e3 new star and gold sounds 2023-03-01 18:54:49 -05:00
pennyrigate
1175ee903f added more end tiles to hills 2023-03-01 18:54:49 -05:00
95da126f17 laser wall enemy 2023-03-01 04:38:41 -05:00
c2d473a993 fix main.tscn not working outside of windows filesystems 2023-03-01 02:04:26 -05:00
pennyrigate
68b08514b2 new star sound 2023-02-27 00:46:12 -05:00
pennyrigate
c9653e6a38 made verdant hills less bad 2023-02-27 00:42:48 -05:00
pennyrigate
d8f370fe94 removed options instance because of bug where the tilemap would not be invisible 2023-02-26 22:06:11 -05:00
pennyrigate
7097a604a5 fixed issue where sound effects were silenced when game was paused 2023-02-26 22:05:33 -05:00
pennyrigate
d6325999ae water tiles given collision (fixes #57) 2023-02-26 21:41:56 -05:00
pennyrigate
d802ce13b7 shard sound set to own bus and channel (fixes #53) (fixes #54) 2023-02-26 17:05:11 -05:00
pennyrigate
1b7d93195f removed options.tscn 2023-02-25 23:53:35 -05:00
pennyrigate
e1a30188a6 All audio stuff moved to audio autoload and removed game.tscn in favor of just game.gd 2023-02-25 23:44:13 -05:00
30cfad6e7e steam barrier enemy 2023-02-24 21:53:07 -05:00
pennyrigate
8b247304e6 options skeleton :D 2023-02-24 21:38:43 -05:00
pennyrigate
22fc792664 lowercased boss1 save key 2023-02-24 21:38:43 -05:00
153f11aea2 rolling fiend mark 3.... 2023-02-24 17:37:39 -05:00
pennyrigate
58eae4a8f7 restart function only works if Game.can_pause == true (fixes #55) 2023-02-24 17:20:13 -05:00
pennyrigate
8cfe971e06 Made autoload and ui folders to clean things up 2023-02-24 17:15:20 -05:00
pennyrigate
212b49de56 burnt in loops 2023-02-24 16:32:44 -05:00
pennyrigate
936ea5b04d added rust factory 2023-02-23 15:53:59 -05:00
pennyrigate
c1c0a8251a added rust tileset 2023-02-23 15:53:59 -05:00
c024783ec8 make turning platforms be one-way only when player is inside of them already 2023-02-23 15:54:27 -05:00
2569986a87 make turning platforms one-way 2023-02-22 16:35:08 -05:00
793e7ef11e best attempt at a sawblad :( 2023-02-22 16:10:33 -05:00
4698dc2b0e make fade pattern stay black for an actual amount of time 2023-02-22 16:05:47 -05:00
b76ce99b73 fix water not killing player 2023-02-22 16:05:11 -05:00
b31344a718 remove tin-specific death code from enemy_move_diagonal.gd, use deferred died signal connection instead to avoid errors from adding physics bodies outside idle time 2023-02-22 16:04:50 -05:00
1d2fa6da75 other fade patterns 2023-02-21 20:20:07 -05:00
pennyrigate
fc5d41713d added beach ball :) 2023-02-21 17:28:00 -05:00
pennyrigate
c6f2ff0c13 set time and lives to green in editor 2023-02-21 17:27:07 -05:00
pennyrigate
ad05caf438 added mountain easter egg 2023-02-21 17:05:17 -05:00
pennyrigate
82e407a937 made enemies meaner 2023-02-21 16:41:37 -05:00
pennyrigate
38daea272c adjusted tin particle physics and added mine explosion sound 2023-02-21 16:13:48 -05:00
pennyrigate
40e10663d6 made launch rigid more generic 2023-02-21 15:56:47 -05:00
pennyrigate
65a4fd8742 added tin 2023-02-21 15:14:59 -05:00
pennyrigate
f11679100c fixed issue where inputted cheat paused the game 2023-02-21 15:14:58 -05:00
e744920cb9 make restart a regular feature outside of debug 2023-02-21 15:01:13 -05:00
126f170489 add small explosion graphics 2023-02-21 14:51:48 -05:00
1b53eee56b make bubbles follow screen 2023-02-21 14:51:24 -05:00
c704cabd45 restore rolling fiend ceiling murder behavior >:) 2023-02-21 14:44:42 -05:00
d27d9d8b83 FADE SYSTEM :3 2023-02-21 14:29:45 -05:00
pennyrigate
4cd2018b2c outline text in its own theme 2023-02-21 12:04:33 -05:00
pennyrigate
809b6510c4 fixed bug where pressing pause button when paused 2023-02-21 04:10:52 -05:00
pennyrigate
758cf57f8d removed unused stuff 2023-02-21 04:10:51 -05:00
1641 changed files with 66633 additions and 5680 deletions

2
.gitignore vendored
View file

@ -1,2 +1,4 @@
.import/ .import/
build/ build/
ngio.ini
scoreboard_host.txt

395
LICENSE-ASSETS Normal file
View file

@ -0,0 +1,395 @@
Attribution 4.0 International
=======================================================================
Creative Commons Corporation ("Creative Commons") is not a law firm and
does not provide legal services or legal advice. Distribution of
Creative Commons public licenses does not create a lawyer-client or
other relationship. Creative Commons makes its licenses and related
information available on an "as-is" basis. Creative Commons gives no
warranties regarding its licenses, any material licensed under their
terms and conditions, or any related information. Creative Commons
disclaims all liability for damages resulting from their use to the
fullest extent possible.
Using Creative Commons Public Licenses
Creative Commons public licenses provide a standard set of terms and
conditions that creators and other rights holders may use to share
original works of authorship and other material subject to copyright
and certain other rights specified in the public license below. The
following considerations are for informational purposes only, are not
exhaustive, and do not form part of our licenses.
Considerations for licensors: Our public licenses are
intended for use by those authorized to give the public
permission to use material in ways otherwise restricted by
copyright and certain other rights. Our licenses are
irrevocable. Licensors should read and understand the terms
and conditions of the license they choose before applying it.
Licensors should also secure all rights necessary before
applying our licenses so that the public can reuse the
material as expected. Licensors should clearly mark any
material not subject to the license. This includes other CC-
licensed material, or material used under an exception or
limitation to copyright. More considerations for licensors:
wiki.creativecommons.org/Considerations_for_licensors
Considerations for the public: By using one of our public
licenses, a licensor grants the public permission to use the
licensed material under specified terms and conditions. If
the licensor's permission is not necessary for any reason--for
example, because of any applicable exception or limitation to
copyright--then that use is not regulated by the license. Our
licenses grant only permissions under copyright and certain
other rights that a licensor has authority to grant. Use of
the licensed material may still be restricted for other
reasons, including because others have copyright or other
rights in the material. A licensor may make special requests,
such as asking that all changes be marked or described.
Although not required by our licenses, you are encouraged to
respect those requests where reasonable. More considerations
for the public:
wiki.creativecommons.org/Considerations_for_licensees
=======================================================================
Creative Commons Attribution 4.0 International Public License
By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
Attribution 4.0 International Public License ("Public License"). To the
extent this Public License may be interpreted as a contract, You are
granted the Licensed Rights in consideration of Your acceptance of
these terms and conditions, and the Licensor grants You such rights in
consideration of benefits the Licensor receives from making the
Licensed Material available under these terms and conditions.
Section 1 -- Definitions.
a. Adapted Material means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material
and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the
Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording,
Adapted Material is always produced where the Licensed Material is
synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
c. Copyright and Similar Rights means copyright and/or similar rights
closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or
categorized. For purposes of this Public License, the rights
specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
d. Effective Technological Measures means those measures that, in the
absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
e. Exceptions and Limitations means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
f. Licensed Material means the artistic or literary work, database,
or other material to which the Licensor applied this Public
License.
g. Licensed Rights means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to
all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
h. Licensor means the individual(s) or entity(ies) granting rights
under this Public License.
i. Share means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such
as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the
public may access the material from a place and at a time
individually chosen by them.
j. Sui Generis Database Rights means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases,
as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
k. You means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
Section 2 -- Scope.
a. License grant.
1. Subject to the terms and conditions of this Public License,
the Licensor hereby grants You a worldwide, royalty-free,
non-sublicensable, non-exclusive, irrevocable license to
exercise the Licensed Rights in the Licensed Material to:
a. reproduce and Share the Licensed Material, in whole or
in part; and
b. produce, reproduce, and Share Adapted Material.
2. Exceptions and Limitations. For the avoidance of doubt, where
Exceptions and Limitations apply to Your use, this Public
License does not apply, and You do not need to comply with
its terms and conditions.
3. Term. The term of this Public License is specified in Section
6(a).
4. Media and formats; technical modifications allowed. The
Licensor authorizes You to exercise the Licensed Rights in
all media and formats whether now known or hereafter created,
and to make technical modifications necessary to do so. The
Licensor waives and/or agrees not to assert any right or
authority to forbid You from making technical modifications
necessary to exercise the Licensed Rights, including
technical modifications necessary to circumvent Effective
Technological Measures. For purposes of this Public License,
simply making modifications authorized by this Section 2(a)
(4) never produces Adapted Material.
5. Downstream recipients.
a. Offer from the Licensor -- Licensed Material. Every
recipient of the Licensed Material automatically
receives an offer from the Licensor to exercise the
Licensed Rights under the terms and conditions of this
Public License.
b. No downstream restrictions. You may not offer or impose
any additional or different terms or conditions on, or
apply any Effective Technological Measures to, the
Licensed Material if doing so restricts exercise of the
Licensed Rights by any recipient of the Licensed
Material.
6. No endorsement. Nothing in this Public License constitutes or
may be construed as permission to assert or imply that You
are, or that Your use of the Licensed Material is, connected
with, or sponsored, endorsed, or granted official status by,
the Licensor or others designated to receive attribution as
provided in Section 3(a)(1)(A)(i).
b. Other rights.
1. Moral rights, such as the right of integrity, are not
licensed under this Public License, nor are publicity,
privacy, and/or other similar personality rights; however, to
the extent possible, the Licensor waives and/or agrees not to
assert any such rights held by the Licensor to the limited
extent necessary to allow You to exercise the Licensed
Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this
Public License.
3. To the extent possible, the Licensor waives any right to
collect royalties from You for the exercise of the Licensed
Rights, whether directly or through a collecting society
under any voluntary or waivable statutory or compulsory
licensing scheme. In all other cases the Licensor expressly
reserves any right to collect such royalties.
Section 3 -- License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
a. Attribution.
1. If You Share the Licensed Material (including in modified
form), You must:
a. retain the following if it is supplied by the Licensor
with the Licensed Material:
i. identification of the creator(s) of the Licensed
Material and any others designated to receive
attribution, in any reasonable manner requested by
the Licensor (including by pseudonym if
designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of
warranties;
v. a URI or hyperlink to the Licensed Material to the
extent reasonably practicable;
b. indicate if You modified the Licensed Material and
retain an indication of any previous modifications; and
c. indicate the Licensed Material is licensed under this
Public License, and include the text of, or the URI or
hyperlink to, this Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any
reasonable manner based on the medium, means, and context in
which You Share the Licensed Material. For example, it may be
reasonable to satisfy the conditions by providing a URI or
hyperlink to a resource that includes the required
information.
3. If requested by the Licensor, You must remove any of the
information required by Section 3(a)(1)(A) to the extent
reasonably practicable.
4. If You Share Adapted Material You produce, the Adapter's
License You apply must not prevent recipients of the Adapted
Material from complying with this Public License.
Section 4 -- Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that
apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
to extract, reuse, reproduce, and Share all or a substantial
portion of the contents of the database;
b. if You include all or a substantial portion of the database
contents in a database in which You have Sui Generis Database
Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material; and
c. You must comply with the conditions in Section 3(a) if You Share
all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
Section 6 -- Term and Termination.
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
terminate automatically.
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided
it is cured within 30 days of Your discovery of the
violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any
right the Licensor may have to seek remedies for Your violations
of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the
Licensed Material under separate terms or conditions or stop
distributing the Licensed Material at any time; however, doing so
will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
Section 7 -- Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different
terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and
independent of the terms and conditions of this Public License.
Section 8 -- Interpretation.
a. For the avoidance of doubt, this Public License does not, and
shall not be interpreted to, reduce, limit, restrict, or impose
conditions on any use of the Licensed Material that could lawfully
be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
d. Nothing in this Public License constitutes or may be interpreted
as a limitation upon, or waiver of, any privileges and immunities
that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.
=======================================================================
Creative Commons is not a party to its public
licenses. Notwithstanding, Creative Commons may elect to apply one of
its public licenses to material it publishes and in those instances
will be considered the “Licensor.” The text of the Creative Commons
public licenses is dedicated to the public domain under the CC0 Public
Domain Dedication. Except for the limited purpose of indicating that
material is shared under a Creative Commons public license or as
otherwise permitted by the Creative Commons policies published at
creativecommons.org/policies, Creative Commons does not authorize the
use of the trademark "Creative Commons" or any other trademark or logo
of Creative Commons without its prior written consent including,
without limitation, in connection with any unauthorized modifications
to any of its public licenses or any other arrangements,
understandings, or agreements concerning use of licensed material. For
the avoidance of doubt, this paragraph does not form part of the
public licenses.
Creative Commons may be contacted at creativecommons.org.

7
LICENSE-CODE Normal file
View file

@ -0,0 +1,7 @@
Copyright © 2024 Haze Weathers and Penny Rigate
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View file

@ -1,7 +0,0 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://control.tscn" type="PackedScene" id=1]
[node name="Main" type="Node2D"]
[node name="Control" parent="." instance=ExtResource( 1 )]

20
README.md Normal file
View file

@ -0,0 +1,20 @@
# Revolution 2083
Published source code of [Revolution 2083](https://pennyrigate.itch.io/revolution-2083).
Feel free to use this to make mods, fangames, whatever you like! It would make
us extra happy to be credited in and/or told about whatever you use this for.
Apologies in advance for the messy code :)
— Haze
## License
Music is by [Scarlett Sylvistrix](https://ivsnyd.bandcamp.com/) and licensed under
the [CC-BY license](LICENSE-ASSETS) except for end credits
cover of "You're Wondering Now".
"You're Wondering Now" is not licensed for re-use.
All textures and sound effects are by Haze Weathers and Penny Rigate.
They are also licensed under the [CC-BY license](LICENSE-ASSETS).
All other code and data is licensed under the [MIT license](LICENSE-CODE).

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<rect id="Artboard1" x="0" y="0" width="32" height="32" style="fill:none;"/>
<g id="Artboard11" serif:id="Artboard1">
<g transform="matrix(1.03705,0,0,1.03705,-0.460588,-0.659827)">
<g id="BG">
<path d="M30.337,8.833C30.337,4.841 27.096,1.601 23.104,1.601L8.64,1.601C4.649,1.601 1.408,4.841 1.408,8.833L1.408,23.297C1.408,27.288 4.649,30.529 8.64,30.529L23.104,30.529C27.096,30.529 30.337,27.288 30.337,23.297L30.337,8.833Z" style="fill:none;stroke:rgb(225,142,57);stroke-width:0.96px;"/>
</g>
</g>
<g id="AnimationTreeState">
<g transform="matrix(3.01177,0,0,3.01177,-34.5681,-33.1274)">
<circle cx="16.79" cy="16.312" r="3.319" style="fill:rgb(225,142,57);"/>
</g>
<g transform="matrix(1,0,0,1,-0.944123,0.510573)">
<path d="M12.988,9.407L14.259,22.064L15.427,22.185L15.484,19.654L17.723,19.607L17.7,21.031L18.427,20.976L18.583,18.442L15.48,18.154L15.515,14.006L20.744,13.909L20.738,16.136L21.79,16.077L21.992,12.615L15.399,12.643L14.958,9.391L12.988,9.407Z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/animation_tree_state.svg-b99077fc178cfa1e23b2c854c7735c4a.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/godot_state_charts/animation_tree_state.svg"
dest_files=[ "res://.import/animation_tree_state.svg-b99077fc178cfa1e23b2c854c7735c4a.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View file

@ -0,0 +1,23 @@
tool
class_name AtomicState, "atomic_state.svg"
extends State
func _handle_transition(transition: Transition, source: State) -> void:
# resolve target state
var target = transition.resolve_target()
if not target is State:
push_error("the target state: %s of transition from state: %s is not a state" % [str(transition.to), source.name])
return
# atomic states can't transition, gotta ask mommy
get_parent()._handle_transition(transition, source)
func _get_configuration_warning() -> String:
var warning := ._get_configuration_warning()
if not warning.empty():
return warning
for child in get_children():
if not child is Transition:
return "atomic states cannot have children other than transitions"
return ""

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<rect id="Artboard1" x="0" y="0" width="32" height="32" style="fill:none;"/>
<g id="Artboard11" serif:id="Artboard1">
<g transform="matrix(1.03705,0,0,1.03705,-0.460588,-0.659827)">
<g id="BG">
<path d="M30.337,8.833C30.337,4.841 27.096,1.601 23.104,1.601L8.64,1.601C4.649,1.601 1.408,4.841 1.408,8.833L1.408,23.297C1.408,27.288 4.649,30.529 8.64,30.529L23.104,30.529C27.096,30.529 30.337,27.288 30.337,23.297L30.337,8.833Z" style="fill:none;stroke:rgb(225,142,57);stroke-width:0.96px;"/>
</g>
</g>
<g transform="matrix(3.01177,0,0,3.01177,-34.5681,-33.1274)">
<g id="AtomicState">
<circle cx="16.79" cy="16.312" r="3.319" style="fill:rgb(225,142,57);"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/atomic_state.svg-5ab16e5747cef5b5980c4bf84ef9b1af.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/godot_state_charts/atomic_state.svg"
dest_files=[ "res://.import/atomic_state.svg-5ab16e5747cef5b5980c4bf84ef9b1af.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View file

@ -0,0 +1,107 @@
tool
class_name CompoundState, "compound_state.svg"
extends State
## initial state to activate when state is activated
export var initial_state: NodePath setget _set_initial_state
var _active_state: State = null
onready var _initial_state: State = get_node_or_null(initial_state)
func _set_initial_state(value: NodePath) -> void:
initial_state = value
update_configuration_warning()
func _state_init() -> void:
._state_init()
for child in get_children():
if child is State:
child._state_init()
func _state_enter() -> void:
._state_enter()
# activate initial state
if _initial_state != null:
_active_state = _initial_state
_active_state._state_enter()
else:
push_error("no initial state set for state %s" % name)
func _state_exit() -> void:
# deactivate current state
if _active_state != null:
_active_state._state_exit()
_active_state = null
._state_exit()
func _state_event(event: String) -> bool:
if not active:
return false
# forward event to active state
if is_instance_valid(_active_state):
if _active_state._state_event(event):
emit_signal("event_received", event)
return true
# if event not handled by active state, handle here
return ._state_event(event)
func _handle_transition(transition: Transition, source: State) -> void:
var target: State = transition.resolve_target()
if not target is State:
push_error("the target state: %s of transition from state: %s is not a state" % [str(transition.to), source.name])
return
if target.active:
return
# if direct child, just switch active state
if target in get_children():
# deactivate current state
if is_instance_valid(_active_state):
_active_state._state_exit()
# activate target state
_active_state = target
_active_state._state_enter()
return
# if ancestor, activate next state down and let it handle transition further
if self.is_a_parent_of(target):
# find which child is also ancestor
for child in get_children():
if child.is_a_parent_of(target):
# change state if necessary
if _active_state != child:
if is_instance_valid(_active_state):
_active_state._state_exit()
_active_state = child
_active_state._state_enter()
child._handle_transition(transition, source)
return
return
# target is a cousin, defer to mommy
get_parent()._handle_transition(transition, source)
func _get_configuration_warning() -> String:
var warning := ._get_configuration_warning()
if not warning.empty():
return warning
if get_child_count() == 0:
return "compound states must have at least one child state"
var child_state = get_node_or_null(initial_state)
if not is_instance_valid(child_state):
return "initial state not found, is the path correct?"
if child_state.get_parent() != self:
return "initial state must be a direct child of this compound state"
if not child_state is State:
return "initial state must be a State"
return ""

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<rect id="Artboard1" x="0" y="0" width="32" height="32" style="fill:none;"/>
<g id="Artboard11" serif:id="Artboard1">
<g transform="matrix(1.03705,0,0,1.03705,-0.460588,-0.659827)">
<g id="BG">
<path d="M30.337,8.833C30.337,4.841 27.096,1.601 23.104,1.601L8.64,1.601C4.649,1.601 1.408,4.841 1.408,8.833L1.408,23.297C1.408,27.288 4.649,30.529 8.64,30.529L23.104,30.529C27.096,30.529 30.337,27.288 30.337,23.297L30.337,8.833Z" style="fill:none;stroke:rgb(225,142,57);stroke-width:0.96px;"/>
</g>
</g>
<g id="CompoundState">
<path d="M7.984,22.271L16.112,8.238L24.694,22.425L7.984,22.271Z" style="fill:none;stroke:rgb(225,142,57);stroke-width:2px;"/>
<g transform="matrix(1.36246,0,0,1.36246,-18.1682,-4.24482)">
<circle cx="19.207" cy="19.263" r="4.404" style="fill:rgb(225,142,57);"/>
</g>
<g transform="matrix(1.36246,0,0,1.36246,-2.16822,-4.24482)">
<circle cx="19.207" cy="19.263" r="4.404" style="fill:rgb(225,142,57);"/>
</g>
<g transform="matrix(1.36246,0,0,1.36246,-10.1682,-17.6299)">
<circle cx="19.207" cy="19.263" r="4.404" style="fill:rgb(225,142,57);"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/compound_state.svg-84780d78ec1f15e1cbb9d20f4df031a7.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/godot_state_charts/compound_state.svg"
dest_files=[ "res://.import/compound_state.svg-84780d78ec1f15e1cbb9d20f4df031a7.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View file

@ -0,0 +1,10 @@
tool
extends EditorPlugin
# plugin initialization
func _enter_tree() -> void:
pass
# plugin cleanup
func _exit_tree() -> void:
pass

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<rect id="Artboard1" x="0" y="0" width="32" height="32" style="fill:none;"/>
<g id="Artboard11" serif:id="Artboard1">
<g transform="matrix(1.03705,0,0,1.03705,-0.460588,-0.659827)">
<g id="BG">
<path d="M30.337,8.833C30.337,4.841 27.096,1.601 23.104,1.601L8.64,1.601C4.649,1.601 1.408,4.841 1.408,8.833L1.408,23.297C1.408,27.288 4.649,30.529 8.64,30.529L23.104,30.529C27.096,30.529 30.337,27.288 30.337,23.297L30.337,8.833Z" style="fill:none;stroke:rgb(225,142,57);stroke-width:0.96px;"/>
</g>
</g>
<g id="HistoryState">
<g transform="matrix(1,0,0,1,0.326002,-0.0776194)">
<path d="M7.731,16.235C7.731,11.827 11.31,8.248 15.718,8.248C20.127,8.248 23.706,11.827 23.706,16.235C23.706,20.644 20.127,24.222 15.718,24.222C13.665,24.222 11.792,23.446 10.377,22.171" style="fill:none;stroke:rgb(225,142,57);stroke-width:2px;"/>
</g>
<g transform="matrix(1,0,0,1,0.465717,0)">
<path d="M7.731,16.235L10.089,16.228L7.707,18.393L5.332,16.235L7.731,16.235Z" style="fill:none;stroke:rgb(225,142,57);stroke-width:2px;"/>
</g>
<g transform="matrix(1,0,0,1,0.294954,0.0776194)">
<path d="M15.646,12.205L15.568,16.908L18.021,18.771" style="fill:none;stroke:rgb(225,142,57);stroke-width:2px;"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/history_state.svg-7ed355ddc4d844fa3139e70c23187edd.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/godot_state_charts/history_state.svg"
dest_files=[ "res://.import/history_state.svg-7ed355ddc4d844fa3139e70c23187edd.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View file

@ -0,0 +1,53 @@
tool
class_name ParallelState, "parallel_state.svg"
extends State
var _sub_states: Array = []
func _state_init() -> void:
._state_init()
for child in get_children():
if child is State:
_sub_states.append(child)
child._state_init()
func _state_enter() -> void:
._state_enter()
# enter all children
for child in _sub_states:
child._state_enter()
func _state_exit() -> void:
# exit all children
for child in _sub_states:
child._state_exit()
._state_exit()
func _state_event(event: String) -> bool:
if not active:
return false
# forward to all children
var handled := false
for child in _sub_states:
var child_handled = child._state_event(event)
handled = handled or child_handled
# if child handled event, no more touchy
if handled:
emit_signal("event_received", event)
return true
# otherwise handle ourselves
return ._state_event(event)
func _get_configuration_warning() -> String:
var warning := ._get_configuration_warning()
if not warning.empty():
return warning
if get_child_count() == 0:
return "parallel states should have at least one child state"
return ""

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<rect id="Artboard1" x="0" y="0" width="32" height="32" style="fill:none;"/>
<g id="Artboard11" serif:id="Artboard1">
<g transform="matrix(1.03705,0,0,1.03705,-0.460588,-0.659827)">
<g id="BG">
<path d="M30.337,8.833C30.337,4.841 27.096,1.601 23.104,1.601L8.64,1.601C4.649,1.601 1.408,4.841 1.408,8.833L1.408,23.297C1.408,27.288 4.649,30.529 8.64,30.529L23.104,30.529C27.096,30.529 30.337,27.288 30.337,23.297L30.337,8.833Z" style="fill:none;stroke:rgb(225,142,57);stroke-width:0.96px;"/>
</g>
</g>
<g id="ParallelState">
<g transform="matrix(1.36246,0,0,1.36246,-10.1682,-18.2448)">
<circle cx="19.207" cy="19.263" r="4.404" style="fill:rgb(225,142,57);"/>
</g>
<g transform="matrix(1,0,0,1,-0.0397943,-0.229175)">
<path d="M4.306,16.267L27.54,16.341" style="fill:none;stroke:rgb(225,142,57);stroke-width:2px;"/>
</g>
<g transform="matrix(1.36246,0,0,1.36246,-10.1682,-2.24482)">
<circle cx="19.207" cy="19.263" r="4.404" style="fill:rgb(225,142,57);"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/parallel_state.svg-33f40e94bafae79f072d67563e0adcd3.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/godot_state_charts/parallel_state.svg"
dest_files=[ "res://.import/parallel_state.svg-33f40e94bafae79f072d67563e0adcd3.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View file

@ -0,0 +1,7 @@
[plugin]
name="Godot State Charts"
description="A simple, yet powerful state charts library for Godot"
author="derkork"
version="0.0.1"
script="godot_state_charts.gd"

View file

@ -0,0 +1,132 @@
tool
class_name State, "state.svg"
extends Node
## called when state is entered
signal state_entered()
## called when state is exited
signal state_exited()
## called when state recieves an event while active
signal event_received(event)
## called when the state is processing
signal state_processing(delta)
## called when the state is physics_processing
signal state_physics_processing(delta)
## processing mode
enum ProcessMode {IDLE, PHYSICS}
## whether to process transition delays during physics or idle frames
export (ProcessMode) var transition_process_mode: int = ProcessMode.PHYSICS
## events to consume so that parent state can not
export (Array, String) var consumed_events: Array = []
## whether the current state is active
var active: bool setget _set_active
func _set_active(value: bool):
active = value
set_process(value)
set_physics_process(value)
## all of the state's transitions
var _transitions: Array = []
## queued transition to take
var _queued_transition: Transition = null
## time until queued transition is taken
var _queued_transition_time: float = 0.0
## called when building the state chart
func _state_init() -> void:
_set_active(false)
# get references to transitions
_transitions.clear()
for child in get_children():
if child is Transition:
_transitions.append(child as Transition)
## called when state is entered
func _state_enter() -> void:
_set_active(true)
emit_signal("state_entered")
# check eventless transitions
for transition in _transitions:
if not transition.has_event() and transition.evaluate_guard():
# first match is taken
_queue_transition(transition)
## called when state is exited
func _state_exit() -> void:
_set_active(false)
emit_signal("state_exited")
## handles given event. returns true if it is consumed
func _state_event(event: String) -> bool:
if not active:
return false
# emit event received signal
emit_signal("event_received", event)
#check for transitions reacting to event
for transition in _transitions:
if transition.event == event and transition.evaluate_guard():
# first match is taken
_queue_transition(transition)
return true
if event in consumed_events:
return true
return false
func _process(delta: float) -> void:
if Engine.editor_hint:
return
# emit processing signal
emit_signal("state_processing", delta)
# process transitions if mode is IDLE
if transition_process_mode == ProcessMode.IDLE:
_process_transition(delta)
func _physics_process(delta: float) -> void:
if Engine.editor_hint:
return
# emit physics processing signal
emit_signal("state_physics_processing", delta)
# process transitions if mode is PHYSICS
if transition_process_mode == ProcessMode.PHYSICS:
_process_transition(delta)
## queues a transition to be taken
func _queue_transition(transition: Transition) -> void:
_queued_transition = transition
_queued_transition_time = transition.delay
## checks for and processes queued transition
func _process_transition(delta: float) -> void:
# check for queued transition
if _queued_transition != null:
_queued_transition_time -= delta
# if ready, handle transition and clear queue
if _queued_transition_time <= 0.0:
var transition = _queued_transition
_queued_transition = null
_queued_transition_time = 0.0
_handle_transition(transition, self)
## attempts to take transition
func _handle_transition(transition: Transition, source: State) -> void:
push_error("state %s cannot handle transitions" % name)
func _get_configuration_warning() -> String:
return ""

View file

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="100%"
height="100%"
viewBox="0 0 32 32"
version="1.1"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;"
id="svg132"
sodipodi:docname="state.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:serif="http://www.serif.com/"><defs
id="defs136"><linearGradient
inkscape:collect="always"
id="linearGradient1345"><stop
style="stop-color:#e18e39;stop-opacity:1;"
offset="0"
id="stop1341" /><stop
style="stop-color:#e18e39;stop-opacity:0;"
offset="1"
id="stop1343" /></linearGradient><linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1345"
id="linearGradient1347"
x1="12.971001"
y1="16.312"
x2="20.609001"
y2="16.312"
gradientUnits="userSpaceOnUse" /></defs><sodipodi:namedview
id="namedview134"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="17.46875"
inkscape:cx="5.5241503"
inkscape:cy="16.028623"
inkscape:window-width="1302"
inkscape:window-height="737"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="Artboard11" />
<rect
id="Artboard1"
x="0"
y="0"
width="32"
height="32"
style="fill:none;" />
<g
id="Artboard11"
serif:id="Artboard1">
<g
transform="matrix(1.03705,0,0,1.03705,-0.460588,-0.659827)"
id="g124"
style="stroke-width:0.99995179;stroke-dasharray:none">
<g
id="BG"
style="stroke-width:0.99995179;stroke-dasharray:none">
<path
d="M30.337,8.833C30.337,4.841 27.096,1.601 23.104,1.601L8.64,1.601C4.649,1.601 1.408,4.841 1.408,8.833L1.408,23.297C1.408,27.288 4.649,30.529 8.64,30.529L23.104,30.529C27.096,30.529 30.337,27.288 30.337,23.297L30.337,8.833Z"
style="fill:none;stroke:rgb(225, 142, 57);stroke-width:0.99995179;stroke-dasharray:none"
id="path121" />
</g>
</g>
<g
transform="matrix(3.01177,0,0,3.01177,-34.5681,-33.1274)"
id="g129"
style="fill:none;stroke:#e18e39;stroke-opacity:1;opacity:1;stroke-width:0.83406103;stroke-dasharray:none">
<g
id="AtomicState"
style="fill:none;stroke:#e18e39;stroke-opacity:1;stroke-width:0.83406103;stroke-dasharray:none">
<circle
cx="16.79"
cy="16.312"
r="3.319"
style="fill:none;stroke:#e18e39;stroke-opacity:1;stroke-width:0.83406103;stroke-dasharray:none"
id="circle126" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/state.svg-282f80c2b8fcf2d526aa3e32719babaf.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/godot_state_charts/state.svg"
dest_files=[ "res://.import/state.svg-282f80c2b8fcf2d526aa3e32719babaf.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View file

@ -0,0 +1,69 @@
tool
class_name StateChart, "state_chart.svg"
extends Node
## whether chart should initialize on its own or be done manually
export var auto_initialize: bool = true
## whether chart should propagate processing events every frame
export var idle_frame_event: bool = false
export var physics_frame_event: bool = false
# root state of the state chart
var _state: State = null
# values available to expression guards
var _guard_properties: Dictionary = {}
func _ready() -> void:
if Engine.editor_hint:
return
if auto_initialize:
initialize()
func initialize() -> void:
# make sure only one child exists
if get_child_count() != 1:
push_error("StateChart must have exactly one child")
return
# verify child is a State
var child = get_child(0)
if not child is State:
push_error("StateChart's child must be a State")
return
# initialize states
_state = child as State
_state._state_init()
# enter root state
_state._state_enter()
## sends an event to be propagated through the states
func send_event(event: String) -> void:
if not is_instance_valid(_state):
push_error("StateChart is not initialized properly")
return
_state._state_event(event)
## sets a property available to guard expressions in transitions
func set_guard_property(property: String, value) -> void:
_guard_properties[property] = value
func _get_configuration_warning() -> String:
if get_child_count() != 1:
return "StateChart must have exactly one child"
if not get_child(0) is State:
return "StateChart's child must be a State"
return ""
# send frame events that transition can listen to if it should evaluate
# its guard every frame
func _process(delta: float) -> void:
if idle_frame_event:
send_event("idle_frame")
func _physics_process(delta: float) -> void:
if physics_frame_event:
send_event("physics_frame")

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<rect id="Artboard1" x="0" y="0" width="32" height="32" style="fill:none;"/>
<g id="Artboard11" serif:id="Artboard1">
<g transform="matrix(1.03705,0,0,1.03705,-0.460588,-0.659827)">
<g id="BG">
<path d="M30.337,8.833C30.337,4.841 27.096,1.601 23.104,1.601L8.64,1.601C4.649,1.601 1.408,4.841 1.408,8.833L1.408,23.297C1.408,27.288 4.649,30.529 8.64,30.529L23.104,30.529C27.096,30.529 30.337,27.288 30.337,23.297L30.337,8.833Z" style="fill:none;stroke:rgb(225,142,57);stroke-width:0.96px;"/>
</g>
</g>
<g id="Statechart">
<g transform="matrix(0.672421,0,0,0.672421,-1.95754,-0.281501)">
<path d="M26.032,10.926C26.032,8.533 24.089,6.591 21.696,6.591L13.025,6.591C10.632,6.591 8.689,8.533 8.689,10.926L8.689,20.247C8.689,22.639 10.632,24.582 13.025,24.582L21.696,24.582C24.089,24.582 26.032,22.639 26.032,20.247L26.032,10.926Z" style="fill:rgb(225,142,57);stroke:rgb(225,142,57);stroke-width:2.97px;"/>
</g>
<g transform="matrix(0.851682,0,0,0.851682,5.75568,7.00772)">
<path d="M26.032,10.926C26.032,8.533 24.089,6.591 21.696,6.591L13.025,6.591C10.632,6.591 8.689,8.533 8.689,10.926L8.689,20.247C8.689,22.639 10.632,24.582 13.025,24.582L21.696,24.582C24.089,24.582 26.032,22.639 26.032,20.247L26.032,10.926Z" style="fill:rgb(225,142,57);stroke:rgb(225,142,57);stroke-width:2.35px;"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/state_chart.svg-5c268dd045b20d73dfacd5cdf7606676.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/godot_state_charts/state_chart.svg"
dest_files=[ "res://.import/state_chart.svg-5c268dd045b20d73dfacd5cdf7606676.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View file

@ -0,0 +1,24 @@
class_name StateChartDebug
extends Tree
var target: StateChart = null
func _init() -> void:
set("custom_styles/bg", StyleBoxEmpty.new())
func _physics_process(delta: float) -> void:
if target is StateChart and visible:
clear()
var root_state = target.get_child(0)
if root_state is State:
var item = create_item(null)
item.set_text(0, root_state.name)
_find_active_states(root_state, item)
func _find_active_states(state: State, state_item: TreeItem):
for child in state.get_children():
if child is State:
if child.active:
var item := create_item(state_item)
item.set_text(0, child.name)
_find_active_states(child, item)

View file

@ -0,0 +1,88 @@
tool
class_name Transition, "transition.svg"
extends Node
## cyclic reference workarounds :/
var _State = load("res://addons/godot_state_charts/state.gd")
var _StateChart = load("res://addons/godot_state_charts/state_chart.gd")
## state to transition to
export var to: NodePath
## event to react to for transition
export var event: String
## delay before taking transition
export var delay: float = 0.0
## expression to determine whether to take transition
## if it returns true the transition will be taken
## expression properties added via the StateChart are available here
## if states are listed in `monitored_states`, they will be available as
## boolean properties named "[state]_active"
export (String, MULTILINE) var guard_expression: String
## states to check if active
## they are available in the guard expression as bools named "[state]_active"
export (Array, NodePath) var checked_states: Array = []
## returns true if the transition has an event to react to
func has_event() -> bool:
return event != null and not event.empty()
## returns the target state
func resolve_target():
if to == null or to.is_empty():
return null
var target = get_node_or_null(to)
if target is _State:
return target
return null
## returns true if the transition should be taken at this time
func evaluate_guard() -> bool:
# return true if there is no guard
if guard_expression == null or guard_expression.empty():
return true
# find root StateChart
var root = get_parent()
while is_instance_valid(root) and not root is _StateChart:
root = root.get_parent()
if not is_instance_valid(root):
push_error("could not find root StateChart, cannot evaluate expression")
return false
# combine monitored states with expression properties
var properties: Dictionary = root._guard_properties.duplicate()
for node in checked_states:
var state = get_node_or_null(node)
if is_instance_valid(state) and state is _State:
properties["in_" + state.name] = state.active
# construct expression and set up properties
var expression := Expression.new()
var input_names = properties.keys()
# attempt to parse expression
var parse_result = expression.parse(guard_expression, input_names)
if parse_result != OK:
push_error("error parsing expression: " + expression.get_error_text())
return false
# create array of input values
var input_values = []
for input_name in input_names:
input_values.append(properties[input_name])
# execute expression and validate result
var result = expression.execute(input_values)
if expression.has_execute_failed():
push_error("failed to execute expression: " + expression.get_error_text())
return false
if typeof(result) != TYPE_BOOL:
push_error("result is not a boolean value. returning false")
return false
return result

View file

@ -0,0 +1,93 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="100%"
height="100%"
viewBox="0 0 32 32"
version="1.1"
xml:space="preserve"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;"
id="svg86"
sodipodi:docname="transition.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:serif="http://www.serif.com/"><defs
id="defs90" /><sodipodi:namedview
id="namedview88"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="17.46875"
inkscape:cx="16"
inkscape:cy="16.257603"
inkscape:window-width="1302"
inkscape:window-height="737"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="Transition" />
<rect
id="Artboard1"
x="0"
y="0"
width="32"
height="32"
style="fill:none;" />
<g
id="Artboard11"
serif:id="Artboard1">
<g
transform="matrix(1.03705,0,0,1.03705,-0.460588,-0.659827)"
id="g70"
style="stroke:#ffdf00;stroke-opacity:1">
<g
id="BG"
style="stroke:#ffdf00;stroke-opacity:1">
<path
d="M30.337,8.833C30.337,4.841 27.096,1.601 23.104,1.601L8.64,1.601C4.649,1.601 1.408,4.841 1.408,8.833L1.408,23.297C1.408,27.288 4.649,30.529 8.64,30.529L23.104,30.529C27.096,30.529 30.337,27.288 30.337,23.297L30.337,8.833Z"
style="fill:none;stroke:#ffdf00;stroke-width:0.96px;stroke-opacity:1"
id="path67" />
</g>
</g>
<g
id="Transition">
<g
transform="matrix(0.59386,-0.00129228,-0.00129228,0.999996,1.73018,-0.223543)"
id="g74"
style="stroke:#ffdf00;stroke-opacity:1">
<path
d="M14.852,23.427C30.642,25.277 38.781,18.528 34.54,10.944"
style="fill:none;stroke:#ffdf00;stroke-width:2.44px;stroke-opacity:1"
id="path72" />
</g>
<g
transform="matrix(1.36246,0,0,1.36246,-3.81851,-16.9755)"
id="g78">
<circle
cx="19.207"
cy="19.263"
r="4.404"
style="fill:#ffdf00;fill-opacity:1"
id="circle76" />
</g>
<g
transform="matrix(1.36246,0,0,1.36246,-16.9151,-2.76732)"
id="g82"
style="fill:#ffdf00;fill-opacity:1">
<circle
cx="19.207"
cy="19.263"
r="4.404"
style="fill:#ffdf00;fill-opacity:1"
id="circle80" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/transition.svg-20a1a52a85a71c731b2386952d47b2f7.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/godot_state_charts/transition.svg"
dest_files=[ "res://.import/transition.svg-20a1a52a85a71c731b2386952d47b2f7.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

BIN
audio/glass_break.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/glass_break.ogg-90d29d1196efeaa1b90b121f831dc311.oggstr"
[deps]
source_file="res://audio/glass_break.ogg"
dest_files=[ "res://.import/glass_break.ogg-90d29d1196efeaa1b90b121f831dc311.oggstr" ]
[params]
loop=false
loop_offset=0

BIN
audio/glass_crack.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/glass_crack.ogg-f61a203463634593b8f657b7bd6c8959.oggstr"
[deps]
source_file="res://audio/glass_crack.ogg"
dest_files=[ "res://.import/glass_crack.ogg-f61a203463634593b8f657b7bd6c8959.oggstr" ]
[params]
loop=false
loop_offset=0

BIN
audio/glass_crack.wav Normal file

Binary file not shown.

View file

@ -0,0 +1,23 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/glass_crack.wav-e7bba5d7d195585aae47530d080ae6b3.sample"
[deps]
source_file="res://audio/glass_crack.wav"
dest_files=[ "res://.import/glass_crack.wav-e7bba5d7d195585aae47530d080ae6b3.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/74(game_over).ogg-c8daa270fc6254ebdb545c9163121582.oggstr"
[deps]
source_file="res://audio/music/74(game_over).ogg"
dest_files=[ "res://.import/74(game_over).ogg-c8daa270fc6254ebdb545c9163121582.oggstr" ]
[params]
loop=false
loop_offset=0

BIN
audio/music/BBBBBBBB.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/BBBBBBBB.ogg-cc9e6a4bb1b385b89207987440a19675.oggstr"
[deps]
source_file="res://audio/music/BBBBBBBB.ogg"
dest_files=[ "res://.import/BBBBBBBB.ogg-cc9e6a4bb1b385b89207987440a19675.oggstr" ]
[params]
loop=true
loop_offset=12.091

Binary file not shown.

View file

@ -1,15 +0,0 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
path="res://.import/bumpy_ride.mp3-55d67433bf2f6cadbc5025701c782443.mp3str"
[deps]
source_file="res://audio/music/bumpy_ride.mp3"
dest_files=[ "res://.import/bumpy_ride.mp3-55d67433bf2f6cadbc5025701c782443.mp3str" ]
[params]
loop=true
loop_offset=0

Binary file not shown.

View file

@ -1,15 +0,0 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/burnt_in.ogg-5771350ae6e2877e32aaf932b22c784c.oggstr"
[deps]
source_file="res://audio/music/burnt_in.ogg"
dest_files=[ "res://.import/burnt_in.ogg-5771350ae6e2877e32aaf932b22c784c.oggstr" ]
[params]
loop=false
loop_offset=0

BIN
audio/music/burnt_out.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/burnt_out.ogg-330f5bc87b626c0f8fed84e8c4c6a359.oggstr"
[deps]
source_file="res://audio/music/burnt_out.ogg"
dest_files=[ "res://.import/burnt_out.ogg-330f5bc87b626c0f8fed84e8c4c6a359.oggstr" ]
[params]
loop=true
loop_offset=42.507

BIN
audio/music/cryokiller.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/cryokiller.ogg-d287a2f5c24b6c8114a93e405fe3c292.oggstr"
[deps]
source_file="res://audio/music/cryokiller.ogg"
dest_files=[ "res://.import/cryokiller.ogg-d287a2f5c24b6c8114a93e405fe3c292.oggstr" ]
[params]
loop=true
loop_offset=71.924

Binary file not shown.

View file

@ -1,15 +0,0 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
path="res://.import/dusk_park.mp3-4f32391dd5241853bbe02a0e983b8702.mp3str"
[deps]
source_file="res://audio/music/dusk_park.mp3"
dest_files=[ "res://.import/dusk_park.mp3-4f32391dd5241853bbe02a0e983b8702.mp3str" ]
[params]
loop=true
loop_offset=0

BIN
audio/music/dusk_park.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/dusk_park.ogg-66b2f58b4fbcb15fb39169e2ef3dc572.oggstr"
[deps]
source_file="res://audio/music/dusk_park.ogg"
dest_files=[ "res://.import/dusk_park.ogg-66b2f58b4fbcb15fb39169e2ef3dc572.oggstr" ]
[params]
loop=true
loop_offset=14.25

BIN
audio/music/empty_motel.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/empty_motel.ogg-1334b9d142536ba1f2d1ff346aa90c0f.oggstr"
[deps]
source_file="res://audio/music/empty_motel.ogg"
dest_files=[ "res://.import/empty_motel.ogg-1334b9d142536ba1f2d1ff346aa90c0f.oggstr" ]
[params]
loop=false
loop_offset=0

BIN
audio/music/intro.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/intro.ogg-a141f549457bc6a41bef73e129d9f7b6.oggstr"
[deps]
source_file="res://audio/music/intro.ogg"
dest_files=[ "res://.import/intro.ogg-a141f549457bc6a41bef73e129d9f7b6.oggstr" ]
[params]
loop=false
loop_offset=0

Binary file not shown.

View file

@ -1,15 +0,0 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
path="res://.import/klystron.mp3-602926993b6a74c407f1b84641b06fdd.mp3str"
[deps]
source_file="res://audio/music/klystron.mp3"
dest_files=[ "res://.import/klystron.mp3-602926993b6a74c407f1b84641b06fdd.mp3str" ]
[params]
loop=true
loop_offset=0

BIN
audio/music/klystron.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/klystron.ogg-2dce5b1690502308cf909f0b9eda8d99.oggstr"
[deps]
source_file="res://audio/music/klystron.ogg"
dest_files=[ "res://.import/klystron.ogg-2dce5b1690502308cf909f0b9eda8d99.oggstr" ]
[params]
loop=true
loop_offset=6.775

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/klystron_vip.ogg-fb327691a1b5cc895d2d8258fd374fdb.oggstr"
[deps]
source_file="res://audio/music/klystron_vip.ogg"
dest_files=[ "res://.import/klystron_vip.ogg-fb327691a1b5cc895d2d8258fd374fdb.oggstr" ]
[params]
loop=true
loop_offset=0

BIN
audio/music/mitten.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/mitten.ogg-ca50efac016b8bf1022a91f574ac6ca6.oggstr"
[deps]
source_file="res://audio/music/mitten.ogg"
dest_files=[ "res://.import/mitten.ogg-ca50efac016b8bf1022a91f574ac6ca6.oggstr" ]
[params]
loop=true
loop_offset=0

Binary file not shown.

View file

@ -1,15 +0,0 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
path="res://.import/moon_trail.mp3-e5596d3a9a378d4307b426522ca94d8d.mp3str"
[deps]
source_file="res://audio/music/moon_trail.mp3"
dest_files=[ "res://.import/moon_trail.mp3-e5596d3a9a378d4307b426522ca94d8d.mp3str" ]
[params]
loop=true
loop_offset=0

BIN
audio/music/moon_trail.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/moon_trail.ogg-8108eb4067344b396b1f232ad37111d0.oggstr"
[deps]
source_file="res://audio/music/moon_trail.ogg"
dest_files=[ "res://.import/moon_trail.ogg-8108eb4067344b396b1f232ad37111d0.oggstr" ]
[params]
loop=true
loop_offset=0

BIN
audio/music/pause.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/pause.ogg-e880bf592ac2065d4f2c443ae1e801bb.oggstr"
[deps]
source_file="res://audio/music/pause.ogg"
dest_files=[ "res://.import/pause.ogg-e880bf592ac2065d4f2c443ae1e801bb.oggstr" ]
[params]
loop=true
loop_offset=0

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/precision_parasite.ogg-48c1edc2a47c76aa62b0460e1c85582d.oggstr"
[deps]
source_file="res://audio/music/precision_parasite.ogg"
dest_files=[ "res://.import/precision_parasite.ogg-48c1edc2a47c76aa62b0460e1c85582d.oggstr" ]
[params]
loop=true
loop_offset=16.684

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/rev83-wondering-now-short.ogg-6a06f237d6afb85ca00721c00a48a0ef.oggstr"
[deps]
source_file="res://audio/music/rev83-wondering-now-short.ogg"
dest_files=[ "res://.import/rev83-wondering-now-short.ogg-6a06f237d6afb85ca00721c00a48a0ef.oggstr" ]
[params]
loop=false
loop_offset=0

Binary file not shown.

View file

@ -1,15 +0,0 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
path="res://.import/rumble_loop.mp3-8296079a496312740d286c71cb69f818.mp3str"
[deps]
source_file="res://audio/music/rumble_loop.mp3"
dest_files=[ "res://.import/rumble_loop.mp3-8296079a496312740d286c71cb69f818.mp3str" ]
[params]
loop=true
loop_offset=0

BIN
audio/music/rumble_loop.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/rumble_loop.ogg-75748d2cd32c4c0b3bc7d4e36971e0ce.oggstr"
[deps]
source_file="res://audio/music/rumble_loop.ogg"
dest_files=[ "res://.import/rumble_loop.ogg-75748d2cd32c4c0b3bc7d4e36971e0ce.oggstr" ]
[params]
loop=true
loop_offset=0

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/rumble_revolution.ogg-f4caaf13c218d7e4e59d5ae9bc9b9d8a.oggstr"
[deps]
source_file="res://audio/music/rumble_revolution.ogg"
dest_files=[ "res://.import/rumble_revolution.ogg-f4caaf13c218d7e4e59d5ae9bc9b9d8a.oggstr" ]
[params]
loop=false
loop_offset=0

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/rumble_revolution_intro.ogg-cb37ff1dd71c64fd16566b212babca20.oggstr"
[deps]
source_file="res://audio/music/rumble_revolution_intro.ogg"
dest_files=[ "res://.import/rumble_revolution_intro.ogg-cb37ff1dd71c64fd16566b212babca20.oggstr" ]
[params]
loop=false
loop_offset=0

BIN
audio/music/sleet.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/sleet.ogg-dfb9adcbe69bd6791c93c0f86b073746.oggstr"
[deps]
source_file="res://audio/music/sleet.ogg"
dest_files=[ "res://.import/sleet.ogg-dfb9adcbe69bd6791c93c0f86b073746.oggstr" ]
[params]
loop=true
loop_offset=0

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/sleet0.ogg-89329c21f9cd934500ba65a259d96b96.oggstr"
[deps]
source_file="res://audio/music/sleet0.ogg"
dest_files=[ "res://.import/sleet0.ogg-89329c21f9cd934500ba65a259d96b96.oggstr" ]
[params]
loop=false
loop_offset=0

Binary file not shown.

View file

@ -1,15 +0,0 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
path="res://.import/smokestack.mp3-27e96096ab30e2a396e177e479e12ab9.mp3str"
[deps]
source_file="res://audio/music/smokestack.mp3"
dest_files=[ "res://.import/smokestack.mp3-27e96096ab30e2a396e177e479e12ab9.mp3str" ]
[params]
loop=true
loop_offset=0

BIN
audio/music/smokestack.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/smokestack.ogg-e5ff6f583a64a996a107e20d41fd576d.oggstr"
[deps]
source_file="res://audio/music/smokestack.ogg"
dest_files=[ "res://.import/smokestack.ogg-e5ff6f583a64a996a107e20d41fd576d.oggstr" ]
[params]
loop=true
loop_offset=10.519

BIN
audio/music/spine_v2.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/spine_v2.ogg-015bf0c6c191c0ae9ad018801a433c92.oggstr"
[deps]
source_file="res://audio/music/spine_v2.ogg"
dest_files=[ "res://.import/spine_v2.ogg-015bf0c6c191c0ae9ad018801a433c92.oggstr" ]
[params]
loop=true
loop_offset=0

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/the_dirt_under_the_meadow.ogg-ec40b1fe83041819a74174d557b9a8a2.oggstr"
[deps]
source_file="res://audio/music/the_dirt_under_the_meadow.ogg"
dest_files=[ "res://.import/the_dirt_under_the_meadow.ogg-ec40b1fe83041819a74174d557b9a8a2.oggstr" ]
[params]
loop=false
loop_offset=0

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/vitreous_squares.ogg-524c15223b7d282c1532fe2fa5032ad4.oggstr"
[deps]
source_file="res://audio/music/vitreous_squares.ogg"
dest_files=[ "res://.import/vitreous_squares.ogg-524c15223b7d282c1532fe2fa5032ad4.oggstr" ]
[params]
loop=true
loop_offset=0

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/2600_charge.ogg-552c059b733cc8184b757ad5155adbff.oggstr"
[deps]
source_file="res://audio/sounds/2600_charge.ogg"
dest_files=[ "res://.import/2600_charge.ogg-552c059b733cc8184b757ad5155adbff.oggstr" ]
[params]
loop=false
loop_offset=0

Binary file not shown.

View file

@ -11,5 +11,5 @@ dest_files=[ "res://.import/a_bmilc.ogg-cb786a4aec8fbf031b4e9635d452a4a8.oggstr"
[params] [params]
loop=true loop=false
loop_offset=0 loop_offset=0

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