Files
tactical-shooter/assets/kenney-fps/objects/impact.tscn
T
shawn 012d038025 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
2026-07-03 17:13:36 -04:00

52 lines
1.5 KiB
Plaintext

[gd_scene load_steps=8 format=3 uid="uid://b7070gfoko4mo"]
[ext_resource type="Texture2D" uid="uid://dh0t42ubhuv0" path="res://sprites/hit.png" id="1_mdfft"]
[ext_resource type="Script" uid="uid://bwkexrmt718dx" path="res://objects/impact.gd" id="2_k826h"]
[sub_resource type="AtlasTexture" id="AtlasTexture_8c04i"]
atlas = ExtResource("1_mdfft")
region = Rect2(0, 0, 128, 128)
[sub_resource type="AtlasTexture" id="AtlasTexture_34j4g"]
atlas = ExtResource("1_mdfft")
region = Rect2(128, 0, 128, 128)
[sub_resource type="AtlasTexture" id="AtlasTexture_tk4oq"]
atlas = ExtResource("1_mdfft")
region = Rect2(0, 128, 128, 128)
[sub_resource type="AtlasTexture" id="AtlasTexture_q5m5l"]
atlas = ExtResource("1_mdfft")
region = Rect2(128, 128, 128, 128)
[sub_resource type="SpriteFrames" id="SpriteFrames_nwydm"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_8c04i")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_34j4g")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_tk4oq")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_q5m5l")
}],
"loop": false,
"name": &"shot",
"speed": 30.0
}]
[node name="AnimatedSprite3D" type="AnimatedSprite3D"]
cast_shadow = 0
pixel_size = 0.0025
double_sided = false
no_depth_test = true
sprite_frames = SubResource("SpriteFrames_nwydm")
animation = &"shot"
script = ExtResource("2_k826h")
[connection signal="animation_finished" from="." to="." method="_on_animation_finished"]