Example #1
0
        public bool Buy(MsgInformationEx MsgDTO, object[] param)
        {
            var name   = param[0] as string;
            var vipSvc = DailyVipShopSvc[name];

            if (vipSvc != null)
            {
                DailyVipShopSvc.Serve(MsgDTO, name);
                return(false);
            }

            if (OSPersonBuff.CheckBuff(MsgDTO.FromQQ, "快晴"))
            {
                MsgSender.PushMsg(MsgDTO, "你无法进行该操作!(快晴)");
                return(false);
            }

            var sellingItems = TransHelper.GetDailySellItems();
            var todayRec     = DailySellItemRareRecord.GetToday();

            if (DateTime.Now.Hour >= todayRec.Hour && DateTime.Now.Hour <= todayRec.Hour + 2)
            {
                sellingItems = sellingItems.Concat(todayRec.Items);
            }

            var sellItem = sellingItems.FirstOrDefault(si => si.Name == name);

            if (sellItem == null)
            {
                MsgSender.PushMsg(MsgDTO, "此物品未在商店中售卖!");
                return(false);
            }

            var osPerson = OSPerson.GetPerson(MsgDTO.FromQQ);

            if (osPerson.Golds < sellItem.Price)
            {
                MsgSender.PushMsg(MsgDTO, "你持有的金币不足以购买此物品!");
                return(false);
            }

            var price = OSPersonBuff.CheckBuff(MsgDTO.FromQQ, "极光") ? sellItem.Price * 80 / 100 : sellItem.Price;

            if (!WaiterSvc.WaitForConfirm_Gold(MsgDTO, price))
            {
                MsgSender.PushMsg(MsgDTO, "交易取消!");
                return(false);
            }

            var record    = ItemCollectionRecord.Get(MsgDTO.FromQQ);
            var incomeMsg = record.ItemIncome(sellItem.Name);

            OSPerson.GoldConsume(osPerson.QQNum, price);

            MsgSender.PushMsg(MsgDTO, $"{incomeMsg}\r\n购买成功!你当前剩余的金币为 {(osPerson.Golds - sellItem.Price).CurencyFormat()}");
            return(true);
        }
Example #2
0
        public void 雾雨()
        {
            var sellingItems = TransHelper.GetDailySellItems();
            var item         = sellingItems.RandElement();
            var record       = ItemCollectionRecord.Get(SelfQQNum);
            var msg          = record.ItemIncome(item.Name);

            MsgSender.PushMsg(GroupNum, 0, $"你获得了:{item.Name}\r\n{msg}", BindAi);
        }
Example #3
0
        public bool Purchase(MsgInformationEx MsgDTO)
        {
            var shopItems = TransHelper.GetDailySellItems();
            var randItem  = shopItems.RandElement();
            var itemColle = ItemCollectionRecord.Get(MsgDTO.FromQQ);
            var msg       = itemColle.ItemIncome(randItem.Name);

            msg = $"恭喜你获得了 {randItem.Name}\r\n{msg}";
            MsgSender.PushMsg(MsgDTO, msg);

            return(true);
        }
Example #4
0
        public bool ShopInfo(MsgInformationEx MsgDTO, object[] param)
        {
            var osPerson = OSPerson.GetPerson(MsgDTO.FromQQ);
            var golds    = osPerson.Golds;

            var sellItems = TransHelper.GetDailySellItems();
            var record    = ItemCollectionRecord.Get(MsgDTO.FromQQ);
            var itemsStr  = string.Join("\r\n", sellItems.Select(si =>
                                                                 $"{si.Name}({HonorSvc.FindHonorFullName(si.Name)})({record.GetCount(si.Name)})({si.Attr}):{si.Price.CurencyFormat()}"));

            var msg = $"今日售卖的商品:\r\n{itemsStr}\r\n你当前持有 {golds.CurencyFormat()}";

            MsgSender.PushMsg(MsgDTO, msg);

            return(true);
        }
Example #5
0
        public bool OpenFinalTreasure(MsgInformationEx MsgDTO, object[] param)
        {
            var record = SegmentRecord.Get(MsgDTO.FromQQ);

            if (!record.CanOpenFinalTreasure)
            {
                MsgSender.PushMsg(MsgDTO, "很遗憾,你还不能开启终极宝藏,继续努力吧!(开启过所有其他宝藏才能开启终极宝藏!)", true);
                return(false);
            }

            var options     = new[] { "获取500金币", "随机获取商店售卖的一件商品*5", "宠物获取50点经验值", "捞瓶子机会*5(仅当日有效)" };
            var selectedIdx = WaiterSvc.WaitForOptions(MsgDTO.FromGroup, MsgDTO.FromQQ, "请选择你要开启的宝藏:", options, MsgDTO.BindAi);

            if (selectedIdx < 0)
            {
                MsgSender.PushMsg(MsgDTO, "你已经放弃了思考!");
                return(false);
            }

            switch (selectedIdx)
            {
            case 0:
            {
                var osPerson = OSPerson.GetPerson(MsgDTO.FromQQ);
                osPerson.Golds += 500;
                osPerson.Update();

                MsgSender.PushMsg(MsgDTO, $"恭喜你获得了 {500.CurencyFormat()}!");
                break;
            }

            case 1:
            {
                var items    = TransHelper.GetDailySellItems();
                var randItem = items.RandElement();

                MsgSender.PushMsg(MsgDTO, $"恭喜你获得了 {randItem.Name}*5!");

                var collo = ItemCollectionRecord.Get(MsgDTO.FromQQ);
                var msg   = collo.ItemIncome(randItem.Name, 5);
                if (!string.IsNullOrEmpty(msg))
                {
                    MsgSender.PushMsg(MsgDTO, msg);
                }
                break;
            }

            case 2:
            {
                var pet = PetRecord.Get(MsgDTO.FromQQ);
                var msg = pet.ExtGain(MsgDTO, 50);
                MsgSender.PushMsg(MsgDTO, msg);
                break;
            }

            case 3:
            {
                var dailyLimit = DailyLimitRecord.Get(MsgDTO.FromQQ, "DriftBottleAI_FishingBottle");
                dailyLimit.Decache(5);
                dailyLimit.Update();

                MsgSender.PushMsg(MsgDTO, "恭喜你获取 捞瓶子机会*5(仅当日有效) !");
                break;
            }
            }

            record.FinalTreasureCount++;
            record.Update();

            return(true);
        }