private Sprite GetSpriteForReward(TierReward pmusReward) { Sprite uniButtonSprite = null; switch (pmusReward.RewardType) { case TierReward.REWARDTYPE.Ability: switch (((AbilityTierReward)pmusReward).TierAbility.AbiltyType) { case Ability.ABILITYTYPE.Buff: uniButtonSprite = mdictButtonSprites["Buff"]; break; case Ability.ABILITYTYPE.Debuff: uniButtonSprite = mdictButtonSprites["Debuff"]; break; case Ability.ABILITYTYPE.MultiTarget: uniButtonSprite = mdictButtonSprites["Multi"]; break; case Ability.ABILITYTYPE.SingleTarget: uniButtonSprite = mdictButtonSprites["Single"]; break; } break; case TierReward.REWARDTYPE.Resource: switch (((ResourceTierReward)pmusReward).ResourceType) { case TierReward.RESOURCETYPE.Material: uniButtonSprite = mdictButtonSprites["Mat"]; break; case TierReward.RESOURCETYPE.Worshipper: uniButtonSprite = mdictButtonSprites["Wor"]; break; } break; case TierReward.REWARDTYPE.ResourceMultiplier: switch (((ResourceMultiplierTierReward)pmusReward).ResourceType) { case TierReward.RESOURCETYPE.Material: uniButtonSprite = mdictButtonSprites["Matx"]; break; case TierReward.RESOURCETYPE.Worshipper: uniButtonSprite = mdictButtonSprites["Worx"]; break; } break; } if (uniButtonSprite == null) { uniButtonSprite = mdictButtonSprites["Default"]; } return(uniButtonSprite); }
/// <summary> /// Constuctor for creating an ability tier reward /// Loads the ability reward based on the given ability name /// </summary> /// <param name="pstrName">The name of the ability to be loaded</param> /// <param name="pmusPreviousRequiredTierReward">The previous reward required to unlock this reward. Optional</param> public AbilityTierReward(string pstrName, TierReward pmusPreviousRequiredTierReward = null) { RewardType = REWARDTYPE.Ability; RewardName = pstrName; PreviousRequiredReward = pmusPreviousRequiredTierReward; ChildRewards = new List <TierReward>(); TierAbility = Ability.LoadAbilityFromName(pstrName); RewardDescription = TierAbility.AbilityDescription; }
/// <summary> /// Constructor for creating a resource multiplier reward. /// </summary> /// <param name="pstrName">The name of the reward displayed to the player.</param> /// <param name="pstrDesc">A descrition of the reward. Will be displayed on the reward tree.</param> /// <param name="penumType">The resource type to be rewarded</param> /// <param name="pfMultiplier">The multipler of resource to be added.</param> /// <param name="pmusPreviousRequiredTierReward">The previous reward required to unlock this reward. Optional</param> public ResourceMultiplierTierReward(string pstrName, string pstrDesc, RESOURCETYPE penumType, float pfMultiplier, TierReward pmusPreviousRequiredTierReward = null) { RewardType = REWARDTYPE.ResourceMultiplier; RewardName = pstrName; RewardDescription = pstrDesc; ResourceType = penumType; Multiplier = pfMultiplier; PreviousRequiredReward = pmusPreviousRequiredTierReward; ChildRewards = new List <TierReward>(); }
/// <summary> /// Constructor for creating a resource amount reward /// </summary> /// <param name="pstrName">The name of the reward displayed to the player.</param> /// <param name="pstrDesc">A descrition of the reward. Will be displayed on the reward tree.</param> /// <param name="penumType">The resource type to be rewarded</param> /// <param name="pintAmount">The amount of resource rewarded.</param> /// <param name="pmusPreviousRequiredTierReward">The previous reward required to unlock this reward. Optional</param> public ResourceTierReward(string pstrName, string pstrDesc, RESOURCETYPE penumType, int pintAmount, TierReward pmusPreviousRequiredTierReward = null) : base() { RewardType = REWARDTYPE.Resource; RewardName = pstrName; RewardDescription = pstrDesc; ResourceType = penumType; Amount = pintAmount; PreviousRequiredReward = pmusPreviousRequiredTierReward; ChildRewards = new List <TierReward>(); }
/// <summary> /// Callback method attached to each button to attempt to unlock itself /// </summary> /// <param name="pmusTierReward"></param> public void RewardClicked(TierReward pmusTierReward) { if (GameObject.Find("GameManager").GetComponent <GameManager>().UnlockReward(pmusTierReward)) { // Grey out self, light up child buttons pmusTierReward.ButtonObject.GetComponent <Image>().color = UnlockedColor; foreach (TierReward childReward in pmusTierReward.ChildRewards) { childReward.ButtonObject.GetComponent <Image>().color = AvailableColor; } } }
/// <summary> /// Parse the entire tier reward tree to find a matching reward by reward name /// Used to show which abilites are unlocked on return from save state /// Recursive tree search /// </summary> /// <param name="pstrRewardName"></param> /// <param name="parrTierRewards"></param> /// <returns></returns> public static TierReward FindRewardByName(string pstrRewardName, List <TierReward> parrTierRewards) { TierReward musFoundTierReward = null; if (parrTierRewards != null) { foreach (TierReward musTierReward in parrTierRewards) { if (musTierReward.RewardName.Equals(pstrRewardName)) { return(musTierReward); } musFoundTierReward = FindRewardByName(pstrRewardName, musTierReward.ChildRewards); if (musFoundTierReward != null) { return(musFoundTierReward); } } } // Reward not found return(null); }