Integrate Kenney Starter Kit FPS assets + comprehensive test suite
Assets (CC0 license): - 3D models: Blaster gun, walls, platforms, grass, clouds, enemy - Sounds: blaster fire, impacts, footsteps, jumps, weapon change - Sprites: crosshair, hit marker, muzzle flash, skybox, blob shadow - Font: Lilita One Code changes: - weapon_manager.gd: load blaster.glb as gun model (replaces box mesh) - player.tscn: use Kenney sounds (blaster.ogg, enemy_hurt/destroy) and crosshair Test suite (100 unit tests + 4 integration scenarios): - weapon_data.gd: 27 tests — all 6 weapons every stat verified - economy.gd: 19 tests — constants, loss streak, buy thresholds - bomb.gd: 15 tests — state machine, timing constants - round_manager.gd: 10 tests — win conditions, elimination logic - team_manager.gd: 8 tests — auto-balance, team assignment - headless_test_bot.gd: integration bot with movement/idle/rounds scenarios - run_multi_bot.sh: multi-client launcher
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://d2g78tpqbyf5g"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://lde2xq3vq635" path="res://models/enemy-flying.glb" id="1_3v8nl"]
|
||||
[ext_resource type="Script" uid="uid://b6udw8uhlp4ei" path="res://objects/enemy.gd" id="1_jg24b"]
|
||||
[ext_resource type="SpriteFrames" uid="uid://dbv3sy5qjatnl" path="res://sprites/burst_animation.tres" id="3_iblw5"]
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_iix87"]
|
||||
radius = 0.75
|
||||
|
||||
[node name="enemy-flying" type="Area3D"]
|
||||
script = ExtResource("1_jg24b")
|
||||
|
||||
[node name="enemy-flying" parent="." instance=ExtResource("1_3v8nl")]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, 0)
|
||||
shape = SubResource("SphereShape3D_iix87")
|
||||
|
||||
[node name="RayCast" type="RayCast3D" parent="."]
|
||||
target_position = Vector3(0, 0, 5)
|
||||
|
||||
[node name="MuzzleA" type="AnimatedSprite3D" parent="."]
|
||||
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, -0.45, 0.3, 0.4)
|
||||
sprite_frames = ExtResource("3_iblw5")
|
||||
frame = 2
|
||||
|
||||
[node name="MuzzleB" type="AnimatedSprite3D" parent="."]
|
||||
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0.45, 0.3, 0.4)
|
||||
sprite_frames = ExtResource("3_iblw5")
|
||||
frame = 2
|
||||
|
||||
[node name="Timer" type="Timer" parent="."]
|
||||
wait_time = 0.25
|
||||
autostart = true
|
||||
|
||||
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
|
||||
Reference in New Issue
Block a user