Compare commits

...

78 commits

Author SHA1 Message Date
69115437fe Unfunaversary 2024-09-27 11:31:20 -07:00
f5d435734c result 2024-09-26 13:06:33 -07:00
1eb98a23cd typo fix 2024-09-26 11:44:48 -07:00
2061695212 savesystem 2024-09-26 11:42:29 -07:00
672a09d32e setings 2024-09-25 17:43:45 -07:00
b1e1a6202e quest 2024-09-25 04:35:43 -07:00
a7b9199d38 quest 2024-09-23 17:27:17 -07:00
449afceb0d aero 2024-09-23 11:15:07 -07:00
02a5a73656 cutscenes 2024-09-20 11:28:17 -07:00
0d29a9a48f music 2024-09-16 16:29:41 -07:00
cde2f56c3a download mirror 2024-09-09 14:04:39 -07:00
bca603a57b download mirror 2024-09-09 14:03:14 -07:00
e8bf749823 new release 2024-09-08 16:32:57 -07:00
f399107c5c Tokyo Clock 2024-09-07 15:56:32 -07:00
4cd9cd4925 gamepad detect 2024-09-07 09:25:58 -07:00
9ceb77e2f9 game over 2024-09-05 17:16:49 -07:00
176634ab28 troublemakers 2024-09-04 17:15:22 -07:00
7b36f2d53b troublemakers 2024-08-23 20:54:38 -07:00
f6b36c722c Honker Railway 2024-08-16 13:54:37 -07:00
a43a3eb6dd fix 2024-08-05 05:33:13 -07:00
50cac5c47b map 2024-08-04 15:33:57 -07:00
512f573fb0 boom boom torofi (release) 2024-07-25 04:12:24 -07:00
d7f3f25484 boom boom torofi (release) 2024-07-25 04:03:39 -07:00
d45ead988f boom boom torofi 2024-07-24 12:42:16 -07:00
4ae13ee3f3 rubber girl 2024-07-23 16:46:32 -07:00
45db4b4f64 level clear 2024-07-15 17:22:33 -07:00
23ce8d32f8 android test 2024-07-14 17:23:34 -07:00
f2ea6d8e0e android test 2024-07-14 16:56:59 -07:00
b51172ea17 android test 2024-07-14 15:29:26 -07:00
9bb25e5e50 Android Test Build 2024-07-14 15:24:37 -07:00
7930630475 surround sound 2024-07-14 14:55:40 -07:00
43323bb086 update readme 2024-07-12 01:43:15 -07:00
02fe98fa06 update credits 2024-07-08 04:21:37 -07:00
c6fa99bf00 runlevels fix 2024-07-05 09:53:41 -07:00
b61ba36836 update readme 2024-07-02 02:01:46 -07:00
3f98f4dc17 update readme 2024-07-01 01:37:37 -07:00
50f828ef88 update readme 2024-06-29 18:36:09 -07:00
5f66ba1f1f test release 2024-06-27 08:48:40 -07:00
ae84fc7b67 alsatest 2024-06-26 15:22:53 -07:00
300a271d8e hitbox fix 2024-06-25 14:08:24 -07:00
0e8a1f6332 test release 2024-06-23 11:39:27 -07:00
a8ea563c6f willytest 2024-06-23 11:23:32 -07:00
db2022c33d touchthegrass 2024-06-22 08:22:37 -07:00
7eb094280f bidirectional damage 2024-06-17 14:08:25 -07:00
0f970b3d7a fix 2024-06-15 14:21:13 -07:00
4f6a5bc90c pause menu 2024-06-15 14:11:43 -07:00
89acf97f69 credits update 2024-06-15 07:16:28 -07:00
ba79524c8d wip 2024-06-11 14:36:12 -07:00
c9d81729df pause menu (wip) 2024-06-08 15:09:54 -07:00
6eefbe36dd fix 2024-05-24 08:00:18 -07:00
4879dca5cb update credits 2024-05-23 05:01:54 -07:00
291ca7f841 ww 2024-05-21 23:51:24 -07:00
c207a8be65 test level 2024-05-19 12:12:02 -07:00
dc061b2dea damage calculation (wip) 2024-05-15 15:51:17 -07:00
02ab2a38e9 stat fix 2024-05-15 14:53:24 -07:00
e29387497f stats 2024-05-15 14:19:25 -07:00
d528386b55 stats 2024-05-15 14:11:38 -07:00
0b7c6c9b61 fix 2024-05-14 15:23:23 -07:00
599fc5f5ef cutscenes 2024-05-12 12:54:52 -07:00
662da6fe1c fix 2024-05-10 18:35:07 -07:00
47dd61c2a1 translations 2024-05-09 11:53:19 -07:00
f17a8bee92 bosshealth 2024-05-06 15:57:20 -07:00
62dcb19f4c pine64 2024-05-03 19:22:51 -07:00
39837ccec7 test release 2024-04-27 07:39:52 -07:00
cf76a79628 cutscenes (WIP) 2024-04-22 15:19:53 -07:00
32ec84364c locale (wip) 2024-04-20 18:56:48 -07:00
8f3fc9d45d player's paranoia 2024-04-17 13:00:30 -07:00
d7fab32f44 First Level Test 2024-04-17 11:33:27 -07:00
c12c4be394 fix 2024-04-16 17:42:53 -07:00
930deb7da7 locale (WIP) 2024-04-16 14:30:58 -07:00
839267dd4b locale (WIP) 2024-04-16 14:26:45 -07:00
a8e73a4c70 locale test 2024-04-10 18:04:28 -07:00
a3bcdbc7b8 Kimberly Arch 2024-03-31 11:39:39 -07:00
2e93425b17 update credits 2024-03-30 01:28:35 -07:00
1a98edfac4 test release 2024-03-26 13:28:44 -07:00
bd9287989b diana fix 2024-03-24 12:41:04 -07:00
52b5a32f61 turned bullet bug into a feature 2024-03-24 11:23:12 -07:00
3fed02c051 backdrop build 2024-03-17 11:20:27 -07:00
277 changed files with 7726 additions and 927 deletions

8
.gitignore vendored
View file

@ -2,3 +2,11 @@
.godot/
# nonfree placeholders must be excluded
nonfree/
text.en.translation
text.es.translation
text.ja.translation
Midori in the Magic School.apk
Midori in the Magic School.x86_64
Midori in the Magic School.arm64
Midori in the Magic School.apk.idsig
Midori in the Magic School.pck

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "android"]
path = android
url = https://git.asgardius.company/asgardius/virtualxrpg-android.git

View file

@ -3,6 +3,7 @@ var housefreedom
var welcometext = ""
var playername
func _ready():
_audiotest()
if OS.get_data_dir().begins_with("/home"):
playername = OS.get_data_dir().rsplit("/", true, 7)[2]
else:
@ -13,15 +14,22 @@ func _ready():
if Global.sk:
_sk()
else:
if Global.firstrun:
welcometext = "Welcome to your first session "+playername
else:
welcometext = "Welcome back "+playername
welcometext = "Welcome "+playername
if housefreedom:
welcometext = welcometext+"\nSteam machines are not dead yet"
welcometext = welcometext+"\nValve corporation promotes enviromental pollution"
if OS.get_environment("MANGOHUD").contains("1"):
Global.mangohud = true
welcometext = welcometext+"\nYour overlay already has a FPS counter, built-in one is disabled"
if OS.get_environment("WAYLAND_DISPLAY").length() > 0:
welcometext = welcometext+"\nKung Fury was Willys first victim, Wrights wife his second one, and a robot avoided a third one"
if Global.spkmode == 0:
welcometext = welcometext+"\nExperience Presented in Stereo"
elif Global.spkmode == 1:
welcometext = welcometext+"\nExperience Presented in 3.1 Surround (WIP)"
elif Global.spkmode == 2:
welcometext = welcometext+"\nExperience Presented in 5.1 Surround (WIP)"
elif Global.spkmode == 3:
welcometext = welcometext+"\nExperience Presented in 7.1 Surround (WIP)"
welcometext = welcometext+"\nbooting virtual machine"
#This can be used to detect background process, may be useful later
#var output = []
@ -42,3 +50,6 @@ func _sk():
func _input(event):
if Global.sk && (Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT) || Input.is_joy_button_pressed(0,JOY_BUTTON_Y) || Input.is_joy_button_pressed(0,JOY_BUTTON_A) || Input.is_joy_button_pressed(0,JOY_BUTTON_B) || Input.is_joy_button_pressed(0,JOY_BUTTON_BACK) || Input.is_joy_button_pressed(0,JOY_BUTTON_START) || Input.is_joy_button_pressed(0,JOY_BUTTON_RIGHT_SHOULDER) || Input.is_joy_button_pressed(0,JOY_BUTTON_LEFT_SHOULDER) || Input.is_key_pressed(KEY_ESCAPE) || Input.is_key_pressed(KEY_ENTER)):
get_tree().quit()
func _audiotest():
Global.spkmode = AudioServer.get_speaker_mode()

4
Midori in the Magic School.sh Executable file
View file

@ -0,0 +1,4 @@
#!/bin/sh
echo -ne '\033c\033]0;Midori in the Magic School\a'
base_path="$(dirname "$(realpath "$0")")"
"$base_path/Midori in the Magic School.x86_64" "$@"

View file

@ -2,11 +2,11 @@
<img src=https://git.asgardius.company/asgardius/midori-school/raw/branch/main/icon.png>
An Action Role Playing Game inspired by Alundra, Touhou Project, Megaman X, among others. The only Open Source Genshin Killer and the only game at the moment that offers official bittorrent downloads. This game is made using Godot Engine. You can find engine source code at https://git.asgardius.company/asgardius/virtualx-engine
At the moment this game is only a proof of concept. If you want to help send me an email to asgardius@asgardius.company
An Action Role Playing Game inspired by Alundra, Touhou Project, Megaman X, among others. The only Open Source Genshin Killer and the only game at the moment that offers official bittorrent downloads. This game is made using Godot Engine
At the moment this game is in beta development stage. If you want to help send me an email to asgardius@asgardius.company
You can find game documentation at https://cloud.asgardius.company/s/3tPKHsMznzMjzEc?path=%2Fgame%20documentation%2FMidori%20in%20the%20Magic%20School
A beta build will be released at septembre 28 2024 (unfunaversary build) and First stable release is scheduled near Half Life 3 release
First stable release is scheduled near Half Life 3 release (or maybe an Unfunaversary Day)
Official video channel https://video.asgardius.company/c/asgardius_virtualx
@ -14,6 +14,46 @@ Join community matrix channel at https://matrix.to/#/!gRTRfIdWGKLyCVEusd:asgardi
If you want to help in game development ask at https://matrix.to/#/!bqRfvdEXZATmMsQTSf:asgardius.company?via=asgardius.company
Download links https://elda.asgardius.company/virtualxrpg-dl/
Bittorrent downloads https://elda.asgardius.company/virtualxrpg-torrent/
# Plot
Ceres is a dwarf planet at the Asteroid Belt which has intelligent life since much before than Earth. Most Asteroid Belt natives have pointy ears. There are also animal-based humanoids. All humans from the universe lives here since their planet was destroyed by the Alcohol Discs, but very few of them remains. You are Midori Asgardius, a 15 years old elf girl also know as "The Walking Explosive". You are a student at Kaizo Magic School. Your best friends are Diana Asgardius "The Tuna" and Rikka Grub "The Chuunibyou Cat". 10+ playable characters are awaiting for you (optional gacha machine sold separately). Deal Kung Fu Troublemakers, fight against bullet hell themed bosses, solve exciting puzzles, dig inside trashcans, find beautiful Multi Vector Submarines, defeat martians and Discover the truth of this universe from an unique point of view. If you are maniac try our super hardcore mode. Be kind and have a happy unfunaversary this year. If you have any doubt about this game ask to your father and Kaizo's principal: Page Asgardius. Will you be able to find the secret behind Midori's explosive personality?
# What is a Genshin Killer?
From my point of view, a Genshin Killer is an Anime RPG which include elves among its playable Characters. This term is used since Genshin Impact gained popularity. Midori in the Magic School is a Genshin Killer because most of its playable characters are elves. Genshin Impact has 3 playable characters that look like elves (+1 upcoming one). Honkai Impact 3rd has a playable elf (Elysia). Wuthering Waves also has an elf as a playable character (Yinlin, a tribute to Kimberly Arch from Midori in the Magic School). Honkai: Star Rail has a playable dragon girl that look like an elf (Lingsha). Tower of Fantasy is not a Genshin Killer because that game hasn't playable characters that look like elves. Somebody else might have another point of view about this term, but won't be used here. This is a Genshin Killer, not a Genshin Like
# Why this game doesn't have builds for Microsoft Windows? Most players are using that OS
Microsoft Defender has an antifeature known as Smart Screen, which flags every unsigned executable as malware. ALSA Audio Calibration feature doesn't work on that OS. Most developers don't release their games for GNU/Linux, but i'm using GNU/Linux as my main OS. I don't follow trends, i want something better
# Why a 2d game?
I don't have experience creating 3d models, but i have experience drawing on paper. For this reason a drawing tablet, GIMP and Krita are a perfect combo for me. After doing some tests, alpha builds from this game can be played on Steam Deck for 10 hours, while mainstream 3d games like Cyberpunk 2077 can be played for 90 minutes. A videogame created for handheld devices is focused on fun mechanincs, not fancy graphics
# How much text have in-game dialogs?
Almost nothing. If you want to know game plot, you can read it separately as an ebook
# Why your game looks like a Paul Klee Painting?
Because Midori Asgardius loves fireworks. You know, because this is a Genshin Killer
# About Falcighol Stealth Anticheat System
This game is the first to use Falcighol Stealth Anticheat, an anticheat system based on integrity check which is part of game code. Some player actions will trigger an integrity check, if checksum match, you can play without issues. If checksum mismatch, game will crash. You can use memory scanners to check current game data, but you must avoid changing some value, otherwise checksum will fail and this game will crash. Popful Mail for Sega CD has a similar anticheat system, and cheaters must change unchecked variables to cheat without crashing that game (hp meter is only checked value on that game, but you can set infinite ressurrect elixir instead). A 4 player LAN mode is planned. This anticheat system will be used at Asgardius Online MMO (that game may be ready at Half Life 4 release day)
# What is virtualxrpg?
Virtualxrpg is the codename used for this game. This is an attempt to create a Role Playing Game based on Asgardius Virtualx. I tried creating one with Page Asgardius as Main Character, but i ran out of ideas. My second attempt was a photorealistic RPG (something like Zelda's Adenture for CDI) with 2 playable elf girls. These characters became Pamela and Lety. My third attempt is a minimalistic Anime RPG with an elf girl that loves fireworks (Inspired by Lily Klee from Genshin Impact: 4th Honkai). This is the reason why this game is promoted as a Genshin Killer
# Why you don't have accounts at mainstream "Social Media"?
Because that is not a true social media and ti's too mainstream. Remember that i don't follow trends
# Why you aren't using Unity for this game?
Because Unity is a closed source tool, and it's too mainstream. I'll learn to use Unity and Unreal, but i won't use them on Asgardius Virtualx Videogames (those will use open source engines only)

1
android Submodule

@ -0,0 +1 @@
Subproject commit 7b067f338b30c1f498ac4eaa61d1a2a855f29f26

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://5w6pjyubryq3"
path="res://.godot/imported/Honker Railway in forest.jpg-0d0f10c35109547a47ce6eebb3f37ffa.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://backgounds/Honker Railway in forest.jpg"
dest_files=["res://.godot/imported/Honker Railway in forest.jpg-0d0f10c35109547a47ce6eebb3f37ffa.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
backgounds/Kaizo Campus.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bvl47pildpugx"
path="res://.godot/imported/Kaizo Campus.jpg-1b081f77e3fa25bd61a2955a23098661.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://backgounds/Kaizo Campus.jpg"
dest_files=["res://.godot/imported/Kaizo Campus.jpg-1b081f77e3fa25bd61a2955a23098661.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://chbs1cqrcbcrm"
path="res://.godot/imported/Kimberly Arch crying.jpg-c9629d3010b4db2f2db2d50e1cba39e5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://backgounds/Kimberly Arch crying.jpg"
dest_files=["res://.godot/imported/Kimberly Arch crying.jpg-c9629d3010b4db2f2db2d50e1cba39e5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dnmdgwuabqg58"
path="res://.godot/imported/Midori Asgardius Sleeping on Grass.jpg-e2c6b2f24f62db12fe429ff9daba066e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://backgounds/Midori Asgardius Sleeping on Grass.jpg"
dest_files=["res://.godot/imported/Midori Asgardius Sleeping on Grass.jpg-e2c6b2f24f62db12fe429ff9daba066e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cyl5fve543dvc"
path="res://.godot/imported/Midori Asgardius birth waterfall.jpg-4dff916e2839257afcc4309926d7b477.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://backgounds/Midori Asgardius birth waterfall.jpg"
dest_files=["res://.godot/imported/Midori Asgardius birth waterfall.jpg-4dff916e2839257afcc4309926d7b477.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bybvtya0upglf"
path="res://.godot/imported/Midori Asgardius boom boom torofi.jpg-36568c05aead256041391ba1e03dc791.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://backgounds/Midori Asgardius boom boom torofi.jpg"
dest_files=["res://.godot/imported/Midori Asgardius boom boom torofi.jpg-36568c05aead256041391ba1e03dc791.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d1rcw7akvyooo"
path="res://.godot/imported/Midori Asgardius cheststand.jpg-445eb9af0020ad93e4a4534592f2cdd2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://backgounds/Midori Asgardius cheststand.jpg"
dest_files=["res://.godot/imported/Midori Asgardius cheststand.jpg-445eb9af0020ad93e4a4534592f2cdd2.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://brvfc3s2cj76f"
path="res://.godot/imported/Midori Deep Forest.jpg-bb7eb46fe4b795996430082bb183a4cd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://backgounds/Midori Deep Forest.jpg"
dest_files=["res://.godot/imported/Midori Deep Forest.jpg-bb7eb46fe4b795996430082bb183a4cd.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://k8ahmljsdidy"
path="res://.godot/imported/Midori Punishment.jpg-e0a7a039209e61cd76dc31f57984155b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://backgounds/Midori Punishment.jpg"
dest_files=["res://.godot/imported/Midori Punishment.jpg-e0a7a039209e61cd76dc31f57984155b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cvk01b0l15k3u"
path="res://.godot/imported/Midori walking though forest.jpg-dca4081b9c1cb9c527db2ab9b9616775.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://backgounds/Midori walking though forest.jpg"
dest_files=["res://.godot/imported/Midori walking though forest.jpg-dca4081b9c1cb9c527db2ab9b9616775.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://duaxggciofmts"
path="res://.godot/imported/Pamela Hashimoto clasista.jpg-d802144445e54d7c2ea5e245c74ce0bb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://backgounds/Pamela Hashimoto clasista.jpg"
dest_files=["res://.godot/imported/Pamela Hashimoto clasista.jpg-d802144445e54d7c2ea5e245c74ce0bb.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://rurrmoxngtek"
path="res://.godot/imported/Pamela Hashimoto fury.jpg-e236a21d80e44a02bb032e77b70ae9d4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://backgounds/Pamela Hashimoto fury.jpg"
dest_files=["res://.godot/imported/Pamela Hashimoto fury.jpg-e236a21d80e44a02bb032e77b70ae9d4.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dntabv68wlisu"
path="res://.godot/imported/Trashcan girl in forest.jpg-fbf5b97a382b281362137eba2b94a3bd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://backgounds/Trashcan girl in forest.jpg"
dest_files=["res://.godot/imported/Trashcan girl in forest.jpg-fbf5b97a382b281362137eba2b94a3bd.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -1,14 +1,20 @@
extends Node2D
var presscontinue
const gamepadtest = preload("res://gamepad.gd")
var rmusic := AudioStreamPlayer.new()
var wait
# Called when the node enters the scene tree for the first time.
func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
presscontinue = $Label2
updatehud()
#Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
add_child(rmusic)
var titlemusic = load(Global.musictracks[1])
rmusic.stream = titlemusic
rmusic.mix_target = 1
rmusic.play(0)
rmusic.bus = &"Music"
wait = Time.get_ticks_msec()
#pass # Replace with function body.
@ -18,6 +24,8 @@ func _process(delta):
pass
func _input(event):
gamepadtest.new(event)
updatehud()
# Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_accept"):
#print("Mouse Click/Unclick at: ", event.position)
@ -34,3 +42,13 @@ func _title():
#get_tree().root.add_child(title)
#get_tree().root.remove_child(boot)
#boot.queue_free()
func updatehud():
if Global.gamepad == 0:
presscontinue.set_text(tr("TEXT_CONTINUE_KB"))
elif Global.gamepad == 1:
presscontinue.set_text(tr("TEXT_CONTINUE_US"))
elif Global.gamepad == 2:
presscontinue.set_text(tr("TEXT_CONTINUE_JA"))
elif Global.gamepad == 3:
presscontinue.set_text(tr("TEXT_CONTINUE_GEO"))

View file

@ -13,22 +13,21 @@ offset_bottom = 40.0
texture = ExtResource("2_kljhy")
[node name="Label" type="Label" parent="."]
offset_left = 326.0
offset_left = 23.0
offset_top = 11.0
offset_right = 1009.0
offset_right = 1250.0
offset_bottom = 144.0
theme_override_font_sizes/font_size = 22
text = "Disclaimer
Playing with fireworks inside a videogame can give hours of fun,
but in real life is dangerous
Life insurance exists only on fiction"
text = "TEXT_DISCLAIMER"
horizontal_alignment = 1
[node name="Label2" type="Label" parent="."]
offset_left = 346.0
offset_left = 30.0
offset_top = 361.0
offset_right = 1004.0
offset_right = 1247.0
offset_bottom = 429.0
theme_override_font_sizes/font_size = 49
text = "Press Enter or B to continue"
text = "TEXT_CONTINUE"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("3_sdx6y")]

19
backgounds/gameover.gd Normal file
View file

@ -0,0 +1,19 @@
extends Node2D
var sfx1 := AudioStreamPlayer.new()
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
add_child(sfx1)
sfx1.mix_target = 1
sfx1.bus = &"SFX1"
sfx1.stream = load(Global.sfxtracks[0])
sfx1.play(0)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _input(event):
if Input.is_action_just_pressed("ui_accept"):
get_tree().change_scene_to_file("res://title.tscn")

14
backgounds/gameover.tscn Normal file
View file

@ -0,0 +1,14 @@
[gd_scene load_steps=2 format=3 uid="uid://i46ouafr1o3t"]
[ext_resource type="Script" path="res://backgounds/gameover.gd" id="1_5r0kb"]
[node name="Gameover" type="Node2D"]
script = ExtResource("1_5r0kb")
[node name="Label" type="Label" parent="."]
offset_left = 178.0
offset_top = 214.0
offset_right = 1046.0
offset_bottom = 433.0
theme_override_font_sizes/font_size = 160
text = "Game Over"

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://coc14j3ju0w16"
path="res://.godot/imported/kaizoclassroom.jpg-6801ae3d9f969809a8ba50806dab5a41.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://backgounds/kaizoclassroom.jpg"
dest_files=["res://.godot/imported/kaizoclassroom.jpg-6801ae3d9f969809a8ba50806dab5a41.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -1,13 +1,25 @@
extends Node2D
var presscontinue
var result
var rmusic := AudioStreamPlayer.new()
var wait
# Called when the node enters the scene tree for the first time.
func _ready():
Global.result[1] = Time.get_ticks_msec() - Global.wait
result = $Label
presscontinue = $Label2
var previoustime
var min = float(Global.result[1] / 60000)
var sec = (Global.result[1] / 1000) - (min*60)
var msec = Global.result[1] - (sec*1000) - (min*60000)
result.set_text("Defeated enemies: "+str(Global.result[0])+"\nClear time: "+str(min)+":"+str(sec)+":"+str(msec)+"\nCharged skill uses: 0\nDamage received: "+str(Global.result[3])+"\nEarned experience: 0")
Global.result = [0, 0, 0, 0, 0]
updatehud()
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
add_child(rmusic)
var titlemusic = load(Global.musictracks[7])
rmusic.stream = titlemusic
rmusic.mix_target = 1
rmusic.play(0)
wait = Time.get_ticks_msec()
#pass # Replace with function body.
@ -18,6 +30,7 @@ func _process(delta):
pass
func _input(event):
updatehud()
# Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_accept"):
#print("Mouse Click/Unclick at: ", event.position)
@ -29,7 +42,22 @@ func _title():
if Global.debug:
get_tree().change_scene_to_file("res://levels/ui/scene.tscn")
else:
get_tree().change_scene_to_file("res://backgounds/wip.tscn")
if Global.cplace == [1, 1, 17]:
Global.cplace = [0, 0, 0]
get_tree().change_scene_to_file("res://backgounds/wip.tscn")
else:
Global.cplace = [0, 0, 0]
get_tree().change_scene_to_file("res://levels/ui/gameplay.tscn")
#get_tree().root.add_child(title)
#get_tree().root.remove_child(boot)
#boot.queue_free()
func updatehud():
if Global.gamepad == 0:
presscontinue.set_text(tr("TEXT_CONTINUE_KB"))
elif Global.gamepad == 1:
presscontinue.set_text(tr("TEXT_CONTINUE_US"))
elif Global.gamepad == 2:
presscontinue.set_text(tr("TEXT_CONTINUE_JA"))
elif Global.gamepad == 3:
presscontinue.set_text(tr("TEXT_CONTINUE_GEO"))

View file

@ -25,11 +25,12 @@ Damage received: 0
Earned experience: 0"
[node name="Label2" type="Label" parent="."]
offset_left = 346.0
offset_left = 30.0
offset_top = 361.0
offset_right = 1004.0
offset_right = 1247.0
offset_bottom = 429.0
theme_override_font_sizes/font_size = 49
text = "Press Enter or B to continue"
text = "TEXT_CONTINUE"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("3_sdx6y")]

12
backgounds/warp.gd Normal file
View file

@ -0,0 +1,12 @@
extends Node2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
Global.live = 1
get_tree().change_scene_to_file("res://levels/ui/gameplay.tscn")

6
backgounds/warp.tscn Normal file
View file

@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://kuybckcxwmre"]
[ext_resource type="Script" path="res://backgounds/warp.gd" id="1_3ss1u"]
[node name="Warp" type="Node2D"]
script = ExtResource("1_3ss1u")

View file

@ -1,13 +1,17 @@
extends Node2D
var presscontinue
var rmusic := AudioStreamPlayer.new()
var wait
# Called when the node enters the scene tree for the first time.
func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
presscontinue = $Label2
updatehud()
#Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
add_child(rmusic)
var titlemusic = load(Global.musictracks[1])
rmusic.stream = titlemusic
rmusic.mix_target = 1
rmusic.play(0)
wait = Time.get_ticks_msec()
#pass # Replace with function body.
@ -18,6 +22,7 @@ func _process(delta):
pass
func _input(event):
updatehud()
# Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_accept"):
#print("Mouse Click/Unclick at: ", event.position)
@ -29,7 +34,17 @@ func _title():
if Global.debug:
get_tree().change_scene_to_file("res://levels/ui/scene.tscn")
else:
get_tree().change_scene_to_file("res://title.tscn")
get_tree().change_scene_to_file("res://levels/ui/gameplay.tscn")
#get_tree().root.add_child(title)
#get_tree().root.remove_child(boot)
#boot.queue_free()
func updatehud():
if Global.gamepad == 0:
presscontinue.set_text(tr("TEXT_CONTINUE_KB"))
elif Global.gamepad == 1:
presscontinue.set_text(tr("TEXT_CONTINUE_US"))
elif Global.gamepad == 2:
presscontinue.set_text(tr("TEXT_CONTINUE_JA"))
elif Global.gamepad == 3:
presscontinue.set_text(tr("TEXT_CONTINUE_GEO"))

View file

@ -13,19 +13,20 @@ offset_bottom = 40.0
texture = ExtResource("2_lrfja")
[node name="Label" type="Label" parent="."]
offset_left = 444.0
offset_left = 20.0
offset_top = 33.0
offset_right = 938.0
offset_right = 1271.0
offset_bottom = 82.0
text = "This game is under developmnt
More content will be added in following releases"
text = "TEXT_WIP"
horizontal_alignment = 1
[node name="Label2" type="Label" parent="."]
offset_left = 346.0
offset_left = 30.0
offset_top = 361.0
offset_right = 1004.0
offset_right = 1247.0
offset_bottom = 429.0
theme_override_font_sizes/font_size = 49
text = "Press Enter or B to continue"
text = "TEXT_CONTINUE"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("3_sdx6y")]

BIN
cursor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

34
cursor.png.import Normal file
View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d4ala24fewn5t"
path="res://.godot/imported/cursor.png-9207886fa5a62b74129e260ee150454e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://cursor.png"
dest_files=["res://.godot/imported/cursor.png-9207886fa5a62b74129e260ee150454e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

15
default_bus_layout.tres Normal file
View file

@ -0,0 +1,15 @@
[gd_resource type="AudioBusLayout" format=3 uid="uid://bqawb6yqspxw6"]
[resource]
bus/1/name = &"Music"
bus/1/solo = false
bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = 0.0
bus/1/send = &"Master"
bus/2/name = &"SFX1"
bus/2/solo = false
bus/2/mute = false
bus/2/bypass_fx = false
bus/2/volume_db = 0.0
bus/2/send = &"Master"

View file

@ -1,29 +1,29 @@
[preset.0]
name="Linux/X11"
platform="Linux/X11"
runnable=true
name="Linux"
platform="Linux"
runnable=false
advanced_options=false
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="./Midori in the Magic School.x86_64"
export_path="./Midori in the Magic School"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.0.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=1
binary_format/embed_pck=true
texture_format/bptc=true
texture_format/s3tc=true
texture_format/etc=false
texture_format/etc2=false
binary_format/embed_pck=false
texture_format/s3tc_bptc=true
texture_format/etc2_astc=false
binary_format/architecture="x86_64"
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
@ -37,3 +37,211 @@ unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
rm -rf \"{temp_dir}\""
[preset.1]
name="Android"
platform="Android"
runnable=true
advanced_options=false
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="./Midori in the Magic School.apk"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.1.options]
custom_template/debug=""
custom_template/release=""
gradle_build/use_gradle_build=false
gradle_build/gradle_build_directory=""
gradle_build/android_source_template=""
gradle_build/compress_native_libraries=false
gradle_build/export_format=0
gradle_build/min_sdk=""
gradle_build/target_sdk=""
architectures/armeabi-v7a=true
architectures/arm64-v8a=true
architectures/x86=true
architectures/x86_64=true
version/code=1
version/name=""
package/unique_name="asgardius.page.virtualxrpg"
package/name=""
package/signed=true
package/app_category=2
package/retain_data_on_uninstall=false
package/exclude_from_recents=false
package/show_in_android_tv=false
package/show_in_app_library=true
package/show_as_launcher_app=false
launcher_icons/main_192x192=""
launcher_icons/adaptive_foreground_432x432=""
launcher_icons/adaptive_background_432x432=""
graphics/opengl_debug=false
xr_features/xr_mode=0
screen/immersive_mode=true
screen/support_small=true
screen/support_normal=true
screen/support_large=true
screen/support_xlarge=true
user_data_backup/allow=false
command_line/extra_args=""
apk_expansion/enable=false
apk_expansion/SALT=""
apk_expansion/public_key=""
permissions/custom_permissions=PackedStringArray()
permissions/access_checkin_properties=false
permissions/access_coarse_location=false
permissions/access_fine_location=false
permissions/access_location_extra_commands=false
permissions/access_mock_location=false
permissions/access_network_state=false
permissions/access_surface_flinger=false
permissions/access_wifi_state=false
permissions/account_manager=false
permissions/add_voicemail=false
permissions/authenticate_accounts=false
permissions/battery_stats=false
permissions/bind_accessibility_service=false
permissions/bind_appwidget=false
permissions/bind_device_admin=false
permissions/bind_input_method=false
permissions/bind_nfc_service=false
permissions/bind_notification_listener_service=false
permissions/bind_print_service=false
permissions/bind_remoteviews=false
permissions/bind_text_service=false
permissions/bind_vpn_service=false
permissions/bind_wallpaper=false
permissions/bluetooth=false
permissions/bluetooth_admin=false
permissions/bluetooth_privileged=false
permissions/brick=false
permissions/broadcast_package_removed=false
permissions/broadcast_sms=false
permissions/broadcast_sticky=false
permissions/broadcast_wap_push=false
permissions/call_phone=false
permissions/call_privileged=false
permissions/camera=false
permissions/capture_audio_output=false
permissions/capture_secure_video_output=false
permissions/capture_video_output=false
permissions/change_component_enabled_state=false
permissions/change_configuration=false
permissions/change_network_state=false
permissions/change_wifi_multicast_state=false
permissions/change_wifi_state=false
permissions/clear_app_cache=false
permissions/clear_app_user_data=false
permissions/control_location_updates=false
permissions/delete_cache_files=false
permissions/delete_packages=false
permissions/device_power=false
permissions/diagnostic=false
permissions/disable_keyguard=false
permissions/dump=false
permissions/expand_status_bar=false
permissions/factory_test=false
permissions/flashlight=false
permissions/force_back=false
permissions/get_accounts=false
permissions/get_package_size=false
permissions/get_tasks=false
permissions/get_top_activity_info=false
permissions/global_search=false
permissions/hardware_test=false
permissions/inject_events=false
permissions/install_location_provider=false
permissions/install_packages=false
permissions/install_shortcut=false
permissions/internal_system_window=false
permissions/internet=false
permissions/kill_background_processes=false
permissions/location_hardware=false
permissions/manage_accounts=false
permissions/manage_app_tokens=false
permissions/manage_documents=false
permissions/manage_external_storage=false
permissions/master_clear=false
permissions/media_content_control=false
permissions/modify_audio_settings=false
permissions/modify_phone_state=false
permissions/mount_format_filesystems=false
permissions/mount_unmount_filesystems=false
permissions/nfc=false
permissions/persistent_activity=false
permissions/post_notifications=false
permissions/process_outgoing_calls=false
permissions/read_calendar=false
permissions/read_call_log=false
permissions/read_contacts=false
permissions/read_external_storage=false
permissions/read_frame_buffer=false
permissions/read_history_bookmarks=false
permissions/read_input_state=false
permissions/read_logs=false
permissions/read_phone_state=false
permissions/read_profile=false
permissions/read_sms=false
permissions/read_social_stream=false
permissions/read_sync_settings=false
permissions/read_sync_stats=false
permissions/read_user_dictionary=false
permissions/reboot=false
permissions/receive_boot_completed=false
permissions/receive_mms=false
permissions/receive_sms=false
permissions/receive_wap_push=false
permissions/record_audio=false
permissions/reorder_tasks=false
permissions/restart_packages=false
permissions/send_respond_via_message=false
permissions/send_sms=false
permissions/set_activity_watcher=false
permissions/set_alarm=false
permissions/set_always_finish=false
permissions/set_animation_scale=false
permissions/set_debug_app=false
permissions/set_orientation=false
permissions/set_pointer_speed=false
permissions/set_preferred_applications=false
permissions/set_process_limit=false
permissions/set_time=false
permissions/set_time_zone=false
permissions/set_wallpaper=false
permissions/set_wallpaper_hints=false
permissions/signal_persistent_processes=false
permissions/status_bar=false
permissions/subscribed_feeds_read=false
permissions/subscribed_feeds_write=false
permissions/system_alert_window=false
permissions/transmit_ir=false
permissions/uninstall_shortcut=false
permissions/update_device_stats=false
permissions/use_credentials=false
permissions/use_sip=false
permissions/vibrate=false
permissions/wake_lock=false
permissions/write_apn_settings=false
permissions/write_calendar=false
permissions/write_call_log=false
permissions/write_contacts=false
permissions/write_external_storage=false
permissions/write_gservices=false
permissions/write_history_bookmarks=false
permissions/write_profile=false
permissions/write_secure_settings=false
permissions/write_settings=false
permissions/write_sms=false
permissions/write_social_stream=false
permissions/write_sync_settings=false
permissions/write_user_dictionary=false

15
gamepad.gd Normal file
View file

@ -0,0 +1,15 @@
extends Node
var file
func _init(event):
if event is InputEventKey || event is InputEventMouse:
Global.gamepad = 0
elif str(Input.get_joy_name(0)).begins_with("Nintendo Switch"):
Global.gamepad = 2
elif str(Input.get_joy_name(0)).begins_with("Sony Computer Entertainment") || str(Input.get_joy_name(0)).begins_with("PS4") || str(Input.get_joy_name(0)).begins_with("PS5"):
Global.gamepad = 3
elif !str(Input.get_joy_name(0)).is_empty():
Global.gamepad = 1
if event is InputEventMouse:
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
else:
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)

View file

@ -2,43 +2,55 @@ extends Node
var live = 0
var time
var spkmode
var origmpos
var mousepos
var timelimit = 15000
var exitgame = false
var wait
var bossready = false
const pcnames = ["Midori Asgardius", null, null, null, null, null, null, null, null, "Natasha Dostoyevsky"]
const npcnames = ["Lily", null, null, null, null, null, null, null, null, "Natasha Dostoyevsky"]
const pcfaces = [["res://sprites/common/midori/face.png"], [null], [null], [null], [null], [null], [null], [null], [null], ["res://sprites/common/natasha/face.png"]]
const hudfaces = [["res://sprites/common/midori/facehud.png"], [null], [null], [null], [null], [null], [null], [null], [null], ["res://sprites/common/natasha/facehud.png"]]
const npcfaces = ["res://sprites/common/midori/face.png",null, null, null, null, null, null, null, null, "res://sprites/common/natasha/face.png"]
var playerx
var playery
var ccutscene = null
const cutscenes = [["res://levels/Cutscenes/opening/aboutkaizo.tscn", "res://levels/Cutscenes/opening/midorihello.tscn", 18, false], ["res://levels/Cutscenes/opening/midorihello.tscn", "res://levels/Cutscenes/opening/fearlessmidori.tscn", 18, false], ["res://levels/Cutscenes/opening/fearlessmidori.tscn", "res://levels/Cutscenes/opening/midoriwaterfall.tscn", 0, false], ["res://levels/Cutscenes/opening/midoriwaterfall.tscn", "res://levels/Cutscenes/opening/midorireading.tscn", 0, false], ["res://levels/Cutscenes/opening/midorireading.tscn", "res://levels/Cutscenes/opening/boomboomtorofi.tscn", 0, false], ["res://levels/Cutscenes/opening/boomboomtorofi.tscn", "res://levels/ui/gameplay.tscn", 0, true], ["res://levels/Cutscenes/unfunaversary/punishment.tscn", "res://levels/Cutscenes/unfunaversary/sadness.tscn", 1, false], ["res://levels/Cutscenes/unfunaversary/sadness.tscn", "res://levels/Cutscenes/unfunaversary/r3.tscn", 1, false], ["res://levels/Cutscenes/unfunaversary/r3.tscn", "res://levels/Cutscenes/unfunaversary/firstclass.tscn", 1, false], ["res://levels/Cutscenes/unfunaversary/firstclass.tscn", "res://backgounds/result.tscn", 5, true], ["res://levels/Cutscenes/Honker Railway/forest.tscn", "res://levels/Cutscenes/Honker Railway/lordlytrashcan.tscn", 19, false], ["res://levels/Cutscenes/Honker Railway/lordlytrashcan.tscn", "res://levels/Cutscenes/Honker Railway/railway.tscn", 19, false], ["res://levels/Cutscenes/Honker Railway/railway.tscn", "res://levels/ui/gameplay.tscn", 19, true], ["res://levels/Cutscenes/Troublemaker/buildings.tscn", "res://levels/Cutscenes/Troublemaker/pamela.tscn", 18, false], ["res://levels/Cutscenes/Troublemaker/pamela.tscn", "res://levels/Cutscenes/Troublemaker/kungfu.tscn", 18, false], ["res://levels/Cutscenes/Troublemaker/kungfu.tscn", "res://levels/ui/gameplay.tscn", 6, true]]
const pcnames = ["Midori Asgardius", "Diana Asgardius", null, "Kimberly Arch", null, null, null, "Pamela Hashimoto", "Lety Hashimoto", "Natasha Dostoyevsky"]
const npcnames = ["Lily", null, null, "Kimberly Arch", null, null, null, null, null, "Natasha Dostoyevsky"]
const pcfaces = [["res://sprites/common/midori/face.png"], ["res://sprites/common/tuna/face.png"], [null], ["res://sprites/common/kimberly/face.png"], [null], [null], [null], ["res://sprites/ceres/pamela/face.png"], ["res://sprites/ceres/lety/face.png"], ["res://sprites/common/natasha/face.png"]]
const hudfaces = [["res://sprites/common/midori/facehud.png"], ["res://sprites/common/tuna/facehud.png"], [null], ["res://sprites/common/kimberly/facehud.png"], [null], [null], [null], ["res://sprites/ceres/pamela/facehud.png"], ["res://sprites/ceres/lety/facehud.png"], ["res://sprites/common/natasha/facehud.png"]]
const npcfaces = ["res://sprites/common/midori/face.png",null, null, "res://sprites/common/kimberly/face.png", null, null, null, null, null, "res://sprites/common/natasha/face.png"]
const basestats = [[800, 200, 52, 12, 136, 25, 800], [1094, 200, 54, 7, 106, 48, 600], [null], [1143, 200, 59, 5, 117, 18, 650], [null], [null], [null], [null], [null], [1026, 200, 87, 7, 105, 49, 115]]
var cstats = [[800, 200, 52, 12, 136, 25, 800], [1094, 200, 54, 7, 106, 48, 600], [null], [1143, 200, 59, 5, 117, 18, 650], [null], [null], [null], [null], [null], [1026, 200, 87, 7, 105, 49, 115]]
var dstats = [[800, 200, 52, 12, 136, 25, 800], [1094, 200, 54, 7, 106, 48, 600], [null], [1143, 200, 59, 5, 117, 18, 650], [null], [null], [null], [null], [null], [1026, 200, 87, 7, 105, 49, 115]]
var mstats = [[null, null, null, null, null, null, null], [null, null, null, null, null, null, null], [null, null, null, null, null, null, null], [null, null, null, null, null, null, null], [null, null, null, null, null, null, null], [null, null, null, null, null, null, null], [null, null, null, null, null, null, null], [null, null, null, null, null, null, null], [null, null, null, null, null, null, null], [null, null, null, null, null, null, null]]
var cdialog = []
const places = [[[[null, null, false], [null, null, false]], [["res://levels/Testrooms/bullethell.tscn", 11, true], ["res://levels/Testrooms/lilytest.tscn", 6, false]], [["res://levels/Testrooms/dialogtest.tscn", 19, false], ["res://levels/Testrooms/testspawn.tscn", 2 ,false]]]]
const places = [[[["res://levels/Ceres/map.tscn", 5, false], [null, null, false]], [["res://levels/Testrooms/bullethell.tscn", 11, true], ["res://levels/Testrooms/lilytest.tscn", 6, false]], [["res://levels/Testrooms/dialogtest.tscn", 19, false], ["res://levels/Testrooms/testspawn.tscn", 2 ,false]]], [null, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, ["res://levels/Ceres/troublemakers.tscn", 6, true]], null, null, null, null, null, null, [null, null, null, null, null, null, null, null, null, null, null, ["res://levels/Ceres/honkerrailway.tscn", 19, false]], null, null, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, ["res://levels/Ceres/L20.tscn", 3, true]]]]
var cplace = [0,2,1]
var dplace = [null, null, null]
const pbbullets = ["res://sprites/common/bullet/fireball.tscn", null, null, null, null, null, null, null, null, "res://sprites/common/bullet/snowflake.tscn"]
const pcspecialities = [1, null, null, null, null, null, null, null, null, 0]
const pchars = [["res://sprites/common/midori/sprite.png"], [null], [null], [null], [null], [null], [null], [null], [null], ["res://sprites/common/natasha/sprite.png"]]
const pbbullets = ["res://sprites/common/bullet/fireball.tscn", "res://sprites/common/bullet/aero.tscn", null, "res://sprites/common/bullet/arrow.tscn", null, null, null, null, null, "res://sprites/common/bullet/snowflake.tscn"]
const pcspecialities = [1, 2, null, 3, null, null, null, null, null, 0]
const pchars = [["res://sprites/common/midori/sprite.png"], ["res://sprites/common/tuna/sprite.png"], [null], ["res://sprites/common/kimberly/sprite.png"], [null], [null], [null], [null], [null], ["res://sprites/common/natasha/sprite.png"]]
const npchars = ["res://sprites/common/midori/sprite.png", null, null, null, null, null, null, null, null, "res://sprites/common/natasha/sprite.png"]
var party = [[0,0], [9,0], [null,null], [null,null]]
var cboss = [null, null, null]
var isboss
var party = [[0,0], [1,0], [9,0], [3,0]]
const specialities = [2, 0, 3, 1, 5, 4]
var dparty = [[0,0], [9,0], [null,null], [null,null]]
var dparty = [[0,0], [1,0], [3,0], [9,0]]
var level = [1,1,1,1,1,1,1,1,1,1]
var dlevel = [1,1,1,1,1,1,1,1,1,1]
var cpchar = 0
var result = [0, 0, 0, 0, 0]
var dificulty = 0
var dcpchar = 0
var mangohud = false
var cspawnarea = [null, null]
var owlocation = [[null, null], [null, null]]
var hiscoresfile = "user://hiscores.save"
var gamelevel
var levelmax
var firstrun
const musictracks = ["res://music/midorinoakuma.wav", "res://music/seahorse.wav", "res://music/chinesegoat.wav", "res://music/doyoufeelold.wav", "res://music/doyiuneedahealer.wav", "res://music/adayatceres.wav", "res://music/twintroublemakers.wav", "res://music/easyquiz.wav", "res://music/neowave.wav", "res://music/multivectorsubmarines.wav", "res://music/halfgeniegirls.wav", "res://music/rusianmaverickfairy.wav", "res://music/blacksmithofdestruction.wav", "res://music/shininglikefireworks.wav", "res://music/sadtrashcan.wav", "res://music/akikoletter.wav", "res://music/asadcat.wav", "res://music/lilydesire.wav", "res://music/scholartrip.wav", "res://music/quantumice.wav", "res://music/unreeeal.wav"]
const musictracks = ["res://music/midorinoyume.ogg", "res://music/seahorse.ogg", "res://music/chinesegoat.ogg", "res://music/doyoufeelold.ogg", "res://music/doyiuneedahealer.ogg", "res://music/adayatceres.ogg", "res://music/twintroublemakers.ogg", "res://music/easyquiz.ogg", "res://music/neowave.ogg", "res://music/multivectorsubmarines.ogg", "res://music/halfgeniegirls.ogg", "res://music/rusianmaverickfairy.ogg", "res://music/blacksmithofdestruction.ogg", "res://music/shininglikefireworks.ogg", "res://music/sadtrashcan.ogg", "res://music/akikoletter.ogg", "res://music/asadcat.ogg", "res://music/lilydesire.ogg", "res://music/scholartrip.ogg", "res://music/quantumice.ogg", "res://music/unreeeal.ogg", "res://music/alsa.ogg", "res://music/silverblue.ogg"]
const sfxtracks = ["res://sfx/braindamage.wav", "res://sfx/gaugefill.wav", "res://sfx/boomboombakudan.wav"]
var debug = false
const release = "R0.1.3-alpha"
const release = "R0.2.0-beta"
var sk = false
var xm = 0
var ym = 0
var gamepad = 0
var quest = [0, 0, 0, 0, 0, 0]
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.

54
levels/Ceres/L20.gd Normal file
View file

@ -0,0 +1,54 @@
extends Node2D
var talk = load("res://levels/ui/talk.tscn").instantiate()
var boss
var player
# Called when the node enters the scene tree for the first time.
func _ready():
boss = $Kimberly
player = $Player
boss.add_to_group("boss")
Global.cdialog = [[tr("DIALOG_CERES_L20_0"), true, 0, 0], [tr("DIALOG_CERES_L20_1"), false, 3], [tr("DIALOG_CERES_L20_2"), true, 0, 0]]
Global.live = 0
get_tree().root.add_child.call(talk)
if !Global.debug:
Global.quest[0] = 1
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _physics_process(delta):
if Global.debug:
if Global.dstats[Global.dparty[0][0]][0] <= 0 && Global.live == 1:
_winner()
else:
if Global.cstats[Global.party[0][0]][0] <= 0 && Global.live == 1:
_winner()
func _input(event):
if Global.cdialog.size() != 0 && Global.live == 1:
get_tree().root.remove_child(talk)
Global.cdialog = []
func _winner():
Global.quest[0] = 3
Global.quest[1] = 1
Global.cdialog = [[tr("DIALOG_CERES_L20_3"), true, 0, 0], [tr("DIALOG_CERES_L20_4"), false, 3], [tr("DIALOG_CERES_L20_5"), true, 0, 0]]
Global.live = 3
Global.ccutscene = 6
#talk.queue_free()
talk = load("res://levels/ui/talk.tscn").instantiate()
get_tree().root.add_child.call(talk)
func _statrebase():
if Global.debug:
for i in 4:
if Global.dparty[i][0] != null:
for j in 7:
Global.mstats[Global.dparty[i][0]][j] = Global.basestats[Global.dparty[i][0]][j] * Global.dlevel[Global.dparty[i][0]]
else:
for i in 4:
if Global.party[i][0] != null:
for j in 7:
Global.mstats[Global.party[i][0]][j] = Global.basestats[Global.party[i][0]][j] * Global.level[Global.dparty[i][0]]

66
levels/Ceres/L20.tscn Normal file
View file

@ -0,0 +1,66 @@
[gd_scene load_steps=7 format=3 uid="uid://c8hmum2w6aygy"]
[ext_resource type="Script" path="res://levels/Ceres/L20.gd" id="1_cjbjq"]
[ext_resource type="Texture2D" uid="uid://dursxelwwxe8u" path="res://sprites/common/placeholder/player.png" id="1_g5hs8"]
[ext_resource type="PackedScene" uid="uid://wo77i5ql2esb" path="res://sprites/common/kimberly/kimberly.tscn" id="2_5cnwp"]
[ext_resource type="PackedScene" uid="uid://cehe6sm8ly06u" path="res://sprites/common/player/player.tscn" id="3_slxde"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1jr1w"]
size = Vector2(20, 761)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_iptg6"]
size = Vector2(1283, 20)
[node name="L20" type="Node2D"]
script = ExtResource("1_cjbjq")
[node name="ColorRect" type="ColorRect" parent="."]
custom_minimum_size = Vector2(1280, 720)
offset_right = 40.0
offset_bottom = 40.0
color = Color(0, 0.619608, 0.270588, 1)
[node name="TextureRect" type="TextureRect" parent="."]
offset_left = 583.0
offset_top = 4.0
offset_right = 711.0
offset_bottom = 260.0
texture = ExtResource("1_g5hs8")
[node name="Label" type="Label" parent="."]
offset_left = 327.0
offset_top = 354.0
offset_right = 957.0
offset_bottom = 409.0
theme_override_font_sizes/font_size = 40
text = "Boss spawns at EBU pattern area"
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
position = Vector2(-11, 361.5)
shape = SubResource("RectangleShape2D_1jr1w")
[node name="StaticBody2D2" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D2"]
position = Vector2(1293, 358)
shape = SubResource("RectangleShape2D_1jr1w")
[node name="StaticBody2D3" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D3"]
position = Vector2(641.5, -9)
shape = SubResource("RectangleShape2D_iptg6")
[node name="StaticBody2D4" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D4"]
position = Vector2(644, 731)
shape = SubResource("RectangleShape2D_iptg6")
[node name="Kimberly" parent="." instance=ExtResource("2_5cnwp")]
position = Vector2(644, 133)
[node name="Player" parent="." instance=ExtResource("3_slxde")]
position = Vector2(652, 590)

View file

@ -0,0 +1,22 @@
extends Node2D
# Called when the node enters the scene tree for the first time.
func _ready():
if !Global.debug:
_statrebase()
Global.live = 1
Global.quest[1] = 3
Global.quest[2] = 1
#pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _statrebase():
for i in 4:
if Global.party[i][0] != null:
for j in 7:
Global.cstats[Global.party[i][0]][j] = Global.basestats[Global.party[i][0]][j] * Global.level[Global.dparty[i][0]]

View file

@ -0,0 +1,250 @@
[gd_scene load_steps=21 format=3 uid="uid://c4ldh7ydn78bh"]
[ext_resource type="Script" path="res://levels/Ceres/honkerrailway.gd" id="1_75qhf"]
[ext_resource type="Texture2D" uid="uid://l26qimo56l1w" path="res://sprites/ceres/items/hkr.png" id="2_qaay0"]
[ext_resource type="Texture2D" uid="uid://dhrj7a0xr4bh1" path="res://sprites/ceres/items/ltc.png" id="3_4ekhw"]
[ext_resource type="Texture2D" uid="uid://c1jjhut8fuf1w" path="res://sprites/ceres/railway/sprite.png" id="3_4r2wm"]
[ext_resource type="PackedScene" uid="uid://cehe6sm8ly06u" path="res://sprites/common/player/player.tscn" id="3_uvwc3"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_nytv7"]
size = Vector2(20, 761)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_wkumn"]
size = Vector2(1283, 20)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_dw13o"]
size = Vector2(224, 409)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_6hhd2"]
size = Vector2(68, 152)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_hyd1a"]
size = Vector2(86, 256)
[sub_resource type="Animation" id="Animation_i5rhc"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
[sub_resource type="Animation" id="Animation_8my4d"]
resource_name = "eidle"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [6]
}
[sub_resource type="Animation" id="Animation_op07l"]
resource_name = "ewalk"
length = 0.3
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [7, 6, 8]
}
[sub_resource type="Animation" id="Animation_cajcr"]
resource_name = "nidle"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.2),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [3]
}
[sub_resource type="Animation" id="Animation_7lhgw"]
resource_name = "nwalk"
length = 0.3
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [4, 3, 5]
}
[sub_resource type="Animation" id="Animation_w3ius"]
resource_name = "sidle"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
[sub_resource type="Animation" id="Animation_u56r5"]
resource_name = "swalk"
length = 0.3
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [1, 0, 2]
}
[sub_resource type="Animation" id="Animation_isodq"]
resource_name = "widle"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.2),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [9]
}
[sub_resource type="Animation" id="Animation_letwb"]
resource_name = "wwalk"
length = 0.3
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [10, 9, 11]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_mh65y"]
_data = {
"RESET": SubResource("Animation_i5rhc"),
"eidle": SubResource("Animation_8my4d"),
"ewalk": SubResource("Animation_op07l"),
"nidle": SubResource("Animation_cajcr"),
"nwalk": SubResource("Animation_7lhgw"),
"sidle": SubResource("Animation_w3ius"),
"swalk": SubResource("Animation_u56r5"),
"widle": SubResource("Animation_isodq"),
"wwalk": SubResource("Animation_letwb")
}
[node name="Honkerrailway" type="Node2D"]
script = ExtResource("1_75qhf")
metadata/_edit_horizontal_guides_ = [0.0]
[node name="ColorRect" type="ColorRect" parent="."]
custom_minimum_size = Vector2(1280, 720)
offset_right = 1280.0
offset_bottom = 720.0
color = Color(0.839216, 0.658824, 0.32549, 1)
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
position = Vector2(-11, 361.5)
shape = SubResource("RectangleShape2D_nytv7")
[node name="StaticBody2D2" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D2"]
position = Vector2(1293, 358)
shape = SubResource("RectangleShape2D_nytv7")
[node name="StaticBody2D3" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D3"]
position = Vector2(641.5, -9)
shape = SubResource("RectangleShape2D_wkumn")
[node name="StaticBody2D4" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D4"]
position = Vector2(644, 731)
shape = SubResource("RectangleShape2D_wkumn")
[node name="StaticBody2D5" type="StaticBody2D" parent="."]
position = Vector2(635, 214)
[node name="Sprite2D" type="Sprite2D" parent="StaticBody2D5"]
texture = ExtResource("2_qaay0")
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D5"]
position = Vector2(1, -4.5)
shape = SubResource("RectangleShape2D_dw13o")
[node name="StaticBody2D6" type="StaticBody2D" parent="."]
position = Vector2(384, 186)
[node name="Sprite2D" type="Sprite2D" parent="StaticBody2D6"]
texture = ExtResource("3_4ekhw")
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D6"]
shape = SubResource("RectangleShape2D_6hhd2")
[node name="Railwaygirl" type="CharacterBody2D" parent="."]
position = Vector2(473, 133)
[node name="Sprite2D" type="Sprite2D" parent="Railwaygirl"]
texture = ExtResource("3_4r2wm")
hframes = 3
vframes = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="Railwaygirl"]
shape = SubResource("RectangleShape2D_hyd1a")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Railwaygirl"]
libraries = {
"": SubResource("AnimationLibrary_mh65y")
}
[node name="Player" parent="." instance=ExtResource("3_uvwc3")]
position = Vector2(633, 590)

58
levels/Ceres/map.gd Normal file
View file

@ -0,0 +1,58 @@
extends Node2D
var hkr
var troublemaker
var travel = null
# Called when the node enters the scene tree for the first time.
func _ready():
hkr = $Railwaygirl
troublemaker = $Pamela
if !Global.debug:
_statrebase()
Global.live = 1
if Global.quest[1] == 0:
hkr.queue_free()
if Global.quest[2] == 0:
troublemaker.queue_free()
#pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _input(event):
if Input.is_action_just_pressed("ui_accept") && travel != null:
if Global.ccutscene == null:
if Global.debug:
Global.dplace = travel
else:
Global.cplace = travel
Global.live = 5
else:
Global.live = 8
func _statrebase():
for i in 4:
if Global.party[i][0] != null:
for j in 7:
Global.cstats[Global.party[i][0]][j] = Global.basestats[Global.party[i][0]][j] * Global.level[Global.dparty[i][0]]
func _on_railwaygirl_body_entered(body: Node2D) -> void:
Global.ccutscene = 10
travel = [1, 8, 11]
func _on_railwaygirl_body_exited(body: Node2D) -> void:
travel = null
func _on_pamela_body_entered(body: Node2D) -> void:
Global.ccutscene = 13
travel = [1, 1, 17]
func _on_pamela_body_exited(body: Node2D) -> void:
travel = null

245
levels/Ceres/map.tscn Normal file
View file

@ -0,0 +1,245 @@
[gd_scene load_steps=18 format=3 uid="uid://bomoy5hvs8ldt"]
[ext_resource type="Script" path="res://levels/Ceres/map.gd" id="1_fb2vd"]
[ext_resource type="Texture2D" uid="uid://c1jjhut8fuf1w" path="res://sprites/ceres/railway/sprite.png" id="3_cek1k"]
[ext_resource type="PackedScene" uid="uid://cehe6sm8ly06u" path="res://sprites/common/player/player.tscn" id="3_q2e1y"]
[ext_resource type="Texture2D" uid="uid://dt8ufdvgghipy" path="res://sprites/ceres/pamela/sprite.png" id="4_1nkxu"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_nytv7"]
size = Vector2(20, 1385.25)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_wkumn"]
size = Vector2(2248, 20)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_tmcf2"]
size = Vector2(86, 256)
[sub_resource type="Animation" id="Animation_i5rhc"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
[sub_resource type="Animation" id="Animation_8my4d"]
resource_name = "eidle"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [6]
}
[sub_resource type="Animation" id="Animation_op07l"]
resource_name = "ewalk"
length = 0.3
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [7, 6, 8]
}
[sub_resource type="Animation" id="Animation_cajcr"]
resource_name = "nidle"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.2),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [3]
}
[sub_resource type="Animation" id="Animation_7lhgw"]
resource_name = "nwalk"
length = 0.3
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [4, 3, 5]
}
[sub_resource type="Animation" id="Animation_w3ius"]
resource_name = "sidle"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
[sub_resource type="Animation" id="Animation_u56r5"]
resource_name = "swalk"
length = 0.3
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [1, 0, 2]
}
[sub_resource type="Animation" id="Animation_isodq"]
resource_name = "widle"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.2),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [9]
}
[sub_resource type="Animation" id="Animation_letwb"]
resource_name = "wwalk"
length = 0.3
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [10, 9, 11]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_mh65y"]
_data = {
"RESET": SubResource("Animation_i5rhc"),
"eidle": SubResource("Animation_8my4d"),
"ewalk": SubResource("Animation_op07l"),
"nidle": SubResource("Animation_cajcr"),
"nwalk": SubResource("Animation_7lhgw"),
"sidle": SubResource("Animation_w3ius"),
"swalk": SubResource("Animation_u56r5"),
"widle": SubResource("Animation_isodq"),
"wwalk": SubResource("Animation_letwb")
}
[node name="Map" type="Node2D"]
script = ExtResource("1_fb2vd")
[node name="ColorRect" type="ColorRect" parent="."]
offset_left = -939.0
offset_top = -613.0
offset_right = 1282.0
offset_bottom = 715.0
color = Color(0.209938, 0.552296, 0.377152, 1)
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
position = Vector2(-958, 54.625)
shape = SubResource("RectangleShape2D_nytv7")
[node name="StaticBody2D2" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D2"]
position = Vector2(1293, 49.25)
shape = SubResource("RectangleShape2D_nytv7")
[node name="StaticBody2D3" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D3"]
position = Vector2(176, -629)
shape = SubResource("RectangleShape2D_wkumn")
[node name="StaticBody2D4" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D4"]
position = Vector2(189.125, 731)
shape = SubResource("RectangleShape2D_wkumn")
[node name="Railwaygirl" type="Area2D" parent="."]
position = Vector2(615, -444)
[node name="Sprite2D" type="Sprite2D" parent="Railwaygirl"]
texture = ExtResource("3_cek1k")
hframes = 3
vframes = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="Railwaygirl"]
shape = SubResource("RectangleShape2D_tmcf2")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Railwaygirl"]
libraries = {
"": SubResource("AnimationLibrary_mh65y")
}
[node name="Pamela" type="Area2D" parent="."]
position = Vector2(-651, 133)
[node name="Sprite2D" type="Sprite2D" parent="Pamela"]
texture = ExtResource("4_1nkxu")
hframes = 3
vframes = 4
[node name="CollisionShape2D" type="CollisionShape2D" parent="Pamela"]
shape = SubResource("RectangleShape2D_tmcf2")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Pamela"]
libraries = {
"": SubResource("AnimationLibrary_mh65y")
}
[node name="Player" parent="." instance=ExtResource("3_q2e1y")]
position = Vector2(633, 590)
[connection signal="body_entered" from="Railwaygirl" to="." method="_on_railwaygirl_body_entered"]
[connection signal="body_exited" from="Railwaygirl" to="." method="_on_railwaygirl_body_exited"]
[connection signal="body_entered" from="Pamela" to="." method="_on_pamela_body_entered"]
[connection signal="body_exited" from="Pamela" to="." method="_on_pamela_body_exited"]

View file

@ -0,0 +1,50 @@
extends Node2D
var talk = load("res://levels/ui/talk.tscn").instantiate()
var boss
var player
# Called when the node enters the scene tree for the first time.
func _ready():
boss = $Pamela
player = $Player
boss.add_to_group("boss")
Global.cdialog = [[tr("DIALOG_TROUBLEMAKER_0"), true, 0, 0], [tr("DIALOG_TROUBLEMAKER_1"), true, 7, 0], [tr("DIALOG_TROUBLEMAKER_2"), true, 0, 0]]
Global.live = 0
get_tree().root.add_child.call(talk)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _physics_process(delta):
pass
func _input(event):
if Global.cboss[1] <= 0 && Global.live == 1:
_winner()
if Global.cdialog.size() != 0 && Global.live == 1:
get_tree().root.remove_child(talk)
Global.cdialog = []
func _winner():
Global.result[0] = 1
Global.quest[2] = 3
Global.cdialog = [[tr("DIALOG_TROUBLEMAKER_3"), true, 0, 0], [tr("DIALOG_TROUBLEMAKER_4"), true, 7, 0], [tr("DIALOG_TROUBLEMAKER_5"), true, 0, 0]]
Global.live = 3
#Global.ccutscene = 6
Global.ccutscene = null
#talk.queue_free()
talk = load("res://levels/ui/talk.tscn").instantiate()
get_tree().root.add_child.call(talk)
func _statrebase():
if Global.debug:
for i in 4:
if Global.dparty[i][0] != null:
for j in 7:
Global.mstats[Global.dparty[i][0]][j] = Global.basestats[Global.dparty[i][0]][j] * Global.dlevel[Global.dparty[i][0]]
else:
for i in 4:
if Global.party[i][0] != null:
for j in 7:
Global.mstats[Global.party[i][0]][j] = Global.basestats[Global.party[i][0]][j] * Global.level[Global.dparty[i][0]]

View file

@ -0,0 +1,66 @@
[gd_scene load_steps=7 format=3 uid="uid://b06kxtu82485n"]
[ext_resource type="Script" path="res://levels/Ceres/troublemakers.gd" id="1_8o6q0"]
[ext_resource type="Texture2D" uid="uid://dursxelwwxe8u" path="res://sprites/common/placeholder/player.png" id="2_sgxbf"]
[ext_resource type="PackedScene" uid="uid://dya2jipk8eq2s" path="res://sprites/ceres/pamela/pamela.tscn" id="3_8xsbu"]
[ext_resource type="PackedScene" uid="uid://cehe6sm8ly06u" path="res://sprites/common/player/player.tscn" id="4_nfhf4"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1jr1w"]
size = Vector2(20, 761)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_iptg6"]
size = Vector2(1283, 20)
[node name="Troublemakers" type="Node2D"]
script = ExtResource("1_8o6q0")
[node name="ColorRect" type="ColorRect" parent="."]
custom_minimum_size = Vector2(1280, 720)
offset_right = 40.0
offset_bottom = 40.0
color = Color(0, 0.619608, 0.270588, 1)
[node name="TextureRect" type="TextureRect" parent="."]
offset_left = 583.0
offset_top = 4.0
offset_right = 711.0
offset_bottom = 260.0
texture = ExtResource("2_sgxbf")
[node name="Label" type="Label" parent="."]
offset_left = 327.0
offset_top = 354.0
offset_right = 957.0
offset_bottom = 409.0
theme_override_font_sizes/font_size = 40
text = "Boss spawns at EBU pattern area"
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
position = Vector2(-11, 361.5)
shape = SubResource("RectangleShape2D_1jr1w")
[node name="StaticBody2D2" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D2"]
position = Vector2(1293, 358)
shape = SubResource("RectangleShape2D_1jr1w")
[node name="StaticBody2D3" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D3"]
position = Vector2(641.5, -9)
shape = SubResource("RectangleShape2D_iptg6")
[node name="StaticBody2D4" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D4"]
position = Vector2(644, 731)
shape = SubResource("RectangleShape2D_iptg6")
[node name="Pamela" parent="." instance=ExtResource("3_8xsbu")]
position = Vector2(643, 129)
[node name="Player" parent="." instance=ExtResource("4_nfhf4")]
position = Vector2(652, 590)

View file

@ -0,0 +1,22 @@
[gd_scene load_steps=3 format=3 uid="uid://cqevagcsx77jk"]
[ext_resource type="Texture2D" uid="uid://brvfc3s2cj76f" path="res://backgounds/Midori Deep Forest.jpg" id="1_5c5di"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="2_a6w8j"]
[node name="Forest" type="Node2D"]
[node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0
offset_bottom = 600.0
texture = ExtResource("1_5c5di")
[node name="Text" type="Label" parent="."]
offset_left = 52.0
offset_top = 606.0
offset_right = 1224.0
offset_bottom = 714.0
theme_override_font_sizes/font_size = 40
text = "CUTSCENE_2_0"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("2_a6w8j")]

View file

@ -0,0 +1,22 @@
[gd_scene load_steps=3 format=3 uid="uid://bchg066ikmnxc"]
[ext_resource type="Texture2D" uid="uid://dntabv68wlisu" path="res://backgounds/Trashcan girl in forest.jpg" id="1_kkvvb"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="2_1o4m2"]
[node name="Lordlytrashcan" type="Node2D"]
[node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0
offset_bottom = 600.0
texture = ExtResource("1_kkvvb")
[node name="Text" type="Label" parent="."]
offset_left = 52.0
offset_top = 606.0
offset_right = 1224.0
offset_bottom = 714.0
theme_override_font_sizes/font_size = 40
text = "CUTSCENE_2_1"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("2_1o4m2")]

View file

@ -0,0 +1,12 @@
extends Node2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
if !Global.debug:
Global.cplace = [1, 8, 11]
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass

View file

@ -0,0 +1,24 @@
[gd_scene load_steps=4 format=3 uid="uid://c0f8yoj6q7l6w"]
[ext_resource type="Script" path="res://levels/Cutscenes/Honker Railway/railway.gd" id="1_0hhdb"]
[ext_resource type="Texture2D" uid="uid://5w6pjyubryq3" path="res://backgounds/Honker Railway in forest.jpg" id="1_10hv6"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="2_4m46s"]
[node name="Railway" type="Node2D"]
script = ExtResource("1_0hhdb")
[node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0
offset_bottom = 600.0
texture = ExtResource("1_10hv6")
[node name="Text" type="Label" parent="."]
offset_left = 52.0
offset_top = 606.0
offset_right = 1224.0
offset_bottom = 714.0
theme_override_font_sizes/font_size = 40
text = "CUTSCENE_2_2"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("2_4m46s")]

View file

@ -0,0 +1,22 @@
[gd_scene load_steps=3 format=3 uid="uid://sjmpoah3xpkv"]
[ext_resource type="Texture2D" uid="uid://bvl47pildpugx" path="res://backgounds/Kaizo Campus.jpg" id="1_md8cp"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="2_jjk5t"]
[node name="Buildings" type="Node2D"]
[node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0
offset_bottom = 600.0
texture = ExtResource("1_md8cp")
[node name="Text" type="Label" parent="."]
offset_left = 52.0
offset_top = 606.0
offset_right = 1224.0
offset_bottom = 714.0
theme_override_font_sizes/font_size = 40
text = "CUTSCENE_3_0"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("2_jjk5t")]

View file

@ -0,0 +1,12 @@
extends Node2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
if !Global.debug:
Global.cplace = [1, 1, 17]
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass

View file

@ -0,0 +1,25 @@
[gd_scene load_steps=4 format=3 uid="uid://bgndmlvrvfetr"]
[ext_resource type="Script" path="res://levels/Cutscenes/Troublemaker/kungfu.gd" id="1_dab6h"]
[ext_resource type="Texture2D" uid="uid://rurrmoxngtek" path="res://backgounds/Pamela Hashimoto fury.jpg" id="1_rcce4"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="2_4y4yi"]
[node name="Kungfu" type="Node2D"]
script = ExtResource("1_dab6h")
[node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0
offset_bottom = 600.0
texture = ExtResource("1_rcce4")
[node name="Text" type="Label" parent="."]
offset_left = 52.0
offset_top = 606.0
offset_right = 1224.0
offset_bottom = 714.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 40
text = "CUTSCENE_3_2"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("2_4y4yi")]

View file

@ -0,0 +1,22 @@
[gd_scene load_steps=3 format=3 uid="uid://hn7pvoe3ygux"]
[ext_resource type="Texture2D" uid="uid://duaxggciofmts" path="res://backgounds/Pamela Hashimoto clasista.jpg" id="1_e1eqv"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="2_kv77b"]
[node name="Pamela" type="Node2D"]
[node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0
offset_bottom = 600.0
texture = ExtResource("1_e1eqv")
[node name="Text" type="Label" parent="."]
offset_left = 52.0
offset_top = 606.0
offset_right = 1224.0
offset_bottom = 714.0
theme_override_font_sizes/font_size = 40
text = "CUTSCENE_3_1"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("2_kv77b")]

View file

@ -0,0 +1,22 @@
[gd_scene load_steps=3 format=3 uid="uid://bas0dcw1pwaxa"]
[ext_resource type="Texture2D" uid="uid://coc14j3ju0w16" path="res://backgounds/kaizoclassroom.jpg" id="1_lebbt"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="2_qhxdm"]
[node name="Aboutkaizo" type="Node2D"]
[node name="TextureRect" type="TextureRect" parent="."]
offset_right = 40.0
offset_bottom = 40.0
texture = ExtResource("1_lebbt")
[node name="Text" type="Label" parent="."]
offset_left = 52.0
offset_top = 606.0
offset_right = 1224.0
offset_bottom = 714.0
theme_override_font_sizes/font_size = 40
text = "CUTSCENE_0_0"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("2_qhxdm")]

View file

@ -0,0 +1,23 @@
[gd_scene load_steps=3 format=3 uid="uid://c1t2vu12bpoki"]
[ext_resource type="Texture2D" uid="uid://bybvtya0upglf" path="res://backgounds/Midori Asgardius boom boom torofi.jpg" id="1_o7sdm"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="2_ww2qm"]
[node name="Chasing" type="Node2D"]
[node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0
offset_bottom = 600.0
texture = ExtResource("1_o7sdm")
[node name="Text" type="Label" parent="."]
offset_left = 45.0
offset_top = 59.0
offset_right = 1217.0
offset_bottom = 167.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 40
text = "CUTSCENE_0_5"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("2_ww2qm")]

View file

@ -0,0 +1,22 @@
[gd_scene load_steps=3 format=3 uid="uid://dmmmmfcc0lp5"]
[ext_resource type="Texture2D" uid="uid://chr01sorihbb2" path="res://backgounds/Midori No Akuma.jpg" id="1_v5r6a"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="2_fog7h"]
[node name="Fearlessmidori" type="Node2D"]
[node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0
offset_bottom = 600.0
texture = ExtResource("1_v5r6a")
[node name="Text" type="Label" parent="."]
offset_left = 52.0
offset_top = 606.0
offset_right = 1224.0
offset_bottom = 714.0
theme_override_font_sizes/font_size = 40
text = "CUTSCENE_0_2"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("2_fog7h")]

View file

@ -0,0 +1,23 @@
[gd_scene load_steps=3 format=3 uid="uid://v4ge140gc645"]
[ext_resource type="Texture2D" uid="uid://dnmdgwuabqg58" path="res://backgounds/Midori Asgardius Sleeping on Grass.jpg" id="1_uqps8"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="2_j60n0"]
[node name="Midorihello" type="Node2D"]
[node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0
offset_bottom = 600.0
texture = ExtResource("1_uqps8")
[node name="Text" type="Label" parent="."]
offset_left = 52.0
offset_top = 606.0
offset_right = 1224.0
offset_bottom = 714.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 40
text = "CUTSCENE_0_1"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("2_j60n0")]

View file

@ -0,0 +1,23 @@
[gd_scene load_steps=3 format=3 uid="uid://bi8dsxjedvmxw"]
[ext_resource type="Texture2D" uid="uid://d1rcw7akvyooo" path="res://backgounds/Midori Asgardius cheststand.jpg" id="1_pt70s"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="2_0wcve"]
[node name="Midorireading" type="Node2D"]
[node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0
offset_bottom = 600.0
texture = ExtResource("1_pt70s")
[node name="Text" type="Label" parent="."]
offset_left = 52.0
offset_top = 606.0
offset_right = 1224.0
offset_bottom = 714.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 40
text = "CUTSCENE_0_4"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("2_0wcve")]

View file

@ -0,0 +1,22 @@
[gd_scene load_steps=3 format=3 uid="uid://dbho2m55yi3ty"]
[ext_resource type="Texture2D" uid="uid://cyl5fve543dvc" path="res://backgounds/Midori Asgardius birth waterfall.jpg" id="1_n3nwn"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="2_r0grr"]
[node name="Midoriwaterfall" type="Node2D"]
[node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0
offset_bottom = 600.0
texture = ExtResource("1_n3nwn")
[node name="Text" type="Label" parent="."]
offset_left = 52.0
offset_top = 659.0
offset_right = 1224.0
offset_bottom = 714.0
theme_override_font_sizes/font_size = 40
text = "CUTSCENE_0_3"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("2_r0grr")]

View file

@ -0,0 +1,12 @@
extends Node2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
if !Global.debug:
Global.cplace = [0, 0, 0]
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass

View file

@ -0,0 +1,24 @@
[gd_scene load_steps=4 format=3 uid="uid://c0087irckk6ls"]
[ext_resource type="Texture2D" uid="uid://cvk01b0l15k3u" path="res://backgounds/Midori walking though forest.jpg" id="1_3edyj"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="1_7k1pi"]
[ext_resource type="Script" path="res://levels/Cutscenes/unfunaversary/firstclass.gd" id="1_atuct"]
[node name="Firstclass" type="Node2D"]
script = ExtResource("1_atuct")
[node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0
offset_bottom = 600.0
texture = ExtResource("1_3edyj")
[node name="Text" type="Label" parent="."]
offset_left = 52.0
offset_top = 606.0
offset_right = 1224.0
offset_bottom = 714.0
theme_override_font_sizes/font_size = 40
text = "CUTSCENE_1_3"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("1_7k1pi")]

View file

@ -0,0 +1,23 @@
[gd_scene load_steps=3 format=3 uid="uid://bufn0t2n24ubb"]
[ext_resource type="Texture2D" uid="uid://k8ahmljsdidy" path="res://backgounds/Midori Punishment.jpg" id="1_gtd13"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="2_iimhu"]
[node name="Punishment" type="Node2D"]
[node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0
offset_bottom = 600.0
texture = ExtResource("1_gtd13")
[node name="Text" type="Label" parent="."]
offset_left = 52.0
offset_top = 606.0
offset_right = 1224.0
offset_bottom = 714.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 40
text = "CUTSCENE_1_0"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("2_iimhu")]

View file

@ -0,0 +1,22 @@
[gd_scene load_steps=3 format=3 uid="uid://b7l73y65vvix2"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="1_3j65n"]
[ext_resource type="Texture2D" uid="uid://bxa27c7gnivwx" path="res://backgounds/night-sky-at-ceres.jpg" id="1_p8vly"]
[node name="R3" type="Node2D"]
[node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0
offset_bottom = 600.0
texture = ExtResource("1_p8vly")
[node name="Text" type="Label" parent="."]
offset_left = 52.0
offset_top = 606.0
offset_right = 1224.0
offset_bottom = 714.0
theme_override_font_sizes/font_size = 40
text = "CUTSCENE_1_2"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("1_3j65n")]

View file

@ -0,0 +1,23 @@
[gd_scene load_steps=3 format=3 uid="uid://ba3q8nwe5yku3"]
[ext_resource type="Texture2D" uid="uid://chbs1cqrcbcrm" path="res://backgounds/Kimberly Arch crying.jpg" id="1_k6hw6"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="2_n1fd3"]
[node name="Sadness" type="Node2D"]
[node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0
offset_bottom = 600.0
texture = ExtResource("1_k6hw6")
[node name="Text" type="Label" parent="."]
offset_left = 52.0
offset_top = 606.0
offset_right = 1224.0
offset_bottom = 714.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 40
text = "CUTSCENE_1_1"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("2_n1fd3")]

11
levels/Earth/map.gd Normal file
View file

@ -0,0 +1,11 @@
extends Node2D
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass

46
levels/Earth/map.tscn Normal file
View file

@ -0,0 +1,46 @@
[gd_scene load_steps=6 format=3 uid="uid://bqthmqpx51x01"]
[ext_resource type="Script" path="res://levels/Testrooms/testspawn.gd" id="1_82nl8"]
[ext_resource type="Texture2D" uid="uid://kxvipok4tnuw" path="res://backgounds/wip.jpg" id="2_nugl5"]
[ext_resource type="PackedScene" uid="uid://cehe6sm8ly06u" path="res://sprites/common/player/player.tscn" id="3_0rw86"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_nytv7"]
size = Vector2(20, 761)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_wkumn"]
size = Vector2(1283, 20)
[node name="Testspawn" type="Node2D"]
script = ExtResource("1_82nl8")
[node name="WIP" type="TextureRect" parent="."]
offset_right = 40.0
offset_bottom = 40.0
texture = ExtResource("2_nugl5")
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
position = Vector2(-11, 361.5)
shape = SubResource("RectangleShape2D_nytv7")
[node name="StaticBody2D2" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D2"]
position = Vector2(1293, 358)
shape = SubResource("RectangleShape2D_nytv7")
[node name="StaticBody2D3" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D3"]
position = Vector2(641.5, -9)
shape = SubResource("RectangleShape2D_wkumn")
[node name="StaticBody2D4" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D4"]
position = Vector2(644, 731)
shape = SubResource("RectangleShape2D_wkumn")
[node name="Player" parent="." instance=ExtResource("3_0rw86")]
position = Vector2(633, 590)

View file

@ -7,7 +7,7 @@ func _ready():
boss = $Natasha
player = $Player
boss.add_to_group("boss")
Global.cdialog = [["What are you doing here?", true, 0, 0], ["Your father need help to debug this game", false, 9], ["Ok, i'll help too", true, 0, 0]]
Global.cdialog = [[tr("DIALOG_DANMAKUTEST_0"), true, 0, 0], [tr("DIALOG_DANMAKUTEST_1"), false, 9], [tr("DIALOG_DANMAKUTEST_2"), true, 0, 0]]
Global.live = 0
get_tree().root.add_child.call(talk)
@ -16,16 +16,21 @@ func _ready():
func _process(delta):
pass
func _physics_process(delta):
if player.velocity.x >= 0 && player.velocity.y >= 0:
if player.position.y < boss.position.y && player.get_index() > boss.get_index():
move_child(player, boss.get_index() - 1)
print("move up")
elif player.position.y > boss.position.y && player.get_index() < boss.get_index():
move_child(player, boss.get_index() + 1)
print("move down")
#func _physics_process(delta):
# pass
func _input(event):
if Global.cdialog.size() == 0:
if Global.cdialog.size() != 0 && Global.live == 1:
get_tree().root.remove_child(talk)
Global.cdialog = []
if Global.cboss[1] <= 0 && Global.live == 1:
_winner()
func _winner():
Global.cdialog = [[tr("DIALOG_DANMAKUTEST_3"), true, 0, 0], [tr("DIALOG_DANMAKUTEST_4"), false, 9], [tr("DIALOG_DANMAKUTEST_5"), true, 0, 0]]
Global.live = 3
#talk.queue_free()
talk = load("res://levels/ui/talk.tscn").instantiate()
get_tree().root.add_child.call(talk)

View file

@ -2,7 +2,7 @@ extends Node2D
var talk = load("res://levels/ui/talk.tscn").instantiate()
# Called when the node enters the scene tree for the first time.
func _ready():
Global.cdialog = [["What is this place?", true, 0, 0], ["I'm here", false, 9], ["I got you, cheap copy", false, 0]]
Global.cdialog = [[tr("DIALOG_TEST_0"), true, 0, 0], [tr("DIALOG_TEST_1"), false, 9], [tr("DIALOG_TEST_2"), false, 0]]
Global.live = 0
get_tree().root.add_child.call(talk)
@ -12,5 +12,6 @@ func _process(delta):
pass
func _input(event):
if Global.cdialog.size() == 0:
if Global.cdialog.size() != 0 && Global.live == 1:
get_tree().root.remove_child(talk)
Global.cdialog = []

View file

@ -13,11 +13,5 @@ func _ready():
func _process(delta):
pass
func _physics_process(delta):
if player.velocity.x >= 0 && player.velocity.y >= 0:
if player.position.y < boss.position.y && player.get_index() > boss.get_index():
move_child(player, boss.get_index() - 1)
print("move up")
elif player.position.y > boss.position.y && player.get_index() < boss.get_index():
move_child(player, boss.get_index() + 1)
print("move down")
#func _physics_process(delta):
# pass

114
levels/ui/Cutscenes.gd Normal file
View file

@ -0,0 +1,114 @@
extends Node2D
var level
var player
var music
var bgsound := AudioStreamPlayer.new()
var sfx1 := AudioStreamPlayer.new()
var musictrack
var isboss
var bhud = load("res://levels/bottomhud.tscn").instantiate()
var ishud = true
# Called when the node enters the scene tree for the first time.
func _ready():
Global.live = 1
add_child(bgsound)
add_child(sfx1)
level = load(Global.cutscenes[Global.ccutscene][0]).instantiate()
musictrack = Global.musictracks[Global.cutscenes[Global.ccutscene][2]]
music = load(musictrack)
get_tree().root.add_child.call_deferred(level)
get_tree().root.add_child.call_deferred(bhud)
#get_tree().root.add_child.call_deferred(player)
bgsound.stream = music
bgsound.mix_target = 1
bgsound.play(0)
# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta):
#Global.xm = 0
#Global.ym = 0
#var velocity = Vector2.ZERO
#if Global.live == 1 && !Input.is_key_pressed(KEY_V) && !Input.is_joy_button_pressed(0,JOY_BUTTON_RIGHT_SHOULDER):
# if Input.get_joy_axis(0,JOY_AXIS_LEFT_X) > 0.2 || Input.get_joy_axis(0,JOY_AXIS_LEFT_Y) > 0.2 || Input.get_joy_axis(0,JOY_AXIS_LEFT_X) < -0.2 || Input.get_joy_axis(0,JOY_AXIS_LEFT_Y) < -0.2:
# Global.xm = Input.get_joy_axis(0,JOY_AXIS_LEFT_X)
# Global.ym = Input.get_joy_axis(0,JOY_AXIS_LEFT_Y)
# else:
# if Input.is_action_pressed("ui_left"):
# Global.xm = -1
# if Input.is_action_pressed("ui_right"):
# Global.xm = 1
# if Input.is_action_pressed("ui_up"):
# Global.ym = -1
# if Input.is_action_pressed("ui_down"):
# Global.ym = 1
#velocity = (Vector2.RIGHT.rotated(rotation) * -100 * Global.xm * delta)-Vector2.UP.rotated(rotation) * -100 * Global.ym * delta
func _input(event):
if (Input.is_key_pressed(KEY_ESCAPE) || Input.is_joy_button_pressed(0,JOY_BUTTON_BACK)) && Global.debug:
Global.live = 0
Global.bossready = false
get_tree().root.remove_child(bhud)
#get_tree().root.remove_child(player)
get_tree().root.remove_child(level)
if Global.debug:
get_tree().change_scene_to_file("res://levels/ui/scene.tscn")
else:
get_tree().change_scene_to_file("res://title.tscn")
if Input.is_action_just_pressed("ui_accept"):
if Global.cutscenes[Global.ccutscene][3]:
var ccutscene = Global.ccutscene
Global.ccutscene = null
get_tree().root.remove_child(bhud)
get_tree().root.remove_child(level)
bgsound.stop()
if Global.debug:
get_tree().change_scene_to_file("res://levels/ui/scene.tscn")
else:
get_tree().change_scene_to_file(Global.cutscenes[ccutscene][1])
else:
Global.ccutscene += 1
get_tree().root.remove_child(level)
level = load(Global.cutscenes[Global.ccutscene][0]).instantiate()
if musictrack != Global.musictracks[Global.cutscenes[Global.ccutscene][2]]:
bgsound.stop()
musictrack = Global.musictracks[Global.cutscenes[Global.ccutscene][2]]
music = load(musictrack)
bgsound.stream = music
bgsound.play(0)
get_tree().root.add_child.call_deferred(level)
#if (Global.live == 1 && (Input.is_key_pressed(KEY_V) && Input.is_key_pressed(KEY_UP)) ||(Input.is_joy_button_pressed(0,JOY_BUTTON_RIGHT_SHOULDER) && Input.is_joy_button_pressed(0,JOY_BUTTON_DPAD_UP))):
# if Global.debug:
# if Global.dparty[0][0] != null:
# Global.dcpchar = 0
# else:
# if Global.party[0][0] != null:
# Global.cpchar = 0
#elif (Global.live == 1 && (Input.is_key_pressed(KEY_V) && Input.is_key_pressed(KEY_RIGHT)) ||(Input.is_joy_button_pressed(0,JOY_BUTTON_RIGHT_SHOULDER) && Input.is_joy_button_pressed(0,JOY_BUTTON_DPAD_RIGHT))):
# if Global.debug:
# if Global.dparty[1][0] != null:
# Global.dcpchar = 1
# else:
# if Global.party[1][0] != null:
# Global.cpchar = 1
#elif (Global.live == 1 && (Input.is_key_pressed(KEY_V) && Input.is_key_pressed(KEY_DOWN)) ||(Input.is_joy_button_pressed(0,JOY_BUTTON_RIGHT_SHOULDER) && Input.is_joy_button_pressed(0,JOY_BUTTON_DPAD_DOWN))):
# if Global.debug:
# if Global.dparty[2][0] != null:
# Global.dcpchar = 2
# else:
# if Global.party[2][0] != null:
# Global.cpchar = 2
#elif (Global.live == 1 && (Input.is_key_pressed(KEY_V) && Input.is_key_pressed(KEY_LEFT)) ||(Input.is_joy_button_pressed(0,JOY_BUTTON_RIGHT_SHOULDER) && Input.is_joy_button_pressed(0,JOY_BUTTON_DPAD_LEFT))):
# if Global.debug:
# if Global.dparty[3][0] != null:
# Global.dcpchar = 3
# else:
# if Global.party[3][0] != null:
# Global.cpchar = 3
#if Global.bossready:
# Global.bossready = false
# sfx1.stream = load(Global.sfxtracks[1])
# sfx1.play(0)
# bgsound.play(0)

6
levels/ui/Cutscenes.tscn Normal file
View file

@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://u41wdqnqka86"]
[ext_resource type="Script" path="res://levels/ui/Cutscenes.gd" id="1_oqyxp"]
[node name="Cutscenes" type="Node2D"]
script = ExtResource("1_oqyxp")

47
levels/ui/alsatest.gd Normal file
View file

@ -0,0 +1,47 @@
extends Control
const gamepadtest = preload("res://gamepad.gd")
var bgsound := AudioStreamPlayer.new()
var fl
var fr
var rl
var rr
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
fl = $Front_Left
fr = $Front_Right
rl = $Rear_Left
rr = $Rear_Right
add_child(bgsound)
#add_child(fl)
#add_child(fr)
bgsound.stream = load(Global.musictracks[21])
bgsound.mix_target = 1
bgsound.bus = &"Music"
#fl.mix_target = 1
#fr.mix_target = 1
#fl.stream = load("res://sfx/Front_Left.wav")
#fr.stream = load("res://sfx/Front_Right.wav")
bgsound.set_volume_db(-10)
#fl.set_volume_db(10)
#fr.set_volume_db(10)
bgsound.play(0)
func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"):
get_tree().change_scene_to_file("res://levels/ui/soundtest.tscn")
elif Input.is_action_pressed("ui_left") && Input.is_action_pressed("ui_up"):
fl.play(0)
elif Input.is_action_pressed("ui_right") && Input.is_action_pressed("ui_up"):
fr.play(0)
elif Input.is_action_pressed("ui_left") && Input.is_action_pressed("ui_down"):
rl.play(0)
elif Input.is_action_pressed("ui_right") && Input.is_action_pressed("ui_down"):
rr.play(0)
#if event is InputEventMouseMotion:
# bgsound.position = Vector3(event.position.x-640, 0, event.position.y-480)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass

98
levels/ui/alsatest.tscn Normal file
View file

@ -0,0 +1,98 @@
[gd_scene load_steps=11 format=3 uid="uid://bivi1ncwnunrp"]
[ext_resource type="Script" path="res://levels/ui/alsatest.gd" id="1_hqlyt"]
[ext_resource type="Texture2D" uid="uid://bxa27c7gnivwx" path="res://backgounds/night-sky-at-ceres.jpg" id="2_ribwb"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="3_2tyrv"]
[ext_resource type="Script" path="res://Game name.gd" id="3_iuwjb"]
[ext_resource type="Script" path="res://start.gd" id="4_cp7hy"]
[ext_resource type="Script" path="res://exit.gd" id="5_aogyx"]
[ext_resource type="AudioStream" uid="uid://blllkdxk3sj0g" path="res://sfx/Front_Left.wav" id="7_msbfk"]
[ext_resource type="AudioStream" uid="uid://dpn17gurdra0l" path="res://sfx/Front_Right.wav" id="8_tqilb"]
[ext_resource type="AudioStream" uid="uid://by6uoipfuc23n" path="res://sfx/Rear_Left.wav" id="9_skj4n"]
[ext_resource type="AudioStream" uid="uid://w1c1uvatrkbn" path="res://sfx/Rear_Right.wav" id="10_v8t5w"]
[node name="Alsatest" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_hqlyt")
[node name="Night Sky" type="TextureRect" parent="."]
layout_mode = 0
offset_right = 1280.0
offset_bottom = 720.0
texture = ExtResource("2_ribwb")
[node name="Game name" type="Label" parent="."]
layout_mode = 0
offset_left = 35.0
offset_top = 308.0
offset_right = 1241.0
offset_bottom = 438.0
theme_override_font_sizes/font_size = 95
text = "Advanced Linein
Sound Architects"
horizontal_alignment = 1
script = ExtResource("3_iuwjb")
[node name="start" type="Label" parent="."]
layout_mode = 0
offset_left = 46.0
offset_top = 92.0
offset_right = 1224.0
offset_bottom = 147.0
theme_override_font_sizes/font_size = 40
text = "ALSA_TEST_SPK"
horizontal_alignment = 1
script = ExtResource("4_cp7hy")
[node name="exit" type="Label" parent="."]
layout_mode = 0
offset_left = 47.0
offset_top = 602.0
offset_right = 1208.0
offset_bottom = 657.0
theme_override_font_sizes/font_size = 40
text = "TEXT_EXIT"
horizontal_alignment = 1
script = ExtResource("5_aogyx")
[node name="Bottomhud" parent="." instance=ExtResource("3_2tyrv")]
layout_mode = 1
[node name="Front_Left" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 0, -5)
stream = ExtResource("7_msbfk")
volume_db = 80.0
max_distance = 30.0
panning_strength = 50.0
bus = &"SFX1"
[node name="Front_Right" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 0, -5)
stream = ExtResource("8_tqilb")
volume_db = 80.0
max_distance = 30.0
panning_strength = 50.0
bus = &"SFX1"
[node name="Rear_Left" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 0, 5)
stream = ExtResource("9_skj4n")
volume_db = 80.0
max_distance = 30.0
panning_strength = 50.0
bus = &"SFX1"
[node name="Rear_Right" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 0, -5)
stream = ExtResource("10_v8t5w")
volume_db = 80.0
max_distance = 30.0
panning_strength = 50.0
bus = &"SFX1"
[node name="Camera3D" type="Camera3D" parent="."]

72
levels/ui/ceres.gd Normal file
View file

@ -0,0 +1,72 @@
extends Control
const gamepadtest = preload("res://gamepad.gd")
func _ready():
#Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
$VBoxContainer/L20.grab_focus()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _level():
# This is like autoloading the scene, only
# it happens after already loading the main scene.
get_tree().change_scene_to_file("res://backgounds/disclaimer.tscn")
#Global.live = 1
#Global.gamelevel = randi() % 3
#if Global.gamelevel == 0:
# get_tree().change_scene_to_file("res://backgounds/galaxy.tscn")
#elif Global.gamelevel == 1:
# get_tree().change_scene_to_file("res://backgounds/wormhole.tscn")
#else:
# get_tree().change_scene_to_file("res://backgounds/abstract.tscn")
#get_tree().root.add_child(title)
#get_tree().root.remove_child(boot)
#boot.queue_free()
func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed()
#print("Mouse Click/Unclick at: ", event.position)
# if highlighted == 1:
# _on_debug_pressed()
# if highlighted == 2:
# _on_exit_pressed()
# else:
# _on_start_pressed()
# elif Input.is_action_pressed("ui_up"):
# focus_next
func _on_back_pressed():
get_tree().change_scene_to_file("res://levels/ui/scene.tscn")
func _on_l_20_pressed():
Global.dplace = [1, 11, 19]
Global.live = 1
get_tree().change_scene_to_file("res://levels/ui/gameplay.tscn")
func _on_lilytest_pressed() -> void:
Global.dplace = [0, 0, 0]
Global.live = 1
get_tree().change_scene_to_file("res://levels/ui/gameplay.tscn")
func _on_dialogtest_pressed() -> void:
Global.dplace = [1, 8, 11]
Global.live = 1
get_tree().change_scene_to_file("res://levels/ui/gameplay.tscn")
func _on_bullethell_pressed() -> void:
Global.dplace = [1, 1, 17]
Global.live = 1
get_tree().change_scene_to_file("res://levels/ui/gameplay.tscn")

100
levels/ui/ceres.tscn Normal file
View file

@ -0,0 +1,100 @@
[gd_scene load_steps=6 format=3 uid="uid://bafdmqwba2oop"]
[ext_resource type="Script" path="res://levels/ui/ceres.gd" id="1_tox8g"]
[ext_resource type="Texture2D" uid="uid://bxa27c7gnivwx" path="res://backgounds/night-sky-at-ceres.jpg" id="2_2li8v"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="3_uojcp"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6u0xs"]
bg_color = Color(0, 0.8, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_r2qrn"]
bg_color = Color(0, 0.8, 0, 1)
[node name="Ceres" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_tox8g")
[node name="Night Sky" type="TextureRect" parent="."]
layout_mode = 0
offset_right = 1280.0
offset_bottom = 720.0
texture = ExtResource("2_2li8v")
[node name="Game name" type="Label" parent="."]
layout_mode = 0
offset_left = 35.0
offset_top = 3.0
offset_right = 1235.0
offset_bottom = 73.0
theme_override_font_sizes/font_size = 40
text = "BUTTON_CERES"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("3_uojcp")]
layout_mode = 1
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -139.0
offset_top = -395.0
offset_right = 139.0
grow_horizontal = 2
grow_vertical = 0
[node name="L20" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "CERES_L20_DESC"
[node name="Lilytest" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "MENU_MAP"
[node name="Dialogtest" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "Honker Railway"
[node name="Bullethell" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "TWIN_TROUBLEMAKERS"
[node name="Credits" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "BUTTON_PLACEHOLDER"
[node name="WIP" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "BUTTON_PLACEHOLDER"
[node name="Back" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_r2qrn")
text = "BUTTON_RETURN"
[connection signal="pressed" from="VBoxContainer/L20" to="." method="_on_l_20_pressed"]
[connection signal="pressed" from="VBoxContainer/Lilytest" to="." method="_on_lilytest_pressed"]
[connection signal="pressed" from="VBoxContainer/Dialogtest" to="." method="_on_dialogtest_pressed"]
[connection signal="pressed" from="VBoxContainer/Bullethell" to="." method="_on_bullethell_pressed"]
[connection signal="pressed" from="VBoxContainer/Back" to="." method="_on_back_pressed"]

View file

@ -10,10 +10,12 @@ var playstart = false
var playindex = 0
func _ready():
bgsound.mix_target = 1
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
add_child(bgsound)
bgsound.stream = song1
bgsound.play(0)
bgsound.bus = &"Music"
#pass # Replace with function body.

View file

@ -31,7 +31,7 @@ Productor
Page Asgardius
Character design
Page Asgardius
Page Asgardius / Naomi Ubuntu
Game Design
Page Asgardius
@ -57,6 +57,10 @@ Falcighol Arch / Mariana Kaizo
Title screen background
Frank Pi / Page Asgardius
Sword hit texture
Xorg Logo
The Open Group
Feedback
Sakura Nakayama
Tood
@ -69,12 +73,14 @@ Auxiliar Creatives
Page Asgardius
Beachkid
Sakura Nakayama
El Profe
Rational Teacher
Goldfish
Kawaielli (Aka Kimberly Arch)
Alice Naito
Midori No Akuma background by geralt (Pixabay)
Made with Virtualx Engine (a Godot fork)
Made with Godot Engine
Testing Devices
@ -86,13 +92,17 @@ Provided as a replacement for a HP 14 laptop that died while running Genshin Imp
Steam Deck
Arch Linux Rolling
Used as development device since 0.0.0-dev release
Provided by Evelyn Freeman
Provided by Evelyn Freeman and killed by Valve Corporation
HP Pavilion x360
Debian 12
Game assets were designed with this device
Provided by Eric Asgardius
Gigabyte B550M DS3H AC
Arch Linux Rolling
Used for development since R0.1.10-alpha (Boom Boom Torofi Build)
Feedback
Sakura Nakayama
Tood
@ -103,6 +113,7 @@ Beachkid
Sakura Nakayama
El Profe
Goldfish
Kawaielli (Aka Kimberly Arch)
Music
Soundtrack provided by archive.org and Bandcamp
@ -191,6 +202,14 @@ Boss Fight (Earth)
unreeeal superhero 3
rez-kenet
ALSA Sound Test
Hostlov
Mrgamer
Elysium Fields
Eternity
4mat
Sound Effects
Provided by Pixabay
@ -223,24 +242,29 @@ Asset design tools
Stable Diffusion
CompVis
Used only for placeholders and title screen background
Used only for backgrounds content
Krita
KDE Community
Used for foreground content
GNU Image Manipulation Program
GNU Project
Used at every image
Godot Engine development
Project Founders
Juan Linietsky (reduz)
Ariel Manzur (punto-)
Lead Developer
Juan Linietsky (reduz)
Project Manager
Rémi Verschelde (akien-mga)
Developers
@ -249,10 +273,13 @@ Aaron Franke (aaronfranke)
Aaron Record (LightningAA)
Adam Scott (adamscott)
Alexander Holland (AlexHolly)
Alex Drozd (brno32)
Alexey Khoroshavin (allkhor)
Alfred Reinold Baudisch (alfredbaudisch)
Alistair Leslie-Hughes (alesliehughes)
Alket Rexhepi (alketii)
Andrea Catania (AndreaCatania)
Andreia Gaita (shana)
Andrii Doroshenko (Xrayez)
Andy Maloney (asmaloney)
Andy Moss (MillionOstrich)
@ -263,7 +290,9 @@ Anton Yabchinskiy (a12n)
Anutrix
Aren Villanueva (kurikaesu)
Ariel Manzur (punto-)
Arman Elgudzhyan (puchik)
AThousandShips
aXu-AP
Bartłomiej T. Listwon (Listwon)
Bastiaan Olij (BastiaanOlij)
Ben Brookshire (sheepandshepherd)
@ -271,6 +300,7 @@ Benjamin Larsson (Nallebeorn)
Bernhard Liebl (poke1024)
Bhuvan Vemula (Bhu1-V)
bitsawer
BlueCube3310
Błażej Szczygieł (zaps166)
Bojidar Marinov (bojidar-bg)
Brian Semrau (briansemrau)
@ -280,6 +310,7 @@ Camille Mohr-Daurat (pouleyKetchoupp)
Caner Demirer (cdemirer)
Carl Olsson (not-surt)
Carter Anderson (cart)
ChibiDenDen
Chris Bradfield (cbscribe)
Clay John (clayjohn)
ConteZero
@ -289,6 +320,7 @@ Daniel Rakos (aqnuep)
Daniel Zilberleyb (dzil123)
Danil Alexeev (dalexeev)
dankan1890
Darío Banini (DarioSamo)
David Cambré (Gallilus)
David Sichma (DavidSichma)
David Snopek (dsnopek)
@ -313,6 +345,7 @@ Fabio Alessandrelli (Faless)
Fabrice Cipolla (fabriceci)
Ferenc Arn (tagcup)
FireForge (fire-forge)
Florian Kothmeier (Dragoncraft89)
follower
foxydevloper
François Belair (Razoric480)
@ -331,6 +364,7 @@ HP van Braam (hpvb)
Hendrik Brucker (Geometror)
hilfazer
Hiroshi Ogawa (hi-ogawa)
HolonProduction
homer666
hoontee
Hugo Locurcio (Calinou)
@ -343,12 +377,14 @@ Indah Sylvia (ISylvox)
J08nY
Jake Young (Duroxxigar)
Jakub Grzesik (kubecz3k)
Jakub Marcowski (Chubercik)
James Buck (jbuck3)
Jan Haller (Bromeon)
Jason Knight (jasonwinterpixel)
Jean-Michel Bernard (jmb462)
Jérôme Gully (Nutriz)
Jia Jun Chai (SkyLucilfer)
jitspoe
Joan Fons Sanchez (JFonS)
Johan Manuel (29jm)
Johannes Witt (HaSa1002)
@ -373,6 +409,7 @@ Liz Haas (27thLiz)
Lucien Menassol (Kanabenki)
Lyuma
Maganty Rushyendra (mrushyendra)
Malcolm Nixon (Malcolmnixon)
Manuele Finocchiaro (m4nu3lf)
Marcel Admiraal (madmiraal)
Marcelo Fernandez (marcelofg55)
@ -392,6 +429,7 @@ Martin Sjursen (binbitten)
marynate
Masoud BH (masoudbh3)
Mateo Kuruk Miccino (kuruk-mm)
Matias N. Goldberg (darksylinc)
Matthew (skyace65)
Matthias Hölzl (hoelzl)
Max Hilbrunner (mhilbrunner)
@ -404,10 +442,12 @@ MichiRecRoom (LikeLakers2)
Micky (Mickeon)
Mikael Hermansson (mihe)
MinusKube
MJacred
Morris \"Tabor\" Arroad (mortarroad)
mrezai
Muhammad Huri (CakHuri)
muiroc
myaaaaaaaaa
Nathan Franke (nathanfranke)
Nathan Lovato (NathanLovato)
Nathan Warden (NathanWarden)
@ -421,6 +461,9 @@ ocean (they/them) (anvilfolk)
Omar El Sheikh (The-O-King)
Ovnuniarchos
Pascal Richter (ShyRed)
passivestar
Patrick Dawson (pkdawson)
Patrick Exner (FlameLizard)
Patrick (firefly2442)
Paul Batty (Paulb23)
Paul Joannon (paulloz)
@ -434,6 +477,7 @@ Pieter-Jan Briers (PJB3005)
Poommetee Ketson (Noshyaar)
Przemysław Gołąb (n-pigeon)
Rafael M. G. (rafallus)
Raffaele Picca (RPicster)
Rafał Mikrut (qarmin)
Ralf Hölzemer (rollenrolm)
Ramesh Ravone (RameshRavone)
@ -448,6 +492,7 @@ Ricardo Buring (rburing)
Ricardo Subtil (Ev1lbl0w)
Riteo Siuga (Riteo)
Roberto F. Arroyo (robfram)
Robert Yevdokimov (ryevdokimov)
Robin Hübner (profan)
romulox-x
Rune Smith (rune-scape)
@ -456,6 +501,7 @@ Ryan Roden-Corrent (rrcore)
Saniko (sanikoyes)
santouits
SaracenOne
Septian Ganendra S. K. (sepTN)
Sergey Minakov (naithar)
sersoong
Shiqing (kawa-yoiko)
@ -463,10 +509,14 @@ Silc 'Tokage' Renew (TokageItLab)
Simon Wenner (swenner)
smix8
snailrhymer
Sofox (TheSofox)
Stanislav Labzyuk (DarkMessiah)
Stijn Hinlopen (hinlopen)
stmSi
Swarnim Arun (minraws)
TC (floppyhammer)
TechnoPorg
Thaddeus Crews (Repiteo)
Thakee Nathees (ThakeeNathees)
thebestnom
Theo Hallenius (TheoXD)
@ -486,13 +536,17 @@ William Deurwaarder (williamd67)
Will Nations (willnationsdev)
Wilson E. Alvarez (Rubonnek)
Xavier Cho (mysticfall)
Yaohua Xiong (xiongyaohua)
yg2f (SuperUserNameMan)
Yordan Dolchinkov (Jordyfel)
Yuri Rubinsky (Chaosus)
Yuri Sizov (YuriSizov)
Zae Chao (zaevi)
Zak Stam (zaksnet)
Zher Huei Lee (leezh)
Zi Ye (MajorMcDoom)
ZuBsPaCe
谢天 (jsjtxietian)
风青山 (Rindbee)
Asgardius Virtualx Project contributors
@ -503,6 +557,7 @@ Eric Asgardius
Beachkid
Sakura Nakayama
Goldfish
Alice Naito
Midori in the Magic School is an upcoming game from Asgardius Virtualx project
@ -527,9 +582,15 @@ For writing the book that inspired the Blacksmith of Destruction
Shigeru Miyamoto
For let me know that an elf as a main character is a great idea
Nintendo of America
For let me know that Aeon of Destruction is not a fictional character
CAPCOM
For making great games in the past
Yoko Taro
For let me know that RPG and Bullethel can be a great combo on a single game
ZUN
For let me know that a single person can create a great game
@ -542,18 +603,63 @@ For let me know that a Heavy Machine Gun can be turned into a good stage boss
OMOCAT
For let me know that sketch graphics can give good results
Beachkid
Boosted Adreno Kicks Asteroids
Who died pursuing martian love 1999-2023
El Profe
For giving me great ideas for Asgardius Virtualx Project
Evelyn Debian
For being the best teacher at the moment
Matt Bozon
For his unique humour in Shantae game series
Valve Corporation
For that great development device
For laughing at me and let me know that i must avoid every big company
Naomi Ubuntu
For helping at Character Design
Kawaielli
For helping with my best character:
Kimberly Arch
HoYoVerse Staff
For those great characters
Paul Klee
For inspiring my own art
??? (Kuro Games Staff)
For creating Yinlin as a tribute to my best character: Kimberly arch
Hans Asperger
For let me know that i'm not alone in this universe
Rational Techer
For trying to get a job for me
David Sandberg
For your Kung Fu Style
Tood
For let me know that i need my own style
RELOADED
For never giving up
Bill Gates III
For let me know that nothing is impossible
Steve Jobs
For thinking different
Richard Stallman
For let me know that we need more open source videogames
X-Force Warez Group
For let me know that using a keygen to listen music is much better than using it to get Autocad for free
Contact info
Email
@ -563,9 +669,11 @@ Activitypub
@asgardius@social.asgardius.company
Matrix Chat
@asgardius:asgardius.company
XMPP
asgardius@asgardius.company
No animals were harmed during game development
Every explosion was tested on vector based universes only
@ -576,9 +684,11 @@ You are free to create guides, but i suggest avoiding cheat codes
Buy Tracker Works from Vince Kaichan at
https://vincekaichan.bandcamp.com/album/tracker-works-2014-2018
You will find all tracks from this composer that was used here
You will find all tracks from this composer that were used here
You can reuse assets for non-commercial purposes only"
You can reuse assets for non-commercial purposes only
Don't give up and fight for your dreams"
horizontal_alignment = 1
script = ExtResource("6_3q8sp")

81
levels/ui/cscene.gd Normal file
View file

@ -0,0 +1,81 @@
extends Control
const gamepadtest = preload("res://gamepad.gd")
func _ready():
#Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
$"VBoxContainer/Disclaimer".grab_focus()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _level():
# This is like autoloading the scene, only
# it happens after already loading the main scene.
get_tree().change_scene_to_file("res://backgounds/disclaimer.tscn")
#Global.live = 1
#Global.gamelevel = randi() % 3
#if Global.gamelevel == 0:
# get_tree().change_scene_to_file("res://backgounds/galaxy.tscn")
#elif Global.gamelevel == 1:
# get_tree().change_scene_to_file("res://backgounds/wormhole.tscn")
#else:
# get_tree().change_scene_to_file("res://backgounds/abstract.tscn")
#get_tree().root.add_child(title)
#get_tree().root.remove_child(boot)
#boot.queue_free()
func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed()
#print("Mouse Click/Unclick at: ", event.position)
# if highlighted == 1:
# _on_debug_pressed()
# if highlighted == 2:
# _on_exit_pressed()
# else:
# _on_start_pressed()
# elif Input.is_action_pressed("ui_up"):
# focus_next
func _on_back_pressed():
get_tree().change_scene_to_file("res://levels/ui/debug.tscn")
func _on_credits_pressed():
#get_tree().change_scene_to_file("res://levels/ui/credits.tscn")
pass
func _on_wip_pressed():
#get_tree().change_scene_to_file("res://backgounds/wip.tscn")
pass
func _on_results_pressed():
#get_tree().change_scene_to_file("res://backgounds/result.tscn")
Global.ccutscene = 13
get_tree().change_scene_to_file("res://levels/ui/Cutscenes.tscn")
func _on_disclaimer_pressed():
#Global.debug = false
Global.ccutscene = 0
get_tree().change_scene_to_file("res://levels/ui/Cutscenes.tscn")
func _on_testrooms_pressed():
#Global.debug = false
Global.ccutscene = 6
get_tree().change_scene_to_file("res://levels/ui/Cutscenes.tscn")
func _on_ceres_pressed():
#get_tree().change_scene_to_file("res://levels/ui/ceres.tscn")
Global.ccutscene = 10
get_tree().change_scene_to_file("res://levels/ui/Cutscenes.tscn")

102
levels/ui/cscene.tscn Normal file
View file

@ -0,0 +1,102 @@
[gd_scene load_steps=6 format=3 uid="uid://bk7btffr6w0sw"]
[ext_resource type="Script" path="res://levels/ui/cscene.gd" id="1_ka10y"]
[ext_resource type="Texture2D" uid="uid://bxa27c7gnivwx" path="res://backgounds/night-sky-at-ceres.jpg" id="2_745if"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="3_rvvbf"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6u0xs"]
bg_color = Color(0, 0.8, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_r2qrn"]
bg_color = Color(0, 0.8, 0, 1)
[node name="Cscene" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_ka10y")
[node name="Night Sky" type="TextureRect" parent="."]
layout_mode = 0
offset_right = 1280.0
offset_bottom = 720.0
texture = ExtResource("2_745if")
[node name="Game name" type="Label" parent="."]
layout_mode = 0
offset_left = 49.0
offset_top = 3.0
offset_right = 1224.0
offset_bottom = 73.0
theme_override_font_sizes/font_size = 40
text = "BUTTON_CUTSCENES"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("3_rvvbf")]
layout_mode = 1
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -238.5
offset_top = -395.0
offset_right = 238.5
grow_horizontal = 2
grow_vertical = 0
[node name="Disclaimer" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "CUTSCENE_0_NAME"
[node name="Testrooms" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "CUTSCENE_1_NAME"
[node name="Ceres" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "Honker Railway"
[node name="Results" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "TWIN_TROUBLEMAKERS"
[node name="Credits" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "BUTTON_PLACEHOLDER"
[node name="WIP" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "BUTTON_PLACEHOLDER"
[node name="Back" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_r2qrn")
text = "BUTTON_RETURN"
[connection signal="pressed" from="VBoxContainer/Disclaimer" to="." method="_on_disclaimer_pressed"]
[connection signal="pressed" from="VBoxContainer/Testrooms" to="." method="_on_testrooms_pressed"]
[connection signal="pressed" from="VBoxContainer/Ceres" to="." method="_on_ceres_pressed"]
[connection signal="pressed" from="VBoxContainer/Results" to="." method="_on_results_pressed"]
[connection signal="pressed" from="VBoxContainer/Credits" to="." method="_on_credits_pressed"]
[connection signal="pressed" from="VBoxContainer/WIP" to="." method="_on_wip_pressed"]
[connection signal="pressed" from="VBoxContainer/Back" to="." method="_on_back_pressed"]

View file

@ -1,6 +1,8 @@
extends Control
const gamepadtest = preload("res://gamepad.gd")
func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
_statrebase()
#Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
Global.debug = true
$"VBoxContainer/Gamepad Test".grab_focus()
@ -25,6 +27,7 @@ func _level():
#boot.queue_free()
func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed()
@ -50,8 +53,14 @@ func _on_sound_test_pressed():
func _on_back_pressed():
Global.debug = false
get_tree().change_scene_to_file("res://levels/ui/tmenu.tscn")
get_tree().change_scene_to_file("res://levels/ui/settings.tscn")
func _on_gamepad_test_pressed():
get_tree().change_scene_to_file("res://levels/ui/gamepadtest.tscn")
func _statrebase():
for i in 4:
if Global.dparty[i][0] != null:
for j in 7:
Global.dstats[Global.dparty[i][0]][j] = Global.basestats[Global.dparty[i][0]][j] * Global.dlevel[Global.dparty[i][0]]

View file

@ -30,12 +30,16 @@ texture = ExtResource("2_1w2er")
[node name="Game name" type="Label" parent="."]
layout_mode = 0
offset_left = 339.0
offset_left = 44.0
offset_top = 61.0
offset_right = 991.0
offset_right = 1234.0
offset_bottom = 207.0
theme_override_font_sizes/font_size = 106
text = "Debug Menu"
text = "MENU_DEBUG"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("4_ogmre")]
layout_mode = 1
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 1
@ -44,9 +48,9 @@ anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -129.5
offset_top = -362.0
offset_right = 129.5
offset_left = -342.0
offset_top = -484.0
offset_right = 342.0
grow_horizontal = 2
grow_vertical = 0
@ -54,28 +58,25 @@ grow_vertical = 0
layout_mode = 2
theme_override_font_sizes/font_size = 80
theme_override_styles/focus = SubResource("StyleBoxFlat_821nm")
text = "Gamepad Test"
text = "BUTTON_GAMEPADTEST"
[node name="Scene Selector2" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 80
theme_override_styles/focus = SubResource("StyleBoxFlat_821nm")
text = "Scene Selector"
text = "BUTTON_SCENESELECT"
[node name="Sound Test" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 80
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "Sound Test"
text = "BUTTON_SOUNDTEST"
[node name="Back" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 80
theme_override_styles/focus = SubResource("StyleBoxFlat_r2qrn")
text = "Back"
[node name="Bottomhud" parent="." instance=ExtResource("4_ogmre")]
layout_mode = 1
text = "BUTTON_RETURN"
[connection signal="pressed" from="VBoxContainer/Gamepad Test" to="." method="_on_gamepad_test_pressed"]
[connection signal="pressed" from="VBoxContainer/Scene Selector2" to="." method="_on_scene_selector_pressed"]

100
levels/ui/erase.gd Normal file
View file

@ -0,0 +1,100 @@
extends Control
const gamepadtest = preload("res://gamepad.gd")
const savegame = preload("res://save.gd")
func _ready():
#Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
$VBoxContainer/Ram.grab_focus()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _level():
# This is like autoloading the scene, only
# it happens after already loading the main scene.
get_tree().change_scene_to_file("res://backgounds/disclaimer.tscn")
#Global.live = 1
#Global.gamelevel = randi() % 3
#if Global.gamelevel == 0:
# get_tree().change_scene_to_file("res://backgounds/galaxy.tscn")
#elif Global.gamelevel == 1:
# get_tree().change_scene_to_file("res://backgounds/wormhole.tscn")
#else:
# get_tree().change_scene_to_file("res://backgounds/abstract.tscn")
#get_tree().root.add_child(title)
#get_tree().root.remove_child(boot)
#boot.queue_free()
func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed()
#print("Mouse Click/Unclick at: ", event.position)
# if highlighted == 1:
# _on_debug_pressed()
# if highlighted == 2:
# _on_exit_pressed()
# else:
# _on_start_pressed()
# elif Input.is_action_pressed("ui_up"):
# focus_next
func _on_back_pressed():
get_tree().change_scene_to_file("res://levels/ui/savefile.tscn")
func _on_ram_pressed() -> void:
Global.dificulty = 0
Global.quest = [0, 0, 0, 0, 0, 0]
Global.cplace = [1, 11, 19]
Global.live = 0
Global.cpchar = 0
Global.party = [[0,0], [null,null], [null,null], [null,null]]
Global.ccutscene = 0
_on_back_pressed()
func _on_slot_1_pressed() -> void:
savegame.new(1, true)
_on_back_pressed()
func _on_slot_2_pressed() -> void:
savegame.new(2, true)
_on_back_pressed()
func _on_slot_3_pressed() -> void:
savegame.new(3, true)
_on_back_pressed()
func _on_slot_4_pressed() -> void:
savegame.new(4, true)
_on_back_pressed()
func _on_slot_5_pressed() -> void:
savegame.new(5, true)
_on_back_pressed()
func _on_slot_6_pressed() -> void:
savegame.new(6, true)
_on_back_pressed()
func _on_slot_7_pressed() -> void:
savegame.new(7, true)
_on_back_pressed()
func _on_slot_8_pressed() -> void:
savegame.new(8, true)
_on_back_pressed()

123
levels/ui/erase.tscn Normal file
View file

@ -0,0 +1,123 @@
[gd_scene load_steps=6 format=3 uid="uid://dbdi41u4i0yy4"]
[ext_resource type="Script" path="res://levels/ui/erase.gd" id="1_csqu8"]
[ext_resource type="Texture2D" uid="uid://bxa27c7gnivwx" path="res://backgounds/night-sky-at-ceres.jpg" id="2_6n1ip"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="3_72nl0"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6u0xs"]
bg_color = Color(0, 0.8, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_r2qrn"]
bg_color = Color(0, 0.8, 0, 1)
[node name="Erase" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_csqu8")
[node name="Night Sky" type="TextureRect" parent="."]
layout_mode = 0
offset_right = 1280.0
offset_bottom = 720.0
texture = ExtResource("2_6n1ip")
[node name="Game name" type="Label" parent="."]
layout_mode = 0
offset_left = 35.0
offset_top = 3.0
offset_right = 1235.0
offset_bottom = 73.0
theme_override_font_sizes/font_size = 40
text = "BUTTON_ERASE"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("3_72nl0")]
layout_mode = 1
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -139.0
offset_top = -395.0
offset_right = 139.0
grow_horizontal = 2
grow_vertical = 0
[node name="Ram" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "Game Data in RAM"
[node name="Slot1" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "Slot 1"
[node name="Slot2" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "Slot 2"
[node name="Slot3" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "Slot 3"
[node name="Slot4" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "Slot 4"
[node name="Slot5" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "Slot 5"
[node name="Slot6" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "Slot 6"
[node name="Slot7" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "Slot 7"
[node name="Slot8" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "Slot 8"
[node name="Back" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_r2qrn")
text = "BUTTON_RETURN"
[connection signal="pressed" from="VBoxContainer/Ram" to="." method="_on_ram_pressed"]
[connection signal="pressed" from="VBoxContainer/Slot1" to="." method="_on_slot_1_pressed"]
[connection signal="pressed" from="VBoxContainer/Slot2" to="." method="_on_slot_2_pressed"]
[connection signal="pressed" from="VBoxContainer/Slot3" to="." method="_on_slot_3_pressed"]
[connection signal="pressed" from="VBoxContainer/Slot4" to="." method="_on_slot_4_pressed"]
[connection signal="pressed" from="VBoxContainer/Slot5" to="." method="_on_slot_5_pressed"]
[connection signal="pressed" from="VBoxContainer/Slot6" to="." method="_on_slot_6_pressed"]
[connection signal="pressed" from="VBoxContainer/Slot7" to="." method="_on_slot_7_pressed"]
[connection signal="pressed" from="VBoxContainer/Slot8" to="." method="_on_slot_8_pressed"]
[connection signal="pressed" from="VBoxContainer/Back" to="." method="_on_back_pressed"]

View file

@ -1,5 +1,6 @@
extends Control
const gamepadtest = preload("res://gamepad.gd")
var joyname
var lxaxis
var lyaxis
@ -56,7 +57,15 @@ func _process(delta):
func _input(event):
if Input.is_key_pressed(KEY_ESCAPE) || (Input.is_joy_button_pressed(0,JOY_BUTTON_A) && (Input.is_joy_button_pressed(0,JOY_BUTTON_B))):
get_tree().change_scene_to_file("res://levels/ui/debug.tscn")
joyname.set_text("Current Device: "+str(Input.get_joy_name(0))+"\nIf drift threshold is 0.2 or higher, your gamepad need new sticks")
gamepadtest.new(event)
if Global.gamepad == 1:
joyname.set_text("Current Device: "+str(Input.get_joy_name(0))+"\nController Type: Western"+"\nIf drift threshold is 0.2 or higher, your gamepad need new sticks")
elif Global.gamepad == 2:
joyname.set_text("Current Device: "+str(Input.get_joy_name(0))+"\nController Type: Japanese"+"\nIf drift threshold is 0.2 or higher, your gamepad need new sticks")
elif Global.gamepad == 3:
joyname.set_text("Current Device: "+str(Input.get_joy_name(0))+"\nController Type: Geo"+"\nIf drift threshold is 0.2 or higher, your gamepad need new sticks")
elif Global.gamepad == 0:
joyname.set_text("Current Device: "+str(Input.get_joy_name(0))+"\nController Type: Keyboard"+"\nIf drift threshold is 0.2 or higher, your gamepad need new sticks")
lxaxis.set_text("Left X Axis "+str(Input.get_joy_axis(0,JOY_AXIS_LEFT_X)))
lyaxis.set_text("Left Y Axis "+str(Input.get_joy_axis(0,JOY_AXIS_LEFT_Y)))
rxaxis.set_text("Right X Axis "+str(Input.get_joy_axis(0,JOY_AXIS_RIGHT_X)))

View file

@ -26,12 +26,13 @@ offset_bottom = 23.0
[node name="Game name" type="Label" parent="."]
layout_mode = 0
offset_left = 496.0
offset_left = 71.0
offset_top = 3.0
offset_right = 790.0
offset_right = 1209.0
offset_bottom = 73.0
theme_override_font_sizes/font_size = 40
text = "Gamepad Test"
text = "BUTTON_GAMEPADTEST"
horizontal_alignment = 1
[node name="Info" type="Label" parent="."]
layout_mode = 0
@ -48,7 +49,7 @@ offset_top = 672.0
offset_right = 444.0
offset_bottom = 708.0
theme_override_font_sizes/font_size = 22
text = "Press Escape or A + B to return"
text = "BUTTON_GAMEPADTEST_DONE"
[node name="BoxContainer" type="BoxContainer" parent="."]
layout_mode = 1

View file

@ -1,29 +1,32 @@
extends Node2D
const gamepadtest = preload("res://gamepad.gd")
var level
var player
var music
var bgsound := AudioStreamPlayer.new()
var sfx1 := AudioStreamPlayer.new()
var musictrack
var isboss
var bhud = load("res://levels/bottomhud.tscn").instantiate()
var thud = load("res://levels/ui/tophud.tscn").instantiate()
var pmenu = load("res://levels/ui/pause.tscn").instantiate()
var ispaused = false
var ishud = true
# Called when the node enters the scene tree for the first time.
func _ready():
_statrebase()
add_child(bgsound)
add_child(sfx1)
if Global.debug:
level = load(Global.places[Global.dplace[0]][Global.dplace[1]][Global.dplace[2]][0]).instantiate()
#player = load(Global.pchars[Global.dcpchar]).instantiate()
musictrack = Global.musictracks[Global.places[Global.dplace[0]][Global.dplace[1]][Global.dplace[2]][1]]
isboss = Global.places[Global.dplace[0]][Global.dplace[1]][Global.dplace[2]][2]
Global.isboss = Global.places[Global.dplace[0]][Global.dplace[1]][Global.dplace[2]][2]
else:
level = load(Global.places[Global.cplace[0]][Global.cplace[1]][Global.cplace[2]][0]).instantiate()
# player = load(Global.pchars[Global.cpchar]).instantiate()
musictrack = Global.musictracks[Global.places[Global.cplace[0]][Global.cplace[1]][Global.cplace[2]][1]]
isboss = Global.places[Global.cplace[0]][Global.cplace[1]][Global.cplace[2]][2]
Global.isboss = Global.places[Global.cplace[0]][Global.cplace[1]][Global.cplace[2]][2]
#if Global.cspawnarea[0] != null && Global.cspawnarea[0] != null:
# player.position.x = Global.cspawnarea[0]
# player.position.y = Global.cspawnarea[1]
@ -39,79 +42,123 @@ func _ready():
get_tree().root.add_child.call_deferred(thud)
#get_tree().root.add_child.call_deferred(player)
bgsound.stream = music
if !isboss:
bgsound.bus = &"Music"
bgsound.mix_target = 1
sfx1.mix_target = 1
sfx1.bus = &"SFX1"
Global.wait = Time.get_ticks_msec()
if !Global.isboss:
bgsound.play(0)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
Global.xm = 0
Global.ym = 0
var velocity = Vector2.ZERO
if Global.live == 1 && !Input.is_key_pressed(KEY_V) && !Input.is_joy_button_pressed(0,JOY_BUTTON_RIGHT_SHOULDER):
if Input.get_joy_axis(0,JOY_AXIS_LEFT_X) > 0.2 || Input.get_joy_axis(0,JOY_AXIS_LEFT_Y) > 0.2 || Input.get_joy_axis(0,JOY_AXIS_LEFT_X) < -0.2 || Input.get_joy_axis(0,JOY_AXIS_LEFT_Y) < -0.2:
Global.xm = Input.get_joy_axis(0,JOY_AXIS_LEFT_X)
Global.ym = Input.get_joy_axis(0,JOY_AXIS_LEFT_Y)
else:
if Input.is_action_pressed("ui_left"):
Global.xm = -1
if Input.is_action_pressed("ui_right"):
Global.xm = 1
if Input.is_action_pressed("ui_up"):
Global.ym = -1
if Input.is_action_pressed("ui_down"):
Global.ym = 1
if (Global.live > 4 && Global.live < 9) || Global.live == 2:
_exit()
#velocity = (Vector2.RIGHT.rotated(rotation) * -100 * Global.xm * delta)-Vector2.UP.rotated(rotation) * -100 * Global.ym * delta
func _input(event):
if (Input.is_key_pressed(KEY_ESCAPE) || Input.is_joy_button_pressed(0,JOY_BUTTON_BACK)) && Global.cdialog == []:
Global.live = 0
Global.bossready = false
get_tree().root.remove_child(thud)
get_tree().root.remove_child(bhud)
get_tree().root.remove_child(player)
get_tree().root.remove_child(level)
gamepadtest.new(event)
if Input.is_action_just_pressed("Pause") && Global.cdialog == []:
_pausemenu()
#Global.exitgame = true
if Global.live == 1 && Input.is_action_pressed("schar") && Input.is_action_just_pressed("ui_up"):
if Global.debug:
get_tree().change_scene_to_file("res://levels/ui/scene.tscn")
else:
get_tree().change_scene_to_file("res://title.tscn")
if (Global.live == 1 && (Input.is_key_pressed(KEY_V) && Input.is_key_pressed(KEY_UP)) ||(Input.is_joy_button_pressed(0,JOY_BUTTON_RIGHT_SHOULDER) && Input.is_joy_button_pressed(0,JOY_BUTTON_DPAD_UP))):
if Global.debug:
if Global.dparty[0][0] != null:
if Global.dparty[0][0] != null && Global.dstats[Global.dparty[0][0]][0] > 0:
Global.dcpchar = 0
else:
if Global.party[0][0] != null:
if Global.party[0][0] != null && Global.cstats[Global.party[0][0]][0] > 0:
Global.cpchar = 0
elif (Global.live == 1 && (Input.is_key_pressed(KEY_V) && Input.is_key_pressed(KEY_RIGHT)) ||(Input.is_joy_button_pressed(0,JOY_BUTTON_RIGHT_SHOULDER) && Input.is_joy_button_pressed(0,JOY_BUTTON_DPAD_RIGHT))):
elif Global.live == 1 && Input.is_action_pressed("schar") && Input.is_action_just_pressed("ui_right"):
if Global.debug:
if Global.dparty[1][0] != null:
if Global.dparty[1][0] != null && Global.dstats[Global.dparty[1][0]][0] > 0:
Global.dcpchar = 1
else:
if Global.party[1][0] != null:
if Global.party[1][0] != null && Global.cstats[Global.party[1][0]][0] > 0:
Global.cpchar = 1
elif (Global.live == 1 && (Input.is_key_pressed(KEY_V) && Input.is_key_pressed(KEY_DOWN)) ||(Input.is_joy_button_pressed(0,JOY_BUTTON_RIGHT_SHOULDER) && Input.is_joy_button_pressed(0,JOY_BUTTON_DPAD_DOWN))):
elif Global.live == 1 && Input.is_action_pressed("schar") && Input.is_action_just_pressed("ui_down"):
if Global.debug:
if Global.dparty[2][0] != null:
if Global.dparty[2][0] != null && Global.dstats[Global.dparty[2][0]][0] > 0:
Global.dcpchar = 2
else:
if Global.party[2][0] != null:
if Global.party[2][0] != null && Global.cstats[Global.party[2][0]][0] > 0:
Global.cpchar = 2
elif (Global.live == 1 && (Input.is_key_pressed(KEY_V) && Input.is_key_pressed(KEY_LEFT)) ||(Input.is_joy_button_pressed(0,JOY_BUTTON_RIGHT_SHOULDER) && Input.is_joy_button_pressed(0,JOY_BUTTON_DPAD_LEFT))):
elif Global.live == 1 && Input.is_action_pressed("schar") && Input.is_action_just_pressed("ui_left"):
if Global.debug:
if Global.dparty[3][0] != null:
if Global.dparty[3][0] != null && Global.dstats[Global.dparty[3][0]][0] > 0:
Global.dcpchar = 3
else:
if Global.party[3][0] != null:
if Global.party[3][0] != null && Global.cstats[Global.party[3][0]][0] > 0:
Global.cpchar = 3
if Global.bossready:
Global.bossready = false
sfx1.stream = load(Global.sfxtracks[1])
sfx1.play(0)
bgsound.play(0)
if Global.cdialog.size() != 0 && ishud:
if Global.live != 1 && ishud:
get_tree().root.remove_child(thud)
ishud = false
elif Global.cdialog.size() == 0&& !ishud:
elif Global.live == 1 && !ishud:
get_tree().root.add_child.call_deferred(thud)
ishud = true
func _statrebase():
if Global.debug:
for i in 4:
if Global.dparty[i][0] != null:
for j in 7:
Global.mstats[Global.dparty[i][0]][j] = Global.basestats[Global.dparty[i][0]][j] * Global.dlevel[Global.dparty[i][0]]
Global.cstats[Global.dparty[i][0]][j] = Global.basestats[Global.dparty[i][0]][j] * Global.dlevel[Global.dparty[i][0]]
else:
for i in 4:
if Global.party[i][0] != null:
for j in 7:
Global.mstats[Global.party[i][0]][j] = Global.basestats[Global.party[i][0]][j] * Global.level[Global.party[i][0]]
Global.cstats[Global.party[i][0]][j] = Global.basestats[Global.party[i][0]][j] * Global.level[Global.party[i][0]]
func _pausemenu():
if Global.live == 1 && !ispaused:
get_tree().root.remove_child(bhud)
get_tree().root.add_child.call_deferred(pmenu)
ispaused = true
Global.live = 4
elif Global.live == 4 && ispaused:
get_tree().root.remove_child(pmenu)
get_tree().root.add_child.call_deferred(bhud)
ispaused = false
pmenu = load("res://levels/ui/pause.tscn").instantiate()
Global.live = 1
func _exit():
Global.cdialog = []
Global.exitgame = false
ishud = false
Global.bossready = false
Global.cboss = [null, null, null]
#if Global.live == 4:
get_tree().root.remove_child(pmenu)
#else:
# get_tree().root.remove_child(thud)
# get_tree().root.remove_child(bhud)
#get_tree().root.remove_child(player)
get_tree().root.remove_child(level)
if Global.live == 7:
get_tree().change_scene_to_file("res://backgounds/result.tscn")
elif Global.live == 8:
get_tree().change_scene_to_file("res://levels/ui/Cutscenes.tscn")
elif Global.live == 5:
Global.result = [0, 0, 0, 0, 0]
_statrebase()
get_tree().change_scene_to_file("res://backgounds/warp.tscn")
elif Global.live == 2:
Global.result = [0, 0, 0, 0, 0]
_statrebase()
get_tree().root.remove_child(thud)
get_tree().change_scene_to_file("res://backgounds/gameover.tscn")
elif Global.live == 6:
Global.result = [0, 0, 0, 0, 0]
if Global.debug:
Global.live = 0
get_tree().change_scene_to_file("res://levels/ui/scene.tscn")
else:
Global.live = 0
get_tree().change_scene_to_file("res://title.tscn")

89
levels/ui/load.gd Normal file
View file

@ -0,0 +1,89 @@
extends Control
const gamepadtest = preload("res://gamepad.gd")
const loadgame = preload("res://load.gd")
func _ready():
#Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
$VBoxContainer/Slot1.grab_focus()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _level():
# This is like autoloading the scene, only
# it happens after already loading the main scene.
get_tree().change_scene_to_file("res://backgounds/disclaimer.tscn")
#Global.live = 1
#Global.gamelevel = randi() % 3
#if Global.gamelevel == 0:
# get_tree().change_scene_to_file("res://backgounds/galaxy.tscn")
#elif Global.gamelevel == 1:
# get_tree().change_scene_to_file("res://backgounds/wormhole.tscn")
#else:
# get_tree().change_scene_to_file("res://backgounds/abstract.tscn")
#get_tree().root.add_child(title)
#get_tree().root.remove_child(boot)
#boot.queue_free()
func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed()
#print("Mouse Click/Unclick at: ", event.position)
# if highlighted == 1:
# _on_debug_pressed()
# if highlighted == 2:
# _on_exit_pressed()
# else:
# _on_start_pressed()
# elif Input.is_action_pressed("ui_up"):
# focus_next
func _on_back_pressed():
get_tree().change_scene_to_file("res://levels/ui/savefile.tscn")
func _on_slot_1_pressed() -> void:
loadgame.new(1)
_on_back_pressed()
func _on_slot_2_pressed() -> void:
loadgame.new(2)
_on_back_pressed()
func _on_slot_3_pressed() -> void:
loadgame.new(3)
_on_back_pressed()
func _on_slot_4_pressed() -> void:
loadgame.new(4)
_on_back_pressed()
func _on_slot_5_pressed() -> void:
loadgame.new(5)
_on_back_pressed()
func _on_slot_6_pressed() -> void:
loadgame.new(6)
_on_back_pressed()
func _on_slot_7_pressed() -> void:
loadgame.new(7)
_on_back_pressed()
func _on_slot_8_pressed() -> void:
loadgame.new(8)
_on_back_pressed()

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