Branch for signal refactoring, singleton bus.
This commit is contained in:
parent
ab8643d093
commit
d64504189a
10 changed files with 83 additions and 8 deletions
2
events.gd
Normal file
2
events.gd
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
1
events.gd.uid
Normal file
1
events.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://jibpipn2p1c7
|
||||||
|
|
@ -71,6 +71,8 @@ autoplay = "scroll"
|
||||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||||
|
|
||||||
[node name="UI" parent="CanvasLayer" instance=ExtResource("4_1bvp3")]
|
[node name="UI" parent="CanvasLayer" instance=ExtResource("4_1bvp3")]
|
||||||
|
offset_right = 196.0
|
||||||
|
offset_bottom = 36.0
|
||||||
|
|
||||||
[node name="CenterContainer" type="CenterContainer" parent="CanvasLayer"]
|
[node name="CenterContainer" type="CenterContainer" parent="CanvasLayer"]
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
|
|
|
||||||
14
player.gd
14
player.gd
|
|
@ -1,14 +1,17 @@
|
||||||
extends Area2D
|
extends Area2D
|
||||||
|
|
||||||
signal died
|
signal died
|
||||||
signal shield_changed
|
signal shield_changed(max_value: int, old_value: int, new_value: int)
|
||||||
signal damage_taken
|
signal damage_taken
|
||||||
|
signal shield_damage
|
||||||
|
signal shield_ui
|
||||||
|
|
||||||
|
|
||||||
var shader_active = false
|
var shader_active = false
|
||||||
|
|
||||||
@onready var screensize = get_viewport_rect().size
|
@onready var screensize = get_viewport_rect().size
|
||||||
@export var max_shield = 10
|
@export var max_shield = 10
|
||||||
var shield = max_shield:
|
var shield: int = max_shield:
|
||||||
set = set_shield
|
set = set_shield
|
||||||
@export var speed = 150
|
@export var speed = 150
|
||||||
@export var cooldown = 0.25
|
@export var cooldown = 0.25
|
||||||
|
|
@ -25,9 +28,11 @@ func start():
|
||||||
position = Vector2(screensize.x / 2, screensize.y - 64)
|
position = Vector2(screensize.x / 2, screensize.y - 64)
|
||||||
$GunCooldown.wait_time = cooldown
|
$GunCooldown.wait_time = cooldown
|
||||||
|
|
||||||
func set_shield(value):
|
func set_shield(value: int):
|
||||||
|
var old_value: int = shield
|
||||||
shield = min(max_shield, value)
|
shield = min(max_shield, value)
|
||||||
shield_changed.emit(max_shield, shield)
|
shield_changed.emit(max_shield, old_value, shield)
|
||||||
|
shield_damage.emit()
|
||||||
if shield <= 0:
|
if shield <= 0:
|
||||||
set_process(false)
|
set_process(false)
|
||||||
$Ship.hide()
|
$Ship.hide()
|
||||||
|
|
@ -77,6 +82,7 @@ func _on_area_entered(area):
|
||||||
|
|
||||||
|
|
||||||
func _on_damage_taken() -> void:
|
func _on_damage_taken() -> void:
|
||||||
|
emit_signal("shield_ui")
|
||||||
shader_active = true
|
shader_active = true
|
||||||
$Ship.material.set_shader_parameter("toggle", 1.0)
|
$Ship.material.set_shader_parameter("toggle", 1.0)
|
||||||
await get_tree().create_timer(1).timeout
|
await get_tree().create_timer(1).timeout
|
||||||
|
|
|
||||||
6
progress_bar.gd
Normal file
6
progress_bar.gd
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
extends TextureProgressBar
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
self.value = 0
|
||||||
|
var shield_tween = get_tree().create_tween()
|
||||||
|
shield_tween.tween_property(self, "value", 100, 3).set_trans(Tween.TRANS_LINEAR)
|
||||||
1
progress_bar.gd.uid
Normal file
1
progress_bar.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://b85ktxeoj4b2n
|
||||||
19
progress_bar.tscn
Normal file
19
progress_bar.tscn
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
[gd_scene load_steps=4 format=3 uid="uid://c8s7htpdg4v4i"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://d11molrkdjjh5" path="res://bar_background.png" id="1_q0tf5"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bsl3pxvxiuoqg" path="res://bar_foreground.png" id="2_5xu4y"]
|
||||||
|
[ext_resource type="Script" uid="uid://b85ktxeoj4b2n" path="res://progress_bar.gd" id="3_5xu4y"]
|
||||||
|
|
||||||
|
[node name="ProgressBar" type="TextureProgressBar"]
|
||||||
|
anchors_preset = 10
|
||||||
|
anchor_right = 1.0
|
||||||
|
offset_bottom = 20.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
nine_patch_stretch = true
|
||||||
|
stretch_margin_left = 8
|
||||||
|
stretch_margin_top = 8
|
||||||
|
stretch_margin_right = 8
|
||||||
|
stretch_margin_bottom = 8
|
||||||
|
texture_under = ExtResource("1_q0tf5")
|
||||||
|
texture_progress = ExtResource("2_5xu4y")
|
||||||
|
script = ExtResource("3_5xu4y")
|
||||||
|
|
@ -14,6 +14,10 @@ config/name="shmup01b"
|
||||||
config/features=PackedStringArray("4.5", "Forward Plus")
|
config/features=PackedStringArray("4.5", "Forward Plus")
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
|
[autoload]
|
||||||
|
|
||||||
|
Events="*res://events.gd"
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
window/size/viewport_width=240
|
window/size/viewport_width=240
|
||||||
|
|
|
||||||
30
ui.gd
30
ui.gd
|
|
@ -3,12 +3,36 @@ extends MarginContainer
|
||||||
@onready var shield_bar = $HBoxContainer/ShieldBar
|
@onready var shield_bar = $HBoxContainer/ShieldBar
|
||||||
@onready var score_counter = $HBoxContainer/ScoreCounter
|
@onready var score_counter = $HBoxContainer/ScoreCounter
|
||||||
|
|
||||||
|
var shader_active = false
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
get_node("Player.Ship").node_ready.connect("shield_ui", self, "_on_shield_ui")
|
||||||
|
|
||||||
func update_score(value):
|
func update_score(value):
|
||||||
score_counter.display_digits(value)
|
score_counter.display_digits(value)
|
||||||
|
|
||||||
|
|
||||||
func update_shield(max_value, value):
|
func update_shield(max_value, value, old_value):
|
||||||
var shield_tween = get_tree().create_tween()
|
|
||||||
shield_bar.max_value = max_value
|
shield_bar.max_value = max_value
|
||||||
shield_bar.value = value
|
shield_bar.value = value
|
||||||
shield_tween.tween_property(shield_bar, "value", "max_value", 3,).set_trans(Tween.TRANS_LINEAR)
|
|
||||||
|
print("update_shield"," ","Current ",(value), " ", "(Max ",(max_value),")"," ","Old Value:"," ",old_value)
|
||||||
|
|
||||||
|
if value >= max_value:
|
||||||
|
print("No need to tween!")
|
||||||
|
|
||||||
|
else:
|
||||||
|
print("I should be tweening!")
|
||||||
|
var tween = create_tween()
|
||||||
|
tween.tween_property(shield_bar, "value", (old_value/max_value)*100, .25).set_trans(Tween.TRANS_LINEAR)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
func _on_shield_ui():
|
||||||
|
print("SHIELD FX!")
|
||||||
|
shader_active = true
|
||||||
|
shield_bar.material.set_shader_parameter("toggle", 1.0)
|
||||||
|
await get_tree().create_timer(1).timeout
|
||||||
|
shader_active = false
|
||||||
|
shield_bar.material.set_shader_parameter("toggle", 0.0)
|
||||||
|
|
|
||||||
12
ui.tscn
12
ui.tscn
|
|
@ -1,10 +1,15 @@
|
||||||
[gd_scene load_steps=5 format=3 uid="uid://s6wf3egdqtmh"]
|
[gd_scene load_steps=7 format=3 uid="uid://s6wf3egdqtmh"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://d11molrkdjjh5" path="res://bar_background.png" id="1_m6e0p"]
|
[ext_resource type="Texture2D" uid="uid://d11molrkdjjh5" path="res://bar_background.png" id="1_m6e0p"]
|
||||||
[ext_resource type="Script" uid="uid://b544c65halgk4" path="res://ui.gd" id="1_nltto"]
|
[ext_resource type="Script" uid="uid://b544c65halgk4" path="res://ui.gd" id="1_nltto"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bsl3pxvxiuoqg" path="res://bar_foreground.png" id="2_27fn8"]
|
[ext_resource type="Texture2D" uid="uid://bsl3pxvxiuoqg" path="res://bar_foreground.png" id="2_27fn8"]
|
||||||
|
[ext_resource type="Shader" uid="uid://dfywtah53il1m" path="res://player_hit.gdshader" id="2_ibotj"]
|
||||||
[ext_resource type="PackedScene" uid="uid://5qkcf1cpre32" path="res://score_counter.tscn" id="4_ibotj"]
|
[ext_resource type="PackedScene" uid="uid://5qkcf1cpre32" path="res://score_counter.tscn" id="4_ibotj"]
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_n5ude"]
|
||||||
|
shader = ExtResource("2_ibotj")
|
||||||
|
shader_parameter/toggle = 0.0
|
||||||
|
|
||||||
[node name="UI" type="MarginContainer"]
|
[node name="UI" type="MarginContainer"]
|
||||||
anchors_preset = 10
|
anchors_preset = 10
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
|
|
@ -20,8 +25,11 @@ script = ExtResource("1_nltto")
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="ShieldBar" type="TextureProgressBar" parent="HBoxContainer"]
|
[node name="ShieldBar" type="TextureProgressBar" parent="HBoxContainer"]
|
||||||
|
material = SubResource("ShaderMaterial_n5ude")
|
||||||
custom_minimum_size = Vector2(80, 16)
|
custom_minimum_size = Vector2(80, 16)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
step = 0.0
|
||||||
|
value = 100.0
|
||||||
nine_patch_stretch = true
|
nine_patch_stretch = true
|
||||||
stretch_margin_left = 3
|
stretch_margin_left = 3
|
||||||
stretch_margin_top = 3
|
stretch_margin_top = 3
|
||||||
|
|
@ -32,3 +40,5 @@ texture_progress = ExtResource("2_27fn8")
|
||||||
|
|
||||||
[node name="ScoreCounter" parent="HBoxContainer" instance=ExtResource("4_ibotj")]
|
[node name="ScoreCounter" parent="HBoxContainer" instance=ExtResource("4_ibotj")]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
|
[connection signal="value_changed" from="HBoxContainer/ShieldBar" to="." method="_on_shield_bar_value_changed"]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue