fixed a bunch of shit
This commit is contained in:
parent
0b447f9505
commit
2055786d4a
BIN
Game Server/Assets/Arenas/default.png
Normal file
BIN
Game Server/Assets/Arenas/default.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
BIN
Game Server/Assets/Cards/Arena/field.png
Normal file
BIN
Game Server/Assets/Cards/Arena/field.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 612 B |
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"name": "Test Monster",
|
||||||
|
"image": "Assets/Cards/testmonstercard/cards.png",
|
||||||
|
"description": "can attack other monsters",
|
||||||
|
"costs": 30,
|
||||||
|
"defense": 40,
|
||||||
|
"attacks":[
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"name":"test attack",
|
||||||
|
"description": "can attack another Monster",
|
||||||
|
"damage": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"name":"test attack",
|
||||||
|
"description": "can attack another Monster",
|
||||||
|
"damage": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
BIN
Game Server/Assets/Cards/MonsterCards/testmonstercard/card.png
Normal file
BIN
Game Server/Assets/Cards/MonsterCards/testmonstercard/card.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.3 KiB |
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"name": "testspell",
|
||||||
|
"image":"Assets/Cards/testspelltcard/artwork.png",
|
||||||
|
"costs": 30,
|
||||||
|
"description":"this is a test spell card"
|
||||||
|
}
|
BIN
Game Server/Assets/Cards/TrapCards/testtrapcard/artworkjson.png
Normal file
BIN
Game Server/Assets/Cards/TrapCards/testtrapcard/artworkjson.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.3 KiB |
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"name": "testtrap",
|
||||||
|
"image":"Assets/Cards/testtrapcard/artwork.png",
|
||||||
|
"costs": 30,
|
||||||
|
"description":"this is a test tryp card"
|
||||||
|
}
|
37
Game Server/Classes/Objects/Player.py
Normal file
37
Game Server/Classes/Objects/Player.py
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import random
|
||||||
|
|
||||||
|
|
||||||
|
class Player:
|
||||||
|
__id:int
|
||||||
|
__hp:int
|
||||||
|
__name:str
|
||||||
|
__handCards:list
|
||||||
|
|
||||||
|
def __init__(self, name:str, hp:int=1000):
|
||||||
|
self.__hp = hp
|
||||||
|
self.__name = name
|
||||||
|
self.__handCards = []
|
||||||
|
self.__id = random.randint(3, 99999)
|
||||||
|
|
||||||
|
def getName(self) -> str:
|
||||||
|
return self.__name
|
||||||
|
|
||||||
|
def getHP(self) -> int:
|
||||||
|
return self.__hp
|
||||||
|
|
||||||
|
def adjustHP(self, hp:int) -> int:
|
||||||
|
self.__hp = self.__hp + hp
|
||||||
|
|
||||||
|
def getID(self) -> int:
|
||||||
|
return self.__id
|
||||||
|
|
||||||
|
def getHand(self) -> list:
|
||||||
|
return self.__handCards
|
||||||
|
|
||||||
|
def AddToHand(self, card) -> list:
|
||||||
|
self.__handCards.append(card)
|
||||||
|
return self.__handCards
|
||||||
|
|
||||||
|
def removeFromHand(self, pos:int) -> list:
|
||||||
|
self.__handCards.remove(pos)
|
||||||
|
return self.__handCards
|
@ -1,5 +1,5 @@
|
|||||||
import json
|
import json
|
||||||
|
from Classes.Objects.Player import Player
|
||||||
|
|
||||||
class Player:
|
class Player:
|
||||||
__queue:list
|
__queue:list
|
||||||
@ -29,8 +29,8 @@ class Player:
|
|||||||
self.__users.append(user)
|
self.__users.append(user)
|
||||||
|
|
||||||
def createUser(self, user:json):
|
def createUser(self, user:json):
|
||||||
if self.getUser(user["id"]) == None:
|
if self.getUser(user["username"]) == None:
|
||||||
self.__users.append(user)
|
self.__users.append(Player(user["username"]))
|
||||||
|
|
||||||
def removeUser(self, user:int):
|
def removeUser(self, user:int):
|
||||||
self.__users.remove(user)
|
self.__users.remove(user)
|
@ -9,12 +9,13 @@ class Server:
|
|||||||
__udpPort:str
|
__udpPort:str
|
||||||
__tcpSocket:socket
|
__tcpSocket:socket
|
||||||
__udpSocket:socket
|
__udpSocket:socket
|
||||||
__clientThread:threading.Thread
|
__TCPclientThread:threading.Thread
|
||||||
|
__UDPclientThread:threading.Thread
|
||||||
|
|
||||||
def __init__(self, address:str, tcpPort:str, udpPort:str):
|
def __init__(self, address:str, tcpPort:str, udpPort:str):
|
||||||
self.__address = address
|
self.__address = address
|
||||||
self.__tcpPort = tcpPort
|
self.__tcpPort = tcpPort
|
||||||
self.__udpPort = tcpPort
|
self.__udpPort = udpPort
|
||||||
self.__tcpSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
self.__tcpSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
self.__udpSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
self.__udpSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||||
|
|
||||||
@ -34,15 +35,15 @@ class Server:
|
|||||||
while True:
|
while True:
|
||||||
# accept incoming connection
|
# accept incoming connection
|
||||||
# TODO: validate this connection is a valid game connection
|
# TODO: validate this connection is a valid game connection
|
||||||
client_tcpSocket, client_tcpAddress = self.__tcpSocket.accept()
|
clientTcpSocket, clientTcpAddress = self.__tcpSocket.accept()
|
||||||
|
|
||||||
# create network thread for connection
|
# create network thread for connection
|
||||||
self.__TCPclientThread = threading.Thread(target=self.handleTCPConnection, args=(client_tcpSocket, client_tcpAddress))
|
self.__TCPClientThread = threading.Thread(target=self.handleTCPConnection, args=(clientTcpSocket, clientTcpAddress))
|
||||||
self.__TCPclientThread.start()
|
self.__TCPClientThread.start()
|
||||||
|
|
||||||
client_udpSocket, client_udpAddress = self.__udpSocket.accept()
|
clientUdpSocket, clientUdpAddress = self.__udpSocket.accept()
|
||||||
self.__UDPclientThread = threading.Thread(target=self.handleUDPConnection, args=(client_udpSocket, client_udpAddress))
|
self.__UDPClientThread = threading.Thread(target=self.handleUDPConnection, args=(clientUdpSocket, clientUdpAddress))
|
||||||
self.__UDPclientThread.start()
|
self.__UDPClientThread.start()
|
||||||
|
|
||||||
|
|
||||||
# handles ticking the game loop server side converting data and passing of to the event handler
|
# handles ticking the game loop server side converting data and passing of to the event handler
|
||||||
@ -104,6 +105,16 @@ class Server:
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
def handleUDPEvents(self, event):
|
def handleUDPEvents(self, event):
|
||||||
if event["event"] == "gameAction":
|
if event["event"] == "placeCard":
|
||||||
# pass of to own handler function which handles game logic
|
pass
|
||||||
pass
|
elif event["event"] == "removeCard":
|
||||||
|
pass
|
||||||
|
elif event["event"] == "attackCard":
|
||||||
|
pass
|
||||||
|
elif event["event"] == "attackPlayer":
|
||||||
|
pass
|
||||||
|
elif event["event"] == "activateeffectCard":
|
||||||
|
pass
|
||||||
|
elif event["event"] == "activatemonstereffect":
|
||||||
|
pass
|
||||||
|
|
@ -1,16 +1,17 @@
|
|||||||
import os
|
import os
|
||||||
import dotenv
|
import dotenv
|
||||||
|
|
||||||
from Classes.Server import Server
|
from Classes.System.Server import Server
|
||||||
|
|
||||||
def main(self):
|
def main(self):
|
||||||
dotenv.load_dotenv()
|
dotenv.load_dotenv()
|
||||||
|
|
||||||
# retrieves host data from environment
|
# retrieves host data from environment
|
||||||
HOST = os.getenv("HOST")
|
HOST = os.getenv("HOST")
|
||||||
PORT = os.getenv("PORT")
|
TCPPORT = os.getenv("TCPPORT")
|
||||||
|
UDPPORT = os.getenv("UDPPORT")
|
||||||
|
|
||||||
Server(HOST, PORT)
|
Server(HOST, TCPPORT, UDPPORT)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
@ -2,6 +2,7 @@ import os
|
|||||||
import pygame
|
import pygame
|
||||||
|
|
||||||
class BoardField(pygame.sprite.Sprite):
|
class BoardField(pygame.sprite.Sprite):
|
||||||
|
__fieldID:str
|
||||||
__name:str
|
__name:str
|
||||||
__side:str
|
__side:str
|
||||||
__type:str
|
__type:str
|
||||||
@ -12,13 +13,14 @@ class BoardField(pygame.sprite.Sprite):
|
|||||||
image:pygame.image
|
image:pygame.image
|
||||||
rect:pygame.rect
|
rect:pygame.rect
|
||||||
|
|
||||||
def __init__(self, name:str, side:str, type:str, pos:pygame.Vector2, imagePath:str):
|
def __init__(self, name:str, side:str, type:str, pos:pygame.Vector2, imagePath:str, fid:str):
|
||||||
pygame.sprite.Sprite.__init__(self)
|
pygame.sprite.Sprite.__init__(self)
|
||||||
self.__name = name
|
self.__name = name
|
||||||
self.__side = side
|
self.__side = side
|
||||||
self.__type = type
|
self.__type = type
|
||||||
self.__pos = pos
|
self.__pos = pos
|
||||||
self.__holdsCard = None
|
self.__holdsCard = None
|
||||||
|
self.__fieldID = fid
|
||||||
|
|
||||||
# Überprüfen des Dateipfads
|
# Überprüfen des Dateipfads
|
||||||
if not os.path.exists(imagePath):
|
if not os.path.exists(imagePath):
|
||||||
@ -78,4 +80,7 @@ class BoardField(pygame.sprite.Sprite):
|
|||||||
return self.__color
|
return self.__color
|
||||||
|
|
||||||
def setCardHolding(self, card):
|
def setCardHolding(self, card):
|
||||||
self.__holdsCard = card
|
self.__holdsCard = card
|
||||||
|
|
||||||
|
def getFieldID(self) -> str:
|
||||||
|
return self.__fieldID
|
@ -1,6 +1,7 @@
|
|||||||
import pygame
|
import pygame
|
||||||
|
|
||||||
class Player:
|
class Player:
|
||||||
|
__id:int
|
||||||
__hp:int
|
__hp:int
|
||||||
__name:str
|
__name:str
|
||||||
__handCards:pygame.Sprite.Group
|
__handCards:pygame.Sprite.Group
|
||||||
@ -9,6 +10,12 @@ class Player:
|
|||||||
self.__hp = hp
|
self.__hp = hp
|
||||||
self.__name = name
|
self.__name = name
|
||||||
|
|
||||||
|
def setID(self, id:int):
|
||||||
|
self.__id = id
|
||||||
|
|
||||||
|
def getID(self) -> int:
|
||||||
|
return self.__id
|
||||||
|
|
||||||
def getName(self) -> str:
|
def getName(self) -> str:
|
||||||
return self.__name
|
return self.__name
|
||||||
|
|
||||||
@ -21,7 +28,8 @@ class Player:
|
|||||||
def getHand(self) -> pygame.Sprite.Group:
|
def getHand(self) -> pygame.Sprite.Group:
|
||||||
return self.__handCards
|
return self.__handCards
|
||||||
|
|
||||||
def getAddToHand(self, card) -> pygame.Sprite.Group:
|
def AddToHand(self, card) -> pygame.Sprite.Group:
|
||||||
|
self.__handCards.add(card)
|
||||||
return self.__handCards
|
return self.__handCards
|
||||||
|
|
||||||
def removeFromHand(self, pos:int) -> pygame.Sprite.Group:
|
def removeFromHand(self, pos:int) -> pygame.Sprite.Group:
|
||||||
|
@ -61,12 +61,11 @@ class World():
|
|||||||
eMonsterPos = pygame.Vector2((self.__cardOffset + (((self.__cardWidth + 10) - 30) * (i+1)), eRow1Height))
|
eMonsterPos = pygame.Vector2((self.__cardOffset + (((self.__cardWidth + 10) - 30) * (i+1)), eRow1Height))
|
||||||
eEffectPos = pygame.Vector2((self.__cardOffset + (((self.__cardWidth + 10) - 30) * (i+1))), eRow2Height)
|
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"))
|
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"))
|
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"))
|
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"))
|
self.__boardFields.append(BoardField("EnemySpellTrapField-"+str(i), "Enemy", "EffectField", eEffectPos, "Assets/Cards/Arena/field.png", "ee"+str(id)))
|
||||||
|
|
||||||
|
|
||||||
def getBoardFields(self) -> list:
|
def getBoardFields(self) -> list:
|
||||||
return self.__boardFields
|
return self.__boardFields
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user