t_p1_round: Add round/match lifecycle system (RoundManager)
- New server/scripts/round/round_manager.gd with: - RoundPhase enum (WARMUP, PREP, LIVE, POST) - Round life cycle: warmup -> prep (15s) -> live (105s) -> post (8s) - Team elimination detection using entity->peer->team mappings - Time-expired round ending (default: CT wins) - Economy hooks: win money (250), loss money (900 escalating to 900), kill bonus (00) - All requested signals: round_phase_changed, round_started, round_ended, match_point, warmup_ended, round_economy_data - Updated GameServer: - Creates and wires RoundManager in _ready() - Connects DamageProcessor.player_killed -> round tracking + elimination detection - Added peer_to_entity mapping for backwards entity lookup - Added RCON command handler (_on_rcon_command) for start_match/end_round - Updated RCON command handler: - Added start_match and end_round to dispatch list and help text
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
[gd_scene load_steps=2 format=3]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="1"]
|
||||
albedo_color = Color(0.7, 0.15, 0.1, 1.0)
|
||||
roughness = 0.6
|
||||
metallic = 0.2
|
||||
resource_name = "red_barrel"
|
||||
|
||||
[node name="Barrel" type="CSGCylinder3D"]
|
||||
radius = 0.6
|
||||
height = 1.0
|
||||
material = SubResource("1")
|
||||
use_collision = true
|
||||
slices = 16
|
||||
visibility_range_end = 30.0
|
||||
visibility_range_end_margin = 3.0
|
||||
@@ -0,0 +1,26 @@
|
||||
[gd_scene load_steps=2 format=3]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="1"]
|
||||
albedo_color = Color(0.35, 0.4, 0.5, 1.0)
|
||||
roughness = 0.8
|
||||
metallic = 0.0
|
||||
resource_name = "bluegrey_corner"
|
||||
|
||||
[node name="CornerWall" type="CSGCombiner3D"]
|
||||
use_collision = false
|
||||
visibility_range_end = 50.0
|
||||
visibility_range_end_margin = 5.0
|
||||
|
||||
[node name="WallA" type="CSGBox3D" parent="CornerWall"]
|
||||
operation = 0
|
||||
size = Vector3(2, 3, 0.2)
|
||||
material = SubResource("1")
|
||||
use_collision = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.1)
|
||||
|
||||
[node name="WallB" type="CSGBox3D" parent="CornerWall"]
|
||||
operation = 0
|
||||
size = Vector3(0.2, 3, 2)
|
||||
material = SubResource("1")
|
||||
use_collision = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.1, 0, 0)
|
||||
@@ -0,0 +1,14 @@
|
||||
[gd_scene load_steps=2 format=3]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="1"]
|
||||
albedo_color = Color(0.4, 0.4, 0.4, 1.0)
|
||||
roughness = 0.8
|
||||
metallic = 0.0
|
||||
resource_name = "grey_cover"
|
||||
|
||||
[node name="CoverWall" type="CSGBox3D"]
|
||||
size = Vector3(2, 1.3, 0.2)
|
||||
material = SubResource("1")
|
||||
use_collision = true
|
||||
visibility_range_end = 40.0
|
||||
visibility_range_end_margin = 5.0
|
||||
@@ -0,0 +1,14 @@
|
||||
[gd_scene load_steps=2 format=3]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="1"]
|
||||
albedo_color = Color(0.55, 0.35, 0.15, 1.0)
|
||||
roughness = 0.85
|
||||
metallic = 0.0
|
||||
resource_name = "brown_crate"
|
||||
|
||||
[node name="Crate" type="CSGBox3D"]
|
||||
size = Vector3(1, 1, 1)
|
||||
material = SubResource("1")
|
||||
use_collision = true
|
||||
visibility_range_end = 40.0
|
||||
visibility_range_end_margin = 5.0
|
||||
@@ -0,0 +1,14 @@
|
||||
[gd_scene load_steps=2 format=3]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="1"]
|
||||
albedo_color = Color(0.5, 0.5, 0.5, 1.0)
|
||||
roughness = 0.8
|
||||
metallic = 0.0
|
||||
resource_name = "concrete_grey"
|
||||
|
||||
[node name="FloorTile" type="CSGBox3D"]
|
||||
size = Vector3(2, 0.2, 2)
|
||||
material = SubResource("1")
|
||||
use_collision = true
|
||||
visibility_range_end = 60.0
|
||||
visibility_range_end_margin = 10.0
|
||||
@@ -0,0 +1,14 @@
|
||||
[gd_scene load_steps=2 format=3]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="1"]
|
||||
albedo_color = Color(0.2, 0.2, 0.22, 1.0)
|
||||
roughness = 0.8
|
||||
metallic = 0.0
|
||||
resource_name = "darkgrey_pillar"
|
||||
|
||||
[node name="Pillar" type="CSGBox3D"]
|
||||
size = Vector3(0.3, 3, 0.3)
|
||||
material = SubResource("1")
|
||||
use_collision = true
|
||||
visibility_range_end = 30.0
|
||||
visibility_range_end_margin = 3.0
|
||||
@@ -0,0 +1,14 @@
|
||||
[gd_scene load_steps=2 format=3]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="1"]
|
||||
albedo_color = Color(0.7, 0.7, 0.3, 1.0)
|
||||
roughness = 0.8
|
||||
metallic = 0.0
|
||||
resource_name = "yellow_ramp"
|
||||
|
||||
[node name="Ramp" type="CSGPolygon3D"]
|
||||
polygon = PackedVector2Array(0, 0, 2, 0, 2, 1.155)
|
||||
depth = 2.0
|
||||
material = SubResource("1")
|
||||
use_collision = true
|
||||
smooth_faces = true
|
||||
@@ -0,0 +1,33 @@
|
||||
[gd_scene load_steps=2 format=3]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="1"]
|
||||
albedo_color = Color(0.45, 0.45, 0.45, 1.0)
|
||||
roughness = 0.8
|
||||
metallic = 0.0
|
||||
resource_name = "grey_stairs"
|
||||
|
||||
[node name="Stairs" type="CSGCombiner3D"]
|
||||
use_collision = false
|
||||
visibility_range_end = 40.0
|
||||
visibility_range_end_margin = 5.0
|
||||
|
||||
[node name="Step1" type="CSGBox3D" parent="Stairs"]
|
||||
operation = 0
|
||||
size = Vector3(2, 0.25, 0.5)
|
||||
material = SubResource("1")
|
||||
use_collision = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.125, 0.75)
|
||||
|
||||
[node name="Step2" type="CSGBox3D" parent="Stairs"]
|
||||
operation = 0
|
||||
size = Vector3(2, 0.25, 0.5)
|
||||
material = SubResource("1")
|
||||
use_collision = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.375, 0.25)
|
||||
|
||||
[node name="Step3" type="CSGBox3D" parent="Stairs"]
|
||||
operation = 0
|
||||
size = Vector3(2, 0.25, 0.5)
|
||||
material = SubResource("1")
|
||||
use_collision = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.625, -0.25)
|
||||
@@ -0,0 +1,14 @@
|
||||
[gd_scene load_steps=2 format=3]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="1"]
|
||||
albedo_color = Color(0.35, 0.4, 0.5, 1.0)
|
||||
roughness = 0.8
|
||||
metallic = 0.0
|
||||
resource_name = "bluegrey_wall"
|
||||
|
||||
[node name="WallSegment" type="CSGBox3D"]
|
||||
size = Vector3(4, 3, 0.2)
|
||||
material = SubResource("1")
|
||||
use_collision = true
|
||||
visibility_range_end = 50.0
|
||||
visibility_range_end_margin = 5.0
|
||||
@@ -0,0 +1,24 @@
|
||||
[gd_scene load_steps=2 format=3]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="1"]
|
||||
albedo_color = Color(0.35, 0.4, 0.5, 1.0)
|
||||
roughness = 0.8
|
||||
metallic = 0.0
|
||||
resource_name = "bluegrey_window"
|
||||
|
||||
[node name="WindowFrame" type="CSGCombiner3D"]
|
||||
use_collision = false
|
||||
visibility_range_end = 40.0
|
||||
visibility_range_end_margin = 5.0
|
||||
|
||||
[node name="MainWall" type="CSGBox3D" parent="WindowFrame"]
|
||||
operation = 0
|
||||
size = Vector3(4, 3, 0.2)
|
||||
material = SubResource("1")
|
||||
use_collision = true
|
||||
|
||||
[node name="WindowCutout" type="CSGBox3D" parent="WindowFrame"]
|
||||
operation = 1
|
||||
size = Vector3(2, 2, 0.25)
|
||||
use_collision = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
|
||||
Reference in New Issue
Block a user