Compare commits

..

21 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
212 changed files with 4099 additions and 738 deletions

View file

@ -14,12 +14,9 @@ func _ready():
if Global.sk:
_sk()
else:
if Global.firstrun:
welcometext = "Welcome to your first session "+playername
else:
welcometext = "Welcome back "+playername
welcometext = "Welcome "+playername
if housefreedom:
welcometext = welcometext+"\nSteam machines are not dead yet"
welcometext = welcometext+"\nValve corporation promotes enviromental pollution"
if OS.get_environment("MANGOHUD").contains("1"):
Global.mangohud = true
welcometext = welcometext+"\nYour overlay already has a FPS counter, built-in one is disabled"

View file

@ -3,10 +3,10 @@
<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
At the moment this game is in alpha development stage. 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
A beta build will be released at september 28 2024 (unfunaversary build) and First stable release is scheduled near Half Life 3 release
First stable release is scheduled near Half Life 3 release (or maybe an Unfunaversary Day)
Official video channel https://video.asgardius.company/c/asgardius_virtualx
@ -14,13 +14,17 @@ Join community matrix channel at https://matrix.to/#/!gRTRfIdWGKLyCVEusd:asgardi
If you want to help in game development ask at https://matrix.to/#/!bqRfvdEXZATmMsQTSf:asgardius.company?via=asgardius.company
Download links https://elda.asgardius.company/virtualxrpg-dl/
Bittorrent downloads https://elda.asgardius.company/virtualxrpg-torrent/
# Plot
Ceres is a dwarf planet at the Asteroid Belt which has intelligent life since much before than Earth. Most Asteroid Belt natives have pointy ears. There are also animal-based humanoids. All humans from the universe lives here since their planet was destroyed by the Alcohol Discs, but very few of them remains. You are Midori Asgardius, a 15 years old elf girl also know as "The Walking Explosive". You are a student at Kaizo Magic School. Your best friends are Diana Asgardius "The Tuna" and Rikka Grub "The Chuunibyou Cat". 10+ playable characters are awaiting for you (optional gacha machine sold separately). Deal Kung Fu Troublemakers, fight against bullet hell themed bosses, solve exciting puzzles, dig inside trashcans, find beautiful Multi Vector Submarines, defeat martians and Discover the truth of this universe from an unique point of view. If you are maniac try our super hardcore mode. Be kind and have a happy unfunaversary this year. If you have any doubt about this game ask to your father and Kaizo's principal: Page Asgardius. Will you be able to find the secret behind Midori's explosive personality?
# What is a Genshin Killer?
From my point of view, a Genshin Killer is an Anime RPG which include elves among its playable Characters. This term is used since Genshin Impact gained popularity. Midori in the Magic School is a Genshin Killer because most of its playable characters are elves. Genshin Impact has 3 playable characters that look like elves. 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). Tower of Fantasy and Honkai Star Rail aren't Genshin Killers because those games haven't playable characters that look like elves. Somebody else might have another point of view about this term, but won't be used here
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
@ -34,7 +38,11 @@ I don't have experience creating 3d models, but i have experience drawing on pap
Almost nothing. If you want to know game plot, you can read it separately as an ebook
# About Falcighol Setalth Anticheat System
# 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)

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

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

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

View file

@ -9,7 +9,7 @@ custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="./Midori in the Magic School.x86_64"
export_path="./Midori in the Magic School"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false

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

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

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.live = 0
get_tree().root.add_child.call(talk)
if !Global.debug:
Global.quest[0] = 1
# Called every frame. 'delta' is the elapsed time since the previous frame.
@ -30,8 +32,23 @@ func _input(event):
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,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

@ -11,10 +11,11 @@ var ishud = true
# Called when the node enters the scene tree for the first time.
func _ready():
Global.live = 1
add_child(bgsound)
add_child(sfx1)
level = load(Global.cutscenes[Global.ccutscene][0]).instantiate()
musictrack = Global.cutscenes[Global.ccutscene][2]
musictrack = Global.musictracks[Global.cutscenes[Global.ccutscene][2]]
music = load(musictrack)
get_tree().root.add_child.call_deferred(level)
get_tree().root.add_child.call_deferred(bhud)
@ -71,9 +72,9 @@ func _input(event):
Global.ccutscene += 1
get_tree().root.remove_child(level)
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()
musictrack = Global.cutscenes[Global.ccutscene][2]
musictrack = Global.musictracks[Global.cutscenes[Global.ccutscene][2]]
music = load(musictrack)
bgsound.stream = music
bgsound.play(0)

View file

@ -1,4 +1,5 @@
extends Control
const gamepadtest = preload("res://gamepad.gd")
var bgsound := AudioStreamPlayer.new()
var fl
var fr
@ -27,6 +28,7 @@ func _ready() -> void:
bgsound.play(0)
func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"):
get_tree().change_scene_to_file("res://levels/ui/soundtest.tscn")

View file

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

View file

@ -61,19 +61,19 @@ text = "CERES_L20_DESC"
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "BUTTON_PLACEHOLDER"
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_PLACEHOLDER"
text = "Honker Railway"
[node name="Bullethell" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "BUTTON_PLACEHOLDER"
text = "TWIN_TROUBLEMAKERS"
[node name="Credits" type="Button" parent="VBoxContainer"]
layout_mode = 2
@ -94,4 +94,7 @@ 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

@ -92,7 +92,7 @@ Provided as a replacement for a HP 14 laptop that died while running Genshin Imp
Steam Deck
Arch Linux Rolling
Used as development device since 0.0.0-dev release
Provided by Evelyn Freeman
Provided by Evelyn Freeman and killed by Valve Corporation
HP Pavilion x360
Debian 12

View file

@ -1,6 +1,7 @@
extends Control
const gamepadtest = preload("res://gamepad.gd")
func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
#Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
$"VBoxContainer/Disclaimer".grab_focus()
# Called every frame. 'delta' is the elapsed time since the previous frame.
@ -24,6 +25,7 @@ func _level():
#boot.queue_free()
func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed()
@ -57,7 +59,8 @@ func _on_wip_pressed():
func _on_results_pressed():
#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():
@ -67,10 +70,12 @@ func _on_disclaimer_pressed():
func _on_testrooms_pressed():
#get_tree().change_scene_to_file("res://levels/ui/testrooms.tscn")
pass
#Global.debug = false
Global.ccutscene = 6
get_tree().change_scene_to_file("res://levels/ui/Cutscenes.tscn")
func _on_ceres_pressed():
#get_tree().change_scene_to_file("res://levels/ui/ceres.tscn")
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
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "BUTTON_PLACEHOLDER"
text = "CUTSCENE_1_NAME"
[node name="Ceres" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "BUTTON_PLACEHOLDER"
text = "Honker Railway"
[node name="Results" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "BUTTON_PLACEHOLDER"
text = "TWIN_TROUBLEMAKERS"
[node name="Credits" type="Button" parent="VBoxContainer"]
layout_mode = 2

View file

@ -1,7 +1,8 @@
extends Control
const gamepadtest = preload("res://gamepad.gd")
func _ready():
_statrebase()
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
#Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
Global.debug = true
$"VBoxContainer/Gamepad Test".grab_focus()
@ -26,6 +27,7 @@ func _level():
#boot.queue_free()
func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed()
@ -51,7 +53,7 @@ func _on_sound_test_pressed():
func _on_back_pressed():
Global.debug = false
get_tree().change_scene_to_file("res://levels/ui/tmenu.tscn")
get_tree().change_scene_to_file("res://levels/ui/settings.tscn")
func _on_gamepad_test_pressed():

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

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

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

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

View file

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

View file

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

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,10 +1,11 @@
extends Control
const gamepadtest = preload("res://gamepad.gd")
var player := AudioStreamPlayer.new()
var infobox
func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
#Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
add_child(player)
player.mix_target = 1
player.bus = &"Music"
@ -33,6 +34,7 @@ func _level():
#boot.queue_free()
func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed()

View file

@ -1,29 +1,15 @@
extends Control
const gamepadtest = preload("res://gamepad.gd")
func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
#Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
$VBoxContainer/Thisfirst.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"):
get_tree().change_scene_to_file("res://levels/ui/tmenu.tscn")
# Mouse in viewport coordinates.
@ -48,11 +34,7 @@ func _on_exit_pressed():
func _on_noob_pressed():
_statrebase()
Global.dificulty = 1
Global.cplace = [1, 11, 19]
Global.live = 1
Global.cpchar = 0
Global.party = [[0,0], [null,null], [null,null], [null,null]]
Global.ccutscene = 0
_reset()
get_tree().change_scene_to_file("res://levels/ui/Cutscenes.tscn")
#pass # Replace with function body.
@ -60,11 +42,7 @@ func _on_noob_pressed():
func _on_thisfirst_pressed():
_statrebase()
Global.dificulty = 2
Global.cplace = [1, 11, 19]
Global.live = 1
Global.cpchar = 0
Global.party = [[0,0], [null,null], [null,null], [null,null]]
Global.ccutscene = 0
_reset()
get_tree().change_scene_to_file("res://levels/ui/Cutscenes.tscn")
#pass # Replace with function body.
@ -83,3 +61,11 @@ func _statrebase():
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 _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 chealthf
var clevel
var warpmenu
# Called when the node enters the scene tree for the first time.
func _ready():
warpmenu = $CanvasLayer/HBoxContainer2/VBoxContainer/Warp
cff = $CanvasLayer/HBoxContainer/TextureRect
cnf = $CanvasLayer/HBoxContainer/VBoxContainer/Cname
chealthf = $CanvasLayer/HBoxContainer/VBoxContainer/HBoxContainer/Label2
@ -23,6 +25,16 @@ func _input(event):
_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:
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]])
@ -38,3 +50,11 @@ func _fetchdata():
func _on_exit_pressed():
Global.live = 6
#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="HBoxContainer" type="HBoxContainer" parent="CanvasLayer"]
layout_direction = 3
offset_right = 40.0
offset_bottom = 40.0
@ -87,29 +88,28 @@ visible = false
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc")
text = "Character"
text = "MENU_CHARACTER"
[node name="Team" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer"]
visible = false
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc")
text = "Team"
text = "MENU_TEAM"
[node name="Warp" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer"]
visible = false
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc")
text = "Warp
"
text = "MENU_MAP"
[node name="Settings" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer"]
visible = false
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc")
text = "Settings"
text = "MENU_SETTINGS"
[node name="VBoxContainer2" type="VBoxContainer" parent="CanvasLayer/HBoxContainer2"]
layout_mode = 2
@ -119,26 +119,27 @@ visible = false
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc")
text = "Journal"
text = "MENU_BOUKEN"
[node name="Challenges" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer2"]
visible = false
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc")
text = "Challenges"
text = "MENU_CHALLENGES"
[node name="Backpack" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer2"]
visible = false
layout_mode = 2
theme_override_font_sizes/font_size = 32
theme_override_styles/focus = SubResource("StyleBoxFlat_yb7nc")
text = "Backpack"
text = "MENU_BACKPACK"
[node name="Exit" type="Button" parent="CanvasLayer/HBoxContainer2/VBoxContainer2"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
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"]

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

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,4 +1,5 @@
extends Control
const gamepadtest = preload("res://gamepad.gd")
var player := AudioStreamPlayer.new()
@ -31,6 +32,7 @@ func _level():
#boot.queue_free()
func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed()

View file

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

View file

@ -31,7 +31,7 @@ func _input(event):
if dindex < Global.cdialog.size():
if Global.cdialog[dindex][1]:
cname.set_text(Global.pcnames[Global.cdialog[dindex][2]])
pface.texture = load((Global.pcfaces[Global.cdialog[dindex][2]][Global.cdialog[dindex][2]]))
pface.texture = load((Global.pcfaces[Global.cdialog[dindex][2]][Global.cdialog[dindex][3]]))
else:
cname.set_text(Global.npcnames[Global.cdialog[dindex][2]])
pface.texture = load((Global.npcfaces[Global.cdialog[dindex][2]]))

View file

@ -1,6 +1,7 @@
extends Control
const gamepadtest = preload("res://gamepad.gd")
func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
#Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
$"VBoxContainer/Testspawn".grab_focus()
# Called every frame. 'delta' is the elapsed time since the previous frame.
@ -24,6 +25,7 @@ func _level():
#boot.queue_free()
func _input(event):
gamepadtest.new(event)
# Mouse in viewport coordinates.
if Input.is_action_just_pressed("ui_cancel"):
_on_back_pressed()

View file

@ -1,7 +1,12 @@
extends Control
const gamepadtest = preload("res://gamepad.gd")
var startbutton
func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
startbutton = $VBoxContainer/Start
#Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
$VBoxContainer/Start.grab_focus()
if Global.dificulty != 0:
startbutton.set_text(tr("BUTTON_CONTINUE"))
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
@ -24,6 +29,7 @@ func _level():
#boot.queue_free()
func _input(event):
gamepadtest.new(event)
if Input.is_action_just_pressed("ui_cancel"):
get_tree().change_scene_to_file("res://title.tscn")
# Mouse in viewport coordinates.
@ -40,15 +46,19 @@ func _input(event):
func _on_start_pressed():
get_tree().change_scene_to_file("res://levels/ui/newgame.tscn")
if Global.dificulty == 0:
get_tree().change_scene_to_file("res://levels/ui/newgame.tscn")
else:
Global.live = 1
get_tree().change_scene_to_file("res://levels/ui/gameplay.tscn")
#_level()
#pass # Replace with function body.
func _on_debug_pressed():
get_tree().change_scene_to_file("res://levels/ui/debug.tscn")
get_tree().change_scene_to_file("res://levels/ui/settings.tscn")
func _on_exit_pressed():
get_tree().quit()
#pass # Replace with function body.
#pass # Replace with functio

View file

@ -64,7 +64,7 @@ text = "BUTTON_START"
layout_mode = 2
theme_override_font_sizes/font_size = 80
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
text = "BUTTON_DEBUG"
text = "BUTTON_SETTINGS"
[node name="Exit" type="Button" parent="VBoxContainer"]
layout_mode = 2

View file

@ -52,9 +52,11 @@ var cboss
var nboss
var boss
var bossbg
var ctime
# Called when the node enters the scene tree for the first time.
func _ready():
ctime = $CanvasLayer/Time
topleft = $CanvasLayer/Topleft
topleftbg = $CanvasLayer/Topleftbg
topmini = $CanvasLayer/Topmini
@ -130,6 +132,8 @@ func _ready():
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
_charrefresh()
ctime.set_text(Time.get_time_string_from_system(false).erase(5, 3))
if Global.debug:
chealthf.set_text(str(Global.dstats[Global.dparty[Global.dcpchar][0]][0])+"/"+str(Global.mstats[Global.dparty[Global.dcpchar][0]][0]))
cstaminaf.set_text(str(Global.dstats[Global.dparty[Global.dcpchar][0]][1])+"/"+str(Global.mstats[Global.dparty[Global.dcpchar][0]][1]))
@ -163,7 +167,7 @@ func _input(event):
elif Input.is_action_just_released("schar"):
topleft.visible = false
topleftbg.visible = false
_charrefresh()
#_charrefresh()
func _charrefresh():
if topleft.visible:
if Global.debug:

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=7 format=3 uid="uid://coaup7cuj7qev"]
[gd_scene load_steps=12 format=3 uid="uid://coaup7cuj7qev"]
[ext_resource type="Script" path="res://levels/ui/tophud.gd" id="1_pntuv"]
@ -14,6 +14,21 @@ bg_color = Color(1, 0.498039, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ftyws"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pwjrs"]
bg_color = Color(0, 0, 1, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_124wc"]
bg_color = Color(0, 0, 1, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_o8qre"]
bg_color = Color(0, 0, 1, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2pkui"]
bg_color = Color(0, 0, 1, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ig4lq"]
bg_color = Color(0, 0, 1, 1)
[node name="Tophud" type="Control"]
layout_mode = 3
anchors_preset = 15
@ -65,11 +80,13 @@ text = "100/100"
horizontal_alignment = 2
[node name="Topminibg" type="ColorRect" parent="CanvasLayer"]
layout_direction = 3
offset_right = 438.0
offset_bottom = 116.0
color = Color(0.254902, 0.254902, 0.254902, 1)
[node name="Topmini" type="HBoxContainer" parent="CanvasLayer"]
layout_direction = 3
offset_right = 377.0
offset_bottom = 116.0
@ -145,6 +162,7 @@ text = "OC Skill"
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
theme_override_styles/background = SubResource("StyleBoxFlat_ftyws")
theme_override_styles/fill = SubResource("StyleBoxFlat_pwjrs")
[node name="Label2" type="Label" parent="CanvasLayer/Topmini/VBoxContainer/HBoxContainer4"]
custom_minimum_size = Vector2(123, 0)
@ -159,12 +177,14 @@ color = Color(0, 0, 1, 1)
[node name="Topleftbg" type="ColorRect" parent="CanvasLayer"]
visible = false
layout_direction = 3
offset_right = 437.0
offset_bottom = 476.0
color = Color(0.254902, 0.254902, 0.254902, 1)
[node name="Topleft" type="VBoxContainer" parent="CanvasLayer"]
visible = false
layout_direction = 3
offset_right = 377.0
offset_bottom = 476.0
@ -243,6 +263,7 @@ text = "OC Skill"
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
theme_override_styles/background = SubResource("StyleBoxFlat_ftyws")
theme_override_styles/fill = SubResource("StyleBoxFlat_124wc")
[node name="Label2" type="Label" parent="CanvasLayer/Topleft/Character1/VBoxContainer/HBoxContainer4"]
custom_minimum_size = Vector2(123, 0)
@ -329,6 +350,7 @@ text = "OC Skill"
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
theme_override_styles/background = SubResource("StyleBoxFlat_ftyws")
theme_override_styles/fill = SubResource("StyleBoxFlat_o8qre")
[node name="Label2" type="Label" parent="CanvasLayer/Topleft/Character2/VBoxContainer/HBoxContainer4"]
custom_minimum_size = Vector2(123, 0)
@ -415,6 +437,7 @@ text = "OC Skill"
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
theme_override_styles/background = SubResource("StyleBoxFlat_ftyws")
theme_override_styles/fill = SubResource("StyleBoxFlat_2pkui")
[node name="Label2" type="Label" parent="CanvasLayer/Topleft/Character3/VBoxContainer/HBoxContainer4"]
custom_minimum_size = Vector2(123, 0)
@ -501,6 +524,7 @@ text = "OC Skill"
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
theme_override_styles/background = SubResource("StyleBoxFlat_ftyws")
theme_override_styles/fill = SubResource("StyleBoxFlat_ig4lq")
[node name="Label2" type="Label" parent="CanvasLayer/Topleft/Character4/VBoxContainer/HBoxContainer4"]
custom_minimum_size = Vector2(123, 0)
@ -511,3 +535,9 @@ horizontal_alignment = 2
[node name="ColorRect2" type="ColorRect" parent="CanvasLayer/Topleft/Character4"]
custom_minimum_size = Vector2(12, 64)
layout_mode = 2
[node name="Time" type="Label" parent="CanvasLayer"]
offset_right = 40.0
offset_bottom = 23.0
theme_override_font_sizes/font_size = 100
text = "08:00"

View file

@ -4,6 +4,7 @@ var stage = 0
var bg
# Called when the node enters the scene tree for the first time.
func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
bg = $TextureRect
bg.texture = load(backgrounds[stage])
#pass # Replace with function body.

110
load.gd
View file

@ -1,10 +1,79 @@
extends Node
var file
func _init():
if FileAccess.file_exists(Global.hiscoresfile):
Global.firstrun = false
file = FileAccess.open(Global.hiscoresfile, FileAccess.READ)
Global.levelmax = file.get_as_text().rsplit(",", true, 7)
var fileslot
func _init(slot):
if FileAccess.file_exists("user://userprefs"):
file = FileAccess.open("user://userprefs", FileAccess.READ)
var savefile = file.get_as_text().rsplit(",", true, 7)
file.close()
DisplayServer.window_set_vsync_mode(int(savefile[1]))
DisplayServer.window_set_mode(int(savefile[2]))
if slot == 0:
fileslot = int(savefile[0])
else:
fileslot = slot
if fileslot == 1:
file = FileAccess.open("user://slot1", FileAccess.READ)
savefile = file.get_as_text().rsplit("\n", true, 7)
file.close()
elif fileslot == 2:
file = FileAccess.open("user://slot2", FileAccess.READ)
savefile = file.get_as_text().rsplit("\n", true, 7)
file.close()
elif fileslot == 3:
file = FileAccess.open("user://slot3", FileAccess.READ)
savefile = file.get_as_text().rsplit("\n", true, 7)
file.close()
elif fileslot == 4:
file = FileAccess.open("user://slot4", FileAccess.READ)
savefile = file.get_as_text().rsplit("\n", true, 7)
file.close()
elif fileslot == 5:
file = FileAccess.open("user://slot5", FileAccess.READ)
savefile = file.get_as_text().rsplit("\n", true, 7)
file.close()
elif fileslot == 6:
file = FileAccess.open("user://slot6", FileAccess.READ)
savefile = file.get_as_text().rsplit("\n", true, 7)
file.close()
elif fileslot == 7:
file = FileAccess.open("user://slot7", FileAccess.READ)
savefile = file.get_as_text().rsplit("\n", true, 7)
file.close()
elif fileslot == 8:
file = FileAccess.open("user://slot8", FileAccess.READ)
savefile = file.get_as_text().rsplit("\n", true, 7)
file.close()
if fileslot != 0:
Global.dificulty = int(savefile[2])
var quest = savefile[4].rsplit(",", true, 7)
Global.quest = [int(quest[0]), int(quest[1]), int(quest[2]), int(quest[3]), int(quest[4]), int(quest[5])]
quest = savefile[3].rsplit(",", true, 7)
Global.cplace = [int(quest[0]), int(quest[1]), int(quest[2])]
Global.cpchar = int(savefile[1])
quest = savefile[0].rsplit(",", true, 9)
Global.party[0][0] = int(quest[0])
Global.party[0][1] = int(quest[1])
if quest[2].is_valid_int():
Global.party[1][0] = int(quest[2])
Global.party[1][1] = int(quest[3])
else:
Global.party[1][0] = null
Global.party[1][1] = null
if quest[4].is_valid_int():
Global.party[2][0] = int(quest[4])
Global.party[2][1] = int(quest[5])
else:
Global.party[2][0] = null
Global.party[2][1] = null
if quest[6].is_valid_int():
Global.party[3][0] = int(quest[6])
Global.party[3][1] = int(quest[7])
else:
Global.party[3][0] = null
Global.party[3][1] = null
# We need to revert the game state so we're not cloning objects
# during loading. This will vary wildly depending on the needs of a
# project, so take care with this step.
@ -17,7 +86,32 @@ func _init():
# the object it represents.
else:
#Global.firstrun = true
var saveinit = "9999999,9999999,9999999,9999999,9999999,9999999,9999999"
var file = FileAccess.open(Global.hiscoresfile, FileAccess.WRITE)
var saveinit = "0,1,3"
var file = FileAccess.open("user://userprefs", FileAccess.WRITE)
file.store_string(saveinit)
Global.levelmax = saveinit.rsplit(",", true, 7)
file.close()
saveinit = "0,0,<null>,<null>,<null>,<null>,<null>,<null>\n0\n0\n1,11,19\n0,0,0,0,0,0"
file = FileAccess.open("user://slot1", FileAccess.WRITE)
file.store_string(saveinit)
file.close()
file = FileAccess.open("user://slot2", FileAccess.WRITE)
file.store_string(saveinit)
file.close()
file = FileAccess.open("user://slot3", FileAccess.WRITE)
file.store_string(saveinit)
file.close()
file = FileAccess.open("user://slot4", FileAccess.WRITE)
file.store_string(saveinit)
file.close()
file = FileAccess.open("user://slot5", FileAccess.WRITE)
file.store_string(saveinit)
file.close()
file = FileAccess.open("user://slot6", FileAccess.WRITE)
file.store_string(saveinit)
file.close()
file = FileAccess.open("user://slot7", FileAccess.WRITE)
file.store_string(saveinit)
file.close()
file = FileAccess.open("user://slot8", FileAccess.WRITE)
file.store_string(saveinit)
file.close()

18
main.gd
View file

@ -1,4 +1,6 @@
extends Node
var presscontinue
const gamepadtest = preload("res://gamepad.gd")
const loadgame = preload("res://load.gd")
const savegame = preload("res://save.gd")
@ -6,9 +8,11 @@ const savegame = preload("res://save.gd")
# Called when the node enters the scene tree for the first time.
func _ready():
presscontinue = $Label
updatehud()
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
#OS.get_data_dir().rsplit("/", true, 7)[2]
#loadgame.new()
loadgame.new(0)
#print(OS.get_processor_name())
#pass # Replace with function body.
#add_child(title)
@ -22,6 +26,9 @@ func _process(delta):
pass
func _input(event):
gamepadtest.new(event)
updatehud()
# Mouse in viewport coordinates.
if !Global.sk && Input.is_action_just_pressed("ui_accept"):
#print("Mouse Click/Unclick at: ", event.position)
@ -34,3 +41,12 @@ func _title():
#get_tree().root.add_child(title)
#get_tree().root.remove_child(boot)
#boot.queue_free()
func updatehud():
if Global.gamepad == 0:
presscontinue.set_text(tr("TEXT_CONTINUE_KB"))
elif Global.gamepad == 1:
presscontinue.set_text(tr("TEXT_CONTINUE_US"))
elif Global.gamepad == 2:
presscontinue.set_text(tr("TEXT_CONTINUE_JA"))
elif Global.gamepad == 3:
presscontinue.set_text(tr("TEXT_CONTINUE_GEO"))

BIN
music/adayatceres.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://chfvfekjfcnov"
path="res://.godot/imported/adayatceres.ogg-20ac84b7b3f4aa32e22571cc54f6f688.oggvorbisstr"
[deps]
source_file="res://music/adayatceres.ogg"
dest_files=["res://.godot/imported/adayatceres.ogg-20ac84b7b3f4aa32e22571cc54f6f688.oggvorbisstr"]
[params]
loop=true
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://60ftsplg7o6a"
path="res://.godot/imported/adayatceres.wav-0794b80014f15fec6d7904450f55b8f7.sample"
[deps]
source_file="res://music/adayatceres.wav"
dest_files=["res://.godot/imported/adayatceres.wav-0794b80014f15fec6d7904450f55b8f7.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=2
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

BIN
music/akikoletter.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://sugu8nerll36"
path="res://.godot/imported/akikoletter.ogg-65f29c2474e3ff39d71f94a391cc992f.oggvorbisstr"
[deps]
source_file="res://music/akikoletter.ogg"
dest_files=["res://.godot/imported/akikoletter.ogg-65f29c2474e3ff39d71f94a391cc992f.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -1,24 +0,0 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://0ahlhvx8kvtq"
path="res://.godot/imported/akikoletter.wav-dcd1e099a549dbde87748a4fe998aeb9.sample"
[deps]
source_file="res://music/akikoletter.wav"
dest_files=["res://.godot/imported/akikoletter.wav-dcd1e099a549dbde87748a4fe998aeb9.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=22050
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

BIN
music/alsa.ogg Normal file

Binary file not shown.

19
music/alsa.ogg.import Normal file
View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://bs2bq3e04korb"
path="res://.godot/imported/alsa.ogg-f3f4d9877ee536eddd614e8ce63cad30.oggvorbisstr"
[deps]
source_file="res://music/alsa.ogg"
dest_files=["res://.godot/imported/alsa.ogg-f3f4d9877ee536eddd614e8ce63cad30.oggvorbisstr"]
[params]
loop=true
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

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