Alerts Update

Implemented base class Alert.
Implemented Alerts for Cheering Bits, Following, Raid Alert, and
Subscription alerts.
Added Fonts and Video media.
This commit is contained in:
Mario Steele 2026-03-02 02:15:30 -06:00
parent 5f8df9bf7b
commit 73615a9bb4
32 changed files with 1196 additions and 0 deletions

5
UI/Alerts/alert.gd Normal file
View file

@ -0,0 +1,5 @@
extends Control
class_name Alert
func dispose() -> void:
queue_free()

1
UI/Alerts/alert.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://bw0rk6o7xj67e

26
UI/Alerts/cheer_alert.gd Normal file
View file

@ -0,0 +1,26 @@
@tool
extends Alert
class_name CheerAlert
@onready var sub_text: Label = %SubText
@onready var main_text: Label = %MainText
@onready var message_text: Label = %MessageText
@onready var timeline: AnimationPlayer = %Timeline
var _chatter: String = "None"
var _msg: String = ""
var _bits: int = 0
func setup(chatter: String, bits: int, message: String) -> void:
_chatter = chatter
_bits = bits
_msg = message
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
main_text.text = _chatter
sub_text.text = "x%d bits" % _bits
message_text.text = _msg
if Engine.is_editor_hint(): return
timeline.play(&"default")

View file

@ -0,0 +1 @@
uid://crl8eyb3nahln

278
UI/Alerts/cheer_alert.tscn Normal file
View file

@ -0,0 +1,278 @@
[gd_scene format=3 uid="uid://d05mpml5k78u6"]
[ext_resource type="Script" uid="uid://ivx7m2bfysip" path="res://addons/gde_gozen/video_playback.gd" id="1_7rajh"]
[ext_resource type="Script" uid="uid://crl8eyb3nahln" path="res://UI/Alerts/cheer_alert.gd" id="1_eam5w"]
[ext_resource type="FontFile" uid="uid://cx1a4aqqxhsrn" path="res://UI/assets/neon-wave-theme/polentical_neon/Polentical Neon Italic.ttf" id="2_eam5w"]
[ext_resource type="FontFile" uid="uid://c30qqiv6sqheh" path="res://UI/assets/fonts/rage.woff2" id="3_vhkt3"]
[sub_resource type="LabelSettings" id="LabelSettings_t8pat"]
font = ExtResource("3_vhkt3")
font_size = 48
font_color = Color(0, 1, 1, 1)
stacked_shadow_count = 2
stacked_shadow_0/offset = Vector2(2, 2)
stacked_shadow_0/color = Color(0.35822138, 0.0011343455, 0.8658768, 1)
stacked_shadow_0/outline_size = 3
stacked_shadow_1/offset = Vector2(4, 4)
stacked_shadow_1/color = Color(1, 0.5023, 0.43550968, 1)
stacked_shadow_1/outline_size = 5
[sub_resource type="LabelSettings" id="LabelSettings_jsg8g"]
font = ExtResource("2_eam5w")
font_size = 60
font_color = Color(0.99999994, 0.6120906, 0.16155985, 1)
stacked_shadow_count = 4
stacked_shadow_0/offset = Vector2(2, 2)
stacked_shadow_0/color = Color(0.5568628, 0.003921569, 1, 1)
stacked_shadow_0/outline_size = 2
stacked_shadow_1/offset = Vector2(3, 3)
stacked_shadow_1/color = Color(0.9411765, 0.003921569, 1, 1)
stacked_shadow_1/outline_size = 2
stacked_shadow_2/offset = Vector2(4, 4)
stacked_shadow_2/color = Color(0.9843137, 0.25882354, 0.7254902, 1)
stacked_shadow_2/outline_size = 2
stacked_shadow_3/offset = Vector2(5, 5)
stacked_shadow_3/color = Color(0.99215686, 0.46666667, 0.8039216, 1)
stacked_shadow_3/outline_size = 2
[sub_resource type="LabelSettings" id="LabelSettings_vhkt3"]
font_size = 24
[sub_resource type="Animation" id="Animation_jsg8g"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("SubText:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("MainText:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("MessageText:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_t8pat"]
resource_name = "default"
length = 10.0
tracks/0/type = "method"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Background")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"play"
}]
}
tracks/1/type = "method"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Icon")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"play"
}]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("SubText:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 3, 4, 9, 10),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("MainText:modulate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 2, 3, 9, 10),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/4/type = "method"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath(".")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(10),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"dispose"
}]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("MessageText:modulate")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0, 4, 5, 9, 10),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_jsg8g"]
_data = {
&"RESET": SubResource("Animation_jsg8g"),
&"default": SubResource("Animation_t8pat")
}
[node name="CheerAlert" type="Control" unique_id=95763662]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_eam5w")
[node name="Background" type="Control" parent="." unique_id=939332259]
unique_name_in_owner = true
custom_minimum_size = Vector2(960, 540)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -480.0
offset_top = -270.0
offset_right = 480.0
offset_bottom = 270.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_7rajh")
path = "res://UI/assets/video/Backgrounds/Lightning-Synthwave.webm"
metadata/_custom_type_script = "uid://ivx7m2bfysip"
[node name="Icon" type="Control" parent="." unique_id=823113899]
unique_name_in_owner = true
custom_minimum_size = Vector2(470, 260)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -195.0
offset_top = -303.0
offset_right = 275.0
offset_bottom = -43.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_7rajh")
path = "res://UI/assets/video/Backgrounds/Bits-Synthwave.webm"
enable_audio = false
metadata/_custom_type_script = "uid://ivx7m2bfysip"
[node name="SubText" type="Label" parent="." unique_id=1794185310]
unique_name_in_owner = true
modulate = Color(1, 1, 1, 0)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -183.0
offset_top = -85.0
offset_right = 183.0
offset_bottom = -25.0
grow_horizontal = 2
grow_vertical = 2
text = "x40 Bits"
label_settings = SubResource("LabelSettings_t8pat")
horizontal_alignment = 1
[node name="MainText" type="Label" parent="." unique_id=757351879]
unique_name_in_owner = true
modulate = Color(1, 1, 1, 0)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -145.0
offset_top = -37.5
offset_right = 145.0
offset_bottom = 37.5
grow_horizontal = 2
grow_vertical = 2
text = "None"
label_settings = SubResource("LabelSettings_jsg8g")
horizontal_alignment = 1
[node name="MessageText" type="Label" parent="." unique_id=79076647]
unique_name_in_owner = true
modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(1000, 200)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -500.0
offset_top = 55.0
offset_right = 500.0
offset_bottom = 255.0
grow_horizontal = 2
grow_vertical = 2
text = "Born to late to explore Earth, born to early to explore the universe"
label_settings = SubResource("LabelSettings_vhkt3")
horizontal_alignment = 1
autowrap_mode = 2
max_lines_visible = 5
[node name="Timeline" type="AnimationPlayer" parent="." unique_id=1438475424]
unique_name_in_owner = true
libraries/ = SubResource("AnimationLibrary_jsg8g")

16
UI/Alerts/follow_alert.gd Normal file
View file

@ -0,0 +1,16 @@
@tool
extends Alert
class_name FollowAlert
@onready var main_text: Label = %MainText
@onready var timeline: AnimationPlayer = %Timeline
var _chatter: String = "None"
func setup(chatter: String) -> void:
_chatter = chatter
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
main_text.text = _chatter
if Engine.is_editor_hint(): return
timeline.play(&"default")

View file

@ -0,0 +1 @@
uid://cdfp46glq557p

226
UI/Alerts/follow_alert.tscn Normal file
View file

@ -0,0 +1,226 @@
[gd_scene format=3 uid="uid://dr2di6iv0mdkh"]
[ext_resource type="Script" uid="uid://cdfp46glq557p" path="res://UI/Alerts/follow_alert.gd" id="1_44jhq"]
[ext_resource type="Script" uid="uid://ivx7m2bfysip" path="res://addons/gde_gozen/video_playback.gd" id="1_86a2m"]
[ext_resource type="FontFile" uid="uid://cx1a4aqqxhsrn" path="res://UI/assets/neon-wave-theme/polentical_neon/Polentical Neon Italic.ttf" id="3_t8pat"]
[sub_resource type="LabelSettings" id="LabelSettings_t8pat"]
font_size = 48
font_color = Color(0, 1, 1, 1)
stacked_shadow_count = 2
stacked_shadow_0/offset = Vector2(2, 2)
stacked_shadow_0/color = Color(0.35822138, 0.0011343455, 0.8658768, 1)
stacked_shadow_0/outline_size = 3
stacked_shadow_1/offset = Vector2(4, 4)
stacked_shadow_1/color = Color(1, 0.5023, 0.43550968, 1)
stacked_shadow_1/outline_size = 5
[sub_resource type="LabelSettings" id="LabelSettings_jsg8g"]
font = ExtResource("3_t8pat")
font_size = 60
font_color = Color(0.99999994, 0.6120906, 0.16155985, 1)
stacked_shadow_count = 4
stacked_shadow_0/offset = Vector2(2, 2)
stacked_shadow_0/color = Color(0.5568628, 0.003921569, 1, 1)
stacked_shadow_0/outline_size = 2
stacked_shadow_1/offset = Vector2(3, 3)
stacked_shadow_1/color = Color(0.9411765, 0.003921569, 1, 1)
stacked_shadow_1/outline_size = 2
stacked_shadow_2/offset = Vector2(4, 4)
stacked_shadow_2/color = Color(0.9843137, 0.25882354, 0.7254902, 1)
stacked_shadow_2/outline_size = 2
stacked_shadow_3/offset = Vector2(5, 5)
stacked_shadow_3/color = Color(0.99215686, 0.46666667, 0.8039216, 1)
stacked_shadow_3/outline_size = 2
[sub_resource type="Animation" id="Animation_jsg8g"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("SubText:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("MainText:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_t8pat"]
resource_name = "default"
length = 10.0
tracks/0/type = "method"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Background")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"play"
}]
}
tracks/1/type = "method"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Icon")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"play"
}]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("SubText:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 5, 6, 9, 10),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("MainText:modulate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 3, 4, 9, 10),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/4/type = "method"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath(".")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(10),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"dispose"
}]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_jsg8g"]
_data = {
&"RESET": SubResource("Animation_jsg8g"),
&"default": SubResource("Animation_t8pat")
}
[node name="FollowAlert" type="Control" unique_id=95763662]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_44jhq")
[node name="Background" type="Control" parent="." unique_id=939332259]
unique_name_in_owner = true
custom_minimum_size = Vector2(960, 540)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -480.0
offset_top = -270.0
offset_right = 480.0
offset_bottom = 270.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_86a2m")
path = "res://UI/assets/video/Backgrounds/Stripes-Synthwave.webm"
metadata/_custom_type_script = "uid://ivx7m2bfysip"
[node name="Icon" type="Control" parent="." unique_id=823113899]
unique_name_in_owner = true
custom_minimum_size = Vector2(470, 260)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -195.0
offset_top = -303.0
offset_right = 275.0
offset_bottom = -43.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_86a2m")
path = "res://UI/assets/video/Icons/Joystick-Synthwave.webm"
enable_audio = false
metadata/_custom_type_script = "uid://ivx7m2bfysip"
[node name="SubText" type="Label" parent="." unique_id=1794185310]
unique_name_in_owner = true
modulate = Color(1, 1, 1, 0)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -183.0
offset_top = -85.0
offset_right = 183.0
offset_bottom = -25.0
grow_horizontal = 2
grow_vertical = 2
text = "New Follower"
label_settings = SubResource("LabelSettings_t8pat")
[node name="MainText" type="Label" parent="." unique_id=757351879]
unique_name_in_owner = true
modulate = Color(1, 1, 1, 0)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -145.0
offset_top = -37.5
offset_right = 145.0
offset_bottom = 37.5
grow_horizontal = 2
grow_vertical = 2
text = "None"
label_settings = SubResource("LabelSettings_jsg8g")
horizontal_alignment = 1
[node name="Timeline" type="AnimationPlayer" parent="." unique_id=1438475424]
unique_name_in_owner = true
libraries/ = SubResource("AnimationLibrary_jsg8g")

22
UI/Alerts/raid_alert.gd Normal file
View file

@ -0,0 +1,22 @@
@tool
extends Alert
class_name RaidAlert
@onready var sub_text: Label = %SubText
@onready var main_text: Label = %MainText
@onready var timeline: AnimationPlayer = %Timeline
var _chatter: String = "None"
var _raiders: int = 0
func setup(chatter: String, raiders: int) -> void:
_chatter = chatter
_raiders = raiders
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
main_text.text = _chatter
sub_text.text = "Raid x%d" % _raiders
if Engine.is_editor_hint(): return
timeline.play(&"default")

View file

@ -0,0 +1 @@
uid://cns0ihwkp2i1c

229
UI/Alerts/raid_alert.tscn Normal file
View file

@ -0,0 +1,229 @@
[gd_scene format=3 uid="uid://b6jis61uxnhf3"]
[ext_resource type="Script" uid="uid://cns0ihwkp2i1c" path="res://UI/Alerts/raid_alert.gd" id="1_ur8rv"]
[ext_resource type="Script" uid="uid://ivx7m2bfysip" path="res://addons/gde_gozen/video_playback.gd" id="1_yqbii"]
[ext_resource type="FontFile" uid="uid://cx1a4aqqxhsrn" path="res://UI/assets/neon-wave-theme/polentical_neon/Polentical Neon Italic.ttf" id="2_ur8rv"]
[ext_resource type="FontFile" uid="uid://c30qqiv6sqheh" path="res://UI/assets/fonts/rage.woff2" id="3_6v7ty"]
[sub_resource type="LabelSettings" id="LabelSettings_t8pat"]
font = ExtResource("3_6v7ty")
font_size = 64
font_color = Color(0.60239375, 0.9999997, 0.3363843, 1)
stacked_shadow_count = 2
stacked_shadow_0/offset = Vector2(2, 2)
stacked_shadow_0/color = Color(0.35822138, 0.0011343455, 0.8658768, 1)
stacked_shadow_0/outline_size = 3
stacked_shadow_1/offset = Vector2(4, 4)
stacked_shadow_1/color = Color(1, 0.5023, 0.43550968, 1)
stacked_shadow_1/outline_size = 5
[sub_resource type="LabelSettings" id="LabelSettings_jsg8g"]
font = ExtResource("2_ur8rv")
font_size = 60
font_color = Color(0.99999994, 0.6120906, 0.16155985, 1)
stacked_shadow_count = 4
stacked_shadow_0/offset = Vector2(2, 2)
stacked_shadow_0/color = Color(0.5568628, 0.003921569, 1, 1)
stacked_shadow_0/outline_size = 2
stacked_shadow_1/offset = Vector2(3, 3)
stacked_shadow_1/color = Color(0.9411765, 0.003921569, 1, 1)
stacked_shadow_1/outline_size = 2
stacked_shadow_2/offset = Vector2(4, 4)
stacked_shadow_2/color = Color(0.9843137, 0.25882354, 0.7254902, 1)
stacked_shadow_2/outline_size = 2
stacked_shadow_3/offset = Vector2(5, 5)
stacked_shadow_3/color = Color(0.99215686, 0.46666667, 0.8039216, 1)
stacked_shadow_3/outline_size = 2
[sub_resource type="Animation" id="Animation_jsg8g"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("SubText:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("MainText:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_t8pat"]
resource_name = "default"
length = 10.0
tracks/0/type = "method"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Background")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"play"
}]
}
tracks/1/type = "method"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Icon")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"play"
}]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("SubText:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 5, 6, 9, 10),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("MainText:modulate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 3, 4, 9, 10),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/4/type = "method"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath(".")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(10),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"dispose"
}]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_jsg8g"]
_data = {
&"RESET": SubResource("Animation_jsg8g"),
&"default": SubResource("Animation_t8pat")
}
[node name="RaidAlert" type="Control" unique_id=95763662]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_ur8rv")
[node name="Background" type="Control" parent="." unique_id=939332259]
unique_name_in_owner = true
custom_minimum_size = Vector2(960, 540)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -480.0
offset_top = -270.0
offset_right = 480.0
offset_bottom = 270.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_yqbii")
path = "res://UI/assets/video/Backgrounds/Grid-Synthwave.webm"
metadata/_custom_type_script = "uid://ivx7m2bfysip"
[node name="Icon" type="Control" parent="." unique_id=823113899]
unique_name_in_owner = true
custom_minimum_size = Vector2(470, 260)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -195.0
offset_top = -303.0
offset_right = 275.0
offset_bottom = -43.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_yqbii")
path = "res://UI/assets/video/Icons/Computer-Synthwave.webm"
enable_audio = false
metadata/_custom_type_script = "uid://ivx7m2bfysip"
[node name="SubText" type="Label" parent="." unique_id=1794185310]
unique_name_in_owner = true
modulate = Color(1, 1, 1, 0)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -183.0
offset_top = -110.0
offset_right = 183.0
offset_bottom = -18.0
grow_horizontal = 2
grow_vertical = 2
text = "Raid x10"
label_settings = SubResource("LabelSettings_t8pat")
horizontal_alignment = 1
[node name="MainText" type="Label" parent="." unique_id=757351879]
unique_name_in_owner = true
modulate = Color(1, 1, 1, 0)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -145.0
offset_top = -37.5
offset_right = 145.0
offset_bottom = 37.5
grow_horizontal = 2
grow_vertical = 2
text = "None"
label_settings = SubResource("LabelSettings_jsg8g")
horizontal_alignment = 1
[node name="Timeline" type="AnimationPlayer" parent="." unique_id=1438475424]
unique_name_in_owner = true
libraries/ = SubResource("AnimationLibrary_jsg8g")

View file

@ -0,0 +1,39 @@
@tool
extends Alert
class_name SubscriberAlert
@onready var sub_text: Label = %SubText
@onready var main_text: Label = %MainText
@onready var message_text: Label = %MessageText
@onready var timeline: AnimationPlayer = %Timeline
var _chatter: String = "None"
var _msg: String = ""
var _months: int = 0
var _prime: bool = false
var _tier: int = 1
func setup(chatter: String, months: int, prime: bool, tier: int, message: String) -> void:
_chatter = chatter
_months = months
_msg = message
_prime = prime
_tier = tier
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
main_text.text = _chatter
if _months <= 1:
if _prime:
sub_text.text = "New Prime Sub"
else:
sub_text.text = "New Teir %d Sub" % _tier
else:
if _prime:
sub_text.text = "Prime Resub x%d" % _months
else:
sub_text.text = "Teir %d Resub x%d" % [_tier, _months]
message_text.text = _msg
if Engine.is_editor_hint(): return
timeline.play(&"default")

View file

@ -0,0 +1 @@
uid://c6byqfgqyxfbh

View file

@ -0,0 +1,278 @@
[gd_scene format=3 uid="uid://b3o8lxueafbqq"]
[ext_resource type="Script" uid="uid://ivx7m2bfysip" path="res://addons/gde_gozen/video_playback.gd" id="1_b3tp1"]
[ext_resource type="Script" uid="uid://c6byqfgqyxfbh" path="res://UI/Alerts/subscriber_alert.gd" id="1_f1hvy"]
[ext_resource type="FontFile" uid="uid://cx1a4aqqxhsrn" path="res://UI/assets/neon-wave-theme/polentical_neon/Polentical Neon Italic.ttf" id="2_38hii"]
[ext_resource type="FontFile" uid="uid://o4e6chcu01yx" path="res://UI/assets/fonts/Yellowtail.woff2" id="3_4l3sh"]
[sub_resource type="LabelSettings" id="LabelSettings_t8pat"]
font = ExtResource("3_4l3sh")
font_size = 64
font_color = Color(0, 1, 1, 1)
stacked_shadow_count = 2
stacked_shadow_0/offset = Vector2(2, 2)
stacked_shadow_0/color = Color(0.35822138, 0.0011343455, 0.8658768, 1)
stacked_shadow_0/outline_size = 3
stacked_shadow_1/offset = Vector2(4, 4)
stacked_shadow_1/color = Color(1, 0.5023, 0.43550968, 1)
stacked_shadow_1/outline_size = 5
[sub_resource type="LabelSettings" id="LabelSettings_jsg8g"]
font = ExtResource("2_38hii")
font_size = 60
font_color = Color(0.99999994, 0.6120906, 0.16155985, 1)
stacked_shadow_count = 4
stacked_shadow_0/offset = Vector2(2, 2)
stacked_shadow_0/color = Color(0.5568628, 0.003921569, 1, 1)
stacked_shadow_0/outline_size = 2
stacked_shadow_1/offset = Vector2(3, 3)
stacked_shadow_1/color = Color(0.9411765, 0.003921569, 1, 1)
stacked_shadow_1/outline_size = 2
stacked_shadow_2/offset = Vector2(4, 4)
stacked_shadow_2/color = Color(0.9843137, 0.25882354, 0.7254902, 1)
stacked_shadow_2/outline_size = 2
stacked_shadow_3/offset = Vector2(5, 5)
stacked_shadow_3/color = Color(0.99215686, 0.46666667, 0.8039216, 1)
stacked_shadow_3/outline_size = 2
[sub_resource type="LabelSettings" id="LabelSettings_dx50j"]
font_size = 24
[sub_resource type="Animation" id="Animation_jsg8g"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("SubText:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("MainText:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("MessageText:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_t8pat"]
resource_name = "default"
length = 10.0
tracks/0/type = "method"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Background")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"play"
}]
}
tracks/1/type = "method"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Icon")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"play"
}]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("SubText:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 3, 4, 9, 10),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("MainText:modulate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 2, 3, 9, 10),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/4/type = "method"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath(".")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(10),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"dispose"
}]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("MessageText:modulate")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0, 4, 5, 9, 10),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_f1hvy"]
_data = {
&"RESET": SubResource("Animation_jsg8g"),
&"default": SubResource("Animation_t8pat")
}
[node name="SubscriberAlert" type="Control" unique_id=95763662]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_f1hvy")
[node name="Background" type="Control" parent="." unique_id=939332259]
unique_name_in_owner = true
custom_minimum_size = Vector2(960, 540)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -480.0
offset_top = -270.0
offset_right = 480.0
offset_bottom = 270.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_b3tp1")
path = "res://UI/assets/video/Backgrounds/Triangle-Synthwave.webm"
metadata/_custom_type_script = "uid://ivx7m2bfysip"
[node name="Icon" type="Control" parent="." unique_id=823113899]
unique_name_in_owner = true
custom_minimum_size = Vector2(470, 260)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -234.0
offset_top = -303.0
offset_right = 236.0
offset_bottom = -43.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_b3tp1")
path = "res://UI/assets/video/Icons/Hoverboard-Synthwave.webm"
enable_audio = false
metadata/_custom_type_script = "uid://ivx7m2bfysip"
[node name="SubText" type="Label" parent="." unique_id=1794185310]
unique_name_in_owner = true
modulate = Color(1, 1, 1, 0)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -183.0
offset_top = -85.0
offset_right = 183.0
offset_bottom = -25.0
grow_horizontal = 2
grow_vertical = 2
text = "New Sub"
label_settings = SubResource("LabelSettings_t8pat")
horizontal_alignment = 1
[node name="MainText" type="Label" parent="." unique_id=757351879]
unique_name_in_owner = true
modulate = Color(1, 1, 1, 0)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -145.0
offset_top = -37.5
offset_right = 145.0
offset_bottom = 37.5
grow_horizontal = 2
grow_vertical = 2
text = "None"
label_settings = SubResource("LabelSettings_jsg8g")
horizontal_alignment = 1
[node name="MessageText" type="Label" parent="." unique_id=4513558]
unique_name_in_owner = true
modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(1000, 200)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -500.0
offset_top = 55.0
offset_right = 500.0
offset_bottom = 255.0
grow_horizontal = 2
grow_vertical = 2
text = "Born to late to explore Earth, born to early to explore the universe"
label_settings = SubResource("LabelSettings_dx50j")
horizontal_alignment = 1
autowrap_mode = 2
max_lines_visible = 5
[node name="Timeline" type="AnimationPlayer" parent="." unique_id=512554623]
unique_name_in_owner = true
libraries/ = SubResource("AnimationLibrary_f1hvy")

Binary file not shown.

View file

@ -0,0 +1,36 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://o4e6chcu01yx"
path="res://.godot/imported/Yellowtail.woff2-87764a42e0e85c9b21b77a80b21ffabf.fontdata"
[deps]
source_file="res://UI/assets/fonts/Yellowtail.woff2"
dest_files=["res://.godot/imported/Yellowtail.woff2-87764a42e0e85c9b21b77a80b21ffabf.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
modulate_color_glyphs=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

BIN
UI/assets/fonts/rage.woff2 Normal file

Binary file not shown.

View file

@ -0,0 +1,36 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://c30qqiv6sqheh"
path="res://.godot/imported/rage.woff2-9e1ac0979775e72c3e1a8a37972e5b0d.fontdata"
[deps]
source_file="res://UI/assets/fonts/rage.woff2"
dest_files=["res://.godot/imported/rage.woff2-9e1ac0979775e72c3e1a8a37972e5b0d.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
modulate_color_glyphs=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.