Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }