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
20 lines
760 B
Plaintext
20 lines
760 B
Plaintext
[gd_resource type="Resource" script_class="Weapon" load_steps=4 format=3 uid="uid://c56y8pqoyk15f"]
|
|
|
|
[ext_resource type="Texture2D" uid="uid://2jld33y6h5pq" path="res://sprites/crosshair.png" id="1_2onsr"]
|
|
[ext_resource type="PackedScene" uid="uid://b2p7bbkuxf7m" path="res://models/blaster.glb" id="1_x0glg"]
|
|
[ext_resource type="Script" uid="uid://dg01pkkc1c5vd" path="res://scripts/weapon.gd" id="2_107w7"]
|
|
|
|
[resource]
|
|
script = ExtResource("2_107w7")
|
|
model = ExtResource("1_x0glg")
|
|
rotation = Vector3(0, 180, 0)
|
|
muzzle_position = Vector3(0.1, -0.4, 1.5)
|
|
cooldown = 0.25
|
|
spread = 1.0
|
|
shot_count = 3
|
|
knockback = 40
|
|
min_knockback = Vector2(0.025, 0.025)
|
|
max_knockback = Vector2(0.045, 0.04)
|
|
sound_shoot = "sounds/blaster.ogg"
|
|
crosshair = ExtResource("1_2onsr")
|