mirror of
https://gitlab.com/open-fpsz/open-fpsz.git
synced 2026-07-15 08:24:48 +00:00
✨ Add flag grabbing/carrying scoring logic
This commit is contained in:
parent
cfd840c2e5
commit
ae75c64236
8 changed files with 65 additions and 30 deletions
|
|
@ -4,14 +4,26 @@ enum FlagState { FLAG_STATE_ON_STAND, FLAG_STATE_DROPPED, FLAG_STATE_TAKEN }
|
|||
|
||||
@export var flag_state : FlagState = FlagState.FLAG_STATE_ON_STAND
|
||||
|
||||
signal grabbed(grabber : Player)
|
||||
signal regrabbed
|
||||
signal dropped
|
||||
|
||||
var last_carrier : Player = null
|
||||
|
||||
func can_be_grabbed() -> bool:
|
||||
return flag_state != FlagState.FLAG_STATE_TAKEN
|
||||
|
||||
func grab() -> void:
|
||||
func grab(grabber : Player) -> void:
|
||||
if flag_state != FlagState.FLAG_STATE_TAKEN:
|
||||
flag_state = FlagState.FLAG_STATE_TAKEN
|
||||
if (last_carrier == null) or (grabber != last_carrier):
|
||||
grabbed.emit(grabber)
|
||||
last_carrier = grabber
|
||||
else:
|
||||
regrabbed.emit()
|
||||
|
||||
func drop() -> void:
|
||||
if flag_state == FlagState.FLAG_STATE_TAKEN:
|
||||
flag_state = FlagState.FLAG_STATE_DROPPED
|
||||
dropped.emit()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=7 format=3 uid="uid://c88l3h0ph00c7"]
|
||||
|
||||
[ext_resource type="Script" path="res://entities/flag/flag.gd" id="1_y7d3d"]
|
||||
[ext_resource type="PackedScene" path="res://entities/flag/assets/flag.glb" id="2_i78em"]
|
||||
[ext_resource type="PackedScene" uid="uid://d3l7fvbdg6m5g" path="res://entities/flag/assets/flag.glb" id="2_i78em"]
|
||||
[ext_resource type="PackedScene" uid="uid://bcgkc5fhhyauv" path="res://entities/flag/waypoint.tscn" id="3_tu6jg"]
|
||||
|
||||
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_4ymrw"]
|
||||
|
|
|
|||
|
|
@ -130,9 +130,10 @@ shape = ExtResource("2_vjqny")
|
|||
[node name="CollisionShape3D" type="CollisionShape3D" parent="HealthComponent"]
|
||||
shape = ExtResource("2_vjqny")
|
||||
|
||||
[node name="FlagCarryComponent" parent="." node_paths=PackedStringArray("attachment", "sensor") instance=ExtResource("7_e7s1a")]
|
||||
[node name="FlagCarryComponent" parent="." node_paths=PackedStringArray("attachment", "sensor", "carrier") instance=ExtResource("7_e7s1a")]
|
||||
attachment = NodePath("../Smoothing/SpringArm3D/FlagCarryAttachment")
|
||||
sensor = NodePath("../Sensor")
|
||||
carrier = NodePath("..")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue