import json

action_format = {
    "选择的鱼": "选择我方仍活着的一条鱼",
    "动作": "选择主动技能或普通攻击",
    "目标位置": "目标位置，必须在 [0, 3] 范围内"
}

guess_format = {
    "猜测种类": "选择你想要猜测的种类",
    "目标位置": "目标位置，必须在 [0, 3] 范围内"
}

fish_description = {
    "射水鱼": {
        "被动技能": r"反弹：队友被直接攻击后，若其生命值少于30%，对来源造成60的伤害",
        "主动技能": r"范围伤害：对敌方所有目标发动攻击，每个造成35%攻击力的伤害"
    },
    "喷火鱼": {
        "被动技能": r"反弹：队友被直接攻击后，若其生命值少于30%，对来源造成60的伤害",
        "主动技能": r"内斗：对一名队友发动攻击造成75伤害，并使自身攻击力永久提升140"
    },
    "电鳗": {
        "被动技能": r"伤害转移：自身受到敌方直接攻击而受到伤害时，如果还有队友存活，会让队友帮忙承受伤害（自身承受70%，其余队友平摊30%）；每累计受到的实际伤害值达到200，自身攻击值永久提升40",
        "主动技能": r"范围伤害：对敌方所有目标发动攻击，每个造成35%攻击力的伤害"
    },
    "翻车鱼": {
        "被动技能": r"伤害转移：自身受到敌方直接攻击而受到伤害时，如果还有队友存活，会让队友帮忙承受伤害（自身承受70%，其余队友平摊30%）；每累计受到的实际伤害值达到200，自身攻击值永久提升40",
        "主动技能": r"内斗：对一名队友发动攻击造成75伤害，并使自身攻击力永久提升140"
    }
}

ACTION_PROMPT = """这是一个双人对战游戏，每队拥有四条宠物鱼。
每条鱼都有400初始生命值、200攻击力，以及自己的主动技能和被动技能。
每个回合，你可以选择一条活着的鱼，并且使用主动技能，或用普通攻击敌方鱼。
鱼的被动技能都会自动触发，只要被动技能条件满足。
%s
获胜的条件是在比赛结束时有更多的鱼活着。

以下是四种宠物鱼:
%s

与我一起进行对战。在每一轮中，你都应该输出你的思考过程，并用以下JSON格式返回你的动作:
%s

注意！你必须在每一轮中返回你的动作。否则，你将被直接判负。"""

GUESS_RULE = """你拥有的鱼的初始信息是隐藏的，敌方可以在每回合内猜测你的一条鱼的种类，如果敌方猜对了，你的那条鱼的种类将被揭示，并且你的所有鱼会受到50的伤害"""

GUESS_PROMPT = """这是一个双人对战游戏，每队拥有四条宠物鱼。
每条鱼都有初始生命值、攻击力，以及自己的主动技能和被动技能。
所有的鱼的初始信息是隐藏的，你可以在每回合内猜测敌方的一条鱼的种类，如果你猜对了，敌方那条鱼的种类将被揭示，并且敌方的所有鱼会受到50的伤害。
获胜的条件是在比赛结束时有更多的鱼活着。

以下是四种宠物鱼:
%s

与我一起进行对战。在每一轮中，你都应该输出你的思考过程，并用以下JSON格式返回你的动作:
%s

注意！你必须在每一轮中返回你的动作。否则，你将被直接判负。"""

ACTION_DESCRIPTION = {
    1: ACTION_PROMPT % ('', fish_description, action_format),
    2: ACTION_PROMPT % (GUESS_RULE, fish_description, action_format)
}

GUESS_DESCRIPTION = {
    2: GUESS_PROMPT % (fish_description, guess_format),
}