Compare commits

...

4 commits

18 changed files with 414 additions and 84 deletions

3
.gitignore vendored
View file

@ -3,4 +3,5 @@
*.tmp
*.zip
dist/
build/
build/
~*.*

BIN
Audio/SFX/door_open.wav (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://darxacm0j1djh"
path="res://.godot/imported/door_open.wav-176a17466db3506bb227922a1033c673.sample"
[deps]
source_file="res://Audio/SFX/door_open.wav"
dest_files=["res://.godot/imported/door_open.wav-176a17466db3506bb227922a1033c673.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

View file

@ -1,11 +1,29 @@
[gd_scene load_steps=3 format=3 uid="uid://bbybt6r6351yp"]
[gd_scene load_steps=11 format=3 uid="uid://bbybt6r6351yp"]
[ext_resource type="Script" path="res://Scripts/Audio/sound_manager.gd" id="1_psrqm"]
[ext_resource type="AudioStream" uid="uid://di3fpfsl2vcyi" path="res://Audio/SFX/melee.tres" id="2_y14gs"]
[ext_resource type="Script" path="res://Scripts/Audio/sound_queue.gd" id="2_y30yw"]
[ext_resource type="AudioStream" uid="uid://dmpd83t5hrd81" path="res://Audio/SFX/melee_hit.tres" id="3_b3imd"]
[ext_resource type="AudioStream" uid="uid://cvkvgyxqnksir" path="res://Audio/SFX/puff_smoke.wav" id="4_itc24"]
[ext_resource type="AudioStream" uid="uid://bp70snfsk40vy" path="res://Audio/SFX/pause.wav" id="5_hvn1j"]
[ext_resource type="AudioStream" uid="uid://01sdb5n7snib" path="res://Audio/SFX/accept.wav" id="6_g2v7g"]
[ext_resource type="AudioStream" uid="uid://drossx2nhgeue" path="res://Audio/SFX/dialog_open.wav" id="7_kuw5r"]
[ext_resource type="AudioStream" uid="uid://b72f2jvv2283j" path="res://Audio/SFX/dialog_page.wav" id="8_hhmgh"]
[ext_resource type="AudioStream" uid="uid://darxacm0j1djh" path="res://Audio/SFX/door_open.wav" id="9_rw16s"]
[node name="SoundManager" type="Node"]
process_mode = 3
script = ExtResource("1_psrqm")
sounds = {
"dialogue_continue": ExtResource("8_hhmgh"),
"dialogue_open": ExtResource("7_kuw5r"),
"door_open": ExtResource("9_rw16s"),
"effect_smoke": ExtResource("4_itc24"),
"melee": ExtResource("2_y14gs"),
"melee_hit": ExtResource("3_b3imd"),
"pause": ExtResource("5_hvn1j"),
"unpause": ExtResource("6_g2v7g")
}
[node name="SoundQueue" type="Node" parent="."]
script = ExtResource("2_y30yw")

View file

@ -1,4 +1,4 @@
[gd_resource type="Resource" script_class="Cutscene" load_steps=33 format=3 uid="uid://ck75kipijh0fn"]
[gd_resource type="Resource" script_class="Cutscene" load_steps=38 format=3 uid="uid://ck75kipijh0fn"]
[ext_resource type="Script" path="res://Scripts/Cutscenes/cutscene.gd" id="1_75ljw"]
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/emit_message.gd" id="1_wfaj3"]
@ -8,6 +8,8 @@
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/cue_bgm.gd" id="4_joqmj"]
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/move_character.gd" id="6_aee84"]
[ext_resource type="AudioStream" uid="uid://jlr3b1nye15g" path="res://Audio/BGM/olympus_combat.mp3" id="7_4jbtj"]
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/lookat_character.gd" id="7_gjmti"]
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/move_camera.gd" id="8_w0so3"]
[sub_resource type="Resource" id="Resource_jm5v6"]
script = ExtResource("1_wfaj3")
@ -54,6 +56,11 @@ portrait_emotion = "normal"
messages = Array[String](["Haaah... Made it..."])
textbox_direction = 1
[sub_resource type="Resource" id="Resource_ork8h"]
script = ExtResource("7_gjmti")
character = NodePath("../HiroPlayer")
lookat_target = NodePath("../ReedAI")
[sub_resource type="Resource" id="Resource_5axwh"]
script = ExtResource("3_0uw7j")
character = 0
@ -128,6 +135,16 @@ portrait_emotion = "normal"
messages = Array[String](["Yeah! Don't hold anything back!", "Let's give this crowd a good show!"])
textbox_direction = 1
[sub_resource type="Resource" id="Resource_wtu3y"]
script = ExtResource("8_w0so3")
target_camera = NodePath("../HiroPlayer/Camera2D")
to_initial = null
target = Vector2(0, -60)
relative = false
speed = 1.0
teleport = false
wait_until_completion = true
[sub_resource type="Resource" id="Resource_hs1wh"]
script = ExtResource("3_0uw7j")
character = 4
@ -155,6 +172,16 @@ portrait_emotion = "normal"
messages = Array[String](["Fighters! All set?"])
textbox_direction = 1
[sub_resource type="Resource" id="Resource_lafmq"]
script = ExtResource("8_w0so3")
target_camera = NodePath("../HiroPlayer/Camera2D")
to_initial = true
target = Vector2(0, -12)
relative = true
speed = 1.0
teleport = false
wait_until_completion = true
[sub_resource type="Resource" id="Resource_v7db0"]
script = ExtResource("3_0uw7j")
character = 1
@ -181,5 +208,5 @@ crossfade = true
[resource]
resource_name = "prototype_clone_defeated"
script = ExtResource("1_75ljw")
commands = Array[Resource("res://Scripts/Cutscenes/Commands/base.gd")]([SubResource("Resource_jm5v6"), SubResource("Resource_as31p"), SubResource("Resource_xcdd6"), SubResource("Resource_bagm4"), SubResource("Resource_v16hg"), SubResource("Resource_vu1m2"), SubResource("Resource_4u6io"), SubResource("Resource_5axwh"), SubResource("Resource_jdwa3"), SubResource("Resource_wsgt4"), SubResource("Resource_p2wwu"), SubResource("Resource_ben6d"), SubResource("Resource_5fw3k"), SubResource("Resource_t0ilw"), SubResource("Resource_3k148"), SubResource("Resource_f6433"), SubResource("Resource_o6ly6"), SubResource("Resource_pu4kf"), SubResource("Resource_hs1wh"), SubResource("Resource_apw73"), SubResource("Resource_yt0uq"), SubResource("Resource_v7db0"), SubResource("Resource_p8wvt"), SubResource("Resource_tjwhc")])
commands = Array[Resource("res://Scripts/Cutscenes/Commands/base.gd")]([SubResource("Resource_jm5v6"), SubResource("Resource_as31p"), SubResource("Resource_xcdd6"), SubResource("Resource_bagm4"), SubResource("Resource_v16hg"), SubResource("Resource_vu1m2"), SubResource("Resource_4u6io"), SubResource("Resource_ork8h"), SubResource("Resource_5axwh"), SubResource("Resource_jdwa3"), SubResource("Resource_wsgt4"), SubResource("Resource_p2wwu"), SubResource("Resource_ben6d"), SubResource("Resource_5fw3k"), SubResource("Resource_t0ilw"), SubResource("Resource_3k148"), SubResource("Resource_f6433"), SubResource("Resource_o6ly6"), SubResource("Resource_pu4kf"), SubResource("Resource_wtu3y"), SubResource("Resource_hs1wh"), SubResource("Resource_apw73"), SubResource("Resource_yt0uq"), SubResource("Resource_lafmq"), SubResource("Resource_v7db0"), SubResource("Resource_p8wvt"), SubResource("Resource_tjwhc")])
auto_start_on_load = true

View file

@ -70,7 +70,7 @@ script = ExtResource("1_uoty8")
time = 2.01667
[resource]
resource_name = "reed_loses_sfw"
resource_name = "reed_loses"
script = ExtResource("3_kh4kq")
commands = Array[Resource("res://Scripts/Cutscenes/Commands/base.gd")]([SubResource("Resource_j0qrl"), SubResource("Resource_46i1x"), SubResource("Resource_w88ia"), SubResource("Resource_dxa8x"), SubResource("Resource_uu88j"), SubResource("Resource_qs5xn"), SubResource("Resource_qkt15"), SubResource("Resource_12o2v"), SubResource("Resource_uw5p1")])
auto_start_on_load = true

View file

@ -1,9 +1,10 @@
[gd_resource type="Resource" script_class="Cutscene" load_steps=37 format=3 uid="uid://ck0ry5vxaj8a7"]
[gd_resource type="Resource" script_class="Cutscene" load_steps=40 format=3 uid="uid://ck0ry5vxaj8a7"]
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/lookat_character.gd" id="1_ri0w6"]
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/show_dialogue.gd" id="2_c1bel"]
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/move_character.gd" id="3_7tq4l"]
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/turn_character.gd" id="4_fur8q"]
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/move_camera.gd" id="5_15rwr"]
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/wait.gd" id="5_oj3jh"]
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/emit_message.gd" id="5_t1lmo"]
[ext_resource type="Script" path="res://Scripts/Cutscenes/cutscene.gd" id="5_wqnqw"]
@ -71,6 +72,16 @@ portrait_emotion = "normal"
messages = Array[String](["All I have to do is summon my shadow clone!"])
textbox_direction = 0
[sub_resource type="Resource" id="Resource_8188r"]
script = ExtResource("5_15rwr")
target_camera = NodePath("../HiroPlayer/Camera2D")
to_initial = false
target = Vector2(0, 0)
relative = false
speed = 1.0
teleport = false
wait_until_completion = true
[sub_resource type="Resource" id="Resource_83rs0"]
script = ExtResource("5_t1lmo")
message = &"show_clone"
@ -211,8 +222,18 @@ script = ExtResource("8_5d7q1")
music = ExtResource("7_wgiee")
crossfade = true
[sub_resource type="Resource" id="Resource_uibnf"]
script = ExtResource("5_15rwr")
target_camera = NodePath("../HiroPlayer/Camera2D")
to_initial = true
target = Vector2(0, -12)
relative = true
speed = 1.5
teleport = false
wait_until_completion = true
[resource]
resource_name = "talking_to_nem"
script = ExtResource("5_wqnqw")
commands = Array[Resource("res://Scripts/Cutscenes/Commands/base.gd")]([SubResource("Resource_de27e"), SubResource("Resource_3bkhm"), SubResource("Resource_tgajv"), SubResource("Resource_qi6iy"), SubResource("Resource_775qe"), SubResource("Resource_yaf72"), SubResource("Resource_h8br4"), SubResource("Resource_0c4lk"), SubResource("Resource_83rs0"), SubResource("Resource_blakn"), SubResource("Resource_r5wd6"), SubResource("Resource_slop4"), SubResource("Resource_h3k50"), SubResource("Resource_wo7y2"), SubResource("Resource_hi1ck"), SubResource("Resource_5ci1l"), SubResource("Resource_abui6"), SubResource("Resource_kb8r5"), SubResource("Resource_8xfaf"), SubResource("Resource_4iw0f"), SubResource("Resource_kd0jj"), SubResource("Resource_w7l1e"), SubResource("Resource_7url7"), SubResource("Resource_efygu"), SubResource("Resource_u7g7o"), SubResource("Resource_ujwnf"), SubResource("Resource_ts1m3")])
commands = Array[Resource("res://Scripts/Cutscenes/Commands/base.gd")]([SubResource("Resource_de27e"), SubResource("Resource_3bkhm"), SubResource("Resource_tgajv"), SubResource("Resource_qi6iy"), SubResource("Resource_775qe"), SubResource("Resource_yaf72"), SubResource("Resource_h8br4"), SubResource("Resource_0c4lk"), SubResource("Resource_8188r"), SubResource("Resource_83rs0"), SubResource("Resource_blakn"), SubResource("Resource_r5wd6"), SubResource("Resource_slop4"), SubResource("Resource_h3k50"), SubResource("Resource_wo7y2"), SubResource("Resource_hi1ck"), SubResource("Resource_5ci1l"), SubResource("Resource_abui6"), SubResource("Resource_kb8r5"), SubResource("Resource_8xfaf"), SubResource("Resource_4iw0f"), SubResource("Resource_kd0jj"), SubResource("Resource_w7l1e"), SubResource("Resource_7url7"), SubResource("Resource_efygu"), SubResource("Resource_u7g7o"), SubResource("Resource_ujwnf"), SubResource("Resource_ts1m3"), SubResource("Resource_uibnf")])
auto_start_on_load = true

View file

@ -1,15 +0,0 @@
shader_type canvas_item;
render_mode blend_mix;
uniform vec3 tint_color : source_color = vec3(1.0, 0.0, 0.0);
uniform float intensity : hint_range(0, 1) = 1.0;
void fragment() {
COLOR = vec4(mix(COLOR.rgb, tint_color, intensity), COLOR.a);
}
// bleh, we prolly don't need this
//void light() {
//vec4 color = COLOR;
//LIGHT = vec4(color.rgb * LIGHT_COLOR.rgb * LIGHT_ENERGY, LIGHT_COLOR.a * (1.0 - intensity));
//}

View file

@ -1,51 +0,0 @@
[gd_resource type="VisualShader" load_steps=4 format=3 uid="uid://dmoh1f7aoriyv"]
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_jknad"]
expanded_output_ports = [0]
input_name = "color"
[sub_resource type="VisualShaderNodeColorParameter" id="VisualShaderNodeColorParameter_bpbi7"]
expanded_output_ports = [0]
parameter_name = "Tint_Color"
[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_rbqa7"]
default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(1, 1, 1), 2, Vector3(0.5, 0.5, 0.5)]
op_type = 3
[resource]
code = "shader_type canvas_item;
render_mode blend_mix;
uniform vec4 Tint_Color : source_color;
void fragment() {
// Input:2
vec4 n_out2p0 = COLOR;
// ColorParameter:3
vec4 n_out3p0 = Tint_Color;
float n_out3p4 = n_out3p0.a;
// Mix:4
vec3 n_out4p0 = mix(vec3(n_out2p0.xyz), vec3(n_out3p0.xyz), vec3(n_out3p4));
// Output:0
COLOR.rgb = n_out4p0;
}
"
mode = 1
flags/light_only = false
nodes/fragment/2/node = SubResource("VisualShaderNodeInput_jknad")
nodes/fragment/2/position = Vector2(-340, 60)
nodes/fragment/3/node = SubResource("VisualShaderNodeColorParameter_bpbi7")
nodes/fragment/3/position = Vector2(-280, 260)
nodes/fragment/4/node = SubResource("VisualShaderNodeMix_rbqa7")
nodes/fragment/4/position = Vector2(140, 100)
nodes/fragment/connections = PackedInt32Array(2, 0, 4, 0, 3, 0, 4, 1, 3, 4, 4, 2, 4, 0, 0, 0)

View file

@ -0,0 +1,21 @@
@tool
class_name MoveCameraCommand extends CutsceneCommand
@export_node_path("LerpableCamera") var target_camera: NodePath
@export var to_initial = false
@export var target: Vector2
@export var relative = false
@export var speed = 1.0
@export var teleport = false
@export var wait_until_completion = true
func _validate_property(property: Dictionary):
if property.name == "speed" and teleport:
property.usage |= PROPERTY_USAGE_READ_ONLY
elif property.name == "speed" and not teleport:
property.usage &= ~PROPERTY_USAGE_READ_ONLY
if (property.name == "target" or property.name == "relative") and to_initial:
property.usage |= PROPERTY_USAGE_READ_ONLY
elif (property.name == "target" or property.name == "relative") and not to_initial:
property.usage &= ~PROPERTY_USAGE_READ_ONLY

View file

@ -9,8 +9,10 @@ extends Node2D
@onready var nem_npc = $NemNPC
@onready var cutscene_manager = $CutsceneManager
@onready var sound_manager = $SoundManager
@onready var fader_animation = $TextboxUI/Control/FaderRect/AnimationPlayer
@onready var fader_animation = $Fades/Control/FaderRect/AnimationPlayer
@onready var barrier = $Barrier
@onready var credits = $Fades/Control/Credits
@onready var reward = $Fades/Control/NSFWReward
@export var stage = 1
@ -57,7 +59,18 @@ func _on_cutscene_finished(cutscene_name: String):
reed_ai.set_ai_enabled(true)
battle_ui.set_enemy_health_visible(true)
barrier.process_mode = Node.PROCESS_MODE_INHERIT
elif cutscene_name == "reed_loses":
if player.health == player.max_health and Globals.nsfw:
reward.visible = true
fader_animation.play("fade_in_black")
fader_animation.animation_finished.connect(_show_credits, CONNECT_ONE_SHOT)
else:
_show_credits("")
player.in_cutscene = true
func _show_credits(_anim_name: StringName):
credits.visible = true
credits.reveal(player.health == player.max_health)
func _on_cutscene_manager_issued_command(command: CutsceneCommand, manager: CutsceneManager):
if command is TurnCharacterCommand or command is LookAtTargetCommand:
@ -66,6 +79,19 @@ func _on_cutscene_manager_issued_command(command: CutsceneCommand, manager: Cuts
assert(character is CharacterBase)
character.set_animation_direction(face_direction)
manager.step()
elif command is MoveCameraCommand:
var camera: LerpableCamera = manager.root.get_node(command.target_camera)
var target_position = camera.focus_starting_position if command.to_initial else command.target
var relative = true if command.to_initial else command.relative
if command.teleport:
camera.teleport_to(target_position, relative)
manager.step()
else:
camera.lerp_to(target_position, relative, command.speed)
if command.wait_until_completion:
camera.move_completed.connect(manager.step, CONNECT_ONE_SHOT)
else:
manager.step()
elif command is EmitMessageCommand:
if command.message == "show_clone":
hiro_ai.global_position = $PositionMarkers/Marker3.global_position
@ -84,6 +110,7 @@ func _on_cutscene_manager_issued_command(command: CutsceneCommand, manager: Cuts
reed_ai.global_position = Vector2(0, 100)
reed_ai.get_node("MovementCollider").disabled = true
reed_ai.set_melee_box_enabled(false)
sound_manager.play_sound("door_open")
manager.step()
elif command.message == "fade_out":
fader_animation.play("fade_out_black")
@ -108,7 +135,7 @@ func _on_cutscene_manager_issued_command(command: CutsceneCommand, manager: Cuts
func _on_player_interacted_with_object(object: Node, interaction: Cutscene):
cutscene_manager.load_cutscene(interaction, object)
func _on_cutscene_loaded(cutscene_name: String, auto_start: bool):
func _on_cutscene_loaded(_cutscene_name: String, auto_start: bool):
if auto_start:
cutscene_manager.step()

View file

@ -0,0 +1,26 @@
extends Control
@onready var yonic_credits = $VBoxContainer/HBoxContainer/Yonic
@onready var reward_hint = $VBoxContainer/RewardHint
signal lerp_complete
var t = 0.0
var opacity_from = 0.0
var opacity_to = 0.0
func _ready():
yonic_credits.visible = !Globals.nsfw
modulate.a = opacity_from
func _process(delta):
if t < 1.0 and opacity_from != opacity_to:
t += delta
modulate.a = lerp(opacity_from, opacity_to, t)
if t >= 1.0:
lerp_complete.emit()
func reveal(reward_applicable: bool):
reward_hint.visible = Globals.nsfw and not reward_applicable
t = 0.0
opacity_to = 1.0

34
Scripts/lerping_camera.gd Normal file
View file

@ -0,0 +1,34 @@
class_name LerpableCamera extends Camera2D
signal move_completed
@export var focus_starting_position: Vector2 = Vector2(0.0, -12.0)
var lerp_speed = 1.0
var focus_start = focus_starting_position
var focus_target = focus_starting_position
var t = 0.0
func _ready():
offset = focus_starting_position
func _process(delta):
if focus_start != focus_target and t < 1.0:
t += lerp_speed * delta
var smooth_t = smoothstep(0.0, 1.0, t)
offset = lerp(focus_start, focus_target, smooth_t)
if focus_start == focus_target or t >= 1.0:
offset = focus_target
focus_start = focus_target
move_completed.emit()
func lerp_to(point: Vector2, relative = false, speed = 1.0):
focus_start = offset
focus_target = point if relative else point - (global_position - focus_starting_position)
t = 0.0
lerp_speed = speed
func teleport_to(point: Vector2, relative = false):
t = 1.0
offset = point if relative else point - (global_position - focus_starting_position)
focus_target = offset
focus_start = focus_target

139
UI/prototype_credits.tscn Normal file
View file

@ -0,0 +1,139 @@
[gd_scene load_steps=11 format=3 uid="uid://6kq1081phjj8"]
[ext_resource type="Script" path="res://Scripts/UI/prototype_credits.gd" id="1_l27oe"]
[ext_resource type="FontFile" uid="uid://bgqotudi6bifk" path="res://UI/Gundam 00 font gaufont.ttf" id="1_mo4u7"]
[ext_resource type="Texture2D" uid="uid://c4iwqijfp013h" path="res://Hiro/Hiro_Idle_Blink_Sprites.png" id="1_v1v2f"]
[ext_resource type="Texture2D" uid="uid://bmix77hgm7q21" path="res://Reed/Reed_Idle_Blink_Sprites.png" id="2_n217s"]
[sub_resource type="LabelSettings" id="LabelSettings_3a8w4"]
font = ExtResource("1_mo4u7")
font_size = 32
outline_size = 8
outline_color = Color(0, 0, 0, 1)
[sub_resource type="AtlasTexture" id="AtlasTexture_jbqse"]
atlas = ExtResource("1_v1v2f")
region = Rect2(0, 0, 32, 32)
[sub_resource type="LabelSettings" id="LabelSettings_eg5ns"]
font = ExtResource("1_mo4u7")
font_color = Color(0.682353, 0.866667, 0.996078, 1)
outline_size = 4
outline_color = Color(0, 0, 0, 1)
[sub_resource type="LabelSettings" id="LabelSettings_xf38o"]
font = ExtResource("1_mo4u7")
font_size = 20
outline_size = 4
outline_color = Color(0, 0, 0, 1)
[sub_resource type="AtlasTexture" id="AtlasTexture_yln03"]
atlas = ExtResource("2_n217s")
region = Rect2(0, 0, 32, 32)
[sub_resource type="LabelSettings" id="LabelSettings_5v6rm"]
font = ExtResource("1_mo4u7")
font_color = Color(1, 1, 0, 1)
outline_color = Color(0, 0, 0, 1)
[node name="Credits" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
script = ExtResource("1_l27oe")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
alignment = 1
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer"]
layout_mode = 2
theme_override_constants/margin_bottom = 64
[node name="Label" type="Label" parent="VBoxContainer/MarginContainer"]
layout_mode = 2
text = "STAFF CREDITS"
label_settings = SubResource("LabelSettings_3a8w4")
horizontal_alignment = 1
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
layout_mode = 2
alignment = 1
[node name="Raxki" type="VBoxContainer" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 6
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/HBoxContainer/Raxki"]
layout_mode = 2
theme_override_constants/margin_bottom = 8
[node name="Sprite" type="TextureRect" parent="VBoxContainer/HBoxContainer/Raxki/MarginContainer"]
texture_filter = 1
custom_minimum_size = Vector2(64, 64)
layout_mode = 2
texture = SubResource("AtlasTexture_jbqse")
expand_mode = 2
stretch_mode = 5
[node name="Title" type="Label" parent="VBoxContainer/HBoxContainer/Raxki"]
layout_mode = 2
text = "CONCEPT & ART"
label_settings = SubResource("LabelSettings_eg5ns")
horizontal_alignment = 1
[node name="Name" type="Label" parent="VBoxContainer/HBoxContainer/Raxki"]
layout_mode = 2
text = "Raxki Yamato"
label_settings = SubResource("LabelSettings_xf38o")
horizontal_alignment = 1
[node name="Yonic" type="VBoxContainer" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 6
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/HBoxContainer/Yonic"]
layout_mode = 2
theme_override_constants/margin_bottom = 8
[node name="Sprite" type="TextureRect" parent="VBoxContainer/HBoxContainer/Yonic/MarginContainer"]
texture_filter = 1
custom_minimum_size = Vector2(64, 64)
layout_mode = 2
texture = SubResource("AtlasTexture_yln03")
expand_mode = 2
stretch_mode = 5
[node name="Title" type="Label" parent="VBoxContainer/HBoxContainer/Yonic"]
layout_mode = 2
text = "DESIGN & PROGRAMMING"
label_settings = SubResource("LabelSettings_eg5ns")
horizontal_alignment = 1
[node name="Name" type="Label" parent="VBoxContainer/HBoxContainer/Yonic"]
layout_mode = 2
text = "Yonic Soseki"
label_settings = SubResource("LabelSettings_xf38o")
horizontal_alignment = 1
[node name="RewardHint" type="MarginContainer" parent="VBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 8
theme_override_constants/margin_top = 8
theme_override_constants/margin_right = 8
[node name="Label" type="Label" parent="VBoxContainer/RewardHint"]
layout_mode = 2
text = "If you perform perfectly in the exhibition match,
you can get a special reward!"
label_settings = SubResource("LabelSettings_5v6rm")
horizontal_alignment = 1

BIN
world/prototype_reward.png (Stored with Git LFS) Normal file

Binary file not shown.

View file

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

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=38 format=3 uid="uid://bxuxjqxxqy7ce"]
[gd_scene load_steps=41 format=3 uid="uid://bxuxjqxxqy7ce"]
[ext_resource type="PackedScene" uid="uid://di21xheryhp0k" path="res://Hiro/hiro_player.tscn" id="1_c1gpq"]
[ext_resource type="PackedScene" uid="uid://b8sfype1vx5ad" path="res://Nem/nem_npc.tscn" id="1_sqt7d"]
@ -6,12 +6,14 @@
[ext_resource type="FontFile" uid="uid://bgqotudi6bifk" path="res://UI/Gundam 00 font gaufont.ttf" id="2_64thh"]
[ext_resource type="Script" path="res://Scripts/UI/pause_menu.gd" id="2_nw73f"]
[ext_resource type="PackedScene" uid="uid://bcwkugn6v3oy7" path="res://addons/godot_state_charts/utilities/state_chart_debugger.tscn" id="2_o5str"]
[ext_resource type="Resource" uid="uid://bj3rm1r1ouq0r" path="res://Cutscenes/prototype_start.tres" id="3_teat4"]
[ext_resource type="Resource" uid="uid://bj3rm1r1ouq0r" path="res://Cutscenes/prototype_start.tres" id="3_wp6v0"]
[ext_resource type="Texture2D" uid="uid://b40la2vyf4rn6" path="res://world/Fighting Dojo BG.png" id="4_elb6q"]
[ext_resource type="Texture2D" uid="uid://dc12iaho4b8yl" path="res://world/walls.png" id="7_pp5dn"]
[ext_resource type="PackedScene" uid="uid://c503u0i421w34" path="res://world/pillar.tscn" id="8_mxq55"]
[ext_resource type="Script" path="res://Scripts/explosion_generator.gd" id="9_df2wo"]
[ext_resource type="PackedScene" uid="uid://ce2tjyxwaar01" path="res://UI/battle_ui.tscn" id="10_hxn8m"]
[ext_resource type="Texture2D" uid="uid://e7g3ylmbymwi" path="res://world/prototype_reward.png" id="10_qggmb"]
[ext_resource type="PackedScene" uid="uid://6kq1081phjj8" path="res://UI/prototype_credits.tscn" id="11_2tmmx"]
[ext_resource type="Texture2D" uid="uid://b7l1k8j3ie4qi" path="res://NPCs/npc1.png" id="11_p77ah"]
[ext_resource type="PackedScene" uid="uid://7oi3hcf5q4o7" path="res://UI/textbox_ui.tscn" id="12_8pgvx"]
[ext_resource type="Resource" uid="uid://ck0ry5vxaj8a7" path="res://Cutscenes/prototype_talk_to_nem.tres" id="12_cb4j5"]
@ -19,6 +21,7 @@
[ext_resource type="Texture2D" uid="uid://y31qyw51y7hb" path="res://NPCs/npc3.png" id="13_6g4gt"]
[ext_resource type="Texture2D" uid="uid://jnub86bpiebw" path="res://NPCs/npc4.png" id="14_46hs3"]
[ext_resource type="Texture2D" uid="uid://baw6gijyxv1fv" path="res://NPCs/npc5.png" id="15_ppm1i"]
[ext_resource type="Script" path="res://Scripts/lerping_camera.gd" id="16_6jycw"]
[ext_resource type="Texture2D" uid="uid://bcvxfjlg8mmjr" path="res://NPCs/npc6.png" id="16_cgyrp"]
[ext_resource type="Script" path="res://Scripts/Cutscenes/manager.gd" id="19_5yvrq"]
[ext_resource type="PackedScene" uid="uid://bwrwh5of0jw4a" path="res://Reed/reed_ai.tscn" id="21_dioix"]
@ -124,7 +127,7 @@ script = ExtResource("1_y634h")
[node name="CutsceneManager" type="Node" parent="."]
script = ExtResource("19_5yvrq")
cutscene = ExtResource("3_teat4")
cutscene = ExtResource("3_wp6v0")
[node name="MusicManager" parent="." instance=ExtResource("24_03wyf")]
@ -169,7 +172,10 @@ label_settings = SubResource("LabelSettings_f2g0a")
layer = 3
cps = 100.0
[node name="Control" type="Control" parent="TextboxUI"]
[node name="Fades" type="CanvasLayer" parent="."]
layer = 2
[node name="Control" type="Control" parent="Fades"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
@ -177,7 +183,18 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="FaderRect" type="ColorRect" parent="TextboxUI/Control"]
[node name="NSFWReward" type="TextureRect" parent="Fades/Control"]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("10_qggmb")
expand_mode = 3
[node name="FaderRect" type="ColorRect" parent="Fades/Control"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@ -187,12 +204,14 @@ grow_vertical = 2
mouse_filter = 2
color = Color(0, 0, 0, 0)
[node name="AnimationPlayer" type="AnimationPlayer" parent="TextboxUI/Control/FaderRect"]
[node name="AnimationPlayer" type="AnimationPlayer" parent="Fades/Control/FaderRect"]
libraries = {
"": SubResource("AnimationLibrary_oss1s")
}
[node name="Fades" type="CanvasLayer" parent="."]
[node name="Credits" parent="Fades/Control" instance=ExtResource("11_2tmmx")]
visible = false
layout_mode = 1
[node name="CanvasLayer" type="CanvasLayer" parent="."]
@ -276,11 +295,10 @@ has_nsfw_animations = false
[node name="Camera2D" type="Camera2D" parent="HiroPlayer"]
texture_filter = 1
offset = Vector2(0, -12)
zoom = Vector2(3, 3)
position_smoothing_enabled = true
position_smoothing_speed = 3.0
metadata/_edit_lock_ = true
script = ExtResource("16_6jycw")
[node name="NemNPC" parent="." instance=ExtResource("1_sqt7d")]
position = Vector2(2, -78)