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/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
|||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
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/premult_alpha=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/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
|||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
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/premult_alpha=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/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
|||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
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/premult_alpha=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
|
||||
|
||||
@export var player : Player;
|
||||
@onready var timer : Timer = player.get_node("ActiveItemCooldown")
|
||||
|
||||
func _on_player_active_item_changed(newitem: ActiveItem) -> void:
|
||||
%ItemTexture.texture = newitem.sprite
|
||||
|
||||
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="Shader" uid="uid://d0a7tk6dh1xq1" path="res://item_ui/cooldown.gdshader" id="2_60pal"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8oq0s"]
|
||||
draw_center = false
|
||||
|
|
@ -15,6 +16,10 @@ corner_radius_top_right = 50
|
|||
corner_radius_bottom_right = 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"]
|
||||
anchors_preset = 1
|
||||
anchor_left = 1.0
|
||||
|
|
@ -36,3 +41,7 @@ theme_override_styles/panel = SubResource("StyleBoxFlat_8oq0s")
|
|||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
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:
|
||||
if (player.active_item == null):
|
||||
player.active_item = self
|
||||
|
||||
return true
|
||||
return false
|
||||
|
||||
|
|
|
|||
|
|
@ -2,9 +2,13 @@ extends ActiveItem
|
|||
@export var cooldown = 1
|
||||
@export var arrow_scene : PackedScene
|
||||
|
||||
func collect():
|
||||
player.set_cooldown(cooldown)
|
||||
return super.collect()
|
||||
|
||||
|
||||
func activate():
|
||||
player.item_cooldown = cooldown
|
||||
player.activate_cooldown()
|
||||
var arrow : Area2D = arrow_scene.instantiate()
|
||||
get_tree().get_root().add_child(arrow)
|
||||
arrow.position = player.position
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ collision_layer = 0
|
|||
collision_mask = 4
|
||||
script = ExtResource("1_xppub")
|
||||
arrow_scene = ExtResource("2_0id2q")
|
||||
sprite = ExtResource("2_gllxn")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
scale = Vector2(3.1, 3.1)
|
||||
|
|
|
|||
|
|
@ -1,9 +1,13 @@
|
|||
extends ActiveItem
|
||||
var cooldown = 10
|
||||
|
||||
func collect():
|
||||
player.set_cooldown(cooldown)
|
||||
return super.collect()
|
||||
|
||||
|
||||
func activate():
|
||||
player.item_cooldown = cooldown
|
||||
player.activate_cooldown()
|
||||
player.reset_to_velocity = Vector2(0,1)
|
||||
await get_tree().create_timer(0.1).timeout
|
||||
player.reset_to_velocity = Vector2(0, -2400)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[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"]
|
||||
|
||||
[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/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
|||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
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/premult_alpha=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/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
|||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
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/premult_alpha=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/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
|||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
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/premult_alpha=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/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
|||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
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/premult_alpha=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/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
|||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
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/premult_alpha=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/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
|
|
@ -25,6 +27,10 @@ mipmaps/generate=false
|
|||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
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/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
|
|
|
|||
|
|
@ -55,6 +55,13 @@ var active_item : ActiveItem = null:
|
|||
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:
|
||||
max_hp_changed.emit(max_hp)
|
||||
health_changed.emit(current_hp)
|
||||
|
|
@ -79,8 +86,7 @@ func manage_attack(delta : float):
|
|||
sword.swing()
|
||||
atk_timer = atk_cooldown
|
||||
|
||||
func manage_active(delta : float):
|
||||
# item_cooldown = max(item_cooldown - delta, 0)
|
||||
func manage_active(_delta : float):
|
||||
if(active_item != null and Input.is_action_just_pressed("item") and active_item_cooldown.is_stopped()):
|
||||
active_item.activate()
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ config_version=5
|
|||
|
||||
config/name="The Dark Side of Earth"
|
||||
run/main_scene="uid://cxo6bq26huau7"
|
||||
config/features=PackedStringArray("4.4", "Forward Plus")
|
||||
config/features=PackedStringArray("4.5", "Forward Plus")
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
[display]
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue