Example #1
0
    public void AddReward(RewardCurrency rewardCurrency, int amount, int id)
    {
        var reward = list.Find(x => x.rewardCurrency == rewardCurrency);

        if (reward.id == 0)
        {
            list.Add(new Reward(rewardCurrency, amount, id));
        }
        else
        {
            reward.amount += amount;
        }
    }
Example #2
0
    /// <summary>
    /// ID가 없는 보상을 추가할 때
    /// </summary>
    /// <param name="rewardCurrency"></param>
    /// <param name="amount"></param>
    public void AddReward(RewardCurrency rewardCurrency, int amount)
    {
        if (rewardCurrency != RewardCurrency.Gold &&
            rewardCurrency != RewardCurrency.Diamond &&
            rewardCurrency != RewardCurrency.Exp)
        {
            Debug.Log("Error AddReward. please enter gold or diamond");
            return;
        }

        var reward = list.Find(x => x.rewardCurrency == rewardCurrency);

        if (reward == null)
        {
            list.Add(new Reward(rewardCurrency, amount));
        }
        else
        {
            reward.amount += amount;
        }
    }
        private Reward[] ParseRewards(string prefix, string postfix = "Reward_")
        {
            Reward[] r   = new Reward[asset.ReadByte($"{prefix}Rewards")];
            int      num = 0;
            string   text;

            while (true)
            {
                if (num >= r.Length)
                {
                    return(r);
                }

                text = $"{prefix}{postfix}{num}_Type";
                if (!asset.Has(text))
                {
                    break;
                }

                RewardType type = asset.ReadEnum <RewardType>(text);
                string     desc = local?.ReadString($"{prefix}{postfix}{num}");
                string     tp   = $"{prefix}{postfix}{num}_";
                switch (type)
                {
                case RewardType.Achievement:
                    r[num] = new RewardAchievement()
                    {
                        ID = asset.ReadString(tp + "ID")
                    };
                    break;

                case RewardType.Event:
                    r[num] = new RewardEvent()
                    {
                        ID = asset.ReadString(tp + "ID")
                    };
                    break;

                case RewardType.Experience:
                    r[num] = new RewardExperience()
                    {
                        Value = asset.ReadUInt32(tp + "Value")
                    };
                    break;

                case RewardType.Flag_Bool:
                    r[num] = new RewardFlagBool()
                    {
                        ID    = asset.ReadUInt16(tp + "ID"),
                        Value = asset.ReadBoolean(tp + "Value")
                    };
                    break;

                case RewardType.Flag_Math:
                    r[num] = new RewardFlagMath()
                    {
                        A_ID      = asset.ReadUInt16(tp + "A_ID"),
                        B_ID      = asset.ReadUInt16(tp + "B_ID"),
                        Operation = asset.ReadEnum <Operation_Type>(tp + "Operation")
                    };
                    break;

                case RewardType.Flag_Short:
                    r[num] = new RewardFlagShort()
                    {
                        ID           = asset.ReadUInt16(tp + "ID"),
                        Modification = asset.ReadEnum <Modification_Type>(tp + "Modification"),
                        Value        = asset.ReadInt16(tp + "Value")
                    };
                    break;

                case RewardType.Flag_Short_Random:
                    r[num] = new RewardFlagShortRandom()
                    {
                        ID           = asset.ReadUInt16(tp + "ID"),
                        Max_Value    = asset.ReadInt16(tp + "Max_Value"),
                        Min_Value    = asset.ReadInt16(tp + "Min_Value"),
                        Modification = asset.ReadEnum <Modification_Type>(tp + "Modification")
                    };
                    break;

                case RewardType.Item:
                    r[num] = new RewardItem()
                    {
                        Ammo       = asset.ReadByte(tp + "Ammo"),
                        Amount     = asset.ReadByte(tp + "Amount"),
                        Auto_Equip = asset.ReadBoolean(tp + "Auto_Equip"),
                        Barrel     = asset.ReadUInt16(tp + "Barrel"),
                        Grip       = asset.ReadUInt16(tp + "Grip"),
                        Magazine   = asset.ReadUInt16(tp + "Magazine"),
                        Sight      = asset.ReadUInt16(tp + "Sight"),
                        Tactical   = asset.ReadUInt16(tp + "Tactical"),
                        ID         = asset.ReadUInt16(tp + "ID")
                    };
                    break;

                case RewardType.Item_Random:
                    r[num] = new RewardItemRandom()
                    {
                        Amount = asset.ReadByte(tp + "Amount"),
                        ID     = asset.ReadUInt16(tp + "ID")
                    };
                    break;

                case RewardType.Quest:
                    r[num] = new RewardQuest()
                    {
                        ID = asset.ReadUInt16(tp + "ID")
                    };
                    break;

                case RewardType.Reputation:
                    r[num] = new RewardReputation()
                    {
                        Value = asset.ReadInt32(tp + "Value")
                    };
                    break;

                case RewardType.Teleport:
                    r[num] = new RewardTeleport()
                    {
                        Spawnpoint = asset.ReadString(tp + "Spawnpoint")
                    };
                    break;

                case RewardType.Vehicle:
                    r[num] = new RewardVehicle()
                    {
                        ID         = asset.ReadUInt16(tp + "ID"),
                        Spawnpoint = asset.ReadString(tp + "Spawnpoint")
                    };
                    break;

                case RewardType.Currency:
                    r[num] = new RewardCurrency()
                    {
                        GUID  = asset.ReadString(tp + "GUID"),
                        Value = asset.ReadUInt32(tp + "Value")
                    };
                    break;

                case RewardType.Hint:
                    r[num] = new RewardHint()
                    {
                        Duration = asset.ReadSingle(tp + "Duration", 2f)
                    };
                    break;
                }
                r[num].Localization = desc ?? "";
                num++;
            }
            return(r);
        }
Example #4
0
 public Reward(RewardCurrency rewardCurrency, int amount)
 {
     this.rewardCurrency = rewardCurrency;
     this.amount         = amount;
     this.id             = 0;
 }
Example #5
0
 public Reward(RewardCurrency rewardCurrency, int amount, int id)
 {
     this.rewardCurrency = rewardCurrency;
     this.amount         = amount;
     this.id             = id;
 }