added projects folder with first mini project

This commit is contained in:
itdominator 2024-08-10 16:12:28 -05:00
parent b582bebfcd
commit e442f573c3
36 changed files with 661 additions and 0 deletions

View File

@ -0,0 +1 @@
class_name AttackerCharacter extends Character

View File

@ -0,0 +1,38 @@
[gd_scene load_steps=7 format=3 uid="uid://cc3xcu8ipc6mu"]
[ext_resource type="Script" path="res://assets/character/attacker/attacker_character.gd" id="1_t1ra7"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_liwfn"]
[sub_resource type="BoxMesh" id="BoxMesh_h3hrr"]
material = SubResource("StandardMaterial3D_liwfn")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lrkyl"]
[sub_resource type="BoxMesh" id="BoxMesh_5nwng"]
material = SubResource("StandardMaterial3D_lrkyl")
size = Vector3(0.5, 0.5, 0.5)
[sub_resource type="BoxShape3D" id="BoxShape3D_00y5t"]
size = Vector3(1, 2, 1)
[node name="attacker_character" type="Area3D"]
script = ExtResource("1_t1ra7")
faction = 1
body_color = Color(0.85098, 0.00784314, 0, 1)
eye_color = Color(1, 0.356863, 0.290196, 1)
[node name="body_mesh" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 1, 0)
mesh = SubResource("BoxMesh_h3hrr")
[node name="eye_mesh" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.66878, -0.407032)
mesh = SubResource("BoxMesh_5nwng")
[node name="collision" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
shape = SubResource("BoxShape3D_00y5t")
[node name="gun" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -1.2)

View File

@ -0,0 +1,24 @@
class_name Character extends Area3D
@export var faction: Enums.Faction
@export var body_color: Color
@export var eye_color: Color
@export var target: Character
@onready var body_mesh = $body_mesh
@onready var eye_mesh = $eye_mesh
func _ready():
var body_mat = StandardMaterial3D.new()
body_mat.albedo_color = body_color
body_mesh.material_override = body_mat
var eye_mat = StandardMaterial3D.new()
eye_mat.albedo_color = eye_color
eye_mat.emission_enabled = true
eye_mat.set_emission(eye_color)
eye_mesh.material_override = eye_mat

View File

@ -0,0 +1,36 @@
[gd_scene load_steps=7 format=3 uid="uid://cy2bstu6fom0r"]
[ext_resource type="Script" path="res://assets/character/base/character.gd" id="1_ujxfn"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xjg4n"]
[sub_resource type="BoxMesh" id="BoxMesh_h3hrr"]
material = SubResource("StandardMaterial3D_xjg4n")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vs3tt"]
[sub_resource type="BoxMesh" id="BoxMesh_5nwng"]
material = SubResource("StandardMaterial3D_vs3tt")
size = Vector3(0.5, 0.5, 0.5)
[sub_resource type="BoxShape3D" id="BoxShape3D_00y5t"]
size = Vector3(1, 2, 1)
[node name="character" type="Area3D"]
script = ExtResource("1_ujxfn")
eye_color = Color(1, 1, 1, 1)
[node name="body_mesh" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 1, 0)
mesh = SubResource("BoxMesh_h3hrr")
[node name="eye_mesh" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.66878, -0.407032)
mesh = SubResource("BoxMesh_5nwng")
[node name="collision" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
shape = SubResource("BoxShape3D_00y5t")
[node name="gun" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -1.2)

View File

@ -0,0 +1 @@
class_name DefenderCharacter extends Character

View File

@ -0,0 +1,32 @@
[gd_scene load_steps=5 format=3 uid="uid://bijsg61uyql4t"]
[ext_resource type="Script" path="res://assets/character/defender/defender_character.gd" id="1_8ab7l"]
[sub_resource type="BoxMesh" id="BoxMesh_h3hrr"]
[sub_resource type="BoxMesh" id="BoxMesh_5nwng"]
size = Vector3(0.5, 0.5, 0.5)
[sub_resource type="BoxShape3D" id="BoxShape3D_00y5t"]
size = Vector3(1, 2, 1)
[node name="defender_character" type="Area3D"]
script = ExtResource("1_8ab7l")
faction = 2
body_color = Color(0.341176, 0.415686, 0.839216, 1)
eye_color = Color(0.513726, 0.592157, 0.929412, 1)
[node name="body_mesh" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 1, 0)
mesh = SubResource("BoxMesh_h3hrr")
[node name="eye_mesh" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.66878, -0.407032)
mesh = SubResource("BoxMesh_5nwng")
[node name="collision" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
shape = SubResource("BoxShape3D_00y5t")
[node name="gun" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -1.2)

View File

@ -0,0 +1 @@
class_name NonAlignedCharacter extends Character

View File

@ -0,0 +1,38 @@
[gd_scene load_steps=7 format=3 uid="uid://6ngrwq73dgcn"]
[ext_resource type="Script" path="res://assets/character/non_aligned/non_aligned_character.gd" id="1_re3fi"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xjg4n"]
[sub_resource type="BoxMesh" id="BoxMesh_h3hrr"]
material = SubResource("StandardMaterial3D_xjg4n")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vs3tt"]
[sub_resource type="BoxMesh" id="BoxMesh_5nwng"]
material = SubResource("StandardMaterial3D_vs3tt")
size = Vector3(0.5, 0.5, 0.5)
[sub_resource type="BoxShape3D" id="BoxShape3D_00y5t"]
size = Vector3(1, 2, 1)
[node name="non_aligned_character" type="Area3D"]
script = ExtResource("1_re3fi")
faction = -1
body_color = Color(0.254902, 0.294118, 0.176471, 1)
eye_color = Color(0.647059, 0.584314, 0.490196, 1)
[node name="body_mesh" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 1, 0)
mesh = SubResource("BoxMesh_h3hrr")
[node name="eye_mesh" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.66878, -0.407032)
mesh = SubResource("BoxMesh_5nwng")
[node name="collision" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
shape = SubResource("BoxShape3D_00y5t")
[node name="gun" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -1.2)

View File

@ -0,0 +1,46 @@
class_name CommandPost extends Node3D
@onready var spawn_points = $spawn_points
var spawns: Array;
var spawn_ring_index = 0
var spawn_ring_end = -1
var contested: bool = false
func _ready():
_set_spawn_data()
func _set_spawn_data():
for sp in spawn_points.get_children():
if sp is SpawnPoint:
spawns.append(sp)
spawn_ring_end = spawns.size() - 1
func _get_spawn() -> SpawnPoint:
var sp = spawns[spawn_ring_index]
spawn_ring_index += 1
if spawn_ring_index > spawn_ring_end:
spawn_ring_index = 0
return sp
func spawn(spawn_entity: PackedScene = null):
if not spawn_entity: return
var sp = _get_spawn()
var entity = spawn_entity.instantiate()
$"/root".add_child(entity)
# entity.global_position = sp.global_position
# entity.basis = sp.basis
entity.global_position = sp.global_position
entity.look_at(sp.get_node("direction").global_position, Vector3.UP)
entity.rotation.x = sp.rotation.x

View File

@ -0,0 +1,40 @@
[gd_scene load_steps=6 format=3 uid="uid://ctbug001xo01q"]
[ext_resource type="Script" path="res://assets/cp/command_post.gd" id="1_vqafl"]
[ext_resource type="PackedScene" uid="uid://cay4mruy6x2ql" path="res://assets/cp/spawn_point.tscn" id="2_b7wsq"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fyc46"]
[sub_resource type="BoxMesh" id="BoxMesh_perwq"]
material = SubResource("StandardMaterial3D_fyc46")
size = Vector3(0.5, 0.5, 0.5)
[sub_resource type="CylinderShape3D" id="CylinderShape3D_b611m"]
height = 0.639439
[node name="command_post" type="Node3D"]
script = ExtResource("1_vqafl")
[node name="cp_status" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.280104, 0)
mesh = SubResource("BoxMesh_perwq")
[node name="area" type="Area3D" parent="cp_status"]
[node name="capture_region" type="CollisionShape3D" parent="cp_status/area"]
transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 1.2, 0)
shape = SubResource("CylinderShape3D_b611m")
[node name="spawn_points" type="Node3D" parent="."]
[node name="SpawnPoint" parent="spawn_points" instance=ExtResource("2_b7wsq")]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -2, 0, 0)
[node name="SpawnPoint2" parent="spawn_points" instance=ExtResource("2_b7wsq")]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 2)
[node name="SpawnPoint3" parent="spawn_points" instance=ExtResource("2_b7wsq")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 2, 0, 0)
[node name="SpawnPoint4" parent="spawn_points" instance=ExtResource("2_b7wsq")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2)

View File

@ -0,0 +1,34 @@
class_name CommandPostController extends Node3D
@export var team: Enums.Faction;
@export var spawn_entity: PackedScene = null
@export var cp_color: Color
func _on_child_entered_tree(cp: CommandPost):
var new_mat = StandardMaterial3D.new()
new_mat.albedo_color = cp_color
new_mat.emission_enabled = true
new_mat.set_emission(cp_color)
cp.get_node("cp_status").material_override = new_mat
func _on_child_exiting_tree(_cp: CommandPost):
pass
func do_spawn():
var spawners = self.get_children()
if spawners.size() == 0: return
var target = null
for spawn in spawners:
if spawn.contested:
target = spawn
if not target:
randomize()
target = spawners[ randi() % len(spawners) ]
target.spawn(spawn_entity)

View File

@ -0,0 +1,5 @@
class_name CommandPostAttackers extends CommandPostController
func _ready():
MessageBus.spawn_attacker.connect(do_spawn)

View File

@ -0,0 +1,14 @@
[gd_scene load_steps=3 format=3 uid="uid://viqdvqrnn5c7"]
[ext_resource type="Script" path="res://assets/cp/controllers/attacker/CommandPostAttackers.gd" id="1_71i6h"]
[ext_resource type="PackedScene" uid="uid://cc3xcu8ipc6mu" path="res://assets/character/attacker/attacker_character.tscn" id="2_itmdl"]
[node name="CommandPostAttackers" type="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0)
script = ExtResource("1_71i6h")
team = 1
spawn_entity = ExtResource("2_itmdl")
cp_color = Color(0.87451, 0.160784, 0.105882, 1)
[connection signal="child_entered_tree" from="." to="." method="_on_child_entered_tree"]
[connection signal="child_exiting_tree" from="." to="." method="_on_child_exiting_tree"]

View File

@ -0,0 +1,7 @@
[gd_scene load_steps=2 format=3 uid="uid://fjmd7edm67ps"]
[ext_resource type="Script" path="res://assets/cp/controllers/CommandPostController.gd" id="1_ljrld"]
[node name="CommandPostController" type="Node3D"]
script = ExtResource("1_ljrld")
cp_color = Color(0.766158, 2.56056e-05, 0.553493, 1)

View File

@ -0,0 +1,5 @@
class_name CommandPostDefenders extends CommandPostController
func _ready():
MessageBus.spawn_defender.connect(do_spawn)

View File

@ -0,0 +1,14 @@
[gd_scene load_steps=3 format=3 uid="uid://d3wabfyfccfs8"]
[ext_resource type="Script" path="res://assets/cp/controllers/defender/CommandPostDefenders.gd" id="1_t3jlv"]
[ext_resource type="PackedScene" uid="uid://bijsg61uyql4t" path="res://assets/character/defender/defender_character.tscn" id="2_7efxs"]
[node name="CommandPostDefenders" type="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0)
script = ExtResource("1_t3jlv")
team = 2
spawn_entity = ExtResource("2_7efxs")
cp_color = Color(0.262745, 0.501961, 0.709804, 1)
[connection signal="child_entered_tree" from="." to="." method="_on_child_entered_tree"]
[connection signal="child_exiting_tree" from="." to="." method="_on_child_exiting_tree"]

View File

@ -0,0 +1,5 @@
class_name CommandPostNeutral extends CommandPostController
func _ready():
pass

View File

@ -0,0 +1,11 @@
[gd_scene load_steps=2 format=3 uid="uid://dqx5s14sb162x"]
[ext_resource type="Script" path="res://assets/cp/controllers/neutral/CommandPostNeutral.gd" id="1_tfbyg"]
[node name="CommandPostNeutral" type="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0)
script = ExtResource("1_tfbyg")
cp_color = Color(0.454902, 0.454902, 0.454902, 1)
[connection signal="child_entered_tree" from="." to="." method="_on_child_entered_tree"]
[connection signal="child_exiting_tree" from="." to="." method="_on_child_exiting_tree"]

View File

@ -0,0 +1,5 @@
class_name CommandPostNonAligned extends CommandPostController
func _ready():
MessageBus.spawn_nonaligned.connect(do_spawn)

View File

@ -0,0 +1,14 @@
[gd_scene load_steps=3 format=3 uid="uid://c8sqb7smoc253"]
[ext_resource type="Script" path="res://assets/cp/controllers/nonaligned/command_post_non_aligned.gd" id="1_dqg0t"]
[ext_resource type="PackedScene" uid="uid://6ngrwq73dgcn" path="res://assets/character/non_aligned/non_aligned_character.tscn" id="2_txjnm"]
[node name="CommandPostNonAligned" type="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0)
script = ExtResource("1_dqg0t")
team = -1
spawn_entity = ExtResource("2_txjnm")
cp_color = Color(0.662745, 0.423529, 0, 1)
[connection signal="child_entered_tree" from="." to="." method="_on_child_entered_tree"]
[connection signal="child_exiting_tree" from="." to="." method="_on_child_exiting_tree"]

View File

@ -0,0 +1 @@
class_name SpawnPoint extends Marker3D

View File

@ -0,0 +1,9 @@
[gd_scene load_steps=2 format=3 uid="uid://cay4mruy6x2ql"]
[ext_resource type="Script" path="res://assets/cp/spawn_point.gd" id="1_qqm08"]
[node name="SpawnPoint" type="Marker3D"]
script = ExtResource("1_qqm08")
[node name="direction" type="RayCast3D" parent="."]
transform = Transform3D(0.5, 0, 0, 0, -2.18557e-08, -0.5, 0, 0.5, -2.18557e-08, 0, 0.5, -0.5)

View File

@ -0,0 +1,9 @@
extends Node
enum Faction {
NEUTRAL,
ATTACKER,
DEFENDER,
NONALIGNED = -1
}

View File

@ -0,0 +1,6 @@
class_name GameManagerAssault extends GameManager
func _physics_process(_delta):
super._physics_process(_delta)

View File

@ -0,0 +1,10 @@
[gd_scene load_steps=2 format=3 uid="uid://0l5bb77bjxh1"]
[ext_resource type="Script" path="res://data/game_managers/assault/GameManagerAssault.gd" id="1_3de00"]
[node name="GameManagerAssault" type="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0)
script = ExtResource("1_3de00")
attacker_spawn_pool = 32
defender_spawn_pool = 32
non_aligned_spawn_pool = 32

View File

@ -0,0 +1,6 @@
class_name GameManagerCTF extends GameManager
func _physics_process(_delta):
super._physics_process(_delta)

View File

@ -0,0 +1,7 @@
[gd_scene load_steps=2 format=3 uid="uid://yc16c57cvxed"]
[ext_resource type="Script" path="res://data/game_managers/ctf/GameManagerCTF.gd" id="1_8hqtg"]
[node name="GameManagerCTF" type="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0)
script = ExtResource("1_8hqtg")

View File

@ -0,0 +1,70 @@
class_name GameManager extends Node3D
@export var attacker_spawn_pool: int = 100
@export var defender_spawn_pool: int = 100
@export var non_aligned_spawn_pool: int = 100
@export var attacker_max_active: int = 8
@export var defender_max_active: int = 8
@export var non_aligned_max_active: int = 8
var event_queue: Array = []
var attacker_current_active: int = 0
var defender_current_active: int = 0
var non_aligned_current_active: int = 0
func _ready():
MessageBus.game_tree_loaded.connect(_game_tree_loaded)
MessageBus.entity_diead.connect(_game_tree_loaded)
func _game_tree_loaded():
pass
func _process(_delta):
pass
func _physics_process(_delta):
if event_queue.size() == 0:
check_spawn_counts()
return
var event = event_queue.pop_back()
event.call(null)
func entity_diead(entity: Character):
if entity.faction == Enums.Faction.ATTACKER:
attacker_current_active -= 1
attacker_spawn_pool -= 1
elif entity.faction == Enums.Faction.DEFENDER:
defender_current_active -= 1
defender_spawn_pool -= 1
elif entity.faction == Enums.Faction.NONALIGNED:
non_aligned_current_active -= 1
non_aligned_spawn_pool -= 1
func check_spawn_counts():
if attacker_spawn_pool > 0 && attacker_current_active < attacker_max_active:
event_queue.append(spawn_attacker)
if defender_spawn_pool > 0 && defender_current_active < defender_max_active:
event_queue.append(spawn_defender)
if non_aligned_spawn_pool > 0 && non_aligned_current_active < non_aligned_max_active:
event_queue.append(spawn_nonaligned)
var spawn_attacker = func spawn_attacker(_data):
attacker_current_active += 1
MessageBus.spawn_attacker.emit()
var spawn_defender = func spawn_defender(_data):
defender_current_active += 1
MessageBus.spawn_defender.emit()
var spawn_nonaligned = func spawn_nonaligned(_data):
non_aligned_current_active += 1
MessageBus.spawn_nonaligned.emit()

View File

@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://fttl5l83hgkx"]
[ext_resource type="Script" path="res://data/game_managers/game_manager.gd" id="1_ok0hn"]
[node name="game_manager" type="Node3D"]
script = ExtResource("1_ok0hn")

View File

@ -0,0 +1,6 @@
class_name GameManagerHeros extends GameManager
func _physics_process(_delta):
super._physics_process(_delta)

View File

@ -0,0 +1,7 @@
[gd_scene load_steps=2 format=3 uid="uid://c68qnbgmxxjgy"]
[ext_resource type="Script" path="res://data/game_managers/heros/GameManagerHeros.gd" id="1_hdicy"]
[node name="GameManagerHeros" type="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0)
script = ExtResource("1_hdicy")

View File

@ -0,0 +1 @@
<svg height="128" width="128" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="2" width="124" height="124" rx="14" fill="#363d52" stroke="#212532" stroke-width="4"/><g transform="scale(.101) translate(122 122)"><g fill="#fff"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 813 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H447l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c3 34 55 34 58 0v-86c-3-34-55-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></g></svg>

After

Width:  |  Height:  |  Size: 950 B

View File

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://be86tss6tck6q"
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.svg"
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View File

@ -0,0 +1,20 @@
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious.
;
; Format:
; [section] ; section goes between []
; param=value ; assign values to parameters
config_version=5
[application]
config/name="Command Post"
config/features=PackedStringArray("4.1", "Forward Plus")
config/icon="res://icon.svg"
[autoload]
MessageBus="*res://scripts/message_bus.gd"
Enums="*res://data/enums.gd"

View File

@ -0,0 +1,9 @@
extends Node
signal register_command_post
signal spawn_defender
signal spawn_attacker
signal spawn_nonaligned
signal game_tree_loaded
signal entity_diead

View File

@ -0,0 +1,86 @@
[gd_scene load_steps=13 format=3 uid="uid://oi1rlj4a58gr"]
[ext_resource type="PackedScene" uid="uid://0l5bb77bjxh1" path="res://data/game_managers/assault/game_manager_assault.tscn" id="1_170qh"]
[ext_resource type="PackedScene" uid="uid://ctbug001xo01q" path="res://assets/cp/command_post.tscn" id="1_i3oxs"]
[ext_resource type="PackedScene" uid="uid://dqx5s14sb162x" path="res://assets/cp/controllers/neutral/command_post_neutral.tscn" id="3_460gl"]
[ext_resource type="PackedScene" uid="uid://viqdvqrnn5c7" path="res://assets/cp/controllers/attacker/command_post_attackers.tscn" id="4_v0ljc"]
[ext_resource type="PackedScene" uid="uid://d3wabfyfccfs8" path="res://assets/cp/controllers/defender/command_post_defenders.tscn" id="5_djntp"]
[ext_resource type="PackedScene" uid="uid://c8sqb7smoc253" path="res://assets/cp/controllers/nonaligned/command_post_non_aligned.tscn" id="6_o56jr"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_diy8s"]
sky_top_color = Color(0.219608, 0.486275, 0.580392, 1)
sky_horizon_color = Color(0.466667, 0.698039, 0.764706, 1)
[sub_resource type="Sky" id="Sky_dptxk"]
sky_material = SubResource("ProceduralSkyMaterial_diy8s")
radiance_size = 5
[sub_resource type="Environment" id="Environment_qf0ml"]
background_mode = 2
sky = SubResource("Sky_dptxk")
ambient_light_source = 3
reflected_light_source = 2
glow_enabled = true
[sub_resource type="NavigationMesh" id="NavigationMesh_s8xsv"]
vertices = PackedVector3Array(-55.75, 0.5, -63.5, -63.5, 0.5, -63.5, -63.5, 0.5, -55.75, -63.5, 0.5, 55.5, -63.5, 0.5, 63.5, -55.75, 0.5, 63.5, 63.5, 0.5, -55.75, 63.5, 0.5, -63.5, 55.5, 0.5, -63.5, 55.5, 0.5, 63.5, 63.5, 0.5, 63.5, 63.5, 0.5, 55.5, -47.75, 0.5, -63.5, -55.75, 0.5, -63.5, -63.5, 0.5, -55.75, -63.5, 0.5, -47.75, -63.5, 0.5, 55.5, -55.75, 0.5, 63.5, -47.75, 0.5, 63.5, -63.5, 0.5, 47.5, 63.5, 0.5, -47.75, 63.5, 0.5, -55.75, 55.5, 0.5, -63.5, 47.5, 0.5, -63.5, 47.5, 0.5, 63.5, 55.5, 0.5, 63.5, 63.5, 0.5, 55.5, -63.5, 0.5, 3.8147e-06, -63.5, 0.5, 7.75, -8, 0.5, 63.5, 23.75, 0.5, 63.5, 63.5, 0.5, 31.75, 63.5, 0.5, 23.75, 15.75, 0.5, 63.5, 63.5, 0.5, -8, 63.5, 0.5, -16, 15.75, 0.5, -63.5, 7.75, 0.5, -63.5, 47.5, 0.5, 63.5, 63.5, 0.5, 55.5, 63.5, 0.5, 47.5, 39.5, 0.5, 63.5, -39.75, 0.5, -63.5, -47.75, 0.5, -63.5, -63.5, 0.5, -47.75, -63.5, 0.5, -39.75, -63.5, 0.5, 47.5, -47.75, 0.5, 63.5, -39.75, 0.5, 63.5, -63.5, 0.5, 39.5, 63.5, 0.5, -39.75, 63.5, 0.5, -47.75, 47.5, 0.5, -63.5, 39.5, 0.5, -63.5, -16, 0.5, -63.5, -24, 0.5, -63.5, -63.5, 0.5, -24, -63.5, 0.5, -16, -63.5, 0.5, 23.75, -24, 0.5, 63.5, -16, 0.5, 63.5, -63.5, 0.5, 15.75, 63.5, 0.5, -8, 7.75, 0.5, -63.5, 3.8147e-06, 0.5, -63.5, 63.5, 0.5, 3.8147e-06, 63.5, 0.5, -16, 63.5, 0.5, -24, 23.75, 0.5, -63.5, 15.75, 0.5, -63.5, 39.5, 0.5, 63.5, 63.5, 0.5, 47.5, 63.5, 0.5, 39.5, 31.75, 0.5, 63.5, -63.5, 0.5, 31.75, -63.5, 0.5, 39.5, -39.75, 0.5, 63.5, -31.75, 0.5, 63.5, 63.5, 0.5, -39.75, 39.5, 0.5, -63.5, 31.75, 0.5, -63.5, 63.5, 0.5, -31.75, -31.75, 0.5, -63.5, -39.75, 0.5, -63.5, -63.5, 0.5, -39.75, -63.5, 0.5, -31.75, 63.5, 0.5, 3.8147e-06, 3.8147e-06, 0.5, -63.5, -63.5, 0.5, 3.8147e-06, -8, 0.5, 63.5, 3.8147e-06, 0.5, 63.5, 63.5, 0.5, 7.75, 15.75, 0.5, 63.5, 63.5, 0.5, 23.75, 63.5, 0.5, 15.75, 7.75, 0.5, 63.5, 31.75, 0.5, 63.5, 63.5, 0.5, 39.5, 63.5, 0.5, 31.75, 23.75, 0.5, 63.5, 3.8147e-06, 0.5, -63.5, -8, 0.5, -63.5, -63.5, 0.5, -8, -63.5, 0.5, 3.8147e-06, 7.75, 0.5, 63.5, 63.5, 0.5, 15.75, 63.5, 0.5, 7.75, 3.8147e-06, 0.5, 63.5, -63.5, 0.5, 31.75, -31.75, 0.5, 63.5, -24, 0.5, 63.5, -63.5, 0.5, 23.75, 63.5, 0.5, -24, 63.5, 0.5, -31.75, 31.75, 0.5, -63.5, 23.75, 0.5, -63.5, -24, 0.5, -63.5, -31.75, 0.5, -63.5, -63.5, 0.5, -31.75, -63.5, 0.5, -24, -8, 0.5, -63.5, -16, 0.5, -63.5, -63.5, 0.5, -16, -63.5, 0.5, -8, -63.5, 0.5, 15.75, -16, 0.5, 63.5, -8, 0.5, 63.5, -63.5, 0.5, 7.75)
polygons = [PackedInt32Array(2, 1, 0), PackedInt32Array(5, 4, 3), PackedInt32Array(8, 7, 6), PackedInt32Array(11, 10, 9), PackedInt32Array(13, 12, 14), PackedInt32Array(14, 12, 15), PackedInt32Array(17, 16, 18), PackedInt32Array(18, 16, 19), PackedInt32Array(21, 20, 22), PackedInt32Array(22, 20, 23), PackedInt32Array(26, 25, 24), PackedInt32Array(29, 28, 27), PackedInt32Array(31, 30, 32), PackedInt32Array(32, 30, 33), PackedInt32Array(35, 34, 36), PackedInt32Array(36, 34, 37), PackedInt32Array(39, 38, 40), PackedInt32Array(40, 38, 41), PackedInt32Array(43, 42, 44), PackedInt32Array(44, 42, 45), PackedInt32Array(47, 46, 48), PackedInt32Array(48, 46, 49), PackedInt32Array(51, 50, 52), PackedInt32Array(52, 50, 53), PackedInt32Array(55, 54, 56), PackedInt32Array(56, 54, 57), PackedInt32Array(59, 58, 60), PackedInt32Array(60, 58, 61), PackedInt32Array(63, 62, 64), PackedInt32Array(64, 62, 65), PackedInt32Array(67, 66, 68), PackedInt32Array(68, 66, 69), PackedInt32Array(71, 70, 72), PackedInt32Array(72, 70, 73), PackedInt32Array(75, 74, 76), PackedInt32Array(76, 74, 77), PackedInt32Array(79, 78, 80), PackedInt32Array(80, 78, 81), PackedInt32Array(83, 82, 84), PackedInt32Array(84, 82, 85), PackedInt32Array(91, 90, 86), PackedInt32Array(86, 90, 89), PackedInt32Array(86, 89, 88), PackedInt32Array(86, 88, 87), PackedInt32Array(93, 92, 94), PackedInt32Array(94, 92, 95), PackedInt32Array(97, 96, 98), PackedInt32Array(98, 96, 99), PackedInt32Array(101, 100, 102), PackedInt32Array(102, 100, 103), PackedInt32Array(105, 104, 106), PackedInt32Array(106, 104, 107), PackedInt32Array(109, 108, 110), PackedInt32Array(110, 108, 111), PackedInt32Array(113, 112, 114), PackedInt32Array(114, 112, 115), PackedInt32Array(117, 116, 118), PackedInt32Array(118, 116, 119), PackedInt32Array(121, 120, 122), PackedInt32Array(122, 120, 123), PackedInt32Array(125, 124, 126), PackedInt32Array(126, 124, 127)]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_y1euo"]
albedo_color = Color(0.447059, 0.403922, 0.321569, 1)
[sub_resource type="PlaneMesh" id="PlaneMesh_d1xkw"]
material = SubResource("StandardMaterial3D_y1euo")
size = Vector2(128, 128)
subdivide_width = 50
subdivide_depth = 50
[node name="world" type="Node3D"]
metadata/_edit_lock_ = true
[node name="sky" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_qf0ml")
[node name="sun" type="DirectionalLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.849165, 0.528127, 0, -0.528127, 0.849165, 0, 5, 0)
metadata/_edit_lock_ = true
[node name="ground_nav" type="NavigationRegion3D" parent="."]
navigation_mesh = SubResource("NavigationMesh_s8xsv")
[node name="ground" type="MeshInstance3D" parent="ground_nav"]
mesh = SubResource("PlaneMesh_d1xkw")
skeleton = NodePath("../..")
[node name="camera" type="Camera3D" parent="."]
transform = Transform3D(0.384326, -0.718956, 0.579134, 0, 0.627313, 0.778767, -0.923197, -0.2993, 0.241093, 11.7269, 15.7692, 4.88189)
current = true
[node name="GameManagerAssault" parent="." instance=ExtResource("1_170qh")]
attacker_max_active = 3
defender_max_active = 3
non_aligned_max_active = 3
[node name="CommandPostNeutral" parent="." instance=ExtResource("3_460gl")]
metadata/_edit_lock_ = true
[node name="command_post" parent="CommandPostNeutral" instance=ExtResource("1_i3oxs")]
transform = Transform3D(1.19209e-07, 0, -1, 0, 1, 0, 1, 0, 1.19209e-07, 0, -5, 0)
[node name="CommandPostNonAligned" parent="." instance=ExtResource("6_o56jr")]
metadata/_edit_lock_ = true
[node name="command_post" parent="CommandPostNonAligned" instance=ExtResource("1_i3oxs")]
transform = Transform3D(2.98023e-08, 0, -1, 0, 1, 0, 1, 0, 2.98023e-08, -16, -5, 0)
[node name="CommandPostAttackers" parent="." instance=ExtResource("4_v0ljc")]
metadata/_edit_lock_ = true
[node name="command_post" parent="CommandPostAttackers" instance=ExtResource("1_i3oxs")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, -5, 11)
[node name="CommandPostDefenders" parent="." instance=ExtResource("5_djntp")]
metadata/_edit_lock_ = true
[node name="command_post" parent="CommandPostDefenders" instance=ExtResource("1_i3oxs")]
transform = Transform3D(-0.866025, 0, 0.5, 0, 1, 0, -0.5, 0, -0.866025, 7, -5, -11)