added some tools to server, removed deprecated

code and adjusted entity, game, and event files to
work with items being mandatory for entities.
This commit is contained in:
2026-01-30 18:14:05 +01:00
parent 13488e1c2d
commit 5fef91e110
5 changed files with 196 additions and 78 deletions

View File

@@ -1,6 +1,6 @@
# Game imports
from serializable import Serializable
from dice import Dice
from utils.serializable import Serializable
from utils.dice import Dice
from events.event import Event
from entities.player import Player
from entities.npc import NPC
@@ -11,13 +11,13 @@ from events.turn import TurnAction
from enum import IntEnum
class Stat(IntEnum):
STRENGTH = 0,
INTELLIGENCE = 1,
DEXTERITY = 2,
WISDOM = 3,
CHARISMA = 4,
HP = 5,
ARMOR = 6,
STRENGTH = 0
INTELLIGENCE = 1
DEXTERITY = 2
WISDOM = 3
CHARISMA = 4
HP = 5
ARMOR = 6
SPEED = 7
class Game(Serializable):
@@ -42,7 +42,7 @@ class Game(Serializable):
return player
raise ReferenceError(f"The player #{player_id} doesn't exist!")
def create_player(self, name:str, strength:int, dexterity:int, intelligence:int, wisdom:int, charisma:int, hp:int, armor:int, speed:int, equipped_item:Item=None):
def create_player(self, name:str, strength:int, dexterity:int, intelligence:int, wisdom:int, charisma:int, hp:int, armor:int, speed:int, equipped_item:Item):
new_player = Player(name, strength, dexterity, intelligence, wisdom, charisma, hp, armor, speed, equipped_item)
self.active_players.append(new_player)
return new_player.id
@@ -53,9 +53,9 @@ class Game(Serializable):
return npc
raise ReferenceError(f"The npc #{npc_id} doesn't exist!")
def create_npc(self, name:str, strength:int, dexterity:int, intelligence:int, wisdom:int, charisma:int, hp:int, armor:int, speed:int, equipped_item:Item=None):
def create_npc(self, name:str, strength:int, dexterity:int, intelligence:int, wisdom:int, charisma:int, hp:int, armor:int, speed:int, equipped_item:Item):
new_npc = NPC(name, strength, dexterity, intelligence, wisdom, charisma, hp, armor, speed, equipped_item)
self.active_players.append(new_npc)
self.active_npcs.append(new_npc)
return new_npc.id
def get_item(self, item_id:str):
@@ -162,12 +162,12 @@ class Game(Serializable):
elif stat == Stat.DEXTERITY: # Using daggers, bows or throws
dmg_amount += (roll * 5 / target_entity.get_armor()) * src_entity.get_dexterity()
target_entity.deal_damage(dmg_amount)
target_entity.deal_damage(int(dmg_amount))
additional_info = f"; {target_entity.name}({target_entity.get_id()}) took {dmg_amount} damage, {target_entity.get_hp()}hp remaining!"
if target_entity.get_hp() <= 0:
self.kill_entity(target_entity)
self.kill_entity(target_entity.get_id())
additional_info = f"; {target_entity.name}({target_entity.get_id()}) took {dmg_amount} damage, {target_entity.name} died!"
turn_finished = self.get_current_event().perform_action(TurnAction.DAMAGE, src, description=description+additional_info)