コード例 #1
0
 internal static void Write(Stream output, ItemReward instance, Endian endian)
 {
     output.WriteValueU32(instance.Item, endian);
     output.WriteValueS32(instance.Permanent, endian);
     output.WriteValueS32(instance.Duration, endian);
     output.WriteValueS32(instance.Quantity, endian);
     output.WriteValueS32(instance.Delivery, endian);
 }
コード例 #2
0
 public void GiveReward()
 {
     if (ItemReward != null)
     {
         ItemReward.SetActive(true);
     }
     skillTree.skillPoints += SkillPointReward;
 }
コード例 #3
0
 public QuestSaving(List <Goal> goals, string questName, string description, ItemReward reward, bool completed)
 {
     this.Goals       = goals;
     this.QuestName   = questName;
     this.Description = description;
     this.Reward      = reward;
     this.Completed   = completed;
 }
コード例 #4
0
            internal static ItemReward Read(Stream input, Endian endian)
            {
                var instance = new ItemReward();

                instance.Item      = input.ReadValueU32(endian);
                instance.Permanent = input.ReadValueS32(endian);
                instance.Duration  = input.ReadValueS32(endian);
                instance.Quantity  = input.ReadValueS32(endian);
                instance.Delivery  = input.ReadValueS32(endian);
                return(instance);
            }
コード例 #5
0
    void Start()
    {
        // Name of the quest has to be the same as the class name
        QuestName = "IceSnapQuestEasy";
        // InGame description
        Description = "Snap 40 ice blocks";
        Reward      = new ItemReward(150);

        // Add the goals to the list
        Goals.Add(new IceSnapGoal("Snap 40 ice blocks", false, 0, 40));
        Goals.ForEach(g => g.Init());
    }
コード例 #6
0
    void Start()
    {
        // Name of the quest has to be the same as the class name
        QuestName = "CollectSnowflakeQuestEasy";
        // InGame description
        Description = "Collect 3 snowflakes";
        Reward      = new ItemReward(100);

        // Add the goals to the list
        Goals.Add(new CollectGoal(1, "Collect 3 snowflakes", false, 0, 3));
        Goals.ForEach(g => g.Init());
    }
コード例 #7
0
    void Start()
    {
        // Name of the quest has to be the same as the class name
        QuestName = "TotalDistanceQuestHard";
        // InGame description
        Description = "Reach a total distance of 1600 blocks";
        Reward      = new ItemReward(800);

        // Add the goals to the list
        Goals.Add(new TotalDistanceGoal("Reach a total distance of 1600 blocks", false, 0, 1600));
        Goals.ForEach(g => g.Init());
    }
コード例 #8
0
    void Start()
    {
        // Name of the quest has to be the same as the class name
        QuestName = "DistanceQuestEasy";
        // InGame description
        Description = "Reach a distance of 60 blocks";
        Reward      = new ItemReward(100);

        // Add the goals to the list
        Goals.Add(new DistanceGoal("Reach a distance of 60 blocks", false, 0, 60));
        Goals.ForEach(g => g.Init());
    }
コード例 #9
0
    void Start()
    {
        // Name of the quest has to be the same as the class name
        QuestName = "CollectFishQuestEasy";
        // InGame description
        Description = "Collect 25 fish";
        Reward      = new ItemReward(100);

        // Add the goals to the list
        Goals.Add(new CollectGoal(0, "Collect 25 fish", false, 0, 25));
        Goals.ForEach(g => g.Init());
    }
コード例 #10
0
    void Start()
    {
        // Name of the quest has to be the same as the class name
        QuestName = "PlayGamesQuestHard";
        // InGame description
        Description = "Play 5 game";
        Reward      = new ItemReward(500);

        // Add the goals to the list
        Goals.Add(new GamePlayedGoal("Play 5 Game", false, 0, 5));
        Goals.ForEach(g => g.Init());
    }
コード例 #11
0
        public override async Task <RiftMessage> ApplyAsync(RiftMessage message, FormatData data)
        {
            var rewardString = data.Reward switch
            {
                ItemReward itemReward => data.RewardService.Format(itemReward),
                RoleReward roleReward => await data.RewardService.FormatAsync(roleReward),
                BackgroundReward backgroundReward => await data.RewardService.FormatAsync(backgroundReward),
                _ => "Пусто :("
            };

            return(await ReplaceDataAsync(message, rewardString));
        }
    }
コード例 #12
0
ファイル: ItemReward.cs プロジェクト: Tathomp/TacticsGame
    public override Reward Copy()
    {
        List <string> items = new List <string>();

        foreach (string i in itemRewards)
        {
            items.Add(i);
        }

        ItemReward ir = new ItemReward(items);

        return(ir);
    }
コード例 #13
0
            async Task GiveAsync(IUser user, ItemReward reward)
            {
                if (!(user is SocketGuildUser sgUser))
                {
                    return;
                }

                await rewardService.DeliverToAsync(sgUser.Id, reward);

                await messageService.SendMessageAsync("admin-give", Settings.ChannelId.Commands, new FormatData(sgUser.Id)
                {
                    Reward = reward
                });
            }
コード例 #14
0
        public override void Write()
        {
            _worldPacket.WriteUInt32(QuestID);
            _worldPacket.WriteUInt32(XPReward);
            _worldPacket.WriteInt64(MoneyReward);
            _worldPacket.WriteUInt32(SkillLineIDReward);
            _worldPacket.WriteUInt32(NumSkillUpsReward);

            _worldPacket.WriteBit(UseQuestReward);
            _worldPacket.WriteBit(LaunchGossip);
            _worldPacket.WriteBit(LaunchQuest);
            _worldPacket.WriteBit(HideChatMessage);

            ItemReward.Write(_worldPacket);
        }
コード例 #15
0
            async Task TakeAsync(IUser user, ItemReward reward)
            {
                if (!(user is SocketGuildUser sgUser))
                {
                    return;
                }

                var invData = reward.ToInventoryData();

                await DB.Inventory.RemoveAsync(sgUser.Id, invData);

                await messageService.SendMessageAsync("admin-take", Settings.ChannelId.Commands, new FormatData(sgUser.Id)
                {
                    Reward = reward
                });
            }
コード例 #16
0
ファイル: RewardService.cs プロジェクト: darkclouddev/Rift
        public string ToPlainString(ItemReward reward)
        {
            var sb = new StringBuilder();

            if (reward.Coins.HasValue)
            {
                sb.Append($"{nameof(reward.Coins)} {reward.Coins.Value.ToString()} ");
            }
            if (reward.Tokens.HasValue)
            {
                sb.Append($"{nameof(reward.Tokens)} {reward.Tokens.Value.ToString()} ");
            }
            if (reward.Chests.HasValue)
            {
                sb.Append($"{nameof(reward.Chests)} {reward.Chests.Value.ToString()} ");
            }
            if (reward.Spheres.HasValue)
            {
                sb.Append($"{nameof(reward.Spheres)} {reward.Spheres.Value.ToString()} ");
            }
            if (reward.Capsules.HasValue)
            {
                sb.Append($"{nameof(reward.Capsules)} {reward.Capsules.Value.ToString()} ");
            }
            if (reward.Tickets.HasValue)
            {
                sb.Append($"{nameof(reward.Tickets)} {reward.Tickets.Value.ToString()} ");
            }
            if (reward.DoubleExps.HasValue)
            {
                sb.Append($"{nameof(reward.DoubleExps)} {reward.DoubleExps.Value.ToString()} ");
            }
            if (reward.BotRespects.HasValue)
            {
                sb.Append($"{nameof(reward.BotRespects)} {reward.BotRespects.Value.ToString()} ");
            }
            if (reward.Rewinds.HasValue)
            {
                sb.Append($"{nameof(reward.Rewinds)} {reward.Rewinds.Value.ToString()} ");
            }

            return(sb.ToString().TrimEnd());
        }
コード例 #17
0
ファイル: RewardService.cs プロジェクト: darkclouddev/Rift
        public string Format(ItemReward reward)
        {
            var sb = new StringBuilder();

            if (reward.Coins.HasValue)
            {
                sb.Append($"{emoteService.GetEmoteString("$emotecoins")} {reward.Coins.Value.ToString()} ");
            }
            if (reward.Tokens.HasValue)
            {
                sb.Append($"{emoteService.GetEmoteString("$emotetokens")} {reward.Tokens.Value.ToString()} ");
            }
            if (reward.Chests.HasValue)
            {
                sb.Append($"{emoteService.GetEmoteString("$emotechest")} {reward.Chests.Value.ToString()} ");
            }
            if (reward.Spheres.HasValue)
            {
                sb.Append($"{emoteService.GetEmoteString("$emotesphere")} {reward.Spheres.Value.ToString()} ");
            }
            if (reward.Capsules.HasValue)
            {
                sb.Append($"{emoteService.GetEmoteString("$emotecapsule")} {reward.Capsules.Value.ToString()} ");
            }
            if (reward.Tickets.HasValue)
            {
                sb.Append($"{emoteService.GetEmoteString("$emoteticket")} {reward.Tickets.Value.ToString()} ");
            }
            if (reward.DoubleExps.HasValue)
            {
                sb.Append($"{emoteService.GetEmoteString("$emote2exp")} {reward.DoubleExps.Value.ToString()} ");
            }
            if (reward.BotRespects.HasValue)
            {
                sb.Append($"{emoteService.GetEmoteString("$emoterespect")} {reward.BotRespects.Value.ToString()} ");
            }
            if (reward.Rewinds.HasValue)
            {
                sb.Append($"{emoteService.GetEmoteString("$emoterewind")} {reward.Rewinds.Value.ToString()} ");
            }

            return(sb.ToString().TrimEnd());
        }
コード例 #18
0
    protected override void OnAwake()
    {
        Transform pivot = transform.Find("Pivot");

        btnReturn = pivot.Find("Top/Btn_Return").gameObject;

        btnReceive    = pivot.Find("Content/Pivot/Btn_Receive").gameObject;
        btnGoto       = pivot.Find("Content/Pivot/Btn_Goto").gameObject;
        mTaskListView = pivot.Find("List/View").GetComponent <UIScrollView>();
        for (int i = 1; i <= 3; i++)
        {
            mGrids[(ETaskType)i] = pivot.Find("List/View/Grid" + i).GetComponent <UIGrid>();
        }

        mTemp = pivot.Find("List/Temp").gameObject;
        mTemp.GetComponent <UIToggle>().group = GTWindowManager.Instance.GetToggleGroupId();
        mTemp.SetActive(false);
        mTaskTargetTitle = pivot.Find("Content/Pivot/TaskTargetTitle").GetComponent <UILabel>();
        mTaskDesc        = pivot.Find("Content/Pivot/TaskDesc").GetComponent <UILabel>();
        mTaskPlan        = pivot.Find("Content/Pivot/TaskPlan").GetComponent <UILabel>();

        for (int i = 1; i <= 6; i++)
        {
            Transform  trans = pivot.Find("Content/Pivot/Rewards/" + i);
            ItemReward tab   = new ItemReward();
            tab.itemBtn     = trans.gameObject;
            tab.itemTexture = trans.Find("Texture").GetComponent <UITexture>();
            tab.itemQuality = trans.Find("Quality").GetComponent <UISprite>();
            tab.itemNum     = trans.Find("Num").GetComponent <UILabel>();
            tab.itemChip    = trans.Find("Chip").gameObject;
            mTaskRewards.Add(tab);
        }

        int group = GTWindowManager.Instance.GetToggleGroupId();

        for (int i = 1; i <= 3; i++)
        {
            UIToggle toggle = pivot.Find("Left/Menus/Menu_" + i).GetComponent <UIToggle>();
            toggle.group = group;
            mMenus.Add((ETaskType)i, toggle);
        }
    }
コード例 #19
0
 private void ShowTaskReward(List <KStruct> list)
 {
     for (int i = 0; i < mTaskRewards.Count; i++)
     {
         ItemReward tab = mTaskRewards[i];
         if (list != null && i < list.Count)
         {
             tab.itemBtn.gameObject.SetActive(true);
             KStruct itemData = list[i];
             GTItemHelper.ShowItemTexture(tab.itemTexture, itemData.Id);
             GTItemHelper.ShowItemQuality(tab.itemQuality, itemData.Id);
             GTItemHelper.ShowItemNum(tab.itemNum, itemData.Num);
             GTItemHelper.ShowItemChip(tab.itemChip, itemData.Id);
         }
         else
         {
             tab.itemBtn.gameObject.SetActive(false);
         }
     }
 }
コード例 #20
0
        public override void DrawWindow(BaseNode b)
        {
            var list = b.dialogEvents;

            b.eventListSize = EditorGUILayout.IntField("size", list.Count);

            if (!b.collapse)
            {
                while (b.eventListSize < list.Count)
                {
                    list.RemoveAt(list.Count - 1);
                    b.addItems.RemoveAt(b.addItems.Count - 1);
                    b.WindowRect.height = b.drawNode.Height;
                }
                while (b.eventListSize > list.Count)
                {
                    list.Add(EDialogEvents.AddItemToPlayersInventory);
                    b.addItems.Add(new ItemReward());
                }
                for (int i = 0; i < list.Count; i++)
                {
                    list[i] = (EDialogEvents)EditorGUILayout.EnumPopup(list[i]);

                    switch (list[i])
                    {
                    case EDialogEvents.AddItemToPlayersInventory:
                        EditorGUILayout.LabelField("Item: ");
                        ItemReward it = b.addItems[i];
                        //    it.Item = EditorGUILayout.ObjectField(it.Item, typeof(Item), false) as Item;

                        EditorGUILayout.LabelField("count: ");
                        it.Count      = EditorGUILayout.IntField(it.Count);
                        b.addItems[i] = it;
                        break;
                    }
                    EditorGUILayout.LabelField("");
                }
                b.WindowRect.height = b.drawNode.Height + (list.Count * 90);
            }
        }
コード例 #21
0
        public async Task NitroRewards()
        {
            var reward = new ItemReward().AddTokens(10u);

            var role = await DB.Roles.GetAsync(91);

            if (!IonicHelper.GetRole(Settings.App.MainGuildId, role.RoleId, out var gr))
            {
                return;
            }

            if (!(gr is SocketRole sr))
            {
                return;
            }

            foreach (var sgUser in sr.Members)
            {
                await rewardService.DeliverToAsync(sgUser.Id, reward);
            }

            await messageService.SendMessageAsync("nitro-booster-reward", Settings.ChannelId.Chat, null);
        }
コード例 #22
0
            public async Task Capsules(uint amount, IUser user)
            {
                var reward = new ItemReward().AddCapsules(amount);

                await GiveAsync(user, reward);
            }
コード例 #23
0
 public void Update(ItemReward itemReward)
 {
     _repository.Update(Mapping.Mapped.Map <Domain.Entities.ItemReward>(itemReward));
 }
コード例 #24
0
ファイル: EconomyService.cs プロジェクト: darkclouddev/Rift
        async Task GiveRewardsForLevelAsync(ulong userId, uint fromLevel, uint toLevel)
        {
            if (!IonicHelper.GetGuildUserById(Settings.App.MainGuildId, userId, out var sgUser))
            {
                return;
            }

            var reward = new ItemReward();

            for (var level = fromLevel + 1; level <= toLevel; level++)
            {
                if (level == 100u)
                {
                    reward.AddCapsules(1u).AddCoins(2_000u);
                }
                else if (level == 50u)
                {
                    reward.AddSpheres(1u).AddCoins(2_000u);
                }
                else if (level % 25u == 0u)
                {
                    reward.AddSpheres(1u).AddCoins(2_000u);
                }
                else if (level % 10u == 0u)
                {
                    reward.AddTokens(2u).AddCoins(2_000u);
                }
                else if (level % 5u == 0u)
                {
                    reward.AddTickets(1u).AddCoins(2_000u);
                }
                else
                {
                    reward.AddChests(1u).AddCoins(2_000u);
                }

                var nitroBooster = await DB.Roles.GetAsync(91);

                if (IonicHelper.HasRolesAny(sgUser, nitroBooster.RoleId))
                {
                    reward.AddChests(2u);
                }

                var rankGold = await DB.Roles.GetAsync(3);

                if (IonicHelper.HasRolesAny(sgUser, rankGold.RoleId))
                {
                    reward.AddCoins(250u);
                }

                var rankPlatinum = await DB.Roles.GetAsync(11);

                if (IonicHelper.HasRolesAny(sgUser, rankPlatinum.RoleId))
                {
                    reward.AddCoins(500u);
                }

                var rankDiamond = await DB.Roles.GetAsync(8);

                if (IonicHelper.HasRolesAny(sgUser, rankDiamond.RoleId))
                {
                    reward.AddCoins(750u);
                }

                var rankMaster = await DB.Roles.GetAsync(79);

                if (IonicHelper.HasRolesAny(sgUser, rankMaster.RoleId))
                {
                    reward.AddCoins(1000u);
                }

                var rankGrandmaster = await DB.Roles.GetAsync(71);

                if (IonicHelper.HasRolesAny(sgUser, rankGrandmaster.RoleId))
                {
                    reward.AddCoins(1250u);
                }

                var rankChallenger = await DB.Roles.GetAsync(23);

                if (IonicHelper.HasRolesAny(sgUser, rankChallenger.RoleId))
                {
                    reward.AddCoins(1500u);
                }
            }

            await rewardService.DeliverToAsync(userId, reward);

            await messageService.SendMessageAsync("levelup", Settings.ChannelId.Chat, new FormatData(userId)
            {
                Reward = reward
            });
        }
コード例 #25
0
ファイル: StoreService.cs プロジェクト: darkclouddev/Rift
        async Task <IonicMessage> PurchaseItemInternalAsync(ulong userId, uint itemId)
        {
            var item = GetItemById(itemId);

            if (item is null)
            {
                return(await messageService.GetMessageAsync("store-wrongnumber", new FormatData(userId)));
            }

            if (!await CanBuyItemAsync(userId))
            {
                return(await messageService.GetMessageAsync("itemstore-cooldown", new FormatData(userId)));
            }

            ItemReward reward;

            switch (item.Type)
            {
            case StoreItemType.Chest:
                reward = new ItemReward().AddChests(item.Amount);
                break;

            case StoreItemType.BotRespect:
                reward = new ItemReward().AddBotRespects(1u);
                break;

            case StoreItemType.Sphere:
                reward = new ItemReward().AddSpheres(1u);
                break;

            default:
                RiftBot.Log.Error($"Wrong type in item store: {item.Type.ToString()}!");
                return(MessageService.Error);
            }

            if (!await TryWithdrawAsync(userId, item))
            {
                switch (item.Currency)
                {
                case Currency.Coins: return(await messageService.GetMessageAsync("store-nocoins", new FormatData(userId)));

                case Currency.Tokens:
                    return(await messageService.GetMessageAsync("store-notokens", new FormatData(userId)));
                }
            }

            if (item.Type == StoreItemType.Chest)
            {
                BoughtChests?.Invoke(null, new BoughtChestsEventArgs(userId, item.Amount));
            }

            await rewardService.DeliverToAsync(userId, reward);

            await DB.Cooldowns.SetLastItemStoreTimeAsync(userId, DateTime.UtcNow);

            await DB.Statistics.AddAsync(userId, new StatisticData { PurchasedItems = item.Amount });

            RiftBot.Log.Information($"Item purchased: #{item.Id.ToString()} by {userId.ToString()}.");

            return(await messageService.GetMessageAsync("store-success", new FormatData(userId)
            {
                Reward = reward
            }));
        }
コード例 #26
0
            public async Task CustomTickets(uint amount, IUser user)
            {
                var reward = new ItemReward().AddTickets(amount);

                await TakeAsync(user, reward);
            }
コード例 #27
0
            public async Task BotRespects(uint amount, IUser user)
            {
                var reward = new ItemReward().AddBotRespects(amount);

                await TakeAsync(user, reward);
            }
コード例 #28
0
            public async Task Spheres(uint amount, IUser user)
            {
                var reward = new ItemReward().AddSpheres(amount);

                await TakeAsync(user, reward);
            }
コード例 #29
0
            public async Task Level(uint amount, IUser user)
            {
                var reward = new ItemReward().AddDoubleExps(amount);

                await TakeAsync(user, reward);
            }
コード例 #30
0
        public void MergeFrom(LootReward other)
        {
            if (other == null)
            {
                return;
            }
            if (other.bonusMetadata_ != null)
            {
                if (bonusMetadata_ == null)
                {
                    BonusMetadata = new global::WUProtos.Data.BonusMetadata();
                }
                BonusMetadata.MergeFrom(other.BonusMetadata);
            }
            switch (other.RewardDataCase)
            {
            case RewardDataOneofCase.ItemReward:
                if (ItemReward == null)
                {
                    ItemReward = new global::WUProtos.Data.VaultItemLootReward();
                }
                ItemReward.MergeFrom(other.ItemReward);
                break;

            case RewardDataOneofCase.CollectionFamilyReward:
                if (CollectionFamilyReward == null)
                {
                    CollectionFamilyReward = new global::WUProtos.Data.Collection.CollectionFamilyLootReward();
                }
                CollectionFamilyReward.MergeFrom(other.CollectionFamilyReward);
                break;

            case RewardDataOneofCase.CollectionReward:
                if (CollectionReward == null)
                {
                    CollectionReward = new global::WUProtos.Data.Collection.CollectionItemReward();
                }
                CollectionReward.MergeFrom(other.CollectionReward);
                break;

            case RewardDataOneofCase.WalkboxReward:
                if (WalkboxReward == null)
                {
                    WalkboxReward = new global::WUProtos.Data.WalkboxReward();
                }
                WalkboxReward.MergeFrom(other.WalkboxReward);
                break;

            case RewardDataOneofCase.PortkeyReward:
                if (PortkeyReward == null)
                {
                    PortkeyReward = new global::WUProtos.Data.PortkeyReward();
                }
                PortkeyReward.MergeFrom(other.PortkeyReward);
                break;

            case RewardDataOneofCase.LootTableReward:
                if (LootTableReward == null)
                {
                    LootTableReward = new global::WUProtos.Data.Loot.LootTableReward();
                }
                LootTableReward.MergeFrom(other.LootTableReward);
                break;

            case RewardDataOneofCase.VaultCapacityReward:
                if (VaultCapacityReward == null)
                {
                    VaultCapacityReward = new global::WUProtos.Data.VaultCapacityLootReward();
                }
                VaultCapacityReward.MergeFrom(other.VaultCapacityReward);
                break;

            case RewardDataOneofCase.GenericRunestone:
                if (GenericRunestone == null)
                {
                    GenericRunestone = new global::WUProtos.Data.GenericRunestoneReward();
                }
                GenericRunestone.MergeFrom(other.GenericRunestone);
                break;

            case RewardDataOneofCase.PotionReward:
                if (PotionReward == null)
                {
                    PotionReward = new global::WUProtos.Data.Potion.PotionReward();
                }
                PotionReward.MergeFrom(other.PotionReward);
                break;

            case RewardDataOneofCase.PortkeyCollectible:
                if (PortkeyCollectible == null)
                {
                    PortkeyCollectible = new global::WUProtos.Data.PortkeyCollectibleReward();
                }
                PortkeyCollectible.MergeFrom(other.PortkeyCollectible);
                break;

            case RewardDataOneofCase.GenericCollectionFamilyReward:
                if (GenericCollectionFamilyReward == null)
                {
                    GenericCollectionFamilyReward = new global::WUProtos.Data.GenericCollectionFamilyLootReward();
                }
                GenericCollectionFamilyReward.MergeFrom(other.GenericCollectionFamilyReward);
                break;

            case RewardDataOneofCase.CauldronReward:
                if (CauldronReward == null)
                {
                    CauldronReward = new global::WUProtos.Data.CauldronReward();
                }
                CauldronReward.MergeFrom(other.CauldronReward);
                break;

            case RewardDataOneofCase.CurrencyReward:
                if (CurrencyReward == null)
                {
                    CurrencyReward = new global::WUProtos.Data.CurrencyReward();
                }
                CurrencyReward.MergeFrom(other.CurrencyReward);
                break;

            case RewardDataOneofCase.QuestReward:
                if (QuestReward == null)
                {
                    QuestReward = new global::WUProtos.Data.QuestReward();
                }
                QuestReward.MergeFrom(other.QuestReward);
                break;
            }

            _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }