Files
cultivation-world-simulator/src/classes/action/devour_mortals.py
2025-10-05 02:34:08 +08:00

47 lines
1.5 KiB
Python

from __future__ import annotations
from src.classes.action import TimedAction
from src.classes.event import Event
from src.classes.region import CityRegion
from src.classes.alignment import Alignment
from src.classes.technique import TechniqueAttribute
class DevourMortals(TimedAction):
"""
吞噬凡人:仅邪阵营可在城市区域执行,获得大量修炼经验。
与普通修炼相比,经验获取显著更高。
"""
COMMENT = "在城镇吞噬凡人,获得大量修行经验(邪功法)"
DOABLES_REQUIREMENTS = "仅限城市区域,且当前功法为‘邪’,且未处于瓶颈"
PARAMS = {}
duration_months = 2
EXP_GAIN = 2000
def _execute(self) -> None:
region = self.avatar.tile.region
if not isinstance(region, CityRegion):
return
if self.avatar.cultivation_progress.is_in_bottleneck():
return
self.avatar.cultivation_progress.add_exp(self.EXP_GAIN)
def can_start(self) -> bool:
region = self.avatar.tile.region
if not isinstance(region, CityRegion):
return False
tech = self.avatar.technique
if tech.attribute != TechniqueAttribute.EVIL:
return False
return not self.avatar.cultivation_progress.is_in_bottleneck()
def start(self) -> Event:
return Event(self.world.month_stamp, f"{self.avatar.name} 在城镇开始吞噬凡人")
def finish(self) -> list[Event]:
return []