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; } }
/// <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); }
public Reward(RewardCurrency rewardCurrency, int amount) { this.rewardCurrency = rewardCurrency; this.amount = amount; this.id = 0; }
public Reward(RewardCurrency rewardCurrency, int amount, int id) { this.rewardCurrency = rewardCurrency; this.amount = amount; this.id = id; }