Archived
add distribute_market_cards
This commit is contained in:
+4
-1
@@ -24,7 +24,10 @@ playerServer.message_callbacks.append(handler)
|
|||||||
|
|
||||||
async def game_init():
|
async def game_init():
|
||||||
for _ in range(10):
|
for _ in range(10):
|
||||||
await hero_game.create_card()
|
card = await hero_game.create_card()
|
||||||
|
hero_game.market_stack.append(card)
|
||||||
|
|
||||||
|
await hero_game.distribute_market_cards()
|
||||||
|
|
||||||
|
|
||||||
async def main():
|
async def main():
|
||||||
|
|||||||
+15
-5
@@ -18,14 +18,14 @@ class Game(Serializable):
|
|||||||
|
|
||||||
started: bool
|
started: bool
|
||||||
|
|
||||||
default_health = 80
|
default_health = 50
|
||||||
|
|
||||||
listeners: List[Callable[[str, dict], Awaitable[Any]]]
|
listeners: List[Callable[[str, dict], Awaitable[Any]]]
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.market_stack = []
|
self.market_stack = []
|
||||||
self.market = []
|
self.market = [None for _ in range(5)]
|
||||||
self.gem_stack = []
|
self.gem_stack = []
|
||||||
self.players = []
|
self.players = []
|
||||||
self.cards = []
|
self.cards = []
|
||||||
@@ -55,7 +55,7 @@ class Game(Serializable):
|
|||||||
sprite="testsprite",
|
sprite="testsprite",
|
||||||
)
|
)
|
||||||
self.cards.append(card)
|
self.cards.append(card)
|
||||||
await self.notify_controller("create", card.serialize())
|
await self.notify_controller("create", card.serialize_guest())
|
||||||
|
|
||||||
return card
|
return card
|
||||||
|
|
||||||
@@ -72,7 +72,7 @@ class Game(Serializable):
|
|||||||
async def create_team(self) -> Team:
|
async def create_team(self) -> Team:
|
||||||
team = Team(health=self.default_health)
|
team = Team(health=self.default_health)
|
||||||
self.teams.append(team)
|
self.teams.append(team)
|
||||||
await self.notify_controller("create", team.serialize())
|
await self.notify_controller("create", team.serialize_guest())
|
||||||
|
|
||||||
return team
|
return team
|
||||||
|
|
||||||
@@ -82,12 +82,22 @@ class Game(Serializable):
|
|||||||
return players[0]
|
return players[0]
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
async def distribute_market_cards(self):
|
||||||
|
"""Tries to fill holes in the market with cards from the market stack"""
|
||||||
|
try:
|
||||||
|
while None in self.market:
|
||||||
|
self.market[self.market.index(None)] = self.market_stack.pop()
|
||||||
|
except IndexError:
|
||||||
|
print("no more cards in market_stack!")
|
||||||
|
finally:
|
||||||
|
await self.notify_controller("update", self.serialize_guest())
|
||||||
|
|
||||||
def serialize_guest(self) -> dict:
|
def serialize_guest(self) -> dict:
|
||||||
return self.__dict__ | {
|
return self.__dict__ | {
|
||||||
"listeners": None,
|
"listeners": None,
|
||||||
"cards": [card.uuid for card in self.cards],
|
"cards": [card.uuid for card in self.cards],
|
||||||
"market_stack": [None for card in self.market_stack],
|
"market_stack": [None for card in self.market_stack],
|
||||||
"market": [card.uuid for card in self.market],
|
"market": [None if card is None else card.uuid for card in self.market],
|
||||||
"gem_stack": [card.uuid for card in self.gem_stack],
|
"gem_stack": [card.uuid for card in self.gem_stack],
|
||||||
"players": [player.uuid for player in self.players],
|
"players": [player.uuid for player in self.players],
|
||||||
"teams": [team.uuid for team in self.teams],
|
"teams": [team.uuid for team in self.teams],
|
||||||
|
|||||||
@@ -11,4 +11,9 @@ class Serializable:
|
|||||||
self.object_type = self.__class__.object_type
|
self.object_type = self.__class__.object_type
|
||||||
|
|
||||||
def serialize(self):
|
def serialize(self):
|
||||||
|
"""Returns a dict to be saved on the database"""
|
||||||
return self.__dict__
|
return self.__dict__
|
||||||
|
|
||||||
|
def serialize_guest(self):
|
||||||
|
"""Returns a dict with some elements masked for the players"""
|
||||||
|
return self.serialize()
|
||||||
|
|||||||
Reference in New Issue
Block a user