012d038025
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
29 lines
682 B
Plaintext
29 lines
682 B
Plaintext
[gd_resource type="SpriteFrames" format=3 uid="uid://dbv3sy5qjatnl"]
|
|
|
|
[ext_resource type="Texture2D" uid="uid://cbfhj0tswcksm" path="res://sprites/burst.png" id="1_bh1wj"]
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_mdaww"]
|
|
atlas = ExtResource("1_bh1wj")
|
|
region = Rect2(0, 0, 256, 256)
|
|
|
|
[sub_resource type="AtlasTexture" id="AtlasTexture_3nr3w"]
|
|
atlas = ExtResource("1_bh1wj")
|
|
region = Rect2(256, 0, 256, 256)
|
|
|
|
[resource]
|
|
animations = [{
|
|
"frames": [{
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_mdaww")
|
|
}, {
|
|
"duration": 1.0,
|
|
"texture": SubResource("AtlasTexture_3nr3w")
|
|
}, {
|
|
"duration": 1.0,
|
|
"texture": null
|
|
}],
|
|
"loop": false,
|
|
"name": &"default",
|
|
"speed": 30.0
|
|
}]
|