public bool MyPet(MsgInformationEx MsgDTO, object[] param) { var pet = PetRecord.Get(MsgDTO.FromQQ); var levelModel = PetLevelSvc[pet.Level]; var HasExtEndur = VipArmerRecord.Get(MsgDTO.FromQQ).CheckArmer("耐力护符"); var extEndur = HasExtEndur ? "(+10)" : string.Empty; var petEndur = levelModel.Endurance - PetEnduranceRecord.Get(MsgDTO.FromQQ).ConsumeTotal + (HasExtEndur ? 10 : 0); var session = new MsgSession(MsgDTO); session.Add($"{CodeApi.Code_Image_Relational(pet.PicPath)}"); session.Add($"名称:{pet.Name}"); session.Add($"种族:{pet.PetNo}"); session.Add($"食性:{pet.Attribute ?? "无"}"); session.Add($"等级:{Utility.LevelEmoji(pet.Level)}"); session.Add($"{Emoji.心}:{levelModel.HP}"); session.Add($"耐力:{petEndur}/{levelModel.Endurance}{extEndur}"); session.Add($"经验值:{pet.Exp}/{levelModel.Exp}"); if (!pet.Skills.IsNullOrEmpty()) { session.Add($"技能:{pet.Skills.Select(p => $"{p.Key}({p.Value})").JoinToString(",")}"); } if (pet.RemainSkillPoints > 0) { session.Add($"可用技能点:{pet.RemainSkillPoints}"); } session.Send(); return(true); }
public bool MyTreasureRecord(MsgInformationEx MsgDTO, object[] param) { var record = SegmentRecord.Get(MsgDTO.FromQQ); if (record.TreasureRecord.IsNullOrEmpty()) { MsgSender.PushMsg(MsgDTO, "你还没有开启过任何宝藏!"); return(false); } var session = new MsgSession(MsgDTO); session.Add(record.TreasureRecord.Select(p => $"{p.Key}:{p.Value}次").ToList()); session.Add($"总计:{record.TreasureRecord.Sum(p => p.Value)}次"); var finalMsg = $"终极宝藏:{record.FinalTreasureCount}次"; if (record.CanOpenFinalTreasure) { finalMsg += $"(还可开启{record.TreasureRecord.Values.Min() - record.FinalTreasureCount}次)"; } session.Add(finalMsg); session.Send(); return(true); }
public bool MySegment(MsgInformationEx MsgDTO, object[] param) { var record = SegmentRecord.Get(MsgDTO.FromQQ); if (string.IsNullOrEmpty(record.Segment)) { MsgSender.PushMsg(MsgDTO, "你尚未持有任何宝藏碎片!", true); return(false); } var segment = SegmentSvc.FindSegmentByName(record.Segment); if (segment == null) { MsgSender.PushMsg(MsgDTO, "未找到指定的宝藏碎片"); return(false); } var treasure = SegmentSvc.FindTreasureBySegment(record.Segment); var session = new MsgSession(MsgDTO); session.Add(segment.ToString()); session.Add($"可开启宝藏:{treasure.Name}"); if (record.IsRare) { session.Add("【稀有】:拼接后将得到双倍奖励!"); } session.Send(); return(true); }
public bool LimitBonus(MsgInformationEx MsgDTO, object[] param) { var cache = PersonCacheRecord.Get(MsgDTO.FromQQ, "抽奖"); if (string.IsNullOrEmpty(cache.Value) || !int.TryParse(cache.Value, out var times) || times <= 0) { MsgSender.PushMsg(MsgDTO, "你没有抽奖机会!", true); return(false); } var items = HonorSvc.CurMonthLimitItems(); var item = items.ToDictionary(p => p, p => p.Rate).RandRated(); var session = new MsgSession(MsgDTO); session.Add($"恭喜你抽到了 【{item.Name}】*1"); session.Add($" {item.Description} "); var record = ItemCollectionRecord.Get(MsgDTO.FromQQ); var m = record.ItemIncome(item.Name); if (!string.IsNullOrEmpty(m)) { session.Add(m); } session.Send(); cache.Value = (times - 1).ToString(); cache.Update(); 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 MyCastle(MsgInformationEx MsgDTO, object[] param) { var castle = KindomCastle.Get(MsgDTO.FromGroup, MsgDTO.FromQQ); var groups = SoldierGroup.Get(MsgDTO.FromQQ); var session = new MsgSession(MsgDTO); session.Add(castle.CastleName); session.Add($"城堡等级:{Utility.LevelEmoji(castle.Level)}"); session.Add($"金钱:{castle.Golds}"); session.Add($"粮草:{castle.Commissariat}"); session.Add($"建筑:{string.Join(",", castle.Buildings.Select(p => $"{p.Key}(lv.{p.Value})"))}"); session.Add($"军队:{groups.Count}支"); session.Add($"士兵:{groups.Sum(g => g.Count)}人"); session.Send(); return(true); }
protected override void Sign(MsgInformationEx MsgDTO) { var sign = SignInSuccessiveRecord.Sign(MsgDTO.FromGroup, MsgDTO.FromQQ); var goldsGen = Math.Min(sign.SuccessiveDays * 5, 50); var castle = KindomCastle.Get(MsgDTO.FromGroup, MsgDTO.FromQQ); castle.Golds += goldsGen; castle.Update(); var indexNo = SignInGroupInfo.GetAndUpdate(MsgDTO.FromGroup); var session = new MsgSession(MsgDTO); session.Add($"签到成功!你已连续签到 {sign.SuccessiveDays}天,获得 {goldsGen.CurencyFormat()}!"); session.Add($"本群签到排名:【No.{indexNo}】"); Recruit(MsgDTO, session); session.Send(); }
public bool ViewPetSkill(MsgInformationEx MsgDTO, object[] param) { var name = (string)param[0]; var skill = PetSkillSvc[name]; if (skill == null) { MsgSender.PushMsg(MsgDTO, "未查找到该技能!", true); return(false); } var pet = PetRecord.Get(MsgDTO.FromQQ); var session = new MsgSession(MsgDTO); session.Add($"名称:{skill.Name}"); session.Add($"描述:{skill.CommDesc}"); session.Add($"解锁:{skill.LearnLevel}"); session.Add($"当前:{(pet.Skills != null && pet.Skills.ContainsKey(name) ? pet.Skills[name] : 0)}"); session.Send(); return(true); }
public bool MyExpeditionHistory(MsgInformationEx MsgDTO, object[] param) { var history = ExpeditionHistory.Get(MsgDTO.FromQQ); if (history.SceneDic.IsNullOrEmpty()) { MsgSender.PushMsg(MsgDTO, "尚未记录到远征信息!"); return(false); } var hotScenes = history.SceneDic.OrderByDescending(p => p.Value).Take(3).ToList(); var session = new MsgSession(MsgDTO); session.Add($"你最热衷的远征地点:{hotScenes.Select(s => $"{s.Key}*{s.Value}次").JoinToString(",")}"); session.Add($"共获得金币:{history.GoldsTotal.CurencyFormat()}"); session.Add($"共获得调味料:{history.FlavoringTotal}个"); session.Add($"共获得物品:{history.ItemBonusCount}个"); session.Add($"物品总价值:{history.ItemBonusPriceTotal.CurencyFormat()}"); session.Send(); return(true); }
public bool Supply(MsgInformationEx MsgDTO, object[] param) { var castle = KindomCastle.Get(MsgDTO.FromGroup, MsgDTO.FromQQ); var starvingGroups = SoldierGroup.StarvingGroups(MsgDTO.FromQQ); if (starvingGroups.IsNullOrEmpty()) { MsgSender.PushMsg(MsgDTO, "你没有需要补给的军队!", true); return(false); } var totalConsume = 0; var feededGroupCount = 0; foreach (var starvingGroup in starvingGroups) { if (castle.Commissariat < starvingGroup.Count) { break; } castle.Commissariat -= starvingGroup.Count; starvingGroup.Feed(); totalConsume += starvingGroup.Count; feededGroupCount++; } castle.Update(); var session = new MsgSession(MsgDTO); session.Add("补给完成!"); session.Add($"共补给 {feededGroupCount}支军队,共消耗粮草 {totalConsume}"); session.Add($"当前剩余 {starvingGroups.Count - feededGroupCount}支军队尚未补给,当前剩余粮草 {castle.Commissariat}"); session.Send(); return(true); }
public bool TakeSegment(MsgInformationEx MsgDTO, object[] param) { var segment = SegmentSvc.RandSegment(); var record = SegmentRecord.Get(MsgDTO.FromQQ); record.Segment = segment.Name; record.IsRare = Rander.RandInt(100) > 90; record.Update(); var session = new MsgSession(MsgDTO); session.Add("你领取到了新的宝藏碎片!"); session.Add(segment.ToString()); var treasure = SegmentSvc.FindTreasureBySegment(record.Segment); session.Add($"可开启宝藏:【{treasure.Name}】"); if (record.IsRare) { session.Add($"{Emoji.礼物}恭喜你领取到了稀有碎片,拼接后将得到双倍奖励!"); } session.Send(); return(true); }