Ejemplo n.º 1
0
    public override void Init(BaseSkill baseSkill)
    {
        base.Init(baseSkill);
        var skill = (PassiveSkill)baseSkill;

        AttackType   = skill.AttackType;
        DefenseType  = skill.DefenseType;
        ActiveOnType = skill.ActiveOnType;
    }
Ejemplo n.º 2
0
    public override OnDefenseSkillResult OnDefense(Poring attacker, Poring poring, FaceDice faceDice)
    {
        if (faceDice == ActiveOnType && CurrentCD <= 0)
        {
            // Debug.LogError($"{poring.name} : {this.name}!!");
            float damage = 0;
            switch (DefenseType)
            {
            case DefenseTypeResult.None:
                damage = 0;
                break;

            case DefenseTypeResult.Counter:
                damage  = (DamageType == DamageType.PAtk) ? poring.Property.CurrentPAtk : poring.Property.CurrentMAtk;
                damage *= poring.GetBlessingBuff();
                EffectReceiver maximizePower = poring.GetStatus(SkillStatus.MaximizePower);
                damage *= (maximizePower != null) ? maximizePower.Damage : 1;
                if (attacker.Node != poring.Node)
                {
                    DefenseType = DefenseTypeResult.None;
                    damage      = 0;
                }
                if (poring.CheckHasStatus(SkillStatus.Blind))
                {
                    damage = 0;
                }
                break;

            case DefenseTypeResult.Dodge:
                damage = 0;
                break;
            }

            return(new OnDefenseSkillResult()
            {
                Type = DefenseType,
                DamageType = DamageType,
                EffectStatusResults = SetEffectOwnerIdAndDamage(poring),
                DamageResult = damage,
                EffectOnSelf = EffectOnSelf,
                EffectOnTarget = EffectOnHit,
            });
        }
        else
        {
            return(new OnDefenseSkillResult()
            {
                Type = DefenseTypeResult.None,
                DamageType = DamageType,
                EffectStatusResults = new List <EffectReceiver>(),
                DamageResult = 0
            });
        }
    }
Ejemplo n.º 3
0
 public OnDefenseSkillResult(DefenseTypeResult type, DamageType damageType, float damageResult, List <EffectReceiver> statusResult = null, GameObject effectOnSelf = null, GameObject effectOnTarget = null)
 {
     if (statusResult == null)
     {
         statusResult = new List <EffectReceiver>();
     }
     Type                = type;
     DamageType          = damageType;
     EffectStatusResults = statusResult;
     DamageResult        = damageResult;
     EffectOnSelf        = effectOnSelf;
     EffectOnTarget      = effectOnTarget;
 }