update
This commit is contained in:
@@ -25,6 +25,9 @@ class Attack(MutualAction):
|
|||||||
|
|
||||||
def _can_start(self, target: "Avatar") -> tuple[bool, str]:
|
def _can_start(self, target: "Avatar") -> tuple[bool, str]:
|
||||||
"""攻击无额外检查条件"""
|
"""攻击无额外检查条件"""
|
||||||
|
from src.classes.observe import is_within_observation
|
||||||
|
if not is_within_observation(self.avatar, target):
|
||||||
|
return False, "目标不在交互范围内"
|
||||||
return True, ""
|
return True, ""
|
||||||
|
|
||||||
def _settle_feedback(self, target_avatar: "Avatar", feedback_name: str) -> None:
|
def _settle_feedback(self, target_avatar: "Avatar", feedback_name: str) -> None:
|
||||||
|
|||||||
@@ -23,6 +23,9 @@ class DriveAway(MutualAction):
|
|||||||
|
|
||||||
def _can_start(self, target: "Avatar") -> tuple[bool, str]:
|
def _can_start(self, target: "Avatar") -> tuple[bool, str]:
|
||||||
"""驱赶无额外检查条件"""
|
"""驱赶无额外检查条件"""
|
||||||
|
from src.classes.observe import is_within_observation
|
||||||
|
if not is_within_observation(self.avatar, target):
|
||||||
|
return False, "目标不在交互范围内"
|
||||||
return True, ""
|
return True, ""
|
||||||
|
|
||||||
def _settle_feedback(self, target_avatar: "Avatar", feedback_name: str) -> None:
|
def _settle_feedback(self, target_avatar: "Avatar", feedback_name: str) -> None:
|
||||||
|
|||||||
@@ -34,6 +34,10 @@ class GiftSpiritStone(MutualAction):
|
|||||||
|
|
||||||
def _can_start(self, target: "Avatar") -> tuple[bool, str]:
|
def _can_start(self, target: "Avatar") -> tuple[bool, str]:
|
||||||
"""检查赠送灵石的启动条件"""
|
"""检查赠送灵石的启动条件"""
|
||||||
|
from src.classes.observe import is_within_observation
|
||||||
|
if not is_within_observation(self.avatar, target):
|
||||||
|
return False, "目标不在交互范围内"
|
||||||
|
|
||||||
# 检查发起者的灵石是否足够
|
# 检查发起者的灵石是否足够
|
||||||
if self.avatar.magic_stone < self.GIFT_AMOUNT:
|
if self.avatar.magic_stone < self.GIFT_AMOUNT:
|
||||||
return False, f"灵石不足(当前:{self.avatar.magic_stone},需要:{self.GIFT_AMOUNT})"
|
return False, f"灵石不足(当前:{self.avatar.magic_stone},需要:{self.GIFT_AMOUNT})"
|
||||||
|
|||||||
@@ -37,6 +37,10 @@ class Impart(MutualAction):
|
|||||||
|
|
||||||
def _can_start(self, target: "Avatar") -> tuple[bool, str]:
|
def _can_start(self, target: "Avatar") -> tuple[bool, str]:
|
||||||
"""检查传道特有的启动条件"""
|
"""检查传道特有的启动条件"""
|
||||||
|
from src.classes.observe import is_within_observation
|
||||||
|
if not is_within_observation(self.avatar, target):
|
||||||
|
return False, "目标不在交互范围内"
|
||||||
|
|
||||||
# 检查是否是师徒关系:师傅对徒弟的关系应该是 MASTER
|
# 检查是否是师徒关系:师傅对徒弟的关系应该是 MASTER
|
||||||
relation = self.avatar.get_relation(target)
|
relation = self.avatar.get_relation(target)
|
||||||
if relation != Relation.MASTER:
|
if relation != Relation.MASTER:
|
||||||
|
|||||||
@@ -155,10 +155,6 @@ class MutualAction(DefineAction, LLMAction, TargetingMixin):
|
|||||||
target = self._get_target_avatar(target_avatar)
|
target = self._get_target_avatar(target_avatar)
|
||||||
if target is None:
|
if target is None:
|
||||||
return False, "目标不存在"
|
return False, "目标不存在"
|
||||||
from src.classes.observe import is_within_observation
|
|
||||||
ok = is_within_observation(self.avatar, target)
|
|
||||||
if not ok:
|
|
||||||
return False, "目标不在交互范围内"
|
|
||||||
# 调用子类的额外检查
|
# 调用子类的额外检查
|
||||||
return self._can_start(target)
|
return self._can_start(target)
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,9 @@ class Talk(MutualAction):
|
|||||||
|
|
||||||
def _can_start(self, target: "Avatar") -> tuple[bool, str]:
|
def _can_start(self, target: "Avatar") -> tuple[bool, str]:
|
||||||
"""攀谈无额外检查条件"""
|
"""攀谈无额外检查条件"""
|
||||||
|
from src.classes.observe import is_within_observation
|
||||||
|
if not is_within_observation(self.avatar, target):
|
||||||
|
return False, "目标不在交互范围内"
|
||||||
return True, ""
|
return True, ""
|
||||||
|
|
||||||
def _handle_feedback_result(self, target: "Avatar", result: dict) -> ActionResult:
|
def _handle_feedback_result(self, target: "Avatar", result: dict) -> ActionResult:
|
||||||
|
|||||||
Reference in New Issue
Block a user