Made the item display work (incl. cooldown)
This commit is contained in:
parent
82acee9e00
commit
17142e2a5b
20 changed files with 116 additions and 8 deletions
|
|
@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/Building 1x2 fixed.png-e90afc0d25a8919ada5700
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/Building 2x1 downside.png-4b432eb4152bab7dd59
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/Building 2x1 fixed.png-b02748fa52aebae62f987c
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
22
item_ui/cooldown.gdshader
Normal file
22
item_ui/cooldown.gdshader
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
shader_type canvas_item;
|
||||||
|
|
||||||
|
uniform float percentage;
|
||||||
|
|
||||||
|
void vertex() {
|
||||||
|
// Called for every vertex the material is visible on.
|
||||||
|
}
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
vec2 coord = UV - .5;
|
||||||
|
float angle = atan(coord.x, coord.y);
|
||||||
|
|
||||||
|
float draw = float(angle + PI > percentage * TAU);
|
||||||
|
COLOR *= 1. - draw;
|
||||||
|
|
||||||
|
//COLOR = vec4(angle);
|
||||||
|
}
|
||||||
|
|
||||||
|
//void light() {
|
||||||
|
// // Called for every pixel for every light affecting the CanvasItem.
|
||||||
|
// // Uncomment to replace the default light processing function with this one.
|
||||||
|
//}
|
||||||
1
item_ui/cooldown.gdshader.uid
Normal file
1
item_ui/cooldown.gdshader.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://d0a7tk6dh1xq1
|
||||||
|
|
@ -1,9 +1,15 @@
|
||||||
extends MarginContainer
|
extends MarginContainer
|
||||||
|
|
||||||
@export var player : Player;
|
@export var player : Player;
|
||||||
|
@onready var timer : Timer = player.get_node("ActiveItemCooldown")
|
||||||
|
|
||||||
func _on_player_active_item_changed(newitem: ActiveItem) -> void:
|
func _on_player_active_item_changed(newitem: ActiveItem) -> void:
|
||||||
%ItemTexture.texture = newitem.sprite
|
%ItemTexture.texture = newitem.sprite
|
||||||
|
|
||||||
func _process(_delta: float) -> void:
|
func _process(_delta: float) -> void:
|
||||||
player
|
# visible = timer.time_left != 0;
|
||||||
|
if not visible: return;
|
||||||
|
|
||||||
|
var percentage = timer.time_left / timer.wait_time;
|
||||||
|
$CooldownOverlay.material.set_shader_parameter("percentage", percentage);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://73g8y37skebh"]
|
[gd_scene load_steps=5 format=3 uid="uid://73g8y37skebh"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://eusti457vwq1" path="res://item_ui/item_ui.gd" id="1_lfuq2"]
|
[ext_resource type="Script" uid="uid://eusti457vwq1" path="res://item_ui/item_ui.gd" id="1_lfuq2"]
|
||||||
|
[ext_resource type="Shader" uid="uid://d0a7tk6dh1xq1" path="res://item_ui/cooldown.gdshader" id="2_60pal"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8oq0s"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8oq0s"]
|
||||||
draw_center = false
|
draw_center = false
|
||||||
|
|
@ -15,6 +16,10 @@ corner_radius_top_right = 50
|
||||||
corner_radius_bottom_right = 50
|
corner_radius_bottom_right = 50
|
||||||
corner_radius_bottom_left = 50
|
corner_radius_bottom_left = 50
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_de2rv"]
|
||||||
|
shader = ExtResource("2_60pal")
|
||||||
|
shader_parameter/percentage = 1.01
|
||||||
|
|
||||||
[node name="ItemUI" type="MarginContainer"]
|
[node name="ItemUI" type="MarginContainer"]
|
||||||
anchors_preset = 1
|
anchors_preset = 1
|
||||||
anchor_left = 1.0
|
anchor_left = 1.0
|
||||||
|
|
@ -36,3 +41,7 @@ theme_override_styles/panel = SubResource("StyleBoxFlat_8oq0s")
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
expand_mode = 1
|
expand_mode = 1
|
||||||
|
|
||||||
|
[node name="CooldownOverlay" type="Panel" parent="."]
|
||||||
|
material = SubResource("ShaderMaterial_de2rv")
|
||||||
|
layout_mode = 2
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ class_name ActiveItem extends Item
|
||||||
func collect() -> bool:
|
func collect() -> bool:
|
||||||
if (player.active_item == null):
|
if (player.active_item == null):
|
||||||
player.active_item = self
|
player.active_item = self
|
||||||
|
|
||||||
return true
|
return true
|
||||||
return false
|
return false
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,13 @@ extends ActiveItem
|
||||||
@export var cooldown = 1
|
@export var cooldown = 1
|
||||||
@export var arrow_scene : PackedScene
|
@export var arrow_scene : PackedScene
|
||||||
|
|
||||||
|
func collect():
|
||||||
|
player.set_cooldown(cooldown)
|
||||||
|
return super.collect()
|
||||||
|
|
||||||
|
|
||||||
func activate():
|
func activate():
|
||||||
player.item_cooldown = cooldown
|
player.activate_cooldown()
|
||||||
var arrow : Area2D = arrow_scene.instantiate()
|
var arrow : Area2D = arrow_scene.instantiate()
|
||||||
get_tree().get_root().add_child(arrow)
|
get_tree().get_root().add_child(arrow)
|
||||||
arrow.position = player.position
|
arrow.position = player.position
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ collision_layer = 0
|
||||||
collision_mask = 4
|
collision_mask = 4
|
||||||
script = ExtResource("1_xppub")
|
script = ExtResource("1_xppub")
|
||||||
arrow_scene = ExtResource("2_0id2q")
|
arrow_scene = ExtResource("2_0id2q")
|
||||||
|
sprite = ExtResource("2_gllxn")
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
scale = Vector2(3.1, 3.1)
|
scale = Vector2(3.1, 3.1)
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,13 @@
|
||||||
extends ActiveItem
|
extends ActiveItem
|
||||||
var cooldown = 10
|
var cooldown = 10
|
||||||
|
|
||||||
|
func collect():
|
||||||
|
player.set_cooldown(cooldown)
|
||||||
|
return super.collect()
|
||||||
|
|
||||||
|
|
||||||
func activate():
|
func activate():
|
||||||
player.item_cooldown = cooldown
|
player.activate_cooldown()
|
||||||
player.reset_to_velocity = Vector2(0,1)
|
player.reset_to_velocity = Vector2(0,1)
|
||||||
await get_tree().create_timer(0.1).timeout
|
await get_tree().create_timer(0.1).timeout
|
||||||
player.reset_to_velocity = Vector2(0, -2400)
|
player.reset_to_velocity = Vector2(0, -2400)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_scene load_steps=4 format=3 uid="uid://ewe36lqcjojk"]
|
[gd_scene load_steps=4 format=3 uid="uid://ewe36lqcjojk"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://items/updash.gd" id="1_ghbl6"]
|
[ext_resource type="Script" uid="uid://bbwsc2a2hd0ow" path="res://items/updash.gd" id="1_ghbl6"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cy70quh6k3s1j" path="res://icon.svg" id="1_ptc3l"]
|
[ext_resource type="Texture2D" uid="uid://cy70quh6k3s1j" path="res://icon.svg" id="1_ptc3l"]
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_ghbl6"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_ghbl6"]
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/Walk 1.png-47c623e9d3540b4a00d2bddf52ae0b2a.c
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/Walk 2.png-5dea4fdec55fa43e26680e08090fd654.c
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/Walk 3.png-27890c0cb512383b8ecbd848c73efee1.c
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/Walk 4.png-232b1eae2acf3ad82130431014262cde.c
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/Walk 5.png-cfb8eb15ace876127c083283fe74cdc0.c
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/Walk 6.png-f243f98e182be67eb8681a11d34ee554.c
|
||||||
compress/mode=0
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=true
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,13 @@ var active_item : ActiveItem = null:
|
||||||
active_item_changed.emit(active_item)
|
active_item_changed.emit(active_item)
|
||||||
|
|
||||||
|
|
||||||
|
func set_cooldown(cooldown):
|
||||||
|
active_item_cooldown.wait_time = cooldown
|
||||||
|
|
||||||
|
func activate_cooldown():
|
||||||
|
active_item_cooldown.start()
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
max_hp_changed.emit(max_hp)
|
max_hp_changed.emit(max_hp)
|
||||||
health_changed.emit(current_hp)
|
health_changed.emit(current_hp)
|
||||||
|
|
@ -79,8 +86,7 @@ func manage_attack(delta : float):
|
||||||
sword.swing()
|
sword.swing()
|
||||||
atk_timer = atk_cooldown
|
atk_timer = atk_cooldown
|
||||||
|
|
||||||
func manage_active(delta : float):
|
func manage_active(_delta : float):
|
||||||
# item_cooldown = max(item_cooldown - delta, 0)
|
|
||||||
if(active_item != null and Input.is_action_just_pressed("item") and active_item_cooldown.is_stopped()):
|
if(active_item != null and Input.is_action_just_pressed("item") and active_item_cooldown.is_stopped()):
|
||||||
active_item.activate()
|
active_item.activate()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ config_version=5
|
||||||
|
|
||||||
config/name="The Dark Side of Earth"
|
config/name="The Dark Side of Earth"
|
||||||
run/main_scene="uid://cxo6bq26huau7"
|
run/main_scene="uid://cxo6bq26huau7"
|
||||||
config/features=PackedStringArray("4.4", "Forward Plus")
|
config/features=PackedStringArray("4.5", "Forward Plus")
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue