import random
from core.event_bus import EventBus
from entities.item import GroundItem
class LootSystem:
DROP_CHANCE = 0.35
def __init__(self, events: EventBus) -> None:
self.events = events
events.subscribe("enemy_killed", self._on_enemy_killed)
def _on_enemy_killed(self, enemy, killer, **kw) -> None:
if random.random() > self.DROP_CHANCE:
return
if random.random() < 0.25:
item = GroundItem(
enemy.x,
enemy.y,
item_id="sword_1",
label="Меч",
color=(180, 180, 220),
)
else:
item = GroundItem(enemy.x, enemy.y, item_id="potion", label="Зелье HP")
self.events.emit("item_dropped", item=item)
import random
from core.event_bus import EventBus
from entities.item import GroundItem
class LootSystem:
DROP_CHANCE = 0.35
def __init__(self, events: EventBus) -> None:
self.events = events
events.subscribe("enemy_killed", self._on_enemy_killed)
def _on_enemy_killed(self, enemy, killer, **kw) -> None:
if random.random() > self.DROP_CHANCE:
return
if random.random() < 0.25:
item = GroundItem(
enemy.x,
enemy.y,
item_id="sword_1",
label="Меч",
color=(180, 180, 220),
)
else:
item = GroundItem(enemy.x, enemy.y, item_id="potion", label="Зелье HP")
self.events.emit("item_dropped", item=item)