generated from krampus/template-godot4
Compare commits
2 Commits
37edad916b
...
967db4a303
Author | SHA1 | Date |
---|---|---|
Rob Kelly | 967db4a303 | |
Rob Kelly | 45c8194bbd |
|
@ -126,3 +126,11 @@ Asset credits
|
||||||
*** Author: soneproject
|
*** Author: soneproject
|
||||||
|
|
||||||
*** License: CC BY 3.0
|
*** License: CC BY 3.0
|
||||||
|
|
||||||
|
** heal.wav
|
||||||
|
|
||||||
|
*** Retrieved from https://freesound.org/people/lulyc/sounds/346116/
|
||||||
|
|
||||||
|
*** Author: lulyc
|
||||||
|
|
||||||
|
*** License CC0
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dboi03l4xicib"
|
||||||
|
path="res://.godot/imported/Soda.png-de28f19d7b13e19defdbdcc490a1e11e.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/models/items/soda/Soda.png"
|
||||||
|
dest_files=["res://.godot/imported/Soda.png-de28f19d7b13e19defdbdcc490a1e11e.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=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.
|
@ -0,0 +1,138 @@
|
||||||
|
{
|
||||||
|
"asset":{
|
||||||
|
"generator":"Khronos glTF Blender I/O v4.2.60",
|
||||||
|
"version":"2.0"
|
||||||
|
},
|
||||||
|
"scene":0,
|
||||||
|
"scenes":[
|
||||||
|
{
|
||||||
|
"name":"Scene",
|
||||||
|
"nodes":[
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nodes":[
|
||||||
|
{
|
||||||
|
"mesh":0,
|
||||||
|
"name":"Soda"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"materials":[
|
||||||
|
{
|
||||||
|
"alphaMode":"BLEND",
|
||||||
|
"doubleSided":true,
|
||||||
|
"name":"Soda",
|
||||||
|
"pbrMetallicRoughness":{
|
||||||
|
"baseColorTexture":{
|
||||||
|
"index":0
|
||||||
|
},
|
||||||
|
"metallicFactor":0,
|
||||||
|
"roughnessFactor":0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"meshes":[
|
||||||
|
{
|
||||||
|
"name":"Cylinder",
|
||||||
|
"primitives":[
|
||||||
|
{
|
||||||
|
"attributes":{
|
||||||
|
"POSITION":0,
|
||||||
|
"NORMAL":1,
|
||||||
|
"TEXCOORD_0":2
|
||||||
|
},
|
||||||
|
"indices":3,
|
||||||
|
"material":0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"textures":[
|
||||||
|
{
|
||||||
|
"sampler":0,
|
||||||
|
"source":0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"images":[
|
||||||
|
{
|
||||||
|
"mimeType":"image/png",
|
||||||
|
"name":"Soda",
|
||||||
|
"uri":"Soda.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"accessors":[
|
||||||
|
{
|
||||||
|
"bufferView":0,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":42,
|
||||||
|
"max":[
|
||||||
|
0.19498558342456818,
|
||||||
|
0.25,
|
||||||
|
0.18019376695156097
|
||||||
|
],
|
||||||
|
"min":[
|
||||||
|
-0.19498558342456818,
|
||||||
|
-0.25,
|
||||||
|
-0.20000000298023224
|
||||||
|
],
|
||||||
|
"type":"VEC3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":1,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":42,
|
||||||
|
"type":"VEC3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":2,
|
||||||
|
"componentType":5126,
|
||||||
|
"count":42,
|
||||||
|
"type":"VEC2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bufferView":3,
|
||||||
|
"componentType":5123,
|
||||||
|
"count":72,
|
||||||
|
"type":"SCALAR"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"bufferViews":[
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":504,
|
||||||
|
"byteOffset":0,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":504,
|
||||||
|
"byteOffset":504,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":336,
|
||||||
|
"byteOffset":1008,
|
||||||
|
"target":34962
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"buffer":0,
|
||||||
|
"byteLength":144,
|
||||||
|
"byteOffset":1344,
|
||||||
|
"target":34963
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"samplers":[
|
||||||
|
{
|
||||||
|
"magFilter":9728,
|
||||||
|
"minFilter":9984
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"buffers":[
|
||||||
|
{
|
||||||
|
"byteLength":1488,
|
||||||
|
"uri":"soda.bin"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://sr234l6v26ta"
|
||||||
|
path="res://.godot/imported/soda.gltf-2170d63a99b0c523c4e3c0057027d256.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/models/items/soda/soda.gltf"
|
||||||
|
dest_files=["res://.godot/imported/soda.gltf-2170d63a99b0c523c4e3c0057027d256.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type=""
|
||||||
|
nodes/root_name=""
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
nodes/import_as_skeleton_bones=false
|
||||||
|
meshes/ensure_tangents=true
|
||||||
|
meshes/generate_lods=true
|
||||||
|
meshes/create_shadow_meshes=true
|
||||||
|
meshes/light_baking=1
|
||||||
|
meshes/lightmap_texel_size=0.2
|
||||||
|
meshes/force_disable_compression=false
|
||||||
|
skins/use_named_skins=true
|
||||||
|
animation/import=true
|
||||||
|
animation/fps=30
|
||||||
|
animation/trimming=false
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
_subresources={}
|
||||||
|
gltf/naming_version=1
|
||||||
|
gltf/embedded_image_handling=1
|
Binary file not shown.
|
@ -0,0 +1,24 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://csbrinugqepk3"
|
||||||
|
path="res://.godot/imported/heal.wav-f1b0fa8bf42c414c0e735c123bc00fea.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sound/sfx/player/heal.wav"
|
||||||
|
dest_files=["res://.godot/imported/heal.wav-f1b0fa8bf42c414c0e735c123bc00fea.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
|
Binary file not shown.
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://y07v10c8r1s6"
|
||||||
|
path="res://.godot/imported/health.png-c53c1eca35551099e5d2579b37f41427.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/sprites/particles/health.png"
|
||||||
|
dest_files=["res://.godot/imported/health.png-c53c1eca35551099e5d2579b37f41427.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=65 format=3 uid="uid://bm2o3mex10v11"]
|
[gd_scene load_steps=66 format=3 uid="uid://bm2o3mex10v11"]
|
||||||
|
|
||||||
[ext_resource type="Terrain3DAssets" uid="uid://cwl34gstabgrx" path="res://levels/debug_level/terrain_assets.res" id="1_5smdk"]
|
[ext_resource type="Terrain3DAssets" uid="uid://cwl34gstabgrx" path="res://levels/debug_level/terrain_assets.res" id="1_5smdk"]
|
||||||
[ext_resource type="Shader" path="res://src/shaders/psx_water.gdshader" id="6_0efu4"]
|
[ext_resource type="Shader" path="res://src/shaders/psx_water.gdshader" id="6_0efu4"]
|
||||||
|
@ -8,6 +8,7 @@
|
||||||
[ext_resource type="Script" path="res://src/world/ball_zone/ball_zone.gd" id="9_jwlau"]
|
[ext_resource type="Script" path="res://src/world/ball_zone/ball_zone.gd" id="9_jwlau"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dagh38vap4t1d" path="res://src/props/scenery/city/concrete_building_1.tscn" id="10_lf15j"]
|
[ext_resource type="PackedScene" uid="uid://dagh38vap4t1d" path="res://src/props/scenery/city/concrete_building_1.tscn" id="10_lf15j"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cjubxs7peir5k" path="res://src/props/scenery/city/kana_signboard.tscn" id="11_evxup"]
|
[ext_resource type="PackedScene" uid="uid://cjubxs7peir5k" path="res://src/props/scenery/city/kana_signboard.tscn" id="11_evxup"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://1ud01tasevho" path="res://src/items/health/health_item.tscn" id="12_jiuxh"]
|
||||||
[ext_resource type="PackedScene" uid="uid://di7aql54lksn7" path="res://src/props/scenery/trees/palm_tree/palm_tree.tscn" id="12_sswxf"]
|
[ext_resource type="PackedScene" uid="uid://di7aql54lksn7" path="res://src/props/scenery/trees/palm_tree/palm_tree.tscn" id="12_sswxf"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cjne55s85x7jy" path="res://src/items/extra_ball/brick_item.tscn" id="12_tj0lh"]
|
[ext_resource type="PackedScene" uid="uid://cjne55s85x7jy" path="res://src/items/extra_ball/brick_item.tscn" id="12_tj0lh"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c7l58wuuahn7w" path="res://src/props/flag/flag.tscn" id="13_6jtao"]
|
[ext_resource type="PackedScene" uid="uid://c7l58wuuahn7w" path="res://src/props/flag/flag.tscn" id="13_6jtao"]
|
||||||
|
@ -395,6 +396,14 @@ amount = 5
|
||||||
spawn_on_ready = true
|
spawn_on_ready = true
|
||||||
spawn_turns = 1
|
spawn_turns = 1
|
||||||
|
|
||||||
|
[node name="HealthSpawner" type="Marker3D" parent="Course/TestSpawners"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.651, 1, 7.92)
|
||||||
|
script = ExtResource("8_5kaye")
|
||||||
|
item = ExtResource("12_jiuxh")
|
||||||
|
amount = 25
|
||||||
|
spawn_on_ready = true
|
||||||
|
spawn_turns = 1
|
||||||
|
|
||||||
[node name="PlayerSpawn1" type="Marker3D" parent="Course" groups=["PlayerSpawn"]]
|
[node name="PlayerSpawn1" type="Marker3D" parent="Course" groups=["PlayerSpawn"]]
|
||||||
transform = Transform3D(-0.842697, 0, -0.538388, 0, 1, 0, 0.538388, 0, -0.842697, 212.717, 4, 294.073)
|
transform = Transform3D(-0.842697, 0, -0.538388, 0, 1, 0, 0.538388, 0, -0.842697, 212.717, 4, 294.073)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
extends Item
|
||||||
|
## Item which restores life when picked up.
|
||||||
|
|
||||||
|
|
||||||
|
func _collect(player: WorldPlayer) -> void:
|
||||||
|
player.heal(amount)
|
||||||
|
|
||||||
|
player.shot_setup.hud.peek_life_bar()
|
||||||
|
player.shot_setup.hud.life_particles.emit_spatial(amount, global_position)
|
|
@ -0,0 +1,25 @@
|
||||||
|
[gd_scene load_steps=6 format=3 uid="uid://1ud01tasevho"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://comd88yp45mnb" path="res://src/items/item/item.tscn" id="1_bb232"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://sr234l6v26ta" path="res://assets/models/items/soda/soda.gltf" id="2_bsxys"]
|
||||||
|
[ext_resource type="Script" path="res://src/items/health/health_item.gd" id="2_rwv0k"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dboi03l4xicib" path="res://assets/models/items/soda/Soda.png" id="3_7jrce"]
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6ujhj"]
|
||||||
|
albedo_texture = ExtResource("3_7jrce")
|
||||||
|
texture_filter = 2
|
||||||
|
|
||||||
|
[node name="HealthItem" instance=ExtResource("1_bb232")]
|
||||||
|
script = ExtResource("2_rwv0k")
|
||||||
|
|
||||||
|
[node name="Pivot" parent="Pivot/Octahedron/ItemMeshContainer" index="0"]
|
||||||
|
transform = Transform3D(0.99863, 0.052336, 0, -0.052336, 0.99863, 0, 0, 0, 1, 0, 0, 0)
|
||||||
|
|
||||||
|
[node name="soda" parent="Pivot/Octahedron/ItemMeshContainer/Pivot" index="1" instance=ExtResource("2_bsxys")]
|
||||||
|
transform = Transform3D(1.15911, -0.310583, 0, 0.3, 1.11962, 0.310583, -0.0803848, -0.3, 1.15911, 0, 0, 0)
|
||||||
|
|
||||||
|
[node name="Soda" parent="Pivot/Octahedron/ItemMeshContainer/Pivot/soda" index="0"]
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_6ujhj")
|
||||||
|
|
||||||
|
[editable path="Pivot/Octahedron"]
|
||||||
|
[editable path="Pivot/Octahedron/ItemMeshContainer/Pivot/soda"]
|
|
@ -5,7 +5,9 @@ signal on_life_changed(new_value: float)
|
||||||
signal on_balls_changed(type: GameBall.Type, new_value: int)
|
signal on_balls_changed(type: GameBall.Type, new_value: int)
|
||||||
signal on_death(player: WorldPlayer)
|
signal on_death(player: WorldPlayer)
|
||||||
|
|
||||||
@export_range(0, 100) var life: float = 100.0:
|
const MAX_LIFE := 100.0
|
||||||
|
|
||||||
|
@export_range(0, MAX_LIFE) var life: float = MAX_LIFE:
|
||||||
set(value):
|
set(value):
|
||||||
if value != life:
|
if value != life:
|
||||||
life = value
|
life = value
|
||||||
|
@ -89,6 +91,12 @@ func prev_ball(type: GameBall.Type) -> GameBall.Type:
|
||||||
return keys[j]
|
return keys[j]
|
||||||
|
|
||||||
|
|
||||||
|
## Restore life up to the MAX_LIFE cap.
|
||||||
|
## If the player's life is greater than or equal to MAX_LIFE, they will not be healed.
|
||||||
|
func heal(amount: float) -> void:
|
||||||
|
life += minf(amount, maxf(MAX_LIFE - life, 0))
|
||||||
|
|
||||||
|
|
||||||
func die() -> void:
|
func die() -> void:
|
||||||
on_death.emit(self)
|
on_death.emit(self)
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,8 @@ func emit_at_location(_amount: int, source_location: Vector2) -> void:
|
||||||
|
|
||||||
## Emit the given number of particles from the screen location of the given point in 3D space.
|
## Emit the given number of particles from the screen location of the given point in 3D space.
|
||||||
func emit_spatial(_amount: int, source_location: Vector3) -> void:
|
func emit_spatial(_amount: int, source_location: Vector3) -> void:
|
||||||
var screen_location := get_viewport().get_camera_3d().unproject_position(source_location)
|
var screen_location := (
|
||||||
|
get_viewport().get_camera_3d().unproject_position(source_location) - global_position
|
||||||
|
)
|
||||||
# TODO: what to do if this is outside the viewport?
|
# TODO: what to do if this is outside the viewport?
|
||||||
emit_at_location(_amount, screen_location)
|
emit_at_location(_amount, screen_location)
|
||||||
|
|
|
@ -7,12 +7,18 @@ const NICE_ALERT_SCENE := preload("res://src/ui/shot_hud/nice_alert.tscn")
|
||||||
const LIFE_BAR_DAMAGE_RUMBLE_SCALE := 0.2
|
const LIFE_BAR_DAMAGE_RUMBLE_SCALE := 0.2
|
||||||
## Time it takes to dampen the life bar rumble on taking damage, in seconds
|
## Time it takes to dampen the life bar rumble on taking damage, in seconds
|
||||||
const LIFE_BAR_DAMAGE_RUMBLE_TIME := 0.2
|
const LIFE_BAR_DAMAGE_RUMBLE_TIME := 0.2
|
||||||
|
## Time from restoring health to starting to fill the life bar, in seconds
|
||||||
|
const LIFE_BAR_HEAL_DELAY := 0.8
|
||||||
|
## Time it takes the life bar to fill when restoring life, in seconds
|
||||||
|
const LIFE_BAR_HEAL_TIME := 1.0
|
||||||
|
|
||||||
var player: WorldPlayer
|
var player: WorldPlayer
|
||||||
|
|
||||||
@onready var power_bar: TextureProgressBar = %PowerBar
|
@onready var power_bar: TextureProgressBar = %PowerBar
|
||||||
@onready var curve_bar: CurveBar = %CurveBar
|
@onready var curve_bar: CurveBar = %CurveBar
|
||||||
|
|
||||||
@onready var life_bar: TextureProgressBar = %LifeBar
|
@onready var life_bar: TextureProgressBar = %LifeBar
|
||||||
|
@onready var life_particles: HUDParticles = %LifeParticles
|
||||||
|
|
||||||
@onready var club_selector: ClubSelector = %ClubSelector
|
@onready var club_selector: ClubSelector = %ClubSelector
|
||||||
@onready var ball_selector: BallSelector = %BallSelector
|
@onready var ball_selector: BallSelector = %BallSelector
|
||||||
|
@ -33,6 +39,8 @@ var player: WorldPlayer
|
||||||
|
|
||||||
@onready var _life_bar_rumbler: Rumbler = %LifeBarRumbler
|
@onready var _life_bar_rumbler: Rumbler = %LifeBarRumbler
|
||||||
|
|
||||||
|
@onready var _heal_sfx: AudioStreamPlayer = %HealSFX
|
||||||
|
|
||||||
static var scene: PackedScene = preload("res://src/ui/shot_hud/shot_hud.tscn")
|
static var scene: PackedScene = preload("res://src/ui/shot_hud/shot_hud.tscn")
|
||||||
|
|
||||||
|
|
||||||
|
@ -125,11 +133,15 @@ func set_life_value(new_value: float) -> void:
|
||||||
. tween_property(_life_bar_rumbler, "intensity", 0, LIFE_BAR_DAMAGE_RUMBLE_TIME)
|
. tween_property(_life_bar_rumbler, "intensity", 0, LIFE_BAR_DAMAGE_RUMBLE_TIME)
|
||||||
. set_trans(Tween.TRANS_CUBIC)
|
. set_trans(Tween.TRANS_CUBIC)
|
||||||
)
|
)
|
||||||
|
life_bar.value = new_value
|
||||||
elif difference > 0:
|
elif difference > 0:
|
||||||
# Restoring health
|
# Restoring health
|
||||||
# TODO: something for this?
|
var tween := get_tree().create_tween()
|
||||||
pass
|
tween.tween_interval(LIFE_BAR_HEAL_DELAY)
|
||||||
life_bar.value = new_value
|
tween.tween_callback(_heal_sfx.play)
|
||||||
|
tween.tween_property(life_bar, "value", new_value, LIFE_BAR_HEAL_TIME).set_trans(
|
||||||
|
Tween.TRANS_CUBIC
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
static func create(_player: WorldPlayer) -> ShotHUD:
|
static func create(_player: WorldPlayer) -> ShotHUD:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=44 format=3 uid="uid://c4ifdiohng830"]
|
[gd_scene load_steps=46 format=3 uid="uid://c4ifdiohng830"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://src/ui/shot_hud/shot_hud.gd" id="1_x5b4c"]
|
[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"]
|
[ext_resource type="Shader" path="res://src/shaders/canvas_retro.gdshader" id="1_ybxxp"]
|
||||||
|
@ -15,6 +15,8 @@
|
||||||
[ext_resource type="PackedScene" uid="uid://dfh0bv7lwewj5" path="res://src/ui/decorations/hud_particles/hud_particles.tscn" id="11_ie5ih"]
|
[ext_resource type="PackedScene" uid="uid://dfh0bv7lwewj5" path="res://src/ui/decorations/hud_particles/hud_particles.tscn" id="11_ie5ih"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dtsdecae83ah3" path="res://assets/sprites/particles/ball.png" id="12_fdbqt"]
|
[ext_resource type="Texture2D" uid="uid://dtsdecae83ah3" path="res://assets/sprites/particles/ball.png" id="12_fdbqt"]
|
||||||
[ext_resource type="PackedScene" uid="uid://b47goj32i6sdh" path="res://src/ui/elements/input_prompt/input_prompt.tscn" id="14_ik4gg"]
|
[ext_resource type="PackedScene" uid="uid://b47goj32i6sdh" path="res://src/ui/elements/input_prompt/input_prompt.tscn" id="14_ik4gg"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://y07v10c8r1s6" path="res://assets/sprites/particles/health.png" id="15_eyqdi"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://csbrinugqepk3" path="res://assets/sound/sfx/player/heal.wav" id="16_pub5c"]
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_2gt87"]
|
[sub_resource type="Animation" id="Animation_2gt87"]
|
||||||
resource_name = "RESET"
|
resource_name = "RESET"
|
||||||
|
@ -798,6 +800,26 @@ script = ExtResource("3_6groq")
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
|
||||||
|
[node name="ParticleContainer" type="Control" parent="SouthWest/VBoxContainer/MarginContainer/LifeBarRumbler/LifeBar"]
|
||||||
|
layout_mode = 1
|
||||||
|
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
|
||||||
|
|
||||||
|
[node name="LifeParticles" parent="SouthWest/VBoxContainer/MarginContainer/LifeBarRumbler/LifeBar/ParticleContainer" instance=ExtResource("11_ie5ih")]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
texture = ExtResource("15_eyqdi")
|
||||||
|
|
||||||
|
[node name="HealSFX" type="AudioStreamPlayer" parent="SouthWest/VBoxContainer/MarginContainer/LifeBarRumbler/LifeBar"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
stream = ExtResource("16_pub5c")
|
||||||
|
volume_db = -8.0
|
||||||
|
bus = &"SFX"
|
||||||
|
|
||||||
[node name="SWAnimation" type="AnimationPlayer" parent="SouthWest"]
|
[node name="SWAnimation" type="AnimationPlayer" parent="SouthWest"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
root_node = NodePath("../..")
|
root_node = NodePath("../..")
|
||||||
|
|
|
@ -2,6 +2,7 @@ class_name PlayManager extends Resource
|
||||||
## Abstract base type for strategies to manage the flow of gameplay
|
## Abstract base type for strategies to manage the flow of gameplay
|
||||||
|
|
||||||
## Emitted at the start of each new turn
|
## Emitted at the start of each new turn
|
||||||
|
@warning_ignore("unused_signal")
|
||||||
signal turn_started(player: WorldPlayer)
|
signal turn_started(player: WorldPlayer)
|
||||||
|
|
||||||
## List of game player instances
|
## List of game player instances
|
||||||
|
|
Loading…
Reference in New Issue