Exemple #1
0
 // 回合结束
 protected virtual void OnRoundEnd(FighterEvent e)
 {
     if (--round <= 0)
     {
         RemoveBuff();
     }
 }
Exemple #2
0
    // 死亡后还原攻击
    void OnDead(FighterEvent e)
    {
        card.RemoveEventListener(BattleEventType.ON_CARD_DEAD, OnDead);

        List <BaseFighter> targetList = card.owner.GetTargetByType(this, TargetType);

        card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(targetList)));
        if (targetList != null || targetList.Count == 0)
        {
            return;
        }

        // 在场的同国家增加攻击力
        foreach (CardFighter target in targetList)
        {
            target.DeductAttack(attackUp);
        }

        // 不在场的增加出场回调
        targetList = card.owner.GetTargetByCountry(card.cardData.country);
        foreach (CardFighter target in targetList)
        {
            if (target == card)
            {
                continue;
            }

            target.RemoveEventListener(BattleEventType.ON_CARD_PRESENT, OnOtherCardPresent);
        }
    }
Exemple #3
0
 // 给同国家的卡牌加攻击
 void OnDead(FighterEvent e)
 {
     if (skill != null)
     {
         skill.DoSkill();
     }
 }
Exemple #4
0
 // 给同国家的卡牌加攻击
 void OnPresent(FighterEvent e)
 {
     if (skill != null)
     {
         skill.DoSkill();
     }
 }
Exemple #5
0
    void OnAttackSucc(FighterEvent e)
    {
        BaseBuff buff = BuffFactory.GetBuffByID(BuffID, skillLevel);

        card.attacker.AddBuff(buff);
        card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card)));
    }
Exemple #6
0
 // 50%概率进入等待区
 void OnCardDead(FighterEvent e)
 {
     if (Random.Range(0, 100) < rate)
     {
         card.DoWait();
         card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card)));
     }
 }
Exemple #7
0
 // 受攻击前减少伤害
 void OnAfterAttackHurt(FighterEvent e)
 {
     if (card.attacker != null && !card.attacker.IsDead)
     {
         card.attacker.OnHurt(damage);
         card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card)));
     }
 }
Exemple #8
0
 // 闪避攻击
 void OnPreAttackHurt(FighterEvent e)
 {
     if (Random.Range(0, 100) < rate)
     {
         card.lastHurtValue = 0;
         card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card)));
     }
 }
Exemple #9
0
 // 伤害后吸血
 void OnAttackSucc(FighterEvent e)
 {
     if (card.lastAttackValue > 0)
     {
         card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card)));
         card.AddHp((int)(card.lastAttackValue * rate / 100f));
     }
 }
Exemple #10
0
 // 攻击成功后提示攻击力
 void OnAttackSucc(FighterEvent e)
 {
     if (card.lastAttackValue > 0)
     {
         card.AddAttack(addAtt);
         card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card)));
     }
 }
Exemple #11
0
 // 攻击成功后提示攻击力
 void OnAttackSucc(FighterEvent e)
 {
     if (card.lastAttackValue > 0)
     {
         card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card)));
         BaseBuff buff = BuffFactory.GetBuffByID(BuffID, skillLevel);
         card.target.AddBuff(buff);
     }
 }
Exemple #12
0
    // 攻击前判断暴击
    void OnPreAttack(FighterEvent e)
    {
        card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card)));

        // 触发暴击
        card.AddAttack(attackUp);

        card.AddEventListener(BattleEventType.ON_PRE_ATTACK, OnAfterAttack);
    }
Exemple #13
0
    protected override void OnRoundEnd(FighterEvent e)
    {
        if (!card.IsDead)
        {
            card.OnHurt(damage);
        }

        base.OnRoundEnd(e);
    }
Exemple #14
0
    // 攻击后还原攻击
    void OnAfterAttack(FighterEvent e)
    {
        if (attackUp > 0)
        {
            card.DeductAttack(attackUp);
            attackUp = 0;

            card.RemoveEventListener(BattleEventType.ON_PRE_ATTACK, OnAfterAttack);
        }
    }
Exemple #15
0
    // 最高受到伤害
    void OnPreSkillHurt(FighterEvent e)
    {
        if (card.attackSkill.SkillType != (int)SkillMagicEnum.SKILL_MAAGIC_TYPE)
        {
            return;
        }

        card.lastHurtValue = Mathf.Min(maxHurt, card.lastHurtValue);
        card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card)));
    }
Exemple #16
0
    void OnOtherCardPresent(FighterEvent e)
    {
        CardFighter target = e.fighter as CardFighter;

        if (target == null)
        {
            return;
        }

        card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(target)));
        target.AddAttack(attackUp);
    }
Exemple #17
0
    // 攻击前判断暴击
    void OnPreAttack(FighterEvent e)
    {
        if (Random.Range(0, 100) < rate)
        {
            card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card)));

            // 触发暴击
            attackUp = (int)(card.Attack * attackUpRate / 100f);
            card.AddAttack(attackUp);
            card.AddEventListener(BattleEventType.ON_PRE_ATTACK, OnAfterAttack);
        }
    }
Exemple #18
0
    // 魔法伤害无效,给攻击者反射伤害
    void OnPreSkillHurt(FighterEvent e)
    {
        if (card.attackSkill.SkillType != (int)SkillMagicEnum.SKILL_MAAGIC_TYPE)
        {
            return;
        }

        card.lastAttackValue = 0;

        if (card.attacker != null && !card.attacker.IsDead)
        {
            card.attacker.OnHurt(damage);
        }

        card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card)));
    }
Exemple #19
0
    // 对对面以及相邻三张卡牌造成100点伤害
    void OnCardDead(FighterEvent e)
    {
        List <BaseFighter> targetList = card.owner.GetTargetByType(this, TargetType);

        if (targetList != null || targetList.Count == 0)
        {
            return;
        }

        card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(targetList)));
        foreach (CardFighter target in targetList)
        {
            if (target.CanDoSkill() && !target.IsDead)
            {
                target.OnHurt(damage);
            }
        }
    }
Exemple #20
0
    // 攻击前判断暴击
    void OnPreAttack(FighterEvent e)
    {
        List <BaseFighter> targets = card.owner.GetTargetByType(this, TargetType);

        if (targets == null || targets.Count == 0)
        {
            return;
        }

        CardFighter target = targets[0] as CardFighter;

        if (target != null && target.cardData.country == enemyType)
        {
            card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card)));

            // 触发暴击
            attackUp = (int)(card.Attack * attackUpRate / 100f);
            card.AddAttack(attackUp);
            card.AddEventListener(BattleEventType.ON_PRE_ATTACK, OnAfterAttack);
        }
    }
Exemple #21
0
 // 最高受到伤害
 void OnCheckImmune(FighterEvent e)
 {
     card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card)));
 }
Exemple #22
0
 // 最高受到伤害
 void OnPreAttackHurt(FighterEvent e)
 {
     card.lastHurtValue = Mathf.Min(maxHurt, card.lastHurtValue);
     card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card)));
 }
Exemple #23
0
 // 提升30点攻击力
 void OnAfterAttackHurt(FighterEvent e)
 {
     card.AddAttack(addAtt);
     card.Actions.Add(SkillStartAction.GetAction(card.ID, skillID, GetTargetID(card)));
 }