Exemple #1
0
 void Update()
 {
     if (powers.Count > 0)
     {
         AbstractPower tAbstractPower = powers[0];
     }
 }
Exemple #2
0
    public void AddPower(AbstractPower _powerToApply)
    {
        bool tIsHasBuffAlready = false;

        for (int i = 0; i < powers.Count; i++)
        {
            if (powers[i].ID == _powerToApply.ID)
            {
                powers[i].StackPower(_powerToApply.Amount);
                powers[i].UpdateDescription();
                tIsHasBuffAlready = true;
            }
        }

        if (!tIsHasBuffAlready)
        {
            powers.Add(_powerToApply);
            if (IsPlayer)
            {
                int tBuffCount = 0;
                for (int i = 0; i < powers.Count; i++)
                {
                    if (powers[i].Type == PowerType.Buff)
                    {
                        tBuffCount++;
                    }
                }

                if (tBuffCount >= 10)
                {
                    //UnlockTracker.unlockAchievement("POWERFUL");
                }
            }
        }
    }
Exemple #3
0
    public ApplyPowerAction(AbstractCreature _target, AbstractCreature _source, AbstractPower _powerToApply, int _stackAmount, bool _isFast, AttackEffect _attackEffect)
    {
        SetValues(_target, _source, _stackAmount);
        powerToApply = _powerToApply;
        if (AbstractDungeon.Player.HasRelic("SnakeSkull") && Source != null && Source.IsPlayer && Target != Source && powerToApply.ID.Equals("Poison"))
        {
            //AbstractDungeon.Player.GetRelic("SnakeSull").flash();
            powerToApply.Amount++;
            Amount++;
        }

        if (powerToApply.ID.Equals("Corruption"))       //腐化
        {
            for (int i = 0; i < AbstractDungeon.Player.Hand.Group.Count; i++)
            {
                AbstractCard tCard = AbstractDungeon.Player.Hand.Group[i];
                if (tCard.Type == CardType.Skill)
                {
                    tCard.ModifyCostForCombat(-9);
                }
            }

            for (int i = 0; i < AbstractDungeon.Player.DrawPile.Group.Count; i++)
            {
                AbstractCard tCard = AbstractDungeon.Player.DrawPile.Group[i];
                if (tCard.Type == CardType.Skill)
                {
                    tCard.ModifyCostForCombat(-9);
                }
            }

            for (int i = 0; i < AbstractDungeon.Player.DiscardPile.Group.Count; i++)
            {
                AbstractCard tCard = AbstractDungeon.Player.DiscardPile.Group[i];
                if (tCard.Type == CardType.Skill)
                {
                    tCard.ModifyCostForCombat(-9);
                }
            }

            for (int i = 0; i < AbstractDungeon.Player.ExhaustPile.Group.Count; i++)
            {
                AbstractCard tCard = AbstractDungeon.Player.ExhaustPile.Group[i];
                if (tCard.Type == CardType.Skill)
                {
                    tCard.ModifyCostForCombat(-9);
                }
            }
        }

        GameActionType   = ActionType.Power;
        GameAttackEffect = _attackEffect;
        if (AbstractDungeon.GetMonsters().AreMonstersBasicallyDead())
        {
            IsDone = true;
        }
    }
Exemple #4
0
    public void ApplyFocus()
    {
        AbstractPower tPower = AbstractDungeon.Player.GetPower("Focus");

        if (null != tPower)
        {
            PassiveAmount = Mathf.Max(0, PassiveAmount + tPower.Amount);
        }
    }
Exemple #5
0
    public void ApplyFocus()
    {
        AbstractPower tPower = AbstractDungeon.Player.GetPower("Focus");

        if (tPower != null && Id.Equals("Plasma"))
        {
            PassiveAmount = Mathf.Max(0, BasePassiveAmount + tPower.Amount);
            EvokeAmount   = Mathf.Max(0, BaseEvokeAmount + tPower.Amount);
        }
    }
Exemple #6
0
    public AbstractPower GetPower(string _targetId)
    {
        AbstractPower tAbstractPower = null;

        for (int i = 0; i < powers.Count; i++)
        {
            if (powers[i].ID.Equals(_targetId))
            {
                tAbstractPower = powers[i];
            }
        }
        return(tAbstractPower);
    }
Exemple #7
0
 public void TriggerOnOtherCardPlayed(AbstractCard _usedCard)
 {
     for (int i = 0; i < Group.Count; i++)
     {
         AbstractCard tCard = Group[i];
         if (tCard != _usedCard)
         {
             tCard.TriggerOnCardPlayed(_usedCard);
         }
     }
     for (int i = 0; i < AbstractDungeon.Player.powers.Count; i++)
     {
         AbstractPower tAbstractPower = AbstractDungeon.Player.powers[i];
         tAbstractPower.OnAfterCardPlayed(_usedCard);
     }
 }
Exemple #8
0
    public void Use(AbstractPlayer _player, AbstractMonster _monster)
    {
        //AbstractDungeon.ActionManager.AddToBottom(new);
        bool tIsPowerExist = false;

        for (int i = 0; i < _player.powers.Count; i++)
        {
            AbstractPower tPower = _player.powers[i];
            if (tPower.ID.Equals("Corruption"))
            {
                tIsPowerExist = true;
                break;
            }
        }

        if (!tIsPowerExist)
        {
            AbstractDungeon.ActionManager.AddToBottom(new ApplyPowerAction(_player, _player, new CorruptionPower(_player)));
        }
    }
Exemple #9
0
    private void applyPowersToBlock()
    {
        IsBlockModified = false;
        float tValue = BaseBlock;

        for (int i = 0; i < AbstractDungeon.Player.powers.Count; i++)
        {
            AbstractPower tPower = AbstractDungeon.Player.powers[i];
            tValue = tPower.ModifyBlock(tValue);
            if (BaseBlock != Math.Floor(tValue))
            {
                IsBlockModified = true;
            }
        }

        if (tValue < 0f)
        {
            tValue = 0;
        }

        Block = (int)Math.Floor(tValue);
    }
Exemple #10
0
 public ApplyPowerAction(AbstractCreature _target, AbstractCreature _source, AbstractPower _powerToApply, int _stackAmount, AttackEffect _effect) : this(_target, _source, _powerToApply, _stackAmount, false, _effect)
 {
 }
Exemple #11
0
 public ApplyPowerAction(AbstractCreature _target, AbstractCreature _source, AbstractPower _powerToApply) : this(_target, _source, _powerToApply, -1)
 {
 }
Exemple #12
0
 public ApplyPowerAction(AbstractCreature _target, AbstractCreature _source, AbstractPower _powerToApply, int _stackAmount, bool _isFast) : this(_target, _source, _powerToApply, _stackAmount, _isFast, AttackEffect.None)
 {
 }
Exemple #13
0
 public GainPowerEffect(AbstractPower _power)
 {
     if (_power.Type == PowerType.Buff)
     {
     }
 }