summaryrefslogtreecommitdiff
path: root/godot/ui
diff options
context:
space:
mode:
authorAnson Bridges <bridges.anson@gmail.com>2022-10-11 00:15:48 -0400
committerAnson Bridges <bridges.anson@gmail.com>2022-10-11 00:15:48 -0400
commite7fb9bacf3ebb5209f90f412757c35276af51e85 (patch)
tree2dfac9d1273bf5efa1da5cfe82b4d8e64ae0bf3a /godot/ui
parent7dbec964a375598d454e04719576eb6c469a5d7b (diff)
ai cannon-manning state machine
Diffstat (limited to 'godot/ui')
-rw-r--r--godot/ui/HUD.gd35
-rw-r--r--godot/ui/HUD.tscn17
-rw-r--r--godot/ui/servermenu/CmdPrompt.gd6
3 files changed, 54 insertions, 4 deletions
diff --git a/godot/ui/HUD.gd b/godot/ui/HUD.gd
index 9bbcae1..cfef629 100644
--- a/godot/ui/HUD.gd
+++ b/godot/ui/HUD.gd
@@ -3,6 +3,7 @@ extends Control
var world
onready var character_list = $CharacterSelect/VBoxContainer
+onready var progress_bar: ProgressBar = $UseProgress
# Called when the node enters the scene tree for the first time.
func _ready():
@@ -36,11 +37,31 @@ func _input(_event):
yield(get_tree(), "idle_frame")
$ChatPrompt.text = ""
-func send_chat_msg(txt):
+func send_chat_msg(txt: String):
world.is_chatting = false
- world.rpc_id(1, "_call_on_server", "_send_chat", {"id" : world.client_id, "msg" : txt})
$ChatPrompt.visible = false
$ChatPrompt.text = ""
+ if !txt.begins_with("/"):
+ world.rpc_id(1, "_call_on_server", "_send_chat", {"id" : world.client_id, "msg" : txt})
+ return
+ #command process
+ var end_ind = txt.find(" ")-1
+ if end_ind < -1: end_ind = -1
+ var cmd: String = txt.get_slice(" ", 0).substr(1).to_lower()
+ var args = txt.substr(end_ind+1, -1).split(" ", false)
+ match cmd:
+ "goto":
+ var pos: Vector3 = str2var("Vector3("+txt.get_slice(" ", 1)+")")
+ if world.player_char:
+ world.player_char.ai_set_path_target(pos)
+ "find":
+ var item: String = txt.get_slice(" ", 1)
+ if world.player_char:
+ CharacterAIManager.request_find_object(world.player_char, item, 50, true)
+ "setaistate":
+ world.rpc_id(1,"_call_on_server", "_set_ai_state", [args[0], args[1]])
+ for i in range(2,13):
+ world.rpc_id(1,"_call_on_server", "_set_ai_state", [args[0]+str(i), args[1]])
func ui_chat_msg(msg):
$HUDAnim.stop()
@@ -71,7 +92,7 @@ func update_characters():
for character in world.get_node("PLAYERS").get_children():
if world.player_team == character.team:
var select_button = Button.new()
- select_button.connect("pressed", world, "select_character", [character.name])
+ select_button.connect("pressed", world, "request_select_character", [character.name])
select_button.text = character.name + " (" + str(character.get_network_master()) + ")"
character_list.add_child(select_button)
@@ -83,3 +104,11 @@ func ui_join_red():
func ui_join_blue():
world.join_team("BLUE")
+
+func set_progress(delta: float)-> void:
+ progress_bar.visible = true
+ progress_bar.set_value(delta)
+
+func hide_progress() -> void:
+ progress_bar.set_value(0)
+ progress_bar.visible = false
diff --git a/godot/ui/HUD.tscn b/godot/ui/HUD.tscn
index 5299b14..0c1538f 100644
--- a/godot/ui/HUD.tscn
+++ b/godot/ui/HUD.tscn
@@ -54,6 +54,10 @@ anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
+margin_left = -4.0
+margin_top = -6.0
+margin_right = 4.0
+margin_bottom = 8.0
text = "+"
[node name="ServerJoinMenu" type="Control" parent="."]
@@ -215,6 +219,19 @@ volume_db = 5.244
stream = ExtResource( 4 )
volume_db = 5.244
+[node name="UseProgress" type="ProgressBar" parent="."]
+visible = false
+anchor_left = 0.5
+anchor_top = 0.5
+anchor_right = 0.5
+anchor_bottom = 0.5
+margin_left = -21.0
+margin_top = 6.0
+margin_right = 20.0
+margin_bottom = 11.0
+max_value = 1.0
+percent_visible = false
+
[connection signal="pressed" from="ServerJoinMenu/JoinTeam1" to="." method="ui_join_red"]
[connection signal="pressed" from="ServerJoinMenu/JoinTeam2" to="." method="ui_join_blue"]
[connection signal="pressed" from="ServerJoinMenu/Disconnect" to="." method="_ui_disconnect"]
diff --git a/godot/ui/servermenu/CmdPrompt.gd b/godot/ui/servermenu/CmdPrompt.gd
index 965631b..e6deb0f 100644
--- a/godot/ui/servermenu/CmdPrompt.gd
+++ b/godot/ui/servermenu/CmdPrompt.gd
@@ -3,7 +3,7 @@ extends LineEdit
export var console_path := @""; onready var console := get_node(console_path) as ScrollContainer
var server_ref = null
var ui_ref = null
-
+#/setaistate Player3 ManCannon
func enter_cmd(new_text: String):
console.add_line(new_text)
text = ""
@@ -23,4 +23,8 @@ func enter_cmd(new_text: String):
elif cmd == "stop":
if server_ref != null:
ui_ref.stop_server()
+ elif cmd == "setaistate":
+ if server_ref != null:
+ #char name, desired state
+ server_ref._set_ai_state([args[0], args[1]])