public damageHitbox fireUltiArrow()
    {
        if (!isUltimate)
        {
            return(null);
        }

        damageHitbox dambox = Instantiate(ultiModel);

        dambox.GetComponent <Collider>().enabled = true;
        Bullet myBulltet   = dambox.GetComponent <Bullet>();
        Bullet modelBullet = ultiShoot.GetComponent <Bullet>();

        dambox.transform.position    = shootSpot.position;
        dambox.transform.eulerAngles = ultiShoot.transform.eulerAngles;
        // dambox.transform.eulerAngles += new Vector3(0, -(spreadAngle / 2) + (i * spreadAngle / 4), 0);
        dambox.setDamage(ultiShoot.damage);
        dambox.duplicateAfterDoneDamage(ultiShoot);
        myBulltet.setSpeed(modelBullet.speed);
        myBulltet.setBulletDistance(modelBullet.bulletDistance);
        dambox.setOwner(hitbox);
        dambox.ultiRegen = ultiShoot.ultiRegen;
        ultimateManager.useUltimate();
        hideAvatar();
        ultimateManager.endUltimate();
        return(dambox);
    }
Beispiel #2
0
    public damageHitbox spawnAtk(damageHitbox myModel, damageHitbox myPrefab, Transform spot, unitHitbox attacker)
    {
        //Debug.Log("spawn: " + myModel);
        if (myModel == null)
        {
            return(null);
        }
        damageHitbox dambox      = Instantiate(myPrefab);
        Bullet       myBulltet   = dambox.GetComponent <Bullet>();
        Bullet       modelBullet = myModel.GetComponent <Bullet>();

        if (myBulltet != null)
        {
            myBulltet.setSpeed(modelBullet.speed);
            myBulltet.setBulletDistance(modelBullet.bulletDistance);
        }
        dambox.transform.position    = spot.position;
        dambox.transform.eulerAngles = myModel.transform.eulerAngles;
        // dambox.transform.eulerAngles += new Vector3(0, -(spreadAngle / 2) + (i * spreadAngle / 4), 0);
        dambox.setDamage(myModel.damage);
        dambox.duplicateAfterDoneDamage(myModel);
        dambox.setOwner(attacker);
        dambox.ultiRegen = myModel.ultiRegen;
        return(dambox);
    }
    override public void getUpSkill(int num)
    {
        switch (num)
        {
        case 1:
            chargespeed += 1;
            break;

        case 2:
            canSaveSkill = true;
            break;

        case 3:
            skill_2_base.GetComponent <Bullet>().bulletDistance += 2;
            break;

        case 4:
            normalAtk_base.GetComponent <Bullet>().bulletDistance += 2;
            break;

        case 5:
            normalAtkNum += 2;
            break;

        case 6:
            cycloneNum += 2;
            break;

        case 7:
            fireBallNum += 2;
            break;

        case 8:
            canFireArea = true;
            break;

        case 101:
            hitbox.hpMax += 300;
            hitbox.takenHeal(300);
            break;

        case 102:
            statContol.ChangeSpeedPercent(0.2f);
            break;

        case 103:
            hitbox.damageManager.plusExtraDamage(0.2f);
            break;
        }
        Debug.Log("wizard up skill|" + num);
    }
    override public void getUpSkill(int num)
    {
        Debug.Log("Arche UPaskill: " + num);
        switch (num)
        {
        case 1:
            spreadShotArrow += 4;
            break;

        case 2:
            mutiShotArrow++;
            break;

        case 3:
            normalShoot.GetComponent <Bullet>().maxUnit++;
            break;

        case 4:

            MODE[] temp = new MODE[modeOrder.Length + 1];
            for (int i = 0; i < modeOrder.Length; i++)
            {
                temp[i] = modeOrder[i];
            }
            temp[modeOrder.Length] = MODE.BOMB;
            modeOrder = temp;
            break;

        case 5:
            shootSpeed += 2f;
            break;

        case 6:
            canDodgeShot = true;
            break;


        case 101:
            hitbox.hpMax += 300;
            hitbox.takenHeal(300);
            break;

        case 102:
            statContol.ChangeSpeedPercent(0.2f);
            break;

        case 103:
            hitbox.damageManager.plusExtraDamage(0.2f);
            break;
        }
    }
    public damageHitbox spawnArrow(damageHitbox myModel)
    {
        damageHitbox dambox      = Instantiate(arrowPrefab);
        Bullet       myBulltet   = dambox.GetComponent <Bullet>();
        Bullet       modelBullet = myModel.GetComponent <Bullet>();

        dambox.transform.position    = shootSpot.position;
        dambox.transform.eulerAngles = shootSpot.eulerAngles;
        // dambox.transform.eulerAngles += new Vector3(0, -(spreadAngle / 2) + (i * spreadAngle / 4), 0);
        dambox.setDamage(myModel.damage);
        dambox.duplicateAfterDoneDamage(myModel);
        myBulltet.setSpeed(modelBullet.speed);
        myBulltet.setBulletDistance(modelBullet.bulletDistance);
        myBulltet.maxUnit = modelBullet.maxUnit;
        dambox.setOwner(hitbox);
        dambox.ultiRegen = myModel.ultiRegen;
        return(dambox);
    }
    public damageHitbox spawnDuplicate(Transform spot)
    {
        damageHitbox dambox      = Instantiate(myPrefab);
        Bullet       myBulltet   = dambox.GetComponent <Bullet>();
        Bullet       modelBullet = gameObject.GetComponent <Bullet>();

        dambox.transform.position    = spot.position;
        dambox.transform.eulerAngles = spot.transform.eulerAngles;
        dambox.transform.localScale  = dambox.transform.localScale * (1 + sizeMultifier);
        // dambox.transform.eulerAngles += new Vector3(0, -(spreadAngle / 2) + (i * spreadAngle / 4), 0);
        dambox.setDamage(this.damage);
        dambox.duplicateAfterDoneDamage(this);
        dambox.isFriendly   = this.isFriendly;
        dambox.isUnFriendly = this.isUnFriendly;
        if (myBulltet != null)
        {
            myBulltet.setSpeed(modelBullet.speed);
            myBulltet.setBulletDistance(modelBullet.bulletDistance);
        }
        dambox.setOwner(this.ownerUnit);
        dambox.ultiRegen = this.ultiRegen;
        return(dambox);
    }
    public damageHitbox spawnMagic(damageHitbox myModel, damageHitbox myPrefab, Transform spot)
    {
        damageHitbox dambox      = Instantiate(myPrefab);
        Bullet       myBulltet   = dambox.GetComponent <Bullet>();
        Bullet       modelBullet = myModel.GetComponent <Bullet>();

        dambox.transform.position    = spot.position;
        dambox.transform.eulerAngles = myModel.transform.eulerAngles;
        // dambox.transform.eulerAngles += new Vector3(0, -(spreadAngle / 2) + (i * spreadAngle / 4), 0);
        dambox.setDamage(myModel.damage);
        dambox.duplicateAfterDoneDamage(myModel);
        if (myBulltet != null)
        {
            myBulltet.setSpeed(modelBullet.speed);
            myBulltet.setBulletDistance(modelBullet.bulletDistance);
        }
        dambox.effect = myModel.effect;
        unitHitbox hitbox = gameObject.GetComponent <unitHitbox>();

        dambox.setOwner(hitbox);
        dambox.ultiRegen = myModel.ultiRegen;
        return(dambox);
    }