public bool MyArmers_Paged(MsgInformationEx MsgDTO, object[] param) { var pageNo = (int)(long)param[0]; var paRec = PersonArmerRecord.Get(MsgDTO.FromQQ); if (paRec.Armers.IsNullOrEmpty()) { MsgSender.PushMsg(MsgDTO, "你尚未拥有任何装备!", true); return(true); } var armerInfos = paRec.Armers.Select(a => new { Count = a.Value, Model = ArmerSvc[a.Key] }).OrderBy(p => p.Model.Kind).ThenByDescending(p => p.Model.Price).ToList(); var totalPageCount = (armerInfos.Count - 1) / 20 + 1; if (pageNo <= 0 || pageNo > totalPageCount) { MsgSender.PushMsg(MsgDTO, "页码错误!", true); return(false); } var showInfos = armerInfos.Skip((pageNo - 1) * 20).Take(20); var msg = string.Join(", ", showInfos.Select(a => $"{a.Model.Name}*{a.Count}")); msg = $"该页的装备有:\r\n{msg}"; if (armerInfos.Count > 20) { msg += $"\r\n当前显示第 {pageNo}/{totalPageCount}页,请使用 我的装备 [页码] 命令查看更多装备!"; } MsgSender.PushMsg(MsgDTO, msg, true); return(true); }
public bool Xunyuan(MsgInformationEx MsgDTO, object[] param) { var aimQQ = (long)param[0]; if (aimQQ == MsgDTO.FromQQ) { MsgSender.PushMsg(MsgDTO, "你无法和自己寻缘!"); return(false); } if (!XunYuanMgr.CheckGroup(MsgDTO.FromGroup)) { MsgSender.PushMsg(MsgDTO, "此群正在进行一场寻缘,请稍候再试!"); return(false); } if (!XunYuanMgr.CheckQQNum(MsgDTO.FromQQ)) { MsgSender.PushMsg(MsgDTO, "你正在进行一场寻缘,请稍候再试!"); return(false); } if (!XunYuanMgr.CheckQQNum(aimQQ)) { MsgSender.PushMsg(MsgDTO, "对方正在进行一场寻缘,请稍候再试!"); return(false); } var msg = $"{CodeApi.Code_At(aimQQ)} 你正被邀请参加一次寻缘,是否同意?"; if (!WaiterSvc.WaitForConfirm(MsgDTO.FromGroup, aimQQ, msg, MsgDTO.BindAi)) { MsgSender.PushMsg(MsgDTO, "操作取消!"); return(false); } var Gamers = new[] { MsgDTO.FromQQ, aimQQ }.Select(p => { var armerRecord = PersonArmerRecord.Get(p); var osPerson = OSPerson_Doremi.GetPerson(p); var levelModel = LevelSvc.GetByLevel(osPerson.Level); var battleArmers = Rander.RandSort(armerRecord.Armers.ToArray()).Take(10).ToDictionary(a => a.Key, a => a.Value); return(new XunYuanGamingModel() { QQNum = p, Armers = battleArmers, EscapeArmers = armerRecord.EscapeArmers, BasicHP = levelModel.HP, HP = levelModel.HP + ArmerSvc.CountHP(battleArmers), BasicAttack = levelModel.Atk, Attack = levelModel.Atk + ArmerSvc.CountAtk(battleArmers) }); }).ToArray(); XunYuanMgr.StartGame(Gamers, MsgDTO.FromGroup, MsgDTO.BindAi); return(true); }
public bool MyStatus(MsgInformationEx MsgDTO, object[] param) { var osPerson = OSPerson_Doremi.GetPerson(MsgDTO.FromQQ); var level = LevelSvc.GetByLevel(osPerson.Level); var exp = MsgCounterSvc.Get(MsgDTO.FromQQ); var armerRecord = PersonArmerRecord.Get(MsgDTO.FromQQ); var session = new MsgSession(MsgDTO); session.Add($"等级:{level.Name}{(level.Level == LevelSvc.TopLevel ? "(满级)" : "")}"); session.Add($"经验值:{exp}/{level.Exp}{(exp >= level.Exp ? "(可渡劫)" : "")}"); session.Add($"{Emoji.心}:{level.HP}(+{ArmerSvc.CountHP(armerRecord.Armers)})"); session.Add($"{Emoji.剑}:{level.Atk}(+{ArmerSvc.CountAtk(armerRecord.Armers)})"); session.Add($"金币:{osPerson.Golds}"); session.Send(); return(true); }
public bool Buy(MsgInformationEx MsgDTO, object[] param) { var name = param[0] as string; if (RandShopperSvc.SellingGoods.IsNullOrEmpty()) { MsgSender.PushMsg(MsgDTO, "商店尚未营业!", true); return(false); } if (!RandShopperSvc.SellingGoods.Contains(name)) { MsgSender.PushMsg(MsgDTO, "此商品未在商店中出售!", true); return(false); } var osPerson = OSPerson_Doremi.GetPerson(MsgDTO.FromQQ); var armerModel = ArmerSvc[name]; if (osPerson.Golds < armerModel.Price) { MsgSender.PushMsg(MsgDTO, $"你持有的金币不足以购买此物品({osPerson.Golds}/{armerModel.Price})", true); return(false); } if (!WaiterSvc.WaitForConfirm_Gold(MsgDTO, armerModel.Price)) { MsgSender.PushMsg(MsgDTO, "操作取消!"); return(false); } osPerson.Golds -= armerModel.Price; var paRec = PersonArmerRecord.Get(MsgDTO.FromQQ); paRec.ArmerGet(name); paRec.Update(); osPerson.Update(); MsgSender.PushMsg(MsgDTO, "购买成功!"); return(true); }
public bool MyArmers(MsgInformationEx MsgDTO, object[] param) { var paRec = PersonArmerRecord.Get(MsgDTO.FromQQ); if (paRec.Armers.IsNullOrEmpty()) { MsgSender.PushMsg(MsgDTO, "你尚未拥有任何装备!", true); return(true); } var armerInfos = paRec.Armers.Select(a => new { Count = a.Value, Model = ArmerSvc[a.Key] }).OrderBy(p => p.Model.Kind).ThenByDescending(p => p.Model.Price).ToList(); var showInfos = armerInfos.Take(20); var msg = string.Join(", ", showInfos.Select(a => $"{a.Model.Name}*{a.Count}")); msg = $"你持有的装备有:\r\n{msg}"; if (armerInfos.Count > 20) { msg += $"\r\n当前显示第 1/{(armerInfos.Count - 1) / 20 + 1}页,请使用 我的装备 [页码] 命令查看更多装备!"; } MsgSender.PushMsg(MsgDTO, msg, true); return(true); }
public void SaveToPerson(long QQNum) { Simplify(); var armerRecord = PersonArmerRecord.Get(QQNum); foreach (var(name, count) in NormalArmers) { armerRecord.ArmerGet(name, count); } foreach (var(name, count) in EscapeArmers) { armerRecord.EscapeArmerGet(name, count); } var osPerson = OSPerson_Doremi.GetPerson(QQNum); osPerson.Golds += Golds; armerRecord.Update(); osPerson.Update(); }