Beispiel #1
0
    /*HandleDamage
     * public bool HandleDamage(float atkPoint, FSMbase target, StatusBase status, out float ResultAttackPoint) {
     *  int p = random.Next(100);
     *  bool r = false;
     *  atkPoint *= status.getCurrentStat(STAT.AtkPoint);
     *  if (p < status.getCurrentStat(STAT.CriticalPoint))
     *  {
     *      atkPoint *= status.getCurrentStat(STAT.CriticalDamage);
     *      r = true;
     *  }
     *  target.TakeAttack(atkPoint);
     *  ResultAttackPoint = atkPoint;
     *  return r;
     * }
     * public bool HandleDamage(float atkPoint, FSMbase target, int hitEffectNum, StatusBase status, int cri_hitEffectNum = 0)
     * {
     *  bool r = HandleDamage(atkPoint, target, status, out atkPoint);
     *  if (!r)
     *      defaultEffect(target, hitEffectNum);
     *  else
     *      defaultEffect(target, cri_hitEffectNum);
     *  return r;
     * }
     */
    public void SimpleDamage(float Dmg, IHitable target)
    {
        //TODO : cri계산??
        target.TakeAttack(Dmg, false);
        var mHit = target as HitableBase;

        if (mHit == null)
        {
            effectManager.defaultEffect(target, 0);
        }
    }
Beispiel #2
0
    public void HandleAttack(attackFunc attack, IHitable target, FSMbase sender, float attackPoint, bool cancelAttack = false, bool isKnockBack = false)
    {
        AttackMessage m = attack.Invoke(target, sender, attackPoint);

        if (!m.criCalculated)
        {
            m.CriCalculate(sender.status.getCurrentStat(STAT.CriticalPoint), sender.status.getCurrentStat(STAT.CriticalDamage));
        }
        m.CalcDefense(target, sender);
        target.TakeAttack(m.FinalDamage, cancelAttack);
        if (isKnockBack)
        {
            target.TakeKnockBack(m.knockBackForce, m.knockBackDir);
        }
        var mHit = target as HitableBase;

        if (effectManager != null)
        {
            if (mHit == null)
            {
                effectManager.defaultEffect(target, m.isCritical ? m.critEffectType : m.effectType);
            }
        }
    }