public override MessageCore.AskForResult AskFor(ChiefBase aChief, MessageCore.AskForEnum aAskFor, GlobalData aData) { if (aData.Game.Response.SkillName == SkillName && SkillStatus == SkillEnabled.Enable && aChief.ChiefStatus == ChiefBase.Status.Majesty && aAskFor == MessageCore.AskForEnum.Shan) { SwitchSkillStatus(aChief, SkillEnabled.Disable, aData); aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, new ChiefBase[] { }, new Card[] { })); ChiefBase t = aChief.Next; while (!t.IsMe(aChief)) { if (t.ChiefCamp == ChiefBase.Camp.Wei) { string msg = new Beaver("askfor.hujia.shan", t.ChiefName).ToString(); //new XElement("askfor.hujia.shan", // new XElement("target", t.ChiefName) // ); MessageCore.AskForResult res2 = aData.Game.AsynchronousCore.AskForCards(t, MessageCore.AskForEnum.Shan, new AskForWrapper(msg, aData.Game), aData); if (res2.Effect == Card.Effect.Shan) { aData.Game.AsynchronousCore.SendMessage( new Beaver("hujia.shan", t.ChiefName, Card.Cards2Beaver("cards", res2.Cards)).ToString()); //new XElement("hujia.shan", // new XElement("target", t.ChiefName), // Card.Cards2XML("cards", res2.Cards) // ) //); return(new MessageCore.AskForResult(false, t, new ChiefBase[] { }, res2.Cards, Card.Effect.Shan, false, res2.PlayerLead, SkillName)); } } t = t.Next; } } return(null); }
public override void OnChiefHarmed(GlobalEvent.EventRecoard aSourceEvent, ChiefBase aSource, ChiefBase aTarget, GlobalData aData, sbyte aDamage) { if (aSource != null && aData.Game.GamePlayers[aSource].HasCard) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeAskForSkillMessage(aTarget, this)); MessageCore.AskForResult res = aData.Game.AsynchronousCore.AskForYN(aTarget); if (res.YN == true && aData.Game.GamePlayers[aSource].HasCard) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aTarget, this, new ChiefBase[] { aSource }, new Card[] { })); res = aData.Game.AsynchronousCore.AskForCards(aTarget, MessageCore.AskForEnum.TargetCard, aSource); if (res.Cards.Count() == 0) { if (aData.Game.GamePlayers[aSource].HasCard) { res = new MessageCore.AskForResult(false, aTarget, new ChiefBase[] { }, new Card[] { aData.Game.AutoSelect(aSource) }, Card.Effect.GuoHeChaiQiao, false, false, string.Empty); } else { return; } } //检查牌的来源知否是正确 if (!aData.Game.GamePlayers[aSource].HasCardsInHandOrEquipage(res.Cards)) { return; } aData.Game.AsynchronousCore.SendStealMessage(aSource, aTarget, res.Cards, aData.Game.GamePlayers); aData.Game.Move(aTarget, aSource, res.Cards); } } }
public static void Main() { #region Конфигурация StandardKernel kernel = new StandardKernel(); kernel.Bind <IStoreData>().To <StoreDataMethods>(); kernel.Bind <ICreatorJson>().To <CreatorJsonMethods>(); Bot = SimpleTBot.ConfigureBot(ConfigurationManager.AppSettings[ConstantStrings.TelegaToken]); WeatherCore.SetWeatherApi(ConfigurationManager.AppSettings[ConstantStrings.WeatherToken]); OpenWeatherCore.SetWeatherApi(ConfigurationManager.AppSettings[ConstantStrings.OpenWeatherMapToken]); jCreator = kernel.Get <ICreatorJson>(); jCreator.SetJsonPath(Environment.CurrentDirectory + "//LocalizationStrings.json"); localization = jCreator.ReadConfig <LocalizationModel>(); localization.Current = ConfigurationManager.AppSettings[ConstantStrings.Localization] == "ru" ? localization.Ru : localization.En; kernel.Get <IStoreData>().StoreData(localization, ConstantStrings.Localization); MessageCore.GetStoreDataFromKernel(kernel); WebApiCore.GetStoreDataFromKernel(kernel); KeyboardCore.GetStoreDataFromKernel(kernel); #endregion #region Запуск бота Bot.OnMessage += BotOnMessage; Bot.OnCallbackQuery += BotOnCallbackQuery; Bot.StartReceiving(); Console.WriteLine(localization.Current.BotStartingConsole); #endregion #region Остановка бота Console.ReadLine(); Bot.StopReceiving(); Console.WriteLine(localization.Current.BotStoppedConsole); Console.ReadLine(); #endregion }
public override void TakingCards(ChiefBase aChief, GlobalData aData) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeAskForSkillMessage(aChief, this)); MessageCore.AskForResult res = aData.Game.AsynchronousCore.AskForYN(aChief); if (res.YN) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, new ChiefBase[] { }, new Card[] { })); res = aData.Game.AsynchronousCore.AskForCardsWithCount(aChief, 0); if (res.Targets.Count() > 2 || res.Targets.Count() == 0) { return; } else { foreach (ChiefBase c in res.Targets) { if (c.IsMe(aChief) || aData.Game.GamePlayers[c].Dead) { return; } } } aData.TakeCardsCount = 0; foreach (ChiefBase c in res.Targets) { Card item = aData.Game.AutoSelect(c); aData.Game.AsynchronousCore.SendStealMessage(c, aChief, new Card[] { item }, aData.Game.GamePlayers); aData.Game.Move(c, aChief, new Card[] { item }); //aData.Game.EventNode(false, GlobalEvent.CardFrom.Hand, SkillName, new Card[] { item }, Card.Effect.None, c, null, null); //aData.Game.GamePlayers[aChief].Hands.Add(item.GetOriginalCard()); } } }
public override void OnRemoveCards(ChiefBase aChief, GlobalData aData) { if (aData.Game.GamePlayers[aChief].Hands.Count == 0) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, new ChiefBase[] {}, new Card[] {})); aData.Game.TakeingCards(aChief, 1); } }
/// <summary> /// Колбек нажатия кнопок /// </summary> /// <param name="sender">отправитель</param> /// <param name="e">аргументы</param> private static void BotOnCallbackQuery(object sender, CallbackQueryEventArgs e) { if (e.CallbackQuery.Data.Contains(nameof(WeatherLocationModel))) { var modelData = e.CallbackQuery.Data.Replace($"{nameof(WeatherLocationModel)} is :", string.Empty); WeatherLocationModel locationModel = JsonConvert.DeserializeObject <WeatherLocationModel>(modelData); MessageCore.SendWeatherAnswer(locationModel, e.CallbackQuery.Message.Chat.Id); } }
public override void OnChiefHarmed(GlobalEvent.EventRecoard aSourceEvent, ChiefBase aSource, ChiefBase aTarget, GlobalData aData, sbyte aDamage) { int i = 0; for (i = 0; i < aDamage; i++) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeAskForSkillMessage(aTarget, this)); MessageCore.AskForResult res = aData.Game.AsynchronousCore.AskForYN(aTarget); if (res.YN) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aTarget, this, new ChiefBase[] { }, new Card[] { })); Card[] cards = aData.Game.TakeingCards(aTarget, 2); aTarget.SlotsBuffer[SkillName].Cards.Clear(); aTarget.SlotsBuffer[SkillName].Cards.AddRange(cards); int times = 0; while (aTarget.SlotsBuffer[SkillName].Cards.Count > 0 && times < 2) { aData.Game.AsynchronousCore.SendPrivateMessageWithOpenMessage(aTarget, new Beaver("askfor.yiji.cards", aTarget.ChiefName, Card.Cards2Beaver("cards", aTarget.SlotsBuffer[SkillName].Cards.ToArray())).ToString(), //new XElement("askfor.yiji.cards", // new XElement("target", aTarget.ChiefName), // Card.Cards2XML("cards", aTarget.SlotsBuffer[SkillName].Cards.ToArray()) // ), new Beaver("askfor.yiji.cards", aTarget.ChiefName).ToString(), //new XElement("askfor.yiji.cards", // new XElement("target", aTarget.ChiefName) // ), aData.Game.GamePlayers); res = aData.Game.AsynchronousCore.AskForCardsWithCount(aTarget, -1); if (res.Targets.Count() != 1 || res.Targets[0] == aTarget || aData.Game.GamePlayers[res.Targets[0]].Dead) { break; } foreach (Card c in res.Cards) { if (!aTarget.SlotsBuffer[SkillName].Cards.Contains(c)) { break; } } aData.Game.AsynchronousCore.SendGiveMessage(aTarget, res.Targets[0], res.Cards, aData.Game.GamePlayers); aData.Game.DropCards(false, GlobalEvent.CardFrom.Hand, SkillName, res.Cards, Card.Effect.None, aTarget, null, null); aData.Game.GamePlayers[res.Targets[0]].Hands.AddRange(res.Cards); foreach (Card c in res.Cards) { aTarget.SlotsBuffer[SkillName].Cards.Remove(c); } times++; } aTarget.SlotsBuffer[SkillName].Cards.Clear(); } else { break; } } }
public override MessageCore.AskForResult AskFor(ChiefBase aChief, MessageCore.AskForEnum aAskFor, GlobalData aData) { if (SkillName == aData.Game.Response.SkillName && SkillStatus == SkillEnabled.Enable) { SwitchSkillStatus(aChief, SkillEnabled.Disable, aData); aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, new ChiefBase[] { }, aData.Game.Response.Cards)); return(new MessageCore.AskForResult(false, aChief, new ChiefBase[] { }, aData.Game.Response.Cards, Card.Effect.Shan, false, true, SkillName)); } return(null); }
public override MessageCore.AskForResult AskFor(ChiefBase aChief, MessageCore.AskForEnum aAskFor, GlobalData aData) { if (aAskFor == MessageCore.AskForEnum.Aggressive && SkillStatus == SkillEnabled.Enable) { SwitchSkillStatus(aChief, SkillEnabled.Disable, aData); aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, Player.Players2Chiefs(aData.Game.Response.Targets), aData.Game.Response.Cards)); return(new MessageCore.AskForResult(false, aChief, Player.Players2Chiefs(aData.Game.Response.Targets), aData.Game.Response.Cards, Card.Effect.GuoHeChaiQiao, false, true, SkillName)); } return(null); }
public override MessageCore.AskForResult AskFor(SGS.ServerCore.Contest.Data.ChiefBase aChief, SGS.ServerCore.Contest.Global.MessageCore.AskForEnum aAskFor, SGS.ServerCore.Contest.Data.GlobalData aData) { if (aData.Game.Response.SkillName == SkillName && SkillStatus == SkillEnabled.Enable) { SwitchSkillStatus(aChief, SkillEnabled.Disable, aData); aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, new ChiefBase[] { }, aData.Game.Response.Cards)); return(new MessageCore.AskForResult(aData.Game.Response.IsTimeout, aChief, Player.Players2Chiefs(aData.Game.Response.Targets), aData.Game.Response.Cards, Card.Effect.Sha, aData.Game.Response.Answer, true, SkillName)); } return(null); }
public override void BeforeTurnStart(ChiefBase aChief, GlobalData aData) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeAskForSkillMessage(aChief, this)); MessageCore.AskForResult res = aData.Game.AsynchronousCore.AskForYN(aChief); if (res.YN) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, new ChiefBase[] { }, new Card[] { })); Active = true; aData.TakeCardsCount--; } }
void callbackStateMessageHandler(object sender, BasicDeliverEventArgs eventArgs) { var body = eventArgs.Body; var message = Encoding.UTF8.GetString(body); Console.WriteLine(" State Message Arrived: {0}", message); SensorStateMessage ssm = MessageCore.fromJSON <SensorStateMessage>(message); SensorCore sensor = getSensorByName(ssm.Id); ((SensorProxy)sensor).setTriggeredState(ssm.Triggered); }
public override sbyte CalcRescuePoint(ChiefBase aChief, ChiefBase aRescuer, Card.Effect aEffect, sbyte aOldPoint, GlobalData aData) { if (aRescuer != null && aData.Game.GamePlayers[aRescuer].Chief.ChiefCamp == ChiefBase.Camp.Wu && aEffect == Card.Effect.Tao) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, new ChiefBase[] { }, new Card[] { })); return(++aOldPoint); } else { return(aOldPoint); } }
public override void OnChiefJudgementCardTakeEffect(ChiefBase aChief, Card aCard, ref bool aEnableSendToBin, GlobalData aData) { if (aCard.CardEffect == Card.Effect.LuoShen) { if (aCard.CardHuaSe == Card.Suit.CaoHua || aCard.CardHuaSe == Card.Suit.HeiTao) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, new ChiefBase[] { }, new Card[] { aCard })); aEnableSendToBin = false; aData.Game.GamePlayers[aChief].Hands.Add(aCard.GetOriginalCard()); } } }
public override MessageCore.AskForResult AskFor(ChiefBase aChief, MessageCore.AskForEnum aAskFor, GlobalData aData) { if (aAskFor == MessageCore.AskForEnum.Aggressive && SkillStatus == SkillEnabled.Enable) { SwitchSkillStatus(aChief, SkillEnabled.Disable, aData); aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, new ChiefBase[] { }, new Card[] { })); aData.Game.DamageHealth(aChief, 1, null, new GlobalEvent.EventRecoard(aChief, aChief, new Card[] { }, Card.Effect.Skill, SkillName)); aData.Game.TakeingCards(aChief, 2); return(new MessageCore.AskForResult(false, aChief, new ChiefBase[] { }, new Card[] { }, Card.Effect.Skill, false, false, SkillName)); } return(null); }
public override int CalcAskforTimes(ChiefBase aChief, ChiefBase aTarget, Card.Effect aEffect, int aOldTimes, GlobalData aData) { switch (aEffect) { case Card.Effect.Sha: case Card.Effect.JueDou: aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, new ChiefBase[] { aTarget }, new Card[] { })); return(2); default: return(aOldTimes); } }
public override void BeforeAbandonment(ChiefBase aChief, GlobalData aData) { OnLeading = false; if (!UseShaEffect) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeAskForSkillMessage(aChief, this)); MessageCore.AskForResult res = aData.Game.AsynchronousCore.AskForYN(aChief); if (res.YN) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, new ChiefBase[] { }, new Card[] { })); aData.Abandonment = false; } } }
public override MessageCore.AskForResult AskFor(ChiefBase aChief, MessageCore.AskForEnum aAskFor, GlobalData aData) { if (aData.Game.Response.SkillName == SkillName) { if (SkillStatus == SkillEnabled.Enable) { SwitchSkillStatus(aChief, SkillEnabled.Disable, aData); aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, new ChiefBase[] { }, aData.Game.Response.Cards)); aData.Game.DropCards(true, GlobalEvent.CardFrom.HandAndEquipage, SkillName, aData.Game.Response.Cards, Card.Effect.Tao, aChief, null, null); return(new MessageCore.AskForResult(false, aChief, new ChiefBase[] { }, aData.Game.Response.Cards, Card.Effect.Tao, false, false, SkillName)); } } return(null); }
static void Main(string[] args) { MessageCore.PrivateSender = (target, message) => System.Console.WriteLine($"Private {target} {message}"); MessageCore.GroupSender = (target, message) => System.Console.WriteLine($"Group {target} {message}"); MessageCore.AtCoder = s => s; while (true) { var messages = System.Console.ReadLine().Split(' '); var msg = new Message("1", messages[0], messages[1]); MessageCore.ProcessMessage(msg); } }
public override MessageCore.AskForResult AskFor(ChiefBase aChief, MessageCore.AskForEnum aAskFor, GlobalData aData) { if (aData.Game.Response.SkillName == SkillName) { if (SkillStatus == SkillEnabled.Enable) { SwitchSkillStatus(aChief, SkillEnabled.Disable, aData); aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, Player.Players2Chiefs(aData.Game.Response.Targets), aData.Game.Response.Cards)); aData.Game.DropCards(true, GlobalEvent.CardFrom.Hand, SkillName, aData.Game.Response.Cards, Card.Effect.Skill, aChief, null, null); return(new MessageCore.AskForResult(false, aChief, new ChiefBase[] { aData.Game.Response.Targets[0].Chief, aData.Game.Response.Targets[1].Chief }, new Card[] { }, Card.Effect.JueDou, false, false, SkillName)); } } return(null); }
public override MessageCore.AskForResult AskFor(ChiefBase aChief, MessageCore.AskForEnum aAskFor, GlobalData aData) { if (aData.Game.Response.SkillName == SkillName) { if (SkillStatus == SkillEnabled.Enable && aData.Game.GamePlayers[aChief].HasHand) { SwitchSkillStatus(aChief, SkillEnabled.Disable, aData); aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, Player.Players2Chiefs(aData.Game.Response.Targets), new Card[] { })); ChiefBase target = aData.Game.Response.Targets[0].Chief; aData.Game.AsynchronousCore.SendMessage(new Beaver("askfor.fanjian.suit", target.ChiefName).ToString()); // new XElement("askfor.fanjian.suit", new XElement("target", target.ChiefName))); MessageCore.AskForResult res = aData.Game.AsynchronousCore.AskForCards(target, MessageCore.AskForEnum.Suit, target); if (res.Cards.Count() == 0) { aData.Game.AsynchronousCore.SendMessage(new Beaver("fanjian.suit", target.ChiefName, Card.Cards2Beaver("cards", new Card[] { CardHeap.HeiTao })).ToString()); // new XElement("fanjian.suit", new XElement("target", target.ChiefName), Card.Cards2XML("cards", new Card[] { CardHeap.HeiTao }))); } else { aData.Game.AsynchronousCore.SendMessage(new Beaver("fanjian.suit", target.ChiefName, Card.Cards2Beaver("cards", res.Cards)).ToString()); // new XElement("fanjian.suit", new XElement("target", target.ChiefName), Card.Cards2XML("cards", res.Cards))); } System.Threading.Thread.Sleep(10); aData.Game.AsynchronousCore.SendMessage(new Beaver("askfor.fanjian.card", target.ChiefName, aChief.ChiefName).ToString()); // new XElement("askfor.fanjian.card", new XElement("target", target.ChiefName), new XElement("target2", aChief))); MessageCore.AskForResult res2 = aData.Game.AsynchronousCore.AskForCards(target, MessageCore.AskForEnum.TargetCard, aChief); Card c = aData.Game.AutoSelect(aChief); aData.Game.AsynchronousCore.SendMessage(new Beaver("fanjian.card", target.ChiefName, aChief.ChiefName, Card.Cards2Beaver("cards", new Card[] { c })).ToString()); // new XElement("fanjian.card", new XElement("target", target.ChiefName), new XElement("target2", aChief.ChiefName), Card.Cards2XML("cards", new Card[] { c }))); if (c.CardHuaSe != res.Cards[0].CardHuaSe) { aData.Game.DamageHealth(target, 1, aChief, new GlobalEvent.EventRecoard(aChief, target, new Card[] { }, Card.Effect.Skill, SkillName)); } if (!aData.Game.GamePlayers[target].Dead) { if (aData.Game.GamePlayers[aChief].HasCardsInHand(new Card[] { c })) { aData.Game.AsynchronousCore.SendGiveMessage(aChief, target, new Card[] { c }, aData.Game.GamePlayers); aData.Game.Move(aChief, target, new Card[] { c }); } else if (aData.Game.HasCardsInBin(new Card[] { c })) { if (aData.Game.PickRubbish(new Card[] { c })) { aData.Game.AsynchronousCore.SendPickMessage(target, new Card[] { c }); aData.Game.GamePlayers[aChief].Hands.Add(c.GetOriginalCard()); } } } return(new MessageCore.AskForResult(false, aChief, new ChiefBase[] { }, new Card[] { }, Card.Effect.Skill, false, false, SkillName)); } } return(null); }
public override SGS.ServerCore.Contest.Global.MessageCore.AskForResult AskFor(SGS.ServerCore.Contest.Data.ChiefBase aChief, SGS.ServerCore.Contest.Global.MessageCore.AskForEnum aAskFor, SGS.ServerCore.Contest.Data.GlobalData aData) { if (aData.Game.Response.SkillName == SkillName) { if (SkillStatus == SkillEnabled.Enable) { SwitchSkillStatus(aChief, SkillEnabled.Disable, aData); aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, new ChiefBase[] { aData.Game.Response.Targets[0].Chief }, aData.Game.Response.Cards)); aData.Game.DropCards(true, GlobalEvent.CardFrom.Hand, SkillName, aData.Game.Response.Cards, Card.Effect.Skill, aChief, null, null); aData.Game.RegainHealth(aData.Game.Response.Targets[0].Chief, 1); aData.Game.RegainHealth(aChief, 1); } } return(null); }
public override void BeforeTurnStart(ChiefBase aChief, GlobalData aData) { Card c = null; do { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeAskForSkillMessage(aChief, this)); MessageCore.AskForResult res = aData.Game.AsynchronousCore.AskForYN(aChief); if (res.YN) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, new ChiefBase[] { }, new Card[] { })); c = aData.Game.popJudgementCard(aChief, Card.Effect.LuoShen); aData.Game.DropCards(true, GlobalEvent.CardFrom.JudgementCard, res.SkillName, new Card[] { c }, Card.Effect.None, aChief, null, null); } } while (c != null && (c.CardHuaSe == Card.Suit.HeiTao || c.CardHuaSe == Card.Suit.CaoHua)); }
public void Test3() { MessageCore.PrivateSender = (target, message) => Debug.WriteLine($"Private {target} {message}"); MessageCore.GroupSender = (target, message) => Debug.WriteLine($"Group {target} {message}"); MessageCore.AtCoder = s => s; var sw = Stopwatch.StartNew(); MessageCore.ProcessMessage(new Message("123", "456", "新建游戏", "789")); Debug.WriteLine($"First: {sw.ElapsedMilliseconds}ms"); sw = Stopwatch.StartNew(); MessageCore.ProcessMessage(new Message("123", "456", "上桌", "789")); MessageCore.ProcessMessage(new Message("123", "789", "上桌", "789")); MessageCore.ProcessMessage(new Message("123", "789", "开始游戏", "789")); Debug.WriteLine($"Second: {sw.ElapsedMilliseconds}ms"); }
public void TestDataItemPropertyModify() { Log("-----------开始测试数据修改后更新数据库----------------"); string db = @"C:\Users\fhjun\Desktop\TestDataItemPropertyModify.db"; string db2 = db.Insert(db.LastIndexOf('.'), "_bmk"); if (File.Exists(db)) { File.Delete(db); } if (File.Exists(db2)) { File.Delete(db2); } IDataItems items = new DataItems <MessageCore>(db); //MessageCore mm3 = null; //for (int i = 0; i < 1; i++) //{ // MessageCore mm = new MessageCore() { Content = "正常消息", Date = DateTime.Now.AddDays(i), SenderName = "张三", MessageType = "文本" }; // mm.Content = "正常消息1"; // items.Add(mm); // if (i == 3) // mm.Content = "这是修改Content后的数据"; // if (i % 3 == 0) // mm.BookMarkId = 2; // if (i == 0) // mm3 = mm; //} MessageCore mm = new MessageCore() { Content = "正常消息", Date = DateTime.Now.AddDays(0), SenderName = "张三", MessageType = "文本" }; mm.Content = "正常消息1"; items.Add(mm); mm.Content = "这是修改Content后的数据"; mm.Content = "这是修改Content后的数据2222"; items.Commit(); items.Filter(); mm.BookMarkId = 3; mm.BookMarkId = -1; }
public override void OnChiefHarmed(GlobalEvent.EventRecoard aSourceEvent, ChiefBase aSource, ChiefBase aTarget, GlobalData aData, sbyte aDamage) { //不能有牌存在,且伤害事件的牌在垃圾桶中 if (aSourceEvent.Cards.Count() != 0 && aData.Game.HasCardsInBin(aSourceEvent.Cards)) { //问询是否发动技能 aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeAskForSkillMessage(aTarget, this)); MessageCore.AskForResult res = aData.Game.AsynchronousCore.AskForYN(aTarget); if (res.YN == true && aData.Game.HasCardsInBin(aSourceEvent.Cards)) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aTarget, this, new ChiefBase[] { }, aSourceEvent.Cards)); aData.Game.PickRubbish(aSourceEvent.Cards); foreach (Card c in aSourceEvent.Cards) { aData.Game.GamePlayers[aTarget].Hands.Add(c.GetOriginalCard()); } } } }
public override int CalcAskforTimes(ChiefBase aChief, ChiefBase aTarget, Card.Effect aEffect, int aOldTimes, GlobalData aData) { if (aEffect == Card.Effect.Sha) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeAskForSkillMessage(aChief, this)); MessageCore.AskForResult res = aData.Game.AsynchronousCore.AskForYN(aChief); if (res.YN) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, new ChiefBase[] { }, new Card[] { })); Card c = aData.Game.popJudgementCard(aChief, Card.Effect.TieQi); aData.Game.DropCards(true, GlobalEvent.CardFrom.JudgementCard, SkillName, new Card[] { c }, Card.Effect.TieQi, aChief, null, null); if (c.CardHuaSe == Card.Suit.HongTao || c.CardHuaSe == Card.Suit.FangPian) { return(0); } } } return(aOldTimes); }
public override MessageCore.AskForResult AskFor(ChiefBase aChief, MessageCore.AskForEnum aAskFor, GlobalData aData) { if (aData.Game.Response.SkillName == SkillName && SkillStatus == SkillEnabled.Enable && aAskFor == MessageCore.AskForEnum.Aggressive) { SwitchSkillStatus(aChief, SkillEnabled.Disable, aData); ChiefBase target = aData.Game.Response.Targets[0].Chief; Card[] cards = aData.Game.Response.Cards; aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, new ChiefBase[] { target }, new Card[] { })); TotalCount += aData.Game.Response.Cards.Count(); aData.Game.AsynchronousCore.SendGiveMessage(aChief, target, cards, aData.Game.GamePlayers); aData.Game.Move(aChief, target, cards); if (TotalCount > 1 && !HasRegainHealth) { aData.Game.RegainHealth(aChief, 1); HasRegainHealth = true; } } return(null); }
public override Card OnChiefJudgementCardShow_Turn(ChiefBase aJudgeChief, Card aJudgementCard, ChiefBase aThisChief, GlobalData aData) { if (aData.Game.GamePlayers[aThisChief].HasHand) { aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeAskForSkillMessage(aThisChief, this)); MessageCore.AskForResult res = aData.Game.AsynchronousCore.AskForCards(aThisChief, MessageCore.AskForEnum.TargetHand, aThisChief); if (res.Cards.Count() == 1) { //旧的判定牌删去 aData.Game.DropCards(true, GlobalEvent.CardFrom.None, res.SkillName, new Card[] { aJudgementCard }, Card.Effect.None, aJudgeChief, null, null); //将自己的这张手牌除去 aData.Game.DropCards(false, GlobalEvent.CardFrom.Hand, res.SkillName, res.Cards, Card.Effect.None, aThisChief, null, null); //触发技能的消息 aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aThisChief, this, new ChiefBase[] { aJudgeChief }, res.Cards)); //返回新的判定牌 return(res.Cards[0]); } } return(aJudgementCard); }
public override void OnUseEffect(ChiefBase aChief, Card.Effect aEffect, GlobalData aData) { switch (aEffect) { case Card.Effect.JueDou: case Card.Effect.WanJianQiFa: case Card.Effect.NanManRuQin: case Card.Effect.TaoYuanJieYi: case Card.Effect.GuoHeChaiQiao: case Card.Effect.ShunShouQianYang: case Card.Effect.HuoGong: case Card.Effect.JieDaoShaRen: case Card.Effect.TieSuoLianHuan: case Card.Effect.WuGuFengDeng: case Card.Effect.WuXieKeJi: case Card.Effect.WuZhongShengYou: aData.Game.AsynchronousCore.SendMessage(MessageCore.MakeTriggerSkillMesssage(aChief, this, new ChiefBase[] { }, new Card[] { })); aData.Game.TakeingCards(aChief, 1); break; } }