fc4fc59a2b
Belt (canon: charges are the cost, the belt is the ammo): cards are CARD_TYPES indices consumed on play, next slides into the 2-slot hand; belt cap 8; HUD shows hand glyphs + upcoming-card ticks. Card pool grows to 4: SHOCKWAVE, HEATWAVE, DASH (impulse along held movement direction — aimable while frozen, no aim input), IGNITE (nearest-enemy heat spike past threshold). Rooms: spawn-budget waves (base 8 +4/room, 4 rooms/run); clear -> interstitial fork (CARD vs SCRAP +8) -> CARD opens a 3-option draft + scrap decline (+4) -> next room; final clear or mech destruction -> tally overlay (rooms/kills/scrap/chem) with relaunch on 1. Interstitial owns the pause while active; the hand yields input and time authority to it. Mech death now signals the run manager instead of hard-reloading. Chain semantics (same-tag surge / cross-tag chemistry trigger) deliberately deferred to M3. Smoke gate: belt consumption white-boxed in the card phase, _until moved to process_frame (physics awaits deadlock under pause), run phase covers clear->fork->draft->belt growth->room advance->tally. 3/3 green on nh3-dev headless 4.7.1.
104 lines
2.9 KiB
Plaintext
104 lines
2.9 KiB
Plaintext
[gd_scene load_steps=11 format=3]
|
|
|
|
[ext_resource type="Script" path="res://scripts/arena.gd" id="1"]
|
|
[ext_resource type="PackedScene" path="res://scenes/mech.tscn" id="2"]
|
|
[ext_resource type="Script" path="res://scripts/spawner.gd" id="3"]
|
|
[ext_resource type="Script" path="res://scripts/hand.gd" id="4"]
|
|
[ext_resource type="Script" path="res://scripts/hand_hud.gd" id="5"]
|
|
[ext_resource type="AudioStream" path="res://assets/audio/chem_sting_kinetic_heat_ph.wav" id="6"]
|
|
[ext_resource type="Script" path="res://scripts/interstitial.gd" id="7"]
|
|
[ext_resource type="Script" path="res://scripts/interstitial_hud.gd" id="8"]
|
|
|
|
[sub_resource type="RectangleShape2D" id="wall_h"]
|
|
size = Vector2(640, 16)
|
|
|
|
[sub_resource type="RectangleShape2D" id="wall_v"]
|
|
size = Vector2(16, 360)
|
|
|
|
[node name="Arena" type="Node2D"]
|
|
script = ExtResource("1")
|
|
|
|
[node name="WallTop" type="StaticBody2D" parent="."]
|
|
position = Vector2(320, 8)
|
|
collision_layer = 1
|
|
collision_mask = 0
|
|
|
|
[node name="Collision" type="CollisionShape2D" parent="WallTop"]
|
|
shape = SubResource("wall_h")
|
|
|
|
[node name="WallBottom" type="StaticBody2D" parent="."]
|
|
position = Vector2(320, 352)
|
|
collision_layer = 1
|
|
collision_mask = 0
|
|
|
|
[node name="Collision" type="CollisionShape2D" parent="WallBottom"]
|
|
shape = SubResource("wall_h")
|
|
|
|
[node name="WallLeft" type="StaticBody2D" parent="."]
|
|
position = Vector2(8, 180)
|
|
collision_layer = 1
|
|
collision_mask = 0
|
|
|
|
[node name="Collision" type="CollisionShape2D" parent="WallLeft"]
|
|
shape = SubResource("wall_v")
|
|
|
|
[node name="WallRight" type="StaticBody2D" parent="."]
|
|
position = Vector2(632, 180)
|
|
collision_layer = 1
|
|
collision_mask = 0
|
|
|
|
[node name="Collision" type="CollisionShape2D" parent="WallRight"]
|
|
shape = SubResource("wall_v")
|
|
|
|
[node name="Mech" parent="." instance=ExtResource("2")]
|
|
position = Vector2(320, 180)
|
|
|
|
[node name="Spawner" type="Node2D" parent="."]
|
|
script = ExtResource("3")
|
|
|
|
[node name="Sting" type="AudioStreamPlayer" parent="."]
|
|
stream = ExtResource("6")
|
|
volume_db = -6.0
|
|
|
|
[node name="HUD" type="CanvasLayer" parent="."]
|
|
|
|
[node name="HullBack" type="ColorRect" parent="HUD"]
|
|
offset_left = 8.0
|
|
offset_top = 8.0
|
|
offset_right = 128.0
|
|
offset_bottom = 14.0
|
|
color = Color(0.06, 0.07, 0.08, 1)
|
|
|
|
[node name="HullFill" type="ColorRect" parent="HUD"]
|
|
offset_left = 9.0
|
|
offset_top = 9.0
|
|
offset_right = 127.0
|
|
offset_bottom = 13.0
|
|
color = Color(0.55, 0.8, 0.55, 1)
|
|
|
|
[node name="Hand" type="CanvasLayer" parent="."]
|
|
layer = 2
|
|
script = ExtResource("4")
|
|
|
|
[node name="Dim" type="ColorRect" parent="Hand"]
|
|
visible = false
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
color = Color(0, 0, 0, 0.35)
|
|
|
|
[node name="HUD" type="Control" parent="Hand"]
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
mouse_filter = 2
|
|
script = ExtResource("5")
|
|
|
|
[node name="Interstitial" type="CanvasLayer" parent="."]
|
|
layer = 3
|
|
script = ExtResource("7")
|
|
|
|
[node name="HUD" type="Control" parent="Interstitial"]
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
mouse_filter = 2
|
|
script = ExtResource("8")
|