Ejemplo n.º 1
0
    // 攻击
    void OnAttack(Character actor)
    {
        if (actor.LastSummonID == ID)
        {
            return;
        }

        actor.LastSummonID = ID;
        actor.ActHit();
        if (actor is Enemy)
        {
            BattleManager.GetInstance().EnemyHit(actor.ID, owner.ID);
        }
        else
        {
            BattleManager.GetInstance().PlayerHit(actor.ID, owner.ID);
        }
        actor.AttackEffect(cfg.hiteffect, 1, new Vector3(0, 0.5f, 0));

        for (int i = 0; i < skilleffects.Length; i++)
        {
            SkillEffect effect = skilleffects[i];
            if (effect.CheckTrigger(SkillEffectTrigger.SKILL_EFFECT_TRIGGER_HIT))
            {
                effect.DoEffect(owner, actor);
            }
        }

        hitcount++;

        // limit attack count
        if (cfg.hitmax != 0 && hitcount >= cfg.hitmax)
        {
            End();
        }
    }