From b50567ce6d5d8713558bbe687c409a59970c9ef6 Mon Sep 17 00:00:00 2001 From: steev Date: Wed, 28 Feb 2024 21:06:25 +0100 Subject: [PATCH] refactor: :fire: removed server from repository --- Client/Classes/Game/World.py | 8 - .../__pycache__/BoardField.cpython-311.pyc | Bin 5037 -> 5037 bytes .../Game/__pycache__/World.cpython-312.pyc | Bin 11304 -> 11304 bytes .../__pycache__/Window.cpython-311.pyc | Bin 3667 -> 3667 bytes Client/Classes/System/Network/EventHandler.py | 17 -- .../__pycache__/TCPClient.cpython-311.pyc | Bin 3475 -> 3475 bytes New_Client/App.py | 76 --------- New_Client/Assets/Cards/0/field.png | Bin 612 -> 0 bytes New_Client/Assets/Cards/1/card.json | 23 --- New_Client/Assets/Cards/1/card.png | Bin 4204 -> 0 bytes New_Client/Assets/Cards/2/artworkjson.png | Bin 2389 -> 0 bytes New_Client/Assets/Cards/2/testspellcard.json | 9 - New_Client/Assets/Cards/3/artworkjson.png | Bin 2389 -> 0 bytes New_Client/Assets/Cards/3/testtrapcard.json | 9 - New_Client/Assets/Cards/Arenas/default.png | Bin 10988 -> 0 bytes .../Classes/Engine/Components/BoardField.py | 85 ---------- New_Client/Classes/Engine/Components/Label.py | 47 ------ .../__pycache__/BoardField.cpython-311.pyc | Bin 4999 -> 0 bytes .../__pycache__/Label.cpython-311.pyc | Bin 3692 -> 0 bytes New_Client/Classes/Engine/EventHandler.py | 117 ------------- New_Client/Classes/Engine/InputHandler.py | 53 ------ New_Client/Classes/Engine/Logger.py | 18 -- New_Client/Classes/Engine/TCPClient.py | 52 ------ New_Client/Classes/Engine/Utils/Path.py | 6 - .../Classes/Engine/Utils/StringUtils.py | 11 -- .../Utils/__pycache__/Path.cpython-311.pyc | Bin 747 -> 0 bytes .../__pycache__/StringUtils.cpython-311.pyc | Bin 1233 -> 0 bytes New_Client/Classes/Engine/Window.py | 54 ------ .../__pycache__/EventHandler.cpython-311.pyc | Bin 7252 -> 0 bytes .../__pycache__/InputHandler.cpython-311.pyc | Bin 3564 -> 0 bytes .../Engine/__pycache__/Logger.cpython-311.pyc | Bin 1304 -> 0 bytes .../__pycache__/TCPClient.cpython-311.pyc | Bin 3578 -> 0 bytes .../Engine/__pycache__/Window.cpython-311.pyc | Bin 3664 -> 0 bytes New_Client/Classes/Game/Cards/Card.py | 98 ----------- New_Client/Classes/Game/Cards/MonsterCard.py | 88 ---------- New_Client/Classes/Game/Cards/SpellCard.py | 72 -------- New_Client/Classes/Game/Cards/TrapCard.py | 72 -------- .../Cards/__pycache__/Card.cpython-311.pyc | Bin 6044 -> 0 bytes .../__pycache__/MonsterCard.cpython-311.pyc | Bin 5654 -> 0 bytes .../__pycache__/SpellCard.cpython-311.pyc | Bin 4743 -> 0 bytes .../__pycache__/TrapCard.cpython-311.pyc | Bin 4719 -> 0 bytes .../Classes/Game/NetworkEvents/GameStart.py | 16 -- .../Classes/Game/NetworkEvents/Login.py | 23 --- .../Classes/Game/NetworkEvents/PlaceCard.py | 37 ----- New_Client/Classes/Game/Player.py | 44 ----- New_Client/Classes/Game/World.py | 116 ------------- New_Client/__pycache__/App.cpython-311.pyc | Bin 4698 -> 0 bytes New_Client/log/aruudvef.log | 6 - New_Client/log/azkihdia.log | 6 - New_Client/log/cssmtaso.log | 6 - New_Client/log/dypjnvwx.log | 6 - New_Client/log/ecnwzwpv.log | 6 - New_Client/log/ezuxqfek.log | 6 - New_Client/log/hpyfylsj.log | 6 - New_Client/log/jqqeltiy.log | 6 - New_Client/log/mhtlvsqm.log | 6 - New_Client/log/pbwegfvw.log | 4 - New_Client/log/qqebhbex.log | 6 - New_Client/log/rnwforll.log | 6 - New_Client/log/rrffvbhc.log | 6 - New_Client/log/snqncicq.log | 6 - New_Client/log/sstwdlli.log | 6 - New_Client/log/vzybrxrc.log | 6 - New_Client/log/wqfhotaq.log | 6 - New_Client/log/xqetosuq.log | 6 - New_Client/log/xwrmortx.log | 6 - New_Client/log/xxfpqmla.log | 6 - New_Client/log/ysnrngup.log | 4 - New_Client/log/zlnfjkpf.log | 6 - New_Client/log/zoukqhzj.log | 6 - New_Client/log/zpvgppfk.log | 5 - New_Client/main.py | 11 -- OLD_Server/.env | 4 - OLD_Server/.vscode/settings.json | 14 -- OLD_Server/Assets/Arenas/default.png | Bin 10988 -> 0 bytes OLD_Server/Assets/Cards/Arena/field.png | Bin 612 -> 0 bytes .../MonsterCards/testmonstercard/card.json | 22 --- .../MonsterCards/testmonstercard/card.png | Bin 9570 -> 0 bytes .../SpeelCards/testspellcard/artworkjson.png | Bin 2389 -> 0 bytes .../testspellcard/testspellcard.json | 6 - .../TrapCards/testtrapcard/artworkjson.png | Bin 2389 -> 0 bytes .../TrapCards/testtrapcard/testtrapcard.json | 6 - OLD_Server/Classes/Game/Player.py | 57 ------- .../Game/__pycache__/Player.cpython-311.pyc | Bin 3485 -> 0 bytes .../Game/__pycache__/Player.cpython-312.pyc | Bin 3302 -> 0 bytes OLD_Server/Classes/System/GameManager.py | 155 ------------------ OLD_Server/Classes/System/Logger.py | 18 -- .../Classes/System/Network/EventHandler.py | 45 ----- .../Classes/System/Network/NetworkManger.py | 145 ---------------- .../__pycache__/EventHandler.cpython-311.pyc | Bin 1903 -> 0 bytes .../__pycache__/EventHandler.cpython-312.pyc | Bin 1643 -> 0 bytes .../__pycache__/NetworkManger.cpython-311.pyc | Bin 11204 -> 0 bytes .../__pycache__/NetworkManger.cpython-312.pyc | Bin 9866 -> 0 bytes OLD_Server/Classes/System/PlayerManager.py | 23 --- OLD_Server/Classes/System/QueueManager.py | 34 ---- OLD_Server/Classes/System/Server.py | 40 ----- OLD_Server/Classes/System/Utils/Path.py | 6 - .../Classes/System/Utils/StringUtils.py | 11 -- OLD_Server/Classes/System/World.py | 20 --- .../__pycache__/GameManager.cpython-311.pyc | Bin 6461 -> 0 bytes .../__pycache__/GameManager.cpython-312.pyc | Bin 6291 -> 0 bytes .../System/__pycache__/Logger.cpython-311.pyc | Bin 1309 -> 0 bytes .../System/__pycache__/Logger.cpython-312.pyc | Bin 1159 -> 0 bytes .../__pycache__/PlayerManager.cpython-311.pyc | Bin 1987 -> 0 bytes .../__pycache__/PlayerManager.cpython-312.pyc | Bin 1749 -> 0 bytes .../System/__pycache__/Server.cpython-311.pyc | Bin 2529 -> 0 bytes .../System/__pycache__/Server.cpython-312.pyc | Bin 2291 -> 0 bytes .../System/__pycache__/World.cpython-311.pyc | Bin 1183 -> 0 bytes .../System/__pycache__/World.cpython-312.pyc | Bin 1088 -> 0 bytes OLD_Server/index.py | 31 ---- OLD_Server/log/ftosavkt.log | 35 ---- OLD_Server/log/kuketiqt.log | 35 ---- OLD_Server/log/mjlawgym.log | 35 ---- OLD_Server/log/ncyhufrr.log | 35 ---- OLD_Server/log/oiaflmlv.log | 34 ---- OLD_Server/log/ooqpxwpe.log | 41 ----- OLD_Server/log/qrgtwasn.log | 35 ---- OLD_Server/log/sxuostca.log | 40 ----- OLD_Server/log/xtjfeaau.log | 35 ---- OLD_Server/server logic notes.md | 42 ----- 120 files changed, 2305 deletions(-) delete mode 100644 New_Client/App.py delete mode 100644 New_Client/Assets/Cards/0/field.png delete mode 100644 New_Client/Assets/Cards/1/card.json delete mode 100644 New_Client/Assets/Cards/1/card.png delete mode 100644 New_Client/Assets/Cards/2/artworkjson.png delete mode 100644 New_Client/Assets/Cards/2/testspellcard.json delete mode 100644 New_Client/Assets/Cards/3/artworkjson.png delete mode 100644 New_Client/Assets/Cards/3/testtrapcard.json delete mode 100644 New_Client/Assets/Cards/Arenas/default.png delete mode 100644 New_Client/Classes/Engine/Components/BoardField.py delete mode 100644 New_Client/Classes/Engine/Components/Label.py delete mode 100644 New_Client/Classes/Engine/Components/__pycache__/BoardField.cpython-311.pyc delete mode 100644 New_Client/Classes/Engine/Components/__pycache__/Label.cpython-311.pyc delete mode 100644 New_Client/Classes/Engine/EventHandler.py delete mode 100644 New_Client/Classes/Engine/InputHandler.py delete mode 100644 New_Client/Classes/Engine/Logger.py delete mode 100644 New_Client/Classes/Engine/TCPClient.py delete mode 100644 New_Client/Classes/Engine/Utils/Path.py delete mode 100644 New_Client/Classes/Engine/Utils/StringUtils.py delete mode 100644 New_Client/Classes/Engine/Utils/__pycache__/Path.cpython-311.pyc delete mode 100644 New_Client/Classes/Engine/Utils/__pycache__/StringUtils.cpython-311.pyc delete mode 100644 New_Client/Classes/Engine/Window.py delete mode 100644 New_Client/Classes/Engine/__pycache__/EventHandler.cpython-311.pyc delete mode 100644 New_Client/Classes/Engine/__pycache__/InputHandler.cpython-311.pyc delete mode 100644 New_Client/Classes/Engine/__pycache__/Logger.cpython-311.pyc delete mode 100644 New_Client/Classes/Engine/__pycache__/TCPClient.cpython-311.pyc delete mode 100644 New_Client/Classes/Engine/__pycache__/Window.cpython-311.pyc delete mode 100644 New_Client/Classes/Game/Cards/Card.py delete mode 100644 New_Client/Classes/Game/Cards/MonsterCard.py delete mode 100644 New_Client/Classes/Game/Cards/SpellCard.py delete mode 100644 New_Client/Classes/Game/Cards/TrapCard.py delete mode 100644 New_Client/Classes/Game/Cards/__pycache__/Card.cpython-311.pyc delete mode 100644 New_Client/Classes/Game/Cards/__pycache__/MonsterCard.cpython-311.pyc delete mode 100644 New_Client/Classes/Game/Cards/__pycache__/SpellCard.cpython-311.pyc delete mode 100644 New_Client/Classes/Game/Cards/__pycache__/TrapCard.cpython-311.pyc delete mode 100644 New_Client/Classes/Game/NetworkEvents/GameStart.py delete mode 100644 New_Client/Classes/Game/NetworkEvents/Login.py delete mode 100644 New_Client/Classes/Game/NetworkEvents/PlaceCard.py delete mode 100644 New_Client/Classes/Game/Player.py delete mode 100644 New_Client/Classes/Game/World.py delete mode 100644 New_Client/__pycache__/App.cpython-311.pyc delete mode 100644 New_Client/log/aruudvef.log delete mode 100644 New_Client/log/azkihdia.log delete mode 100644 New_Client/log/cssmtaso.log delete mode 100644 New_Client/log/dypjnvwx.log delete mode 100644 New_Client/log/ecnwzwpv.log delete mode 100644 New_Client/log/ezuxqfek.log delete mode 100644 New_Client/log/hpyfylsj.log delete mode 100644 New_Client/log/jqqeltiy.log delete mode 100644 New_Client/log/mhtlvsqm.log delete mode 100644 New_Client/log/pbwegfvw.log delete mode 100644 New_Client/log/qqebhbex.log delete mode 100644 New_Client/log/rnwforll.log delete mode 100644 New_Client/log/rrffvbhc.log delete mode 100644 New_Client/log/snqncicq.log delete mode 100644 New_Client/log/sstwdlli.log delete mode 100644 New_Client/log/vzybrxrc.log delete mode 100644 New_Client/log/wqfhotaq.log delete mode 100644 New_Client/log/xqetosuq.log delete mode 100644 New_Client/log/xwrmortx.log delete mode 100644 New_Client/log/xxfpqmla.log delete mode 100644 New_Client/log/ysnrngup.log delete mode 100644 New_Client/log/zlnfjkpf.log delete mode 100644 New_Client/log/zoukqhzj.log delete mode 100644 New_Client/log/zpvgppfk.log delete mode 100644 New_Client/main.py delete mode 100644 OLD_Server/.env delete mode 100644 OLD_Server/.vscode/settings.json delete mode 100644 OLD_Server/Assets/Arenas/default.png delete mode 100644 OLD_Server/Assets/Cards/Arena/field.png delete mode 100644 OLD_Server/Assets/Cards/MonsterCards/testmonstercard/card.json delete mode 100644 OLD_Server/Assets/Cards/MonsterCards/testmonstercard/card.png delete mode 100644 OLD_Server/Assets/Cards/SpeelCards/testspellcard/artworkjson.png delete mode 100644 OLD_Server/Assets/Cards/SpeelCards/testspellcard/testspellcard.json delete mode 100644 OLD_Server/Assets/Cards/TrapCards/testtrapcard/artworkjson.png delete mode 100644 OLD_Server/Assets/Cards/TrapCards/testtrapcard/testtrapcard.json delete mode 100644 OLD_Server/Classes/Game/Player.py delete mode 100644 OLD_Server/Classes/Game/__pycache__/Player.cpython-311.pyc delete mode 100644 OLD_Server/Classes/Game/__pycache__/Player.cpython-312.pyc delete mode 100644 OLD_Server/Classes/System/GameManager.py delete mode 100644 OLD_Server/Classes/System/Logger.py delete mode 100644 OLD_Server/Classes/System/Network/EventHandler.py delete mode 100644 OLD_Server/Classes/System/Network/NetworkManger.py delete mode 100644 OLD_Server/Classes/System/Network/__pycache__/EventHandler.cpython-311.pyc delete mode 100644 OLD_Server/Classes/System/Network/__pycache__/EventHandler.cpython-312.pyc delete mode 100644 OLD_Server/Classes/System/Network/__pycache__/NetworkManger.cpython-311.pyc delete mode 100644 OLD_Server/Classes/System/Network/__pycache__/NetworkManger.cpython-312.pyc delete mode 100644 OLD_Server/Classes/System/PlayerManager.py delete mode 100644 OLD_Server/Classes/System/QueueManager.py delete mode 100644 OLD_Server/Classes/System/Server.py delete mode 100644 OLD_Server/Classes/System/Utils/Path.py delete mode 100644 OLD_Server/Classes/System/Utils/StringUtils.py delete mode 100644 OLD_Server/Classes/System/World.py delete mode 100644 OLD_Server/Classes/System/__pycache__/GameManager.cpython-311.pyc delete mode 100644 OLD_Server/Classes/System/__pycache__/GameManager.cpython-312.pyc delete mode 100644 OLD_Server/Classes/System/__pycache__/Logger.cpython-311.pyc delete mode 100644 OLD_Server/Classes/System/__pycache__/Logger.cpython-312.pyc delete mode 100644 OLD_Server/Classes/System/__pycache__/PlayerManager.cpython-311.pyc delete mode 100644 OLD_Server/Classes/System/__pycache__/PlayerManager.cpython-312.pyc delete mode 100644 OLD_Server/Classes/System/__pycache__/Server.cpython-311.pyc delete mode 100644 OLD_Server/Classes/System/__pycache__/Server.cpython-312.pyc delete mode 100644 OLD_Server/Classes/System/__pycache__/World.cpython-311.pyc delete mode 100644 OLD_Server/Classes/System/__pycache__/World.cpython-312.pyc delete mode 100644 OLD_Server/index.py delete mode 100644 OLD_Server/log/ftosavkt.log delete mode 100644 OLD_Server/log/kuketiqt.log delete mode 100644 OLD_Server/log/mjlawgym.log delete mode 100644 OLD_Server/log/ncyhufrr.log delete mode 100644 OLD_Server/log/oiaflmlv.log delete mode 100644 OLD_Server/log/ooqpxwpe.log delete mode 100644 OLD_Server/log/qrgtwasn.log delete mode 100644 OLD_Server/log/sxuostca.log delete mode 100644 OLD_Server/log/xtjfeaau.log delete mode 100644 OLD_Server/server logic notes.md diff --git a/Client/Classes/Game/World.py b/Client/Classes/Game/World.py index c762375..94383ef 100644 --- a/Client/Classes/Game/World.py +++ b/Client/Classes/Game/World.py @@ -36,7 +36,6 @@ class World(): def buildGameWorld(self): # construct elements arround the playerfield - # Todo add lifepoint label for player and enemy and make them scriptable move to player class # presets the y position later passed down to the vector2 eRow1Height = 85 @@ -56,17 +55,10 @@ class World(): pManaPos = pygame.Vector2(20, pRow2Height + 255) # labeling -<<<<<<< HEAD:Game_Client/Classes/Game/World.py - self.__labels.append(Label("PlayerHP", self.__screen, "0 / 0", pHPPos)) - self.__labels.append(Label("PlayerName", self.__screen, "Not Connected", pNamePos)) - self.__labels.append(Label("PlayerMana", self.__screen, "0", pManaPos)) - self.__labels.append(Label("EnemyHP", self.__screen, "0 / 0", eHPPos)) -======= self.__labels.append(Label("PlayerHP", self.__screen, "1000 / 1000", pHPPos)) self.__labels.append(Label("PlayerName", self.__screen, "Not Connected", pNamePos)) self.__labels.append(Label("PlayerName", self.__screen, "0", pManaPos)) self.__labels.append(Label("EnemyHP", self.__screen, "1000 / 1000", eHPPos)) ->>>>>>> 18dcd6cc42f1f23e221702147a36f650f6aae6ac:Client/Classes/Game/World.py self.__labels.append(Label("EnemyName", self.__screen, "Not Connected", eNamePos)) self.__boardFields.append(BoardField("EnemyDeck", "Enemy", "Deck", eDeckPos, PathUtil.getAbsolutePathTo("Assets/Cards/0/field.png"), "e-deck")) diff --git a/Client/Classes/Game/__pycache__/BoardField.cpython-311.pyc b/Client/Classes/Game/__pycache__/BoardField.cpython-311.pyc index 17a0ef412ccfa9c493c8e7762e6caf215dcad7f8..72f14ce69bc343978edefc4686690df17989a297 100644 GIT binary patch delta 27 hcmZ3hzE+)kIWI340}w>pFWJbg#l~2?*^I567XV(g29N*% delta 27 hcmZ3hzE+)kIWI340}xa@%-hJV#l{%C*^I567XV**28#dy diff --git a/Client/Classes/Game/__pycache__/World.cpython-312.pyc b/Client/Classes/Game/__pycache__/World.cpython-312.pyc index ec50959647586d8fff9b196ae05c381379801242..0cdb6f31f150d82b30af57edad66862f7d21dbec 100644 GIT binary patch delta 147 zcmZ1xu_A)^G%qg~0}y=k+@6}Zk@uS@BgbYIu`D*mz{&YC?TjIlzsqzphEHym?PrXd zEG*Z`7(02UTsLFFWL5cg#^lLs<$D>^Hd`x%Gcsmwo~#I@3O2u1a$saE+pMFqkdd)^ w^Ep)sM#h%O&(&@*c5FVRzL}9ti?xjDL&WB4&3R1xwTz6KpBO-7kp|Ee0N1uIzyJUM delta 147 zcmZ1xu_A)^G%qg~0}yP`T9F>dlqxo*b9$*S`0j46}X%J(v+Z?;wlXJpLUJXsM)6>fg5lhg|KQVyFA`PG`0N5xl&Hw-a diff --git a/Client/Classes/System/Components/__pycache__/Window.cpython-311.pyc b/Client/Classes/System/Components/__pycache__/Window.cpython-311.pyc index ef524635a9acada8f82d08acd03da778d6e731f9..1867184feb2f90acf6a4b439ca9cb808da86ecff 100644 GIT binary patch delta 27 hcmcaCb6JLaIWI340}w>pFWJal&cax{xtZkxCje;22eAME delta 27 hcmcaCb6JLaIWI340}w3nnzxa=oP{xXb2G~YP5^972j2hy diff --git a/Client/Classes/System/Network/EventHandler.py b/Client/Classes/System/Network/EventHandler.py index d4dc6b6..9188d33 100644 --- a/Client/Classes/System/Network/EventHandler.py +++ b/Client/Classes/System/Network/EventHandler.py @@ -13,15 +13,9 @@ class TCPEventHandler: def __init__(self, socket:socket): self.tcp_socket = socket -<<<<<<< HEAD:Game_Client/Classes/System/Network/EventHandler.py - def handleEvents(self, message:dict, inputHandler:InputHandler, world:World): - if message["event"] == "loginresponse": - # todo: handle login response here -======= def handleEvents(self, message, inputHandler:InputHandler, world:World): print(message) if message["event"] == "loginresponse": ->>>>>>> 18dcd6cc42f1f23e221702147a36f650f6aae6ac:Client/Classes/System/Network/EventHandler.py LoginResponse(message, world) pass elif message["event"] == "startgame": @@ -34,17 +28,6 @@ class TCPEventHandler: CardPlaced(world, message["card"], message["type"], message["owner"], pygame.Vector2(int(message["x"]), int(message["y"]), inputHandler)) pass elif message["event"] == "MoveCard": -<<<<<<< HEAD:Game_Client/Classes/System/Network/EventHandler.py - # CardMoved( - # world, - # message["card"], - # message["type"], - # message["owner"], - # pygame.Vector2(int(message["old_x"]), int(message["old_y"])), - # pygame.Vector2(int(message["new_x"]), int(message["new_y"])), - # inputHandler, world) -======= ->>>>>>> 18dcd6cc42f1f23e221702147a36f650f6aae6ac:Client/Classes/System/Network/EventHandler.py pass elif message["event"] == "RemoveCard": pass diff --git a/Client/Classes/System/Network/__pycache__/TCPClient.cpython-311.pyc b/Client/Classes/System/Network/__pycache__/TCPClient.cpython-311.pyc index 04c59e8f1d5e872ce4d90e4139d334bea4c480cf..62eed0f0a8dbb34f322082533ab301f828e2838f 100644 GIT binary patch delta 27 hcmbO%Jz1K2IWI340}vcgoU@Vp0yAUr<~z*WIRRsR2n7HD delta 27 hcmbO%Jz1K2IWI340}!a$&)dj-ftfLQ^Bv~xoB&(z2WtQT diff --git a/New_Client/App.py b/New_Client/App.py deleted file mode 100644 index 6b0b928..0000000 --- a/New_Client/App.py +++ /dev/null @@ -1,76 +0,0 @@ -import pygame -from Classes.Engine.EventHandler import EngineEventHandler -from Classes.Engine.InputHandler import InputHandler -from Classes.Engine.Logger import Logger -from Classes.Engine.TCPClient import TCPClient - -from Classes.Engine.Window import Window -from Classes.Game.World import World -from Classes.Game.NetworkEvents.Login import Login - - -class App: - - __running:bool - __FPS:int = 60 - __clock:pygame.time.Clock() - __myFont:pygame.font - __window:Window - __world:World - __inputHandler: InputHandler - __tcpClient: TCPClient - __eventHandler: EngineEventHandler - logger:Logger - - def __init__(self, logger:Logger, width:int=1280, height:int=720, title:str="default title"): - self.logger = logger - - self.logger.info("initializing dependencies") - pygame.init() - pygame.font.init() - self.__myFont = pygame.font.SysFont('Comic Sans MS', 30) - self.__window = Window(width=width, height=height, title=title) - self.__world = World(self.logger, self.__window.getScreen()) - self.__inputHandler = InputHandler() - - # attempt to connect to server - try: - self.logger.info("logging into server") - self.__tcpClient = TCPClient("127.0.0.1", "54322", self.__world, self.__inputHandler) - Login(self.__tcpClient) # will login to the server - except Exception as e: - print(f"failed to login due to error {e}") - print("server connection failed or got refused") - pass - - def startGameLoop(self): - self.__running = True - - while self.__running: - - self.__clock.tick(self.__FPS) - - self.__window.getScreen().fill((0,0,0)) - - # render world - self.__window.drawWorld(self.__world) - - # updates all cards inside the cards Spritegroup at each step the gameloops does - self.__world.getCards().update() - self.__world.getHandCards().update() - - # draw groups - self.__window.drawSpriteGroup(self.__world.getCards()) - self.__window.drawSpriteGroup(self.__world.getHandCards()) - - self.__eventHandler.handleEvent(pygame.event.get()) - - # emits update to the game - pygame.display.update() - - self.__running = False - - # ensures the gameloop stops running and the pygame instance is stopped properly - def onCleanup(self): - self.__running = False - pygame.quit() \ No newline at end of file diff --git a/New_Client/Assets/Cards/0/field.png b/New_Client/Assets/Cards/0/field.png deleted file mode 100644 index 472f0a12fdbcaa451d9a8e19d34e8284e4fb1d56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmeAS@N?(olHy`uVBq!ia0vp^(}4H{2OE&&YL!T3U|`brba4!+nDh3^Ma~un0oH?& zi+BE6Y&hGLRyG&c@kk-#(m}cX^?lmEFck=LN+$6DJCcFe0M*+}kbRul>1a o_c63aN9d4};)o;u<)`Ug-pZab=h|0sVCrG;boFyt=akR{0KU7UqyPW_ diff --git a/New_Client/Assets/Cards/1/card.json b/New_Client/Assets/Cards/1/card.json deleted file mode 100644 index 3ce8af5..0000000 --- a/New_Client/Assets/Cards/1/card.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "id": 1, - "type":"MonsterCard", - "name": "Test Monster", - "image": "Assets/Cards/1/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 - } - ] -} diff --git a/New_Client/Assets/Cards/1/card.png b/New_Client/Assets/Cards/1/card.png deleted file mode 100644 index 76bef2df3a641b3c7f8b306c2431a68d97e45abf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4204 zcmcIoXHb*fx&=f;K#COUy(bVqI-xfaFae|_6bVHXq(~7E2q;K3il9=2021k#gs6Z> z73m!*iBu_}NC^lM4FVU>Ip3VQcg~OV=l*#2J8O1%o@dS8v)10JHc<0(EP^a_badw| zE}LFG`DdMcpP89X+VXDg96CBqRSQ!i`@87PeAXb|ae=NDA!Fn73=9(VPsRBoTZ|2T zUWyOdR!BZ^L}4U1?JFPD@;URO@E;et--Yp4U5PQZtsv-{qBg~OiX;{onHlKY}oZi+sl>dY1F=7)-yE=kiFU*Qjww=sI( z+#kLv)y>6s2`cx9pIJ2dlhGh8>O)jLRHqB8(6~sh3)YGAsMYhG;_@B2wx|&M)#jVt@{Na()x=z%ME;71z)k7gYTdjRS`}<{d->jQ z&&H-(SLMT@6e6{u_9}&-Ihy`r*Ho2dhSr!CB$5b z+3pS7kUII`#+R>?+z@rCjz`O};9q3+N@XPsp#|x>RKsu$Be|AuzFdE;XX4P@=SQtx z5-zZFnCF8ZQZVfCUa)NdTX;3vp=CyGhdwABnn z(88lhu-)!nX_}=9)o!+uig%*u7qW2Nc9UbF46lK6cd4KD_VBT|)Q9si&_yqF+1`|t zG1+k*2~iqw%`_^r8bSdkpXUp`E9bKovC7K^a=N7Q@Md%K3K)fs+9~Z`Gf8cpH30Tw z9spEV>m}+kRO5YOH-aV$_H!-+n&HqP-2>OwDC$#ZZ`&dpFZf-p68tozqDN0bu}vcF zP?d@y9jU217eg8e7c#Na5QHum4UPSU_@)}D(jhDD{JoUG>!RVu^27QHC&fuR+8SL{ zwtR)#)5GukLeh{gt=nip>-OAKKEPCvcf_sOVO&G26kUiNHW?jNP{5%aMO6WMnav77 z%xX7tuXgO!#%zWtU$v<#J~t8ard)LJXU-*RgInXxI42P& z3V!M4$k=yc`RiuOhK1tl!O0_zAKC8?wfjVOTqtgBiu&O;{)?9e*lCXKB?EVKh!5NE zr0~Gh1A{CVBe3N>QyB_9#^QaN{;YS&r=mJjZ#+f#55SREZGcxS))Fi4li^(0*%kH+ zQ=h9cCmlM$k}+<btr z<1q2``m^E3mWntfmOza!3?ZRC6Ht(217PXqPIGI0t2E)#UruPD>5^Freg~3oW<)UhJ&*Z|M{>d`3mpO7^!oOF~ zRz3|PJUK+UX*p*}b9TH`MU4mJt6txsX@H^Ge8};JlaL1P{0_W@B~Q`kcnp5o<~|)O z$bz7FyGS8x`PAOYq?p0JI}`)b+xL8lB0hRn6EVwS+N=}ErOf3o<~3xS=DU$^{2Y>C zlP*r@1{j-BlSl_73&X-BE|dIf9}7doo9wX9!8QMH*qc^Qt&teAo}E})X_ z)?)g6r!sVE(0PG5`Kh>|Nm2H-nn8zmRPs%4keO``Khj zg7wQ^ewq9gRO{H5bQ9rreTGBB?%^{uiDi)l_GA+POB;jb{p$PY#epvwnOWuO{{`6~ zRU_2u_*x^o11%52{qy}0#<8#zTOl~*;}=TKX&fdpSXj(`b+`X4D=L}J;H3hi<#58d zavPOLjP4N~>hyCu4|*A&w(pvFPCBVpPkI?cxZzn&J{yLFe|G)S}rY1vWG|Dk6I~z9X?r#gAq^n``z@H03w1;E9I#t z(&S`QUIA;H3h8=NJj#14ZyiZYssBZ11cz(XdW&5qIM&wScV^n21KTaCDxH(Pu zl;9wl9rhWenDhO!-P45f>yt{p4{DIEqA)ENowKN3#I9>pk)`WsDn>==aiX%ocv&{5 zL!`HQzOo)Dq1U%y#aeWXxYy*z?hkmK!+!4V!zB<}0ryYEY5M@2s~)hAOk4rfsPPdo zniGD%y2qE+@>H5mtMztFf=9jK^ivv%=dI_~T+L)40uu;0TL0`!c`>HfKJrOZO@=61 z%{j%-J%nTOU{hg}{{UGqAmn4noi($}Yq`$JEl{NAL_oAbm|XyYxCL++n>?`T$Bu(& z_9q5%NPXnO4cpt9m@nB?4Z@!(9p1G}Ro+vj>G?k4SzYyLL|`T9i?^6}Rv+a{@TwMX zeXe=<>=z@Vl*qv`nS21WE+xQA@EyKD6@5)bjGp(6P1bKwPD^YC?%ThXLS|*qgA7}O zLQ?uDgY40bhYwQFOK;$+j*Ta5q{j%Y3ZLswX}`N!F^HRCfmEz3_3`<74LaMU7_AO} z5-FHIp5Qam{pWFX2YBp^PAGlnP6vw~gX6j*6 z1`bz6gMM2Z=*!=8*Y2`T`Z`!y=Acb+ec?*)I`Xkob1k|)`c4|Ji?WHMblJ5kSA-t9 zxi`S-ouY>ld^dxCeQ{nm5c&w*=I{IdI29pG<*f`E5LcqM7aisvzJ2UIMKDHe+wmUA zs@w+=tTxoKS+V|GXuqGyqs0iBE>;s;oB%08DjyNC^R%XmTj@3d%A1YC&PGy`AAMTr zT_MzN{2rCOxs_^65P3drqBBY)2_M{XWh(1w)e{xkgW*8GGXY9zvyr!1-sl*!qhT({ zmx5l28b;2FA?hf<+8dfyj~dqq#_j}NcQ^Ja!W_8CQ-$oAYNH(X1A^*tw-6ea|T^Hm*OkN zin%qzk3~#9;ti2r!MMo1F9{abHD`y@>sUj_If6pfIv+x&PT~5w*=i#duhZ`sd!J8R zVso_Dm3UwRg`+<%v+fI9Yc-bMCJsWtWis=A<6U{d7o|Ys*ZEw`HLEkzxdB?p9HQ;l zlH@%U{_rNEU@C!4;nL7Wo-~>4Ut5BOvc1n&f_w=2l)k)(VTh*m=ie4yrh>=4KL{Jb zuZ}FED&ZBK?5N_3)`>&7uv!;G`o~CMeCnx#4@%9Qsu8+!*SGHg5ApUamdjpo--dSj z``R*CaXpy0tECKM=;~aDCCz(9mJL?YCM6QF`p0n6Lf<&Y6w*%q#IfpK zKr|9+!bx_xBX zMJ@#)f`8wYW!CaDS8kfeQVf_w3La`~Bva9|wso)TuHTD|gC7pDcatx^ia~Oyl0GP0 zPkzxMomZ|D%`rOoYA#x-d0AWHL7wq`9Gw4E;089cY^ZFGnwc%e(p|%hTaolF6w#7J z>KDWXglPr3(aJ;KbeA1G$!)%6@=Sr5TXB--<3vrY%IQCQ^bETauqKdG5XSR8r>2$O{dZQ16FXHKvC25c)n9y#jPrT z%uR0fqoXfcOs`xtnITMB3`ITS@|?MBKzj6vjX3dHM%<1kC(OZJES(rghamMcP{{x4$)JXsU diff --git a/New_Client/Assets/Cards/2/artworkjson.png b/New_Client/Assets/Cards/2/artworkjson.png deleted file mode 100644 index 9955a0cbf1966ebc0956bef3cc107754ed7011da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2389 zcmeAS@N?(olHy`uVBq!ia0y~yV2WU1VEn?t1{8T15PXG!fm6oQ#WAE}&fA-TE1d#G zTrbu>Wi@D!FEF zConP`VG(0+@EK){2Eu4c7|jI(oeSQ)FW6NT{NVMq>&1EhyA>OJBl@P7nyP-teg8c9 z-SfS&4Za^-IT!?lfhD0~BkL$*G!RBp!e}nQ%mqtl{$%KP6?(pDVM0Byxy0b<>gTe~ HDWM4fLIJZ> diff --git a/New_Client/Assets/Cards/2/testspellcard.json b/New_Client/Assets/Cards/2/testspellcard.json deleted file mode 100644 index f812019..0000000 --- a/New_Client/Assets/Cards/2/testspellcard.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "testspell", - "type":"EffectCard", - "image":"Assets/Cards/2/artwork.png", - "costs": 30, - "defense": 0, - "description":"this is a test spell card", - "attacks": [] -} \ No newline at end of file diff --git a/New_Client/Assets/Cards/3/artworkjson.png b/New_Client/Assets/Cards/3/artworkjson.png deleted file mode 100644 index 9955a0cbf1966ebc0956bef3cc107754ed7011da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2389 zcmeAS@N?(olHy`uVBq!ia0y~yV2WU1VEn?t1{8T15PXG!fm6oQ#WAE}&fA-TE1d#G zTrbu>Wi@D!FEF zConP`VG(0+@EK){2Eu4c7|jI(oeSQ)FW6NT{NVMq>&1EhyA>OJBl@P7nyP-teg8c9 z-SfS&4Za^-IT!?lfhD0~BkL$*G!RBp!e}nQ%mqtl{$%KP6?(pDVM0Byxy0b<>gTe~ HDWM4fLIJZ> diff --git a/New_Client/Assets/Cards/3/testtrapcard.json b/New_Client/Assets/Cards/3/testtrapcard.json deleted file mode 100644 index 13ed51a..0000000 --- a/New_Client/Assets/Cards/3/testtrapcard.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "testtrap", - "type":"EffectCard", - "image":"Assets/Cards/3/artwork.png", - "costs": 30, - "defense": 0, - "description":"this is a test trap card", - "attacks": [] -} \ No newline at end of file diff --git a/New_Client/Assets/Cards/Arenas/default.png b/New_Client/Assets/Cards/Arenas/default.png deleted file mode 100644 index ba5da22ccc75f0be2ff44b31e702347d8e45ddc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10988 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 str: - return self.__name - - def getSide(self) -> str: - return self.__side - - def getType(self) -> str: - return self.__type - - def getPos(self) -> pygame.Vector2: - return self.__pos - - def getSize(self) -> tuple: - return self.__size - - def getColor(self) -> tuple: - return self.__color - - def getRect(self) -> pygame.Rect: - return self.rect - - def getImage(self) -> pygame.image: - return self.image - - def getHoldingCard(self): - return self.__holdsCard - - def setName(self, name:str) -> str: - self.__name = name - return self.__name - - def setType(self,type:str) -> str: - self.__type = type - return self.__type - - def setPos(self, pos:pygame.Vector2) -> pygame.Vector2: - self.pos = pos - return self.__pos - - def setSize(self, size:tuple) -> tuple: - self.__size = size - return self.__size - - def setColor(self, color:tuple) -> tuple: - self.__color = color - return self.__color - - def setCardHolding(self, card): - self.__holdsCard = card - - def getFieldID(self) -> str: - return self.__fieldID \ No newline at end of file diff --git a/New_Client/Classes/Engine/Components/Label.py b/New_Client/Classes/Engine/Components/Label.py deleted file mode 100644 index ed04c54..0000000 --- a/New_Client/Classes/Engine/Components/Label.py +++ /dev/null @@ -1,47 +0,0 @@ -import pygame - -class Label: - rect:pygame.rect - image:pygame.image - __screen:pygame.surface - __text:str - __pos:pygame.Vector2 - __font:pygame.font - font:pygame.font - __name:str - - def __init__(self, name:str, screen:pygame.surface, text:str, pos:pygame.Vector2, size:float=20, color:str="white"): - self.__font = pygame.font.SysFont("Arial", size) - self.font = pygame.font.SysFont("Arial", size) - self.image = self.font.render(text, 1, color) - _, _, w, h = self.image.get_rect() - self.__pos = pos - self.rect = pygame.Rect(self.__pos.x, self.__pos.y, w, h) - self.__screen = screen - self.__text = text - self.__name = name - - def getText(self) -> str: - return self.__text - - def getFont(self) -> pygame.font: - return self.__font - - def getPos(self) -> pygame.Vector2: - return self.__pos - - def getName(self) -> str: - return self.__name - - def setText(self, newtext:str, color:str="white"): - self.image = self.font.render(newtext, 1, color) - - def setFont(self, font:pygame.font, size:float, color:str="white"): - self.__font = pygame.font.SysFont(font, size) - self.change_text(self.text, color) - - def setPos(self, pos:pygame.Vector2): - self.__pos = pos - - def draw(self): - self.__screen.blit(self.image, (self.rect)) \ No newline at end of file diff --git a/New_Client/Classes/Engine/Components/__pycache__/BoardField.cpython-311.pyc b/New_Client/Classes/Engine/Components/__pycache__/BoardField.cpython-311.pyc deleted file mode 100644 index 68492b2b8e61f8912a65de2dd6b5eaa018cf49bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4999 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 diff --git a/New_Client/Classes/Engine/EventHandler.py b/New_Client/Classes/Engine/EventHandler.py deleted file mode 100644 index 8cb9a0b..0000000 --- a/New_Client/Classes/Engine/EventHandler.py +++ /dev/null @@ -1,117 +0,0 @@ -import socket - -import pygame -from Classes.Engine.Logger import Logger - -from Classes.Game.NetworkEvents.PlaceCard import CardPlaced -from Classes.Game.NetworkEvents.GameStart import GameStart -from Classes.Game.NetworkEvents.PlaceCard import PlaceCard -from Classes.Engine.InputHandler import InputHandler -from Classes.Game.World import World -from Classes.Game.Player import Player -from Classes.Game.NetworkEvents.Login import LoginResponse - -# network event handler this only handles events coming from the server -class TCPEventHandler: - def __init__(self, socket:socket, inputHandler:InputHandler, world:World): - self.tcp_socket = socket - self.__world = world - self.__inputHandler = inputHandler - - def handleEvents(self, message:dict): - if message["event"] == "loginresponse": - LoginResponse(message) - pass - elif message["event"] == "startgame": - print("gamestart") - GameStart(self.__world, message["hand"], self.__inputHandler, self.__world.getPlayer()) - pass - elif message["event"] == "PlaceCard": - CardPlaced(self.__world, message["card"], message["type"], message["owner"], pygame.Vector2(int(message["x"]), int(message["y"]), self.__inputHandler)) - pass - elif message["event"] == "MoveCard": - CardMoved( - self.__world, - message["card"], - message["type"], - message["owner"], - pygame.Vector2(int(message["old_x"]), int(message["old_y"])), - pygame.Vector2(int(message["new_x"]), int(message["new_y"])), - self.__inputHandler) - pass - elif message["event"] == "RemoveCard": - pass - elif message["event"] == "AttackCard": - pass - elif message["event"] == "AttackPlayer": - pass - elif message["event"] == "ActivateEffectCard": - pass - elif message["event"] == "ActivateMonsterCard": - pass - -# handles engine events this is separate from the network event handler -class EngineEventHandler: - - __inputHandler:InputHandler - __world:World - __logger:Logger - - def __init__(self, inputHandler:InputHandler, world:World, logger:Logger, tcpClient): - self.__logger = logger - self.__logger.info("initializing engine Event Handler") - if inputHandler == None: - raise ValueError("InputHandler was found to be None") - - if world == None: - raise ValueError("world was found to be None") - - if world == tcpClient: - raise ValueError("tcpCLient was found to be None") - - self.__inputHandler = inputHandler - self.__world = world - self.__tcpClient = tcpClient - - # handles the incoming event queue - def handleEvent(self, events): - # TODO: fix bug that stacks cards when dragging them around - self.selectedCard = None - self.mousePos = self.__inputHandler.getMousePos() - - for event in events: - if event.type == pygame.QUIT: - self.onCleanup() - elif self.__inputHandler.getMousePos()[0]: - for card in self.__world.getCards(): - if card.rect.collidepoint(self.mousePos): - self.__logger.info(f"dragging card {card}") - self.selectedCard = card - - # failsafe to prevent NoneType errors - if self.selectedCard != None: - self.__logger.info(f"working with card: {self.selectedCard}") - self.selectedCard.setDragging(True) - elif event.type == pygame.MOUSEBUTTONUP: - if event.button == 1: - if self.selectedCard != None: - for field in self.__world.getBoardFields(): - if field.getRect().collidepoint(self.mousePos): - if field.getSide() == "Player" and field.getType() == self.selectedCard.getType(): - try: - # snap card into the correct field - self.selectedCard.rect.center = field.rect.center - self.selectedCard.setDragging(False) - print(self.selectedCard) - if self.selectedCard == card: - # TODO: adapt this into the new game engine version - PlaceCard(self.__tcpClient, self.selectedCard) # tells te server that the player placed this card - self.selectedCard = None - except Exception as e: - print(f"failed to place card on server due to error: {e}") - - if self.selectedCard != None: - self.selectedCard = None - else: - raise ValueError("selected card in event handler was found empty this should never happen!") - pass diff --git a/New_Client/Classes/Engine/InputHandler.py b/New_Client/Classes/Engine/InputHandler.py deleted file mode 100644 index 8df7dd3..0000000 --- a/New_Client/Classes/Engine/InputHandler.py +++ /dev/null @@ -1,53 +0,0 @@ -import pygame - -from Classes.Engine.Components.BoardField import BoardField - -class InputHandler: - # returns pressed key - @staticmethod - def getPressed(): - return pygame.key.get_pressed() - - # returns pressed key - @staticmethod - def getMousePressed(): - return pygame.mouse.get_pressed() - - # takes in movement inputs and maps them to x and y axis - @staticmethod - def getInputAxis() -> tuple: - xvel = 0 - yvel = 0 - - # construct x and y velocity input axis - if InputHandler.getPressed()[pygame.K_a] or InputHandler.getPressed()[pygame.K_LEFT]: - xvel = -1 - if InputHandler.getPressed()[pygame.K_d] or InputHandler.getPressed()[pygame.K_RIGHT]: - xvel = 1 - if InputHandler.getPressed()[pygame.K_w] or InputHandler.getPressed()[pygame.K_UP]: - yvel = -1 - if InputHandler.getPressed()[pygame.K_s] or InputHandler.getPressed()[pygame.K_DOWN]: - yvel = 1 - - return tuple((xvel, yvel)) - - @staticmethod - def getMousePos() -> pygame.Vector2: - return pygame.Vector2(pygame.mouse.get_pos()) - - # get field under mousbutton - @staticmethod - def getMouseHover(mouse_pos: pygame.Vector2, world_card_width: int, world_card_height: int, board_fields: list) -> BoardField: - x_pos = mouse_pos.x / world_card_width - y_pos = mouse_pos.y / world_card_height - - for field in board_fields: - field_x = field.getPos().x - field_y = field.getPos().y - field_width = world_card_width # Annahme: Jedes Feld hat eine Breite von 1 Einheit - field_height = world_card_height # Annahme: Jedes Feld hat eine Höhe von 1 Einheit - - if field_x <= x_pos < field_x + field_width and field_y <= y_pos < field_y + field_height: - return field - - return None diff --git a/New_Client/Classes/Engine/Logger.py b/New_Client/Classes/Engine/Logger.py deleted file mode 100644 index b548160..0000000 --- a/New_Client/Classes/Engine/Logger.py +++ /dev/null @@ -1,18 +0,0 @@ -import logging - - -class Logger: - def __init__(self, filename): - logging.basicConfig(filename=filename, - filemode='a', - format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s', - datefmt='%H:%M:%S', - level=logging.DEBUG) - - def info(self, message): - print(message) - logging.info(message) - - def error(self, message): - print(message) - logging.error(message) \ No newline at end of file diff --git a/New_Client/Classes/Engine/TCPClient.py b/New_Client/Classes/Engine/TCPClient.py deleted file mode 100644 index a44fbc9..0000000 --- a/New_Client/Classes/Engine/TCPClient.py +++ /dev/null @@ -1,52 +0,0 @@ -import json -import socket -import threading - -from Classes.Engine.EventHandler import TCPEventHandler -from Classes.Game.World import World -from Classes.Engine.InputHandler import InputHandler - -class TCPClient: - - __running:bool - - def __init__(self, addr: str, port: str, world:World, inputHandler:InputHandler): - self.addr = addr - self.port = int(port) - self.tcpSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.world = world - self.inputHandler = inputHandler - self.eventHandler = TCPEventHandler(self.tcpSocket, self.inputHandler, self.world) - - try: - self.tcpSocket.connect((self.addr, self.port)) - self.__running = True - - except Exception as e: - print(f"Error connecting TCP socket: {e}") - self.__running = False - - # Starten des Listener-Threads - self.listen() - - def send(self, message: dict): - try: - self.tcpSocket.sendall(json.dumps(message).encode()) - except Exception as e: - print(f"Error sending TCP data: {e}") - - def receive(self): - while True: - try: - data = self.tcpSocket.recv(1024) - if data: - decoded_data = json.loads(data.decode()) - self.eventHandler.handleEvents(decoded_data) - except Exception as e: - print(f"Error receiving TCP data: {e}") - break - - def listen(self): - self.tcpThread = threading.Thread(target=self.receive) - self.tcpThread.daemon = True - self.tcpThread.start() \ No newline at end of file diff --git a/New_Client/Classes/Engine/Utils/Path.py b/New_Client/Classes/Engine/Utils/Path.py deleted file mode 100644 index 9b01eb9..0000000 --- a/New_Client/Classes/Engine/Utils/Path.py +++ /dev/null @@ -1,6 +0,0 @@ -import os - - -class PathUtil: - def getAbsolutePathTo(notAbsolutPath:str) -> str: - return os.path.abspath("Client/" + notAbsolutPath) \ No newline at end of file diff --git a/New_Client/Classes/Engine/Utils/StringUtils.py b/New_Client/Classes/Engine/Utils/StringUtils.py deleted file mode 100644 index e4d02a1..0000000 --- a/New_Client/Classes/Engine/Utils/StringUtils.py +++ /dev/null @@ -1,11 +0,0 @@ -import random -import string - - -class StringUtils: - def get_random_string(length) -> str: - # choose from all lowercase letter - letters = string.ascii_lowercase - result_str = ''.join(random.choice(letters) for i in range(length)) - print("Random string of length", length, "is:", result_str) - return result_str diff --git a/New_Client/Classes/Engine/Utils/__pycache__/Path.cpython-311.pyc b/New_Client/Classes/Engine/Utils/__pycache__/Path.cpython-311.pyc deleted file mode 100644 index 36eabe238a3018a3f5b23ceebe0de8b97c093934..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 747 zcmZutK~EDw6n-9q*3=Ux-`j0BO<*STzBliC?|bv+tW+8YT;FHDs!xc&=`vVu z-|0O<=NKeN7C-|ytbpYEAe~bVaDgXV4JO$usJMUVTHowPQ^=KO@p=pjFc%tJGUZ6F zoY$^&_T7dnU92y}#Z}+FS+~s~z8gk%al=GG+fpnZ(aN@UxXFgZN!!8Gdy#6}A?j_O zcapzyh{kz7LI(qTeiwDohu!&QQ(6>*ZS2 zTQ^D@&se2CcuUH>vr)@?83xTziM85_mx&?x#wg=0hg-;aG^6oovbol7Jh`O?!zzlc zMVVk5UKXo8q@hkfDn#gSD zA+{sg4#=Mn;(gl>`ix_&))QFp1#}5P-yuW4n;LS=6Exj?C!7`L&!-YV_?AKH-)1sN z5~*-q9Ej?BO9)`w3&+bSER6%_nfv{H55xTZpv7e+`bT AfdBvi diff --git a/New_Client/Classes/Engine/Utils/__pycache__/StringUtils.cpython-311.pyc b/New_Client/Classes/Engine/Utils/__pycache__/StringUtils.cpython-311.pyc deleted file mode 100644 index 4052b1a4c16bbf923e3a13bdea86858748cdf313..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1233 zcmZ`%&1(}u6o0duq}ym(TZsLjk=!%~W1*l>N-3mLBod*qErf(6WT)xY?QY!J_z@!H zAXvqdAh{^?6e~ICv4VpB2QB1K7CebiZ;^N?J^5z0*``!ycYg29`+jfcT__X;TpzwQ zs6qgK@I!a`j+xFRGIdZuAsS>{N-{)%1yF>ipok3tpo!aE89^awi1~i;W2$g0bx7By zGmghPP{p%GocO^ z((YRKEMH*ot!~<`+M%1mD#4VJ)psJULIXXUp7%U7P}%ehPHUeKtKU=M7^rjQ^x=nETfdY zqid>8<-3W6Y(i71ZXwAtMp^czUPMjSxsGhl)x=AWkNRhdRHu(h=4@rMS5>5z?3N@m z=Q86nno-DWY&PzB@cFT;2!{u705#a1NaDXk-Y&n%ZQt07Otm6YuB;b3=m3?GMW^4W z8$4>PMm4Gzt+k4%vgw%L4!88cV*pFGw088v^WY!TtG20w>KTf(^)1Ab)KHH4b?wFSR_ zd@J1sB>x3B77r5>O@5o^5C pygame.surface: - return self.__screen - - # draws a passed sprite group to the screen - def drawSpriteGroup(self, group:pygame.sprite.Group): - group.draw(self.__screen) - - # draws a given group of rectangles onto the screen - def drawWorld(self, world:World): - for field in world.getBoardFields(): - pygame.draw.rect(self.__screen, field.getColor(), field.getRect()) - for label in world.getLabels(): - label.draw() \ No newline at end of file diff --git a/New_Client/Classes/Engine/__pycache__/EventHandler.cpython-311.pyc b/New_Client/Classes/Engine/__pycache__/EventHandler.cpython-311.pyc deleted file mode 100644 index f41445ce6f4b8cc4dd1d450bdead19e0c3ebbc3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7252 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 diff --git a/New_Client/Classes/Engine/__pycache__/InputHandler.cpython-311.pyc b/New_Client/Classes/Engine/__pycache__/InputHandler.cpython-311.pyc deleted file mode 100644 index 3df4b9d67cf980be6a9ea15a2abbb352fd46410a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3564 zcmcH+TWk|YaPNHQx4F=egjb^w2*FVm5Ot{32U1BOAVWaBs=9_#@NE(&=d*ivArGCa zeB{F)e9#IhNTpIfC@n($sZ^<-eD;G%c4RfyNtGhCeDG(QRzm!=vwOZfJEj$F=sGtu zJ2N{wJF`2x`6?0#B519!I&;$6amhec-1r+6#TnZ#1g_N!AK~=O z?g8&XO#z_<2VAy^%LCVgy<@DzEpi)1_^8Z38L*9j7T=^51T8PF(~^8RB>CYB;4s*Z zj0L4&)2J;{2v!(2!>5$ow0?3_kz}kktc^s&1K;{l082=>od7(^*qvo3W;Tc5#&ujk z_nDEX$Mojr#z!;Q^i1J7Gc=BMF{ffp!_s}UPDVW+9(+4_NyDm^)O3umCx@^$rDt== zvx=Nnuy}EBI5{Y%v7!SSg@Ib~xH1lsWc?cYb8}`8jGwb?&v!HkT>)$tq_qQBK#zsC z8}q9|&x+7f5_-!*Z_(eYhC%dy#X}{NM?I<^kjZDV)39i=kyWyv=*((_hy-x=43XN4 z*}ZWw^-|(--HMD=p?5{-EeX-G5H0$n)UN4Ou|BOT4J#ujg=YE@WD`yblP4cjpYdfU zK&6S7Y&&SiBTFQ;wbaaqLm197|G3 zrM0av^mC}=Z$`E?ja169D`aF_rFGjsjclHCsvJxFw>fQZtvMeH+ips?hi)cILU&o{ zF8aHhtFBX$A$31kR(lCJKtL3L$lydw2!f;c6XI~*++4V-@^qSCqy9Z8h1cn0m&7qcizmAu> z-*OqQ5~aQ$emL#2T(uu&iXY-?KHLwV=}tJ`xp7zbGp39u!40 zD2kb^G%XW4EQ%jbkIFSkSkp)KbSi`OiL7K*ZBjJVP6GB2K#I7!mw+AsrYEiFCMTyg zT_wj~9U!3bS!LY-?2eX-6R)P1m*6;qmV}+4knvG$6?tj-x t+EMjA2q8JM+Iav~55q7O6j`9ZHS|ug@vq7qV!+R4@Raa=e}RB{{uj{r-p~L5 diff --git a/New_Client/Classes/Engine/__pycache__/Logger.cpython-311.pyc b/New_Client/Classes/Engine/__pycache__/Logger.cpython-311.pyc deleted file mode 100644 index 0dec2369ea2df30b7fcea6d2699bb3033d436fdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1304 zcmcgs%}d-s6rX(UM%`U)X|-RjOG{t_rN>gFl-gD7!EPy5T9!aaH?tu&o3%4h=;FbH z2MZoN6ukCOEMotJ{t*fumVlS`)Z5B>^3?Z|Y{Y7>eaZah&C8qj=J(!^Z~6Qn0r@fV zmHre6`Gt$V$cfS`gR)I*VhbLr5s}OiTU;l$v?CI-2P2l6U<>m^mw)53T2HLe1d$`@ zm0;Q?lz=a(iMFs#Y7)k($+iTj*fK;=!pvODaVV>&v0+;lh6JNG7sUwrF=4fs>Z@=D zTePJBtbJKbqkNZl6gV-ASOnmN`KqB{wI69^i`N6UNp*f-D>pf~v* zUb<>h&MgPNv{mi-r1oM`n}?ID4cDXS6Kl1KKeGI6>&1haT)C=URsC`bW!Fg&k|i z^Qo{|*eC$=&D_?T19kjR9pCT2>?-*EA8za#q|zmJ9j2I@LK$l@HU@@sjBbIUol6)+ zK1lR(O8G74KrJ4s#r^&pQL5@0ybyR{O*0%cO}Mbj9_l&M{IG0A*WEPP6+8@9kYUnY z5^av_ihl`)fP+r~tffy^R1~--DHKGd*d-~bqB4QYzafr}@pLgNK@^`A!El!NRDB#D l_6eJS4|tRKQ-H1{2ttPx)}p7IDF_h$A{?XbK8 diff --git a/New_Client/Classes/Engine/__pycache__/TCPClient.cpython-311.pyc b/New_Client/Classes/Engine/__pycache__/TCPClient.cpython-311.pyc deleted file mode 100644 index cd3e928efe2dff304dfd266d70b7bdd70dcd0ef7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3578 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 str: - return self.__name - - def getCardSprite(self) -> pygame.image: - return self.__cardSprite - - def getDescription(self): - return self.__description - - def getDragging(self): - return self.__dragging - - def getOffset(self): - return self.__offset - - def getPos(self): - return self.__pos - - def getType(self): - return self.__type - - def getID(self) -> int: - return self.__id - - def getOwner(self) -> Player: - return self.__owner - - def getState(self) -> str: - return self.__state - - def setDragging(self, dragging:bool): - self.__dragging = dragging - - def setOffset(self, offset:pygame.Vector2): - self.__offset = offset - - def setPos(self, pos:pygame.Vector2): - self.__pos = pos - - def setState(self, state:str): - self.__state = state \ No newline at end of file diff --git a/New_Client/Classes/Game/Cards/MonsterCard.py b/New_Client/Classes/Game/Cards/MonsterCard.py deleted file mode 100644 index d73c45c..0000000 --- a/New_Client/Classes/Game/Cards/MonsterCard.py +++ /dev/null @@ -1,88 +0,0 @@ -import json -import pygame - -from Classes.Engine.InputHandler import InputHandler -from Classes.Game.Player import Player - -class MonsterCard(pygame.sprite.Sprite): - __name:str - __id:int - __description:str - __attacks = [] - __type:str = "Monster" - __pos:pygame.Vector2 - __dragging:bool = False - __offset:pygame.Vector2 = pygame.Vector2(0,0) - __inputHandler: InputHandler - __owner:Player - image:pygame.image - rect:pygame.rect - - def __init__(self, pos:pygame.Vector2, assetDir:str, inputHandler:InputHandler, owner:Player): - if assetDir == "": - return ValueError.add_note("Card: imagePath cannot be empty") - - pygame.sprite.Sprite.__init__(self) - - data = json.load(open(assetDir + "/card.json")) - self.__owner = owner - self.__id = int(data["id"]) - self.__pos = pos - self.__name = data["name"] - self.image = pygame.image.load(assetDir + "/card.png").convert_alpha() - self.rect = self.image.get_rect() - self.dragging = False - self.offset = pygame.Vector2(0, 0) # Offset zwischen der Karte und der Mausposition - self.__inputHandler = inputHandler - self.rect.center = self.__pos - self.__description = data["description"] - self.original_size = self.image.get_size() - self.original_position = self.rect.center - - for attack in data["attacks"]: - self.__attacks.append(attack) - - def update(self): - if self.__dragging: - mouse_pos = self.__inputHandler.getMousePos() - self.__pos = mouse_pos - self.rect.center = self.__pos - - def attacks(self): - return self.__attacks - - def getName(self) -> str: - return self.__name - - def getCardSprite(self) -> pygame.image: - return self.__cardSprite - - def getDescription(self): - return self.__description - - def getDragging(self): - return self.__dragging - - def getOffset(self): - return self.__offset - - def getPos(self): - return self.__pos - - def getType(self): - return self.__type - - def getID(self) -> int: - return self.__id - - def getOwner(self) -> Player: - return self.__owner - - def setDragging(self, dragging:bool): - self.__dragging = dragging - - def setOffset(self, offset:pygame.Vector2): - self.__offset = offset - - def setPos(self, pos:pygame.Vector2): - self.__pos = pos \ No newline at end of file diff --git a/New_Client/Classes/Game/Cards/SpellCard.py b/New_Client/Classes/Game/Cards/SpellCard.py deleted file mode 100644 index 805ddb5..0000000 --- a/New_Client/Classes/Game/Cards/SpellCard.py +++ /dev/null @@ -1,72 +0,0 @@ -import json -from typing import Any - -import pygame - -from Classes.Engine.InputHandler import InputHandler - -class SpellCard(pygame.sprite.Sprite): - __name:str - __description:str - __pos:pygame.Vector2 - __dragging:bool = False - __offset:pygame.Vector2 = pygame.Vector2(0,0) - __inputHandler: InputHandler - __type:str = "Effect" - image:pygame.image - rect:pygame.rect - - def __init__(self, pos:pygame.Vector2, assetDir:str, inputHandler:InputHandler): - if assetDir == "": - return ValueError.add_note("Card: imagePath cannot be empty") - - pygame.sprite.Sprite.__init__(self) - - data = json.load(open(assetDir + "/card.json")) - self.__pos = pos - self.__name = data["name"] - self.image = pygame.image.load(assetDir + "/card.png").convert_alpha() - self.rect = self.image.get_rect() - self.dragging = False - self.offset = pygame.Vector2(0, 0) # Offset zwischen der Karte und der Mausposition - self.__inputHandler = inputHandler - self.rect.center = self.__pos - self.__description = data["description"] - self.original_size = self.image.get_size() - self.original_position = self.rect.center - - def update(self): - if self.getDragging(): - mouse_pos = self.__inputHandler.getMousePos() - self.__pos = mouse_pos - self.rect.center = self.__pos - - def getName(self) -> str: - return self.__name - - def getCardSprite(self) -> pygame.image: - return self.__cardSprite - - def getDescription(self): - return self.__description - - def getDragging(self): - return self.__dragging - - def getOffset(self): - return self.__offset - - def getPos(self): - return self.__pos - - def getType(self): - return self.__type - - def setDragging(self, dragging:bool): - self.__dragging = dragging - - def setOffset(self, offset:pygame.Vector2): - self.__offset = offset - - def setPos(self, pos:pygame.Vector2): - self.__pos = pos \ No newline at end of file diff --git a/New_Client/Classes/Game/Cards/TrapCard.py b/New_Client/Classes/Game/Cards/TrapCard.py deleted file mode 100644 index 0faba3d..0000000 --- a/New_Client/Classes/Game/Cards/TrapCard.py +++ /dev/null @@ -1,72 +0,0 @@ -import json -from typing import Any - -import pygame - -from Classes.Engine.InputHandler import InputHandler - -class TrapCard(pygame.sprite.Sprite): - __name:str - __description:str - __pos:pygame.Vector2 - __dragging:bool = False - __offset:pygame.Vector2 = pygame.Vector2(0,0) - __inputHandler: InputHandler - __type:str = "Effect" - image:pygame.image - rect:pygame.rect - - def __init__(self, pos:pygame.Vector2, assetDir:str, inputHandler:InputHandler): - if assetDir == "": - return ValueError.add_note("Card: imagePath cannot be empty") - - pygame.sprite.Sprite.__init__(self) - - data = json.load(open(assetDir + "/card.json")) - self.__pos = pos - self.__name = data["name"] - self.__inputHandler = inputHandler - self.__description = data["description"] - self.original_size = self.image.get_size() - self.original_position = self.rect.center - self.offset = pygame.Vector2(0, 0) # Offset zwischen der Karte und der Mausposition - self.rect = self.image.get_rect() - self.rect.center = self.__pos - self.image = pygame.image.load(assetDir + "/card.png").convert_alpha() - self.__dragging = False - - def update(self): - if self.getDragging(): - mouse_pos = self.__inputHandler.getMousePos() - self.__pos = mouse_pos - self.rect.center = self.__pos - - def getName(self) -> str: - return self.__name - - def getCardSprite(self) -> pygame.image: - return self.__cardSprite - - def getDescription(self): - return self.__description - - def getDragging(self): - return self.__dragging - - def getOffset(self): - return self.__offset - - def getPos(self): - return self.__pos - - def getType(self): - return self.__type - - def setDragging(self, dragging:bool): - self.__dragging = dragging - - def setOffset(self, offset:pygame.Vector2): - self.__offset = offset - - def setPos(self, pos:pygame.Vector2): - self.__pos = pos \ No newline at end of file diff --git a/New_Client/Classes/Game/Cards/__pycache__/Card.cpython-311.pyc b/New_Client/Classes/Game/Cards/__pycache__/Card.cpython-311.pyc deleted file mode 100644 index db2cd585fffa710609572a5312457f3cb39a1eff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6044 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 diff --git a/New_Client/Classes/Game/Cards/__pycache__/MonsterCard.cpython-311.pyc b/New_Client/Classes/Game/Cards/__pycache__/MonsterCard.cpython-311.pyc deleted file mode 100644 index 3d1c166829917ffdd855e5a29e39b06b99bbea8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5654 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 int: - return self.__id - - def getName(self) -> str: - return self.__name - - def getHP(self) -> int: - return self.__hp - - def getMana(self) -> int: - return self.__mana - - def adjustHP(self, hp:int) -> int: - self.__hp = self.__hp + hp - - def getHand(self) -> pygame.sprite.Group: - return self.__handCards - - def AddToHand(self, card) -> pygame.sprite.Group: - self.__handCards.add(card) - return self.__handCards - - def removeFromHand(self, pos:int) -> pygame.sprite.Group: - self.__handCards.remove(pos) - return self.__handCards - diff --git a/New_Client/Classes/Game/World.py b/New_Client/Classes/Game/World.py deleted file mode 100644 index e92c06d..0000000 --- a/New_Client/Classes/Game/World.py +++ /dev/null @@ -1,116 +0,0 @@ -import pygame -from Classes.Engine.Logger import Logger -from Classes.Engine.Components.BoardField import BoardField -from Classes.Engine.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.Engine.InputHandler import InputHandler -from Classes.Game.Player import Player -from Classes.Game.Cards.Card import Card -from Classes.Engine.Utils.Path import PathUtil - -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 - __cardOffset:int = 400 - __logger:Logger - - def __init__(self, logger:Logger, screen:pygame.surface, cardWidth:int=200, cardHeight:int=250, cardOffset:int=400): - self.__logger = logger - - self.__logger.info("initializing world") - self.__boardFields = [] - self.__labels = [] - 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): - # construct elements around the player field - self.__logger.info("building game world") - - # presets the y position later passed down to the vector2 - eRow1Height = 85 - eRow2Height = (self.__cardHeight + 45) - pRow1Height = ((2 * self.__cardHeight) + 75) - pRow2Height = ((2 * self.__cardHeight) + self.__cardHeight + 30) - - self.__labels.append(Label("EnemyHP", self.__screen, "1000 / 1000", pygame.Vector2(15, 75))) - self.__labels.append(Label("EnemyName", self.__screen, "Enemy", pygame.Vector2(15, 45))) - self.__boardFields.append(BoardField("EnemyDeck", "Enemy", "Deck", pygame.Vector2((self.__cardOffset + ((self.__cardWidth + 10) * 0)), eRow1Height), PathUtil.getAbsolutePathTo("Assets/Cards/0/field.png"), "e-deck")) - self.__boardFields.append(BoardField("EnemyGraveyard", "Enemy", "Grave", pygame.Vector2((self.__cardOffset + ((self.__cardWidth + 10) * 0)), eRow2Height), PathUtil.getAbsolutePathTo("Assets/Cards/0/field.png"), "e-grave")) - - self.__labels.append(Label("PlayerHP", self.__screen, "1000 / 1000", pygame.Vector2(20, pRow2Height + 225))) - self.__labels.append(Label("PlayerName", self.__screen, "Player", pygame.Vector2(20, pRow2Height + 195))) - self.__labels.append(Label("Player Mana", self.__screen, "0", pygame.Vector2(20, pRow2Height + 255))) - self.__boardFields.append(BoardField("PlayerDeck", "Player", "Deck", pygame.Vector2((self.__cardOffset + (((self.__cardWidth + 10) - 30 ) * 5)), pRow2Height), PathUtil.getAbsolutePathTo("Assets/Cards/0/field.png"), "P-deck")) - self.__boardFields.append(BoardField("PlayerGraveyard", "Player", "Grave", pygame.Vector2((self.__cardOffset + (((self.__cardWidth + 10) - 30 ) * 5)), pRow1Height), PathUtil.getAbsolutePathTo("Assets/Cards/0/field.png"), "p-grave")) - - # handle field creation - for i in range(5): - self.__boardFields.append(BoardField("PlayerMonsterField-"+str(i), "Player", "Monster", pygame.Vector2((self.__cardOffset + (((self.__cardWidth + 10) - 30) * i)), pRow1Height), PathUtil.getAbsolutePathTo("Assets/Cards/0/field.png"), "pm"+str(id))) - self.__boardFields.append(BoardField("PlayerEffectField-"+str(i), "Player", "Effect", pygame.Vector2((self.__cardOffset + (((self.__cardWidth + 10) - 30) * i)), pRow2Height), PathUtil.getAbsolutePathTo("Assets/Cards/0/field.png"), "pe"+str(id))) - self.__boardFields.append(BoardField("EnemyMonsterField-"+str(i), "Enemy", "Monster", pygame.Vector2((self.__cardOffset + (((self.__cardWidth + 10) - 30) * (i+1)), eRow1Height)), PathUtil.getAbsolutePathTo("Assets/Cards/0/field.png"), "em"+str(id))) - self.__boardFields.append(BoardField("EnemySpellTrapField-"+str(i), "Enemy", "Effect", pygame.Vector2((self.__cardOffset + (((self.__cardWidth + 10) - 30) * (i+1))), eRow2Height), PathUtil.getAbsolutePathTo("Assets/Cards/0/field.png"), "ee"+str(id))) - - def getBoardFields(self) -> list: - return self.__boardFields - - def getLabels(self) -> list: - return self.__labels - - def getCardWidth(self) -> int: - return self.__cardWidth - - def getCardHeight(self) -> int: - return self.__cardHeight - - def getCards(self) -> pygame.sprite.Group: - return self.__cards - - 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 spawnCard(self, asset:str, pos:pygame.Vector2, inputHandler:InputHandler, owner:Player) -> Card: - card = Card(pos, asset, inputHandler, owner) - self.__cards.add(card) - return card - - def spawnCards(self, cards:pygame.sprite.Group): - for card in cards: - self.__cards.add(card) - - def AddToPlayerHand(self, Card:Card): - self.__PlayerHandCards.add(Card) \ No newline at end of file diff --git a/New_Client/__pycache__/App.cpython-311.pyc b/New_Client/__pycache__/App.cpython-311.pyc deleted file mode 100644 index b4f4b15d393d8a47ca4e1b44f367bc88b8e1c957..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4698 zcmb7IO>7&-6`mz`DN-EjhmvJlmMl85Vv|-C|0i`+|4~2vv814~8-x+SvfP!t@@mQK zuB=#43>ol21$6MuF6sh26s`k1fR8@pP@pN`<1VqNhy?@~C{VyR1#W@Br@l8!E`Q_z z%Ixs%n>X*x-+S}TEdLgXv=T@Qzxzf?1NUz%R1;re-mC%hfQUro6q3fbPvMq)X&;BY zU-2*TX`b=CA}j^c0mchT%Th2MWPCsgEw!dw8Q-FWmuQ+YKBz>N+R|+t@sUX)hVBuu z^|6nTr|@%Ax?SXENh16ji_;0tiH@ravMP<=l2qfDSyfad4W#r}YGJvq9JrcaSYS1w zYpG9CiVWJI7WhkLa(owPN9!YnJ-9Wp=eXyYW9slJ* z!HHymW-{8cs>ip;g6y~+pL?Gm~2{G_CB1-ewWyOdavY|+hup*1b4JU9zk{50m zj=-cj(DqUQI6wT}d<*6e$QrjsGG65xS@ifK=dpE+$UO%6Q?HIAMqTTR*fL9v{sgV+ zR)N|@k1u-q6|6_8wY56k!p0+ zY1gd`tdgfw^y0IoOGxAFca0}p)in-Oxn>&}N2FR8B75+Qu*)y~ReOm0fY<_Uc>MzJ zwf-2q@znDO^y{sWak$n3Sa|a0o11Cl+>Io>8p`ceo4;7 zXS1pvpPGGr2!@jIYrXK&4kGCTvf73F2~B0y$j5a_yCrF>p_8XR9615cNk=$)=Jcsk ztNrs?S&_sz=zxK&#>Hg`3zDYgwfO2$*D#*TtE!YUC`n@%fwFj~rV>a#Erk(eX*wObaI%v~DvzmX{ZjbE{f2gxYK+}w# zeSR1SWQ(4&={b|0W8#l3I%?BVla9g&HpZ&Y50G|RpcQ!QxQPGgzT7@GM7|qp9Y5&* z?t{bQJ^p|82*Bq&3!hb2l}dr3=S+t^s1p zisFPsExW?5$_$j9Ab@l#tBJZ3ST2ZJLvkoc@E-0;+fjcOP}z_swfu5H+lOt1Z?KCx zyR&O}>N*0u_c?wrc3MPPFDTjDUvt_qsMB%t#MRX&p8Iy31T+QbTtDOkJ4Wbb= zm;?*J;RF4EfNihZqMPdXq&sxv6+qwBE!tnA{SU=Qixy4TG-1*N%BQyIV2KV|bjYSd zTQpgs$tNFr=(rOgkGEqcW4%>9tq{9ffP(M_n zLl!-1)1zB-q(nz7dcvkBOnSm=J5izu0P^9jALCw0BjOX=j-94&cgd!1D&ylQcjt1`dPX^T0Giui?QcTzfsJZ47t(&Vw-Y zO;11=vY=xTz<;qU8`?+EXuZQjc{Qa-S#`Ov8bN1!#b2Xh3(h6q%N^16@r}VsfkyE_$EddG00e-^W48E#GC2Bk zlaE2R_!yMdXVz!#&Xj5A`qcW=-KlbS+~hG^e7xM*Yx0;azPH@{zR6>@`1i}6RE@N0JAGfgR$Jk9%-*@+2749RD^r>c-&(Z3Ze3@bs5JcKjU2l}Tis zJ!NvPVf diff --git a/New_Client/log/aruudvef.log b/New_Client/log/aruudvef.log deleted file mode 100644 index 6d420c6..0000000 --- a/New_Client/log/aruudvef.log +++ /dev/null @@ -1,6 +0,0 @@ -18:31:53,299 root INFO starting game engine -18:31:53,300 root INFO initializing dependencies -18:31:53,543 root INFO initializing world -18:31:53,545 root INFO building game world -18:31:53,562 root INFO initializing engine Event Handler -18:31:53,562 root INFO attempting to login to server diff --git a/New_Client/log/azkihdia.log b/New_Client/log/azkihdia.log deleted file mode 100644 index 3e6a943..0000000 --- a/New_Client/log/azkihdia.log +++ /dev/null @@ -1,6 +0,0 @@ -18:35:17,398 root INFO starting game engine -18:35:17,399 root INFO initializing dependencies -18:35:17,647 root INFO initializing world -18:35:17,647 root INFO building game world -18:35:17,664 root INFO initializing engine Event Handler -18:35:17,664 root INFO attempting to login to server diff --git a/New_Client/log/cssmtaso.log b/New_Client/log/cssmtaso.log deleted file mode 100644 index 507a8b3..0000000 --- a/New_Client/log/cssmtaso.log +++ /dev/null @@ -1,6 +0,0 @@ -18:28:36,740 root INFO starting game engine -18:28:36,740 root INFO initializing dependencies -18:28:36,976 root INFO initializing world -18:28:36,976 root INFO building game world -18:28:36,995 root INFO initializing engine Event Handler -18:28:36,995 root INFO attempting to login to server diff --git a/New_Client/log/dypjnvwx.log b/New_Client/log/dypjnvwx.log deleted file mode 100644 index 9c3683e..0000000 --- a/New_Client/log/dypjnvwx.log +++ /dev/null @@ -1,6 +0,0 @@ -18:24:39,228 root INFO starting game engine -18:24:39,229 root INFO initializing dependencies -18:24:39,473 root INFO initializing world -18:24:39,473 root INFO building game world -18:24:39,489 root INFO initializing engine Event Handler -18:24:39,490 root INFO attempting to login to server diff --git a/New_Client/log/ecnwzwpv.log b/New_Client/log/ecnwzwpv.log deleted file mode 100644 index 3f8fd1c..0000000 --- a/New_Client/log/ecnwzwpv.log +++ /dev/null @@ -1,6 +0,0 @@ -18:24:07,392 root INFO starting game engine -18:24:07,392 root INFO initializing dependencies -18:24:07,636 root INFO initializing world -18:24:07,636 root INFO building game world -18:24:07,653 root INFO initializing engine Event Handler -18:24:07,653 root INFO attempting to login to server diff --git a/New_Client/log/ezuxqfek.log b/New_Client/log/ezuxqfek.log deleted file mode 100644 index a669868..0000000 --- a/New_Client/log/ezuxqfek.log +++ /dev/null @@ -1,6 +0,0 @@ -18:34:47,406 root INFO starting game engine -18:34:47,406 root INFO initializing dependencies -18:34:47,651 root INFO initializing world -18:34:47,651 root INFO building game world -18:34:47,668 root INFO initializing engine Event Handler -18:34:47,669 root INFO attempting to login to server diff --git a/New_Client/log/hpyfylsj.log b/New_Client/log/hpyfylsj.log deleted file mode 100644 index 3890461..0000000 --- a/New_Client/log/hpyfylsj.log +++ /dev/null @@ -1,6 +0,0 @@ -18:15:16,227 root INFO starting game engine -18:15:16,227 root INFO initializing dependencies -18:15:16,469 root INFO initializing world -18:15:16,469 root INFO building game world -18:15:16,486 root INFO initializing engine Event Handler -18:15:16,487 root INFO attempting to login to server diff --git a/New_Client/log/jqqeltiy.log b/New_Client/log/jqqeltiy.log deleted file mode 100644 index abcb170..0000000 --- a/New_Client/log/jqqeltiy.log +++ /dev/null @@ -1,6 +0,0 @@ -18:26:41,981 root INFO starting game engine -18:26:41,982 root INFO initializing dependencies -18:26:42,202 root INFO initializing world -18:26:42,202 root INFO building game world -18:26:44,431 root INFO initializing engine Event Handler -18:26:44,431 root INFO attempting to login to server diff --git a/New_Client/log/mhtlvsqm.log b/New_Client/log/mhtlvsqm.log deleted file mode 100644 index 5e1a630..0000000 --- a/New_Client/log/mhtlvsqm.log +++ /dev/null @@ -1,6 +0,0 @@ -18:03:55,272 root INFO starting game engine -18:03:55,273 root INFO initializing dependencies -18:03:55,522 root INFO initializing world -18:03:55,524 root INFO building game world -18:03:55,541 root INFO initializing engine Event Handler -18:03:55,541 root INFO attempting to login to server diff --git a/New_Client/log/pbwegfvw.log b/New_Client/log/pbwegfvw.log deleted file mode 100644 index 85b8c96..0000000 --- a/New_Client/log/pbwegfvw.log +++ /dev/null @@ -1,4 +0,0 @@ -18:28:05,511 root INFO starting game engine -18:28:05,512 root INFO initializing dependencies -18:28:05,733 root INFO initializing world -18:28:05,735 root INFO building game world diff --git a/New_Client/log/qqebhbex.log b/New_Client/log/qqebhbex.log deleted file mode 100644 index 150872d..0000000 --- a/New_Client/log/qqebhbex.log +++ /dev/null @@ -1,6 +0,0 @@ -18:12:06,302 root INFO starting game engine -18:12:06,302 root INFO initializing dependencies -18:12:06,552 root INFO initializing world -18:12:06,553 root INFO building game world -18:12:06,570 root INFO initializing engine Event Handler -18:12:06,571 root INFO attempting to login to server diff --git a/New_Client/log/rnwforll.log b/New_Client/log/rnwforll.log deleted file mode 100644 index 17f202d..0000000 --- a/New_Client/log/rnwforll.log +++ /dev/null @@ -1,6 +0,0 @@ -18:26:02,924 root INFO starting game engine -18:26:02,925 root INFO initializing dependencies -18:26:03,152 root INFO initializing world -18:26:03,153 root INFO building game world -18:26:15,219 root INFO initializing engine Event Handler -18:26:15,219 root INFO attempting to login to server diff --git a/New_Client/log/rrffvbhc.log b/New_Client/log/rrffvbhc.log deleted file mode 100644 index 8877eee..0000000 --- a/New_Client/log/rrffvbhc.log +++ /dev/null @@ -1,6 +0,0 @@ -18:31:12,770 root INFO starting game engine -18:31:12,771 root INFO initializing dependencies -18:31:13,6 root INFO initializing world -18:31:13,6 root INFO building game world -18:31:13,23 root INFO initializing engine Event Handler -18:31:13,23 root INFO attempting to login to server diff --git a/New_Client/log/snqncicq.log b/New_Client/log/snqncicq.log deleted file mode 100644 index df03f86..0000000 --- a/New_Client/log/snqncicq.log +++ /dev/null @@ -1,6 +0,0 @@ -18:32:14,21 root INFO starting game engine -18:32:14,22 root INFO initializing dependencies -18:32:14,268 root INFO initializing world -18:32:14,268 root INFO building game world -18:32:14,285 root INFO initializing engine Event Handler -18:32:14,285 root INFO attempting to login to server diff --git a/New_Client/log/sstwdlli.log b/New_Client/log/sstwdlli.log deleted file mode 100644 index 3142c48..0000000 --- a/New_Client/log/sstwdlli.log +++ /dev/null @@ -1,6 +0,0 @@ -18:17:42,689 root INFO starting game engine -18:17:42,689 root INFO initializing dependencies -18:17:42,927 root INFO initializing world -18:17:42,928 root INFO building game world -18:17:42,946 root INFO initializing engine Event Handler -18:17:42,946 root INFO attempting to login to server diff --git a/New_Client/log/vzybrxrc.log b/New_Client/log/vzybrxrc.log deleted file mode 100644 index 52e5aed..0000000 --- a/New_Client/log/vzybrxrc.log +++ /dev/null @@ -1,6 +0,0 @@ -18:25:06,487 root INFO starting game engine -18:25:06,487 root INFO initializing dependencies -18:25:06,730 root INFO initializing world -18:25:06,730 root INFO building game world -18:25:06,748 root INFO initializing engine Event Handler -18:25:06,748 root INFO attempting to login to server diff --git a/New_Client/log/wqfhotaq.log b/New_Client/log/wqfhotaq.log deleted file mode 100644 index 825538c..0000000 --- a/New_Client/log/wqfhotaq.log +++ /dev/null @@ -1,6 +0,0 @@ -18:35:28,383 root INFO starting game engine -18:35:28,383 root INFO initializing dependencies -18:35:28,619 root INFO initializing world -18:35:28,620 root INFO building game world -18:35:28,637 root INFO initializing engine Event Handler -18:35:28,638 root INFO attempting to login to server diff --git a/New_Client/log/xqetosuq.log b/New_Client/log/xqetosuq.log deleted file mode 100644 index 9822c82..0000000 --- a/New_Client/log/xqetosuq.log +++ /dev/null @@ -1,6 +0,0 @@ -18:28:22,876 root INFO starting game engine -18:28:22,876 root INFO initializing dependencies -18:28:23,117 root INFO initializing world -18:28:23,117 root INFO building game world -18:28:23,134 root INFO initializing engine Event Handler -18:28:23,135 root INFO attempting to login to server diff --git a/New_Client/log/xwrmortx.log b/New_Client/log/xwrmortx.log deleted file mode 100644 index 76c0ab5..0000000 --- a/New_Client/log/xwrmortx.log +++ /dev/null @@ -1,6 +0,0 @@ -18:14:40,491 root INFO starting game engine -18:14:40,492 root INFO initializing dependencies -18:14:40,714 root INFO initializing world -18:14:40,715 root INFO building game world -18:14:41,59 root INFO initializing engine Event Handler -18:14:41,168 root INFO attempting to login to server diff --git a/New_Client/log/xxfpqmla.log b/New_Client/log/xxfpqmla.log deleted file mode 100644 index 3a73195..0000000 --- a/New_Client/log/xxfpqmla.log +++ /dev/null @@ -1,6 +0,0 @@ -18:17:28,90 root INFO starting game engine -18:17:28,90 root INFO initializing dependencies -18:17:28,335 root INFO initializing world -18:17:28,336 root INFO building game world -18:17:28,352 root INFO initializing engine Event Handler -18:17:28,352 root INFO attempting to login to server diff --git a/New_Client/log/ysnrngup.log b/New_Client/log/ysnrngup.log deleted file mode 100644 index a45e4ca..0000000 --- a/New_Client/log/ysnrngup.log +++ /dev/null @@ -1,4 +0,0 @@ -18:30:56,421 root INFO starting game engine -18:30:56,421 root INFO initializing dependencies -18:30:56,654 root INFO initializing world -18:30:56,654 root INFO building game world diff --git a/New_Client/log/zlnfjkpf.log b/New_Client/log/zlnfjkpf.log deleted file mode 100644 index 0086ccb..0000000 --- a/New_Client/log/zlnfjkpf.log +++ /dev/null @@ -1,6 +0,0 @@ -18:14:31,193 root INFO starting game engine -18:14:31,193 root INFO initializing dependencies -18:14:31,416 root INFO initializing world -18:14:31,416 root INFO building game world -18:14:36,438 root INFO initializing engine Event Handler -18:14:36,864 root INFO attempting to login to server diff --git a/New_Client/log/zoukqhzj.log b/New_Client/log/zoukqhzj.log deleted file mode 100644 index 4ead003..0000000 --- a/New_Client/log/zoukqhzj.log +++ /dev/null @@ -1,6 +0,0 @@ -18:34:33,865 root INFO starting game engine -18:34:33,865 root INFO initializing dependencies -18:34:34,103 root INFO initializing world -18:34:34,104 root INFO building game world -18:34:34,121 root INFO initializing engine Event Handler -18:34:34,121 root INFO attempting to login to server diff --git a/New_Client/log/zpvgppfk.log b/New_Client/log/zpvgppfk.log deleted file mode 100644 index 11d7f19..0000000 --- a/New_Client/log/zpvgppfk.log +++ /dev/null @@ -1,5 +0,0 @@ -18:37:44,978 root INFO starting game engine -18:37:44,978 root INFO initializing dependencies -18:37:45,225 root INFO initializing world -18:37:45,225 root INFO building game world -18:37:45,242 root INFO logging into server diff --git a/New_Client/main.py b/New_Client/main.py deleted file mode 100644 index ec7ad0e..0000000 --- a/New_Client/main.py +++ /dev/null @@ -1,11 +0,0 @@ -from App import App -from Classes.Engine.Logger import Logger -from Classes.Engine.Utils.StringUtils import StringUtils -from Classes.Engine.Utils.Path import PathUtil - -if __name__ == "__main__": - - logger = Logger(PathUtil.getAbsolutePathTo("log/"+StringUtils.get_random_string(8)+".log")) - - logger.info("starting game engine") - game = App(logger) \ No newline at end of file diff --git a/OLD_Server/.env b/OLD_Server/.env deleted file mode 100644 index 56fba80..0000000 --- a/OLD_Server/.env +++ /dev/null @@ -1,4 +0,0 @@ -HOST="127.0.0.1" -TCPPORT=54322 -UDPPORT=54323 -ENV="DEV" \ No newline at end of file diff --git a/OLD_Server/.vscode/settings.json b/OLD_Server/.vscode/settings.json deleted file mode 100644 index 1341321..0000000 --- a/OLD_Server/.vscode/settings.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "cSpell.words": [ - "DGRAM" - ], - "cSpell.ignoreWords": [ - "activateeffectcard", - "activatemonstereffect", - "attackcard", - "attackplayer", - "movecard", - "placecard", - "removecard" - ] -} \ No newline at end of file diff --git a/OLD_Server/Assets/Arenas/default.png b/OLD_Server/Assets/Arenas/default.png deleted file mode 100644 index ba5da22ccc75f0be2ff44b31e702347d8e45ddc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10988 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 diff --git a/OLD_Server/Assets/Cards/MonsterCards/testmonstercard/card.json b/OLD_Server/Assets/Cards/MonsterCards/testmonstercard/card.json deleted file mode 100644 index 0df2ece..0000000 --- a/OLD_Server/Assets/Cards/MonsterCards/testmonstercard/card.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "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 - } - ] -} diff --git a/OLD_Server/Assets/Cards/MonsterCards/testmonstercard/card.png b/OLD_Server/Assets/Cards/MonsterCards/testmonstercard/card.png deleted file mode 100644 index 320d60d34af39518b06c3adcf397345b883d202c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9570 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 diff --git a/OLD_Server/Assets/Cards/SpeelCards/testspellcard/artworkjson.png b/OLD_Server/Assets/Cards/SpeelCards/testspellcard/artworkjson.png deleted file mode 100644 index 9955a0cbf1966ebc0956bef3cc107754ed7011da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2389 zcmeAS@N?(olHy`uVBq!ia0y~yV2WU1VEn?t1{8T15PXG!fm6oQ#WAE}&fA-TE1d#G zTrbu>Wi@D!FEF zConP`VG(0+@EK){2Eu4c7|jI(oeSQ)FW6NT{NVMq>&1EhyA>OJBl@P7nyP-teg8c9 z-SfS&4Za^-IT!?lfhD0~BkL$*G!RBp!e}nQ%mqtl{$%KP6?(pDVM0Byxy0b<>gTe~ HDWM4fLIJZ> diff --git a/OLD_Server/Assets/Cards/SpeelCards/testspellcard/testspellcard.json b/OLD_Server/Assets/Cards/SpeelCards/testspellcard/testspellcard.json deleted file mode 100644 index 51d4083..0000000 --- a/OLD_Server/Assets/Cards/SpeelCards/testspellcard/testspellcard.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "testspell", - "image":"Assets/Cards/testspelltcard/artwork.png", - "costs": 30, - "description":"this is a test spell card" -} \ No newline at end of file diff --git a/OLD_Server/Assets/Cards/TrapCards/testtrapcard/artworkjson.png b/OLD_Server/Assets/Cards/TrapCards/testtrapcard/artworkjson.png deleted file mode 100644 index 9955a0cbf1966ebc0956bef3cc107754ed7011da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2389 zcmeAS@N?(olHy`uVBq!ia0y~yV2WU1VEn?t1{8T15PXG!fm6oQ#WAE}&fA-TE1d#G zTrbu>Wi@D!FEF zConP`VG(0+@EK){2Eu4c7|jI(oeSQ)FW6NT{NVMq>&1EhyA>OJBl@P7nyP-teg8c9 z-SfS&4Za^-IT!?lfhD0~BkL$*G!RBp!e}nQ%mqtl{$%KP6?(pDVM0Byxy0b<>gTe~ HDWM4fLIJZ> diff --git a/OLD_Server/Assets/Cards/TrapCards/testtrapcard/testtrapcard.json b/OLD_Server/Assets/Cards/TrapCards/testtrapcard/testtrapcard.json deleted file mode 100644 index 6d1cd5a..0000000 --- a/OLD_Server/Assets/Cards/TrapCards/testtrapcard/testtrapcard.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "testtrap", - "image":"Assets/Cards/testtrapcard/artwork.png", - "costs": 30, - "description":"this is a test tryp card" -} \ No newline at end of file diff --git a/OLD_Server/Classes/Game/Player.py b/OLD_Server/Classes/Game/Player.py deleted file mode 100644 index 5ac1b1a..0000000 --- a/OLD_Server/Classes/Game/Player.py +++ /dev/null @@ -1,57 +0,0 @@ -import random - -class Player: - __id:int - __hp:int - __mana:int - __name:str - __handCards:list - __deck:list - - def __init__(self, name:str, deck:list, hp:int=1000, mana:int=0): - self.__hp = hp - self.__mana = mana - self.__name = name - self.__handCards = [] - self.__deck = deck - self.__id = random.randint(3, 99999) - self.__mana = mana - - def shuffleDeck(self): - self.__deck = random.shuffle(self.__deck) - - def getDeck(self) -> list: - return self.__deck - - 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 getMana(self) -> int: - return self.__mana - - def addMana(self, amount) -> int: - self.__mana + amount - return self.__mana - - def AddToHand(self, card) -> list: - self.__handCards.append(card) - return self.__handCards - - def setHand(self, hand:list): - self.__handCards = hand - - def removeFromHand(self, pos:int) -> list: - self.__handCards.remove(pos) - return self.__handCards \ No newline at end of file diff --git a/OLD_Server/Classes/Game/__pycache__/Player.cpython-311.pyc b/OLD_Server/Classes/Game/__pycache__/Player.cpython-311.pyc deleted file mode 100644 index 2c346f11d0705b950a8a46a90872d88571659a4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3485 zcmcIm&2JM&6rc63?M-aQAu%Szp|+Z&sw-$q3u;9vYMY28Kn)UbNiD4`&juX)k=@(iRm=W1qbf}Y%$KbQf7-Rz~&eaY%s1q3NZE*f2S=fT)ED& z+H+!aMOP}j0hc-W7hsE-40G9H;3hLwQ{&2cNF@q*NR=pvQB9%{P|!mmLi{a0Uc8cFQ{w$^CJ zB9iPiN-(CggC@upYp4xo06DFpfm1wA0q3Rq76V5sWorb$b&7@6BON(o%b^bD3J-Lb z3)Y0aQHJoSx#zTH>BsLCmemC<6*NQWM5u%W)v6s5@V!>C!_=3mbwMs=gSKXw6f73FBmAC4qxt5) zwOxJ8WuGO+ALd%8TjoyUq=#8DcLxZ|^^qV*BiU7t+OKaQDA z_AEK^u-dxu(>FWG)4R#jFBJC0> zV82!2TV`EaG~`<3@}%m3iUjeGkKX^Tt&dCfudi0tTtBrr)WW(?E%D>fC^AIIfY(%p zpvzM4RThL#^Vim+haS#fJAv(e{@rcsV~$EM@t8nZhII;{JFE?59WtCeP^VEj$WRNK zoejtWkVnU&eKKwt=moyKYLPvilJ5vIm}QNEP|1%yTxbP;$aM<&O~Qec({X(%Wm@TXsKf`@%+0hNDpYE#)p}R5!v)T}EOGghSZ9$Dh=3lwA9=8}qffN; ziSDE3H;~Fumf|cxcPX~K+X+KnYbf0}S6>HUJ7o^GudJ9=-f=}M()-X~wF6&rexoLn zIqV)IPx2vlu-*od&fre|Lr?#%r(4>NKE10?xAkeb<;$|I(JQy;_l~gijxIrXN3TdA zryU+F3R~x3eG1%VV%X}bHkUs`6X{-rd8xE~Y2dJT&bzIy)T}OB{^v*wvr=0#J6?R& z>&1{Weo@paGTKMoXm^W0p=EtSuI}hlyZTgHpXv^I4*KZ8$tCY8c?5yUoN=tl&;mbsl{JB2ss%&Q^%6Z0 z%(UPhx?ZAV|LrrqYNXZ>t&$sN9`|4DZ78o>nOu}1eJeTHzDS5JL0JJW^z%+3UJ!GT i(Vb>}0kW?uin7OIP5JDH&ML6-W%4)4{^>IyHT(xuq{IXO diff --git a/OLD_Server/Classes/Game/__pycache__/Player.cpython-312.pyc b/OLD_Server/Classes/Game/__pycache__/Player.cpython-312.pyc deleted file mode 100644 index ff481bfc3886ce33fe5e31c52046bfaa6ccb1132..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3302 zcmcgu%Wo4$7@vLEUdMJE5|cU)u-kxItB4Bd6VXalQb_tRk${V_v|4#4#KB&>vl}D_ zA0m-fK`Mfr%&qRBDu{oe|3fcOs7SZmdMP&-SFOaU-#5E!)^4CuBXuNy^ZOn%^Sx%) zKO_=E1jhRQZ`rXBA-^Ky57h(REPxiFgh~}sATl{csJua_az}P83Q|MLsgIG#mt2uc zqaM@!6F`eFQjjPq$ma-Cm`bG+AQedNAw{4NXjOs2fI>YKMntD+goUWa!ZgYhI>eME zjm9=Yg$Rvrkb*`NEW9Ms;SIGA1snpL1Uv*-0XzaYCRQS^(mlY(J>4kagtvYS@USOO z0Zw{&FW?c+W*qPy`jR*=4S1AJfJb<~N+*FIYfR<#IpM{M(O}$(=`PUqG7T`xbtlo& zR1MPzu%=OE&S+1&Y?yS`;M5A3P*%F=sKQVcScVN%+@}Nu?F}rZ0>AD$kQQkwO`-#G zM^ge$^0^BHIIpyXG-cp$r5LtfQnDf%$CtY^m8k4D1*{7D+NKIz#OE3$r{o{wmgTR% zlt@nFXvj4rxIM?6oiK-BYgH$LbJ?^xM#FKFT*y%^R$1aPl*ExFkPHK{&?<}L>FL?y z#d8+pR`HC@*rnnevo6}Tda>THmuqIW2Jp05DVt0`JA0~l3NoEN!}uk}i?bEOvX~`g zMYm>$>kUVP!kJ}T*VmGs&=;U1*1JH~$#!adQ~fHsJw6FjY8`cyKAv7tRa`e071WX0tK94h4$lz5O#*;sBr7lvjx&U(L6(z*dmK%J&P6UTTR1lC zIp*W+q63O)mDP8NM4 zuAGJYWxa0E47##vp=bW}@CBF(3p)<4N4mAJwa}Kg^3WpD-6aTGLp%yQC1_zTn4pEZ zSKxSl5Xo+9BA%$hBe5Ij;h_q)0`hpGg%6YH#)rwwy=3ODmf5uv_zv!PB|d|PKj;MV zuc7g?e%!Gk@b!9eLr5>ar~EMN;5CO6HmbE%)9&k!h(T$ecOL&bth4Z@LyENc_1M+e zjin#8>A}kz^cq`OwDBT<=Xt$?76YRx`H$kiL<50fogt8Vote~+OD*BoH`w*j4=Fuc z6Qv*VE@V&g2JB#Ahs}$%rfOdyCgPz<>PHZMpF0H)OIX+<&)pl zaA@l0Y=^+qreeBfiRt@N7lltoq|nh$SOTk5m%!xWu^yhdVIiJC`OM9k4&a&g42ot@ z6jW#3EwcSv$Z#@j2UACrL)kVQ15-znLfM;d;yz%H^05xeZ>9dgNxY0AR_Fr!X1KwB qga}`5k&vg_3AZjE@RK0JzY`W-kd7ir(k~?Om-?2JeL{eUHGc!c?|lIP diff --git a/OLD_Server/Classes/System/GameManager.py b/OLD_Server/Classes/System/GameManager.py deleted file mode 100644 index 6c4cb1b..0000000 --- a/OLD_Server/Classes/System/GameManager.py +++ /dev/null @@ -1,155 +0,0 @@ -import json -import socket -import time -from Classes.Game.Player import Player - - -class GameManager: - __players:dict - __playingPlayer:Player - __state:str - __round:str - __cards:list - - def __init__(self, logger): - self.__players = {} - self.__playingPlayer = None - self.__state = "waiting" - self.__round = "none" - self.logger = logger - self.__cards = [] - pass - - def getLogger(self): - return self.logger - - # card management - def spawnCard(self, card, owner, x, y): - # self.logger.info("spawning card") - - self.__cards.append(card) - - payload = { - "event":"PlacedCard", - "owner": owner, - "card": card, - "x": x, - "y": y, - } - - for userAddr in self.__players.keys(): - try: - self.logger.info(f"send to client {self.__players[userAddr]['player'].getID() != owner}") - if self.__players[userAddr]["player"].getID() != owner: - self.__players[userAddr]["socket"].send(json.dumps(payload).encode()) - except: - pass - - # game round management - # this section manages the flow of rounds this should inherit itself - # ============================================================================= - - # this function iterates all - def progressRound(self): - # phases - # - playerPrep => playing player switches, gets a mana point and gets verified - if self.__playingPlayer != None: - for player in self.__players: - if self.__playingPlayer != player: - self.__playingPlayer = player - else: - self.__playingPlayer = next(iter(self.__players)) - # - playerDraw => player draws a card - # - playerPlay => player can place cards and active effects - # - playerEnd => player ends his turn and the code reiterates with the remaining player - pass - - # game state management - # this section mostly only used by the networking and event handling classes - # other parts should never need to interface with this unless really required - # ============================================================================= - def startGame(self, tcpSocket: socket): - self.__state = "running" - - players = list(self.__players.values()) - - print("game starts") - self.logger.info("game manager is starting the game") - for userAddr, player_data in self.__players.items(): - try: - user = player_data["player"] - user.addMana(1000) - user.adjustHP(1000) - user.shuffleDeck() - cards = self.__players[userAddr]["deck"] - user.setHand(cards[:5]) - - # iterates until the enemy player is not anymore equal to current player - enemy = next(player_data["player"] for player_data in players if player_data["player"] != user) - - payload = { - "event": "startgame", - "player": { - "mana": user.getMana(), - "hp": user.getHP(), - "hand": user.getHand() - }, - "enemy": { - "id": enemy.getID(), - "name": enemy.getName(), - "hp": enemy.getHP(), - }, - } - - print(f"user {player_data["socket"]}") - player_data["socket"].send(json.dumps(payload).encode()) - except Exception as e: - self.logger.error(f"failed to start game due to error: {e}") - break - - def stopGame(self): - # handles notifying all players that the game stops - # handles stoping the game itself and notifies server to stop itself - pass - - # player management - # the network manager will create a player instance - # ============================================================= - - # gets all player known to the game manager and returns them - def getPlayers(self) -> dict: - return self.__players - - # creates a player and handles counting all players and if conditions met starting the game - # returns the new dict in which the new player now is added - def addPlayers(self, player:Player, socket:socket, clientAddr, deck) -> dict: - - self.logger.info(f"creating user with id: {player.getID}") - self.__players[clientAddr] = { - "player": player, - "deck": deck, - "socket":socket - } - self.logger.info(f"new length of user dictionary: {len(self.__players)}") - - payload = { - "event":"loginresponse", - "status": "success", - "id": player.getID(), - "name": player.getName() - } - - socket.send(json.dumps(payload).encode()) - - - # counts participating players and starts the game if enough have joined - if len(self.__players) >= 2: - time.sleep(1) - self.logger.info("2 players have join game starts") - self.startGame() - - return self.__players - - def removePlayers(self, clientAddr): - self.logger.info(f"removing player with address '{clientAddr}' from players database") - del self.__players[clientAddr] \ No newline at end of file diff --git a/OLD_Server/Classes/System/Logger.py b/OLD_Server/Classes/System/Logger.py deleted file mode 100644 index b548160..0000000 --- a/OLD_Server/Classes/System/Logger.py +++ /dev/null @@ -1,18 +0,0 @@ -import logging - - -class Logger: - def __init__(self, filename): - logging.basicConfig(filename=filename, - filemode='a', - format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s', - datefmt='%H:%M:%S', - level=logging.DEBUG) - - def info(self, message): - print(message) - logging.info(message) - - def error(self, message): - print(message) - logging.error(message) \ No newline at end of file diff --git a/OLD_Server/Classes/System/Network/EventHandler.py b/OLD_Server/Classes/System/Network/EventHandler.py deleted file mode 100644 index 0a32ef2..0000000 --- a/OLD_Server/Classes/System/Network/EventHandler.py +++ /dev/null @@ -1,45 +0,0 @@ -import socket -from Classes.Game.Player import Player -from Classes.System.GameManager import GameManager - -from Classes.System.World import World - - -class TCPEventHandler: - __tcpSocket:socket - - def __init__(self, socket:socket): - self.__tcpSocket = socket - - # handles passing of event data to the right functions - def handleTCPEvents(self, event, gameManager:GameManager, address): - gameManager.getLogger().info(f"incommingevent {event}") - if event["event"] == "PlaceCard": - gameManager.getLogger().info(f"player {event['user']} attempted to place card {event['card']}") - for playerKey in gameManager.getPlayers().keys(): - player = gameManager.getPlayers()[playerKey] - if int(event["user"]) != player["player"].getID(): - payload = { - "event":"cardPlaced", - "card": { - "card":event["card"], - "owner": event["user"], - "x": event["x"], - "y": event["y"] - } - } - player["socket"].send(payload) - pass - elif event["event"] == "MoveCard": - pass - elif event["event"] == "RemoveCard": - pass - elif event["event"] == "AttackCard": - pass - elif event["event"] == "AttackPlayer": - pass - elif event["event"] == "ActivateEffectCard": - pass - elif event["event"] == "ActivateMonsterCard": - pass - pass \ No newline at end of file diff --git a/OLD_Server/Classes/System/Network/NetworkManger.py b/OLD_Server/Classes/System/Network/NetworkManger.py deleted file mode 100644 index b6d2174..0000000 --- a/OLD_Server/Classes/System/Network/NetworkManger.py +++ /dev/null @@ -1,145 +0,0 @@ -import json -import signal -import socket -import sys -import threading -from Classes.Game.Player import Player -from Classes.System.GameManager import GameManager - -from Classes.System.Network.EventHandler import TCPEventHandler -from Classes.System.World import World - -class NetworkManager: - class TCP: - __Addr:str - __Port:str - __BufferSize:int = 1024 - __tcpSocket:socket - __eventHandler: dict - __users: dict - __TCPClientThread:threading.Thread - __gameManager:GameManager - - def __init__(self, Addr:str, Port:str, gameManager:GameManager): - gameManager.getLogger().info("starting up network manager") - - self.running = True - self.__Addr = Addr - self.__Port = int(Port) - self.__gameManager = gameManager - self.__eventHandler = {} - - gameManager.getLogger().info("starting up tcp server") - self.__tcpSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.__tcpSocket.bind((self.__Addr, self.__Port)) - self.__tcpSocket.listen() - - gameManager.getLogger().info("starting up thread for client socket accepting") - self.__TCPClientThread = threading.Thread(target=self.accept_connections) - self.__TCPClientThread.daemon = True - self.__TCPClientThread.start() - - def accept_connections(self): - while self.running: - try: - client_tcp_socket, client_address = self.__tcpSocket.accept() - self.__gameManager.getLogger().info(f"Connected with {client_address}") - self.__gameManager.getPlayers()[client_address] = client_tcp_socket - self.__eventHandler[client_address] = TCPEventHandler(client_tcp_socket) - - client_handler_thread = threading.Thread( - target=self.receive, - args=(client_tcp_socket, client_address) - ) - - self.__gameManager.getLogger().info(f"starting client handler thread for client at address {client_address}") - client_handler_thread.daemon = True - client_handler_thread.start() - - except Exception as e: - self.__gameManager.getLogger().error(f"tcp socket failed to accept connection due to error: {e}") - pass - client_handler_thread.join() - - def receive(self, client_socket, client_address): - while self.running: - try: - data = client_socket.recv(self.__BufferSize) - if not data: - self.__gameManager.getLogger().info(f"Connection with {client_address} closed.") - break - - try: - - message = data.decode() - messageJson = json.loads(message) - self.__gameManager.getLogger().info(f"decoded message {messageJson}") - user = messageJson.get("user") - self.__gameManager.getLogger().info(f"user in message {user}") - - except Exception as ex: - self.__gameManager.getLogger().info(f"decoding incoming packet failed due to exception: {ex}") - - # creates a user and counts how many currently are connected to the server - # if enough users for a round are connected the server has to start the game - if user not in self.__gameManager.getPlayers(): - if messageJson["event"] == "login": - self.__gameManager.getLogger().info("user logging in") - self.__gameManager.getLogger().info("task passed off to gameManager") - user = self.__gameManager.addPlayers(Player(messageJson["username"], messageJson["deck"]), client_socket, client_address, messageJson["deck"]) - self.__gameManager.getLogger().info(f"connected users {len(self.__gameManager.getPlayers())}") - - self.__gameManager.getLogger().info(f"confirming login for user") - self.send({ - "event": "loginresponse", - "status": "success", - "username": user[client_address]["player"].getName(), - "id": user[client_address]["player"].getID(), - }, client_address) - - self.__eventHandler[client_address].handleTCPEvents(messageJson, self.__gameManager, client_address) - self.__gameManager.getLogger().info(f"Received message from {client_address}: {message}") - - except socket.error as e: - - if e.errno == 10054: - self.__gameManager.getLogger().error(f"Connection with {client_address} forcibly closed by remote host.") - players = self.__gameManager.getPlayers() - self.__gameManager.removePlayers(client_address) - self.__gameManager.getLogger().info(f"new player length {len(players)}") - break - - self.__gameManager.getLogger().error(f"Socket error receiving data from {client_address}: {e}") - - except json.JSONDecodeError as e: - self.__gameManager.getLogger().error(f"JSON decoding error receiving data from {client_address}: {e}") - - # except Exception as e: - # self.__gameManager.getLogger().error(f"UknownError receiving data from {client_address} due to error: {e}") - - def broadcast(self, payload:dict): - for user in self.__gameManager.getPlayers().values(): - user["socket"].send(json.dumps(payload).encode()) - - def send(self, payload: dict, user: str): - players = self.__gameManager.getPlayers() - - if user in players and "socket" in players[user]: - players[user]["socket"].send(json.dumps(payload).encode()) - else: - self.__gameManager.getLogger().error(f"user '{user}' or socket was not found 'socket' failed to send data.") - - def stop(self): - self.__TCPClientThread.join() # Wait for the thread to finish before exiting - - tcp: TCP - # udp: UDP - - def __init__(self, Addr:str, TCPPort:str, UDPPort:str, gameManager:GameManager): - self.tcp = self.TCP(Addr, TCPPort, gameManager) - signal.signal(signal.SIGINT, self.handle_interrupt) # Register the signal handler - - def handle_interrupt(self, signum, frame): - self.__gameManager.getLogger().info("Received keyboard interrupt. Stopping the server.") - self.tcp().stop() - sys.exit(0) \ No newline at end of file diff --git a/OLD_Server/Classes/System/Network/__pycache__/EventHandler.cpython-311.pyc b/OLD_Server/Classes/System/Network/__pycache__/EventHandler.cpython-311.pyc deleted file mode 100644 index 8e128bb5dc72da44ac3a94766869908a2d6b6bc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1903 zcmZ`)&rjS&6rSJGyc&udl0mbHh!T4Dnfq=qtn2a?Q8*tT|^MUE-HvoadAZ{C|KwzH&sy!s?=3i ztE3BQj1)AFi1rMT^nrrVA>2_bWC&hH`OM$KT*_mfe(c(tl!2C;w<~nf_UtujYO6kT ziPL^g4ym?rb`O+YL{R|~R8UqBO;MHL2Y?cVrb-G)JyQ!BQE3`<4fG62i&=T!XS0vz zYSarqu|48a#)qv0Vp*Y6UG|-I8uD}?M<-rAOdxczj= z(-SlAB$!;x+(@Zo_Sx`&8OIv+q&+#jjvbRP>;f`@ljyzj+ZHGEGBV3K- z29y=Y-*5~CvFO+6tl)Z{&`PY&grV)MOWcU`X!r3eGfr5p*&&@Pm8cU+kHHSM=zCCo zOn~_m&#uvM!C!+-%GI)0@_9C>+D|>ns!Ws_8xW!o1kc!nFd77bNc$KxW(c_NE4lqT zwHj=VcGUL1oJcr`mj&X?fa=u;PxX<8K60#&p6H{e`mKh3tA2axXafZFV}1HWpRViE z&0PP>>o2DEzG&p$ZK2-mK-0K>YK%9G@%`IBrGL14^wv@B*O6D+E9bYK-{*3QhM8}noOnFOwj1XAEtGu&mg&O2ZJ2jkNV|yDNAEYx z`z@5}1}7WlWDDU4)Q#sV>xF2S^19gD9_&ra;yspC@yUiObi=Z~-mu+>kp~R#vn<>5 z{Ll`|@WCvLneYZC63@m#{EXx)A5#14*NSuuFwf-Q=*A#mXFmd7pH4v>7#<+>h9eFj;oqBg~qI>o3{%5xX__xwS R7=pem{t?)}Zy@Bl{sW&n(pUfh diff --git a/OLD_Server/Classes/System/Network/__pycache__/EventHandler.cpython-312.pyc b/OLD_Server/Classes/System/Network/__pycache__/EventHandler.cpython-312.pyc deleted file mode 100644 index 5f66d8b9aef256e00b40eb55ce5ed16c67425f1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1643 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 z 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 JlUOnn{|7>jn^6D& diff --git a/OLD_Server/Classes/System/Network/__pycache__/NetworkManger.cpython-312.pyc b/OLD_Server/Classes/System/Network/__pycache__/NetworkManger.cpython-312.pyc deleted file mode 100644 index 69b4416287f35f56d884d94d1beccf74bc21ac91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9866 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 diff --git a/OLD_Server/Classes/System/PlayerManager.py b/OLD_Server/Classes/System/PlayerManager.py deleted file mode 100644 index e149622..0000000 --- a/OLD_Server/Classes/System/PlayerManager.py +++ /dev/null @@ -1,23 +0,0 @@ -import json -class Player: - - def createUser(self, user:json): - self.__users.append(user) - - def createUser(self, user:json): - if self.getUser(user["username"]) == None: - self.__users.append(Player(user["username"])) - - def removeUser(self, user:int): - self.__users.remove(user) - - def removeUser(self, user:str): - self.__users.remove(user) - - def getUsers(self) -> list: - return self.__users - - def getUser(self, user:int): - for user in self.__users: - if int(user["id"]) == user: - return user \ No newline at end of file diff --git a/OLD_Server/Classes/System/QueueManager.py b/OLD_Server/Classes/System/QueueManager.py deleted file mode 100644 index be82662..0000000 --- a/OLD_Server/Classes/System/QueueManager.py +++ /dev/null @@ -1,34 +0,0 @@ - - -from Classes.Game.Player import Player - - -class QueueManager: - __queue:list - - def __init__(self): - self.__queue = [] - - def getQueue(self) -> list: - return self.__queue - - def addToQueue(self, user) -> list: - if self.isInQueue(user["id"]): - self.__queue.append(user) - return self.__queue - - def removeFromQueue(self, player:Player) -> list: - self.__queue.remove(player) - return self.__queue - - def isInQueue(self, user:int) -> bool: - for user in self.__queue: - if int(user["id"]) == user: - return True - return False - - def isInQueue(self, user:str) -> bool: - for user in self.__queue: - if user["username"] == user: - return True - return False \ No newline at end of file diff --git a/OLD_Server/Classes/System/Server.py b/OLD_Server/Classes/System/Server.py deleted file mode 100644 index c3485db..0000000 --- a/OLD_Server/Classes/System/Server.py +++ /dev/null @@ -1,40 +0,0 @@ -import json -import socket -import threading -from Classes.System.GameManager import GameManager - -from Classes.System.Network.NetworkManger import NetworkManager -from Classes.System.PlayerManager import Player -from Classes.System.World import World -from Classes.System.Logger import Logger - -class Server: - - __address:str - __tcpPort:str - __udpPort:str - __world:World - __gameManager:GameManager - - networkManager:NetworkManager - - def __init__(self, address:str, tcpPort:str, udpPort:str, logger:Logger): - self.__address = address - self.__tcpPort = tcpPort - self.__udpPort = udpPort - self.__world = World() - self.logger = logger - - self.logger.info("starting up game manager") - self.__gameManager = GameManager(logger) - - self.logger.info("preparing to start server") - self.startServer(self.__gameManager) - - # handles starting the server and assigning socket values to the local reference - def startServer(self, gameManager:GameManager): - self.logger.info("starting up network manager") - self.__networkManager = NetworkManager(self.__address, self.__tcpPort, self.__udpPort, gameManager) - - def getNetworkManager(self) -> NetworkManager: - return self.__networkManager \ No newline at end of file diff --git a/OLD_Server/Classes/System/Utils/Path.py b/OLD_Server/Classes/System/Utils/Path.py deleted file mode 100644 index a274f43..0000000 --- a/OLD_Server/Classes/System/Utils/Path.py +++ /dev/null @@ -1,6 +0,0 @@ -import os - - -class PathUtil: - def getAbsolutePathTo(notAbsolutPath:str) -> str: - return os.path.abspath("OLD_Server/" + notAbsolutPath) \ No newline at end of file diff --git a/OLD_Server/Classes/System/Utils/StringUtils.py b/OLD_Server/Classes/System/Utils/StringUtils.py deleted file mode 100644 index e4d02a1..0000000 --- a/OLD_Server/Classes/System/Utils/StringUtils.py +++ /dev/null @@ -1,11 +0,0 @@ -import random -import string - - -class StringUtils: - def get_random_string(length) -> str: - # choose from all lowercase letter - letters = string.ascii_lowercase - result_str = ''.join(random.choice(letters) for i in range(length)) - print("Random string of length", length, "is:", result_str) - return result_str diff --git a/OLD_Server/Classes/System/World.py b/OLD_Server/Classes/System/World.py deleted file mode 100644 index f6b2957..0000000 --- a/OLD_Server/Classes/System/World.py +++ /dev/null @@ -1,20 +0,0 @@ -import socket -from Classes.Game.Player import Player - - -class World: - __players:dict - - def __init__(self): - self.__players = {} - - def getPlayers(self) -> list: - return self.__players - - def addPlayers(self, player:Player, socket:socket, clientAddr) -> list: - self.__players[clientAddr] = { - player: player, - socket:socket - } - - return self.__players \ No newline at end of file diff --git a/OLD_Server/Classes/System/__pycache__/GameManager.cpython-311.pyc b/OLD_Server/Classes/System/__pycache__/GameManager.cpython-311.pyc deleted file mode 100644 index 34fddbbdc1ff5cd0ba49b6b8d206fe86505c9ece..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6461 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 diff --git a/OLD_Server/Classes/System/__pycache__/GameManager.cpython-312.pyc b/OLD_Server/Classes/System/__pycache__/GameManager.cpython-312.pyc deleted file mode 100644 index 9effb6a34c14ebd49ba2a870d462a39657a8ed94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6291 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 diff --git a/OLD_Server/Classes/System/__pycache__/Logger.cpython-311.pyc b/OLD_Server/Classes/System/__pycache__/Logger.cpython-311.pyc deleted file mode 100644 index 7dc2efc75de4596d9c47dfe4c615a38a80afac96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1309 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 QB65}djk15PQHU4%7rk?0IRF3v diff --git a/OLD_Server/Classes/System/__pycache__/Server.cpython-312.pyc b/OLD_Server/Classes/System/__pycache__/Server.cpython-312.pyc deleted file mode 100644 index e6f1af42e843ccd529af30c09a92d5bda54f9ae1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2291 zcmb7FPiP!f7=JT6J3IS7|C(getV}VjU8<>Qt01KwQplxE1F;Ir%CKZ!(rjjD);BLL zyDW=fg$RNN5ADH2!AnXIul1xy#e)q=Nth%M5D(shD+oRLeQ##=pL+1YeBbZ;^S<}y z`@Z+y&*^l6!1(p+Z|F-=;3$Mc2|(Kd@Q|3qlq^#8xm1*dEEi?qvK6T+MMXke#EMqc zqAIXr#j09S6F6$ctBGPlVAV=iQ^k}-WHL|8*aKo}+p@n}F(^&=gWj~-#wLoY$06Zj=;Qov99YP~i zF{Nvu6-e%&h(J-WDgvp1q5{PLsff%NjhGsIarhEcThYwq1Em-@Q&e4%%{1VInV~Vj zS-{EqP+{0pmngeOnKxwkz%a_D$*Al0X!vq%(P6wtvtjz0OlKCP!7{zEj=b7Ul$Wvl z(&WX$C1PRZSQt>X{A5A#J0k)JzxK3*$!bbXVswm686?pAqZt7yC>6On-SF)Tx8t)E)YjLNRQzNtLd@@xubdMcxQgW1cSI|7u5MJdqZ zze=%03KHD;EDt`waOW;g^!MxyuTtKB{Wm6qKlq2`6`YGF2mT{Fx}Tld$<92}X2b>; z3Mp)58;+`BcnQO(I_8FjIAs_gZIrFR5^*{6vT!}yw!_PO&9Pm>@DD2fieCu4@K_EB zrj+SGo)EE&pXfMhk>F8xKLqkAImrxva_gW=QYen(ca{9f=(%0x+^Ld`zV^sHCBU}k z1baFv*bncwQF%HoM=j~`dYd3W)uib8$JhTP!2FeQy+X!QDz0ODs_QJTQ|`t2T}I0$ z+(zD1aKvZ*BR<>n#)><~n;CEj(mvZwKfJFZ0p9e0tN$Da?=!>0`9izq7wbB^3b-NW! diff --git a/OLD_Server/Classes/System/__pycache__/World.cpython-311.pyc b/OLD_Server/Classes/System/__pycache__/World.cpython-311.pyc deleted file mode 100644 index a74158dc0d79e833ec6f4645f3ebcb241535bd9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1183 zcmZ`%&uddb5T1R%nx;)!+aidz7Lh_gdJ+#(L}|6RD8?d$2g@V7%Cj#ob@#QGujvoCGZs_H`oVmcJtPdeYeNAI4D_Oa5ee)n5(ja=s$fmQ?<76lg8AU)jd%b>C20 z+}KWYoQH9kaK2N_d?)7|X3+(NCUh=c-ggd)`?z}OfYehm*;MhFN{E%IWD<=Q*71U_ z8mWMye^a9bG~cWQHI8PQe=d`37>mWz9@I-Kee0 zq;~Q)Fa~5BCO6PPCJdLgYlYS@r(K)oIqVr`S#lJmR#ODi2x-0+g)&a=386G4m`CXs z5D0OufPsg|>gxzi_&z>$_@IMutLxeedFtrl&bQpPZXPCQ2BnotV>FZ)XUBP(=e*t! zn-SULoWI-*qJG2?VJ*SO#e+C*Bta53V$HdtiKR{y>O@^YQ&A&K1?nPNZ7}UK#Fa}S z0@_+3G>2BFIMpmS%dg8_hq+g}a0(uC=iaQ4W9~e7o;&x>>jJ8eTSk2mM*SBuIz#|l zZW=w^f2oV~dKa_CW>pxzvv_q-!*OmYYtJ2Z6$A7J^<#vt%^2%Ip=nkJ7LLyTy50ms P_J6}K^8Nltz~uY`cWn-( diff --git a/OLD_Server/Classes/System/__pycache__/World.cpython-312.pyc b/OLD_Server/Classes/System/__pycache__/World.cpython-312.pyc deleted file mode 100644 index d798c681faabf47bd1395a1125745b4d15d1fb2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1088 zcmZuvO-NKx6h8O;`5c|mw1R##X(0`Sixw?Hq)>7bV_*^t1D9d$wO+n?Z@Tv>yg@|B zKo_CAY1t-dh_=0I1;To7WUI?&%!>9ea!N&(I1l}5ELAN_ zX4dIB-5CTekWgj<%El5%Q(A&eV^kPhP_~6Bon=E`!Bk=)+hpc8mRq z{Ww&H6B3f;hSX%nans!edF3jGk zENQ89WigU+tuiO|N)$FKjW~K51`{E|g~0a$$sf(mR~8=3@kOcDq^ivNRjnm%i*+RH zm6Y04BTih-y}*k&Zx*uHk?-Ptx*yFZ>|eUFZM`aV(SgKKGFnx^e`<(Zs^&6+7HWA$ zOHYkOP;{oEGZpnXlcWX_Cb=gv${M4a!x@p|$N(*-Wk_Xcba!KC(3Rtf~;FWF1FHfWCod6MhVi?A_l-bGu`kleukcx3E*#YkqaFcXBX%{-oqmae$f@ zRO^!SB*%F@6stbrLC&AAR{dVa5?(FBN64!|5JuI=3j@u$$`fJB_jIJrAyibLRE4^T zs10dZQ}W8D6dC&UEi^A-zcBKmbYL<2YR6&r`0KeY;M8#(d;E>l0i52grPC+zo4o8e zIsnU-7HhQk5~t=-!Bke9j756i7%n~LaOh5F@@CXEOwc>i7tnM}#@IK=e}~CG&JY_v I05s{gzl~w@lmGw# diff --git a/OLD_Server/index.py b/OLD_Server/index.py deleted file mode 100644 index 27fd861..0000000 --- a/OLD_Server/index.py +++ /dev/null @@ -1,31 +0,0 @@ -import logging -import os -import random -import string -import sys - -from Classes.System.Server import Server -from Classes.System.Logger import Logger -from Classes.System.Utils.Path import PathUtil - -def get_random_string(length) -> str: - # choose from all lowercase letter - letters = string.ascii_lowercase - result_str = ''.join(random.choice(letters) for i in range(length)) - print("Random string of length", length, "is:", result_str) - return result_str - -def main(): - # retrieves host data from environment - HOST = "127.0.0.1" - TCPPORT = "54322" - UDPPORT = "54323" - - logger = Logger(PathUtil.getAbsolutePathTo("log/"+get_random_string(8)+".log")) - logger.info("starting up server") - server = Server(HOST, TCPPORT, UDPPORT, logging) - server.getNetworkManager().tcp.stop() - sys.exit(0) - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/OLD_Server/log/ftosavkt.log b/OLD_Server/log/ftosavkt.log deleted file mode 100644 index 5997e28..0000000 --- a/OLD_Server/log/ftosavkt.log +++ /dev/null @@ -1,35 +0,0 @@ -10:14:25,144 root INFO starting up server -10:14:25,145 root INFO starting up game manager -10:14:25,145 root INFO preparing to start server -10:14:25,145 root INFO starting up network manager -10:14:25,145 root INFO starting up network manager -10:14:25,145 root INFO starting up tcp server -10:14:25,147 root INFO starting up thread for client socket accepting -10:14:28,852 root INFO Connected with ('127.0.0.1', 40793) -10:14:28,853 root INFO starting client handler thread for client at address ('127.0.0.1', 40793) -10:14:28,862 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:14:28,863 root INFO user in message None -10:14:28,864 root INFO user logging in -10:14:28,865 root INFO task passed off to gameManager -10:14:28,866 root INFO creating user with id: > -10:14:28,866 root INFO new length of user dictionary: 1 -10:14:28,866 root INFO connected users 1 -10:14:28,867 root INFO confirming login for user -10:14:28,868 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:14:28,868 root INFO Received message from ('127.0.0.1', 40793): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:14:37,604 root INFO Connected with ('127.0.0.1', 40802) -10:14:37,604 root INFO starting client handler thread for client at address ('127.0.0.1', 40802) -10:14:37,617 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:14:37,618 root INFO user in message None -10:14:37,618 root INFO user logging in -10:14:37,618 root INFO task passed off to gameManager -10:14:37,620 root INFO creating user with id: > -10:14:37,622 root INFO new length of user dictionary: 2 -10:14:38,623 root INFO 2 players have join game starts -10:14:38,624 root INFO game manager is starting the game -10:14:38,624 root INFO connected users 2 -10:14:38,625 root INFO confirming login for user -10:14:38,626 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:14:38,626 root INFO Received message from ('127.0.0.1', 40802): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:14:45,312 root ERROR Connection with ('127.0.0.1', 40802) forcibly closed by remote host. -10:14:48,810 root ERROR Connection with ('127.0.0.1', 40793) forcibly closed by remote host. diff --git a/OLD_Server/log/kuketiqt.log b/OLD_Server/log/kuketiqt.log deleted file mode 100644 index 25a6234..0000000 --- a/OLD_Server/log/kuketiqt.log +++ /dev/null @@ -1,35 +0,0 @@ -10:03:57,851 root INFO starting up server -10:03:57,851 root INFO starting up game manager -10:03:57,852 root INFO preparing to start server -10:03:57,852 root INFO starting up network manager -10:03:57,852 root INFO starting up network manager -10:03:57,853 root INFO starting up tcp server -10:03:57,854 root INFO starting up thread for client socket accepting -10:04:05,109 root INFO Connected with ('127.0.0.1', 40671) -10:04:05,110 root INFO starting client handler thread for client at address ('127.0.0.1', 40671) -10:04:05,124 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:04:05,125 root INFO user in message None -10:04:05,125 root INFO user logging in -10:04:05,125 root INFO task passed off to gameManager -10:04:05,126 root INFO creating user with id: > -10:04:05,126 root INFO new length of user dictionary: 1 -10:04:05,126 root INFO connected users 1 -10:04:05,126 root INFO confirming login for user -10:04:05,126 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:04:05,127 root INFO Received message from ('127.0.0.1', 40671): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:04:11,420 root INFO Connected with ('127.0.0.1', 40672) -10:04:11,420 root INFO starting client handler thread for client at address ('127.0.0.1', 40672) -10:04:11,439 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:04:11,439 root INFO user in message None -10:04:11,439 root INFO user logging in -10:04:11,439 root INFO task passed off to gameManager -10:04:11,440 root INFO creating user with id: > -10:04:11,440 root INFO new length of user dictionary: 2 -10:04:12,441 root INFO 2 players have join game starts -10:04:12,442 root INFO game manager is starting the game -10:04:12,442 root ERROR failed to start game due to error: list indices must be integers or slices, not str -10:04:12,444 root ERROR failed to start game due to error: list indices must be integers or slices, not str -10:04:12,445 root INFO connected users 2 -10:04:12,445 root INFO confirming login for user -10:04:12,445 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:04:12,445 root INFO Received message from ('127.0.0.1', 40672): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} diff --git a/OLD_Server/log/mjlawgym.log b/OLD_Server/log/mjlawgym.log deleted file mode 100644 index 6a8d90a..0000000 --- a/OLD_Server/log/mjlawgym.log +++ /dev/null @@ -1,35 +0,0 @@ -10:13:00,7 root INFO starting up server -10:13:00,8 root INFO starting up game manager -10:13:00,8 root INFO preparing to start server -10:13:00,8 root INFO starting up network manager -10:13:00,9 root INFO starting up network manager -10:13:00,9 root INFO starting up tcp server -10:13:00,11 root INFO starting up thread for client socket accepting -10:13:16,730 root INFO Connected with ('127.0.0.1', 40780) -10:13:16,731 root INFO starting client handler thread for client at address ('127.0.0.1', 40780) -10:13:16,732 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:13:16,733 root INFO user in message None -10:13:16,733 root INFO user logging in -10:13:16,734 root INFO task passed off to gameManager -10:13:16,734 root INFO creating user with id: > -10:13:16,735 root INFO new length of user dictionary: 1 -10:13:16,735 root INFO connected users 1 -10:13:16,737 root INFO confirming login for user -10:13:16,738 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:13:16,738 root INFO Received message from ('127.0.0.1', 40780): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:13:25,741 root INFO Connected with ('127.0.0.1', 40781) -10:13:25,741 root INFO starting client handler thread for client at address ('127.0.0.1', 40781) -10:13:25,773 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:13:25,775 root INFO user in message None -10:13:25,775 root INFO user logging in -10:13:25,776 root INFO task passed off to gameManager -10:13:25,779 root INFO creating user with id: > -10:13:25,780 root INFO new length of user dictionary: 2 -10:13:26,781 root INFO 2 players have join game starts -10:13:26,781 root INFO game manager is starting the game -10:13:26,783 root INFO connected users 2 -10:13:26,784 root INFO confirming login for user -10:13:26,784 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:13:26,784 root INFO Received message from ('127.0.0.1', 40781): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:13:50,23 root ERROR Connection with ('127.0.0.1', 40780) forcibly closed by remote host. -10:14:14,978 root ERROR Connection with ('127.0.0.1', 40781) forcibly closed by remote host. diff --git a/OLD_Server/log/ncyhufrr.log b/OLD_Server/log/ncyhufrr.log deleted file mode 100644 index 17a3e86..0000000 --- a/OLD_Server/log/ncyhufrr.log +++ /dev/null @@ -1,35 +0,0 @@ -10:05:33,787 root INFO starting up server -10:05:33,788 root INFO starting up game manager -10:05:33,788 root INFO preparing to start server -10:05:33,788 root INFO starting up network manager -10:05:33,788 root INFO starting up network manager -10:05:33,788 root INFO starting up tcp server -10:05:33,790 root INFO starting up thread for client socket accepting -10:05:41,185 root INFO Connected with ('127.0.0.1', 40678) -10:05:41,185 root INFO starting client handler thread for client at address ('127.0.0.1', 40678) -10:05:41,203 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:05:41,204 root INFO user in message None -10:05:41,204 root INFO user logging in -10:05:41,204 root INFO task passed off to gameManager -10:05:41,204 root INFO creating user with id: > -10:05:41,204 root INFO new length of user dictionary: 1 -10:05:41,205 root INFO connected users 1 -10:05:41,205 root INFO confirming login for user -10:05:41,206 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:05:41,206 root INFO Received message from ('127.0.0.1', 40678): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:05:47,221 root INFO Connected with ('127.0.0.1', 40680) -10:05:47,221 root INFO starting client handler thread for client at address ('127.0.0.1', 40680) -10:05:47,229 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:05:47,233 root INFO user in message None -10:05:47,234 root INFO user logging in -10:05:47,234 root INFO task passed off to gameManager -10:05:47,234 root INFO creating user with id: > -10:05:47,234 root INFO new length of user dictionary: 2 -10:05:48,235 root INFO 2 players have join game starts -10:05:48,236 root INFO game manager is starting the game -10:05:48,236 root ERROR failed to start game due to error: list indices must be integers or slices, not str -10:05:48,237 root ERROR failed to start game due to error: list indices must be integers or slices, not str -10:05:48,237 root INFO connected users 2 -10:05:48,237 root INFO confirming login for user -10:05:48,237 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:05:48,237 root INFO Received message from ('127.0.0.1', 40680): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} diff --git a/OLD_Server/log/oiaflmlv.log b/OLD_Server/log/oiaflmlv.log deleted file mode 100644 index 1b02e2b..0000000 --- a/OLD_Server/log/oiaflmlv.log +++ /dev/null @@ -1,34 +0,0 @@ -10:18:24,131 root INFO starting up server -10:18:24,131 root INFO starting up game manager -10:18:24,132 root INFO preparing to start server -10:18:24,132 root INFO starting up network manager -10:18:24,132 root INFO starting up network manager -10:18:24,133 root INFO starting up tcp server -10:18:24,135 root INFO starting up thread for client socket accepting -10:18:29,738 root INFO Connected with ('127.0.0.1', 10248) -10:18:29,738 root INFO starting client handler thread for client at address ('127.0.0.1', 10248) -10:18:29,741 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:18:29,741 root INFO user in message None -10:18:29,741 root INFO user logging in -10:18:29,741 root INFO task passed off to gameManager -10:18:29,742 root INFO creating user with id: > -10:18:29,742 root INFO new length of user dictionary: 1 -10:18:29,742 root INFO connected users 1 -10:18:29,742 root INFO confirming login for user -10:18:29,742 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:18:29,742 root INFO Received message from ('127.0.0.1', 10248): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:18:34,161 root INFO Connected with ('127.0.0.1', 10249) -10:18:34,163 root INFO starting client handler thread for client at address ('127.0.0.1', 10249) -10:18:34,182 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:18:34,182 root INFO user in message None -10:18:34,183 root INFO user logging in -10:18:34,183 root INFO task passed off to gameManager -10:18:34,183 root INFO creating user with id: > -10:18:34,184 root INFO new length of user dictionary: 2 -10:18:35,184 root INFO 2 players have join game starts -10:18:35,186 root INFO game manager is starting the game -10:18:35,187 root INFO connected users 2 -10:18:35,187 root INFO confirming login for user -10:18:35,187 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:18:35,188 root INFO Received message from ('127.0.0.1', 10249): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:18:48,867 root ERROR Connection with ('127.0.0.1', 10249) forcibly closed by remote host. diff --git a/OLD_Server/log/ooqpxwpe.log b/OLD_Server/log/ooqpxwpe.log deleted file mode 100644 index 75c8e7e..0000000 --- a/OLD_Server/log/ooqpxwpe.log +++ /dev/null @@ -1,41 +0,0 @@ -10:20:46,144 root INFO starting up server -10:20:46,144 root INFO starting up game manager -10:20:46,144 root INFO preparing to start server -10:20:46,145 root INFO starting up network manager -10:20:46,145 root INFO starting up network manager -10:20:46,145 root INFO starting up tcp server -10:20:46,146 root INFO starting up thread for client socket accepting -10:20:51,500 root INFO Connected with ('127.0.0.1', 10276) -10:20:51,501 root INFO starting client handler thread for client at address ('127.0.0.1', 10276) -10:20:51,515 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:20:51,515 root INFO user in message None -10:20:51,516 root INFO user logging in -10:20:51,516 root INFO task passed off to gameManager -10:20:51,517 root INFO creating user with id: > -10:20:51,517 root INFO new length of user dictionary: 1 -10:20:51,517 root INFO connected users 1 -10:20:51,518 root INFO confirming login for user -10:20:51,518 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:20:51,518 root INFO Received message from ('127.0.0.1', 10276): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:21:07,724 root INFO Connected with ('127.0.0.1', 10277) -10:21:07,725 root INFO starting client handler thread for client at address ('127.0.0.1', 10277) -10:21:07,751 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:21:07,752 root INFO user in message None -10:21:07,753 root INFO user logging in -10:21:07,753 root INFO task passed off to gameManager -10:21:07,753 root INFO creating user with id: > -10:21:07,753 root INFO new length of user dictionary: 2 -10:21:08,754 root INFO 2 players have join game starts -10:21:08,754 root INFO game manager is starting the game -10:21:08,756 root INFO connected users 2 -10:21:08,756 root INFO confirming login for user -10:21:08,756 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:21:08,756 root INFO Received message from ('127.0.0.1', 10277): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:21:10,800 root INFO decoded message {'event': 'placecard', 'card': 1, 'type': 'Monster', 'user': 848, 'x': 1120.0, 'y': 600.0} -10:21:10,801 root INFO user in message 848 -10:21:10,801 root INFO incommingevent {'event': 'placecard', 'card': 1, 'type': 'Monster', 'user': 848, 'x': 1120.0, 'y': 600.0} -10:21:10,801 root INFO send to client True -10:21:10,802 root INFO send to client False -10:21:10,802 root INFO Received message from ('127.0.0.1', 10277): {"event": "placecard", "card": 1, "type": "Monster", "user": 848, "x": 1120.0, "y": 600.0} -10:21:21,124 root ERROR Connection with ('127.0.0.1', 10277) forcibly closed by remote host. -10:21:21,148 root ERROR Connection with ('127.0.0.1', 10276) forcibly closed by remote host. diff --git a/OLD_Server/log/qrgtwasn.log b/OLD_Server/log/qrgtwasn.log deleted file mode 100644 index 3751ca7..0000000 --- a/OLD_Server/log/qrgtwasn.log +++ /dev/null @@ -1,35 +0,0 @@ -10:08:28,843 root INFO starting up server -10:08:28,843 root INFO starting up game manager -10:08:28,844 root INFO preparing to start server -10:08:28,844 root INFO starting up network manager -10:08:28,844 root INFO starting up network manager -10:08:28,844 root INFO starting up tcp server -10:08:28,846 root INFO starting up thread for client socket accepting -10:08:40,764 root INFO Connected with ('127.0.0.1', 40708) -10:08:40,764 root INFO starting client handler thread for client at address ('127.0.0.1', 40708) -10:08:40,785 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:08:40,787 root INFO user in message None -10:08:40,787 root INFO user logging in -10:08:40,788 root INFO task passed off to gameManager -10:08:40,789 root INFO creating user with id: > -10:08:40,789 root INFO new length of user dictionary: 1 -10:08:40,789 root INFO connected users 1 -10:08:40,790 root INFO confirming login for user -10:08:40,790 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:08:40,790 root INFO Received message from ('127.0.0.1', 40708): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:08:50,849 root INFO Connected with ('127.0.0.1', 40709) -10:08:50,850 root INFO starting client handler thread for client at address ('127.0.0.1', 40709) -10:08:50,865 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:08:50,866 root INFO user in message None -10:08:50,866 root INFO user logging in -10:08:50,866 root INFO task passed off to gameManager -10:08:50,867 root INFO creating user with id: > -10:08:50,868 root INFO new length of user dictionary: 2 -10:08:51,868 root INFO 2 players have join game starts -10:08:51,868 root INFO game manager is starting the game -10:08:51,868 root ERROR failed to start game due to error: list indices must be integers or slices, not str -10:08:51,869 root ERROR failed to start game due to error: list indices must be integers or slices, not str -10:08:51,869 root INFO connected users 2 -10:08:51,869 root INFO confirming login for user -10:08:51,869 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:08:51,869 root INFO Received message from ('127.0.0.1', 40709): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} diff --git a/OLD_Server/log/sxuostca.log b/OLD_Server/log/sxuostca.log deleted file mode 100644 index 3d78e83..0000000 --- a/OLD_Server/log/sxuostca.log +++ /dev/null @@ -1,40 +0,0 @@ -10:11:31,951 root INFO starting up server -10:11:31,951 root INFO starting up game manager -10:11:31,951 root INFO preparing to start server -10:11:31,952 root INFO starting up network manager -10:11:31,952 root INFO starting up network manager -10:11:31,952 root INFO starting up tcp server -10:11:31,953 root INFO starting up thread for client socket accepting -10:11:39,945 root INFO Connected with ('127.0.0.1', 40745) -10:11:39,945 root INFO starting client handler thread for client at address ('127.0.0.1', 40745) -10:11:39,959 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:11:39,960 root INFO user in message None -10:11:39,960 root INFO user logging in -10:11:39,960 root INFO task passed off to gameManager -10:11:39,960 root INFO creating user with id: > -10:11:39,961 root INFO new length of user dictionary: 1 -10:11:39,962 root INFO connected users 1 -10:11:39,962 root INFO confirming login for user -10:11:39,962 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:11:39,963 root INFO Received message from ('127.0.0.1', 40745): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:11:48,547 root INFO Connected with ('127.0.0.1', 40751) -10:11:48,547 root INFO starting client handler thread for client at address ('127.0.0.1', 40751) -10:11:48,578 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:11:48,578 root INFO user in message None -10:11:48,578 root INFO user logging in -10:11:48,579 root INFO task passed off to gameManager -10:11:48,579 root INFO creating user with id: > -10:11:48,579 root INFO new length of user dictionary: 2 -10:11:49,581 root INFO 2 players have join game starts -10:11:49,582 root INFO game manager is starting the game -10:11:49,585 root INFO connected users 2 -10:11:49,585 root INFO confirming login for user -10:11:49,586 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:11:49,586 root INFO Received message from ('127.0.0.1', 40751): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:12:17,219 root INFO decoded message {'event': 'placecard', 'card': 1, 'type': 'Monster', 'user': 56607, 'x': 386.0, 'y': 568.0} -10:12:17,219 root INFO user in message 56607 -10:12:17,219 root INFO incommingevent {'event': 'placecard', 'card': 1, 'type': 'Monster', 'user': 56607, 'x': 386.0, 'y': 568.0} -10:12:17,219 root INFO send to client False -10:12:17,219 root INFO send to client True -10:12:17,219 root INFO Received message from ('127.0.0.1', 40745): {"event": "placecard", "card": 1, "type": "Monster", "user": 56607, "x": 386.0, "y": 568.0} -10:12:26,488 root ERROR Connection with ('127.0.0.1', 40751) forcibly closed by remote host. diff --git a/OLD_Server/log/xtjfeaau.log b/OLD_Server/log/xtjfeaau.log deleted file mode 100644 index c37963a..0000000 --- a/OLD_Server/log/xtjfeaau.log +++ /dev/null @@ -1,35 +0,0 @@ -10:09:58,809 root INFO starting up server -10:09:58,809 root INFO starting up game manager -10:09:58,809 root INFO preparing to start server -10:09:58,809 root INFO starting up network manager -10:09:58,810 root INFO starting up network manager -10:09:58,810 root INFO starting up tcp server -10:09:58,812 root INFO starting up thread for client socket accepting -10:10:02,221 root INFO Connected with ('127.0.0.1', 40727) -10:10:02,221 root INFO starting client handler thread for client at address ('127.0.0.1', 40727) -10:10:02,225 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:10:02,225 root INFO user in message None -10:10:02,225 root INFO user logging in -10:10:02,226 root INFO task passed off to gameManager -10:10:02,226 root INFO creating user with id: > -10:10:02,226 root INFO new length of user dictionary: 1 -10:10:02,227 root INFO connected users 1 -10:10:02,227 root INFO confirming login for user -10:10:02,227 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:10:02,228 root INFO Received message from ('127.0.0.1', 40727): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:10:22,682 root INFO Connected with ('127.0.0.1', 40736) -10:10:22,682 root INFO starting client handler thread for client at address ('127.0.0.1', 40736) -10:10:22,709 root INFO decoded message {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:10:22,709 root INFO user in message None -10:10:22,710 root INFO user logging in -10:10:22,710 root INFO task passed off to gameManager -10:10:22,710 root INFO creating user with id: > -10:10:22,712 root INFO new length of user dictionary: 2 -10:10:23,713 root INFO 2 players have join game starts -10:10:23,714 root INFO game manager is starting the game -10:10:23,714 root ERROR failed to start game due to error: list indices must be integers or slices, not tuple -10:10:23,715 root ERROR failed to start game due to error: list indices must be integers or slices, not tuple -10:10:23,715 root INFO connected users 2 -10:10:23,715 root INFO confirming login for user -10:10:23,715 root INFO incommingevent {'event': 'login', 'username': 'player', 'deck': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} -10:10:23,715 root INFO Received message from ('127.0.0.1', 40736): {"event": "login", "username": "player", "deck": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]} diff --git a/OLD_Server/server logic notes.md b/OLD_Server/server logic notes.md deleted file mode 100644 index 7370d4a..0000000 --- a/OLD_Server/server logic notes.md +++ /dev/null @@ -1,42 +0,0 @@ -# validation for placing cards: -- is the game still running -- is it the players turn -- does the card exist -- does the player have that card in his deck -- does the player have this card in his hand -- is the type of card allowed in that type of field -- is the field already blocked by another card - -# validation for attacking another player -- is the game still running -- is it the players turn -- does the card exist -- does the player have that card in his deck -- is that card played -- does the enemy have remaining monster cards on his side - - if yes a direct attack would only be possible if a effect allows it -- can this card attack - - is the card of correct type - - is it blocked by effects (will be implemented after card effects are implemented) - -# player death management (win condition) -- does a players hp go to 0? - - make the other player the winner - - if an effect affects the playing player card priority comes first - -# handle a player leaving -- check if game still runs - - make remaining player win if yes - -# turn management -- server keeps track of each turn - - whos turn is it - - what turn state is currently active - - draw state - - place state - - is the player trying to do actions not allowed in the given state - -# drawing cards: -- ensure the player only can have 7 cards - - if limit exceeds the player payes lifepoints and drops a card -- ensure the drawn card for sure still can be in the players deck \ No newline at end of file