summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/game.gd12
-rw-r--r--client/menu/lobby.gd5
-rw-r--r--client/multiplayer.gd15
-rw-r--r--client/player/player.gd22
4 files changed, 25 insertions, 29 deletions
diff --git a/client/game.gd b/client/game.gd
index d7bb90a7..52beca7b 100644
--- a/client/game.gd
+++ b/client/game.gd
@@ -214,19 +214,19 @@ func _ready():
p.finish(warn)
)
- mp.text_message.connect(func(player: int, text: String, persist: bool):
+ mp.text_message.connect(func(player: int, text: String, timeout_initial: float, timeout_remaining: float):
var p: Player = players[player]
- p.text_message(text, persist)
+ p.text_message(text, timeout_initial, timeout_remaining)
)
- mp.item_message.connect(func(player: int, item: int, persist: bool):
+ mp.item_message.connect(func(player: int, item: int, timeout_initial: float, timeout_remaining: float):
var p: Player = players[player]
- p.item_message(item_names[item], persist)
+ p.item_message(item_names[item], timeout_initial, timeout_remaining)
)
- mp.effect_message.connect(func(player: int, effect: String, persist: bool):
+ mp.effect_message.connect(func(player: int, effect: String, timeout_initial: float, timeout_remaining: float):
var p: Player = players[player]
- p.effect_message(effect, persist)
+ p.effect_message(effect, timeout_initial, timeout_remaining)
)
mp.clear_message.connect(func(player: int):
diff --git a/client/menu/lobby.gd b/client/menu/lobby.gd
index 5136798d..a419c636 100644
--- a/client/menu/lobby.gd
+++ b/client/menu/lobby.gd
@@ -99,6 +99,7 @@ func initialize():
h.add_child(reset)
h.add_child(add)
add.pressed.connect(increase_bot_count.bind(algo_id))
+ reset.pressed.connect(reset_bot_count.bind(algo_id))
remove.pressed.connect(decrease_bot_count.bind(algo_id))
bot_settings.add_child(h)
@@ -124,6 +125,10 @@ func decrease_bot_count(algo_id: String):
bot_counts[algo_id] = new_count
update_bot_reset_text(algo_id)
+func reset_bot_count(algo_id: String):
+ bot_counts[algo_id] = 0
+ update_bot_reset_text(algo_id)
+
func update_bot_reset_text(algo_id: String):
var display_name: String = bot_display_names[algo_id] if bot_display_names.has(algo_id) else algo_id
bot_reset_buttons[algo_id].text = "%s (%d)" % [display_name, bot_counts[algo_id]]
diff --git a/client/multiplayer.gd b/client/multiplayer.gd
index e77b74c5..d5b13d20 100644
--- a/client/multiplayer.gd
+++ b/client/multiplayer.gd
@@ -30,9 +30,9 @@ signal data(
signal set_tile(tile: Vector2i, kind: int, neighbors: Array[String])
signal remove_tile(tile: Vector2i)
signal clear_message(player: int)
-signal text_message(player: int, text: String, persist: bool)
-signal item_message(player: int, item: int, persist: bool)
-signal effect_message(player: int, effect: String, persist: bool)
+signal text_message(player: int, text: String, timeout_initial: float, timeout_remaining: float)
+signal item_message(player: int, item: int, timeout_initial: float, timeout_remaining: float)
+signal effect_message(player: int, effect: String, timeout_initial: float, timeout_remaining: float)
signal add_player(player: int, name: String, pos: Vector2, character: int)
signal remove_player(player: int)
signal movement(player: int, position: Vector2, rotation: float, boost: bool, direction: Vector2)
@@ -227,17 +227,18 @@ func handle_packet(bytes: PackedByteArray):
"communicate":
var player: int = decoded["player"]
var message = decoded.get("message")
- var persist: bool = decoded["persist"]
+ var timeout_initial: float = decoded["timeout"]["initial"] if decoded["timeout"] != null else 5.
+ var timeout_remaining: float = decoded["timeout"]["remaining"] if decoded["timeout"] != null else 5.
if message != null:
var item = message.get("item")
var text = message.get("text")
var effect = message.get("effect")
if item != null:
- item_message.emit(player, item, persist)
+ item_message.emit(player, item, timeout_initial, timeout_remaining)
elif text != null:
- text_message.emit(player, text, persist)
+ text_message.emit(player, text, timeout_initial, timeout_remaining)
elif effect != null:
- effect_message.emit(player, effect, persist)
+ effect_message.emit(player, effect, timeout_initial, timeout_remaining)
else:
push_error("neither text, item nor effect provided")
else:
diff --git a/client/player/player.gd b/client/player/player.gd
index 0e06d521..0a4d24db 100644
--- a/client/player/player.gd
+++ b/client/player/player.gd
@@ -66,7 +66,6 @@ func _init(_id: int, new_name: String, pos: Vector2, new_character_idx: int, new
movement_base.add_child(effect)
clear_timer.one_shot = true
- clear_timer.wait_time = 5.
add_child(clear_timer)
marker.visible = false
add_child(marker)
@@ -151,23 +150,14 @@ func clear_message():
chat_bubble.remove_text()
effect.clear_effect()
-func item_message(item_name: String, persist: bool):
+func item_message(item_name: String, timeout_initial: float, timeout_remaining: float):
item_bubble.set_item(item_name)
- if persist:
- clear_timer.stop()
- else:
- clear_timer.start()
+ clear_timer.start(timeout_remaining)
-func text_message(m: String, persist: bool):
+func text_message(m: String, timeout_initial: float, timeout_remaining: float):
chat_bubble.set_text(m)
- if persist:
- clear_timer.stop()
- else:
- clear_timer.start()
+ clear_timer.start(timeout_remaining)
-func effect_message(effect_name: String, persist: bool):
+func effect_message(effect_name: String, timeout_initial: float, timeout_remaining: float):
effect.set_effect(effect_name)
- if persist:
- clear_timer.stop()
- else:
- clear_timer.start()
+ clear_timer.start(timeout_remaining)