Compare commits

..

No commits in common. "15cd409e0447e3a83e0f6ab8d92e8a687f8e2919" and "e723e0c022299d777367b2373770090803ce5acb" have entirely different histories.

62 changed files with 902 additions and 2043 deletions

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because it is too large Load Diff

View File

@ -1,58 +0,0 @@
[gd_resource type="AnimatedTexture" load_steps=18 format=3 uid="uid://2yoipvd107t1"]
[ext_resource type="Texture2D" uid="uid://chqekagriducf" path="res://assets/sprites/dope_explosion/explosion_01.png" id="1_d0hbp"]
[ext_resource type="Texture2D" uid="uid://djb4jup2y27wq" path="res://assets/sprites/dope_explosion/explosion_02.png" id="2_bjmaj"]
[ext_resource type="Texture2D" uid="uid://jevcsn483blb" path="res://assets/sprites/dope_explosion/explosion_11.png" id="3_21mo1"]
[ext_resource type="Texture2D" uid="uid://2rvfj0y7nebi" path="res://assets/sprites/dope_explosion/explosion_12.png" id="4_qthhk"]
[ext_resource type="Texture2D" uid="uid://dmd5ehswxcln" path="res://assets/sprites/dope_explosion/explosion_13.png" id="5_0684l"]
[ext_resource type="Texture2D" uid="uid://cdlqxt5nuhnh4" path="res://assets/sprites/dope_explosion/explosion_14.png" id="6_y6mm3"]
[ext_resource type="Texture2D" uid="uid://d8y1dfsg5bpn" path="res://assets/sprites/dope_explosion/explosion_15.png" id="7_4d5db"]
[ext_resource type="Texture2D" uid="uid://beq64w121e2qc" path="res://assets/sprites/dope_explosion/explosion_16.png" id="8_icpm3"]
[ext_resource type="Texture2D" uid="uid://cekhbr07t01y0" path="res://assets/sprites/dope_explosion/explosion_17.png" id="9_mv3mc"]
[ext_resource type="Texture2D" uid="uid://d1r2rxhg0ag4m" path="res://assets/sprites/dope_explosion/explosion_03.png" id="10_e4v3n"]
[ext_resource type="Texture2D" uid="uid://7b4mmhs7im5n" path="res://assets/sprites/dope_explosion/explosion_04.png" id="11_7y6m6"]
[ext_resource type="Texture2D" uid="uid://djgx3xsgidr0d" path="res://assets/sprites/dope_explosion/explosion_05.png" id="12_702rw"]
[ext_resource type="Texture2D" uid="uid://b5w0kigbqsnjd" path="res://assets/sprites/dope_explosion/explosion_06.png" id="13_orlo6"]
[ext_resource type="Texture2D" uid="uid://bwotlyctrl3vl" path="res://assets/sprites/dope_explosion/explosion_07.png" id="14_doi0c"]
[ext_resource type="Texture2D" uid="uid://b5jrnjaq065wu" path="res://assets/sprites/dope_explosion/explosion_08.png" id="15_8snwx"]
[ext_resource type="Texture2D" uid="uid://cw0whu63w450u" path="res://assets/sprites/dope_explosion/explosion_09.png" id="16_kbc1f"]
[ext_resource type="Texture2D" uid="uid://bj8isy502gjw6" path="res://assets/sprites/dope_explosion/explosion_10.png" id="17_ip4qp"]
[resource]
resource_local_to_scene = true
frames = 17
pause = true
frame_0/texture = ExtResource("1_d0hbp")
frame_0/duration = 0.1
frame_1/texture = ExtResource("2_bjmaj")
frame_1/duration = 0.1
frame_2/texture = ExtResource("10_e4v3n")
frame_2/duration = 0.1
frame_3/texture = ExtResource("11_7y6m6")
frame_3/duration = 0.1
frame_4/texture = ExtResource("12_702rw")
frame_4/duration = 0.1
frame_5/texture = ExtResource("13_orlo6")
frame_5/duration = 0.1
frame_6/texture = ExtResource("14_doi0c")
frame_6/duration = 0.1
frame_7/texture = ExtResource("15_8snwx")
frame_7/duration = 0.1
frame_8/texture = ExtResource("16_kbc1f")
frame_8/duration = 0.1
frame_9/texture = ExtResource("17_ip4qp")
frame_9/duration = 0.1
frame_10/texture = ExtResource("3_21mo1")
frame_10/duration = 0.1
frame_11/texture = ExtResource("4_qthhk")
frame_11/duration = 0.1
frame_12/texture = ExtResource("5_0684l")
frame_12/duration = 0.1
frame_13/texture = ExtResource("6_y6mm3")
frame_13/duration = 0.1
frame_14/texture = ExtResource("7_4d5db")
frame_14/duration = 0.1
frame_15/texture = ExtResource("8_icpm3")
frame_15/duration = 0.1
frame_16/texture = ExtResource("9_mv3mc")
frame_16/duration = 0.1

Binary file not shown.

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://chqekagriducf"
path.s3tc="res://.godot/imported/explosion_01.png-ea15c98c46d7ced9a98a3d938aafa3d6.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/sprites/dope_explosion/explosion_01.png"
dest_files=["res://.godot/imported/explosion_01.png-ea15c98c46d7ced9a98a3d938aafa3d6.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
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=0

Binary file not shown.

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://djb4jup2y27wq"
path.s3tc="res://.godot/imported/explosion_02.png-6bdf44084d88475de4755061ef9c774f.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/sprites/dope_explosion/explosion_02.png"
dest_files=["res://.godot/imported/explosion_02.png-6bdf44084d88475de4755061ef9c774f.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
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=0

Binary file not shown.

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d1r2rxhg0ag4m"
path.s3tc="res://.godot/imported/explosion_03.png-3741482b47d48f53c7163e411676c921.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/sprites/dope_explosion/explosion_03.png"
dest_files=["res://.godot/imported/explosion_03.png-3741482b47d48f53c7163e411676c921.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
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=0

Binary file not shown.

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://7b4mmhs7im5n"
path.s3tc="res://.godot/imported/explosion_04.png-29690fff39e4940b97828e9d3a7201c5.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/sprites/dope_explosion/explosion_04.png"
dest_files=["res://.godot/imported/explosion_04.png-29690fff39e4940b97828e9d3a7201c5.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
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=0

Binary file not shown.

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://djgx3xsgidr0d"
path.s3tc="res://.godot/imported/explosion_05.png-d7d4f42d242024b84d657d700a7397a3.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/sprites/dope_explosion/explosion_05.png"
dest_files=["res://.godot/imported/explosion_05.png-d7d4f42d242024b84d657d700a7397a3.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
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=0

Binary file not shown.

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b5w0kigbqsnjd"
path.s3tc="res://.godot/imported/explosion_06.png-31d0edf502b444bb0800a8140e9a9e34.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/sprites/dope_explosion/explosion_06.png"
dest_files=["res://.godot/imported/explosion_06.png-31d0edf502b444bb0800a8140e9a9e34.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
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=0

Binary file not shown.

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bwotlyctrl3vl"
path.s3tc="res://.godot/imported/explosion_07.png-2456b0502621a22c875dd250014514e0.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/sprites/dope_explosion/explosion_07.png"
dest_files=["res://.godot/imported/explosion_07.png-2456b0502621a22c875dd250014514e0.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
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=0

Binary file not shown.

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b5jrnjaq065wu"
path.s3tc="res://.godot/imported/explosion_08.png-103ad47e718348f9a399144a1f0bc1be.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/sprites/dope_explosion/explosion_08.png"
dest_files=["res://.godot/imported/explosion_08.png-103ad47e718348f9a399144a1f0bc1be.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
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=0

Binary file not shown.

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cw0whu63w450u"
path.s3tc="res://.godot/imported/explosion_09.png-3cbb649bbd414406620d278bd39066c9.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/sprites/dope_explosion/explosion_09.png"
dest_files=["res://.godot/imported/explosion_09.png-3cbb649bbd414406620d278bd39066c9.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
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=0

Binary file not shown.

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bj8isy502gjw6"
path.s3tc="res://.godot/imported/explosion_10.png-57fecff27a473611c5a8c1e26629554f.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/sprites/dope_explosion/explosion_10.png"
dest_files=["res://.godot/imported/explosion_10.png-57fecff27a473611c5a8c1e26629554f.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
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=0

Binary file not shown.

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://jevcsn483blb"
path.s3tc="res://.godot/imported/explosion_11.png-31268dcc8dd3fde767054c54543a85a0.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/sprites/dope_explosion/explosion_11.png"
dest_files=["res://.godot/imported/explosion_11.png-31268dcc8dd3fde767054c54543a85a0.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
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=0

Binary file not shown.

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://2rvfj0y7nebi"
path.s3tc="res://.godot/imported/explosion_12.png-17a5c2c7984eae5f9ce67d887299262b.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/sprites/dope_explosion/explosion_12.png"
dest_files=["res://.godot/imported/explosion_12.png-17a5c2c7984eae5f9ce67d887299262b.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
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=0

Binary file not shown.

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dmd5ehswxcln"
path.s3tc="res://.godot/imported/explosion_13.png-d47096656d64fa3031e82fbf818b2193.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/sprites/dope_explosion/explosion_13.png"
dest_files=["res://.godot/imported/explosion_13.png-d47096656d64fa3031e82fbf818b2193.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
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=0

Binary file not shown.

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cdlqxt5nuhnh4"
path.s3tc="res://.godot/imported/explosion_14.png-a88792680320ae6175944801610075e0.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/sprites/dope_explosion/explosion_14.png"
dest_files=["res://.godot/imported/explosion_14.png-a88792680320ae6175944801610075e0.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
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=0

Binary file not shown.

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d8y1dfsg5bpn"
path.s3tc="res://.godot/imported/explosion_15.png-f284e8ba353bc8d9357cc6cd40a570a5.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/sprites/dope_explosion/explosion_15.png"
dest_files=["res://.godot/imported/explosion_15.png-f284e8ba353bc8d9357cc6cd40a570a5.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
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=0

Binary file not shown.

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://beq64w121e2qc"
path.s3tc="res://.godot/imported/explosion_16.png-c103231805ba5f296cbaa36dd356c168.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/sprites/dope_explosion/explosion_16.png"
dest_files=["res://.godot/imported/explosion_16.png-c103231805ba5f296cbaa36dd356c168.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
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=0

Binary file not shown.

View File

@ -1,35 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cekhbr07t01y0"
path.s3tc="res://.godot/imported/explosion_17.png-cafb80a5021d1b819bf52a4094e32be5.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/sprites/dope_explosion/explosion_17.png"
dest_files=["res://.godot/imported/explosion_17.png-cafb80a5021d1b819bf52a4094e32be5.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
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=0

View File

@ -21,11 +21,6 @@ func hold_right(node: Node3D = null) -> void:
node.transform = Transform3D.IDENTITY
## Set this character's color. Implementation-dependent.
func set_color(color: Color) -> void:
pass
func reset() -> void:
animation_state.start("stand_to_idle")

View File

@ -1,16 +0,0 @@
extends CharacterController
const SHIRT_MAT := preload("res://assets/models/characters/gfolf_girl/Shirt.tres")
const SHIRT_SURFACE_ID := 0
const ARM_SURFACE_ID := 0
@onready var shirt: MeshInstance3D = $Armature/Skeleton3D/Shirt
@onready var arm: MeshInstance3D = $Armature/Skeleton3D/Arm_L
func set_color(color: Color) -> void:
var material: BaseMaterial3D = SHIRT_MAT.duplicate()
material.resource_local_to_scene = true
material.albedo_color = color
shirt.set_surface_override_material(SHIRT_SURFACE_ID, material)
arm.set_surface_override_material(ARM_SURFACE_ID, material)

View File

@ -1,7 +1,7 @@
[gd_scene load_steps=22 format=3 uid="uid://1s3gywmoi20e"]
[ext_resource type="PackedScene" uid="uid://ha6jxf4v5845" path="res://assets/models/characters/gfolf_girl/gfolf_girl.gltf" id="1_j80rr"]
[ext_resource type="Script" path="res://src/characters/player_characters/gfolf_girl/gfolf_girl.gd" id="2_y16an"]
[ext_resource type="Script" path="res://src/characters/player_characters/character_controller.gd" id="2_7o84v"]
[ext_resource type="Script" path="res://src/util/random_timer.gd" id="3_ex68g"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fokhu"]
@ -122,7 +122,7 @@ _data = {
}
[node name="GfolfGirl" instance=ExtResource("1_j80rr")]
script = ExtResource("2_y16an")
script = ExtResource("2_7o84v")
[node name="Armature" parent="." index="0"]
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0, 0)
@ -169,7 +169,7 @@ bones/23/scale = Vector3(1, 1, 1)
visible = false
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="Armature/Skeleton3D" index="6"]
transform = Transform3D(-0.0322548, -0.997872, -0.0566729, 0.999469, -0.0324597, 0.00269911, -0.00453275, -0.0565558, 0.998389, -2.5177, 5.22011, -0.51637)
transform = Transform3D(-0.0322545, -0.997872, -0.0566733, 0.99947, -0.0324594, 0.00269896, -0.00453261, -0.0565562, 0.998389, -2.5177, 5.22011, -0.516371)
bone_name = "Hand.R"
bone_idx = 11
@ -179,6 +179,7 @@ transform = Transform3D(0.934826, 0.266239, -0.23498, -0.336326, 0.876157, -0.34
[node name="ReferenceClub" type="MeshInstance3D" parent="Armature/Skeleton3D/BoneAttachment3D/RightHandGrip" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.205, 0)
visible = false
mesh = SubResource("BoxMesh_363n0")
skeleton = NodePath("../..")

View File

@ -44,9 +44,6 @@ const IRON_DAMPING := 9999.0
## Base damage inflicted on impact with a player
@export var base_damage := 15.0
## Scaling factor for additional force-based damage
@export var damage_force_scale := 0.01
var _last_contact_normal: Vector3 = Vector3.UP
var _position_on_last_wake: Vector3
var _awake := false
@ -67,11 +64,6 @@ func enter_water() -> void:
entered_water.emit()
func get_damage() -> float:
print("velocity: ", linear_velocity.length())
return base_damage + linear_velocity.length_squared() * damage_force_scale
func _total_terrain_angular_damping() -> float:
return _zones.reduce(
func(a: float, b: BallZone) -> float: return a + b.terrain_angular_damping, 0.0

View File

@ -1,4 +1,5 @@
[gd_resource type="PhysicsMaterial" format=3 uid="uid://3bih72l068ic"]
[resource]
friction = 0.8
bounce = 0.5

View File

@ -49,7 +49,6 @@ size = Vector2(0.4, 0.4)
[node name="PlasmaBall" instance=ExtResource("1_yh4fp")]
script = ExtResource("2_pdts3")
base_damage = 30.0
[node name="PlasmaFireEffect" type="GPUParticles3D" parent="BallMesh" index="0"]
amount = 20

View File

@ -1,21 +0,0 @@
[gd_resource type="Resource" script_class="WorldPlayer" load_steps=6 format=3 uid="uid://b5j0lmo4jayk4"]
[ext_resource type="Resource" uid="uid://c1pnqsddvey3m" path="res://src/equipment/clubs/drivers/debug_driver.tres" id="1_nb6c3"]
[ext_resource type="Resource" uid="uid://ck17u5yn6k0bi" path="res://src/equipment/clubs/irons/debug_iron.tres" id="2_0ti3p"]
[ext_resource type="Resource" uid="uid://dagld0q5krapu" path="res://src/equipment/clubs/putters/debug_putter.tres" id="3_274x5"]
[ext_resource type="Script" path="res://src/player/world_player.gd" id="4_vid1t"]
[ext_resource type="Resource" uid="uid://dthtc1no2c4wy" path="res://src/equipment/clubs/wedges/debug_wedge.tres" id="5_hfqcn"]
[resource]
script = ExtResource("4_vid1t")
life = 100.0
name = "Orange Gfolfer"
color = Color(1, 0.748, 0.44, 1)
driver = ExtResource("1_nb6c3")
iron = ExtResource("2_0ti3p")
wedge = ExtResource("5_hfqcn")
putter = ExtResource("3_274x5")
_balls = {
1: -1,
2: 5
}

View File

@ -10,7 +10,7 @@
script = ExtResource("4_8ybyj")
life = 100.0
name = "DEBUG Gfolfer"
color = Color(0.48, 1, 1, 1)
color = Color(1, 0.439216, 0.439216, 1)
driver = ExtResource("1_sn8fd")
iron = ExtResource("2_piku2")
wedge = ExtResource("5_wm4ae")

View File

@ -154,11 +154,8 @@ var _tracking_camera: OrbitalCamera
@onready var putt_ref: RayCast3D = %PuttRef
@onready var putt_arrow: Node3D = %PuttArrow
@onready var downswing_timer: Timer = %DownswingTimer
@onready var ball_return_timer: Timer = %BallReturnTimer
@onready var explosion_animation: AnimationPlayer = %ExplosionAnimation
@onready var camera_distance := zoom.position.z:
set = _set_camera_distance
@ -176,8 +173,6 @@ func _ready() -> void:
world.ui.add_player_hud(hud)
ball_type = initial_ball
club = initial_club
character.set_color(player.color)
_on_phase_change(phase)
func _set_camera_distance(value: float) -> void:
@ -246,14 +241,13 @@ func take_shot() -> void:
var impulse := get_shot_impulse(shot_power)
print_debug("Shot impulse: ", impulse, "; ", impulse.length(), " N*s")
# Curve the curve
var curve := shot_ref.global_basis.x.normalized() * shot_curve
# Position where the ball is hit (imparts spin)
var offset := curve * 0.001
print_debug("Shot offset: ", offset, "; ", offset.length(), " m")
# Rotate impulse
impulse = impulse.rotated(Vector3.UP, -shot_curve * CURVE_INFLUENCE * shot_power)
impulse = impulse.rotated(Vector3.UP, -shot_curve * CURVE_INFLUENCE)
if game_ball:
game_ball.iron_ball = club == Club.Type.IRON
@ -270,7 +264,6 @@ func _show_shot_projection() -> void:
if not game_ball:
return
shot_projection.putt_projection = club == Club.Type.PUTTER
shot_projection.initial_speed = 1
shot_projection.basis = shot_ref.basis.orthonormalized()
var shot_speed := get_shot_impulse(1.0).length() / game_ball.mass
@ -421,9 +414,10 @@ func _on_phase_change(new_phase: Phase) -> void:
hud.curve_bar.show()
hud.start_curve_bar()
Phase.DOWNSWING:
hud.gauge_flourish()
hud.power_bar.hide()
hud.curve_bar.hide()
character.downswing()
downswing_timer.start()
shot_animation.play("swing_delay") # calls `take_shot`
Phase.SHOT:
hud.power_bar.hide()
hud.curve_bar.hide()
@ -443,7 +437,6 @@ func _on_phase_change(new_phase: Phase) -> void:
Phase.FINISHED:
hud.power_bar.hide()
hud.curve_bar.hide()
hud.hide_hud()
finished.emit(self)
@ -583,12 +576,7 @@ func _on_ball_return_timer_timeout() -> void:
func _on_hitbox_ball_collision(ball: GameBall) -> void:
# TODO play animation
var damage := ball.get_damage()
player.life -= damage
game.viewport.hit_lag_big()
game.viewport.screen_shake(damage, 0.4)
explosion_animation.play("explode")
# TODO kinematic collisions
player.life -= ball.base_damage
## Create a new instance for the given player.

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=22 format=3 uid="uid://cy7t2tc4y3b4"]
[gd_scene load_steps=17 format=3 uid="uid://cy7t2tc4y3b4"]
[ext_resource type="Script" path="res://src/player/shot_setup/shot_setup.gd" id="1_r6ei4"]
[ext_resource type="Script" path="res://src/player/shot_setup/ball_point.gd" id="2_e6i3g"]
@ -7,7 +7,6 @@
[ext_resource type="PackedScene" uid="uid://fht6j87o8ecr" path="res://src/ui/3d/projectile_arc/projectile_arc.tscn" id="4_ry2ho"]
[ext_resource type="PackedScene" uid="uid://dbdul15c4oblg" path="res://src/ui/3d/projected_target.tscn" id="6_mynqj"]
[ext_resource type="Script" path="res://src/player/shot_setup/hitbox.gd" id="7_uh8kn"]
[ext_resource type="Texture2D" uid="uid://2yoipvd107t1" path="res://assets/sprites/dope_explosion/dope_explosion.tres" id="8_5ghmo"]
[sub_resource type="Animation" id="Animation_ug2a7"]
length = 0.001
@ -170,89 +169,35 @@ tracks/2/keys = {
}]
}
[sub_resource type="Animation" id="Animation_u8k07"]
resource_name = "swing_delay"
length = 0.0667
step = 0.01
tracks/0/type = "method"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("%Direction/..")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.0667),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"finish_downswing"
}]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_u78hq"]
_data = {
"RESET": SubResource("Animation_oks0y"),
"shoot": SubResource("Animation_e65hh")
"shoot": SubResource("Animation_e65hh"),
"swing_delay": SubResource("Animation_u8k07")
}
[sub_resource type="SphereShape3D" id="SphereShape3D_xvvdi"]
radius = 1.5
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4n2rd"]
transparency = 1
shading_mode = 0
albedo_texture = ExtResource("8_5ghmo")
texture_filter = 4
billboard_mode = 1
grow = true
grow_amount = 1.0
[sub_resource type="QuadMesh" id="QuadMesh_t34ji"]
material = SubResource("StandardMaterial3D_4n2rd")
size = Vector2(2.84, 4)
[sub_resource type="Animation" id="Animation_vahxw"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ExplosionMesh:mesh:material:albedo_texture:pause")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("ExplosionMesh:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_bv1ov"]
resource_name = "explode"
length = 1.618
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ExplosionMesh:mesh:material:albedo_texture:pause")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1.618),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [false, true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("ExplosionMesh:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 1.618),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_dg262"]
_data = {
"RESET": SubResource("Animation_vahxw"),
"explode": SubResource("Animation_bv1ov")
}
[node name="ShotSetup" type="Node3D"]
script = ExtResource("1_r6ei4")
@ -395,11 +340,6 @@ libraries = {
"": SubResource("AnimationLibrary_u78hq")
}
[node name="DownswingTimer" type="Timer" parent="."]
unique_name_in_owner = true
wait_time = 0.42
one_shot = true
[node name="BallReturnTimer" type="Timer" parent="."]
unique_name_in_owner = true
one_shot = true
@ -410,20 +350,7 @@ script = ExtResource("7_uh8kn")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hitbox"]
shape = SubResource("SphereShape3D_xvvdi")
[node name="ExplosionMesh" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
visible = false
mesh = SubResource("QuadMesh_t34ji")
[node name="ExplosionAnimation" type="AnimationPlayer" parent="ExplosionMesh"]
unique_name_in_owner = true
root_node = NodePath("../..")
libraries = {
"": SubResource("AnimationLibrary_dg262")
}
[connection signal="ball_changed" from="BallPoint" to="." method="_on_game_ball_changed"]
[connection signal="timeout" from="DownswingTimer" to="." method="finish_downswing"]
[connection signal="timeout" from="BallReturnTimer" to="." method="_on_ball_return_timer_timeout"]
[connection signal="ball_collision" from="Hitbox" to="." method="_on_hitbox_ball_collision"]
[connection signal="body_entered" from="Hitbox" to="Hitbox" method="_on_body_entered"]

View File

@ -1,9 +0,0 @@
shader_type canvas_item;
uniform vec4 flash_color: source_color = vec4(1.0);
void fragment() {
vec4 base_color = texture(TEXTURE, UV);
COLOR.rgb = mix(base_color.rgb, flash_color.rgb, flash_color.a);
COLOR.a = base_color.a;
}

View File

@ -3,11 +3,6 @@ class_name ProjectileArc extends Node3D
##
## If this node has any children, they will be positioned wherever the projection ends.
## Constant attrition factor for putting collisions
## The actual velocity attrition is dependent on lots of factors
#const PUTT_ATTRITION := 0.75 # rough?
const PUTT_ATTRITION := 0.8325 # green?
## Initial speed of the projectile, in m/s.
## The projectile's initial direction vector is the negative Z direction relative to this node.
@export var initial_speed := 1.0
@ -19,8 +14,6 @@ const PUTT_ATTRITION := 0.8325 # green?
@export var max_steps := 50
## Ticks between each projection update. 0 means update every tick.
@export var ticks_per_update := 0
## If enabled, project a linear putt instead of an arcing shot
@export var putt_projection := false
@export_category("Collision")
## Enables collision checking. Projection will end at the point where a collision is detected.
@ -34,16 +27,12 @@ const PUTT_ATTRITION := 0.8325 # green?
var _tick_counter := 0
var _debug_points: Array[Vector3] = []
@onready var polygon: CSGPolygon3D = %Polygon
@onready var path: Path3D = %Path
@onready var gravity: float = ProjectSettings.get_setting("physics/3d/default_gravity")
@onready var gravity_vec: Vector3 = ProjectSettings.get_setting("physics/3d/default_gravity_vector")
@onready var debug_draw: Control = %DebugDraw
func _process(_delta: float) -> void:
if not visible:
@ -56,8 +45,6 @@ func _process(_delta: float) -> void:
return
_tick_counter = ticks_per_update
_debug_points = []
# Rebuild path curve
path.global_basis = Basis.IDENTITY
path.curve.clear_points()
@ -85,15 +72,10 @@ func _process(_delta: float) -> void:
var collision := space.intersect_ray(ray_params)
if collision:
# Set current position to collision point, so it will be added to the path
# TODO: we could project further using the surface normal here...
pos = collision["position"]
_debug_points.append(pos)
if putt_projection:
var norm: Vector3 = (collision["normal"] as Vector3).normalized()
next_pos = pos + norm * 0.05
vel = PUTT_ATTRITION * (vel - 2 * norm * vel.dot(norm))
else:
# End projection!
break
# End projection!
break
pos = next_pos
@ -107,8 +89,6 @@ func _process(_delta: float) -> void:
node_3d.global_position = pos
node_3d.global_basis = Basis.IDENTITY
(%DebugDraw as CanvasItem).queue_redraw()
func _on_visibility_changed() -> void:
# Force update as soon as visible

View File

@ -1,9 +1,9 @@
[gd_scene load_steps=10 format=3 uid="uid://fht6j87o8ecr"]
[gd_scene load_steps=9 format=3 uid="uid://fht6j87o8ecr"]
[ext_resource type="Script" path="res://src/ui/3d/projectile_arc/projectile_arc.gd" id="1_vafqi"]
[ext_resource type="Shader" path="res://src/shaders/plasma.gdshader" id="2_pi36v"]
[sub_resource type="Curve3D" id="Curve3D_sj0rs"]
[sub_resource type="Curve3D" id="Curve3D_rfv3d"]
[sub_resource type="Gradient" id="Gradient_28hbf"]
offsets = PackedFloat32Array(0, 0.37193, 0.838596, 1)
@ -34,31 +34,12 @@ shader_parameter/pulse_speed = 0.3
shader_parameter/wave_gradient = SubResource("GradientTexture1D_l8ond")
shader_parameter/pulse_gradient = SubResource("GradientTexture1D_8xhfy")
[sub_resource type="GDScript" id="GDScript_hbqgy"]
script/source = "extends Control
const COLOR := Color(0, 1, 0)
const WIDTH := 4
const RADIUS := 16
@onready var root: ProjectileArc = owner
func _draw() -> void:
if not visible:
return
var camera := get_viewport().get_camera_3d()
for p: Vector3 in root._debug_points:
var pos := camera.unproject_position(p)
draw_circle(pos, RADIUS, COLOR, false, WIDTH, true)
"
[node name="ProjectileArc" type="Node3D"]
script = ExtResource("1_vafqi")
[node name="Path" type="Path3D" parent="."]
unique_name_in_owner = true
curve = SubResource("Curve3D_sj0rs")
curve = SubResource("Curve3D_rfv3d")
[node name="Polygon" type="CSGPolygon3D" parent="Path"]
unique_name_in_owner = true
@ -75,13 +56,4 @@ path_u_distance = 1.0
path_joined = false
material = SubResource("ShaderMaterial_ahf42")
[node name="DebugDraw" type="Control" parent="."]
unique_name_in_owner = true
visible = false
layout_mode = 3
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
script = SubResource("GDScript_hbqgy")
[connection signal="visibility_changed" from="." to="." method="_on_visibility_changed"]

View File

@ -3,39 +3,15 @@ class_name Arc extends Control
const BASE_POINTS := 64
@export_range(-360, 360, 0.001, "radians") var arc_start := 0.1:
set(value):
arc_start = value
queue_redraw()
@export_range(-360, 360, 0.001, "radians") var arc_end := TAU:
set(value):
arc_end = value
queue_redraw()
@export var width := 1.0:
set(value):
width = value
queue_redraw()
@export var antialiased := true:
set(value):
antialiased = value
queue_redraw()
@export var color: Color:
set(value):
color = value
queue_redraw()
@export var gap_angle := 0.1
@export var width := 1.0
@export var antialiased := true
@export var color: Color
func _draw() -> void:
var radius: float = minf(size.x, size.y) / 2.0
var width_buffer: float = floor(width / 2.0)
var point_count: int = int(BASE_POINTS * (arc_end - arc_start) / TAU)
var point_count: int = int(BASE_POINTS * (TAU - gap_angle) / TAU)
draw_arc(
Vector2(radius, radius),
radius - width_buffer,
arc_start,
arc_end,
point_count,
color,
width,
antialiased
Vector2(radius, radius), radius, gap_angle, TAU, point_count, color, width, antialiased
)

View File

@ -68,7 +68,7 @@ grow_horizontal = 2
grow_vertical = 2
pivot_offset = Vector2(300, 300)
script = ExtResource("2_vijl7")
arc_start = 0.610865
gap_angle = 0.6
width = 36.0
color = Color(0, 0, 0, 0.392157)

View File

@ -1,31 +0,0 @@
@tool
class_name CurveBar extends Control
## Swinging arc used to set the curve of a shot.
const PIVOT_SCALE := -PI / 4
@export var gradient: Gradient:
set(value):
if gradient_tex:
gradient_tex.gradient = value
gradient = value
@export var value: float:
set(v):
if pivot:
pivot.rotation = v * PIVOT_SCALE
get:
return pivot.rotation / PIVOT_SCALE if pivot else 0
@onready var pivot: Control = %Pivot
@onready var gradient_fill: TextureRect = %GradientFill
@onready var gradient_tex: GradientTexture2D = gradient_fill.texture
@onready var animation_player: AnimationPlayer = $Reticle/AnimationPlayer
func _ready() -> void:
gradient = gradient
func flourish() -> void:
animation_player.play("flourish")

View File

@ -1,184 +0,0 @@
[gd_scene load_steps=9 format=3 uid="uid://mm02j126jo1h"]
[ext_resource type="Script" path="res://src/ui/shot_hud/curve_bar/curve_bar.gd" id="1_aqvdi"]
[ext_resource type="Gradient" uid="uid://k7867gxaxx57" path="res://src/ui/shot_hud/curve_bar/one_sided_gradient.tres" id="2_f3fom"]
[ext_resource type="Texture2D" uid="uid://du3vk5nnksohs" path="res://assets/sprites/particles/sparkle.png" id="3_2tv33"]
[ext_resource type="Script" path="res://src/ui/decorations/arc.gd" id="4_s2bpl"]
[sub_resource type="GradientTexture2D" id="GradientTexture2D_o88ik"]
gradient = ExtResource("2_f3fom")
width = 128
height = 128
fill = 1
fill_from = Vector2(0.5, 0.02)
fill_to = Vector2(0.5, 0.37)
metadata/_snap_enabled = true
[sub_resource type="Animation" id="Animation_kfg2n"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Reticle:rotation")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Reticle:scale")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Pivot/ArcBG:color")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(0.0352941, 0.0784314, 0.160784, 0.784314)]
}
[sub_resource type="Animation" id="Animation_pt3no"]
resource_name = "flourish"
length = 0.42
step = 0.01
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Reticle:rotation")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.42),
"transitions": PackedFloat32Array(1.618, 1),
"update": 0,
"values": [0.0, 6.28319]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Reticle:scale")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.0333333, 0.2, 0.42),
"transitions": PackedFloat32Array(1, 1.618, 1.618, 1),
"update": 0,
"values": [Vector2(1, 1), Vector2(0.6, 0.6), Vector2(2, 2), Vector2(1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Pivot/ArcBG:color")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.105, 0.21, 0.315, 0.42),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [Color(0.0352941, 0.0784314, 0.160784, 0.784314), Color(1, 1, 1, 1), Color(0.0352941, 0.0784314, 0.160784, 0.784314), Color(1, 1, 1, 1), Color(0.0352941, 0.0784314, 0.160784, 0.784314)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_eqkfk"]
_data = {
"RESET": SubResource("Animation_kfg2n"),
"flourish": SubResource("Animation_pt3no")
}
[node name="CurveBar" type="Control"]
layout_mode = 3
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_aqvdi")
gradient = ExtResource("2_f3fom")
[node name="Pivot" type="Control" parent="."]
unique_name_in_owner = true
show_behind_parent = true
texture_filter = 6
custom_minimum_size = Vector2(600, 600)
anchors_preset = 0
offset_left = -300.0
offset_top = -32.0
offset_right = 300.0
offset_bottom = 568.0
pivot_offset = Vector2(300, 300)
[node name="ArcBG" type="Control" parent="Pivot"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("4_s2bpl")
arc_start = -2.35619
arc_end = -0.785398
width = 32.0
color = Color(0.0352941, 0.0784314, 0.160784, 0.784314)
[node name="MarginContainer" type="MarginContainer" parent="Pivot"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 3
theme_override_constants/margin_top = 3
theme_override_constants/margin_right = 3
theme_override_constants/margin_bottom = 3
[node name="ArcFill" type="Control" parent="Pivot/MarginContainer"]
clip_children = 1
layout_mode = 2
script = ExtResource("4_s2bpl")
arc_start = -2.35619
arc_end = -0.785398
width = 26.0
[node name="GradientFill" type="TextureRect" parent="Pivot/MarginContainer/ArcFill"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture2D_o88ik")
[node name="Reticle" type="TextureRect" parent="."]
texture_filter = 1
layout_mode = 0
offset_left = -20.0
offset_top = -20.0
offset_right = 20.0
offset_bottom = 20.0
pivot_offset = Vector2(20, 20)
texture = ExtResource("3_2tv33")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Reticle"]
root_node = NodePath("../..")
libraries = {
"": SubResource("AnimationLibrary_eqkfk")
}

View File

@ -1,6 +0,0 @@
[gd_resource type="Gradient" format=3 uid="uid://k7867gxaxx57"]
[resource]
interpolation_color_space = 2
offsets = PackedFloat32Array(0, 0.25, 0.5, 0.75, 1)
colors = PackedColorArray(1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0)

View File

@ -1,6 +0,0 @@
[gd_resource type="Gradient" format=3 uid="uid://3achrua4vnny"]
[resource]
interpolation_color_space = 2
offsets = PackedFloat32Array(0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1)
colors = PackedColorArray(1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0)

View File

@ -9,7 +9,7 @@ const LIFE_BAR_DAMAGE_RUMBLE_TIME := 0.2
var player: WorldPlayer
@onready var power_bar: TextureProgressBar = %PowerBar
@onready var curve_bar: CurveBar = %CurveBar
@onready var curve_bar: ProgressBar = %CurveBar
@onready var life_bar: TextureProgressBar = %LifeBar
@onready var club_selector: ClubSelector = %ClubSelector
@ -81,10 +81,6 @@ func reset_curve_bar() -> void:
_curve_animation.stop()
func gauge_flourish() -> void:
curve_bar.flourish()
func play_nice_animation() -> void:
_nice_animation.play("display")
@ -115,8 +111,8 @@ func set_life_value(new_value: float) -> void:
life_bar.value = new_value
static func create(_player: WorldPlayer) -> ShotHUD:
static func create(player: WorldPlayer) -> ShotHUD:
var instance: ShotHUD = scene.instantiate()
instance.player = _player
instance.player = player
return instance

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=35 format=3 uid="uid://c4ifdiohng830"]
[gd_scene load_steps=34 format=3 uid="uid://c4ifdiohng830"]
[ext_resource type="Script" path="res://src/ui/shot_hud/shot_hud.gd" id="1_x5b4c"]
[ext_resource type="Shader" path="res://src/shaders/canvas_retro.gdshader" id="1_ybxxp"]
@ -7,7 +7,6 @@
[ext_resource type="Texture2D" uid="uid://b5812y3pmmgg5" path="res://assets/ui/gauge_patch.png" id="4_5kcpe"]
[ext_resource type="Texture2D" uid="uid://76fjx2ukavqe" path="res://assets/ui/power_gauge_fill.png" id="5_3i1yq"]
[ext_resource type="Texture2D" uid="uid://4a8tvjgwegv3" path="res://assets/ui/power_gauge_tab.png" id="6_sw48q"]
[ext_resource type="PackedScene" uid="uid://mm02j126jo1h" path="res://src/ui/shot_hud/curve_bar/curve_bar.tscn" id="7_kqi7w"]
[ext_resource type="PackedScene" uid="uid://b0yr0w0xv8cm5" path="res://src/ui/shot_hud/ball_selector/ball_selector.tscn" id="8_b2302"]
[ext_resource type="FontFile" uid="uid://dsa0oh7c0h4pu" path="res://assets/fonts/Racing_Sans_One/RacingSansOne-Regular.ttf" id="8_bejx4"]
[ext_resource type="Texture2D" uid="uid://tancoet1lih5" path="res://assets/ui/ball_icons/basic_icon.png" id="8_tt8i3"]
@ -671,6 +670,7 @@ script = ExtResource("3_6groq")
[node name="PowerBar" type="TextureProgressBar" parent="ShotGauges/PowerGauge/Rumbler"]
unique_name_in_owner = true
visible = false
texture_filter = 5
custom_minimum_size = Vector2(64, 0)
layout_mode = 1
@ -718,9 +718,19 @@ grow_horizontal = 2
grow_vertical = 2
mouse_filter = 1
[node name="CurveBar" parent="ShotGauges/CurveGauge" instance=ExtResource("7_kqi7w")]
[node name="CurveBar" type="ProgressBar" parent="ShotGauges/CurveGauge"]
unique_name_in_owner = true
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -13.5
offset_bottom = 13.5
grow_horizontal = 2
grow_vertical = 2
min_value = -1.0
max_value = 1.0
[node name="CurveAnimation" type="AnimationPlayer" parent="ShotGauges/CurveGauge"]
unique_name_in_owner = true

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=9 format=3 uid="uid://cwnwcd8kushl3"]
[gd_scene load_steps=8 format=3 uid="uid://cwnwcd8kushl3"]
[ext_resource type="Script" path="res://src/world/world.gd" id="1_ybjyx"]
[ext_resource type="PackedScene" uid="uid://bm2o3mex10v11" path="res://levels/debug_level/debug_level.tscn" id="2_0xu5a"]
@ -6,11 +6,10 @@
[ext_resource type="Script" path="res://src/ui/world_ui.gd" id="2_imewa"]
[ext_resource type="Resource" uid="uid://crock3revdn73" path="res://src/player/debug_player.tres" id="3_pyw81"]
[ext_resource type="Script" path="res://src/world/play_manager/round_robin_manager.gd" id="5_h6mje"]
[ext_resource type="Resource" uid="uid://b5j0lmo4jayk4" path="res://src/player/debug_orange.tres" id="5_ym50e"]
[sub_resource type="Resource" id="Resource_rdjhi"]
script = ExtResource("5_h6mje")
players = Array[ExtResource("2_e743i")]([ExtResource("3_pyw81"), ExtResource("5_ym50e")])
players = Array[ExtResource("2_e743i")]([ExtResource("3_pyw81")])
[node name="World" type="Node" groups=["WorldGroup"]]
script = ExtResource("1_ybjyx")