engines.naninovel.sentence_generators.effect_generator 源代码

from core.base_sentence_generator import BaseSentenceGenerator


[文档] class EffectGenerator(BaseSentenceGenerator): param_config = { "PackedEffect": { "translate_type": "PackedEffect" }, "Effect": { "translate_type": "Effect" }, "EffectId": { "translate_type": "Id", }, "EffectAtr1": { }, "EffectAtr2": { }, "Power": { "format": " power:{value}" }, "EffectTime": { "format": " time:{value}", "default": "1" }, "EffectWait": { "format": " wait:{value}", }, } @property def category(self): return "Effect" @property def priority(self) -> int: return 120
[文档] def process(self, data): if not self.can_process(data): return data = self.do_translate(data) lines = [] if self.exists_param("PackedEffect", data): packed_effect = self.get_value("PackedEffect", data) return [packed_effect] if self.exists_param("Effect", data): effect = self.get_value("Effect", data) id_ = self.get_value("EffectId", data) time = self.get_sentence("EffectTime", data) wait = self.get_sentence("EffectWait", data) match effect: case "blur": power = self.get_sentence("EffectPower", data) line = f"@blur {id_}{power}{wait}{time}" case "shake": power = self.get_sentence("EffectPower", data) count = f" count:{self.get_value('EffectAtr1', data)}" line = f"@shake {id_}{power}{count}{wait}{time}" case _: line = "" lines.append(line) return lines