Compare commits

...

37 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
238 changed files with 4914 additions and 824 deletions

5
.gitignore vendored
View file

@ -5,3 +5,8 @@ nonfree/
text.en.translation text.en.translation
text.es.translation text.es.translation
text.ja.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 welcometext = ""
var playername var playername
func _ready(): func _ready():
_audiotest()
if OS.get_data_dir().begins_with("/home"): if OS.get_data_dir().begins_with("/home"):
playername = OS.get_data_dir().rsplit("/", true, 7)[2] playername = OS.get_data_dir().rsplit("/", true, 7)[2]
else: else:
@ -13,17 +14,22 @@ func _ready():
if Global.sk: if Global.sk:
_sk() _sk()
else: else:
if Global.firstrun: welcometext = "Welcome "+playername
welcometext = "Welcome to your first session "+playername
else:
welcometext = "Welcome back "+playername
if housefreedom: if housefreedom:
welcometext = welcometext+"\nSteam machines are not dead yet" welcometext = welcometext+"\nValve corporation promotes enviromental pollution"
if OS.get_environment("MANGOHUD").contains("1"): if OS.get_environment("MANGOHUD").contains("1"):
Global.mangohud = true Global.mangohud = true
welcometext = welcometext+"\nYour overlay already has a FPS counter, built-in one is disabled" welcometext = welcometext+"\nYour overlay already has a FPS counter, built-in one is disabled"
if OS.get_environment("WAYLAND_DISPLAY").length() > 0: 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" 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" welcometext = welcometext+"\nbooting virtual machine"
#This can be used to detect background process, may be useful later #This can be used to detect background process, may be useful later
#var output = [] #var output = []
@ -44,3 +50,6 @@ func _sk():
func _input(event): 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)): 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() get_tree().quit()
func _audiotest():
Global.spkmode = AudioServer.get_speaker_mode()

View file

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/sh
echo -ne '\033c\033]0;Midori in the Magic School\a' echo -ne '\033c\033]0;Midori in the Magic School\a'
base_path="$(dirname "$(realpath "$0")")" base_path="$(dirname "$(realpath "$0")")"
"$base_path/Midori in the Magic School.arm64" "$@" "$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> <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 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 only a proof of concept. If you want to help send me an email to asgardius@asgardius.company 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 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 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 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 # 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? 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: 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 extends Node2D
var presscontinue
const gamepadtest = preload("res://gamepad.gd")
var rmusic := AudioStreamPlayer.new() var rmusic := AudioStreamPlayer.new()
var wait var wait
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) presscontinue = $Label2
updatehud()
#Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
add_child(rmusic) add_child(rmusic)
var titlemusic = load(Global.musictracks[1]) var titlemusic = load(Global.musictracks[1])
rmusic.stream = titlemusic rmusic.stream = titlemusic
rmusic.mix_target = 1
rmusic.play(0) rmusic.play(0)
rmusic.bus = &"Music"
wait = Time.get_ticks_msec() wait = Time.get_ticks_msec()
#pass # Replace with function body. #pass # Replace with function body.
@ -18,6 +24,8 @@ func _process(delta):
pass pass
func _input(event): func _input(event):
gamepadtest.new(event)
updatehud()
# Mouse in viewport coordinates. # Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_accept"): if Input.is_action_just_pressed("ui_accept"):
#print("Mouse Click/Unclick at: ", event.position) #print("Mouse Click/Unclick at: ", event.position)
@ -34,3 +42,13 @@ func _title():
#get_tree().root.add_child(title) #get_tree().root.add_child(title)
#get_tree().root.remove_child(boot) #get_tree().root.remove_child(boot)
#boot.queue_free() #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"))

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"

View file

@ -1,13 +1,25 @@
extends Node2D extends Node2D
var presscontinue
var result
var rmusic := AudioStreamPlayer.new() var rmusic := AudioStreamPlayer.new()
var wait var wait
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): 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) Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
add_child(rmusic) add_child(rmusic)
var titlemusic = load(Global.musictracks[7]) var titlemusic = load(Global.musictracks[7])
rmusic.stream = titlemusic rmusic.stream = titlemusic
rmusic.mix_target = 1
rmusic.play(0) rmusic.play(0)
wait = Time.get_ticks_msec() wait = Time.get_ticks_msec()
#pass # Replace with function body. #pass # Replace with function body.
@ -18,6 +30,7 @@ func _process(delta):
pass pass
func _input(event): func _input(event):
updatehud()
# Mouse in viewport coordinates. # Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_accept"): if Input.is_action_just_pressed("ui_accept"):
#print("Mouse Click/Unclick at: ", event.position) #print("Mouse Click/Unclick at: ", event.position)
@ -29,7 +42,22 @@ func _title():
if Global.debug: if Global.debug:
get_tree().change_scene_to_file("res://levels/ui/scene.tscn") get_tree().change_scene_to_file("res://levels/ui/scene.tscn")
else: 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.add_child(title)
#get_tree().root.remove_child(boot) #get_tree().root.remove_child(boot)
#boot.queue_free() #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" Earned experience: 0"
[node name="Label2" type="Label" parent="."] [node name="Label2" type="Label" parent="."]
offset_left = 346.0 offset_left = 30.0
offset_top = 361.0 offset_top = 361.0
offset_right = 1004.0 offset_right = 1247.0
offset_bottom = 429.0 offset_bottom = 429.0
theme_override_font_sizes/font_size = 49 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")] [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 extends Node2D
var presscontinue
var rmusic := AudioStreamPlayer.new() var rmusic := AudioStreamPlayer.new()
var wait var wait
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) presscontinue = $Label2
updatehud()
#Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
add_child(rmusic) add_child(rmusic)
var titlemusic = load(Global.musictracks[1]) var titlemusic = load(Global.musictracks[1])
rmusic.stream = titlemusic rmusic.stream = titlemusic
rmusic.mix_target = 1
rmusic.play(0) rmusic.play(0)
wait = Time.get_ticks_msec() wait = Time.get_ticks_msec()
#pass # Replace with function body. #pass # Replace with function body.
@ -18,6 +22,7 @@ func _process(delta):
pass pass
func _input(event): func _input(event):
updatehud()
# Mouse in viewport coordinates. # Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_accept"): if Input.is_action_just_pressed("ui_accept"):
#print("Mouse Click/Unclick at: ", event.position) #print("Mouse Click/Unclick at: ", event.position)
@ -29,7 +34,17 @@ func _title():
if Global.debug: if Global.debug:
get_tree().change_scene_to_file("res://levels/ui/scene.tscn") get_tree().change_scene_to_file("res://levels/ui/scene.tscn")
else: 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.add_child(title)
#get_tree().root.remove_child(boot) #get_tree().root.remove_child(boot)
#boot.queue_free() #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"))

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

@ -9,7 +9,7 @@ custom_features=""
export_filter="all_resources" export_filter="all_resources"
include_filter="" include_filter=""
exclude_filter="" exclude_filter=""
export_path="./Midori in the Magic School.x86_64" export_path="./Midori in the Magic School"
encryption_include_filters="" encryption_include_filters=""
encryption_exclude_filters="" encryption_exclude_filters=""
encrypt_pck=false encrypt_pck=false
@ -21,7 +21,7 @@ script_export_mode=2
custom_template/debug="" custom_template/debug=""
custom_template/release="" custom_template/release=""
debug/export_console_wrapper=1 debug/export_console_wrapper=1
binary_format/embed_pck=true binary_format/embed_pck=false
texture_format/s3tc_bptc=true texture_format/s3tc_bptc=true
texture_format/etc2_astc=false texture_format/etc2_astc=false
binary_format/architecture="x86_64" binary_format/architecture="x86_64"
@ -37,3 +37,211 @@ unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
rm -rf \"{temp_dir}\"" 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,6 +2,7 @@ extends Node
var live = 0 var live = 0
var time var time
var spkmode
var origmpos var origmpos
var mousepos var mousepos
var timelimit = 15000 var timelimit = 15000
@ -10,22 +11,22 @@ var wait
var bossready = false var bossready = false
var playerx var playerx
var playery var playery
var ccutscene var ccutscene = null
const cutscenes = [["res://levels/Cutscenes/opening/aboutkaizo.tscn", "res://levels/Cutscenes/opening/midorihello.tscn", "res://music/scholartrip.wav", false], ["res://levels/Cutscenes/opening/midorihello.tscn", "res://levels/Cutscenes/opening/fearlessmidori.tscn", "res://music/scholartrip.wav", false], ["res://levels/Cutscenes/opening/fearlessmidori.tscn", "res://levels/Cutscenes/opening/midoriwaterfall.tscn", "res://music/midorinoakuma.wav", false], ["res://levels/Cutscenes/opening/midoriwaterfall.tscn", "res://levels/Cutscenes/opening/midorireading.tscn", "res://music/midorinoakuma.wav", false], ["res://levels/Cutscenes/opening/midorireading.tscn", "res://levels/Cutscenes/opening/chasing.tscn", "res://music/midorinoakuma.wav", false], ["res://levels/Cutscenes/opening/chasing.tscn", "res://levels/ui/gameplay.tscn", "res://music/midorinoakuma.wav", true]] 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, null, null, "Natasha Dostoyevsky"] 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 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], [null], [null], ["res://sprites/common/natasha/face.png"]] 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], [null], [null], ["res://sprites/common/natasha/facehud.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 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]] 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 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 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 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 = [] 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]]], [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, ["res://levels/Ceres/L20.tscn", 3, true]]]] 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 cplace = [0,2,1]
var dplace = [null, null, null] var dplace = [null, null, null]
const pbbullets = ["res://sprites/common/bullet/fireball.tscn", "res://sprites/common/bullet/X11.tscn", null, "res://sprites/common/bullet/arrow.tscn", null, null, null, null, null, "res://sprites/common/bullet/snowflake.tscn"] 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 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 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"] const npchars = ["res://sprites/common/midori/sprite.png", null, null, null, null, null, null, null, null, "res://sprites/common/natasha/sprite.png"]
@ -33,26 +34,23 @@ var cboss = [null, null, null]
var isboss var isboss
var party = [[0,0], [1,0], [9,0], [3,0]] var party = [[0,0], [1,0], [9,0], [3,0]]
const specialities = [2, 0, 3, 1, 5, 4] const specialities = [2, 0, 3, 1, 5, 4]
var dparty = [[0,0], [1,0], [9,0], [3,0]] var dparty = [[0,0], [1,0], [3,0], [9,0]]
var level = [1,1,1,1,1,1,1,1,1,1] 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 dlevel = [1,1,1,1,1,1,1,1,1,1]
var cpchar = 0 var cpchar = 0
var result = [0, 0, 0, 0, 0]
var dificulty = 0 var dificulty = 0
var dcpchar = 0 var dcpchar = 0
var mangohud = false var mangohud = false
var cspawnarea = [null, null] var cspawnarea = [null, null]
var owlocation = [[null, null], [null, null]] var owlocation = [[null, null], [null, null]]
var hiscoresfile = "user://hiscores.save" 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"]
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", "res://music/alsa.wav", "res://music/silverblue.wav"]
const sfxtracks = ["res://sfx/braindamage.wav", "res://sfx/gaugefill.wav", "res://sfx/boomboombakudan.wav"] const sfxtracks = ["res://sfx/braindamage.wav", "res://sfx/gaugefill.wav", "res://sfx/boomboombakudan.wav"]
var debug = false var debug = false
const release = "R0.1.9-alpha" const release = "R0.2.0-beta"
var sk = false var sk = false
var xm = 0 var gamepad = 0
var ym = 0 var quest = [0, 0, 0, 0, 0, 0]
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
pass # Replace with function body. pass # Replace with function body.

View file

@ -10,6 +10,8 @@ func _ready():
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.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 Global.live = 0
get_tree().root.add_child.call(talk) 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. # Called every frame. 'delta' is the elapsed time since the previous frame.
@ -17,16 +19,36 @@ func _process(delta):
pass pass
func _physics_process(delta): func _physics_process(delta):
if player.velocity.x >= 0 && player.velocity.y >= 0: if Global.debug:
if player.position.y < boss.position.y && player.get_index() > boss.get_index(): if Global.dstats[Global.dparty[0][0]][0] <= 0 && Global.live == 1:
move_child(player, boss.get_index() - 1) _winner()
print("move up") else:
elif player.position.y > boss.position.y && player.get_index() < boss.get_index(): if Global.cstats[Global.party[0][0]][0] <= 0 && Global.live == 1:
move_child(player, boss.get_index() + 1) _winner()
print("move down")
func _input(event): func _input(event):
if Global.cdialog.size() != 0 && Global.live == 1: if Global.cdialog.size() != 0 && Global.live == 1:
get_tree().root.remove_child(talk) get_tree().root.remove_child(talk)
Global.cdialog = [] 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]]

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,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

@ -1,20 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://c1t2vu12bpoki"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="2_vq0js"]
[node name="Chasing" type="Node2D"]
[node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0
offset_bottom = 600.0
[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_5"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("2_vq0js")]

View file

@ -1,5 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://bi8dsxjedvmxw"] [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"] [ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="2_0wcve"]
[node name="Midorireading" type="Node2D"] [node name="Midorireading" type="Node2D"]
@ -7,12 +8,14 @@
[node name="TextureRect" type="TextureRect" parent="."] [node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0 offset_right = 1278.0
offset_bottom = 600.0 offset_bottom = 600.0
texture = ExtResource("1_pt70s")
[node name="Text" type="Label" parent="."] [node name="Text" type="Label" parent="."]
offset_left = 52.0 offset_left = 52.0
offset_top = 606.0 offset_top = 606.0
offset_right = 1224.0 offset_right = 1224.0
offset_bottom = 714.0 offset_bottom = 714.0
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 40 theme_override_font_sizes/font_size = 40
text = "CUTSCENE_0_4" text = "CUTSCENE_0_4"
horizontal_alignment = 1 horizontal_alignment = 1

View file

@ -1,5 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://dbho2m55yi3ty"] [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"] [ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="2_r0grr"]
[node name="Midoriwaterfall" type="Node2D"] [node name="Midoriwaterfall" type="Node2D"]
@ -7,10 +8,11 @@
[node name="TextureRect" type="TextureRect" parent="."] [node name="TextureRect" type="TextureRect" parent="."]
offset_right = 1278.0 offset_right = 1278.0
offset_bottom = 600.0 offset_bottom = 600.0
texture = ExtResource("1_n3nwn")
[node name="Text" type="Label" parent="."] [node name="Text" type="Label" parent="."]
offset_left = 52.0 offset_left = 52.0
offset_top = 606.0 offset_top = 659.0
offset_right = 1224.0 offset_right = 1224.0
offset_bottom = 714.0 offset_bottom = 714.0
theme_override_font_sizes/font_size = 40 theme_override_font_sizes/font_size = 40

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

@ -16,17 +16,21 @@ func _ready():
func _process(delta): func _process(delta):
pass pass
func _physics_process(delta): #func _physics_process(delta):
if player.velocity.x >= 0 && player.velocity.y >= 0: # pass
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 _input(event): func _input(event):
if Global.cdialog.size() != 0 && Global.live == 1: if Global.cdialog.size() != 0 && Global.live == 1:
get_tree().root.remove_child(talk) get_tree().root.remove_child(talk)
Global.cdialog = [] 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

@ -13,11 +13,5 @@ func _ready():
func _process(delta): func _process(delta):
pass pass
func _physics_process(delta): #func _physics_process(delta):
if player.velocity.x >= 0 && player.velocity.y >= 0: # pass
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")

View file

@ -11,15 +11,17 @@ var ishud = true
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
Global.live = 1
add_child(bgsound) add_child(bgsound)
add_child(sfx1) add_child(sfx1)
level = load(Global.cutscenes[Global.ccutscene][0]).instantiate() level = load(Global.cutscenes[Global.ccutscene][0]).instantiate()
musictrack = Global.cutscenes[Global.ccutscene][2] musictrack = Global.musictracks[Global.cutscenes[Global.ccutscene][2]]
music = load(musictrack) music = load(musictrack)
get_tree().root.add_child.call_deferred(level) get_tree().root.add_child.call_deferred(level)
get_tree().root.add_child.call_deferred(bhud) get_tree().root.add_child.call_deferred(bhud)
#get_tree().root.add_child.call_deferred(player) #get_tree().root.add_child.call_deferred(player)
bgsound.stream = music bgsound.stream = music
bgsound.mix_target = 1
bgsound.play(0) bgsound.play(0)
@ -57,20 +59,22 @@ func _input(event):
get_tree().change_scene_to_file("res://title.tscn") get_tree().change_scene_to_file("res://title.tscn")
if Input.is_action_just_pressed("ui_accept"): if Input.is_action_just_pressed("ui_accept"):
if Global.cutscenes[Global.ccutscene][3]: if Global.cutscenes[Global.ccutscene][3]:
var ccutscene = Global.ccutscene
Global.ccutscene = null
get_tree().root.remove_child(bhud) get_tree().root.remove_child(bhud)
get_tree().root.remove_child(level) get_tree().root.remove_child(level)
bgsound.stop() bgsound.stop()
if Global.debug: if Global.debug:
get_tree().change_scene_to_file("res://levels/ui/scene.tscn") get_tree().change_scene_to_file("res://levels/ui/scene.tscn")
else: else:
get_tree().change_scene_to_file(Global.cutscenes[Global.ccutscene][1]) get_tree().change_scene_to_file(Global.cutscenes[ccutscene][1])
else: else:
Global.ccutscene += 1 Global.ccutscene += 1
get_tree().root.remove_child(level) get_tree().root.remove_child(level)
level = load(Global.cutscenes[Global.ccutscene][0]).instantiate() level = load(Global.cutscenes[Global.ccutscene][0]).instantiate()
if musictrack != Global.cutscenes[Global.ccutscene][2]: if musictrack != Global.musictracks[Global.cutscenes[Global.ccutscene][2]]:
bgsound.stop() bgsound.stop()
musictrack = Global.cutscenes[Global.ccutscene][2] musictrack = Global.musictracks[Global.cutscenes[Global.ccutscene][2]]
music = load(musictrack) music = load(musictrack)
bgsound.stream = music bgsound.stream = music
bgsound.play(0) bgsound.play(0)

View file

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

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=7 format=3 uid="uid://bivi1ncwnunrp"] [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="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="Texture2D" uid="uid://bxa27c7gnivwx" path="res://backgounds/night-sky-at-ceres.jpg" id="2_ribwb"]
@ -6,6 +6,10 @@
[ext_resource type="Script" path="res://Game name.gd" id="3_iuwjb"] [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://start.gd" id="4_cp7hy"]
[ext_resource type="Script" path="res://exit.gd" id="5_aogyx"] [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"] [node name="Alsatest" type="Control"]
layout_mode = 3 layout_mode = 3
@ -58,3 +62,37 @@ script = ExtResource("5_aogyx")
[node name="Bottomhud" parent="." instance=ExtResource("3_2tyrv")] [node name="Bottomhud" parent="." instance=ExtResource("3_2tyrv")]
layout_mode = 1 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="."]

View file

@ -1,6 +1,7 @@
extends Control extends Control
const gamepadtest = preload("res://gamepad.gd")
func _ready(): func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) #Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
$VBoxContainer/L20.grab_focus() $VBoxContainer/L20.grab_focus()
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
@ -24,6 +25,7 @@ func _level():
#boot.queue_free() #boot.queue_free()
func _input(event): func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates. # Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"): if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed() _on_back_pressed()
@ -50,3 +52,21 @@ func _on_l_20_pressed():
Global.dplace = [1, 11, 19] Global.dplace = [1, 11, 19]
Global.live = 1 Global.live = 1
get_tree().change_scene_to_file("res://levels/ui/gameplay.tscn") 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")

View file

@ -61,19 +61,19 @@ text = "CERES_L20_DESC"
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs") theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "BUTTON_PLACEHOLDER" text = "MENU_MAP"
[node name="Dialogtest" type="Button" parent="VBoxContainer"] [node name="Dialogtest" type="Button" parent="VBoxContainer"]
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs") theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "BUTTON_PLACEHOLDER" text = "Honker Railway"
[node name="Bullethell" type="Button" parent="VBoxContainer"] [node name="Bullethell" type="Button" parent="VBoxContainer"]
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs") theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "BUTTON_PLACEHOLDER" text = "TWIN_TROUBLEMAKERS"
[node name="Credits" type="Button" parent="VBoxContainer"] [node name="Credits" type="Button" parent="VBoxContainer"]
layout_mode = 2 layout_mode = 2
@ -94,4 +94,7 @@ theme_override_styles/focus = SubResource("StyleBoxFlat_r2qrn")
text = "BUTTON_RETURN" text = "BUTTON_RETURN"
[connection signal="pressed" from="VBoxContainer/L20" to="." method="_on_l_20_pressed"] [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"] [connection signal="pressed" from="VBoxContainer/Back" to="." method="_on_back_pressed"]

View file

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

View file

@ -92,13 +92,17 @@ Provided as a replacement for a HP 14 laptop that died while running Genshin Imp
Steam Deck Steam Deck
Arch Linux Rolling Arch Linux Rolling
Used as development device since 0.0.0-dev release 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 HP Pavilion x360
Debian 12 Debian 12
Game assets were designed with this device Game assets were designed with this device
Provided by Eric Asgardius Provided by Eric Asgardius
Gigabyte B550M DS3H AC
Arch Linux Rolling
Used for development since R0.1.10-alpha (Boom Boom Torofi Build)
Feedback Feedback
Sakura Nakayama Sakura Nakayama
Tood Tood
@ -198,6 +202,14 @@ Boss Fight (Earth)
unreeeal superhero 3 unreeeal superhero 3
rez-kenet rez-kenet
ALSA Sound Test
Hostlov
Mrgamer
Elysium Fields
Eternity
4mat
Sound Effects Sound Effects
Provided by Pixabay Provided by Pixabay
@ -243,13 +255,16 @@ Used at every image
Godot Engine development Godot Engine development
Project Founders Project Founders
Juan Linietsky (reduz) Juan Linietsky (reduz)
Ariel Manzur (punto-) Ariel Manzur (punto-)
Lead Developer Lead Developer
Juan Linietsky (reduz) Juan Linietsky (reduz)
Project Manager Project Manager
Rémi Verschelde (akien-mga) Rémi Verschelde (akien-mga)
Developers Developers
@ -258,10 +273,13 @@ Aaron Franke (aaronfranke)
Aaron Record (LightningAA) Aaron Record (LightningAA)
Adam Scott (adamscott) Adam Scott (adamscott)
Alexander Holland (AlexHolly) Alexander Holland (AlexHolly)
Alex Drozd (brno32)
Alexey Khoroshavin (allkhor) Alexey Khoroshavin (allkhor)
Alfred Reinold Baudisch (alfredbaudisch) Alfred Reinold Baudisch (alfredbaudisch)
Alistair Leslie-Hughes (alesliehughes)
Alket Rexhepi (alketii) Alket Rexhepi (alketii)
Andrea Catania (AndreaCatania) Andrea Catania (AndreaCatania)
Andreia Gaita (shana)
Andrii Doroshenko (Xrayez) Andrii Doroshenko (Xrayez)
Andy Maloney (asmaloney) Andy Maloney (asmaloney)
Andy Moss (MillionOstrich) Andy Moss (MillionOstrich)
@ -272,7 +290,9 @@ Anton Yabchinskiy (a12n)
Anutrix Anutrix
Aren Villanueva (kurikaesu) Aren Villanueva (kurikaesu)
Ariel Manzur (punto-) Ariel Manzur (punto-)
Arman Elgudzhyan (puchik)
AThousandShips AThousandShips
aXu-AP
Bartłomiej T. Listwon (Listwon) Bartłomiej T. Listwon (Listwon)
Bastiaan Olij (BastiaanOlij) Bastiaan Olij (BastiaanOlij)
Ben Brookshire (sheepandshepherd) Ben Brookshire (sheepandshepherd)
@ -280,6 +300,7 @@ Benjamin Larsson (Nallebeorn)
Bernhard Liebl (poke1024) Bernhard Liebl (poke1024)
Bhuvan Vemula (Bhu1-V) Bhuvan Vemula (Bhu1-V)
bitsawer bitsawer
BlueCube3310
Błażej Szczygieł (zaps166) Błażej Szczygieł (zaps166)
Bojidar Marinov (bojidar-bg) Bojidar Marinov (bojidar-bg)
Brian Semrau (briansemrau) Brian Semrau (briansemrau)
@ -289,6 +310,7 @@ Camille Mohr-Daurat (pouleyKetchoupp)
Caner Demirer (cdemirer) Caner Demirer (cdemirer)
Carl Olsson (not-surt) Carl Olsson (not-surt)
Carter Anderson (cart) Carter Anderson (cart)
ChibiDenDen
Chris Bradfield (cbscribe) Chris Bradfield (cbscribe)
Clay John (clayjohn) Clay John (clayjohn)
ConteZero ConteZero
@ -298,6 +320,7 @@ Daniel Rakos (aqnuep)
Daniel Zilberleyb (dzil123) Daniel Zilberleyb (dzil123)
Danil Alexeev (dalexeev) Danil Alexeev (dalexeev)
dankan1890 dankan1890
Darío Banini (DarioSamo)
David Cambré (Gallilus) David Cambré (Gallilus)
David Sichma (DavidSichma) David Sichma (DavidSichma)
David Snopek (dsnopek) David Snopek (dsnopek)
@ -322,6 +345,7 @@ Fabio Alessandrelli (Faless)
Fabrice Cipolla (fabriceci) Fabrice Cipolla (fabriceci)
Ferenc Arn (tagcup) Ferenc Arn (tagcup)
FireForge (fire-forge) FireForge (fire-forge)
Florian Kothmeier (Dragoncraft89)
follower follower
foxydevloper foxydevloper
François Belair (Razoric480) François Belair (Razoric480)
@ -340,6 +364,7 @@ HP van Braam (hpvb)
Hendrik Brucker (Geometror) Hendrik Brucker (Geometror)
hilfazer hilfazer
Hiroshi Ogawa (hi-ogawa) Hiroshi Ogawa (hi-ogawa)
HolonProduction
homer666 homer666
hoontee hoontee
Hugo Locurcio (Calinou) Hugo Locurcio (Calinou)
@ -352,12 +377,14 @@ Indah Sylvia (ISylvox)
J08nY J08nY
Jake Young (Duroxxigar) Jake Young (Duroxxigar)
Jakub Grzesik (kubecz3k) Jakub Grzesik (kubecz3k)
Jakub Marcowski (Chubercik)
James Buck (jbuck3) James Buck (jbuck3)
Jan Haller (Bromeon) Jan Haller (Bromeon)
Jason Knight (jasonwinterpixel) Jason Knight (jasonwinterpixel)
Jean-Michel Bernard (jmb462) Jean-Michel Bernard (jmb462)
Jérôme Gully (Nutriz) Jérôme Gully (Nutriz)
Jia Jun Chai (SkyLucilfer) Jia Jun Chai (SkyLucilfer)
jitspoe
Joan Fons Sanchez (JFonS) Joan Fons Sanchez (JFonS)
Johan Manuel (29jm) Johan Manuel (29jm)
Johannes Witt (HaSa1002) Johannes Witt (HaSa1002)
@ -382,6 +409,7 @@ Liz Haas (27thLiz)
Lucien Menassol (Kanabenki) Lucien Menassol (Kanabenki)
Lyuma Lyuma
Maganty Rushyendra (mrushyendra) Maganty Rushyendra (mrushyendra)
Malcolm Nixon (Malcolmnixon)
Manuele Finocchiaro (m4nu3lf) Manuele Finocchiaro (m4nu3lf)
Marcel Admiraal (madmiraal) Marcel Admiraal (madmiraal)
Marcelo Fernandez (marcelofg55) Marcelo Fernandez (marcelofg55)
@ -401,6 +429,7 @@ Martin Sjursen (binbitten)
marynate marynate
Masoud BH (masoudbh3) Masoud BH (masoudbh3)
Mateo Kuruk Miccino (kuruk-mm) Mateo Kuruk Miccino (kuruk-mm)
Matias N. Goldberg (darksylinc)
Matthew (skyace65) Matthew (skyace65)
Matthias Hölzl (hoelzl) Matthias Hölzl (hoelzl)
Max Hilbrunner (mhilbrunner) Max Hilbrunner (mhilbrunner)
@ -413,10 +442,12 @@ MichiRecRoom (LikeLakers2)
Micky (Mickeon) Micky (Mickeon)
Mikael Hermansson (mihe) Mikael Hermansson (mihe)
MinusKube MinusKube
MJacred
Morris \"Tabor\" Arroad (mortarroad) Morris \"Tabor\" Arroad (mortarroad)
mrezai mrezai
Muhammad Huri (CakHuri) Muhammad Huri (CakHuri)
muiroc muiroc
myaaaaaaaaa
Nathan Franke (nathanfranke) Nathan Franke (nathanfranke)
Nathan Lovato (NathanLovato) Nathan Lovato (NathanLovato)
Nathan Warden (NathanWarden) Nathan Warden (NathanWarden)
@ -430,6 +461,9 @@ ocean (they/them) (anvilfolk)
Omar El Sheikh (The-O-King) Omar El Sheikh (The-O-King)
Ovnuniarchos Ovnuniarchos
Pascal Richter (ShyRed) Pascal Richter (ShyRed)
passivestar
Patrick Dawson (pkdawson)
Patrick Exner (FlameLizard)
Patrick (firefly2442) Patrick (firefly2442)
Paul Batty (Paulb23) Paul Batty (Paulb23)
Paul Joannon (paulloz) Paul Joannon (paulloz)
@ -443,6 +477,7 @@ Pieter-Jan Briers (PJB3005)
Poommetee Ketson (Noshyaar) Poommetee Ketson (Noshyaar)
Przemysław Gołąb (n-pigeon) Przemysław Gołąb (n-pigeon)
Rafael M. G. (rafallus) Rafael M. G. (rafallus)
Raffaele Picca (RPicster)
Rafał Mikrut (qarmin) Rafał Mikrut (qarmin)
Ralf Hölzemer (rollenrolm) Ralf Hölzemer (rollenrolm)
Ramesh Ravone (RameshRavone) Ramesh Ravone (RameshRavone)
@ -457,6 +492,7 @@ Ricardo Buring (rburing)
Ricardo Subtil (Ev1lbl0w) Ricardo Subtil (Ev1lbl0w)
Riteo Siuga (Riteo) Riteo Siuga (Riteo)
Roberto F. Arroyo (robfram) Roberto F. Arroyo (robfram)
Robert Yevdokimov (ryevdokimov)
Robin Hübner (profan) Robin Hübner (profan)
romulox-x romulox-x
Rune Smith (rune-scape) Rune Smith (rune-scape)
@ -465,6 +501,7 @@ Ryan Roden-Corrent (rrcore)
Saniko (sanikoyes) Saniko (sanikoyes)
santouits santouits
SaracenOne SaracenOne
Septian Ganendra S. K. (sepTN)
Sergey Minakov (naithar) Sergey Minakov (naithar)
sersoong sersoong
Shiqing (kawa-yoiko) Shiqing (kawa-yoiko)
@ -472,10 +509,14 @@ Silc 'Tokage' Renew (TokageItLab)
Simon Wenner (swenner) Simon Wenner (swenner)
smix8 smix8
snailrhymer snailrhymer
Sofox (TheSofox)
Stanislav Labzyuk (DarkMessiah)
Stijn Hinlopen (hinlopen) Stijn Hinlopen (hinlopen)
stmSi
Swarnim Arun (minraws) Swarnim Arun (minraws)
TC (floppyhammer) TC (floppyhammer)
TechnoPorg TechnoPorg
Thaddeus Crews (Repiteo)
Thakee Nathees (ThakeeNathees) Thakee Nathees (ThakeeNathees)
thebestnom thebestnom
Theo Hallenius (TheoXD) Theo Hallenius (TheoXD)
@ -495,13 +536,17 @@ William Deurwaarder (williamd67)
Will Nations (willnationsdev) Will Nations (willnationsdev)
Wilson E. Alvarez (Rubonnek) Wilson E. Alvarez (Rubonnek)
Xavier Cho (mysticfall) Xavier Cho (mysticfall)
Yaohua Xiong (xiongyaohua)
yg2f (SuperUserNameMan) yg2f (SuperUserNameMan)
Yordan Dolchinkov (Jordyfel)
Yuri Rubinsky (Chaosus) Yuri Rubinsky (Chaosus)
Yuri Sizov (YuriSizov) Yuri Sizov (YuriSizov)
Zae Chao (zaevi) Zae Chao (zaevi)
Zak Stam (zaksnet) Zak Stam (zaksnet)
Zher Huei Lee (leezh) Zher Huei Lee (leezh)
Zi Ye (MajorMcDoom)
ZuBsPaCe ZuBsPaCe
谢天 (jsjtxietian)
风青山 (Rindbee) 风青山 (Rindbee)
Asgardius Virtualx Project contributors Asgardius Virtualx Project contributors
@ -580,15 +625,12 @@ Kawaielli
For helping with my best character: For helping with my best character:
Kimberly Arch Kimberly Arch
HoYoVerse HoYoVerse Staff
For create those great characters For those great characters
Paul Klee Paul Klee
For inspiring my own art For inspiring my own art
My father
For let me know that humanity is awful
??? (Kuro Games Staff) ??? (Kuro Games Staff)
For creating Yinlin as a tribute to my best character: Kimberly arch For creating Yinlin as a tribute to my best character: Kimberly arch
@ -616,6 +658,8 @@ For thinking different
Richard Stallman Richard Stallman
For let me know that we need more open source videogames 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 Contact info
Email Email
@ -630,9 +674,6 @@ Matrix Chat
XMPP XMPP
asgardius@asgardius.company asgardius@asgardius.company
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
No animals were harmed during game development No animals were harmed during game development
Every explosion was tested on vector based universes only Every explosion was tested on vector based universes only

View file

@ -1,6 +1,7 @@
extends Control extends Control
const gamepadtest = preload("res://gamepad.gd")
func _ready(): func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) #Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
$"VBoxContainer/Disclaimer".grab_focus() $"VBoxContainer/Disclaimer".grab_focus()
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
@ -24,6 +25,7 @@ func _level():
#boot.queue_free() #boot.queue_free()
func _input(event): func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates. # Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"): if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed() _on_back_pressed()
@ -57,7 +59,8 @@ func _on_wip_pressed():
func _on_results_pressed(): func _on_results_pressed():
#get_tree().change_scene_to_file("res://backgounds/result.tscn") #get_tree().change_scene_to_file("res://backgounds/result.tscn")
pass Global.ccutscene = 13
get_tree().change_scene_to_file("res://levels/ui/Cutscenes.tscn")
func _on_disclaimer_pressed(): func _on_disclaimer_pressed():
@ -67,10 +70,12 @@ func _on_disclaimer_pressed():
func _on_testrooms_pressed(): func _on_testrooms_pressed():
#get_tree().change_scene_to_file("res://levels/ui/testrooms.tscn") #Global.debug = false
pass Global.ccutscene = 6
get_tree().change_scene_to_file("res://levels/ui/Cutscenes.tscn")
func _on_ceres_pressed(): func _on_ceres_pressed():
#get_tree().change_scene_to_file("res://levels/ui/ceres.tscn") #get_tree().change_scene_to_file("res://levels/ui/ceres.tscn")
pass Global.ccutscene = 10
get_tree().change_scene_to_file("res://levels/ui/Cutscenes.tscn")

View file

@ -61,19 +61,19 @@ text = "CUTSCENE_0_NAME"
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs") theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "BUTTON_PLACEHOLDER" text = "CUTSCENE_1_NAME"
[node name="Ceres" type="Button" parent="VBoxContainer"] [node name="Ceres" type="Button" parent="VBoxContainer"]
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs") theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "BUTTON_PLACEHOLDER" text = "Honker Railway"
[node name="Results" type="Button" parent="VBoxContainer"] [node name="Results" type="Button" parent="VBoxContainer"]
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs") theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "BUTTON_PLACEHOLDER" text = "TWIN_TROUBLEMAKERS"
[node name="Credits" type="Button" parent="VBoxContainer"] [node name="Credits" type="Button" parent="VBoxContainer"]
layout_mode = 2 layout_mode = 2

View file

@ -1,7 +1,8 @@
extends Control extends Control
const gamepadtest = preload("res://gamepad.gd")
func _ready(): func _ready():
_statrebase() _statrebase()
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) #Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
Global.debug = true Global.debug = true
$"VBoxContainer/Gamepad Test".grab_focus() $"VBoxContainer/Gamepad Test".grab_focus()
@ -26,6 +27,7 @@ func _level():
#boot.queue_free() #boot.queue_free()
func _input(event): func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates. # Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"): if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed() _on_back_pressed()
@ -51,7 +53,7 @@ func _on_sound_test_pressed():
func _on_back_pressed(): func _on_back_pressed():
Global.debug = false 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(): func _on_gamepad_test_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 extends Control
const gamepadtest = preload("res://gamepad.gd")
var joyname var joyname
var lxaxis var lxaxis
var lyaxis var lyaxis
@ -56,7 +57,15 @@ func _process(delta):
func _input(event): 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))): 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") 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))) 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))) 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))) rxaxis.set_text("Right X Axis "+str(Input.get_joy_axis(0,JOY_AXIS_RIGHT_X)))

View file

@ -1,4 +1,5 @@
extends Node2D extends Node2D
const gamepadtest = preload("res://gamepad.gd")
var level var level
var player var player
var music var music
@ -41,6 +42,11 @@ func _ready():
get_tree().root.add_child.call_deferred(thud) get_tree().root.add_child.call_deferred(thud)
#get_tree().root.add_child.call_deferred(player) #get_tree().root.add_child.call_deferred(player)
bgsound.stream = music bgsound.stream = music
bgsound.bus = &"Music"
bgsound.mix_target = 1
sfx1.mix_target = 1
sfx1.bus = &"SFX1"
Global.wait = Time.get_ticks_msec()
if !Global.isboss: if !Global.isboss:
bgsound.play(0) bgsound.play(0)
@ -49,56 +55,42 @@ func _ready():
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta): func _process(delta):
var velocity = Vector2.ZERO var velocity = Vector2.ZERO
if Global.exitgame: if (Global.live > 4 && Global.live < 9) || Global.live == 2:
_exit() _exit()
#velocity = (Vector2.RIGHT.rotated(rotation) * -100 * Global.xm * delta)-Vector2.UP.rotated(rotation) * -100 * Global.ym * delta #velocity = (Vector2.RIGHT.rotated(rotation) * -100 * Global.xm * delta)-Vector2.UP.rotated(rotation) * -100 * Global.ym * delta
func _input(event): func _input(event):
Global.xm = 0 gamepadtest.new(event)
Global.ym = 0
if Global.live == 1 && !Input.is_action_pressed("schar"):
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 Input.is_action_just_pressed("Pause") && Global.cdialog == []: if Input.is_action_just_pressed("Pause") && Global.cdialog == []:
_pausemenu() _pausemenu()
#Global.exitgame = true #Global.exitgame = true
if Global.live == 1 && Input.is_action_pressed("schar") && Input.is_action_just_pressed("ui_up"): if Global.live == 1 && Input.is_action_pressed("schar") && Input.is_action_just_pressed("ui_up"):
if Global.debug: 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 Global.dcpchar = 0
else: else:
if Global.party[0][0] != null: if Global.party[0][0] != null && Global.cstats[Global.party[0][0]][0] > 0:
Global.cpchar = 0 Global.cpchar = 0
elif Global.live == 1 && Input.is_action_pressed("schar") && Input.is_action_just_pressed("ui_right"): elif Global.live == 1 && Input.is_action_pressed("schar") && Input.is_action_just_pressed("ui_right"):
if Global.debug: 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 Global.dcpchar = 1
else: else:
if Global.party[1][0] != null: if Global.party[1][0] != null && Global.cstats[Global.party[1][0]][0] > 0:
Global.cpchar = 1 Global.cpchar = 1
elif Global.live == 1 && Input.is_action_pressed("schar") && Input.is_action_just_pressed("ui_down"): elif Global.live == 1 && Input.is_action_pressed("schar") && Input.is_action_just_pressed("ui_down"):
if Global.debug: 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 Global.dcpchar = 2
else: else:
if Global.party[2][0] != null: if Global.party[2][0] != null && Global.cstats[Global.party[2][0]][0] > 0:
Global.cpchar = 2 Global.cpchar = 2
elif Global.live == 1 && Input.is_action_pressed("schar") && Input.is_action_just_pressed("ui_left"): elif Global.live == 1 && Input.is_action_pressed("schar") && Input.is_action_just_pressed("ui_left"):
if Global.debug: 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 Global.dcpchar = 3
else: else:
if Global.party[3][0] != null: if Global.party[3][0] != null && Global.cstats[Global.party[3][0]][0] > 0:
Global.cpchar = 3 Global.cpchar = 3
if Global.bossready: if Global.bossready:
Global.bossready = false Global.bossready = false
@ -117,11 +109,13 @@ func _statrebase():
if Global.dparty[i][0] != null: if Global.dparty[i][0] != null:
for j in 7: 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.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: else:
for i in 4: for i in 4:
if Global.party[i][0] != null: if Global.party[i][0] != null:
for j in 7: for j in 7:
Global.mstats[Global.party[i][0]][j] = Global.basestats[Global.party[i][0]][j] * Global.level[Global.dparty[i][0]] 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(): func _pausemenu():
if Global.live == 1 && !ispaused: if Global.live == 1 && !ispaused:
get_tree().root.remove_child(bhud) get_tree().root.remove_child(bhud)
@ -135,19 +129,36 @@ func _pausemenu():
pmenu = load("res://levels/ui/pause.tscn").instantiate() pmenu = load("res://levels/ui/pause.tscn").instantiate()
Global.live = 1 Global.live = 1
func _exit(): func _exit():
Global.cdialog = []
Global.exitgame = false Global.exitgame = false
ishud = false ishud = false
Global.bossready = false Global.bossready = false
Global.cboss = [null, null, null] Global.cboss = [null, null, null]
if Global.live == 4: #if Global.live == 4:
get_tree().root.remove_child(pmenu) get_tree().root.remove_child(pmenu)
else: #else:
get_tree().root.remove_child(thud) # get_tree().root.remove_child(thud)
get_tree().root.remove_child(bhud) # get_tree().root.remove_child(bhud)
#get_tree().root.remove_child(player) #get_tree().root.remove_child(player)
get_tree().root.remove_child(level) get_tree().root.remove_child(level)
Global.live = 0 if Global.live == 7:
if Global.debug: get_tree().change_scene_to_file("res://backgounds/result.tscn")
get_tree().change_scene_to_file("res://levels/ui/scene.tscn") elif Global.live == 8:
else: get_tree().change_scene_to_file("res://levels/ui/Cutscenes.tscn")
get_tree().change_scene_to_file("res://title.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()

116
levels/ui/load.tscn Normal file
View file

@ -0,0 +1,116 @@
[gd_scene load_steps=6 format=3 uid="uid://d0snuhuxkpvba"]
[ext_resource type="Script" path="res://levels/ui/load.gd" id="1_jemxw"]
[ext_resource type="Texture2D" uid="uid://bxa27c7gnivwx" path="res://backgounds/night-sky-at-ceres.jpg" id="2_y0r7s"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="3_ldlpj"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_anfrg"]
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="Load" 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_jemxw")
[node name="Night Sky" type="TextureRect" parent="."]
layout_mode = 0
offset_right = 1280.0
offset_bottom = 720.0
texture = ExtResource("2_y0r7s")
[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_LOAD"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("3_ldlpj")]
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="Slot1" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_anfrg")
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_anfrg")
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_anfrg")
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_anfrg")
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_anfrg")
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_anfrg")
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_anfrg")
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_anfrg")
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/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

@ -0,0 +1,27 @@
[gd_scene format=3 uid="uid://cbeya2ihapatq"]
[node name="Missinggamepad" type="Node2D"]
[node name="ColorRect" type="ColorRect" parent="."]
offset_left = 105.0
offset_top = 211.0
offset_right = 1177.0
offset_bottom = 511.0
color = Color(0, 0, 0, 1)
[node name="Label" type="Label" parent="."]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = 105.0
offset_top = 211.0
offset_right = 1177.0
offset_bottom = 511.0
grow_horizontal = 2
grow_vertical = 2
theme_override_font_sizes/font_size = 40
text = "TEXT_GAMEPAD_DISCONNECTED"
horizontal_alignment = 1
vertical_alignment = 1

View file

@ -1,11 +1,14 @@
extends Control extends Control
const gamepadtest = preload("res://gamepad.gd")
var player := AudioStreamPlayer.new() var player := AudioStreamPlayer.new()
var infobox var infobox
func _ready(): func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) #Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
add_child(player) add_child(player)
player.mix_target = 1
player.bus = &"Music"
$"BoxContainer/VBoxContainer/Title Screen".grab_focus() $"BoxContainer/VBoxContainer/Title Screen".grab_focus()
infobox = $Info infobox = $Info
@ -31,6 +34,7 @@ func _level():
#boot.queue_free() #boot.queue_free()
func _input(event): func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates. # Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"): if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed() _on_back_pressed()

View file

@ -1,29 +1,15 @@
extends Control extends Control
const gamepadtest = preload("res://gamepad.gd")
func _ready(): func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) #Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
$VBoxContainer/Thisfirst.grab_focus() $VBoxContainer/Thisfirst.grab_focus()
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta): func _process(delta):
pass 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/wip.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): func _input(event):
gamepadtest.new(event)
if Input.is_action_just_pressed("ui_cancel"): if Input.is_action_just_pressed("ui_cancel"):
get_tree().change_scene_to_file("res://levels/ui/tmenu.tscn") get_tree().change_scene_to_file("res://levels/ui/tmenu.tscn")
# Mouse in viewport coordinates. # Mouse in viewport coordinates.
@ -48,11 +34,7 @@ func _on_exit_pressed():
func _on_noob_pressed(): func _on_noob_pressed():
_statrebase() _statrebase()
Global.dificulty = 1 Global.dificulty = 1
Global.cplace = [1, 11, 19] _reset()
Global.live = 1
Global.cpchar = 0
Global.party = [[0,0], [null,null], [null,null], [null,null]]
Global.ccutscene = 0
get_tree().change_scene_to_file("res://levels/ui/Cutscenes.tscn") get_tree().change_scene_to_file("res://levels/ui/Cutscenes.tscn")
#pass # Replace with function body. #pass # Replace with function body.
@ -60,11 +42,7 @@ func _on_noob_pressed():
func _on_thisfirst_pressed(): func _on_thisfirst_pressed():
_statrebase() _statrebase()
Global.dificulty = 2 Global.dificulty = 2
Global.cplace = [1, 11, 19] _reset()
Global.live = 1
Global.cpchar = 0
Global.party = [[0,0], [null,null], [null,null], [null,null]]
Global.ccutscene = 0
get_tree().change_scene_to_file("res://levels/ui/Cutscenes.tscn") get_tree().change_scene_to_file("res://levels/ui/Cutscenes.tscn")
#pass # Replace with function body. #pass # Replace with function body.
@ -83,3 +61,11 @@ func _statrebase():
if Global.party[i][0] != null: if Global.party[i][0] != null:
for j in 7: for j in 7:
Global.cstats[Global.party[i][0]][j] = Global.basestats[Global.party[i][0]][j] * Global.level[Global.dparty[i][0]] Global.cstats[Global.party[i][0]][j] = Global.basestats[Global.party[i][0]][j] * Global.level[Global.dparty[i][0]]
func _reset():
Global.quest = [0, 0, 0, 0, 0, 0]
Global.cplace = [1, 11, 19]
Global.live = 1
Global.cpchar = 0
Global.party = [[0,0], [null,null], [null,null], [null,null]]
Global.ccutscene = 0

View file

@ -3,9 +3,11 @@ var cff
var cnf var cnf
var chealthf var chealthf
var clevel var clevel
var warpmenu
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
warpmenu = $CanvasLayer/HBoxContainer2/VBoxContainer/Warp
cff = $CanvasLayer/HBoxContainer/TextureRect cff = $CanvasLayer/HBoxContainer/TextureRect
cnf = $CanvasLayer/HBoxContainer/VBoxContainer/Cname cnf = $CanvasLayer/HBoxContainer/VBoxContainer/Cname
chealthf = $CanvasLayer/HBoxContainer/VBoxContainer/HBoxContainer/Label2 chealthf = $CanvasLayer/HBoxContainer/VBoxContainer/HBoxContainer/Label2
@ -23,6 +25,16 @@ func _input(event):
_fetchdata() _fetchdata()
func _fetchdata(): func _fetchdata():
if Global.debug:
if Global.dplace != [1, 11, 19] && (Global.dplace[0] == 1 || Global.dplace[0] == 2):
warpmenu.visible = true
else:
warpmenu.visible = false
else:
if Global.cplace != [1, 11, 19] && (Global.cplace[0] == 1 || Global.dplace[0] == 2):
warpmenu.visible = true
else:
warpmenu.visible = false
if Global.debug: if Global.debug:
cnf.set_text(Global.pcnames[Global.dparty[Global.dcpchar][0]]) cnf.set_text(Global.pcnames[Global.dparty[Global.dcpchar][0]])
cff.texture = load(Global.hudfaces[Global.dparty[Global.dcpchar][0]][Global.dparty[Global.dcpchar][1]]) cff.texture = load(Global.hudfaces[Global.dparty[Global.dcpchar][0]][Global.dparty[Global.dcpchar][1]])
@ -36,5 +48,13 @@ func _fetchdata():
func _on_exit_pressed(): func _on_exit_pressed():
Global.exitgame = true Global.live = 6
#pass # Replace with function body. #pass # Replace with function body.
func _on_warp_pressed() -> void:
if Global.debug:
Global.dplace = [0, 0, 0]
else:
Global.cplace = [0, 0, 0]
Global.live = 5

View file

@ -26,6 +26,7 @@ color = Color(0, 0, 0, 1)
[node name="Bottomhud" parent="CanvasLayer" instance=ExtResource("2_jnb0v")] [node name="Bottomhud" parent="CanvasLayer" instance=ExtResource("2_jnb0v")]
[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer"] [node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer"]
layout_direction = 3
offset_right = 40.0 offset_right = 40.0
offset_bottom = 40.0 offset_bottom = 40.0
@ -87,29 +88,28 @@ visible = false
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc") theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc")
text = "Character" text = "MENU_CHARACTER"
[node name="Team" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer"] [node name="Team" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer"]
visible = false visible = false
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc") theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc")
text = "Team" text = "MENU_TEAM"
[node name="Warp" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer"] [node name="Warp" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer"]
visible = false visible = false
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc") theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc")
text = "Warp text = "MENU_MAP"
"
[node name="Settings" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer"] [node name="Settings" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer"]
visible = false visible = false
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc") theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc")
text = "Settings" text = "MENU_SETTINGS"
[node name="VBoxContainer2" type="VBoxContainer" parent="CanvasLayer/HBoxContainer2"] [node name="VBoxContainer2" type="VBoxContainer" parent="CanvasLayer/HBoxContainer2"]
layout_mode = 2 layout_mode = 2
@ -119,26 +119,27 @@ visible = false
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc") theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc")
text = "Journal" text = "MENU_BOUKEN"
[node name="Challenges" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer2"] [node name="Challenges" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer2"]
visible = false visible = false
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc") theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc")
text = "Challenges" text = "MENU_CHALLENGES"
[node name="Backpack" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer2"] [node name="Backpack" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer2"]
visible = false visible = false
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc") theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc")
text = "Backpack" text = "MENU_BACKPACK"
[node name="Exit" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer2"] [node name="Exit" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer2"]
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc") theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc")
text = "Exit" text = "MENU_EXIT"
[connection signal="pressed" from="CanvasLayer/HBoxContainer2/VBoxContainer/Warp" to="." method="_on_warp_pressed"]
[connection signal="pressed" from="CanvasLayer/HBoxContainer2/VBoxContainer2/Exit" to="." method="_on_exit_pressed"] [connection signal="pressed" from="CanvasLayer/HBoxContainer2/VBoxContainer2/Exit" to="." method="_on_exit_pressed"]

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

@ -0,0 +1,89 @@
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/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:
savegame.new(1, false)
_on_back_pressed()
func _on_slot_2_pressed() -> void:
savegame.new(2, false)
_on_back_pressed()
func _on_slot_3_pressed() -> void:
savegame.new(3, false)
_on_back_pressed()
func _on_slot_4_pressed() -> void:
savegame.new(4, false)
_on_back_pressed()
func _on_slot_5_pressed() -> void:
savegame.new(5, false)
_on_back_pressed()
func _on_slot_6_pressed() -> void:
savegame.new(6, false)
_on_back_pressed()
func _on_slot_7_pressed() -> void:
savegame.new(7, false)
_on_back_pressed()
func _on_slot_8_pressed() -> void:
savegame.new(8, false)
_on_back_pressed()

116
levels/ui/save.tscn Normal file
View file

@ -0,0 +1,116 @@
[gd_scene load_steps=6 format=3 uid="uid://bbohrt1bhjiac"]
[ext_resource type="Script" path="res://levels/ui/save.gd" id="1_qm2cb"]
[ext_resource type="Texture2D" uid="uid://bxa27c7gnivwx" path="res://backgounds/night-sky-at-ceres.jpg" id="2_r4a1h"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="3_waqiq"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lcmit"]
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="Save" 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_qm2cb")
[node name="Night Sky" type="TextureRect" parent="."]
layout_mode = 0
offset_right = 1280.0
offset_bottom = 720.0
texture = ExtResource("2_r4a1h")
[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_SAVE"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("3_waqiq")]
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="Slot1" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_lcmit")
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_lcmit")
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_lcmit")
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_lcmit")
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_lcmit")
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_lcmit")
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_lcmit")
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_lcmit")
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/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"]

60
levels/ui/savefile.gd Normal file
View file

@ -0,0 +1,60 @@
extends Control
const gamepadtest = preload("res://gamepad.gd")
var startbutton
func _ready():
startbutton = $VBoxContainer/Start
#Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
$VBoxContainer/Load.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/wip.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)
if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed()
# Mouse in viewport coordinates.
# if Input.is_key_pressed(KEY_ENTER) || Input.is_joy_button_pressed(0,JOY_BUTTON_B):
# 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_load_pressed() -> void:
get_tree().change_scene_to_file("res://levels/ui/load.tscn")
func _on_save_pressed() -> void:
get_tree().change_scene_to_file("res://levels/ui/save.tscn")
func _on_erase_pressed() -> void:
get_tree().change_scene_to_file("res://levels/ui/erase.tscn")
func _on_back_pressed() -> void:
get_tree().change_scene_to_file("res://levels/ui/settings.tscn")

84
levels/ui/savefile.tscn Normal file
View file

@ -0,0 +1,84 @@
[gd_scene load_steps=7 format=3 uid="uid://dxegyw736dnig"]
[ext_resource type="Script" path="res://levels/ui/savefile.gd" id="1_6r0p0"]
[ext_resource type="Texture2D" uid="uid://bxa27c7gnivwx" path="res://backgounds/night-sky-at-ceres.jpg" id="2_nirgk"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="3_bpp6x"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_821nm"]
bg_color = Color(0, 0.8, 0, 1)
[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="Savefile" 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_6r0p0")
[node name="Night Sky" type="TextureRect" parent="."]
layout_mode = 0
offset_right = 1280.0
offset_bottom = 720.0
texture = ExtResource("2_nirgk")
[node name="Game name" type="Label" parent="."]
layout_mode = 0
offset_left = 31.0
offset_top = 77.0
offset_right = 1237.0
offset_bottom = 207.0
theme_override_font_sizes/font_size = 95
text = "BUTTON_PERSISTENCE"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("3_bpp6x")]
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 = -322.0
offset_top = -362.0
offset_right = 322.0
grow_horizontal = 2
grow_vertical = 0
[node name="Load" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 80
theme_override_styles/focus = SubResource("StyleBoxFlat_821nm")
text = "BUTTON_LOAD"
[node name="Save" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 80
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "BUTTON_SAVE"
[node name="Erase" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 80
theme_override_styles/focus = SubResource("StyleBoxFlat_r2qrn")
text = "BUTTON_ERASE"
[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 = "BUTTON_RETURN"
[connection signal="pressed" from="VBoxContainer/Load" to="." method="_on_load_pressed"]
[connection signal="pressed" from="VBoxContainer/Save" to="." method="_on_save_pressed"]
[connection signal="pressed" from="VBoxContainer/Erase" to="." method="_on_erase_pressed"]
[connection signal="pressed" from="VBoxContainer/Back" to="." method="_on_back_pressed"]

View file

@ -1,4 +1,5 @@
extends Control extends Control
const gamepadtest = preload("res://gamepad.gd")
func _ready(): func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
$"VBoxContainer/Disclaimer".grab_focus() $"VBoxContainer/Disclaimer".grab_focus()
@ -24,6 +25,7 @@ func _level():
#boot.queue_free() #boot.queue_free()
func _input(event): func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates. # Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"): if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed() _on_back_pressed()

91
levels/ui/settings.gd Normal file
View file

@ -0,0 +1,91 @@
extends Control
const gamepadtest = preload("res://gamepad.gd")
var vsync
var fullscreen
var xw
var gldrv
func _ready():
vsync = $VBoxContainer/L20
fullscreen = $VBoxContainer/Lilytest
xw = $VBoxContainer/Dialogtest
gldrv = $VBoxContainer/Bullethell
#Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
$VBoxContainer/L20.grab_focus()
if DisplayServer.window_get_vsync_mode() == 1:
vsync.set_text(tr("SETTING_VSYNCT"))
else:
vsync.set_text(tr("SETTING_VSYNCF"))
if DisplayServer.window_get_mode() == 3:
fullscreen.set_text(tr("SETTING_FULLSCREEN"))
else:
fullscreen.set_text(tr("SETTING_WINDOWED"))
# 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/tmenu.tscn")
func _on_l_20_pressed():
if DisplayServer.window_get_vsync_mode() == 1:
DisplayServer.window_set_vsync_mode(0)
vsync.set_text(tr("SETTING_VSYNCF"))
else:
DisplayServer.window_set_vsync_mode(1)
vsync.set_text(tr("SETTING_VSYNCT"))
func _on_lilytest_pressed() -> void:
if DisplayServer.window_get_mode() == 3:
DisplayServer.window_set_mode(0)
fullscreen.set_text(tr("SETTING_WINDOWED"))
else:
DisplayServer.window_set_mode(3)
fullscreen.set_text(tr("SETTING_FULLSCREEN"))
func _on_dialogtest_pressed() -> void:
get_tree().change_scene_to_file("res://levels/ui/debug.tscn")
func _on_bullethell_pressed() -> void:
get_tree().change_scene_to_file("res://levels/ui/savefile.tscn")

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

@ -0,0 +1,100 @@
[gd_scene load_steps=6 format=3 uid="uid://c30jrya5fjras"]
[ext_resource type="Script" path="res://levels/ui/settings.gd" id="1_7pd0a"]
[ext_resource type="Texture2D" uid="uid://bxa27c7gnivwx" path="res://backgounds/night-sky-at-ceres.jpg" id="2_pw0o8"]
[ext_resource type="PackedScene" uid="uid://d31udhuuwrajn" path="res://levels/bottomhud.tscn" id="3_4donf"]
[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="Settings" 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_7pd0a")
[node name="Night Sky" type="TextureRect" parent="."]
layout_mode = 0
offset_right = 1280.0
offset_bottom = 720.0
texture = ExtResource("2_pw0o8")
[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_SETTINGS"
horizontal_alignment = 1
[node name="Bottomhud" parent="." instance=ExtResource("3_4donf")]
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 = "BUTTON_DEBUG"
[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 = "BUTTON_PERSISTENCE"
[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

@ -1,10 +1,13 @@
extends Control extends Control
const gamepadtest = preload("res://gamepad.gd")
var player := AudioStreamPlayer.new() var player := AudioStreamPlayer.new()
func _ready(): func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
add_child(player) add_child(player)
player.mix_target = 1
player.bus = &"SFX1"
$"BoxContainer/VBoxContainer/Game Over".grab_focus() $"BoxContainer/VBoxContainer/Game Over".grab_focus()
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
@ -29,6 +32,7 @@ func _level():
#boot.queue_free() #boot.queue_free()
func _input(event): func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates. # Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"): if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed() _on_back_pressed()

View file

@ -1,7 +1,8 @@
extends Control extends Control
const gamepadtest = preload("res://gamepad.gd")
var alsatest var alsatest
func _ready(): func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) #Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
alsatest = $VBoxContainer/ALSA alsatest = $VBoxContainer/ALSA
$"VBoxContainer/Music".grab_focus() $"VBoxContainer/Music".grab_focus()
if OS.get_name() == "Linux": if OS.get_name() == "Linux":
@ -13,6 +14,7 @@ func _process(delta):
func _input(event): func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates. # Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"): if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed() _on_back_pressed()
@ -32,7 +34,7 @@ func _input(event):
func _on_back_pressed(): func _on_back_pressed():
get_tree().change_scene_to_file("res://levels/ui/tmenu.tscn") get_tree().change_scene_to_file("res://levels/ui/debug.tscn")

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