Skip to content

Commit

Permalink
Add show message to API
Browse files Browse the repository at this point in the history
  • Loading branch information
StrongMods committed Aug 24, 2023
1 parent dfd4892 commit 5b07829
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 17 deletions.
3 changes: 3 additions & 0 deletions docs/source/api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
Developer Interface
===================

.. autoclass:: api.Game
:members:

.. autoclass:: api.Lord
:members:

Expand Down
28 changes: 14 additions & 14 deletions mods/chat/main.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import ctypes

from api import Game
from internal.game_controller import get_last_message, last_message, send_message, \
from internal.game_controller import get_last_message, last_message, show_message, \
place_wall, train_unit, zoom_in, zoom_out, buy, sell, set_game_speed, \
get_unit_owner, move_units, place_building

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

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

elif len(context.split()) == 4 and context.split()[0] == "place_wall":
send_message(b"place_wall", str(place_wall(int(context.split()[1]), int(context.split()[2]),
show_message(b"place_wall", str(place_wall(int(context.split()[1]), int(context.split()[2]),
int(context.split()[3]))).encode())
elif len(context.split()) == 4 and context.split()[0] == "place_20_walls":
for i in range(int(context.split()[2]), int(context.split()[2]) + 20):
send_message(b"place_20_walls",
show_message(b"place_20_walls",
str(place_wall(int(context.split()[1]), i, int(context.split()[3]))).encode())
for i in range(int(context.split()[2]), int(context.split()[2]) + 20):
send_message(b"place_20_walls",
show_message(b"place_20_walls",
str(place_wall(int(context.split()[1]), i, int(context.split()[3]) + 20)).encode())
for i in range(int(context.split()[3]), int(context.split()[3]) + 20):
send_message(b"place_20_walls",
show_message(b"place_20_walls",
str(place_wall(int(context.split()[1]), int(context.split()[2]) + 20, i)).encode())
for i in range(int(context.split()[3]), int(context.split()[3]) + 20):
send_message(b"place_20_walls",
show_message(b"place_20_walls",
str(place_wall(int(context.split()[1]), int(context.split()[2]), i)).encode())
elif len(context.split()) == 2 and context.split()[0] == "get_character_owner":
send_message(b"get_character_owner", str(get_unit_owner(int(context.split()[1]))).encode())
show_message(b"get_character_owner", str(get_unit_owner(int(context.split()[1]))).encode())
elif len(context.split()) == 1 and context.split()[0] == "zoom_in":
send_message(b"zoom_in", str(zoom_in().encode()))
show_message(b"zoom_in", str(zoom_in().encode()))
elif len(context.split()) == 1 and context.split()[0] == "zoom_out":
send_message(b"zoom_out", str(zoom_out().encode()))
show_message(b"zoom_out", str(zoom_out().encode()))
elif len(context.split()) == 4 and context.split()[0] == "buy":
send_message(b"buy",
show_message(b"buy",
str(buy(int(context.split()[1]), int(context.split()[2]), int(context.split()[3]))).encode())
elif len(context.split()) == 4 and context.split()[0] == "sell":
send_message(b"sell",
show_message(b"sell",
str(sell(int(context.split()[1]), int(context.split()[2]), int(context.split()[3]))).encode())
elif len(context.split()) == 2 and context.split()[0] == "set_game_speed":
send_message(b"set_game_speed", str(set_game_speed(int(context.split()[1]))).encode())
show_message(b"set_game_speed", str(set_game_speed(int(context.split()[1]))).encode())
elif len(context.split()) == 5 and context.split()[0] == "place_building":
send_message(b"place_building", str(place_building(int(context.split()[1]), int(context.split()[2]),
show_message(b"place_building", str(place_building(int(context.split()[1]), int(context.split()[2]),
int(context.split()[3]),
int(context.split()[4]))).encode())

Expand Down
21 changes: 20 additions & 1 deletion strongmod/api/game.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from common.singleton import Singleton
from internal.game_controller import set_on_tick_listener, is_game_created, get_resolution, disable_bot
from internal.game_controller import set_on_tick_listener, is_game_created, get_resolution, disable_bot, show_message
from api.lord import Lord, LordDoesNotExistException


Expand Down Expand Up @@ -51,3 +51,22 @@ def get_resolution(self):

def disable_bot(self, bot_id):
disable_bot(bot_id)

def show_message(self, title, message):
"""
Display a message in the chat.
This method allows the game to show a message in the chat
:param title: The title of the message.
:type title: str
:param message: The content of the message.
:type message: str
:Example:
game = Game()
game.show_message("hello,", "world")
"""
show_message(title, message)
6 changes: 4 additions & 2 deletions strongmod/internal/game_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,10 @@ class Message(ctypes.Structure):
("player", ctypes.c_int)]


send_message = _game_controller.send_message
send_message.argtypes = [ctypes.c_char_p, ctypes.c_char_p]
def show_message(title, message):
_game_controller.send_message.argtypes = [ctypes.c_char_p, ctypes.c_char_p]
_game_controller.send_message(str(title).encode(), str(message).encode())


train_unit = _game_controller.train_unit
train_unit.argtypes = [ctypes.c_int, ctypes.c_int]
Expand Down

0 comments on commit 5b07829

Please sign in to comment.