Formulas, floating texts

This commit is contained in:
James 2026-03-11 17:12:53 +01:00
parent c1ee5bdad8
commit 0e2b43760e
17 changed files with 312 additions and 33 deletions

Binary file not shown.

View file

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

Binary file not shown.

View file

@ -0,0 +1,36 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://d4ma7vldbr7ae"
path="res://.godot/imported/JosefinSans-VariableFont_wght.ttf-605f3002d601ca8879327f2c16eafd00.fontdata"
[deps]
source_file="res://Assets/Fonts/JosefinSans-VariableFont_wght.ttf"
dest_files=["res://.godot/imported/JosefinSans-VariableFont_wght.ttf-605f3002d601ca8879327f2c16eafd00.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
modulate_color_glyphs=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

View file

@ -0,0 +1,36 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://b74c848bvnbeh"
path="res://.godot/imported/Modak-Regular.ttf-692cda482e13613dfc1b1fd4c16bbc50.fontdata"
[deps]
source_file="res://Assets/Fonts/Modak-Regular.ttf"
dest_files=["res://.godot/imported/Modak-Regular.ttf-692cda482e13613dfc1b1fd4c16bbc50.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
modulate_color_glyphs=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

4
Globals/Formulas.gd Normal file
View file

@ -0,0 +1,4 @@
extends Node
func calculate_damage(damage, armor) -> float:
return clamp(damage - armor, 1, 9999)

1
Globals/Formulas.gd.uid Normal file
View file

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

View file

@ -6,7 +6,6 @@
script = ExtResource("1_dv2oe")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=763052965]
scale = Vector2(4, 4)
[node name="Attack" type="Timer" parent="." unique_id=421541847]

View file

@ -1,11 +1,13 @@
extends Node2D
class_name Battler
@export var sprite_texture : Texture
@export var battler_stats : BattlerStats
@export_enum("Plant", "Pollution") var side = 0
@onready var attack_cooldown : Timer = $Attack
@onready var floating_text_packed : PackedScene = load("res://Objects/floating_text.tscn")
var life : int = 1 :
set(value):
@ -25,11 +27,13 @@ var _attack_ready : bool = false
func _ready() -> void:
$Sprite2D.texture = sprite_texture
set_side()
set_battler_stats()
_attack_ready = true
func _process(_delta: float) -> void:
if target:
if _attack_ready:
@ -70,13 +74,22 @@ func attack() -> void:
attack_cooldown.start()
func get_hurt(hurt : int) -> void:
life -= clamp(hurt - armor, 1, 9999)
func get_hurt(damage : int) -> void:
life -= Formulas.calculate_damage(damage, armor)
instantiate_floating_text(damage)
func death() -> void:
queue_free()
func instantiate_floating_text(text_value) -> void:
var floating_text : Control = floating_text_packed.instantiate()
add_child(floating_text)
floating_text.text = str(text_value)
floating_text.position.y -= $Sprite2D.texture.get_height()/2.0 * $Sprite2D.scale.y + 30.0
floating_text.position.x -= 10.0
func _on_attack_timeout() -> void:
_attack_ready = true

16
Objects/floating_text.gd Normal file
View file

@ -0,0 +1,16 @@
extends Control
var text : String = "-1" :
set(value):
text = str(value)
$Label.text = text
print("Text :", $Label.text)
func _ready() -> void:
_animate()
func _animate() -> void:
$Label/AnimationPlayer.play("in")
await $Label/AnimationPlayer.animation_finished
$Label/AnimationPlayer.play("out")
await $Label/AnimationPlayer.animation_finished
queue_free()

View file

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

129
Objects/floating_text.tscn Normal file
View file

@ -0,0 +1,129 @@
[gd_scene format=3 uid="uid://br3wpf7ntri03"]
[ext_resource type="FontFile" uid="uid://b74c848bvnbeh" path="res://Assets/Fonts/Modak-Regular.ttf" id="1_uicqr"]
[ext_resource type="Script" uid="uid://dx5br1462ckj5" path="res://Objects/floating_text.gd" id="2_2dget"]
[sub_resource type="LabelSettings" id="LabelSettings_2dget"]
font = ExtResource("1_uicqr")
font_size = 20
[sub_resource type="Animation" id="Animation_2dget"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:scale")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_3h7ba"]
resource_name = "in"
length = 0.3
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.3),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector2(1, 1), Vector2(1.2, 1.2), Vector2(1, 1)]
}
[sub_resource type="Animation" id="Animation_qoh3s"]
resource_name = "out"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(3.1383367, 0.124999955),
"update": 0,
"values": [Vector2(0, 0), Vector2(0, -50)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:scale")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(1, 1), Vector2(0.5, 0.5)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.3, 0.5),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_3h7ba"]
_data = {
&"RESET": SubResource("Animation_2dget"),
&"in": SubResource("Animation_3h7ba"),
&"out": SubResource("Animation_qoh3s")
}
[node name="FloatingText" type="Control" unique_id=1495993459]
layout_mode = 3
anchors_preset = 0
pivot_offset_ratio = Vector2(0.5, 0.5)
script = ExtResource("2_2dget")
[node name="Label" type="Label" parent="." unique_id=222924785]
layout_mode = 0
offset_right = 31.0
offset_bottom = 31.0
pivot_offset_ratio = Vector2(0.5, 0.5)
text = "100"
label_settings = SubResource("LabelSettings_2dget")
horizontal_alignment = 1
vertical_alignment = 1
[node name="AnimationPlayer" type="AnimationPlayer" parent="Label" unique_id=256124678]
libraries/ = SubResource("AnimationLibrary_3h7ba")

View file

@ -0,0 +1,9 @@
[gd_resource type="Resource" script_class="BattlerStats" format=3 uid="uid://te1aq7i3mahk"]
[ext_resource type="Script" uid="uid://dr6js1vewp6rg" path="res://Scripts/battler_stats.gd" id="1_ou15e"]
[resource]
script = ExtResource("1_ou15e")
base_life = 10
base_speed = 0.5
metadata/_custom_type_script = "uid://dr6js1vewp6rg"

View file

@ -0,0 +1,8 @@
[gd_resource type="Resource" script_class="BattlerStats" format=3 uid="uid://7rv28rbuxt2p"]
[ext_resource type="Script" uid="uid://dr6js1vewp6rg" path="res://Scripts/battler_stats.gd" id="1_71kpj"]
[resource]
script = ExtResource("1_71kpj")
base_speed = 0.3
metadata/_custom_type_script = "uid://dr6js1vewp6rg"

View file

@ -1,46 +1,28 @@
[gd_scene format=3 uid="uid://vkh2dbrct7vh"]
[ext_resource type="PackedScene" uid="uid://cndfpjgyfttdr" path="res://Objects/Battler.tscn" id="1_feb5d"]
[ext_resource type="Texture2D" uid="uid://cs0k1ofdlayvr" path="res://Assets/Flowers/Flower 2/Flower 2 - TEAL.png" id="3_7jktm"]
[ext_resource type="Script" uid="uid://dr6js1vewp6rg" path="res://Scripts/battler_stats.gd" id="3_fc0e3"]
[ext_resource type="Texture2D" uid="uid://drwi73l0d04vj" path="res://Assets/Flowers/Flower Pot 5/Flower Pot 5 - LILAC.png" id="2_ryrav"]
[ext_resource type="Resource" uid="uid://te1aq7i3mahk" path="res://Resources/plant_stats.tres" id="3_7jktm"]
[ext_resource type="Texture2D" uid="uid://cdhk55d5d05di" path="res://Assets/Trashes/recycling 2.png" id="3_feb5d"]
[ext_resource type="Texture2D" uid="uid://bne02il4bsoq3" path="res://Assets/Flowers/Bush 1/Bush 1 - GREEN 2.png" id="5_7jktm"]
[sub_resource type="Resource" id="Resource_7jktm"]
script = ExtResource("3_fc0e3")
base_life = 10
base_speed = 2.0
metadata/_custom_type_script = "uid://dr6js1vewp6rg"
[sub_resource type="Resource" id="Resource_fc0e3"]
script = ExtResource("3_fc0e3")
metadata/_custom_type_script = "uid://dr6js1vewp6rg"
[ext_resource type="Resource" uid="uid://7rv28rbuxt2p" path="res://Resources/trash_stats.tres" id="5_ryrav"]
[node name="Game" type="Node2D" unique_id=2069582450]
[node name="Garden" type="Node2D" parent="." unique_id=491593255]
[node name="Plant" parent="Garden" unique_id=1265041863 instance=ExtResource("1_feb5d")]
position = Vector2(159, 472)
battler_stats = SubResource("Resource_7jktm")
[node name="Sprite2D2" type="Sprite2D" parent="Garden/Plant" unique_id=680807617]
position = Vector2(20, 3)
scale = Vector2(2, 2)
texture = ExtResource("3_7jktm")
position = Vector2(189, 183)
sprite_texture = ExtResource("2_ryrav")
battler_stats = ExtResource("3_7jktm")
[node name="Dump" type="Node2D" parent="." unique_id=608611995]
[node name="Trash" parent="Dump" unique_id=1865311551 instance=ExtResource("1_feb5d")]
position = Vector2(902, 495)
battler_stats = SubResource("Resource_fc0e3")
position = Vector2(330, 181)
sprite_texture = ExtResource("3_feb5d")
battler_stats = ExtResource("5_ryrav")
side = 1
[node name="Sprite2D2" type="Sprite2D" parent="Dump/Trash" unique_id=955529602]
scale = Vector2(4, 4)
texture = ExtResource("3_feb5d")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=899833631]
position = Vector2(556.00006, 173.00005)
scale = Vector2(10, 10)
texture = ExtResource("5_7jktm")
[node name="Camera2D" type="Camera2D" parent="." unique_id=1468251961]
position = Vector2(259, 155)
zoom = Vector2(2, 2)

View file

@ -14,3 +14,12 @@ config/name="PVP"
run/main_scene="uid://vkh2dbrct7vh"
config/features=PackedStringArray("4.6")
config/icon="res://icon.svg"
[autoload]
Formulas="*uid://cl00mrhbjhhb4"
[display]
window/size/viewport_width=600
window/size/viewport_height=300