Add scene-authored FX library and bull ability effects

An Fx autoload + one_shot_effect base so every effect is an inspector-editable
.tscn (the systems/fx/ authoring dir): blood/slam/spark/flash primitives and the
bull's kick/dash/slam/roll + movement effects (bull_*.tscn), fired via
Fx.spawn() / Fx.attach(). Plus a preview gallery + smoke test, and
bull_impact_fx.gd for the coded, non-particle slam rings + kick flash-pop.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CCyaJPTHCH9EDthpf4A5Sj
This commit is contained in:
2026-09-08 14:56:01 +03:00
parent 9458085abb
commit c0a022fed4
26 changed files with 1174 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
[gd_scene format=3]
[ext_resource type="Script" path="res://systems/fx/effect_gallery.gd" id="1_opqwa"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lt3bb"]
albedo_color = Color(0.62, 0.53, 0.36, 1)
[sub_resource type="PlaneMesh" id="PlaneMesh_2rj6n"]
material = SubResource("StandardMaterial3D_lt3bb")
size = Vector2(12, 12)
[node name="EffectGallery" type="Node3D" unique_id=530454952]
script = ExtResource("1_opqwa")
[node name="Camera3D" type="Camera3D" parent="." unique_id=1818153475]
transform = Transform3D(1, 0, 0, 0, 0.95105654, 0.309017, 0, -0.309017, 0.95105654, 0, 2, 4.5)
[node name="Sun" type="DirectionalLight3D" parent="." unique_id=1218164313]
transform = Transform3D(0.8660254, 0.38302222, -0.32139382, 0, 0.64278764, 0.76604444, 0.5, -0.66341394, 0.5566704, 0, 0, 0)
[node name="Ground" type="MeshInstance3D" parent="." unique_id=178415463]
mesh = SubResource("PlaneMesh_2rj6n")
[node name="UI" type="CanvasLayer" parent="." unique_id=1848100773]
[node name="Label" type="Label" parent="UI" unique_id=1347149836]
offset_left = 24.0
offset_top = 20.0
offset_right = 24.0
offset_bottom = 20.0
theme_override_font_sizes/font_size = 28
text = "FX gallery"