1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-06-04 10:47:13 +08:00

feat: Add weapon system and attack functionality to Rooster character

- Introduced a weapons node in EntityBase for weapon management.
- Updated Rooster to include cooldown for attacks and weapon anchoring.
- Implemented attack method in Rooster to generate bullets.
- Enhanced BulletBase with life distance and lifetime properties.
- Created Chick character with animations and integrated into the world.
- Updated PurpleCrystal bullet behavior to move forward based on rotation.
- Refactored EntityBase to use a fields dictionary for attributes.
- Added FieldStore for managing entity-related constants.
- Adjusted GameRule to include bullet speed multiplier.
This commit is contained in:
2025-08-26 12:21:09 +08:00
parent ef8fd0db9f
commit 727c40e1f0
14 changed files with 149 additions and 40 deletions
+3
View File
@@ -114,6 +114,9 @@ tree_root = SubResource("AnimationNodeBlendSpace1D_51ube")
anim_player = NodePath("..")
parameters/blend_position = 1.0
[node name="weapons" type="Node2D" parent="texture"]
unique_name_in_owner = true
[node name="movebox" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_ce3to")
+6 -2
View File
@@ -1,6 +1,7 @@
[gd_scene load_steps=5 format=3 uid="uid://uj0aqhm8wgy8"]
[gd_scene load_steps=6 format=3 uid="uid://uj0aqhm8wgy8"]
[ext_resource type="PackedScene" uid="uid://crtdkysmnkith" path="res://components/Abstracts/BulletBase.tscn" id="1_45mh7"]
[ext_resource type="Script" path="res://scripts/Contents/Bullets/PurpleCrystal.gd" id="2_4lnlm"]
[ext_resource type="Texture2D" uid="uid://c7hyatbuieaj" path="res://resources/bullets/purple-crystal/frames/0.svg" id="2_ca3pq"]
[sub_resource type="SpriteFrames" id="SpriteFrames_r86b3"]
@@ -17,10 +18,13 @@ animations = [{
[sub_resource type="CircleShape2D" id="CircleShape2D_ty1as"]
[node name="PurpleCrystal" instance=ExtResource("1_45mh7")]
script = ExtResource("2_4lnlm")
speed = 5.0
lifeDistance = 700.0
[node name="texture" parent="." index="0"]
sprite_frames = SubResource("SpriteFrames_r86b3")
[node name="hitbox" parent="." index="1"]
position = Vector2(0, -13)
position = Vector2(12, 0)
shape = SubResource("CircleShape2D_ty1as")
+36
View File
@@ -0,0 +1,36 @@
[gd_scene load_steps=5 format=3 uid="uid://b0ncrvm8u4pox"]
[ext_resource type="PackedScene" uid="uid://cvogxi7mktumf" path="res://components/Abstracts/EntityBase.tscn" id="1_goqmy"]
[ext_resource type="Texture2D" uid="uid://7pkplcqqxvnp" path="res://resources/characters/chick/chick-a.svg" id="2_syddq"]
[ext_resource type="Texture2D" uid="uid://dj5dvqb8gsedr" path="res://resources/characters/chick/chick-b.svg" id="3_064jv"]
[sub_resource type="SpriteFrames" id="SpriteFrames_xji3d"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_syddq")
}],
"loop": true,
"name": &"idle",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_syddq")
}, {
"duration": 1.0,
"texture": ExtResource("3_064jv")
}],
"loop": true,
"name": &"walk",
"speed": 5.0
}]
[node name="Chick" instance=ExtResource("1_goqmy")]
[node name="texture" parent="." index="0"]
sprite_frames = SubResource("SpriteFrames_xji3d")
animation = &"walk"
[node name="statebar" parent="." index="2" node_paths=PackedStringArray("entity")]
entity = NodePath("..")
+4
View File
@@ -32,6 +32,7 @@ radius = 41.0122
[node name="Rooster" instance=ExtResource("1_e5pl8")]
script = ExtResource("2_oqdqd")
cooldownUnit = 200.0
[node name="texture" parent="." index="0"]
position = Vector2(0, -70)
@@ -42,6 +43,9 @@ animation = &"walk"
position = Vector2(12, 16)
shape = SubResource("CircleShape2D_h1v0q")
[node name="normal" type="Node2D" parent="texture/weapons" index="0"]
position = Vector2(54, -45)
[node name="statebar" parent="." index="2" node_paths=PackedStringArray("entity")]
position = Vector2(0, -151)
entity = NodePath("..")