diff options
-rw-r--r-- | client/game.gd | 12 | ||||
-rw-r--r-- | client/menu/lobby.gd | 5 | ||||
-rw-r--r-- | client/multiplayer.gd | 15 | ||||
-rw-r--r-- | client/player/player.gd | 22 |
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) |