Files
Elvenbane/eb_objects.py
2026-02-20 02:09:43 +03:00

62 lines
1.4 KiB
Python

from common import deepcopy, dataclass, field
@dataclass
class Object:
id: str
name: str
sprite_name: str
sprite_state: int = 0
# current_map
# pos
# weight
# effects = {}
def draw(self, draw_data):
if draw_data["spr_up"] == 0:
if self.sprite_state == len(draw_data["sprites"][self.sprite_name]) - 1:
self.sprite_state = 0
else:
self.sprite_state += 1
sp = draw_data["sprites"][self.sprite_name][self.sprite_state]
rect = sp.get_rect(center = (draw_data["x"] + draw_data["w"] /2, draw_data["y"] + draw_data["h"]/ 2))
draw_data["screen"].blit(sp, rect)
def update(self):
pass
@dataclass
class Terrain(Object):
pass
@dataclass
class Creature(Object):
waypoints: list = field(default_factory = list)
quick_actions: list = field(default_factory = list)
tasks: list = field(default_factory = list)
inventory: dict = field(default_factory = dict)
def update(self):
pass
def move(self, cells, start, goal):
from common import find_way
self.waypoints = find_way(cells, start, goal)
@dataclass
class Item(Object):
# passive_abilities = {}
# active_abilities = {}
pass
@dataclass
class Container(Item):
# content = {}
pass
@dataclass
class Building(Object):
pass