@ -0,0 +1,2 @@
|
||||
# Normalize EOL for all files that Git considers text files.
|
||||
* text=auto eol=lf
|
@ -0,0 +1,2 @@
|
||||
# Godot 4+ specific ignores
|
||||
.godot/
|
@ -0,0 +1,14 @@
|
||||
extends AnimationPlayer
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
play("default")
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(_delta):
|
||||
pass
|
||||
|
||||
|
||||
func _on_animation_finished(_anim_name):
|
||||
play("default")
|
@ -0,0 +1,20 @@
|
||||
extends Label
|
||||
|
||||
|
||||
var _counter : int = 10
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
_counter = 10
|
||||
|
||||
func init(value:int):
|
||||
_counter = value
|
||||
set_text("%d" % _counter)
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(_delta):
|
||||
pass
|
||||
|
||||
func _on_next_round():
|
||||
_counter -= 1
|
||||
set_text("%d" % _counter)
|
@ -0,0 +1,28 @@
|
||||
extends Node2D
|
||||
|
||||
@onready var _damage_animation = $AnimationPlayer
|
||||
@onready var _damage_label = $Label
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
visible = false
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(_delta):
|
||||
pass
|
||||
|
||||
func show_damage(amount:int):
|
||||
visible = true
|
||||
_damage_label.visible = false
|
||||
_damage_label.set_text("%d" % amount)
|
||||
_damage_animation.play("Pop-Up", -1, 2.5)
|
||||
|
||||
func _on_animation_finished(anim_name):
|
||||
if anim_name == "Pop-Up":
|
||||
_damage_label.visible = true
|
||||
_damage_animation.play("Show", -1, 2.0)
|
||||
elif anim_name == "Show":
|
||||
_damage_label.visible = false
|
||||
_damage_animation.play("Fade-Out", -1, 2.5)
|
||||
else:
|
||||
visible = false
|
@ -0,0 +1,102 @@
|
||||
[gd_scene load_steps=9 format=3 uid="uid://blhw157wwm02k"]
|
||||
|
||||
[ext_resource type="Script" path="res://DamageLabel.gd" id="1_bkmpf"]
|
||||
[ext_resource type="Texture2D" uid="uid://lrlnbd1xfm00" path="res://assets/Sprites/DamageBubble.png" id="1_hhymi"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_su23q"]
|
||||
resource_name = "Pop-Up"
|
||||
length = 0.3
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [0, 1, 2]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_dlbp2"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_a8shb"]
|
||||
resource_name = "Show"
|
||||
length = 0.5
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [2, 2, 2, 2, 2]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_o4lh5"]
|
||||
resource_name = "Fade-Out"
|
||||
length = 0.3
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [2, 1, 0]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_iir0v"]
|
||||
_data = {
|
||||
"Fade-Out": SubResource("Animation_o4lh5"),
|
||||
"Pop-Up": SubResource("Animation_su23q"),
|
||||
"RESET": SubResource("Animation_dlbp2"),
|
||||
"Show": SubResource("Animation_a8shb")
|
||||
}
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_ofpea"]
|
||||
font_color = Color(0.882353, 0, 0.0431373, 1)
|
||||
|
||||
[node name="DamageLabel" type="Node2D"]
|
||||
script = ExtResource("1_bkmpf")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("1_hhymi")
|
||||
hframes = 3
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_iir0v")
|
||||
}
|
||||
|
||||
[node name="Label" type="Label" parent="."]
|
||||
offset_left = -19.0
|
||||
offset_top = -12.0
|
||||
offset_right = 21.0
|
||||
offset_bottom = 14.0
|
||||
text = "99"
|
||||
label_settings = SubResource("LabelSettings_ofpea")
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_finished"]
|
@ -0,0 +1,103 @@
|
||||
extends Node2D
|
||||
|
||||
signal deal_damage(amount:int)
|
||||
signal health_changed(old_value, new_value)
|
||||
signal stamina_changed(old_value, new_value)
|
||||
signal actions_done
|
||||
|
||||
@onready var _animation_player = $AnimationPlayer
|
||||
@onready var _animation_sprite = $Sprite2D
|
||||
@onready var _animation_damage_label = $DamageLabel
|
||||
|
||||
@export
|
||||
var orientation:int = 1
|
||||
@export
|
||||
var health:int = 100
|
||||
@export
|
||||
var stamina:int = 100
|
||||
@export
|
||||
var descriptor:String = "Foo"
|
||||
|
||||
|
||||
var _actions = []
|
||||
var _action_queue = []
|
||||
var _health = 0
|
||||
var _stamina = 0
|
||||
|
||||
# Public methods
|
||||
func init(actions):
|
||||
_actions = actions.duplicate(true)
|
||||
_health = health
|
||||
_stamina = stamina
|
||||
health_changed.emit(_health, _health)
|
||||
stamina_changed.emit(_stamina, _stamina)
|
||||
|
||||
func is_animation_idle() -> bool:
|
||||
return !_animation_player.is_playing() && _action_queue.is_empty()
|
||||
|
||||
func is_animation_done() -> bool:
|
||||
return is_animation_idle() && _actions.is_empty()
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
_animation_sprite.flip_h = orientation
|
||||
_animation_player.play("RESET")
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(_delta):
|
||||
pass
|
||||
|
||||
func _take_damage(amount : int):
|
||||
var old_health = _health
|
||||
_health -= amount
|
||||
if _animation_player.is_playing():
|
||||
print_debug("%s -> %s: _take_damage -> skip current animation %s!" % [Time.get_ticks_msec(), descriptor,_animation_player.current_animation])
|
||||
_animation_player.stop()
|
||||
|
||||
print_debug("%s -> %s: _take_damage -> play HIT animation!" % [Time.get_ticks_msec(), descriptor])
|
||||
_animation_player.play("Hit")
|
||||
_animation_damage_label.show_damage(amount)
|
||||
|
||||
health_changed.emit(old_health, _health)
|
||||
|
||||
func _alter_stamina(amount : int):
|
||||
if _stamina <= stamina:
|
||||
var old_stamina = _stamina
|
||||
_stamina = min(stamina, _stamina + amount)
|
||||
stamina_changed.emit(old_stamina, _stamina)
|
||||
|
||||
func _on_next_round():
|
||||
print_debug("%s -> %s: _on_next_round" % [Time.get_ticks_msec(), descriptor])
|
||||
if !_actions.is_empty():
|
||||
_alter_stamina(5)
|
||||
_action_queue = _actions.pop_front()
|
||||
_schedule_next_action()
|
||||
|
||||
func _schedule_next_action():
|
||||
if _animation_player.is_playing():
|
||||
return
|
||||
|
||||
if _action_queue.is_empty():
|
||||
_animation_sprite.frame = 0
|
||||
actions_done.emit()
|
||||
return
|
||||
|
||||
var action : String = _action_queue.pop_front()
|
||||
_animation_player.play(action)
|
||||
print_debug("%s -> %s: _schedule_next_action -> plays %s!" % [Time.get_ticks_msec(), descriptor, action])
|
||||
|
||||
if action.begins_with("Attack1"):
|
||||
deal_damage.emit(5)
|
||||
_alter_stamina(-10)
|
||||
elif action.begins_with("Attack2"):
|
||||
deal_damage.emit(15)
|
||||
_alter_stamina(-20)
|
||||
|
||||
|
||||
func _on_animation_finished(anim_name):
|
||||
print_debug("%s -> %s: _on_animation_finished -> %s!" % [Time.get_ticks_msec(), descriptor, anim_name])
|
||||
_schedule_next_action()
|
||||
|
||||
|
||||
func _on_animation_started(anim_name):
|
||||
print_debug("%s -> %s: _on_animation_started -> %s!" % [Time.get_ticks_msec(), descriptor, anim_name])
|
@ -0,0 +1,243 @@
|
||||
[gd_scene load_steps=17 format=3 uid="uid://di8on8rry21wa"]
|
||||
|
||||
[ext_resource type="Script" path="res://Fighter.gd" id="1_k2s5v"]
|
||||
[ext_resource type="Texture2D" uid="uid://cgshiy0fb84fy" path="res://assets/Sprites/red hood itch free Copy-Sheet.png" id="2_y8862"]
|
||||
[ext_resource type="PackedScene" uid="uid://blhw157wwm02k" path="res://DamageLabel.tscn" id="3_nllc3"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_uyuin"]
|
||||
resource_name = "Attack1"
|
||||
length = 0.6
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [57, 58, 59, 60, 61]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_wa17f"]
|
||||
resource_name = "Attack1.2"
|
||||
length = 0.6
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [62, 63, 64, 65, 66, 67]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_663x5"]
|
||||
resource_name = "Attack1.3"
|
||||
length = 1.2
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_dwteb"]
|
||||
resource_name = "Attack2.1"
|
||||
length = 0.9
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [80, 81, 82, 83, 84, 85, 86, 87, 88]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_qpk3d"]
|
||||
resource_name = "Attack2.2"
|
||||
length = 1.4
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_c0pf4"]
|
||||
resource_name = "Attack2.3"
|
||||
length = 1.7
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_3lxjh"]
|
||||
resource_name = "Hit"
|
||||
length = 0.6
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [121, 122, 123, 124, 125, 126]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_q3ojn"]
|
||||
resource_name = "New"
|
||||
length = 1.7
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_hs612"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_o3s7g"]
|
||||
resource_name = "Test"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [25, 26, 27, 28, 29, 30, 31, 32, 33]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_nqpts"]
|
||||
resource_name = "Slide"
|
||||
length = 0.4
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [52, 53, 54, 55]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_2ytur"]
|
||||
resource_name = "Walk"
|
||||
length = 2.4
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_jbrqc"]
|
||||
_data = {
|
||||
"Attack1.1": SubResource("Animation_uyuin"),
|
||||
"Attack1.2": SubResource("Animation_wa17f"),
|
||||
"Attack1.3": SubResource("Animation_663x5"),
|
||||
"Attack2.1": SubResource("Animation_dwteb"),
|
||||
"Attack2.2": SubResource("Animation_qpk3d"),
|
||||
"Attack2.3": SubResource("Animation_c0pf4"),
|
||||
"Hit": SubResource("Animation_3lxjh"),
|
||||
"Jump": SubResource("Animation_q3ojn"),
|
||||
"RESET": SubResource("Animation_hs612"),
|
||||
"Shoot": SubResource("Animation_o3s7g"),
|
||||
"Slide": SubResource("Animation_nqpts"),
|
||||
"Walk": SubResource("Animation_2ytur")
|
||||
}
|
||||
|
||||
[node name="Fighter" type="Node2D"]
|
||||
scale = Vector2(2, 2)
|
||||
script = ExtResource("1_k2s5v")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("2_y8862")
|
||||
hframes = 12
|
||||
vframes = 11
|
||||
metadata/_aseprite_wizard_config_ = {
|
||||
"layer": "",
|
||||
"o_ex_p": "",
|
||||
"o_folder": "",
|
||||
"o_name": "",
|
||||
"only_visible": false,
|
||||
"op_exp": false,
|
||||
"player": "LhsPlayer/AnimationPlayer",
|
||||
"source": "res://assets/Sprites/red hood itch free.aseprite"
|
||||
}
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
speed_scale = 1.5
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_jbrqc")
|
||||
}
|
||||
|
||||
[node name="DamageLabel" parent="." instance=ExtResource("3_nllc3")]
|
||||
position = Vector2(-9, -5)
|
||||
scale = Vector2(0.6, 0.6)
|
||||
|
||||
[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_finished"]
|
||||
[connection signal="animation_started" from="AnimationPlayer" to="." method="_on_animation_started"]
|
@ -0,0 +1,10 @@
|
||||
extends Label
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(_delta):
|
||||
set_text("FPS %d" % Engine.get_frames_per_second())
|
@ -0,0 +1,14 @@
|
||||
extends TextureProgressBar
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(_delta):
|
||||
pass
|
||||
|
||||
func _on_value_changed(_old_value, new_value):
|
||||
value = new_value
|
@ -0,0 +1,23 @@
|
||||
extends Label
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
var arguments = {}
|
||||
for argument in OS.get_cmdline_user_args():
|
||||
if argument.find("=") > -1:
|
||||
var key_value = argument.split("=")
|
||||
arguments[key_value[0].lstrip("--")] = key_value[1]
|
||||
else:
|
||||
# Options without an argument will be present in the dictionary,
|
||||
# with the value set to an empty string.
|
||||
arguments[argument.lstrip("--")] = ""
|
||||
|
||||
if "session" in arguments.keys():
|
||||
set_text("Session " + arguments["session"])
|
||||
else:
|
||||
set_text("Session <Unknown>")
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(_delta):
|
||||
pass
|
After Width: | Height: | Size: 243 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c6egobfwy3suu"
|
||||
path="res://.godot/imported/splash_4.jpg-aec6432bf92c00447c7f41b7edbf4db8.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Splash/splash_4.jpg"
|
||||
dest_files=["res://.godot/imported/splash_4.jpg-aec6432bf92c00447c7f41b7edbf4db8.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 353 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cc3tklklixv04"
|
||||
path="res://.godot/imported/splash_4.png-8c13a423662c2f2de9a069f431ee769c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Splash/splash_4.png"
|
||||
dest_files=["res://.godot/imported/splash_4.png-8c13a423662c2f2de9a069f431ee769c.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 213 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c7wuoc8qbhlrw"
|
||||
path="res://.godot/imported/splash_b.jpg-49881c0a1ab8503770503d63a24b311c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Splash/splash_b.jpg"
|
||||
dest_files=["res://.godot/imported/splash_b.jpg-49881c0a1ab8503770503d63a24b311c.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 338 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://yl2w2pc0bk3w"
|
||||
path="res://.godot/imported/splash_b.png-7cb64c9adf080b0c59f3e146533b3b46.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Splash/splash_b.png"
|
||||
dest_files=["res://.godot/imported/splash_b.png-7cb64c9adf080b0c59f3e146533b3b46.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 711 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ddsu16o54xyph"
|
||||
path="res://.godot/imported/086-OtcZb45.png-10a7249bfbc9e07e65d4f6672a54f1d7.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Sprites/086-OtcZb45.png"
|
||||
dest_files=["res://.godot/imported/086-OtcZb45.png-10a7249bfbc9e07e65d4f6672a54f1d7.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://lrlnbd1xfm00"
|
||||
path="res://.godot/imported/DamageBubble.png-5b2fd810d7bf38b4b76f5cb33e22d0a4.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Sprites/DamageBubble.png"
|
||||
dest_files=["res://.godot/imported/DamageBubble.png-5b2fd810d7bf38b4b76f5cb33e22d0a4.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 573 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bxl54clixbbhy"
|
||||
path="res://.godot/imported/DragonBall-Xenoverse-Arena.png-928e4be9a916840f77aafddf89bc8456.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Sprites/DragonBall-Xenoverse-Arena.png"
|
||||
dest_files=["res://.godot/imported/DragonBall-Xenoverse-Arena.png-928e4be9a916840f77aafddf89bc8456.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 5.2 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dmo6obx17vqtk"
|
||||
path="res://.godot/imported/idle sheet-Sheet.png-8f9e4b284c9de16530e5a3c1ab340fde.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Sprites/idle sheet-Sheet.png"
|
||||
dest_files=["res://.godot/imported/idle sheet-Sheet.png-8f9e4b284c9de16530e5a3c1ab340fde.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 2.6 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dty6tvry0a7h6"
|
||||
path="res://.godot/imported/itch hurt 2 sheet-Sheet.png-01a49a03e6f26544033a74b56a7ac285.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Sprites/itch hurt 2 sheet-Sheet.png"
|
||||
dest_files=["res://.godot/imported/itch hurt 2 sheet-Sheet.png-01a49a03e6f26544033a74b56a7ac285.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 6.7 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://v6d20ena7j2"
|
||||
path="res://.godot/imported/itch jump sheet-Sheet.png-dd35a8a8b5290dbab37d65339baae842.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Sprites/itch jump sheet-Sheet.png"
|
||||
dest_files=["res://.godot/imported/itch jump sheet-Sheet.png-dd35a8a8b5290dbab37d65339baae842.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 11 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://br8p7qgpesh04"
|
||||
path="res://.godot/imported/itch light atk sheet-Sheet.png-8d2a77a467254821003790058b233a9a.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Sprites/itch light atk sheet-Sheet.png"
|
||||
dest_files=["res://.godot/imported/itch light atk sheet-Sheet.png-8d2a77a467254821003790058b233a9a.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 9.5 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://demg154icj560"
|
||||
path="res://.godot/imported/itch run-Sheet sheet.png-cfb83702c160655e7e28942cdcc1689d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Sprites/itch run-Sheet sheet.png"
|
||||
dest_files=["res://.godot/imported/itch run-Sheet sheet.png-cfb83702c160655e7e28942cdcc1689d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 59 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cgshiy0fb84fy"
|
||||
path="res://.godot/imported/red hood itch free Copy-Sheet.png-f6242d37aa139ebe89862e871759371c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Sprites/red hood itch free Copy-Sheet.png"
|
||||
dest_files=["res://.godot/imported/red hood itch free Copy-Sheet.png-f6242d37aa139ebe89862e871759371c.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 2.4 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c3c1iopiabxli"
|
||||
path="res://.godot/imported/run turnaround-Sheet.png-281f7718fac02664775bf7b0c40b151f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Sprites/run turnaround-Sheet.png"
|
||||
dest_files=["res://.godot/imported/run turnaround-Sheet.png-281f7718fac02664775bf7b0c40b151f.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 107 B |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bg5m7faciqihv"
|
||||
path="res://.godot/imported/texture-bar-outer-0001.png-8c20adbbb2e6b6603404c387a943e9e6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Sprites/texture-bar-outer-0001.png"
|
||||
dest_files=["res://.godot/imported/texture-bar-outer-0001.png-8c20adbbb2e6b6603404c387a943e9e6.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 107 B |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c6aahxuqcgcnp"
|
||||
path="res://.godot/imported/texture-bar-progress-0001.png-93114ae57f8896829549d513faa7abd9.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Sprites/texture-bar-progress-0001.png"
|
||||
dest_files=["res://.godot/imported/texture-bar-progress-0001.png-93114ae57f8896829549d513faa7abd9.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
After Width: | Height: | Size: 1.6 KiB |
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b36nhtg8vabjd"
|
||||
path="res://.godot/imported/wall slide-Sheet.png-e42eb86df80b96ec1239d7e728c0ca4d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/Sprites/wall slide-Sheet.png"
|
||||
dest_files=["res://.godot/imported/wall slide-Sheet.png-e42eb86df80b96ec1239d7e728c0ca4d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
@ -0,0 +1,3 @@
|
||||
# Links
|
||||
|
||||
https://overmental.com/content/fighting-game-backgrounds-without-fighters-are-surprisingly-beautiful-7668/5
|
@ -0,0 +1,19 @@
|
||||
# Introduction
|
||||
|
||||
The `Match-Report` is a textual representation of a fight between two opponents.
|
||||
|
||||
## Terminology
|
||||
|
||||
### Match
|
||||
|
||||
A `Match` can be best described as a competition between two opponents. A `Match` ends when one of the competitors is declared the `winner`.
|
||||
|
||||
### Round
|
||||
|
||||
### Tick
|
||||
|
||||
One `Round` consists out of 60 `Ticks` that mostly correlates to the 60s duration (but this is not a hard requirement).
|
||||
Within a `Tick` one of the competitors can perform an `Action`.
|
||||
With `Combos` it is possible that one competitor can perform multiple `Action`s within the same tick.
|
||||
|
||||
### Action
|
@ -0,0 +1,39 @@
|
||||
[preset.0]
|
||||
|
||||
name="AnimeDemo"
|
||||
platform="Web"
|
||||
runnable=true
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="scenes"
|
||||
export_files=PackedStringArray("res://fight.tscn", "res://Fighter.tscn")
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="../../build/Animegame-Client/Web/index.html"
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_encryption_key=""
|
||||
|
||||
[preset.0.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
variant/extensions_support=false
|
||||
vram_texture_compression/for_desktop=true
|
||||
vram_texture_compression/for_mobile=false
|
||||
html/export_icon=true
|
||||
html/custom_html_shell=""
|
||||
html/head_include=""
|
||||
html/canvas_resize_policy=2
|
||||
html/focus_canvas_on_start=true
|
||||
html/experimental_virtual_keyboard=false
|
||||
progressive_web_app/enabled=false
|
||||
progressive_web_app/offline_page=""
|
||||
progressive_web_app/display=1
|
||||
progressive_web_app/orientation=0
|
||||
progressive_web_app/icon_144x144=""
|
||||
progressive_web_app/icon_180x180=""
|
||||
progressive_web_app/icon_512x512=""
|
||||
progressive_web_app/background_color=Color(0, 0, 0, 1)
|
@ -0,0 +1,64 @@
|
||||
extends Node2D
|
||||
|
||||
@onready var _lhs_fighter = $LhsFighter
|
||||
@onready var _rhs_fighter = $RhsFighter
|
||||
@onready var _timer = $Timer
|
||||
@onready var _round_label = $CountdownLabel
|
||||
|
||||
signal next_round
|
||||
|
||||
var _lhs_figher_ready = false
|
||||
var _rhs_figher_ready = false
|
||||
|
||||
var fight_script = {
|
||||
"lhs": [
|
||||
[],
|
||||
["Attack1.1", "Attack1.2", "Attack1.3"],
|
||||
[],
|
||||
[],
|
||||
["Attack2.1", "Attack2.2", "Attack2.3"],
|
||||
[],
|
||||
[],
|
||||
],
|
||||
"rhs": [
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
["Attack1.1", "Attack1.2"],
|
||||
[],
|
||||
["Attack2.1"],
|
||||
[],
|
||||
]
|
||||
}
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
_reset()
|
||||
_timer.start()
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(_delta):
|
||||
if _lhs_fighter.is_animation_done() && _rhs_fighter.is_animation_done() && Input.is_anything_pressed():
|
||||
_reset()
|
||||
|
||||
func _reset():
|
||||
_lhs_fighter.init(fight_script["lhs"])
|
||||
_rhs_fighter.init(fight_script["rhs"])
|
||||
_round_label.init(len(fight_script["lhs"] + 1))
|
||||
_lhs_figher_ready = true
|
||||
_rhs_figher_ready = true
|
||||
|
||||
func _on_timer_timeout():
|
||||
print_debug("%s -> Fight: _lhs_figher_ready -> %s && %s && %s && %s!" % [Time.get_ticks_msec(), _lhs_figher_ready, _rhs_figher_ready, _lhs_fighter.is_animation_idle(),_rhs_fighter.is_animation_idle()])
|
||||
if _lhs_figher_ready && _rhs_figher_ready && _lhs_fighter.is_animation_idle() && _rhs_fighter.is_animation_idle():
|
||||
_lhs_figher_ready = false
|
||||
_rhs_figher_ready = false
|
||||
|
||||
print_debug("")
|
||||
next_round.emit()
|
||||
|
||||
func _on_lhs_fighter_actions_done():
|
||||
_lhs_figher_ready = true
|
||||
|
||||
func _on_rhs_fighter_actions_done():
|
||||
_rhs_figher_ready = true
|
@ -0,0 +1,199 @@
|
||||
[gd_scene load_steps=14 format=3 uid="uid://c6k2qn8l56rf5"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://di8on8rry21wa" path="res://Fighter.tscn" id="1_1yg04"]
|
||||
[ext_resource type="Script" path="res://fight.gd" id="1_3edp6"]
|
||||
[ext_resource type="Texture2D" uid="uid://ddsu16o54xyph" path="res://assets/Sprites/086-OtcZb45.png" id="2_h40sr"]
|
||||
[ext_resource type="Script" path="res://Background.gd" id="3_dsftl"]
|
||||
[ext_resource type="Script" path="res://FpsLabel.gd" id="3_xkxlv"]
|
||||
[ext_resource type="Script" path="res://UserLabel.gd" id="4_beyjo"]
|
||||
[ext_resource type="Texture2D" uid="uid://c6aahxuqcgcnp" path="res://assets/Sprites/texture-bar-progress-0001.png" id="5_fa5wd"]
|
||||
[ext_resource type="Texture2D" uid="uid://bg5m7faciqihv" path="res://assets/Sprites/texture-bar-outer-0001.png" id="6_gxbv2"]
|
||||
[ext_resource type="Script" path="res://HpBar.gd" id="7_po066"]
|
||||
[ext_resource type="Script" path="res://CountDownLabel.gd" id="8_nagyd"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_cemsf"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_nj0ai"]
|
||||
resource_name = "default"
|
||||
length = 1.6
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_bjoup"]
|
||||
_data = {
|
||||
"RESET": SubResource("Animation_cemsf"),
|
||||
"default": SubResource("Animation_nj0ai")
|
||||
}
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
script = ExtResource("1_3edp6")
|
||||
|
||||
[node name="Background" type="Node2D" parent="."]
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Background"]
|
||||
position = Vector2(320.5, 241.5)
|
||||
scale = Vector2(1.15156, 1.31793)
|
||||
texture = ExtResource("2_h40sr")
|
||||
hframes = 4
|
||||
vframes = 4
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Background"]
|
||||
root_node = NodePath("../Sprite2D")
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_bjoup")
|
||||
}
|
||||
script = ExtResource("3_dsftl")
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="Background"]
|
||||
offset_right = 1600.0
|
||||
offset_bottom = 1197.0
|
||||
scale = Vector2(0.4, 0.4)
|
||||
|
||||
[node name="LhsFighter" parent="." instance=ExtResource("1_1yg04")]
|
||||
position = Vector2(192, 352)
|
||||
descriptor = "LHS"
|
||||
|
||||
[node name="RhsFighter" parent="." instance=ExtResource("1_1yg04")]
|
||||
position = Vector2(462, 353)
|
||||
orientation = 0
|
||||
descriptor = "RHS"
|
||||
|
||||
[node name="Timer" type="Timer" parent="."]
|
||||
|
||||
[node name="FpsLabel" type="Label" parent="."]
|
||||
offset_right = 38.0
|
||||
offset_bottom = 23.0
|
||||
text = "FPS:"
|
||||
script = ExtResource("3_xkxlv")
|
||||
|
||||
[node name="SessionLabel" type="Label" parent="."]
|
||||
offset_left = 290.0
|
||||
offset_right = 394.0
|
||||
offset_bottom = 23.0
|
||||
script = ExtResource("4_beyjo")
|
||||
|
||||
[node name="LhsHp" type="TextureProgressBar" parent="."]
|
||||
offset_left = 5.0
|
||||
offset_top = 25.0
|
||||
offset_right = 305.0
|
||||
offset_bottom = 50.0
|
||||
value = 80.0
|
||||
nine_patch_stretch = true
|
||||
stretch_margin_left = 3
|
||||
stretch_margin_top = 3
|
||||
stretch_margin_right = 3
|
||||
stretch_margin_bottom = 3
|
||||
texture_under = ExtResource("5_fa5wd")
|
||||
texture_over = ExtResource("6_gxbv2")
|
||||
texture_progress = ExtResource("5_fa5wd")
|
||||
tint_under = Color(0.411765, 0, 0, 1)
|
||||
tint_over = Color(0, 0, 0, 1)
|
||||
tint_progress = Color(1, 0, 0, 1)
|
||||
script = ExtResource("7_po066")
|
||||
|
||||
[node name="LhsStamina" type="TextureProgressBar" parent="."]
|
||||
offset_left = 5.0
|
||||
offset_top = 51.0
|
||||
offset_right = 265.0
|
||||
offset_bottom = 61.0
|
||||
value = 80.0
|
||||
nine_patch_stretch = true
|
||||
stretch_margin_left = 3
|
||||
stretch_margin_top = 3
|
||||
stretch_margin_right = 3
|
||||
stretch_margin_bottom = 3
|
||||
texture_under = ExtResource("5_fa5wd")
|
||||
texture_over = ExtResource("6_gxbv2")
|
||||
texture_progress = ExtResource("5_fa5wd")
|
||||
tint_under = Color(0.411765, 0.411765, 0, 1)
|
||||
tint_over = Color(0, 0, 0, 1)
|
||||
tint_progress = Color(1, 1, 0, 1)
|
||||
script = ExtResource("7_po066")
|
||||
|
||||
[node name="RhsHp" type="TextureProgressBar" parent="."]
|
||||
offset_left = 333.0
|
||||
offset_top = 25.0
|
||||
offset_right = 633.0
|
||||
offset_bottom = 50.0
|
||||
value = 80.0
|
||||
fill_mode = 1
|
||||
nine_patch_stretch = true
|
||||
stretch_margin_left = 3
|
||||
stretch_margin_top = 3
|
||||
stretch_margin_right = 3
|
||||
stretch_margin_bottom = 3
|
||||
texture_under = ExtResource("5_fa5wd")
|
||||
texture_over = ExtResource("6_gxbv2")
|
||||
texture_progress = ExtResource("5_fa5wd")
|
||||
tint_under = Color(0.411765, 0, 0, 1)
|
||||
tint_over = Color(0, 0, 0, 1)
|
||||
tint_progress = Color(1, 0, 0, 1)
|
||||
script = ExtResource("7_po066")
|
||||
|
||||
[node name="RhsStamina" type="TextureProgressBar" parent="."]
|
||||
offset_left = 373.0
|
||||
offset_top = 51.0
|
||||
offset_right = 633.0
|
||||
offset_bottom = 61.0
|
||||
value = 80.0
|
||||
fill_mode = 1
|
||||
nine_patch_stretch = true
|
||||
stretch_margin_left = 3
|
||||
stretch_margin_top = 3
|
||||
stretch_margin_right = 3
|
||||
stretch_margin_bottom = 3
|
||||
texture_under = ExtResource("5_fa5wd")
|
||||
texture_over = ExtResource("6_gxbv2")
|
||||
texture_progress = ExtResource("5_fa5wd")
|
||||
tint_under = Color(0.411765, 0.411765, 0, 1)
|
||||
tint_over = Color(0, 0, 0, 1)
|
||||
tint_progress = Color(1, 1, 0, 1)
|
||||
script = ExtResource("7_po066")
|
||||
|
||||
[node name="CountdownLabel" type="Label" parent="."]
|
||||
offset_left = 307.0
|
||||
offset_top = 26.0
|
||||
offset_right = 331.0
|
||||
offset_bottom = 49.0
|
||||
text = "10"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
clip_text = true
|
||||
script = ExtResource("8_nagyd")
|
||||
|
||||
[connection signal="next_round" from="." to="LhsFighter" method="_on_next_round"]
|
||||
[connection signal="next_round" from="." to="RhsFighter" method="_on_next_round"]
|
||||
[connection signal="next_round" from="." to="CountdownLabel" method="_on_next_round"]
|
||||
[connection signal="animation_finished" from="Background/AnimationPlayer" to="Background/AnimationPlayer" method="_on_animation_finished"]
|
||||
[connection signal="actions_done" from="LhsFighter" to="." method="_on_lhs_fighter_actions_done"]
|
||||
[connection signal="deal_damage" from="LhsFighter" to="RhsFighter" method="_take_damage"]
|
||||
[connection signal="health_changed" from="LhsFighter" to="LhsHp" method="_on_value_changed"]
|
||||
[connection signal="stamina_changed" from="LhsFighter" to="LhsStamina" method="_on_value_changed"]
|
||||
[connection signal="actions_done" from="RhsFighter" to="." method="_on_rhs_fighter_actions_done"]
|
||||
[connection signal="deal_damage" from="RhsFighter" to="LhsFighter" method="_take_damage"]
|
||||
[connection signal="health_changed" from="RhsFighter" to="RhsHp" method="_on_value_changed"]
|
||||
[connection signal="stamina_changed" from="RhsFighter" to="RhsStamina" method="_on_value_changed"]
|
||||
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
|
@ -0,0 +1,37 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d0asgq1x7b3fv"
|
||||
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.svg"
|
||||
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
@ -0,0 +1,27 @@
|
||||
; Engine configuration file.
|
||||
; It's best edited using the editor UI and not directly,
|
||||
; since the parameters that go here are not all obvious.
|
||||
;
|
||||
; Format:
|
||||
; [section] ; section goes between []
|
||||
; param=value ; assign values to parameters
|
||||
|
||||
config_version=5
|
||||
|
||||
[application]
|
||||
|
||||
config/name="Animegame-Client"
|
||||
run/main_scene="res://fight.tscn"
|
||||
config/features=PackedStringArray("4.0", "GL Compatibility")
|
||||
boot_splash/image="res://assets/Splash/splash_b.png"
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
[display]
|
||||
|
||||
window/size/viewport_width=640
|
||||
window/size/viewport_height=480
|
||||
|
||||
[rendering]
|
||||
|
||||
renderer/rendering_method="gl_compatibility"
|
||||
renderer/rendering_method.mobile="gl_compatibility"
|