public bool FeedPet(MsgInformationEx MsgDTO, object[] param) { var name = param[0] as string; var pet = PetRecord.Get(MsgDTO.FromQQ); var expRec = ExpeditionRecord.GetLastest(MsgDTO.FromQQ); if (expRec != null && expRec.IsExpediting) { MsgSender.PushMsg(MsgDTO, $"{pet.Name}正在【{expRec.Scene}】进行一项伟大的远征,请于{expRec.EndTime:yyyy-MM-dd HH:mm:ss}后再试!"); return(false); } if (string.IsNullOrEmpty(pet.Attribute)) { MsgSender.PushMsg(MsgDTO, "请先设置宠物食性!", true); return(false); } if (pet.LastFeedTime != null && pet.LastFeedTime.Value.AddHours(FeedInterval) > DateTime.Now) { var msg = $"{pet.Name}还饱着呢,不想吃东西(请与{pet.LastFeedTime.Value.AddHours(FeedInterval)}后再试)"; MsgSender.PushMsg(MsgDTO, msg); return(false); } var item = HonorSvc.FindItem(name); if (item != null) { return(FeedPetWithItem(MsgDTO, pet, item)); } var diet = CookingDietSvc[name]; if (diet != null) { return(FeedPetWithDiet(MsgDTO, pet, diet)); } MsgSender.PushMsg(MsgDTO, "未查找到相关物品或菜肴!"); return(false); }
public bool AttachSegment(MsgInformationEx MsgDTO, object[] param) { var aimQQ = (long)param[0]; if (aimQQ == MsgDTO.FromQQ) { MsgSender.PushMsg(MsgDTO, "你无法和自己进行拼接!", true); return(false); } if (BindAiSvc.AllAiNums.Contains(aimQQ)) { MsgSender.PushMsg(MsgDTO, "Stupid Human!", true); return(false); } var selfRecord = SegmentRecord.Get(MsgDTO.FromQQ); if (string.IsNullOrEmpty(selfRecord.Segment)) { MsgSender.PushMsg(MsgDTO, "你当前没有任何碎片!", true); return(false); } var aimRecord = SegmentRecord.Get(aimQQ); if (string.IsNullOrEmpty(aimRecord.Segment)) { MsgSender.PushMsg(MsgDTO, "对方当前没有任何碎片!", true); return(false); } var treasure = SegmentSvc.FindTreasureBySegment(selfRecord.Segment); if (!treasure.IsMatch(selfRecord.Segment, aimRecord.Segment)) { MsgSender.PushMsg(MsgDTO, $"拼接失败,碎片不匹配!({selfRecord.Segment}×{aimRecord.Segment})"); return(false); } selfRecord.AddTreasureRecord(treasure.Name); aimRecord.AddTreasureRecord(treasure.Name); var selfBonusItems = HonorSvc.RandItems(3); var aimBonusItems = HonorSvc.RandItems(3); var selfIcRecord = ItemCollectionRecord.Get(MsgDTO.FromQQ); var aimIcRecord = ItemCollectionRecord.Get(aimQQ); var selfRate = selfRecord.IsRare ? 2 : 1; foreach (var item in selfBonusItems) { selfIcRecord.ItemIncome(item.Name, selfRate); } var aimRate = aimRecord.IsRare ? 2 : 1; foreach (var item in aimBonusItems) { aimIcRecord.ItemIncome(item.Name, aimRate); } MsgSender.PushMsg(MsgDTO, treasure.ToString()); var msg = "拼接成功!\r\n" + $"{CodeApi.Code_At(MsgDTO.FromQQ)} 获得了{selfBonusItems.Select(p => $"{p.Name}*{selfRate}").JoinToString(",")} !\r\n" + $"{CodeApi.Code_At(aimQQ)} 获得了{aimBonusItems.Select(p => $"{p.Name}*{aimRate}").JoinToString(",")} !"; MsgSender.PushMsg(MsgDTO, msg); selfRecord.ClearSegment(); aimRecord.ClearSegment(); selfRecord.Update(); aimRecord.Update(); return(true); }
public bool ViewSomething(MsgInformationEx MsgDTO, object[] param) { var name = param[0] as string; // 漂流瓶物品 if (HonorSvc.FindItem(name) != null) { return(CrossWorldAiSvc[MsgDTO.FromGroup].AIInstance <DriftBottleAI>().ViewItem(MsgDTO, param)); } // 漂流瓶成就 if (HonorSvc.FindHonor(name) != null) { return(CrossWorldAiSvc[MsgDTO.FromGroup].AIInstance <DriftBottleAI>().ViewHonor(MsgDTO, param)); } // 礼物 if (GiftSvc[name] != null) { return(CrossWorldAiSvc[MsgDTO.FromGroup].AIInstance <GiftAI>().ViewGift(MsgDTO, param)); } // 宠物技能 if (PetSkillSvc[name] != null) { return(CrossWorldAiSvc[MsgDTO.FromGroup].AIInstance <PetAI>().ViewPetSkill(MsgDTO, param)); } // 宝藏碎片 if (SegmentSvc.FindSegmentByName(name) != null) { return(CrossWorldAiSvc[MsgDTO.FromGroup].AIInstance <SegmentAttachAI>().ViewSegment(MsgDTO, param)); } // 宝藏 if (SegmentSvc.FindTreasureByName(name) != null) { return(CrossWorldAiSvc[MsgDTO.FromGroup].AIInstance <SegmentAttachAI>().ViewTreasure(MsgDTO, param)); } // 菜肴 if (CookingDietSvc[name] != null) { return(CrossWorldAiSvc[MsgDTO.FromGroup].AIInstance <CookingAI>().ViewDiet(MsgDTO, param)); } // 装备 if (DailyVipShopSvc[name] != null) { return(CrossWorldAiSvc[MsgDTO.FromGroup].AIInstance <VipServiceAi>().ViewArmer(MsgDTO, param)); } // 远程地点 if (ExpeditionSceneSvc[name] != null) { return(CrossWorldAiSvc[MsgDTO.FromGroup].AIInstance <ExpeditionAI>().ViewExpedition(MsgDTO, param)); } // 东方自定义卡牌 if (!string.IsNullOrEmpty(TouhouCardSvc[name])) { return(CrossWorldAiSvc[MsgDTO.FromGroup].AIInstance <TouhouCardAi>().ViewCardCard(MsgDTO, param)); } MsgSender.PushMsg(MsgDTO, "未查找到相关信息!"); return(false); }