public RewardPack(RewardBaseType baseType, RewardBase rewardBase, RewardColor rewardColor) { this.BaseType = baseType; this.RewardBase = rewardBase; this.RewardColor = rewardColor; this.unlockData = null; // Null = locked }
/// <summary> /// Gets all the color items for a given base /// </summary> public List <RewardColorItem> GetRewardColorItemsForBase(RewardBase _Base) { List <RewardColorItem> returnList = new List <RewardColorItem>(); // Load all colors for the given reward base var packsOfBase = GetRewardPacks().Where(x => x.RewardBase == _Base); foreach (var pack in packsOfBase) { bool isToBeShown = pack.IsUnlocked; if (isToBeShown) { RewardColorItem rci = new RewardColorItem { data = pack.RewardColor, IsNew = pack.IsNew }; returnList.Add(rci); //Debug.Log("Found color: " + pack.RewardColor.Color1RGB + " and " + pack.RewardColor.Color2RGB); } else { returnList.Add(null); } } // Selection state RewardPack alreadyEquippedPack = AppManager.I.Player.CurrentAnturaCustomizations.GetEquippedPack(_Base.ID); if (alreadyEquippedPack != null) { // If we already equipped a pack of that base, we use the previous color returnList.Find(item => item != null && item.data == alreadyEquippedPack.RewardColor).IsSelected = true; } else { // Else, we select the first available color foreach (var firstItem in returnList) { if (firstItem != null) { firstItem.IsSelected = true; return(returnList); } } } return(returnList); }
/// <summary> /// Selects the actual reward to show on Antura /// </summary> public void SelectRewardColorItem(RewardBase _rewardBase, RewardColor _rewardColor) { var currentSelectedReward = GetRewardPackByPartsIds(_rewardBase.ID, _rewardColor.ID); if (OnRewardSelectionChanged != null) { OnRewardSelectionChanged(currentSelectedReward); } // Makes sure to set everything pack with that color as seen foreach (var pack in GetUnlockedRewardPacksForBase(_rewardBase)) { pack.SetNew(false); } SaveRewardsUnlockDataChanges(); }
public bool IsRewardBaseUnlocked(RewardBase rewardBase) { return(GetUnlockedRewardPacks().Any(x => x.RewardBase == rewardBase)); }
private bool IsRewardBaseNew(RewardBase rewardBase) { return(GetUnlockedRewardPacks().Any(r => r.BaseId == rewardBase.ID && r.IsNew)); }
private bool IsRewardColorNew(RewardBase rewardBase, RewardColor rewardColor) { return(GetUnlockedRewardPacks().Any(r => r.BaseId == rewardBase.ID && r.ColorId == rewardColor.ID && r.IsNew)); }
private IEnumerable <RewardPack> GetLockedRewardPacksForBase(RewardBase _Base) { return(GetLockedRewardPacks().Where(x => x.RewardBase == _Base)); }