generated from krampus/template-godot4
Nicer nice effect
This commit is contained in:
parent
c536eff1db
commit
844fd55d43
|
@ -0,0 +1,454 @@
|
|||
[gd_scene load_steps=16 format=3 uid="uid://g8yw4bersece"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://b5812y3pmmgg5" path="res://assets/ui/gauge_patch.png" id="1_cbh2e"]
|
||||
[ext_resource type="FontFile" uid="uid://dsa0oh7c0h4pu" path="res://assets/fonts/Racing_Sans_One/RacingSansOne-Regular.ttf" id="2_m4bhi"]
|
||||
[ext_resource type="Texture2D" uid="uid://du3vk5nnksohs" path="res://assets/sprites/particles/sparkle.png" id="2_x2leq"]
|
||||
[ext_resource type="Script" path="res://src/ui/decorations/text_effects/typewriter/typewriter_label.gd" id="2_yjmn6"]
|
||||
[ext_resource type="Script" path="res://src/ui/decorations/rumbler.gd" id="3_ql2sm"]
|
||||
[ext_resource type="AudioStream" uid="uid://c8bxu5lusqevv" path="res://assets/sound/sfx/ui/ecofuture3.wav" id="5_a1v30"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_hi2t5"]
|
||||
colors = PackedColorArray(0.389287, 0.389287, 0.389287, 1, 1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_o3771"]
|
||||
gradient = SubResource("Gradient_hi2t5")
|
||||
|
||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_qsf88"]
|
||||
particle_flag_disable_z = true
|
||||
emission_shape = 3
|
||||
emission_box_extents = Vector3(0, 150, 1)
|
||||
spread = 0.0
|
||||
initial_velocity_min = 200.0
|
||||
initial_velocity_max = 400.0
|
||||
angular_velocity_min = -453.84
|
||||
angular_velocity_max = -28.01
|
||||
gravity = Vector3(0, 0, 0)
|
||||
scale_min = 0.3
|
||||
scale_max = 0.9
|
||||
color_initial_ramp = SubResource("GradientTexture1D_o3771")
|
||||
|
||||
[sub_resource type="Curve" id="Curve_54bet"]
|
||||
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.658363, 0.936358), -2.76095, -2.76095, 0, 0, Vector2(1, 1), -0.829222, 0.0, 0, 0]
|
||||
point_count = 3
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_6pgg4"]
|
||||
offsets = PackedFloat32Array(0.389734, 0.431559, 0.538023, 0.595057)
|
||||
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_nrcya"]
|
||||
gradient = SubResource("Gradient_6pgg4")
|
||||
fill_from = Vector2(0, 0.5)
|
||||
fill_to = Vector2(1, 0.52)
|
||||
metadata/_snap_enabled = true
|
||||
|
||||
[sub_resource type="Animation" id="Animation_i4x7e"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:custom_minimum_size")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, 300)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".:anchor_right")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [1.0]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("NinePatchRect/InnerWindow/TextContainer/Rumbler/TypewriterLabel/Glint:anchor_left")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [-1.0]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("NinePatchRect/InnerWindow/TextContainer/Rumbler/TypewriterLabel/Glint:anchor_right")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.0]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("AudioStreamPlayer:playing")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("NinePatchRect/InnerWindow/TextContainer/Rumbler/AnimatedStar:scale")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(1, 1)]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("NinePatchRect/InnerWindow/TextContainer/Rumbler/AnimatedStar:rotation")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.0]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("NinePatchRect/InnerWindow/TextContainer:rotation")
|
||||
tracks/7/interp = 4
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.0]
|
||||
}
|
||||
tracks/8/type = "value"
|
||||
tracks/8/imported = false
|
||||
tracks/8/enabled = true
|
||||
tracks/8/path = NodePath("NinePatchRect/InnerWindow/TextContainer:scale")
|
||||
tracks/8/interp = 1
|
||||
tracks/8/loop_wrap = true
|
||||
tracks/8/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(1, 1)]
|
||||
}
|
||||
tracks/9/type = "value"
|
||||
tracks/9/imported = false
|
||||
tracks/9/enabled = true
|
||||
tracks/9/path = NodePath("NinePatchRect/InnerWindow/TextContainer/Rumbler:intensity")
|
||||
tracks/9/interp = 1
|
||||
tracks/9/loop_wrap = true
|
||||
tracks/9/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_80e5e"]
|
||||
resource_name = "display"
|
||||
length = 5.0
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:custom_minimum_size")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = false
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.266667, 0.533334, 1.7, 2),
|
||||
"transitions": PackedFloat32Array(1, 0.381924, 1, 4.43828, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, 8), Vector2(0, 8), Vector2(0, 300), Vector2(0, 300), Vector2(0, 0)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".:anchor_right")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = false
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.266667),
|
||||
"transitions": PackedFloat32Array(6.22646, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 1.0]
|
||||
}
|
||||
tracks/2/type = "method"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("NinePatchRect/InnerWindow/TextContainer/Rumbler/TypewriterLabel")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"restart"
|
||||
}]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("NinePatchRect/InnerWindow/TextContainer/Rumbler/TypewriterLabel/Glint:anchor_left")
|
||||
tracks/3/interp = 2
|
||||
tracks/3/loop_wrap = false
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.933333, 1.63334),
|
||||
"transitions": PackedFloat32Array(1, 0.618, 1),
|
||||
"update": 0,
|
||||
"values": [-1.0, -1.0, 1.0]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("NinePatchRect/InnerWindow/TextContainer/Rumbler/TypewriterLabel/Glint:anchor_right")
|
||||
tracks/4/interp = 2
|
||||
tracks/4/loop_wrap = false
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0, 0.666666, 1.36667),
|
||||
"transitions": PackedFloat32Array(1, 0.618, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 0.0, 2.0]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("AudioStreamPlayer:playing")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = false
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0.6),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/6/type = "method"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath(".")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(5),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"queue_free"
|
||||
}]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("NinePatchRect/InnerWindow/TextContainer/Rumbler/AnimatedStar:scale")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = false
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0, 1.1, 1.26667, 1.43333, 1.7),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(1e-05, 1e-05), Vector2(1e-05, 1e-05), Vector2(1, 1), Vector2(1, 1), Vector2(1e-05, 1e-05)]
|
||||
}
|
||||
tracks/8/type = "value"
|
||||
tracks/8/imported = false
|
||||
tracks/8/enabled = true
|
||||
tracks/8/path = NodePath("NinePatchRect/InnerWindow/TextContainer/Rumbler/AnimatedStar:rotation")
|
||||
tracks/8/interp = 1
|
||||
tracks/8/loop_wrap = false
|
||||
tracks/8/keys = {
|
||||
"times": PackedFloat32Array(1.1, 1.3, 1.5, 1.7),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 3.14159, 6.28319, 9.42478]
|
||||
}
|
||||
tracks/9/type = "value"
|
||||
tracks/9/imported = false
|
||||
tracks/9/enabled = true
|
||||
tracks/9/path = NodePath("NinePatchRect/InnerWindow/TextContainer:rotation")
|
||||
tracks/9/interp = 4
|
||||
tracks/9/loop_wrap = false
|
||||
tracks/9/keys = {
|
||||
"times": PackedFloat32Array(0.233333, 0.9, 1.56667, 2.23333),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [-0.0174533, 0.0174533, -0.0174533, 0.0174533]
|
||||
}
|
||||
tracks/10/type = "value"
|
||||
tracks/10/imported = false
|
||||
tracks/10/enabled = true
|
||||
tracks/10/path = NodePath("NinePatchRect/InnerWindow/TextContainer:scale")
|
||||
tracks/10/interp = 2
|
||||
tracks/10/loop_wrap = true
|
||||
tracks/10/keys = {
|
||||
"times": PackedFloat32Array(0, 0.666667, 1.33333, 2, 2.66667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(1, 1), Vector2(1.05, 1.05), Vector2(1, 1), Vector2(1.05, 1.05), Vector2(1, 1)]
|
||||
}
|
||||
tracks/11/type = "value"
|
||||
tracks/11/imported = false
|
||||
tracks/11/enabled = true
|
||||
tracks/11/path = NodePath("NinePatchRect/InnerWindow/TextContainer/Rumbler:intensity")
|
||||
tracks/11/interp = 1
|
||||
tracks/11/loop_wrap = true
|
||||
tracks/11/keys = {
|
||||
"times": PackedFloat32Array(0, 0.466667, 0.566667, 1.33333),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 0.0, 10.0, 0.0]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_pgwgo"]
|
||||
_data = {
|
||||
"RESET": SubResource("Animation_i4x7e"),
|
||||
"display": SubResource("Animation_80e5e")
|
||||
}
|
||||
|
||||
[node name="NiceAlert" type="Control"]
|
||||
clip_contents = true
|
||||
custom_minimum_size = Vector2(0, 300)
|
||||
layout_mode = 3
|
||||
anchors_preset = 14
|
||||
anchor_top = 0.5
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="NinePatchRect" type="NinePatchRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = ExtResource("1_cbh2e")
|
||||
patch_margin_left = 16
|
||||
patch_margin_top = 16
|
||||
patch_margin_right = 16
|
||||
patch_margin_bottom = 16
|
||||
|
||||
[node name="InnerWindow" type="Control" parent="NinePatchRect"]
|
||||
clip_contents = true
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 16.0
|
||||
offset_top = 16.0
|
||||
offset_right = -16.0
|
||||
offset_bottom = -16.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
pivot_offset = Vector2(0, 150)
|
||||
|
||||
[node name="ParticleOrigin" type="Control" parent="NinePatchRect/InnerWindow"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 4
|
||||
anchor_top = 0.5
|
||||
anchor_bottom = 0.5
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="GPUParticles2D" type="GPUParticles2D" parent="NinePatchRect/InnerWindow/ParticleOrigin"]
|
||||
amount = 1024
|
||||
process_material = SubResource("ParticleProcessMaterial_qsf88")
|
||||
texture = ExtResource("2_x2leq")
|
||||
lifetime = 20.0
|
||||
preprocess = 20.0
|
||||
visibility_rect = Rect2(0, -150, 1920, 300)
|
||||
|
||||
[node name="TextContainer" type="Control" parent="NinePatchRect/InnerWindow"]
|
||||
custom_minimum_size = Vector2(1700, 400)
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -850.0
|
||||
offset_top = -200.0
|
||||
offset_right = 850.0
|
||||
offset_bottom = 200.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
pivot_offset = Vector2(850, 200)
|
||||
|
||||
[node name="Rumbler" type="Control" parent="NinePatchRect/InnerWindow/TextContainer"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("3_ql2sm")
|
||||
|
||||
[node name="TypewriterLabel" type="RichTextLabel" parent="NinePatchRect/InnerWindow/TextContainer/Rumbler"]
|
||||
clip_children = 2
|
||||
texture_filter = 6
|
||||
custom_minimum_size = Vector2(1650, 380)
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
scale = Vector2(1.05, 1.05)
|
||||
theme_override_constants/outline_size = 9
|
||||
theme_override_fonts/normal_font = ExtResource("2_m4bhi")
|
||||
theme_override_font_sizes/normal_font_size = 300
|
||||
bbcode_enabled = true
|
||||
text = "[center][rainbow][type speed=50.0 delay=0.3 factor=20.0]WOAH NICE[/type][/rainbow][/center]"
|
||||
script = ExtResource("2_yjmn6")
|
||||
scale_curve = SubResource("Curve_54bet")
|
||||
|
||||
[node name="Glint" type="TextureRect" parent="NinePatchRect/InnerWindow/TextContainer/Rumbler/TypewriterLabel"]
|
||||
clip_children = 1
|
||||
clip_contents = true
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = -1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = SubResource("GradientTexture2D_nrcya")
|
||||
expand_mode = 1
|
||||
|
||||
[node name="AnimatedStar" type="TextureRect" parent="NinePatchRect/InnerWindow/TextContainer/Rumbler"]
|
||||
texture_filter = 5
|
||||
layout_mode = 0
|
||||
offset_left = 1715.0
|
||||
offset_top = 80.0
|
||||
offset_right = 1755.0
|
||||
offset_bottom = 120.0
|
||||
pivot_offset = Vector2(20, 20)
|
||||
texture = ExtResource("2_x2leq")
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource("5_a1v30")
|
||||
volume_db = -16.0
|
||||
bus = &"SFX"
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_pgwgo")
|
||||
}
|
||||
autoplay = "display"
|
|
@ -12,6 +12,8 @@ signal typing
|
|||
@export var scale_curve: Curve
|
||||
@export var translation_curve: CurveXYZTexture
|
||||
|
||||
@export var glyph_size_factor: float = 0.0
|
||||
|
||||
# To use this effect:
|
||||
# - Enable BBCode on a RichTextLabel.
|
||||
# - Instead of instantiating this effect directly, use a `TypewriterLabel` node.
|
||||
|
@ -34,12 +36,12 @@ func _process_custom_fx(char_fx: CharFXTransform) -> bool:
|
|||
var factor: float = char_fx.env.get("factor", 1.0)
|
||||
|
||||
var server := TextServerManager.get_primary_interface()
|
||||
var glyph_size := server.font_get_glyph_size(char_fx.font, Vector2i.ONE, char_fx.glyph_index)
|
||||
var glyph_size := server.font_get_glyph_size(
|
||||
char_fx.font, 0.5 * glyph_size_factor * Vector2i.ONE, char_fx.glyph_index
|
||||
)
|
||||
var pivot := glyph_size * Vector2(-1, 1)
|
||||
|
||||
var rel_time := (
|
||||
(speed * (char_fx.elapsed_time - delay) - char_fx.relative_index) / factor
|
||||
)
|
||||
var rel_time := (speed * (char_fx.elapsed_time - delay) - char_fx.relative_index) / factor
|
||||
|
||||
var scale := Vector2.ONE
|
||||
if scale_curve:
|
||||
|
@ -59,8 +61,7 @@ func _process_custom_fx(char_fx: CharFXTransform) -> bool:
|
|||
. scaled_local(scale)
|
||||
. translated_local(pivot)
|
||||
. translated_local(translation)
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
char_fx.visible = rel_time > 0
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ func _ready() -> void:
|
|||
effect.scale_curve = scale_curve
|
||||
effect.translation_curve = translation_curve
|
||||
effect.typing.connect(_on_typing)
|
||||
effect.glyph_size_factor = get_theme_font_size("normal_font_size")
|
||||
install_effect(effect)
|
||||
if text:
|
||||
_finished = false
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
class_name ShotHUD extends Control
|
||||
## HUD for main gameplay loop
|
||||
|
||||
const NICE_ALERT_SCENE := preload("res://src/ui/decorations/nice_alert.tscn")
|
||||
|
||||
## Scale factor for the life bar rumble intensity on taking damage
|
||||
const LIFE_BAR_DAMAGE_RUMBLE_SCALE := 0.2
|
||||
## Time it takes to dampen the life bar rumble on taking damage, in seconds
|
||||
|
@ -19,6 +21,7 @@ var player: WorldPlayer
|
|||
@onready var _power_animation: AnimationPlayer = %PowerAnimation
|
||||
|
||||
@onready var _nice_animation: AnimationPlayer = %NiceAnimation
|
||||
@onready var _nice_container: Control = %NiceContainer
|
||||
@onready var _wasted_animation: AnimationPlayer = %WastedAnimation
|
||||
|
||||
@onready var _club_selector_animation: AnimationPlayer = %ClubSelectorAnimation
|
||||
|
@ -88,7 +91,7 @@ func gauge_flourish() -> void:
|
|||
|
||||
|
||||
func play_nice_animation() -> void:
|
||||
_nice_animation.play("display")
|
||||
_nice_container.add_child(NICE_ALERT_SCENE.instantiate())
|
||||
|
||||
|
||||
func play_wasted_animation() -> void:
|
||||
|
@ -102,6 +105,7 @@ func show_reset_prompt() -> void:
|
|||
func hide_reset_prompt() -> void:
|
||||
_reset_prompt_animation.play_backwards("show")
|
||||
|
||||
|
||||
## Set the value of the life bar, potentially playing some kind of effect in response.
|
||||
##
|
||||
## To set the life bar without triggering an effect, set it directly with `life_bar.value`
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
[gd_scene load_steps=47 format=3 uid="uid://c4ifdiohng830"]
|
||||
[gd_scene load_steps=41 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"]
|
||||
[ext_resource type="PackedScene" uid="uid://445qd7m4qe2j" path="res://src/ui/shot_hud/club_selector/club_selector.tscn" id="2_1hdub"]
|
||||
[ext_resource type="AudioStream" uid="uid://c8bxu5lusqevv" path="res://assets/sound/sfx/ui/ecofuture3.wav" id="2_5f3rs"]
|
||||
[ext_resource type="Script" path="res://src/ui/decorations/rumbler.gd" id="3_6groq"]
|
||||
[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"]
|
||||
|
@ -15,219 +14,6 @@
|
|||
[ext_resource type="PackedScene" uid="uid://dmciuk3pbjsae" path="res://src/ui/shot_hud/life_bar/life_bar.tscn" id="9_w1fiw"]
|
||||
[ext_resource type="PackedScene" uid="uid://b47goj32i6sdh" path="res://src/ui/elements/input_prompt/input_prompt.tscn" id="14_ik4gg"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_3xds6"]
|
||||
resource_name = "RESET"
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:visible")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".:visible_ratio")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [1.0]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath(".:rotation")
|
||||
tracks/2/interp = 3
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [7.31612e-10]
|
||||
}
|
||||
tracks/3/type = "bezier"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath(".:anchor_top")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"handle_modes": PackedInt32Array(0),
|
||||
"points": PackedFloat32Array(0.5, -0.25, 0, 0.25, 0),
|
||||
"times": PackedFloat32Array(0)
|
||||
}
|
||||
tracks/4/type = "bezier"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath(".:anchor_bottom")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"handle_modes": PackedInt32Array(0),
|
||||
"points": PackedFloat32Array(0.5, -0.25, 0, 0.25, 0),
|
||||
"times": PackedFloat32Array(0)
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = false
|
||||
tracks/5/path = NodePath("AudioStreamPlayer:playing")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("Glint:anchor_left")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [-1.0]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("Glint:anchor_right")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_cwotn"]
|
||||
resource_name = "display"
|
||||
length = 2.4
|
||||
step = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:visible")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 2.4),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".:visible_ratio")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 1.0]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath(".:rotation")
|
||||
tracks/2/interp = 3
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 2, 2.4),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [7.31612e-10, 7.31612e-10, 0.174533]
|
||||
}
|
||||
tracks/3/type = "bezier"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath(".:anchor_top")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 0, 0),
|
||||
"points": PackedFloat32Array(0.5, -0.25, 0, 0.5, -0.0548477, 0.5, -0.4, 0.0593877, 0.233401, -0.456136, 1.25, -0.25, 0, 0.25, 0),
|
||||
"times": PackedFloat32Array(0, 2, 2.4)
|
||||
}
|
||||
tracks/4/type = "bezier"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath(".:anchor_bottom")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 0, 0),
|
||||
"points": PackedFloat32Array(0.5, -0.25, 0, 0.5, -0.055, 0.5, -0.4, 0.059, 0.233, -0.456, 1.25, -0.25, 0, 0.25, 0),
|
||||
"times": PackedFloat32Array(0, 2, 2.4)
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("AudioStreamPlayer:playing")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0.1),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("Glint:anchor_left")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0.7, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [-1.0, 1.0]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("Glint:anchor_right")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0.7, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 2.0]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_2a0gn"]
|
||||
_data = {
|
||||
"RESET": SubResource("Animation_3xds6"),
|
||||
"display": SubResource("Animation_cwotn")
|
||||
}
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_xp0wp"]
|
||||
offsets = PackedFloat32Array(0, 0.482857, 1)
|
||||
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_knygn"]
|
||||
gradient = SubResource("Gradient_xp0wp")
|
||||
fill_from = Vector2(0, 0.4)
|
||||
fill_to = Vector2(1, 0.6)
|
||||
metadata/_snap_enabled = true
|
||||
|
||||
[sub_resource type="Animation" id="Animation_2gt87"]
|
||||
resource_name = "RESET"
|
||||
length = 0.001
|
||||
|
@ -761,50 +547,14 @@ grow_vertical = 2
|
|||
mouse_filter = 2
|
||||
script = ExtResource("1_x5b4c")
|
||||
|
||||
[node name="WoahNiceFeedback" type="RichTextLabel" parent="."]
|
||||
visible = false
|
||||
clip_children = 2
|
||||
custom_minimum_size = Vector2(1200, 0)
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -600.0
|
||||
offset_top = -136.5
|
||||
offset_right = 600.0
|
||||
offset_bottom = 136.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
theme_type_variation = &"ShotFeedback"
|
||||
bbcode_enabled = true
|
||||
text = "[center][wave amp=64][rainbow]woah nice[/rainbow][/wave][/center]"
|
||||
fit_content = true
|
||||
autowrap_mode = 0
|
||||
visible_characters_behavior = 1
|
||||
|
||||
[node name="NiceAnimation" type="AnimationPlayer" parent="WoahNiceFeedback"]
|
||||
[node name="NiceContainer" type="Control" parent="."]
|
||||
unique_name_in_owner = true
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_2a0gn")
|
||||
}
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="WoahNiceFeedback"]
|
||||
stream = ExtResource("2_5f3rs")
|
||||
volume_db = -16.0
|
||||
bus = &"SFX"
|
||||
|
||||
[node name="Glint" type="TextureRect" parent="WoahNiceFeedback"]
|
||||
clip_children = 2
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = -1.0
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = SubResource("GradientTexture2D_knygn")
|
||||
|
||||
[node name="WastedFeedback" type="RichTextLabel" parent="."]
|
||||
visible = false
|
||||
|
|
Loading…
Reference in New Issue