예제 #1
0
        private IEnumerator OnEnemyDeath(CharacterDeathParams deathParams)
        {
            if (deathParams == null)
            {
                yield break;
            }
            CharacterState attackingCharacter = deathParams.attackingCharacter;
            RelicManager   relicManager       = deathParams.relicManager;
            SaveManager    saveManager        = deathParams.saveManager;

            if (attackingCharacter != null && attackingCharacter.IsPyreHeart())
            {
                if (!saveManager.PreviewMode)
                {
                    //attackingCharacter.GetCharacterUI().ShowEffectVFX(attackingCharacter, _srcRelicEffectData.GetAppliedVfx());
                    if (!ProviderManager.TryGetProvider <PlayerManager>(out PlayerManager playerManager))
                    {
                        yield break;
                    }
                    playerManager.AdjustGold(goldAmount, isReward: false);
                    deathParams.deadCharacter.ShowNotification("HudNotification_TreasureHeroTriggered".Localize(new LocalizedInteger(deathParams.saveManager.GetAdjustedGoldAmount(goldAmount, isReward: false))), PopupNotificationUI.Source.General);

                    NotifyRelicTriggered(relicManager, attackingCharacter);
                }
            }
        }
예제 #2
0
        // If the Pyre kills something, I want to know about it!
        private IEnumerator OnEnemyDeath(CharacterDeathParams deathParams)
        {
            if (deathParams == null)
            {
                yield break;
            }
            CharacterState attackingCharacter = deathParams.attackingCharacter;
            SaveManager    saveManager        = deathParams.saveManager;

            if (attackingCharacter != null && attackingCharacter.IsPyreHeart())
            {
                var champion   = this.GetAssociatedCharacter();
                var buffAmount = champion.GetStatusEffectStacks(GetStatusId());

                // We killed something, Let's buff
                if (!saveManager.PreviewMode)
                {
                    // attackingCharacter.GetCharacterUI().ShowEffectVFX(attackingCharacter, _srcRelicEffectData.GetAppliedVfx());
                    yield return(champion.BuffMaxHP(buffAmount));
                }
                // We killed something imaginarily, we should preview here? Wait, how does the PYRE preview a kill?
                else
                {
                    //yield return champion.BuffMaxHP(buffAmount);
                    // attackingCharacter.PreviewHpOnPyreHeart(Mathf.Min(attackingCharacter.GetHP() + healAmount, saveManager.GetMaxTowerHP()));
                }
            }
        }
        private IEnumerator OnDeath(CharacterDeathParams deathParams)
        {
            PlayerManager playerManager;

            ProviderManager.TryGetProvider <PlayerManager>(out playerManager);
            CharacterState characterState = GetAssociatedCharacter();
            int            GoldStacks     = characterState.GetStatusEffectStacks(GetStatusId());

            if (GoldStacks == 0)
            {
                yield break;
            }

            if (characterState.PreviewMode)
            {
                yield break;
            }

            if (characterState != null)
            {
                characterState.ShowNotification("HudNotification_TreasureHeroTriggered".Localize(new LocalizedInteger(GoldStacks)), PopupNotificationUI.Source.General);
                //characterState.GetCharacterUI().ShowEffectVFX(characterState, cardEffectState.GetAppliedVFX());
            }
            playerManager.AdjustGold(GoldStacks, isReward: false);
            yield break;
        }