Server & Game refactor basics
This commit is contained in:
41
game.py
41
game.py
@@ -1,10 +1,43 @@
|
||||
from serializable import Serializable
|
||||
from dice import Dice
|
||||
from events.event import Event
|
||||
from entities.player import Player
|
||||
from entities.npc import NPC
|
||||
from items.item import Item
|
||||
|
||||
class Game(Serializable):
|
||||
def __init__(self, seed:int=42):
|
||||
self.players = []
|
||||
self.npcs = []
|
||||
self.items = []
|
||||
self.active_players:list[Player] = []
|
||||
self.active_npcs:list[NPC] = []
|
||||
self.active_items:list[Item] = []
|
||||
|
||||
|
||||
self.events:list[Event] = []
|
||||
|
||||
def get_player(self, player_id:str):
|
||||
for player in self.active_players:
|
||||
if player.id == player_id:
|
||||
return player
|
||||
raise ReferenceError(f"The player #{player_id} doesn't exist!")
|
||||
|
||||
def get_npc(self, npc_id:str):
|
||||
for npc in self.active_npcs:
|
||||
if npc.id == npc_id:
|
||||
return npc
|
||||
raise ReferenceError(f"The npc #{npc_id} doesn't exist!")
|
||||
|
||||
def get_item(self, item_id:str):
|
||||
for item in self.active_items:
|
||||
if item.id == item_id:
|
||||
return item
|
||||
raise ReferenceError(f"The item #{item_id} doesn't exist!")
|
||||
|
||||
def get_current_event(self):
|
||||
idx = len(self.events) - 1
|
||||
if idx < 0:
|
||||
raise IndexError("There is no event yet, you should create one!")
|
||||
return self.events[idx]
|
||||
|
||||
def add_event(self, new_event:Event):
|
||||
self.events.append(new_event)
|
||||
|
||||
#TODO: Add State Summary as Resource?
|
||||
Reference in New Issue
Block a user