Ejemplo n.º 1
0
    public void HitByFinisher(GameDatas.HitTarget target, float power)
    {
        int    iAnimIndex;
        string strTrigName = GameDatas.STR_FINISHERHIT_TRIG_NAME;

        if (power >= GameDatas.FLOAT_FINISHER_LEVELS[0])
        {
            iAnimIndex = 0;

            Vector3 powerDir;

            switch (target)
            {
            default:
            case GameDatas.HitTarget.HT_HEAD:
                powerDir = Vector3.forward + Vector3.up * Random.Range(0.35f, 0.5f);
                break;

            case GameDatas.HitTarget.HT_UPPER_LEFT:
            case GameDatas.HitTarget.HT_LOWER_LEFT:
                powerDir = Vector3.forward + Vector3.up * 0.25f + Vector3.left * Random.Range(0.15f, 0.25f);
                break;

            case GameDatas.HitTarget.HT_UPPER_RIGHT:
            case GameDatas.HitTarget.HT_LOWER_RIGHT:
                powerDir = Vector3.forward + Vector3.up * 0.25f + Vector3.right * Random.Range(0.15f, 0.25f);
                break;
            }

            Rigidbody rigid = GetComponent <Rigidbody>();
            rigid.isKinematic = false;
            rigid.AddForce(powerDir * Random.Range(40.0f, 50.0f), ForceMode.Impulse);
            lightComponent.enabled = true;

            GameDatas.OBJ_MAINSCENE.CreateSFX(deathSounds[Random.Range(0, deathSounds.Length)]);
            GameDatas.OBJ_MAINSCENE.CreateSFX(GameDatas.OBJ_MAINSCENE.punchSFX[Random.Range(0, GameDatas.OBJ_MAINSCENE.punchSFX.Length)]);
        }
        else if (power >= GameDatas.FLOAT_FINISHER_LEVELS[1])
        {
            iAnimIndex = 1;
        }
        else if (power >= GameDatas.FLOAT_FINISHER_LEVELS[2])
        {
            iAnimIndex = 2;
        }
        else if (power >= GameDatas.FLOAT_FINISHER_LEVELS[3])
        {
            iAnimIndex = 3;
        }
        else
        {
            iAnimIndex = 4;
        }

        IncreaseHitCount(target);
        PlayAnimation(strTrigName, iAnimIndex);
        fFinisherPower = power * (GameDatas.INT_MAX_SCORE - GameDatas.INT_MIN_SCORE) + GameDatas.INT_MIN_SCORE;
    }
Ejemplo n.º 2
0
    public void HitByNormal(GameDatas.HitTarget target, float power)
    {
        int    iAnimIndex;
        string strTrigName;

        GameDatas.HitTarget enTarget;

        switch (target)
        {
        default:
        case GameDatas.HitTarget.HT_HEAD:
            iAnimIndex    = Random.Range(0, GameDatas.INT_HEADHIT_ANIM_COUNT);
            strTrigName   = GameDatas.STR_HEADHIT_TRIG_NAME;
            enTarget      = GameDatas.HitTarget.HT_HEAD;
            hitPowers[0] += power;
            break;

        case GameDatas.HitTarget.HT_UPPER_RIGHT:
            iAnimIndex    = Random.Range(0, GameDatas.INT_UPPERHIT_RIGHT_ANIM_COUNT);
            strTrigName   = GameDatas.STR_UPPERHIT_RIGHT_TRIG_NAME;
            enTarget      = GameDatas.HitTarget.HT_UPPER_RIGHT;
            hitPowers[1] += power;
            break;

        case GameDatas.HitTarget.HT_UPPER_LEFT:
            iAnimIndex    = Random.Range(0, GameDatas.INT_UPPERHIT_LEFT_ANIM_COUNT);
            strTrigName   = GameDatas.STR_UPPERHIT_LEFT_TRIG_NAME;
            enTarget      = GameDatas.HitTarget.HT_UPPER_LEFT;
            hitPowers[2] += power;
            break;

        case GameDatas.HitTarget.HT_LOWER_RIGHT:
            iAnimIndex    = Random.Range(0, GameDatas.INT_LOWERHIT_RIGHT_ANIM_COUNT);
            strTrigName   = GameDatas.STR_LOWERHIT_RIGHT_TRIG_NAME;
            enTarget      = GameDatas.HitTarget.HT_LOWER_RIGHT;
            hitPowers[3] += power;
            break;

        case GameDatas.HitTarget.HT_LOWER_LEFT:
            iAnimIndex    = Random.Range(0, GameDatas.INT_LOWERHIT_LEFT_ANIM_COUNT);
            strTrigName   = GameDatas.STR_LOWERHIT_LEFT_TRIG_NAME;
            enTarget      = GameDatas.HitTarget.HT_LOWER_LEFT;
            hitPowers[4] += power;
            break;
        }

        if (!audioSource.isPlaying)
        {
            audioSource.PlayOneShot(hitSounds[Random.Range(0, hitSounds.Length)]);
        }
        GameDatas.OBJ_MAINSCENE.CreateSFX(GameDatas.OBJ_MAINSCENE.punchSFX[Random.Range(0, GameDatas.OBJ_MAINSCENE.punchSFX.Length)]);
        IncreaseHitCount(enTarget);
        PlayAnimation(strTrigName, iAnimIndex);
    }
Ejemplo n.º 3
0
    public int GetHitCount(GameDatas.HitTarget target)
    {
        int iIndex = (int)target;

        return(hitCounter[iIndex]);
    }
Ejemplo n.º 4
0
    public void IncreaseHitCount(GameDatas.HitTarget target)
    {
        int iIndex = (int)target;

        ++hitCounter[iIndex];
    }