From 6d34205ba2baec5d6d47166d5e431a2c1a3ef1b0 Mon Sep 17 00:00:00 2001 From: Rendo Date: Wed, 26 Nov 2025 23:24:56 +0500 Subject: [PATCH] Teams --- TODO_LIST | 2 ++ project.godot | 2 ++ scenes/player.tscn | 10 ++++++++-- scripts/multiplayer/session.gd | 6 ++++++ scripts/player/collision_team_updater.gd | 10 ++++++++++ scripts/player/collision_team_updater.gd.uid | 1 + scripts/player/player.gd | 2 ++ 7 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 scripts/player/collision_team_updater.gd create mode 100644 scripts/player/collision_team_updater.gd.uid diff --git a/TODO_LIST b/TODO_LIST index 1ed96d6..b01ad76 100644 --- a/TODO_LIST +++ b/TODO_LIST @@ -1,3 +1,5 @@ +^ - completed + Current plans: ^ Add world model ^ Separate Viewmodel diff --git a/project.godot b/project.godot index e4eca95..ffb8cb7 100644 --- a/project.godot +++ b/project.godot @@ -148,3 +148,5 @@ plr_bomb={ 3d_physics/layer_2="Players" 3d_physics/layer_3="Gadgets" 3d_physics/layer_4="Projectiles" +3d_physics/layer_5="Players Attack Team" +3d_physics/layer_6="Players Defence Team" diff --git a/scenes/player.tscn b/scenes/player.tscn index fa37929..25eb6e9 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=22 format=3 uid="uid://dpsr6ug3pkb40"] +[gd_scene load_steps=23 format=3 uid="uid://dpsr6ug3pkb40"] [ext_resource type="Script" uid="uid://3dphlay25fih" path="res://scripts/player/player.gd" id="1_g2els"] [ext_resource type="Script" uid="uid://dalwlndejfdhm" path="res://scripts/player/crosshair.gd" id="3_dqkch"] @@ -7,6 +7,7 @@ [ext_resource type="Script" uid="uid://6c14qse4vnra" path="res://scripts/player/player_raycast.gd" id="4_fjrip"] [ext_resource type="Script" uid="uid://bmecgup3kcua7" path="res://scripts/weapon_system/weapon_system.gd" id="4_qlg0r"] [ext_resource type="Script" uid="uid://dd5mp72dq43v6" path="res://scripts/multiplayer/own_visibility_toggle.gd" id="4_smehm"] +[ext_resource type="Script" uid="uid://5gwpjiswnegn" path="res://scripts/player/collision_team_updater.gd" id="7_a8ls1"] [ext_resource type="PackedScene" uid="uid://djwjl8xll53vn" path="res://scenes/weapons/starting_pistol.tscn" id="7_fjrip"] [ext_resource type="Script" uid="uid://7gmgcaxfh8sb" path="res://scripts/debug/property_shower.gd" id="7_oprun"] [ext_resource type="Script" uid="uid://3777rkbebgjm" path="res://scripts/state_machine/machine.gd" id="8_f1ej7"] @@ -122,6 +123,7 @@ _data = { [node name="Player" type="CharacterBody3D"] collision_layer = 2 +collision_mask = 3 script = ExtResource("1_g2els") [node name="molikman_ingame" parent="." instance=ExtResource("8_smehm")] @@ -213,9 +215,13 @@ script = ExtResource("4_smehm") [node name="RayCast3D" type="RayCast3D" parent="Camera3D"] target_position = Vector3(0, 0, -1000) -collision_mask = 2 +collision_mask = 0 script = ExtResource("4_fjrip") +[node name="TeamUpdater" type="Node" parent="Camera3D/RayCast3D" node_paths=PackedStringArray("player")] +script = ExtResource("7_a8ls1") +player = NodePath("../../..") + [node name="StandArea" type="Area3D" parent="."] collision_layer = 0 diff --git a/scripts/multiplayer/session.gd b/scripts/multiplayer/session.gd index 61510e1..728983a 100644 --- a/scripts/multiplayer/session.gd +++ b/scripts/multiplayer/session.gd @@ -1 +1,7 @@ extends Node + +enum TEAMS { + DEFENCE, + ATTACK, + SPECTATE +} diff --git a/scripts/player/collision_team_updater.gd b/scripts/player/collision_team_updater.gd new file mode 100644 index 0000000..92c5e09 --- /dev/null +++ b/scripts/player/collision_team_updater.gd @@ -0,0 +1,10 @@ +extends Node + +@export var player: Player + +const ATTACK_LAYER: int = 0b10000 +const DEFENCE_LAYER: int = 0b100000 + +func _ready() -> void: + + get_parent().collision_mask |= (ATTACK_LAYER if player.team == Session.TEAMS.DEFENCE else DEFENCE_LAYER) diff --git a/scripts/player/collision_team_updater.gd.uid b/scripts/player/collision_team_updater.gd.uid new file mode 100644 index 0000000..4cb4c73 --- /dev/null +++ b/scripts/player/collision_team_updater.gd.uid @@ -0,0 +1 @@ +uid://5gwpjiswnegn diff --git a/scripts/player/player.gd b/scripts/player/player.gd index aa6cdd0..bb553f6 100644 --- a/scripts/player/player.gd +++ b/scripts/player/player.gd @@ -2,6 +2,8 @@ extends CharacterBody3D class_name Player +@export var team: Session.TEAMS + const MAX_HP = 100 @export var hp: int = 100: