Prepare CPU Mode GOAP pattern; initial assign player event patterns
This commit is contained in:
@@ -24,7 +24,8 @@ far = 8000.0
|
|||||||
|
|
||||||
[node name="controller_manager" parent="." instance=ExtResource("2_j5wjh")]
|
[node name="controller_manager" parent="." instance=ExtResource("2_j5wjh")]
|
||||||
|
|
||||||
[node name="factory_controller" parent="controller_manager" instance=ExtResource("2_ryrav")]
|
[node name="factory_controller" parent="controller_manager" node_paths=PackedStringArray("jets_collection") instance=ExtResource("2_ryrav")]
|
||||||
|
jets_collection = NodePath("../../jets_collection")
|
||||||
|
|
||||||
[node name="jet_factory" parent="controller_manager/factory_controller" instance=ExtResource("2_e2o6t")]
|
[node name="jet_factory" parent="controller_manager/factory_controller" instance=ExtResource("2_e2o6t")]
|
||||||
|
|
||||||
@@ -43,7 +44,8 @@ faction = 1
|
|||||||
[node name="spawner3" parent="controller_manager/spawn_controller" instance=ExtResource("5_ryrav")]
|
[node name="spawner3" parent="controller_manager/spawn_controller" instance=ExtResource("5_ryrav")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 84.06215, 2.5178223, -76.95647)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 84.06215, 2.5178223, -76.95647)
|
||||||
|
|
||||||
[node name="game_controller" parent="controller_manager" instance=ExtResource("7_vef74")]
|
[node name="game_controller" parent="controller_manager" node_paths=PackedStringArray("jets_collection") instance=ExtResource("7_vef74")]
|
||||||
|
jets_collection = NodePath("../../jets_collection")
|
||||||
|
|
||||||
[node name="game_mode" parent="controller_manager/game_controller" instance=ExtResource("3_fc0e3")]
|
[node name="game_mode" parent="controller_manager/game_controller" instance=ExtResource("3_fc0e3")]
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,6 @@
|
|||||||
class_name Jet extends CharacterBody3D
|
class_name Jet extends CharacterBody3D
|
||||||
|
|
||||||
|
|
||||||
@export_enum(
|
|
||||||
"CPU:0",
|
|
||||||
"PLAYER:1"
|
|
||||||
) var control_mode: int = Globals.ControlMode.CPU_MODE
|
|
||||||
|
|
||||||
@export_enum(
|
@export_enum(
|
||||||
"Allies:0",
|
"Allies:0",
|
||||||
"Axis:1",
|
"Axis:1",
|
||||||
|
|||||||
@@ -1,18 +1,28 @@
|
|||||||
class_name CPUController extends BaseController
|
class_name CPUController extends BaseController
|
||||||
|
|
||||||
|
|
||||||
func _controller_message(_event: BaseEvent) -> void:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
func _process(_delta: float) -> void:
|
func _process(_delta: float) -> void:
|
||||||
if not jets_collection: return
|
if not jets_collection: return
|
||||||
|
|
||||||
for jet: Jet in jets_collection.get_children():
|
for jet: Jet in jets_collection.get_children():
|
||||||
if jet.controller.control_mode == Globals.ControlMode.PLAYER_MODE:
|
if Globals.ControlMode.PLAYER_MODE == jet.controller.control_mode:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
set_jet_action(jet)
|
process_jet_plan(jet.controller.cpu)
|
||||||
|
|
||||||
func set_jet_action(jet: Jet) -> void:
|
func _controller_message(event: BaseEvent) -> void:
|
||||||
jet.controller.cpu.yaw_left()
|
if event is InitSpawnsLoadedEvent:
|
||||||
|
handle_init_spawns_loaded_event()
|
||||||
|
|
||||||
|
func handle_init_spawns_loaded_event() -> void:
|
||||||
|
for jet: Jet in jets_collection.get_children():
|
||||||
|
if Globals.ControlMode.PLAYER_MODE == jet.controller.control_mode:
|
||||||
|
continue
|
||||||
|
|
||||||
|
create_jet_plan(jet)
|
||||||
|
|
||||||
|
func create_jet_plan(jet: Jet) -> void:
|
||||||
|
print(jet)
|
||||||
|
|
||||||
|
func process_jet_plan(jet: CPU) -> void:
|
||||||
|
jet.yaw_left()
|
||||||
|
|||||||
@@ -4,12 +4,25 @@ class_name GameController extends BaseController
|
|||||||
func _controller_message(event: BaseEvent) -> void:
|
func _controller_message(event: BaseEvent) -> void:
|
||||||
if event is GameReadyEvent:
|
if event is GameReadyEvent:
|
||||||
handle_game_ready_event()
|
handle_game_ready_event()
|
||||||
|
elif event is AssignPlayerJet:
|
||||||
|
assign_player_jet(event)
|
||||||
|
|
||||||
func handle_game_ready_event() -> void:
|
func handle_game_ready_event() -> void:
|
||||||
controller_message_bus.message.call(
|
controller_message_bus.message.call( CreateAlliesJetEvent.new() )
|
||||||
CreateAlliesJetEvent.new()
|
controller_message_bus.message.call( CreateAxisJetEvent.new() )
|
||||||
)
|
|
||||||
|
|
||||||
controller_message_bus.message.call(
|
var event: AssignPlayerJet = AssignPlayerJet.new()
|
||||||
CreateAxisJetEvent.new()
|
event.set_as_allies()
|
||||||
)
|
|
||||||
|
controller_message_bus.message.call_deferred(event)
|
||||||
|
controller_message_bus.message.call_deferred( InitSpawnsLoadedEvent.new() )
|
||||||
|
|
||||||
|
|
||||||
|
func assign_player_jet(event: AssignPlayerJet) -> void:
|
||||||
|
for jet: Jet in jets_collection.get_children():
|
||||||
|
if not jet.faction == event.faction: continue
|
||||||
|
if jet.controller.control_mode == Globals.ControlMode.PLAYER_MODE: continue
|
||||||
|
|
||||||
|
jet.set_as_player()
|
||||||
|
|
||||||
|
break
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ class_name JetController extends Node
|
|||||||
@export_enum(
|
@export_enum(
|
||||||
"CPU:0",
|
"CPU:0",
|
||||||
"PLAYER:1"
|
"PLAYER:1"
|
||||||
) var control_mode: int = Globals.ControlMode.PLAYER_MODE
|
) var control_mode: int = Globals.ControlMode.CPU_MODE
|
||||||
|
|
||||||
@onready var cpu: CPU = $cpu
|
@onready var cpu: CPU = $cpu
|
||||||
@onready var player: Player = $player
|
@onready var player: Player = $player
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ class_name CPU extends Node
|
|||||||
|
|
||||||
|
|
||||||
var command: Globals.ControllerCommand = Globals.ControllerCommand.NONE
|
var command: Globals.ControllerCommand = Globals.ControllerCommand.NONE
|
||||||
|
var throttle: Globals.ControllerCommand = Globals.ControllerCommand.NONE
|
||||||
|
|
||||||
|
|
||||||
func process(_delta: float) -> Globals.ControllerCommand:
|
func process(_delta: float) -> Globals.ControllerCommand:
|
||||||
@@ -13,6 +14,7 @@ func physics_process(_delta: float) -> Globals.ControllerCommand:
|
|||||||
func unhandled_input(_event: InputEvent) -> Globals.ControllerCommand:
|
func unhandled_input(_event: InputEvent) -> Globals.ControllerCommand:
|
||||||
return command
|
return command
|
||||||
|
|
||||||
|
|
||||||
func pull_up() -> void:
|
func pull_up() -> void:
|
||||||
command = Globals.ControllerCommand.PULL_UP
|
command = Globals.ControllerCommand.PULL_UP
|
||||||
|
|
||||||
@@ -32,7 +34,13 @@ func roll_right() -> void:
|
|||||||
command = Globals.ControllerCommand.ROLL_RIGHT
|
command = Globals.ControllerCommand.ROLL_RIGHT
|
||||||
|
|
||||||
func throttle_up() -> void:
|
func throttle_up() -> void:
|
||||||
command = Globals.ControllerCommand.THROTTLE_UP
|
throttle = Globals.ControllerCommand.THROTTLE_UP
|
||||||
|
|
||||||
func throttle_down() -> void:
|
func throttle_down() -> void:
|
||||||
command = Globals.ControllerCommand.THROTTLE_DOWN
|
throttle = Globals.ControllerCommand.THROTTLE_DOWN
|
||||||
|
|
||||||
|
func throttle_neutral() -> void:
|
||||||
|
throttle = Globals.ControllerCommand.NONE
|
||||||
|
|
||||||
|
func no_action() -> void:
|
||||||
|
command = Globals.ControllerCommand.NONE
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
class_name AssignPlayerJet extends BaseEvent
|
||||||
|
|
||||||
|
|
||||||
|
var faction: Globals.Faction
|
||||||
|
|
||||||
|
|
||||||
|
func set_as_allies() -> void:
|
||||||
|
faction = Globals.Faction.ALLIES
|
||||||
|
|
||||||
|
func set_as_axis() -> void:
|
||||||
|
faction = Globals.Faction.AXIS
|
||||||
|
|
||||||
|
func set_as_neutral() -> void:
|
||||||
|
faction = Globals.Faction.NEUTRAL
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://do03fjsunvw1l
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
class_name InitSpawnsLoadedEvent extends BaseEvent
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://beylxjygmq0pn
|
||||||
Reference in New Issue
Block a user