Skip to content

Commit 5b07829

Browse files
committed
Add show message to API
1 parent dfd4892 commit 5b07829

File tree

4 files changed

+41
-17
lines changed

4 files changed

+41
-17
lines changed

docs/source/api.rst

+3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
Developer Interface
44
===================
55

6+
.. autoclass:: api.Game
7+
:members:
8+
69
.. autoclass:: api.Lord
710
:members:
811

mods/chat/main.py

+14-14
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import ctypes
22

33
from api import Game
4-
from internal.game_controller import get_last_message, last_message, send_message, \
4+
from internal.game_controller import get_last_message, last_message, show_message, \
55
place_wall, train_unit, zoom_in, zoom_out, buy, sell, set_game_speed, \
66
get_unit_owner, move_units, place_building
77

@@ -18,43 +18,43 @@ def on_tick_listener():
1818
SaveOldLastMessage.old_last_message = last_message.context.decode()
1919
print(player, context)
2020
if len(context.split()) == 3 and context.split()[0] == "train_unit":
21-
send_message(b"train_unit", str(train_unit(int(context.split()[1]), int(context.split()[2]))).encode())
21+
show_message(b"train_unit", str(train_unit(int(context.split()[1]), int(context.split()[2]))).encode())
2222

2323
elif len(context.split()) == 4 and context.split()[0] == "move_units":
2424
print(move_units([int(context.split()[1])], int(context.split()[2]), int(context.split()[3])))
2525

2626
elif len(context.split()) == 4 and context.split()[0] == "place_wall":
27-
send_message(b"place_wall", str(place_wall(int(context.split()[1]), int(context.split()[2]),
27+
show_message(b"place_wall", str(place_wall(int(context.split()[1]), int(context.split()[2]),
2828
int(context.split()[3]))).encode())
2929
elif len(context.split()) == 4 and context.split()[0] == "place_20_walls":
3030
for i in range(int(context.split()[2]), int(context.split()[2]) + 20):
31-
send_message(b"place_20_walls",
31+
show_message(b"place_20_walls",
3232
str(place_wall(int(context.split()[1]), i, int(context.split()[3]))).encode())
3333
for i in range(int(context.split()[2]), int(context.split()[2]) + 20):
34-
send_message(b"place_20_walls",
34+
show_message(b"place_20_walls",
3535
str(place_wall(int(context.split()[1]), i, int(context.split()[3]) + 20)).encode())
3636
for i in range(int(context.split()[3]), int(context.split()[3]) + 20):
37-
send_message(b"place_20_walls",
37+
show_message(b"place_20_walls",
3838
str(place_wall(int(context.split()[1]), int(context.split()[2]) + 20, i)).encode())
3939
for i in range(int(context.split()[3]), int(context.split()[3]) + 20):
40-
send_message(b"place_20_walls",
40+
show_message(b"place_20_walls",
4141
str(place_wall(int(context.split()[1]), int(context.split()[2]), i)).encode())
4242
elif len(context.split()) == 2 and context.split()[0] == "get_character_owner":
43-
send_message(b"get_character_owner", str(get_unit_owner(int(context.split()[1]))).encode())
43+
show_message(b"get_character_owner", str(get_unit_owner(int(context.split()[1]))).encode())
4444
elif len(context.split()) == 1 and context.split()[0] == "zoom_in":
45-
send_message(b"zoom_in", str(zoom_in().encode()))
45+
show_message(b"zoom_in", str(zoom_in().encode()))
4646
elif len(context.split()) == 1 and context.split()[0] == "zoom_out":
47-
send_message(b"zoom_out", str(zoom_out().encode()))
47+
show_message(b"zoom_out", str(zoom_out().encode()))
4848
elif len(context.split()) == 4 and context.split()[0] == "buy":
49-
send_message(b"buy",
49+
show_message(b"buy",
5050
str(buy(int(context.split()[1]), int(context.split()[2]), int(context.split()[3]))).encode())
5151
elif len(context.split()) == 4 and context.split()[0] == "sell":
52-
send_message(b"sell",
52+
show_message(b"sell",
5353
str(sell(int(context.split()[1]), int(context.split()[2]), int(context.split()[3]))).encode())
5454
elif len(context.split()) == 2 and context.split()[0] == "set_game_speed":
55-
send_message(b"set_game_speed", str(set_game_speed(int(context.split()[1]))).encode())
55+
show_message(b"set_game_speed", str(set_game_speed(int(context.split()[1]))).encode())
5656
elif len(context.split()) == 5 and context.split()[0] == "place_building":
57-
send_message(b"place_building", str(place_building(int(context.split()[1]), int(context.split()[2]),
57+
show_message(b"place_building", str(place_building(int(context.split()[1]), int(context.split()[2]),
5858
int(context.split()[3]),
5959
int(context.split()[4]))).encode())
6060

strongmod/api/game.py

+20-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from common.singleton import Singleton
2-
from internal.game_controller import set_on_tick_listener, is_game_created, get_resolution, disable_bot
2+
from internal.game_controller import set_on_tick_listener, is_game_created, get_resolution, disable_bot, show_message
33
from api.lord import Lord, LordDoesNotExistException
44

55

@@ -51,3 +51,22 @@ def get_resolution(self):
5151

5252
def disable_bot(self, bot_id):
5353
disable_bot(bot_id)
54+
55+
def show_message(self, title, message):
56+
"""
57+
Display a message in the chat.
58+
59+
This method allows the game to show a message in the chat
60+
61+
:param title: The title of the message.
62+
:type title: str
63+
64+
:param message: The content of the message.
65+
:type message: str
66+
67+
:Example:
68+
game = Game()
69+
70+
game.show_message("hello,", "world")
71+
"""
72+
show_message(title, message)

strongmod/internal/game_controller.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ class Message(ctypes.Structure):
1313
("player", ctypes.c_int)]
1414

1515

16-
send_message = _game_controller.send_message
17-
send_message.argtypes = [ctypes.c_char_p, ctypes.c_char_p]
16+
def show_message(title, message):
17+
_game_controller.send_message.argtypes = [ctypes.c_char_p, ctypes.c_char_p]
18+
_game_controller.send_message(str(title).encode(), str(message).encode())
19+
1820

1921
train_unit = _game_controller.train_unit
2022
train_unit.argtypes = [ctypes.c_int, ctypes.c_int]

0 commit comments

Comments
 (0)