Compare commits
4 commits
41ccbd0765
...
b0e030e699
Author | SHA1 | Date | |
---|---|---|---|
Mario Martínez | b0e030e699 | ||
Mario Martínez | f4e2193219 | ||
Mario Martínez | 97863dc3fd | ||
Mario Martínez | 0406135ef7 |
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -3,4 +3,5 @@
|
|||
*.tmp
|
||||
*.zip
|
||||
dist/
|
||||
build/
|
||||
build/
|
||||
~*.*
|
BIN
Audio/SFX/door_open.wav
(Stored with Git LFS)
Normal file
BIN
Audio/SFX/door_open.wav
(Stored with Git LFS)
Normal file
Binary file not shown.
24
Audio/SFX/door_open.wav.import
Normal file
24
Audio/SFX/door_open.wav.import
Normal 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
|
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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));
|
||||
//}
|
|
@ -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)
|
21
Scripts/Cutscenes/Commands/move_camera.gd
Normal file
21
Scripts/Cutscenes/Commands/move_camera.gd
Normal 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
|
|
@ -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()
|
||||
|
||||
|
|
26
Scripts/UI/prototype_credits.gd
Normal file
26
Scripts/UI/prototype_credits.gd
Normal 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
34
Scripts/lerping_camera.gd
Normal 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
139
UI/prototype_credits.tscn
Normal 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
|
Binary file not shown.
BIN
world/prototype_reward.png
(Stored with Git LFS)
Normal file
BIN
world/prototype_reward.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
world/prototype_reward.png.import
Normal file
34
world/prototype_reward.png.import
Normal 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
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue