Skip to content

Commit

Permalink
Merge pull request #98 from HagenSR/generate-fix
Browse files Browse the repository at this point in the history
Fixed issue with partition to/from json,
  • Loading branch information
HagenSR authored Aug 6, 2021
2 parents ac25e83 + 2436153 commit fe762f4
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 18 deletions.
8 changes: 6 additions & 2 deletions game/common/player.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,27 @@
from game.common.action import Action
from game.common.game_object import GameObject
from game.common.enums import *
from game.common.moving.shooter import Shooter


class Player(GameObject):
def __init__(self, code=None, team_name=None, action=None):
def __init__(self, code=None, team_name=None, action=None, shooter=None):
super().__init__()
self.object_type = ObjectType.player

self.functional = True
self.error = None
self.team_name = team_name
self.code = code
self.action = action
self.shooter = shooter

def to_json(self):
data = super().to_json()

data['functional'] = self.functional
data['error'] = self.error
data['team_name'] = self.team_name
data['shooter'] = self.shooter.to_json()
data['action'] = self.action.to_json(
) if self.action is not None else None

Expand All @@ -33,6 +35,8 @@ def from_json(self, data):
self.functional = data['functional']
self.error = data['error']
self.team_name = data['team_name']
shtr = Shooter()
self.shooter = shtr.from_json(data['shooter'])
act = Action()
self.action = act.from_json(
data['action']) if data['action'] is not None else None
Expand Down
3 changes: 2 additions & 1 deletion game/controllers/master_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,8 @@ def turn_logic(self, clients, turn):
# Return serialized version of game
def create_turn_log(self, clients, turn):
data = dict()
data['turn'] = turn
data['tick'] = turn
data['clients'] = [client.to_json() for client in clients]
# Add things that should be thrown into the turn logs here.
data['game_map'] = self.current_world_data["game_map"].to_json()

Expand Down
22 changes: 11 additions & 11 deletions game/engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,17 @@ def boot(self):
continue

# Otherwise, instantiate the player
player = Player()
self.clients.append(player)
if len(self.clients) == 0:
# Add players one and two
ar = GameStats.player_stats["hitbox"][0]
hit = Hitbox(ar[0], ar[1], (ar[2], ar[3]))
player = Player(shooter=Shooter(hitbox=hit))
self.clients.append(player)
else:
ar = GameStats.player_stats["hitbox"][1]
hit = Hitbox(ar[0], ar[1], (ar[2], ar[3]))
player = Player(shooter=Shooter(hitbox=hit))
self.clients.append(player)

# Verify client isn't using invalid imports or opening anything
imports, opening = verify_code(filename + '.py')
Expand Down Expand Up @@ -167,15 +176,6 @@ def load(self):
gameBoard = GameBoard()
game_map = gameBoard.from_json(world['game_map'])

# Add players one and two
ar = GameStats.player_stats["hitbox"][0]
hit = Hitbox(ar[0], ar[1], (ar[2], ar[3]))
game_map.player_list.append(Shooter(hitbox=hit))

ar = GameStats.player_stats["hitbox"][1]
hit = Hitbox(ar[0], ar[1], (ar[2], ar[3]))
game_map.player_list.append(Shooter(hitbox=hit))

# add game map object to dictionary
world.pop("game_map", None)
self.world["game_map"] = game_map
Expand Down
4 changes: 2 additions & 2 deletions game/utils/generate_game.py
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,8 @@ def generate():
wall_copy = copy.deepcopy(wall)
x_offset = plot.position[0] + wall_copy.hitbox.position[0]
y_offset = plot.position[1] + wall_copy.hitbox.position[1]
wall_copy.position = (x_offset, y_offset)
game_map.wall_list.append(wall_copy)
wall_copy.hitbox.position = (x_offset, y_offset)
game_map.partition.add_object(wall_copy)

# Verify logs location exists
if not os.path.exists(GAME_MAP_DIR):
Expand Down
4 changes: 2 additions & 2 deletions game/utils/partition_grid.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ def remove_object(self, obj: MapObject) -> None:
def to_json(self):
data = {'matrix': [
[
[obj.to_json() for obj in self.__matrix[row][column]]
[obj.to_json() if "to_json" in dir(obj) else obj for obj in self.__matrix[row][column]]
for column in range(len(self.__matrix[row]))
]
for row in range(len(self.__matrix))
Expand All @@ -104,7 +104,7 @@ def to_json(self):
def from_json(self, data):
self.__matrix = [
[
[obj.from_json() for obj in column]
[obj.from_json() if "from_json" in dir(obj) else obj for obj in column]
for column in row
]
for row in data['matrix']
Expand Down

0 comments on commit fe762f4

Please sign in to comment.