Compare commits
2 commits
c2d1a6a127
...
ba5e14a858
Author | SHA1 | Date | |
---|---|---|---|
Raxki | ba5e14a858 | ||
Raxki | c759e49e61 |
|
@ -1,4 +1,4 @@
|
|||
[gd_resource type="Resource" script_class="Cutscene" load_steps=6 format=3 uid="uid://cwfayxsvfvfp3"]
|
||||
[gd_resource type="Resource" script_class="Cutscene" load_steps=7 format=3 uid="uid://cwfayxsvfvfp3"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Cutscenes/cutscene.gd" id="1_5oimi"]
|
||||
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/wait.gd" id="1_b7jis"]
|
||||
|
@ -11,9 +11,19 @@ time = 2.01667
|
|||
[sub_resource type="Resource" id="Resource_eeatu"]
|
||||
script = ExtResource("1_m28bn")
|
||||
character = 0
|
||||
messages = Array[String](["Ha! I won! Told you I kill you!"])
|
||||
portrait_set = "naked"
|
||||
portrait_emotion = "embarrased"
|
||||
messages = Array[String](["AAH! What happened!?", "You ripped my clothes off!!"])
|
||||
textbox_direction = 0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_cw5jl"]
|
||||
script = ExtResource("1_m28bn")
|
||||
character = 1
|
||||
portrait_set = "default"
|
||||
portrait_emotion = "normal"
|
||||
messages = Array[String](["Heh, told you I'd kill you!", "Of embarrasment!!"])
|
||||
textbox_direction = 1
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_5oimi")
|
||||
commands = Array[Resource("res://Scripts/Cutscenes/Commands/base.gd")]([SubResource("Resource_j0qrl"), SubResource("Resource_eeatu")])
|
||||
commands = Array[Resource("res://Scripts/Cutscenes/Commands/base.gd")]([SubResource("Resource_j0qrl"), SubResource("Resource_eeatu"), SubResource("Resource_cw5jl")])
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
[gd_resource type="Resource" script_class="Cutscene" load_steps=18 format=3 uid="uid://bj3rm1r1ouq0r"]
|
||||
[gd_resource type="Resource" script_class="Cutscene" load_steps=12 format=3 uid="uid://bj3rm1r1ouq0r"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/Cutscenes/cutscene.gd" id="1_ejncn"]
|
||||
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/wait.gd" id="1_mrqg0"]
|
||||
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/show_dialogue.gd" id="1_r5tuj"]
|
||||
[ext_resource type="AudioStream" uid="uid://osasql3x1b8q" path="res://Audio/BGM/olympus_overworld.mp3" id="1_wnm4j"]
|
||||
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/turn_character.gd" id="2_eqfp1"]
|
||||
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/cue_bgm.gd" id="2_fbljl"]
|
||||
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/move_character.gd" id="3_rxd5p"]
|
||||
[ext_resource type="Script" path="res://Scripts/Cutscenes/Commands/lookat_character.gd" id="4_dcsx8"]
|
||||
[ext_resource type="AudioStream" uid="uid://jlr3b1nye15g" path="res://Audio/BGM/olympus_combat.mp3" id="8_o2rwe"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_xw6ah"]
|
||||
|
@ -15,28 +12,11 @@ script = ExtResource("2_fbljl")
|
|||
music = ExtResource("1_wnm4j")
|
||||
crossfade = false
|
||||
|
||||
[sub_resource type="Resource" id="Resource_h6w6u"]
|
||||
script = ExtResource("1_mrqg0")
|
||||
time = 1.0
|
||||
|
||||
[sub_resource type="Resource" id="Resource_22owj"]
|
||||
script = ExtResource("3_rxd5p")
|
||||
target_character = NodePath("../HiroAI")
|
||||
target_type = "Node"
|
||||
use_character_speed = false
|
||||
speed = 75.0
|
||||
animation_state = "cut_walk"
|
||||
target_vector = Vector2(0, 0)
|
||||
target_node = NodePath("../PositionMarkers/Marker1")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_rtvbh"]
|
||||
script = ExtResource("4_dcsx8")
|
||||
character = NodePath("../HiroAI")
|
||||
lookat_target = NodePath("../HiroPlayer")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_r2p8t"]
|
||||
script = ExtResource("1_r5tuj")
|
||||
character = 0
|
||||
character = 1
|
||||
portrait_set = "default"
|
||||
portrait_emotion = "normal"
|
||||
messages = Array[String](["This is a test for the cutscene!", "Now I'm going to kill you!"])
|
||||
textbox_direction = 1
|
||||
|
||||
|
@ -48,6 +28,8 @@ facing_direction = 3
|
|||
[sub_resource type="Resource" id="Resource_x3xc6"]
|
||||
script = ExtResource("1_r5tuj")
|
||||
character = 0
|
||||
portrait_set = "default"
|
||||
portrait_emotion = "normal"
|
||||
messages = Array[String](["Whaaat? Who are you!?", "You have no chance against me!!"])
|
||||
textbox_direction = 0
|
||||
|
||||
|
@ -59,4 +41,4 @@ crossfade = true
|
|||
[resource]
|
||||
resource_name = "prototype_start"
|
||||
script = ExtResource("1_ejncn")
|
||||
commands = Array[Resource("res://Scripts/Cutscenes/Commands/base.gd")]([SubResource("Resource_xw6ah"), SubResource("Resource_h6w6u"), SubResource("Resource_22owj"), SubResource("Resource_rtvbh"), SubResource("Resource_r2p8t"), SubResource("Resource_fuu2y"), SubResource("Resource_x3xc6"), SubResource("Resource_1sjaa")])
|
||||
commands = Array[Resource("res://Scripts/Cutscenes/Commands/base.gd")]([SubResource("Resource_xw6ah"), SubResource("Resource_r2p8t"), SubResource("Resource_fuu2y"), SubResource("Resource_x3xc6"), SubResource("Resource_1sjaa")])
|
||||
|
|
|
@ -237,6 +237,7 @@ y_sort_enabled = true
|
|||
collision_layer = 5
|
||||
motion_mode = 1
|
||||
script = ExtResource("1_dtymi")
|
||||
has_nsfw_animations = true
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture_filter = 1
|
||||
|
|
BIN
Portraits/hiro_default_normal.png
(Stored with Git LFS)
Normal file
BIN
Portraits/hiro_default_normal.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
Portraits/hiro_default_normal.png.import
Normal file
34
Portraits/hiro_default_normal.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://du2iwu36y3l5p"
|
||||
path="res://.godot/imported/hiro_default_normal.png-578cd4ef955936832fc2508f7d1803f7.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Portraits/hiro_default_normal.png"
|
||||
dest_files=["res://.godot/imported/hiro_default_normal.png-578cd4ef955936832fc2508f7d1803f7.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
Portraits/hiro_naked_embarrased.png
(Stored with Git LFS)
Normal file
BIN
Portraits/hiro_naked_embarrased.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
Portraits/hiro_naked_embarrased.png.import
Normal file
34
Portraits/hiro_naked_embarrased.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ji1goitqlmof"
|
||||
path="res://.godot/imported/hiro_naked_embarrased.png-57e955a40ef55564128a120870de8a12.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Portraits/hiro_naked_embarrased.png"
|
||||
dest_files=["res://.godot/imported/hiro_naked_embarrased.png-57e955a40ef55564128a120870de8a12.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
|
34
Portraits/hiro_normal_normal.png.import
Normal file
34
Portraits/hiro_normal_normal.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cr2vv873lb5o3"
|
||||
path="res://.godot/imported/hiro_normal_normal.png-bf7814a8691e38a8d33d42cf2e1b491e.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Hiro/Portraits/hiro_normal_normal.png"
|
||||
dest_files=["res://.godot/imported/hiro_normal_normal.png-bf7814a8691e38a8d33d42cf2e1b491e.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
Portraits/reed_default_normal.png
(Stored with Git LFS)
Normal file
BIN
Portraits/reed_default_normal.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
Portraits/reed_default_normal.png.import
Normal file
34
Portraits/reed_default_normal.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://crjnnxlwsu4li"
|
||||
path="res://.godot/imported/reed_default_normal.png-2019bfcf44c1030a3bfcdc2140f77ada.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Portraits/reed_default_normal.png"
|
||||
dest_files=["res://.godot/imported/reed_default_normal.png-2019bfcf44c1030a3bfcdc2140f77ada.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
|
34
Portraits/reed_normal_normal.png.import
Normal file
34
Portraits/reed_normal_normal.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://pqmiuyjp3u63"
|
||||
path="res://.godot/imported/reed_normal_normal.png-8b7da774cabeac2b2170950e8bb9e3e5.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Reed/Portraits/reed_normal_normal.png"
|
||||
dest_files=["res://.godot/imported/reed_normal_normal.png-8b7da774cabeac2b2170950e8bb9e3e5.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
Reed/Reed_Hurt_Sprites.png
(Stored with Git LFS)
Normal file
BIN
Reed/Reed_Hurt_Sprites.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
Reed/Reed_Hurt_Sprites.png.import
Normal file
34
Reed/Reed_Hurt_Sprites.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c7q83hvbvaifu"
|
||||
path="res://.godot/imported/Reed_Hurt_Sprites.png-f4f62484fa3f17041903b943f731fdcb.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Reed/Reed_Hurt_Sprites.png"
|
||||
dest_files=["res://.godot/imported/Reed_Hurt_Sprites.png-f4f62484fa3f17041903b943f731fdcb.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
Reed/Reed_Melee_Sprites_Y.png
(Stored with Git LFS)
Normal file
BIN
Reed/Reed_Melee_Sprites_Y.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
Reed/Reed_Melee_Sprites_Y.png.import
Normal file
34
Reed/Reed_Melee_Sprites_Y.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ctajre4ylwoqp"
|
||||
path="res://.godot/imported/Reed_Melee_Sprites_Y.png-e24a71bff10f79115f93d245873fbd9c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Reed/Reed_Melee_Sprites_Y.png"
|
||||
dest_files=["res://.godot/imported/Reed_Melee_Sprites_Y.png-e24a71bff10f79115f93d245873fbd9c.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
Reed/Reed_Reed_Defeated_Sprite_.png
(Stored with Git LFS)
Normal file
BIN
Reed/Reed_Reed_Defeated_Sprite_.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
Reed/Reed_Reed_Defeated_Sprite_.png.import
Normal file
34
Reed/Reed_Reed_Defeated_Sprite_.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://clbdgd8f7isb4"
|
||||
path="res://.godot/imported/Reed_Reed_Defeated_Sprite_.png-7247dea190102302cddccfe0ed6b0438.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Reed/Reed_Reed_Defeated_Sprite_.png"
|
||||
dest_files=["res://.godot/imported/Reed_Reed_Defeated_Sprite_.png-7247dea190102302cddccfe0ed6b0438.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,9 +1,9 @@
|
|||
[gd_scene load_steps=64 format=3 uid="uid://bwrwh5of0jw4a"]
|
||||
[gd_scene load_steps=63 format=3 uid="uid://bwrwh5of0jw4a"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/hiro_ai.gd" id="1_yavbv"]
|
||||
[ext_resource type="Shader" uid="uid://bcnip762rd6yj" path="res://Shaders/character.tres" id="2_y6nd7"]
|
||||
[ext_resource type="Texture2D" uid="uid://cm7tgomrcvq30" path="res://Hiro/Hiro Walk Sprite Cycle Line Up.png" id="3_mgryv"]
|
||||
[ext_resource type="AnimationLibrary" uid="uid://dincs5x4qucal" path="res://Hiro/hiro_animation.tres" id="4_tcpux"]
|
||||
[ext_resource type="Texture2D" uid="uid://pittqsk5eskq" path="res://Reed/Reed Walk Sprite Cycle Line Up.png" id="3_2rpco"]
|
||||
[ext_resource type="AnimationLibrary" uid="uid://bhg3cnhjeq85r" path="res://Reed/reed_animation.tres" id="4_nk4o6"]
|
||||
[ext_resource type="Script" path="res://addons/godot_state_charts/state_chart.gd" id="5_pgbft"]
|
||||
[ext_resource type="Script" path="res://addons/godot_state_charts/compound_state.gd" id="6_a7x4q"]
|
||||
[ext_resource type="Script" path="res://addons/godot_state_charts/atomic_state.gd" id="7_jc1pg"]
|
||||
|
@ -37,8 +37,11 @@ blend_point_3/node = SubResource("AnimationNodeAnimation_tmboi")
|
|||
blend_point_3/pos = Vector2(0, -1)
|
||||
blend_mode = 1
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_8ov0j"]
|
||||
animation = &"player_defeated"
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_kgin3"]
|
||||
animation = &"ai_defeated_start"
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_0ny5g"]
|
||||
animation = &"ai_defeated"
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_tyc74"]
|
||||
animation = &"hurt_west"
|
||||
|
@ -164,12 +167,6 @@ blend_point_2/node = SubResource("AnimationNodeBlendSpace2D_mr7t3")
|
|||
blend_point_2/pos = 1.0
|
||||
blend_mode = 1
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_0ny5g"]
|
||||
animation = &"ai_defeated"
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_kgin3"]
|
||||
animation = &"ai_defeated_start"
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_17wsb"]
|
||||
animation = &"walking_north"
|
||||
|
||||
|
@ -226,22 +223,20 @@ states/End/position = Vector2(1026, 108)
|
|||
states/Start/position = Vector2(197, 108)
|
||||
states/cut_walk/node = SubResource("AnimationNodeBlendSpace2D_h2456")
|
||||
states/cut_walk/position = Vector2(563, 400)
|
||||
states/defeated/node = SubResource("AnimationNodeAnimation_8ov0j")
|
||||
states/defeated/position = Vector2(734, 74)
|
||||
states/defeated/node = SubResource("AnimationNodeAnimation_kgin3")
|
||||
states/defeated/position = Vector2(734, 202)
|
||||
states/defeated_loop/node = SubResource("AnimationNodeAnimation_0ny5g")
|
||||
states/defeated_loop/position = Vector2(895, 202)
|
||||
states/hurt/node = SubResource("AnimationNodeBlendSpace2D_h2vkc")
|
||||
states/hurt/position = Vector2(329, -13)
|
||||
states/idle/node = SubResource("AnimationNodeBlendSpace2D_bd8j1")
|
||||
states/idle/position = Vector2(329, 108)
|
||||
states/melee/node = SubResource("AnimationNodeBlendSpace1D_dc3kp")
|
||||
states/melee/position = Vector2(329, 224)
|
||||
states/naked/node = SubResource("AnimationNodeAnimation_0ny5g")
|
||||
states/naked/position = Vector2(895, 202)
|
||||
states/naked_start/node = SubResource("AnimationNodeAnimation_kgin3")
|
||||
states/naked_start/position = Vector2(734, 202)
|
||||
states/walk/node = SubResource("AnimationNodeBlendSpace2D_vunsg")
|
||||
states/walk/position = Vector2(519, 108)
|
||||
transitions = ["Start", "idle", SubResource("AnimationNodeStateMachineTransition_akmuq"), "idle", "walk", SubResource("AnimationNodeStateMachineTransition_sn1tm"), "walk", "idle", SubResource("AnimationNodeStateMachineTransition_5i3fu"), "idle", "melee", SubResource("AnimationNodeStateMachineTransition_y8p74"), "melee", "idle", SubResource("AnimationNodeStateMachineTransition_l17k0"), "hurt", "idle", SubResource("AnimationNodeStateMachineTransition_ln3pc"), "naked_start", "naked", SubResource("AnimationNodeStateMachineTransition_l5ng5")]
|
||||
graph_offset = Vector2(20, 231)
|
||||
transitions = ["Start", "idle", SubResource("AnimationNodeStateMachineTransition_akmuq"), "idle", "walk", SubResource("AnimationNodeStateMachineTransition_sn1tm"), "walk", "idle", SubResource("AnimationNodeStateMachineTransition_5i3fu"), "idle", "melee", SubResource("AnimationNodeStateMachineTransition_y8p74"), "melee", "idle", SubResource("AnimationNodeStateMachineTransition_l17k0"), "hurt", "idle", SubResource("AnimationNodeStateMachineTransition_ln3pc"), "defeated", "defeated_loop", SubResource("AnimationNodeStateMachineTransition_l5ng5")]
|
||||
graph_offset = Vector2(65, 24)
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_vm050"]
|
||||
radius = 9.0
|
||||
|
@ -270,18 +265,30 @@ y_sort_enabled = true
|
|||
collision_layer = 5
|
||||
motion_mode = 1
|
||||
script = ExtResource("1_yavbv")
|
||||
KNOCKBACK_REPOSITION_POWER = null
|
||||
MELEE_RADIUS = null
|
||||
chase_speed = null
|
||||
approach_speed = null
|
||||
min_recoil_time = null
|
||||
max_recoil_time = null
|
||||
reduce_recoil_time_threshold = null
|
||||
speed = null
|
||||
max_health = null
|
||||
health = null
|
||||
attack_power = null
|
||||
KNOCKBACK_POWER = null
|
||||
KNOCKBACK_RANDOMNESS = null
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
modulate = Color(0.498039, 0.498039, 0.498039, 1)
|
||||
texture_filter = 1
|
||||
material = SubResource("ShaderMaterial_7ckhc")
|
||||
position = Vector2(0, -13)
|
||||
texture = ExtResource("3_mgryv")
|
||||
texture = ExtResource("3_2rpco")
|
||||
hframes = 20
|
||||
|
||||
[node name="AnimationTree" type="AnimationTree" parent="."]
|
||||
libraries = {
|
||||
"": ExtResource("4_tcpux")
|
||||
"": ExtResource("4_nk4o6")
|
||||
}
|
||||
tree_root = SubResource("AnimationNodeStateMachine_b0avg")
|
||||
parameters/conditions/is_moving = false
|
||||
|
|
2124
Reed/reed_animation.tres
Normal file
2124
Reed/reed_animation.tres
Normal file
File diff suppressed because it is too large
Load diff
|
@ -32,10 +32,8 @@ func _on_ui_dialogue_opened():
|
|||
func _on_ui_dialogue_continued():
|
||||
play_sound("dialogue_continue")
|
||||
|
||||
func _on_character_got_hurt(new_health: int):
|
||||
func _on_character_got_hurt(_new_health: int):
|
||||
play_sound("melee_hit")
|
||||
if new_health <= 0 and Globals.nsfw:
|
||||
play_sound("effect_smoke")
|
||||
|
||||
func _on_humanoid_character_attacked():
|
||||
play_sound("melee")
|
||||
|
|
|
@ -9,6 +9,8 @@ class_name CharacterBase
|
|||
@export var attack_power: int = 30
|
||||
@export var KNOCKBACK_POWER: float = 40
|
||||
@export var KNOCKBACK_RANDOMNESS: float = 50
|
||||
@export_group("Animations")
|
||||
@export var has_nsfw_animations = false
|
||||
|
||||
signal attacked
|
||||
signal attack_did_hit(other: Area2D, power: int, attack_direction: Vector2)
|
||||
|
|
|
@ -7,5 +7,7 @@ enum TextboxDirection {
|
|||
}
|
||||
|
||||
@export var character: Util.CastCharacter
|
||||
@export var portrait_set: String = "default"
|
||||
@export var portrait_emotion: String = "normal"
|
||||
@export var messages: Array[String] = []
|
||||
@export var textbox_direction = TextboxDirection.LEFT
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
extends Node2D
|
||||
|
||||
@onready var game_state = $GameState
|
||||
@onready var explosion_generator = $ExplosionGenerator
|
||||
@onready var battle_ui = $CanvasLayer/BattleUI
|
||||
@onready var player = $HiroPlayer
|
||||
@onready var ai = $HiroAI
|
||||
@onready var ai = $ReedAI
|
||||
@onready var cutscene_manager = $CutsceneManager
|
||||
@onready var sound_manager = $SoundManager
|
||||
|
||||
func _ready():
|
||||
battle_ui.initialize(player.health, ai.health)
|
||||
|
@ -14,29 +16,24 @@ func _ready():
|
|||
|
||||
func _on_player_defeated():
|
||||
if Globals.nsfw == true:
|
||||
sound_manager.play_sound("effect_smoke")
|
||||
explosion_generator.spawn(player.position)
|
||||
var cutscene = load("res://Cutscenes/prototype_defeated.tres")
|
||||
cutscene_manager.load_cutscene(cutscene)
|
||||
cutscene_manager.step()
|
||||
|
||||
func _on_ai_defeated():
|
||||
if Globals.nsfw == true:
|
||||
explosion_generator.spawn(ai.position)
|
||||
|
||||
func _on_cutscene_started(cutscene_name):
|
||||
$HiroPlayer.can_move = false
|
||||
$GameState.can_pause = false
|
||||
player.can_move = false
|
||||
game_state.can_pause = false
|
||||
if cutscene_name == "prototype_start":
|
||||
$HiroAI.set_ai_enabled(false)
|
||||
$ReedAI.set_ai_enabled(false)
|
||||
ai.set_ai_enabled(false)
|
||||
|
||||
func _on_cutscene_finished(cutscene_name: String):
|
||||
print("Cutscene " + cutscene_name + " finished")
|
||||
$HiroPlayer.can_move = true
|
||||
$GameState.can_pause = true
|
||||
player.can_move = true
|
||||
game_state.can_pause = true
|
||||
if cutscene_name == "prototype_start":
|
||||
$HiroAI.set_ai_enabled(true)
|
||||
$ReedAI.set_ai_enabled(true)
|
||||
ai.set_ai_enabled(true)
|
||||
|
||||
|
||||
func _on_cutscene_manager_issued_command(command: CutsceneCommand, manager: CutsceneManager):
|
||||
|
|
|
@ -22,6 +22,18 @@ enum TextboxDirection {
|
|||
$RightTextbox/ChatboxContainer/Chatbox/PlacementContainer/NextIndicator
|
||||
]
|
||||
|
||||
const CAST_PORTRAITS = [
|
||||
"hiro",
|
||||
"reed",
|
||||
"nem"
|
||||
]
|
||||
|
||||
const CAST_NAMES = [
|
||||
"HIRO",
|
||||
"REED",
|
||||
"NEM"
|
||||
]
|
||||
|
||||
signal dialogue_started
|
||||
signal dialogue_opened
|
||||
signal display_completed
|
||||
|
@ -67,12 +79,15 @@ func _input(event):
|
|||
get_viewport().set_input_as_handled()
|
||||
dialogue_continued.emit()
|
||||
|
||||
func _dialogue_start(_who: Util.CastCharacter, dialogue: Array[String], direction: TextboxDirection):
|
||||
func _dialogue_start(who: Util.CastCharacter, portrait_set: String, portrait_emotion: String, dialogue: Array[String], direction: TextboxDirection):
|
||||
_next = 0
|
||||
_direction = direction
|
||||
_dialogue = dialogue
|
||||
_text = _dialogue[_next]
|
||||
_text = "{name}: {text}".format({"name": CAST_NAMES[who], "text": _dialogue[_next]})
|
||||
_display_text = ""
|
||||
var portrait_texture = load("res://Portraits/{0}_{1}_{2}.png".format([CAST_PORTRAITS[who], portrait_set, portrait_emotion]))
|
||||
for portrait in _portraits:
|
||||
portrait.texture = portrait_texture
|
||||
animation_player.play("show_" + _directions[_direction])
|
||||
dialogue_started.emit()
|
||||
|
||||
|
@ -101,4 +116,4 @@ func _on_animation_finished(anim_name: StringName):
|
|||
|
||||
func _on_cutscene_command_issued(command: CutsceneCommand, _manager: CutsceneManager):
|
||||
if command is ShowDialogueCommand:
|
||||
_dialogue_start(command.character, command.messages, command.textbox_direction)
|
||||
_dialogue_start(command.character, command.portrait_set, command.portrait_emotion, command.messages, command.textbox_direction)
|
||||
|
|
|
@ -166,7 +166,7 @@ func _on_animation_tree_animation_finished(anim_name):
|
|||
state_machine.send_event("melee_complete")
|
||||
|
||||
func _on_defeat_state_entered():
|
||||
if Globals.nsfw:
|
||||
if has_nsfw_animations and Globals.nsfw:
|
||||
anim_playback.travel("naked_start")
|
||||
else:
|
||||
anim_playback.travel("defeated")
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[ext_resource type="Script" path="res://Scripts/UI/textbox.gd" id="1_nbji8"]
|
||||
[ext_resource type="FontFile" uid="uid://bgqotudi6bifk" path="res://UI/Gundam 00 font gaufont.ttf" id="1_p6ypw"]
|
||||
[ext_resource type="Texture2D" uid="uid://b7opep16uyb5r" path="res://Hiro/testportrait.png" id="2_6wmjm"]
|
||||
[ext_resource type="Texture2D" uid="uid://du2iwu36y3l5p" path="res://Portraits/hiro_default_normal.png" id="3_cbor4"]
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_ydgvr"]
|
||||
font = ExtResource("1_p6ypw")
|
||||
|
@ -184,9 +184,10 @@ anchors_preset = -1
|
|||
anchor_right = 0.286
|
||||
anchor_bottom = 1.0
|
||||
grow_vertical = 0
|
||||
texture = ExtResource("2_6wmjm")
|
||||
texture = ExtResource("3_cbor4")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
flip_h = true
|
||||
|
||||
[node name="RightTextbox" type="Control" parent="."]
|
||||
layout_mode = 3
|
||||
|
@ -268,7 +269,7 @@ anchor_left = 0.65
|
|||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_vertical = 0
|
||||
texture = ExtResource("2_6wmjm")
|
||||
texture = ExtResource("3_cbor4")
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
|
|
|
@ -36,6 +36,14 @@ enabled=PackedStringArray("res://addons/godot_state_charts/plugin.cfg")
|
|||
|
||||
[input]
|
||||
|
||||
ui_accept={
|
||||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194310,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":32,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null)
|
||||
]
|
||||
}
|
||||
ui_left={
|
||||
"deadzone": 0.5,
|
||||
"events": [null, null]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=30 format=3 uid="uid://bxuxjqxxqy7ce"]
|
||||
[gd_scene load_steps=28 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"]
|
||||
|
@ -7,8 +7,6 @@
|
|||
[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="Texture2D" uid="uid://b40la2vyf4rn6" path="res://world/Fighting Dojo BG.png" id="4_elb6q"]
|
||||
[ext_resource type="PackedScene" uid="uid://dd2km6qhpdicx" path="res://Hiro/hiro_ai.tscn" id="5_r7nw4"]
|
||||
[ext_resource type="PackedScene" uid="uid://bakb5a7xe4qby" path="res://Reed/reed_player.tscn" id="6_cn8e2"]
|
||||
[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"]
|
||||
|
@ -99,7 +97,6 @@ offset_bottom = 155.0
|
|||
scale = Vector2(0.75, 0.75)
|
||||
size_flags_horizontal = 0
|
||||
enabled = false
|
||||
initial_node_to_watch = NodePath("../../../HiroAI")
|
||||
|
||||
[node name="MapElements" type="Node2D" parent="."]
|
||||
y_sort_enabled = true
|
||||
|
@ -165,9 +162,6 @@ zoom = Vector2(2, 2)
|
|||
position_smoothing_enabled = true
|
||||
position_smoothing_speed = 3.0
|
||||
|
||||
[node name="ReedPlayer" parent="." instance=ExtResource("6_cn8e2")]
|
||||
position = Vector2(40, -12)
|
||||
|
||||
[node name="NemNPC" parent="." instance=ExtResource("1_sqt7d")]
|
||||
position = Vector2(2, -78)
|
||||
|
||||
|
@ -182,14 +176,6 @@ position = Vector2(-1341, -243)
|
|||
scale = Vector2(8.83789, 4.22585)
|
||||
polygon = PackedVector2Array(158.522, 76.9076, 161.916, 75.961, 172.213, 75.961, 175.834, 76.671, 177.757, 78.5641, 179.341, 82.8236, 180.134, 85.8999, 180.134, 93.9456, 180.134, 114.06, 179.341, 117.373, 177.871, 119.739, 174.929, 120.922, 169.497, 120.922, 169.497, 123.525, 164.745, 123.525, 164.632, 120.922, 159.201, 120.922, 156.372, 120.213, 154.901, 117.373, 154.109, 113.587, 154.109, 94.1822, 154.109, 86.1365, 152.186, 83.0602, 152.412, 80.9304, 146.181, 70.3743, 139.513, 85.4266, 135.779, 90.8692, 147.66, 124.945, 187.367, 125.038, 195.514, 91.4351, 192.232, 66.1148, 173.676, 53.3363, 157.382, 53.8096, 152.404, 63.2751, 153.317, 81.6403, 154.109, 85.8999, 154.901, 83.2969, 156.485, 78.5641)
|
||||
|
||||
[node name="HiroAI" parent="." node_paths=PackedStringArray("player_character") instance=ExtResource("5_r7nw4")]
|
||||
position = Vector2(-1, 67)
|
||||
player_character = NodePath("../HiroPlayer")
|
||||
KNOCKBACK_REPOSITION_POWER = 90
|
||||
MELEE_RADIUS = 300
|
||||
health = 400
|
||||
attack_power = 10
|
||||
|
||||
[node name="ExplosionGenerator" type="Node" parent="."]
|
||||
script = ExtResource("9_df2wo")
|
||||
|
||||
|
@ -235,14 +221,20 @@ script = ExtResource("19_5yvrq")
|
|||
cutscene = ExtResource("20_elypl")
|
||||
|
||||
[node name="ReedAI" parent="." node_paths=PackedStringArray("player_character") instance=ExtResource("21_dioix")]
|
||||
process_mode = 4
|
||||
position = Vector2(64, -16)
|
||||
position = Vector2(44, -12)
|
||||
player_character = NodePath("../HiroPlayer")
|
||||
KNOCKBACK_REPOSITION_POWER = 90
|
||||
MELEE_RADIUS = 300
|
||||
chase_speed = 65
|
||||
approach_speed = 40
|
||||
min_recoil_time = 0.05
|
||||
max_recoil_time = 1.0
|
||||
reduce_recoil_time_threshold = 0.75
|
||||
max_health = 400
|
||||
health = 400
|
||||
attack_power = 10
|
||||
KNOCKBACK_POWER = 40.0
|
||||
KNOCKBACK_RANDOMNESS = 50.0
|
||||
|
||||
[node name="MusicManager" parent="." instance=ExtResource("24_03wyf")]
|
||||
|
||||
|
@ -256,28 +248,22 @@ script = ExtResource("24_6ypry")
|
|||
[connection signal="dialogue_completed" from="TextboxUI" to="CutsceneManager" method="_on_ui_dialogue_completed"]
|
||||
[connection signal="dialogue_continued" from="TextboxUI" to="SoundManager" method="_on_ui_dialogue_continued"]
|
||||
[connection signal="dialogue_opened" from="TextboxUI" to="SoundManager" method="_on_ui_dialogue_opened"]
|
||||
[connection signal="attack_did_hit" from="HiroPlayer" to="HiroAI" method="_on_player_attack_did_hit"]
|
||||
[connection signal="attack_did_hit" from="HiroPlayer" to="ReedAI" method="_on_player_attack_did_hit"]
|
||||
[connection signal="attacked" from="HiroPlayer" to="SoundManager" method="_on_humanoid_character_attacked"]
|
||||
[connection signal="defeated" from="HiroPlayer" to="." method="_on_player_defeated"]
|
||||
[connection signal="defeated" from="HiroPlayer" to="HiroAI" method="_on_player_been_defeated"]
|
||||
[connection signal="defeated" from="HiroPlayer" to="ReedAI" method="_on_player_been_defeated"]
|
||||
[connection signal="got_hurt" from="HiroPlayer" to="CanvasLayer/BattleUI" method="_on_player_got_hurt"]
|
||||
[connection signal="got_hurt" from="HiroPlayer" to="SoundManager" method="_on_character_got_hurt"]
|
||||
[connection signal="attack_did_hit" from="HiroAI" to="HiroPlayer" method="_on_enemy_attack_did_hit"]
|
||||
[connection signal="attacked" from="HiroAI" to="SoundManager" method="_on_humanoid_character_attacked"]
|
||||
[connection signal="defeated" from="HiroAI" to="." method="_on_ai_defeated"]
|
||||
[connection signal="got_hurt" from="HiroAI" to="CanvasLayer/BattleUI" method="_on_enemy_got_hurt"]
|
||||
[connection signal="got_hurt" from="HiroAI" to="SoundManager" method="_on_character_got_hurt"]
|
||||
[connection signal="finished" from="CutsceneManager" to="." method="_on_cutscene_finished"]
|
||||
[connection signal="issued_command" from="CutsceneManager" to="." method="_on_cutscene_manager_issued_command"]
|
||||
[connection signal="issued_command" from="CutsceneManager" to="TextboxUI" method="_on_cutscene_command_issued"]
|
||||
[connection signal="issued_command" from="CutsceneManager" to="HiroAI" method="_on_cutscene_issued_command"]
|
||||
[connection signal="issued_command" from="CutsceneManager" to="CutsceneManager" method="_on_issued_command"]
|
||||
[connection signal="issued_command" from="CutsceneManager" to="MusicManager" method="_on_cutscene_issued_command"]
|
||||
[connection signal="started" from="CutsceneManager" to="." method="_on_cutscene_started"]
|
||||
[connection signal="attack_did_hit" from="ReedAI" to="HiroPlayer" method="_on_enemy_attack_did_hit"]
|
||||
[connection signal="defeated" from="ReedAI" to="." method="_on_ai_defeated"]
|
||||
[connection signal="attacked" from="ReedAI" to="SoundManager" method="_on_humanoid_character_attacked"]
|
||||
[connection signal="got_hurt" from="ReedAI" to="CanvasLayer/BattleUI" method="_on_enemy_got_hurt"]
|
||||
[connection signal="got_hurt" from="ReedAI" to="SoundManager" method="_on_character_got_hurt"]
|
||||
[connection signal="game_pause_toggled" from="GameState" to="PauseMenu" method="_on_game_pause_toggled"]
|
||||
[connection signal="game_pause_toggled" from="GameState" to="MusicManager" method="_on_game_pause_toggled"]
|
||||
[connection signal="game_pause_toggled" from="GameState" to="SoundManager" method="_on_game_pause_toggled"]
|
||||
|
|
Loading…
Reference in a new issue