added server communication between client and server
This commit is contained in:
@ -2,12 +2,18 @@ import pygame
|
||||
from Classes.Game.BoardField import BoardField
|
||||
from Classes.System.Components.Label import Label
|
||||
from Classes.Game.Cards.MonsterCard import MonsterCard
|
||||
from Classes.Game.Cards.SpellCard import SpellCard
|
||||
from Classes.Game.Cards.TrapCard import TrapCard
|
||||
from Classes.System.Components.InputHandler import InputHandler
|
||||
from Classes.Game.Player import Player
|
||||
|
||||
class World():
|
||||
__boardFields:list
|
||||
__player:Player
|
||||
__enemy:Player
|
||||
__labels:list
|
||||
__cards:pygame.sprite.Group()
|
||||
__PlayerHandCards:pygame.sprite.Group()
|
||||
__screen:pygame.surface
|
||||
__cardWidth:int = 150
|
||||
__cardHeight:int = 200
|
||||
@ -16,11 +22,14 @@ class World():
|
||||
def __init__(self, screen:pygame.surface, cardWidth:int=200, cardHeight:int=250, cardOffset:int=400):
|
||||
self.__boardFields = []
|
||||
self.__labels = []
|
||||
self.__cards = []
|
||||
self.__cards = pygame.sprite.Group()
|
||||
self.__PlayerHandCards = pygame.sprite.Group()
|
||||
self.__screen = screen
|
||||
self.__cardWidth = cardWidth
|
||||
self.__cardHeight = cardHeight
|
||||
self.__cardOffset = cardOffset
|
||||
self.__player = None
|
||||
self.__enemy = None
|
||||
self.buildGameWorld()
|
||||
|
||||
def buildGameWorld(self):
|
||||
@ -42,17 +51,19 @@ class World():
|
||||
pDeckPos = pygame.Vector2((self.__cardOffset + (((self.__cardWidth + 10) - 30 ) * 5)), pRow2Height)
|
||||
pNamePos = pygame.Vector2(20, pRow2Height + 195)
|
||||
pHPPos = pygame.Vector2(20, pRow2Height + 225)
|
||||
pManaPos = pygame.Vector2(20, pRow2Height + 255)
|
||||
|
||||
# labeling
|
||||
self.__labels.append(Label("PlayerHP", self.__screen, "1000 / 1000", pHPPos))
|
||||
self.__labels.append(Label("PlayerName", self.__screen, "Player", pNamePos))
|
||||
self.__labels.append(Label("PlayerName", self.__screen, "0", pManaPos))
|
||||
self.__labels.append(Label("EnemyHP", self.__screen, "1000 / 1000", eHPPos))
|
||||
self.__labels.append(Label("EnemyName", self.__screen, "Enemy", eNamePos))
|
||||
|
||||
self.__boardFields.append(BoardField("EnemyDeck", "Enemy", "Deck", eDeckPos, "Assets/Cards/Arena/field.png"))
|
||||
self.__boardFields.append(BoardField("EnemyGraveyard", "Enemy", "Grave", eGravePos, "Assets/Cards/Arena/field.png"))
|
||||
self.__boardFields.append(BoardField("PlayerDeck", "Player", "Deck", pDeckPos, "Assets/Cards/Arena/field.png"))
|
||||
self.__boardFields.append(BoardField("PlayerGraveyard", "Player", "Grave", pGravePos, "Assets/Cards/Arena/field.png"))
|
||||
self.__boardFields.append(BoardField("EnemyDeck", "Enemy", "Deck", eDeckPos, "Assets/Cards/0/field.png", "e-deck"))
|
||||
self.__boardFields.append(BoardField("EnemyGraveyard", "Enemy", "Grave", eGravePos, "Assets/Cards/0/field.png", "e-grave"))
|
||||
self.__boardFields.append(BoardField("PlayerDeck", "Player", "Deck", pDeckPos, "Assets/Cards/0/field.png", "P-deck"))
|
||||
self.__boardFields.append(BoardField("PlayerGraveyard", "Player", "Grave", pGravePos, "Assets/Cards/0/field.png", "p-grave"))
|
||||
|
||||
# handle field creation
|
||||
for i in range(5):
|
||||
@ -61,10 +72,10 @@ class World():
|
||||
eMonsterPos = pygame.Vector2((self.__cardOffset + (((self.__cardWidth + 10) - 30) * (i+1)), eRow1Height))
|
||||
eEffectPos = pygame.Vector2((self.__cardOffset + (((self.__cardWidth + 10) - 30) * (i+1))), eRow2Height)
|
||||
|
||||
self.__boardFields.append(BoardField("PlayerMonsterField-"+str(i), "Player", "MonsterField", pMonsterPos, "Assets/Cards/Arena/field.png", "pm"+str(id)))
|
||||
self.__boardFields.append(BoardField("PlayerEffectField-"+str(i), "Player", "EffectField", pEffectPos, "Assets/Cards/Arena/field.png", "pe"+str(id)))
|
||||
self.__boardFields.append(BoardField("EnemyMonsterField-"+str(i), "Enemy", "MonsterField", eMonsterPos, "Assets/Cards/Arena/field.png", "em"+str(id)))
|
||||
self.__boardFields.append(BoardField("EnemySpellTrapField-"+str(i), "Enemy", "EffectField", eEffectPos, "Assets/Cards/Arena/field.png", "ee"+str(id)))
|
||||
self.__boardFields.append(BoardField("PlayerMonsterField-"+str(i), "Player", "MonsterField", pMonsterPos, "Assets/Cards/0/field.png", "pm"+str(id)))
|
||||
self.__boardFields.append(BoardField("PlayerEffectField-"+str(i), "Player", "EffectField", pEffectPos, "Assets/Cards/0/field.png", "pe"+str(id)))
|
||||
self.__boardFields.append(BoardField("EnemyMonsterField-"+str(i), "Enemy", "MonsterField", eMonsterPos, "Assets/Cards/0/field.png", "em"+str(id)))
|
||||
self.__boardFields.append(BoardField("EnemySpellTrapField-"+str(i), "Enemy", "EffectField", eEffectPos, "Assets/Cards/0/field.png", "ee"+str(id)))
|
||||
|
||||
def getBoardFields(self) -> list:
|
||||
return self.__boardFields
|
||||
@ -81,9 +92,45 @@ class World():
|
||||
def getCards(self) -> pygame.sprite.Group:
|
||||
return self.__cards
|
||||
|
||||
def spawnCard(self, asset:str, pos:pygame.Vector2, inputHandler:InputHandler) -> MonsterCard:
|
||||
self.__cards.add(MonsterCard(pos, asset, inputHandler))
|
||||
def getHandCards(self) -> pygame.sprite.Group:
|
||||
return self.__PlayerHandCards
|
||||
|
||||
def getPlayer(self) -> Player:
|
||||
return self.__player
|
||||
|
||||
def getEnemy(self) -> Player:
|
||||
return self.__enemy
|
||||
|
||||
def setPlayer(self, player:Player):
|
||||
for label in self.__labels:
|
||||
if label.getName() == "PlayerName":
|
||||
label.setText(player.getName())
|
||||
self.__player = player
|
||||
|
||||
def setEnemy(self, player:Player):
|
||||
for label in self.__labels:
|
||||
if label.getName() == "EnemyName":
|
||||
label.setText(player.getName())
|
||||
self.__enemy = player
|
||||
|
||||
def spawnMonsterCard(self, asset:str, pos:pygame.Vector2, inputHandler:InputHandler, owner:Player) -> MonsterCard:
|
||||
card = MonsterCard(pos, asset, inputHandler, owner)
|
||||
self.__cards.add(card)
|
||||
return card
|
||||
|
||||
def spawnSpellCard(self, asset:str, pos:pygame.Vector2, inputHandler:InputHandler, owner:Player) -> SpellCard:
|
||||
card = SpellCard(pos, asset, inputHandler, owner)
|
||||
self.__cards.add(card)
|
||||
return card
|
||||
|
||||
def spawnTrapCard(self, asset:str, pos:pygame.Vector2, inputHandler:InputHandler, owner:Player) -> TrapCard:
|
||||
card = TrapCard(pos, asset, inputHandler, owner)
|
||||
self.__cards.add(card)
|
||||
return card
|
||||
|
||||
def spawnCards(self, cards:pygame.sprite.Group):
|
||||
for card in cards:
|
||||
self.__cards.append(card)
|
||||
self.__cards.add(card)
|
||||
|
||||
def AddToPlayerHand(self, Card):
|
||||
self.__PlayerHandCards.add(Card)
|
Reference in New Issue
Block a user