Esempio n. 1
0
        public override bool TakeAction()
        {
            receipt = UsedItemResult.Successfully;

            var itemconfig = new ShareCacheStruct <Config_Item>().FindKey(itemId);

            if (itemconfig == null)
            {
                new BaseLog().SaveLog(string.Format("No found item config. ID={0}", itemId));
                return(false);
            }

            var itemdata = GetPackage.FindItem(itemId);

            if (itemdata == null)
            {
                receipt = UsedItemResult.NoItem;
                return(true);
            }
            if (itemdata.Num < useNum)
            {
                receipt = UsedItemResult.ItemNumError;
                return(true);
            }

            BigInteger sellgold = BigInteger.Parse(itemconfig.SellGold);

            if (sellgold == 0)
            {
                receipt = UsedItemResult.Unavailable;
                return(true);
            }


            BigInteger resourceNum = BigInteger.Parse(itemconfig.SellGold);

            UserHelper.RewardsGold(Current.UserId, resourceNum * useNum, UpdateCoinOperate.UserItemReward);
            //receipt.GainGold = resourceNum;

            GetPackage.RemoveItem(itemId, useNum);
            return(true);
        }
Esempio n. 2
0
        public override bool TakeAction()
        {
            ItemData gemData = GetPackage.FindItem(gemID);

            if (gemData == null)
            {
                receipt = UsedItemResult.NoItem;
                return(true);
            }

            var itemcfg = new ShareCacheStruct <Config_Item>().FindKey(gemID);
            var gemcfg  = new ShareCacheStruct <Config_Gem>().Find(t => (t.ItemID == gemID));

            if (itemcfg == null || gemcfg == null || itemcfg.ItemType != ItemType.Gem)
            {
                return(false);
            }
            var nextItemcfg = new ShareCacheStruct <Config_Item>().Find(t => (
                                                                            t.ItemType == ItemType.Gem && t.Species == itemcfg.Species && (t.ItemGrade == itemcfg.ItemGrade + 1))
                                                                        );

            if (nextItemcfg == null)
            {
                return(false);
            }
            int compoundNum = gemData.Num / gemcfg.Number;
            int needNum     = compoundNum * gemcfg.Number;

            if (gemData.Num < needNum)
            {
                receipt = UsedItemResult.ItemNumError;
                return(true);
            }

            UserHelper.RewardsItem(Current.UserId, nextItemcfg.ItemID, compoundNum);
            receipt = UsedItemResult.Successfully;

            GetPackage.RemoveItem(gemID, needNum);

            return(true);
        }
Esempio n. 3
0
        public override bool TakeAction()
        {
            ItemData gemData = GetPackage.FindItem(gemID);

            if (gemData == null)
            {
                receipt = UsedItemResult.NoItem;
                return(true);
            }
            if (gemData.Num < gemNum)
            {
                receipt = UsedItemResult.ItemNumError;
                return(true);
            }

            var itemcfg = new ShareCacheStruct <Config_Item>().FindKey(gemID);
            var gemcfg  = new ShareCacheStruct <Config_Gem>().Find(t => (t.ItemID == gemID));

            if (itemcfg == null || gemcfg == null || itemcfg.ItemType != ItemType.Gem)
            {
                return(false);
            }

            float fprob = gemNum.ToFloat() / gemcfg.Number;

            if (random.Next(1000) <= fprob * 1000)
            {
                //GetPackage.AddItem(gemcfg.GemID, 1);
                UserHelper.RewardsItem(Current.UserId, gemcfg.GemID, 1);
                receipt = UsedItemResult.Successfully;
            }
            else
            {
                receipt = UsedItemResult.GemFailed;
            }
            GetPackage.RemoveItem(gemID, gemNum);

            return(true);
        }
Esempio n. 4
0
        public override bool TakeAction()
        {
            EquipData equip = GetEquips.FindEquipData(equipID);

            List <int> gemList = new List <int>();

            if (atkGem != 0)
            {
                gemList.Add(atkGem);
            }
            if (defGem != 0)
            {
                gemList.Add(defGem);
            }
            if (hpGem != 0)
            {
                gemList.Add(hpGem);
            }
            if (critGem != 0)
            {
                gemList.Add(critGem);
            }
            if (hitGem != 0)
            {
                gemList.Add(hitGem);
            }
            if (dodgeGem != 0)
            {
                gemList.Add(dodgeGem);
            }
            if (tenacityGem != 0)
            {
                gemList.Add(tenacityGem);
            }
            foreach (var v in gemList)
            {
                if (GetPackage.FindItem(v) == null)
                {
                    receipt = UsedItemResult.NoItem;
                    return(true);
                }
            }
            foreach (var v in gemList)
            {
                var itemcfg = new ShareCacheStruct <Config_Item>().FindKey(v);
                if (itemcfg.ItemType != ItemType.Gem)
                {
                    return(false);
                }


                switch ((GemType)itemcfg.Species)
                {
                case GemType.Attack:
                {
                    if (equip.AtkGem != 0)
                    {
                        return(false);
                    }
                    equip.AtkGem = v;
                }
                break;

                case GemType.Defense:
                {
                    if (equip.DefGem != 0)
                    {
                        return(false);
                    }
                    equip.DefGem = v;
                }
                break;

                case GemType.Hp:
                {
                    if (equip.HpGem != 0)
                    {
                        return(false);
                    }
                    equip.HpGem = v;
                }
                break;

                case GemType.Crit:
                {
                    if (equip.CritGem != 0)
                    {
                        return(false);
                    }
                    equip.CritGem = v;
                }
                break;

                case GemType.Hit:
                {
                    if (equip.HitGem != 0)
                    {
                        return(false);
                    }
                    equip.HitGem = v;
                }
                break;

                case GemType.Dodge:
                {
                    if (equip.DodgeGem != 0)
                    {
                        return(false);
                    }
                    equip.DodgeGem = v;
                }
                break;

                case GemType.Tenacity:
                {
                    if (equip.TenacityGem != 0)
                    {
                        return(false);
                    }
                    equip.TenacityGem = v;
                }
                break;
                }



                GetPackage.RemoveItem(v, 1);
            }
            UserHelper.RefreshUserFightValue(Current.UserId);


            receipt = UsedItemResult.Successfully;
            return(true);
        }
Esempio n. 5
0
        public override bool TakeAction()
        {
            if (GetPackage.FindItem(gemID) == null)
            {
                receipt = UsedItemResult.NoItem;
                return(true);
            }
            var itemcfg = new ShareCacheStruct <Config_Item>().FindKey(gemID);

            if (itemcfg.ItemType != ItemType.Gem)
            {
                return(false);
            }
            EquipData equip = GetEquips.FindEquipData(equipID);


            switch ((GemType)itemcfg.Species)
            {
            case GemType.Attack:
            {
                if (equip.AtkGem != 0)
                {
                    return(false);
                }
                equip.AtkGem = gemID;
            }
            break;

            case GemType.Defense:
            {
                if (equip.DefGem != 0)
                {
                    return(false);
                }
                equip.DefGem = gemID;
            }
            break;

            case GemType.Hp:
            {
                if (equip.HpGem != 0)
                {
                    return(false);
                }
                equip.HpGem = gemID;
            }
            break;

            case GemType.Crit:
            {
                if (equip.CritGem != 0)
                {
                    return(false);
                }
                equip.CritGem = gemID;
            }
            break;

            case GemType.Hit:
            {
                if (equip.HitGem != 0)
                {
                    return(false);
                }
                equip.HitGem = gemID;
            }
            break;

            case GemType.Dodge:
            {
                if (equip.DodgeGem != 0)
                {
                    return(false);
                }
                equip.DodgeGem = gemID;
            }
            break;

            case GemType.Tenacity:
            {
                if (equip.TenacityGem != 0)
                {
                    return(false);
                }
                equip.TenacityGem = gemID;
            }
            break;
            }
            GetPackage.RemoveItem(gemID, 1);

            UserHelper.RefreshUserFightValue(Current.UserId);


            receipt = UsedItemResult.Successfully;
            return(true);
        }
Esempio n. 6
0
        public override bool TakeAction()
        {
            receipt = UsedItemResult.Successfully;

            var itemconfig = new ShareCacheStruct <Config_Item>().FindKey(itemId);

            if (itemconfig == null)
            {
                new BaseLog().SaveLog(string.Format("No found item config. ID={0}", itemId));
                return(false);
            }

            var itemdata = GetPackage.FindItem(itemId);

            if (itemdata == null)
            {
                receipt = UsedItemResult.NoItem;
                return(true);
            }
            if (itemdata.Num < useNum)
            {
                receipt = UsedItemResult.ItemNumError;
                return(true);
            }

            switch (itemconfig.ResourceType)
            {
            case ResourceType.Gold:
            {
                BigInteger resourceNum = BigInteger.Parse(itemconfig.ResourceNum);
                BigInteger value       = Math.Ceiling(GetBasis.UserLv / 50.0).ToInt() * resourceNum;
                UserHelper.RewardsGold(Current.UserId, value * useNum, UpdateCoinOperate.UserItemReward);
                //receipt.GainGold = resourceNum;
            }
            break;

            case ResourceType.Diamond:
            {
                UserHelper.RewardsDiamond(Current.UserId, itemconfig.ResourceNum.ToInt() * useNum, UpdateCoinOperate.UseItem);
                //receipt.GainDiamond = resourceNum * useNum;
            }
            break;

            case ResourceType.Gift:
            {
                var giftconfig = new ShareCacheStruct <Config_Giftbag>().Find(t => t.ItemID == itemconfig.ItemID);
                if (giftconfig == null)
                {
                    new BaseLog().SaveLog(string.Format("No found gift config. ID={0}", itemconfig.ItemID));
                    return(false);
                }

                //receipt.GainItem = giftconfig.GetRewardsItem();
                var list = giftconfig.GetRewardsItem();
                foreach (var v in list)
                {
                    v.Num *= useNum;
                }
                UserHelper.RewardsItems(Current.UserId, list);
            }
            break;

            case ResourceType.Elf:
            {
                var elfconfig = new ShareCacheStruct <Config_Elves>().Find(t => t.ElvesID == itemconfig.ResourceNum.ToInt());
                if (elfconfig == null)
                {
                    new BaseLog().SaveLog(string.Format("No found elf config. ID={0}", itemconfig.ResourceNum));
                    return(false);
                }

                if (itemconfig.ItemType == ItemType.Elf)
                {
                    UserHelper.RewardsElf(Current.UserId, elfconfig.ElvesID);
                }
                else if (itemconfig.ItemType == ItemType.ElfExperienceCard)
                {
                    long experienceTimeMin = itemconfig.ItemGrade * 60 * 24;

                    UserHelper.RewardsElf(Current.UserId, elfconfig.ElvesID, true, experienceTimeMin);
                }
            }
            break;

            case ResourceType.Vit:
            {
                UserHelper.RewardsVit(Current.UserId, itemconfig.ResourceNum.ToInt() * useNum);
                //receipt.GainDiamond = resourceNum * useNum;
            }
            break;

            default:
            {
                receipt = UsedItemResult.Cannot;
                return(true);
            }
            }

            GetPackage.RemoveItem(itemId, useNum);
            return(true);
        }