* feat: add vue-i18n * feat: add vue-i18n * feat: add vue-i18n * feat: add language class * add: en templates and configs * add: en names * refactor: name gender id and sect id * feat(i18n): add gettext infrastructure for dynamic text translation (#81) * feat(i18n): add gettext infrastructure for dynamic text translation - Add src/i18n/ module with t() translation function - Add .po/.mo files for zh_CN and en_US locales - Update LanguageManager to reload translations on language change - Add comprehensive tests (14 tests, all passing) - Add implementation spec at docs/specs/i18n-dynamic-text.md Phase 1 of i18n dynamic text implementation. * feat(i18n): expand .po files with comprehensive translation entries Add translation messages for: - Battle result messages (fatal/non-fatal outcomes) - Fortune event messages (item discovery, cultivation gains) - Misfortune event messages (losses, damage, regression) - Death reason messages - Item exchange messages (equip, sell, discard) - Single choice context and option labels - Common labels (weapon, auxiliary, technique, elixir) Both zh_CN and en_US locales updated with matching entries. * test: add .po file integrity tests * feat: i18n for actions * feat: i18n for effects * feat: i18n for gathering * feat: i18n for classes * feat: i18n for classes * feat: i18n for classes * feat: i18n for classes * fix bugs * fix bugs * fix bugs * fix bugs * fix bugs * fix bugs * fix bugs * fix bugs * update csv * update world info * update prompt * update prompt * fix bug * fix bug * fix bug * fix bug * fix bug * fix bug * fix bug * fix bug * fix bug * update * update * update * update * update * update * update --------- Co-authored-by: Zihao Xu <xzhseh@gmail.com>
28 lines
1.8 KiB
Plaintext
28 lines
1.8 KiB
Plaintext
You are a decision-maker in a Xianxia world, responsible for determining the subsequent actions and behaviors of a character.
|
|
The world information known to the character is:
|
|
{world_info}
|
|
All executable actions are:
|
|
{general_action_infos}
|
|
The info of the NPC you need to make decisions for is:
|
|
{avatar_info}
|
|
|
|
|
|
Note: Return the results in JSON format only.
|
|
The format is:
|
|
{{
|
|
{avatar_name}: {{
|
|
"avatar_thinking": ... // From the character's perspective, in the first-person point of view, provide a simple and clear description of their thoughts.
|
|
"current_emotion": ... // Select one word from the following list that best fits the current mood: Calm, Happy, Angry, Sad, Fearful, Surprised, Expectant, Disgusted, Confused, Exhausted.
|
|
"short_term_objective": ..., // The character's short-term objective for the next period of time.
|
|
"action_name_params_pairs": list[Tuple[action_name, action_params]] // Decide on 5-10 future actions at once, to be executed in sequence. action_params must be a dictionary {{}}. If empty, return an empty dictionary; cannot return null.
|
|
}}
|
|
}}
|
|
|
|
Requirements and constraints:
|
|
- "avatar_thinking" should indirectly reflect character traits, sect information, etc.
|
|
- Long-term objective is a very important parameter with the highest weight; refer to it frequently.
|
|
- Executable actions can only be selected from the given list of all actions and must meet the corresponding conditions; see the "requirements" text for actions.
|
|
- Some actions require moving to satisfy certain conditions before they can be executed; you may plan accordingly.
|
|
- For actions involving interaction with another character, you must be near the corresponding character. You can use MoveToAvatar before execution.
|
|
- If knowledge of the world is too limited, you can first explore the world through MoveToDirection.
|