Compare commits
21 commits
R0.1.10-al
...
main
Author | SHA1 | Date | |
---|---|---|---|
69115437fe | |||
f5d435734c | |||
1eb98a23cd | |||
2061695212 | |||
672a09d32e | |||
b1e1a6202e | |||
a7b9199d38 | |||
449afceb0d | |||
02a5a73656 | |||
0d29a9a48f | |||
cde2f56c3a | |||
bca603a57b | |||
e8bf749823 | |||
f399107c5c | |||
4cd9cd4925 | |||
9ceb77e2f9 | |||
176634ab28 | |||
7b36f2d53b | |||
f6b36c722c | |||
a43a3eb6dd | |||
50cac5c47b |
|
@ -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"
|
||||
|
|
16
README.md
|
@ -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)
|
||||
|
||||
|
|
BIN
backgounds/Honker Railway in forest.jpg
Normal file
After Width: | Height: | Size: 304 KiB |
34
backgounds/Honker Railway in forest.jpg.import
Normal 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
After Width: | Height: | Size: 387 KiB |
34
backgounds/Kaizo Campus.jpg.import
Normal 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
|
BIN
backgounds/Kimberly Arch crying.jpg
Normal file
After Width: | Height: | Size: 304 KiB |
34
backgounds/Kimberly Arch crying.jpg.import
Normal 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
|
BIN
backgounds/Midori Deep Forest.jpg
Normal file
After Width: | Height: | Size: 291 KiB |
34
backgounds/Midori Deep Forest.jpg.import
Normal 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
|
BIN
backgounds/Midori Punishment.jpg
Normal file
After Width: | Height: | Size: 272 KiB |
34
backgounds/Midori Punishment.jpg.import
Normal 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
|
BIN
backgounds/Midori walking though forest.jpg
Normal file
After Width: | Height: | Size: 271 KiB |
34
backgounds/Midori walking though forest.jpg.import
Normal 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
|
BIN
backgounds/Pamela Hashimoto clasista.jpg
Normal file
After Width: | Height: | Size: 257 KiB |
34
backgounds/Pamela Hashimoto clasista.jpg.import
Normal 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
|
BIN
backgounds/Pamela Hashimoto fury.jpg
Normal file
After Width: | Height: | Size: 291 KiB |
34
backgounds/Pamela Hashimoto fury.jpg.import
Normal 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
|
BIN
backgounds/Trashcan girl in forest.jpg
Normal file
After Width: | Height: | Size: 268 KiB |
34
backgounds/Trashcan girl in forest.jpg.import
Normal 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
|
|
@ -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
|
@ -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
|
@ -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"
|
|
@ -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
|
@ -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
|
@ -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")
|
|
@ -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"))
|
||||
|
|
|
@ -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
|
@ -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)
|
27
global.gd
|
@ -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.
|
||||
|
|
|
@ -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]]
|
||||
|
|
22
levels/Ceres/honkerrailway.gd
Normal 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]]
|
250
levels/Ceres/honkerrailway.tscn
Normal 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
|
@ -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
|
@ -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"]
|
50
levels/Ceres/troublemakers.gd
Normal 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]]
|
66
levels/Ceres/troublemakers.tscn
Normal 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)
|
22
levels/Cutscenes/Honker Railway/forest.tscn
Normal 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")]
|
22
levels/Cutscenes/Honker Railway/lordlytrashcan.tscn
Normal 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")]
|
12
levels/Cutscenes/Honker Railway/railway.gd
Normal 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
|
24
levels/Cutscenes/Honker Railway/railway.tscn
Normal 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")]
|
22
levels/Cutscenes/Troublemaker/buildings.tscn
Normal 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")]
|
12
levels/Cutscenes/Troublemaker/kungfu.gd
Normal 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
|
25
levels/Cutscenes/Troublemaker/kungfu.tscn
Normal 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")]
|
22
levels/Cutscenes/Troublemaker/pamela.tscn
Normal 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")]
|
12
levels/Cutscenes/unfunaversary/firstclass.gd
Normal 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
|
24
levels/Cutscenes/unfunaversary/firstclass.tscn
Normal 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")]
|
23
levels/Cutscenes/unfunaversary/punishment.tscn
Normal 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")]
|
22
levels/Cutscenes/unfunaversary/r3.tscn
Normal 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")]
|
23
levels/Cutscenes/unfunaversary/sadness.tscn
Normal 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
|
@ -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
|
@ -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)
|
|
@ -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)
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
@ -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
|
@ -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"]
|
|
@ -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)))
|
||||
|
|
|
@ -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
|
@ -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
|
@ -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"]
|
27
levels/ui/missinggamepad.tscn
Normal 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
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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"]
|
|
@ -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
|
@ -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
|
@ -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"]
|
|
@ -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()
|
||||
|
|
|
@ -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")
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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]]))
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
@ -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
|
@ -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
19
music/adayatceres.ogg.import
Normal 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
|
|
@ -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
19
music/akikoletter.ogg.import
Normal 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
|
|
@ -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
19
music/alsa.ogg.import
Normal 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
|