//===================================================== private void SetRewardItem(eSwitchItem switchItem, eTradingCardClassification cardClassification, eTradingCardRarity cardRarity, eTradingCardCondition cardCondition) { if (switchItem == eSwitchItem.NULL) { // Reset reward to gems or a card _reward = SceneManager.GetChestReward(_type, cardClassification, cardRarity, cardCondition); } else { if (_reward == null) { _reward = new ChestReward(); } // Clear other reward items if switchItem is set _reward.Gems = 0; _reward.Card = null; _reward.SwitchItem = switchItem; } //Debug.Log( "Chest: " + _type + " : " + _reward ); // Initialise chest switchItem as reward if (_chestReward != null && _reward != null) { _chestReward.Init(_reward); } }
//===================================================== public ChestReward() { Gems = 0; Card = new TradingCardSpreadsheetItem(); CardCondition = eTradingCardCondition.MINT; SwitchItem = eSwitchItem.NULL; }
//===================================================== public void Refresh() { CheckReferences(); // Update chest-model //Debug.Log( "Model type: " + _type + " : " + _model ); var mdlChest = ResourcesChests.GetModel(_type, _model); var chestModel = Instantiate(mdlChest) as GameObject; Init(chestModel); // Special Case: editor changes only update _rewardSwitchItem because of enumerated type so forcing update on _reward // Do we need to set the chest-reward? if (_reward == null) { // Set reward (gems or a card). Special 'key' items only set in inspector for large chests (NULL forces normal reward setup) _rewardSwitchItem = eSwitchItem.NULL; SetRewardItem(_rewardSwitchItem, _cardClassification, _cardRarity, _cardCondition); } else { if (_reward.SwitchItem != _rewardSwitchItem) { SetRewardItem(_rewardSwitchItem, _cardClassification, _cardRarity, _cardCondition); } } }
//===================================================== #region Private Methods private void Awake() { _maxPlayerGems = Convert.ToInt32(SettingsManager.GetSettingsItem("PLAYER_MAX_GEMS", -1)); _maxPlayerRedGems = Convert.ToInt32(SettingsManager.GetSettingsItem("PLAYER_MAX_RED_GEMS", -1)); // Reset _localPlayerData = new PlayerData(); _currentSwitchItem = eSwitchItem.NULL; _is100GemKeyActive = false; _isRedGemKeyActive = false; }
//===================================================== public static void AwardPlayer(ChestReward reward) { if (reward == null) { return; } if (reward.Gems > 0) { AddPlayerGems(reward.Gems); //Debug.Log( "Gems collected: " + reward.Gems ); } else if (string.IsNullOrEmpty(reward.Card.id) == false) { // Add card to players collection var heldCard = GameDataManager.Instance.AddTradingCard(reward.Card.id, reward.CardCondition); // If card rarity is TEACHER unlock special NPC e.g. Faragonda if (reward.Card.rarity == eTradingCardRarity.TEACHER && reward.Card.id != "NULL") { var npc = NPCItemsManager.GetNPCItemIDFromCardId(reward.Card.id); if (npc != eNPC.NULL) { GameDataManager.Instance.UnlockPlayerNPC(npc); } } // Show popup if (PopupChestReward.instance != null) { PopupChestReward.instance.Show(heldCard, 1.5f); } //Debug.Log( "Card collected: " + reward.Card._id ); } else if (reward.SwitchItem != eSwitchItem.NULL) { _currentSwitchItem = reward.SwitchItem; //Debug.Log( "Switch Item received: " + _currentSwitchItem ); } // Play player's celebrate animation PlayerManager.OnCelebrate(); }