added old code, fixed it (mostly), merged some new code to the old code, made it mostly runnable
This commit is contained in:
105
Client/Classes/Game/Cards/Card.py
Normal file
105
Client/Classes/Game/Cards/Card.py
Normal file
@ -0,0 +1,105 @@
|
||||
import json
|
||||
import pygame
|
||||
|
||||
from Classes.System.Components.InputHandler import InputHandler
|
||||
from Classes.Game.Player import Player
|
||||
|
||||
class Card(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
|
||||
__state:str
|
||||
image:pygame.image
|
||||
rect:pygame.rect
|
||||
|
||||
def __init__(self, pos: pygame.Vector2, assetDir: str, inputHandler: InputHandler, owner: Player):
|
||||
if assetDir == "":
|
||||
raise ValueError("Card: imagePath cannot be empty")
|
||||
|
||||
pygame.sprite.Sprite.__init__(self)
|
||||
|
||||
with open(assetDir + "/card.json", 'r') as file:
|
||||
data = json.load(file)
|
||||
|
||||
self.__owner = owner
|
||||
self.__id = int(data["id"])
|
||||
self.__pos = pos
|
||||
self.__name = data["name"]
|
||||
self.__type = data.get("type")
|
||||
self.image = pygame.image.load(assetDir + "/card.png").convert_alpha()
|
||||
self.rect = self.image.get_rect()
|
||||
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
|
||||
self.__state = "onHand"
|
||||
self.__type = "Monster"
|
||||
|
||||
self.__attacks = []
|
||||
for attack in data.get("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) -> pygame.Vector2:
|
||||
return self.__pos
|
||||
|
||||
def getX(self) -> int:
|
||||
return self.__pos.x
|
||||
|
||||
def getY(self) -> int:
|
||||
return self.__pos.y
|
||||
|
||||
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
|
88
Client/Classes/Game/Cards/MonsterCard.py
Normal file
88
Client/Classes/Game/Cards/MonsterCard.py
Normal file
@ -0,0 +1,88 @@
|
||||
import json
|
||||
import pygame
|
||||
|
||||
from Classes.System.Components.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
|
72
Client/Classes/Game/Cards/SpellCard.py
Normal file
72
Client/Classes/Game/Cards/SpellCard.py
Normal file
@ -0,0 +1,72 @@
|
||||
import json
|
||||
from typing import Any
|
||||
|
||||
import pygame
|
||||
|
||||
from Classes.System.Components.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
|
72
Client/Classes/Game/Cards/TrapCard.py
Normal file
72
Client/Classes/Game/Cards/TrapCard.py
Normal file
@ -0,0 +1,72 @@
|
||||
import json
|
||||
from typing import Any
|
||||
|
||||
import pygame
|
||||
|
||||
from Classes.System.Components.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
|
BIN
Client/Classes/Game/Cards/__pycache__/Card.cpython-311.pyc
Normal file
BIN
Client/Classes/Game/Cards/__pycache__/Card.cpython-311.pyc
Normal file
Binary file not shown.
BIN
Client/Classes/Game/Cards/__pycache__/Card.cpython-312.pyc
Normal file
BIN
Client/Classes/Game/Cards/__pycache__/Card.cpython-312.pyc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Client/Classes/Game/Cards/__pycache__/SpellCard.cpython-311.pyc
Normal file
BIN
Client/Classes/Game/Cards/__pycache__/SpellCard.cpython-311.pyc
Normal file
Binary file not shown.
BIN
Client/Classes/Game/Cards/__pycache__/SpellCard.cpython-312.pyc
Normal file
BIN
Client/Classes/Game/Cards/__pycache__/SpellCard.cpython-312.pyc
Normal file
Binary file not shown.
BIN
Client/Classes/Game/Cards/__pycache__/TrapCard.cpython-311.pyc
Normal file
BIN
Client/Classes/Game/Cards/__pycache__/TrapCard.cpython-311.pyc
Normal file
Binary file not shown.
BIN
Client/Classes/Game/Cards/__pycache__/TrapCard.cpython-312.pyc
Normal file
BIN
Client/Classes/Game/Cards/__pycache__/TrapCard.cpython-312.pyc
Normal file
Binary file not shown.
Reference in New Issue
Block a user