add elixir

This commit is contained in:
bridge
2026-01-05 22:26:16 +08:00
parent 96c43c7cf5
commit 2a68f352bc
7 changed files with 206 additions and 2 deletions

View File

@@ -52,6 +52,7 @@ class AvatarLoadMixin:
from src.classes.appearance import get_appearance_by_level
from src.classes.magic_stone import MagicStone
from src.classes.action_runtime import ActionPlan
from src.classes.elixir import elixirs_by_id, ConsumedElixir
# 重建基本对象
gender = Gender(data["gender"])
@@ -212,6 +213,16 @@ class AvatarLoadMixin:
# relations需要在外部单独重建因为需要所有avatar都加载完成
avatar.relations = {}
# 恢复丹药记录
elixir_list_data = data.get("elixirs", [])
avatar.elixirs = []
for elixir_data in elixir_list_data:
elixir_id = elixir_data["id"]
if elixir_id in elixirs_by_id:
elixir_obj = elixirs_by_id[elixir_id]
consume_time = elixir_data["time"]
avatar.elixirs.append(ConsumedElixir(elixir_obj, consume_time))
# 加载完成后重新计算effects确保数值正确
avatar.recalc_effects()

View File

@@ -107,5 +107,14 @@ class AvatarSaveMixin:
} if self.long_term_objective else None,
"_action_cd_last_months": self._action_cd_last_months,
"known_regions": list(self.known_regions),
# 丹药
"elixirs": [
{
"id": consumed.elixir.id,
"time": consumed.consume_time
}
for consumed in self.elixirs
],
}