Commit 6fca44af authored by mercury233's avatar mercury233

update dialogues

parent 43590bd6
{ {
"welcome": [
"本小姐是最强的!",
"AI功能正在测试中,遇到问题请及时反馈。",
"人家终于想起来怎么用坑了~"
],
"duelstart": [ "duelstart": [
"本小姐是最强的!" "让我把你冻结!"
], ],
"newturn": [ "newturn": [
"雅达,该我抽卡了", "我不会算数,解不了构向胜利的方程式……",
"我的回合,抽卡", "我的回合,抽卡!"
"么么哒,神抽了"
], ],
"endturn": [ "endturn": [
"就这样被你征服,喝下你藏好的毒,我的回合已结束,我的坑等着你入", "饶你一命!"
"哎,俺的,买,忒嗯",
"轮到你了,快点出牌,人家等的好急"
], ],
"directattack": [ "directattack": [
"{0},直接攻击!", "{0},直接攻击!",
"{0},直接攻击对手!", "弱小就要挨打!",
"{0},没有防守的地方,攻击!", "懒得算数了,打了再说!",
"{0},攻击对手的生命值!", "超⑨武神霸斩!"
"{0},直接攻击对手的生命值!",
"{0},通过直接攻击打倒对手!",
"{0},使用直接攻击打倒对手!",
"{0},直接攻击释放你的力量吧!",
"我的 {0} 将会粉碎你的生命值!",
"向对手展示你的力量吧,{0}!",
"你已经无法阻止我了。{0},攻击!"
], ],
"attack": [ "attack": [
"{0},攻击这只 {1}!", "{0},攻击这只{1}!",
"{0},消灭这只 {1}!", "{0},消灭这只{1}!",
"{0},打倒 {1}!", "{0},打倒{1}!",
"{0},冲向那只 {1}!", "{0},冲向那只{1}!"
"{0},把你的力量释放到 {1} 上吧!" ],
"ondirectattack": [
"别开玩笑了~。你这种人,就让我把你和英吉利牛肉一起冷冻保存好了!!",
"一只小小的{0},有什么可怕!",
"笨蛋是不会感冒的!"
], ],
"facedownmonstername": "怪兽", "facedownmonstername": "怪兽",
"activate": [ "activate": [
"我发动 {0}", "我发动{0}。",
"我使用 {0} 的效果", "我使用{0}的效果。",
"我使用 {0} 的力量" "我使用{0}的力量。"
], ],
"summon": [ "summon": [
"我召唤 {0}", "我召唤{0}。",
"出来吧,{0}!", "出来吧,{0}!",
"出现吧,{0}!", "出现吧,{0}!",
"我召唤了强大的 {0}", "我呼唤出{0}。"
"我呼唤 {0} 参加战斗!",
"我呼唤出 {0}",
"让我召唤 {0}"
], ],
"setmonster": [ "setmonster": [
"我放置了一只怪兽", "我放置了一只怪兽",
"不给你看,哼", "不给你看,哼~",
"我放置了一只迷之怪兽" "我放置了一只迷之怪兽~"
], ],
"chaining": [ "chaining": [
"看这里!我发动 {0}", "看这里!我发动{0}!",
"我使用 {0} 的力量", "我使用{0}的力量。",
"准备!我使用 {0}",
"畏惧我的{0}吧!", "畏惧我的{0}吧!",
"看样子你忘了我的 {0}", "看样子你忘了我的{0}!",
"你考虑过我有 {0} 吗?" "你考虑过我有{0}吗?"
] ]
} }
{ {
"welcome": [
"Hi, I'm Windbot."
],
"duelstart": [ "duelstart": [
"Good luck, have fun." "Good luck, have fun."
], ],
...@@ -32,6 +35,11 @@ ...@@ -32,6 +35,11 @@
"{0}, strike that {1}!", "{0}, strike that {1}!",
"{0}, unleash your power on this {1}!" "{0}, unleash your power on this {1}!"
], ],
"ondirectattack": [
"Ahhhhh...",
"Just {0} ...",
"Think you can defeat me?"
],
"activate": [ "activate": [
"I'm activating {0}.", "I'm activating {0}.",
"I'm using the effect of {0}.", "I'm using the effect of {0}.",
......
{ {
"welcome": [
"你好,我是一个机器人。",
"AI功能正在测试中,遇到问题请及时反馈。",
"不要再幻想我会进化成LV6了。不过听说过几天会出现比我强的家伙。"
],
"duelstart": [ "duelstart": [
"好戏才正要开始呢!", "好戏才正要开始呢!",
"用决斗带来笑容吧!" "用决斗带来笑容吧!"
], ],
"newturn": [ "newturn": [
"到我的回合了,抽卡", "到我的回合了,抽卡",
"我的回合,抽卡", "我的回合,抽卡",
"我抽了一张卡" "我抽了一张卡"
], ],
"endturn": [ "endturn": [
"回合结束", "回合结束",
"我的回合结束了", "我的回合结束了",
"轮到你了" "轮到你了"
], ],
"directattack": [ "directattack": [
"{0},直接攻击!", "{0},直接攻击!",
...@@ -22,43 +27,47 @@ ...@@ -22,43 +27,47 @@
"{0},通过直接攻击打倒对手!", "{0},通过直接攻击打倒对手!",
"{0},使用直接攻击打倒对手!", "{0},使用直接攻击打倒对手!",
"{0},直接攻击释放你的力量吧!", "{0},直接攻击释放你的力量吧!",
"我的 {0} 将会粉碎你的生命值!", "我的{0}将会粉碎你的生命值!",
"向对手展示你的力量吧,{0}!", "向对手展示你的力量吧,{0}!",
"你已经无法阻止我了。{0},攻击!" "你已经无法阻止我了。{0},攻击!"
], ],
"attack": [ "attack": [
"{0},攻击这只 {1}!", "{0},攻击这只{1}!",
"{0},消灭这只 {1}!", "{0},消灭这只{1}!",
"{0},打倒 {1}!", "{0},打倒{1}!",
"{0},冲向那只 {1}!", "{0},冲向那只{1}!",
"{0},把你的力量释放到 {1} 上吧!" "{0},把你的力量释放到{1}上吧!"
],
"ondirectattack": [
"可恶……",
"不过是{0}而已!",
"你以为这样就能打倒我吗?"
], ],
"facedownmonstername": "怪兽", "facedownmonstername": "怪兽",
"activate": [ "activate": [
"我发动 {0}", "我发动{0}。",
"我使用 {0} 的效果", "我使用{0}的效果。",
"我使用 {0} 的力量" "我使用{0}的力量。"
], ],
"summon": [ "summon": [
"我召唤 {0}", "我召唤{0}。",
"出来吧,{0}!", "出来吧,{0}!",
"出现吧,{0}!", "出现吧,{0}!",
"我召唤了强大的 {0}", "我召唤了强大的{0}!",
"我呼唤 {0} 参加战斗!", "我呼唤{0}参加战斗!",
"我呼唤出 {0}", "我呼唤出{0}。",
"让我召唤 {0}" "让我召唤{0}。"
], ],
"setmonster": [ "setmonster": [
"我放置了一只怪兽", "我放置了一只怪兽。",
"我里侧表示放置了一只怪兽", "我里侧表示放置了一只怪兽。"
"我放置了一只迷之怪兽"
], ],
"chaining": [ "chaining": [
"看这里!我发动 {0}", "看这里!我发动{0}!",
"我使用 {0} 的力量", "我使用{0}的力量。",
"准备!我使用 {0}", "准备!我使用{0}!",
"我不认同。{0},发动!", "我不认同。{0},发动!",
"看样子你忘了我的 {0}", "看样子你忘了我的{0}!",
"你考虑过我有 {0} 吗?" "你考虑过我有{0}吗?"
] ]
} }
...@@ -9,6 +9,8 @@ namespace WindBot.Game.AI ...@@ -9,6 +9,8 @@ namespace WindBot.Game.AI
[DataContract] [DataContract]
public class DialogsData public class DialogsData
{ {
[DataMember]
public string[] welcome { get; set; }
[DataMember] [DataMember]
public string[] duelstart { get; set; } public string[] duelstart { get; set; }
[DataMember] [DataMember]
...@@ -20,6 +22,8 @@ namespace WindBot.Game.AI ...@@ -20,6 +22,8 @@ namespace WindBot.Game.AI
[DataMember] [DataMember]
public string[] attack { get; set; } public string[] attack { get; set; }
[DataMember] [DataMember]
public string[] ondirectattack { get; set; }
[DataMember]
public string facedownmonstername { get; set; } public string facedownmonstername { get; set; }
[DataMember] [DataMember]
public string[] activate { get; set; } public string[] activate { get; set; }
...@@ -34,11 +38,13 @@ namespace WindBot.Game.AI ...@@ -34,11 +38,13 @@ namespace WindBot.Game.AI
{ {
private GameClient _game; private GameClient _game;
private string[] _welcome;
private string[] _duelstart; private string[] _duelstart;
private string[] _newturn; private string[] _newturn;
private string[] _endturn; private string[] _endturn;
private string[] _directattack; private string[] _directattack;
private string[] _attack; private string[] _attack;
private string[] _ondirectattack;
private string _facedownmonstername; private string _facedownmonstername;
private string[] _activate; private string[] _activate;
private string[] _summon; private string[] _summon;
...@@ -52,11 +58,13 @@ namespace WindBot.Game.AI ...@@ -52,11 +58,13 @@ namespace WindBot.Game.AI
using (FileStream fs = File.OpenRead("Dialogs/" + Environment.GetEnvironmentVariable("YGOPRO_DIALOG") + ".json")) using (FileStream fs = File.OpenRead("Dialogs/" + Environment.GetEnvironmentVariable("YGOPRO_DIALOG") + ".json"))
{ {
DialogsData data = (DialogsData)serializer.ReadObject(fs); DialogsData data = (DialogsData)serializer.ReadObject(fs);
_welcome = data.welcome;
_duelstart = data.duelstart; _duelstart = data.duelstart;
_newturn = data.newturn; _newturn = data.newturn;
_endturn = data.endturn; _endturn = data.endturn;
_directattack = data.directattack; _directattack = data.directattack;
_attack = data.attack; _attack = data.attack;
_ondirectattack = data.ondirectattack;
_facedownmonstername = data.facedownmonstername; _facedownmonstername = data.facedownmonstername;
_activate = data.activate; _activate = data.activate;
_summon = data.summon; _summon = data.summon;
...@@ -65,6 +73,11 @@ namespace WindBot.Game.AI ...@@ -65,6 +73,11 @@ namespace WindBot.Game.AI
} }
} }
public void SendWelcome()
{
InternalSendMessage(_welcome);
}
public void SendDuelStart() public void SendDuelStart()
{ {
InternalSendMessage(_duelstart); InternalSendMessage(_duelstart);
...@@ -94,6 +107,11 @@ namespace WindBot.Game.AI ...@@ -94,6 +107,11 @@ namespace WindBot.Game.AI
InternalSendMessage(_attack, attacker, defender); InternalSendMessage(_attack, attacker, defender);
} }
public void SendOnDirectAttack(string attacker)
{
InternalSendMessage(_ondirectattack, attacker);
}
public void SendActivate(string spell) public void SendActivate(string spell)
{ {
InternalSendMessage(_activate, spell); InternalSendMessage(_activate, spell);
......
...@@ -22,6 +22,14 @@ namespace WindBot.Game ...@@ -22,6 +22,14 @@ namespace WindBot.Game
_dialogs = new Dialogs(game); _dialogs = new Dialogs(game);
} }
/// <summary>
/// Called when the AI join the game.
/// </summary>
public void OnJoinGame()
{
_dialogs.SendWelcome();
}
/// <summary> /// <summary>
/// Called when the duel starts. /// Called when the duel starts.
/// </summary> /// </summary>
...@@ -59,6 +67,14 @@ namespace WindBot.Game ...@@ -59,6 +67,14 @@ namespace WindBot.Game
_dialogs.SendNewTurn(); _dialogs.SendNewTurn();
} }
/// <summary>
/// Called when the AI got attack directly.
/// </summary>
public void OnDirectAttack(ClientCard card)
{
_dialogs.SendOnDirectAttack(card.Name);
}
/// <summary> /// <summary>
/// Called when a chain is executed. /// Called when a chain is executed.
/// </summary> /// </summary>
......
...@@ -86,6 +86,7 @@ namespace WindBot.Game ...@@ -86,6 +86,7 @@ namespace WindBot.Game
_messages.Add(GameMessage.Recover, OnRecover); _messages.Add(GameMessage.Recover, OnRecover);
_messages.Add(GameMessage.LpUpdate, OnLpUpdate); _messages.Add(GameMessage.LpUpdate, OnLpUpdate);
_messages.Add(GameMessage.Move, OnMove); _messages.Add(GameMessage.Move, OnMove);
_messages.Add(GameMessage.Attack, OnAttack);
_messages.Add(GameMessage.PosChange, OnPosChange); _messages.Add(GameMessage.PosChange, OnPosChange);
_messages.Add(GameMessage.Chaining, OnChaining); _messages.Add(GameMessage.Chaining, OnChaining);
_messages.Add(GameMessage.ChainEnd, OnChainEnd); _messages.Add(GameMessage.ChainEnd, OnChainEnd);
...@@ -124,6 +125,7 @@ namespace WindBot.Game ...@@ -124,6 +125,7 @@ namespace WindBot.Game
foreach (NamedCard card in Deck.SideCards) foreach (NamedCard card in Deck.SideCards)
deck.Write(card.Id); deck.Write(card.Id);
Connection.Send(deck); Connection.Send(deck);
_ai.OnJoinGame();
} }
private void OnTypeChange(BinaryReader packet) private void OnTypeChange(BinaryReader packet)
...@@ -355,6 +357,25 @@ namespace WindBot.Game ...@@ -355,6 +357,25 @@ namespace WindBot.Game
} }
} }
private void OnAttack(BinaryReader packet)
{
int ca = packet.ReadByte();
int la = packet.ReadByte();
int sa = packet.ReadByte();
packet.ReadByte(); //
packet.ReadByte(); // cd
int ld = packet.ReadByte();
packet.ReadByte(); // sd
packet.ReadByte(); //
ClientCard attackcard = _duel.GetCard(ca, (CardLocation)la, sa);
if (ld == 0)
{
_ai.OnDirectAttack(attackcard);
}
}
private void OnPosChange(BinaryReader packet) private void OnPosChange(BinaryReader packet)
{ {
packet.ReadInt32(); // card id packet.ReadInt32(); // card id
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment