Exemplo n.º 1
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);
    }
Exemplo n.º 2
0
    public void doActionADD(unitHitbox attacker, unitHitbox target, damageHitbox damageHB)
    {
        // bomb damage is 1/3 of attack power
        if (Bomb != null && maxitemChange > 0)
        {
            int          bombDamage = unitOwner.damageManager.damageDataList[0].damage / 3;
            damageHitbox damageHb   = Bomb.GetComponent <damageHitbox>();
            damageHb.setOwner(unitOwner);
            damageHb.setDamage(bombDamage);

            GameObject BombInstance = Instantiate(Bomb);
            BombInstance.transform.position = target.transform.position;
            BombInstance.SetActive(true);

            itemCharge--;
            if (itemCharge <= 0)
            {
                var unitItem = unitOwner.GetComponent <ItemOnPlayer>();
                if (unitItem != null)
                {
                    unitItem.RemoveItem(mainItem);
                }
            }
        }
    }
Exemplo n.º 3
0
    public void doActionADD(unitHitbox attacker, unitHitbox target, damageHitbox damageHB)
    {
        SlowInstance slow = Instantiate(slowInstance, target.transform);

        slow.transform.position = target.transform.position;
        slow.SetSlowTarget(target);
    }
Exemplo n.º 4
0
    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);
    }
Exemplo n.º 5
0
 public void duplicateAfterDoneDamage(damageHitbox dh)
 {
     foreach (afterDoneDamage atf in dh.afterDoneDamagesList)
     {
         afterDoneDamagesList.Add(atf);
     }
 }
Exemplo n.º 6
0
 public void shootPinArow()
 {
     if (canDodgeShot)
     {
         damageHitbox dambox = pinArrow.spawnDuplicate(shootSpot);
         dambox.transform.eulerAngles += new Vector3(0, 180, 0);
     }
 }
Exemplo n.º 7
0
 public void doActionADD(unitHitbox attacker, unitHitbox target, damageHitbox damageHB)
 {
     foreach (chainAtk atk in chainList)
     {
         StartCoroutine(delaySpawn(atk.model, atk.prefabHitbox, transform, attacker, atk.delay));
         //spawnAtk(atk.model, atk.hitbox, transform, attacker);
     }
 }
Exemplo n.º 8
0
 // Use this for initialization
 void Start()
 {
     damageHitbox = GetComponent <damageHitbox>();
     damageHitbox.addAfterDoneDamage(this);
     if (isActive)
     {
         StartCoroutine(lauchArrow());
     }
 }
Exemplo n.º 9
0
 public damageHitbox[] GetDamageHitboxes()
 {
     damageHitbox[] DHs = new damageHitbox[damageDataList.Length];
     for (int i = 0; i < damageDataList.Length; i++)
     {
         DHs[i] = damageDataList[i].damageHitbox;
     }
     return(DHs);
 }
Exemplo n.º 10
0
    public void shootArrowAct()
    {
        damageHitbox dambox;
        unitHitbox   myHitbox = gameObject.GetComponent <unitHitbox>();

        if (!isUltimate)
        {
            switch (mode)
            {
            case MODE.SINGLE:
                //for (int i = 0; i < pinArrowNum; i++)
                //{
                //    dambox = pinArrow.spawnDuplicate(shootSpot);
                //    dambox.transform.localPosition = new Vector3(0.5f * (Mathf.Pow(-1, i)) * (Mathf.Floor(((float)i + 1) / 2)), 0, 0);
                //}
                spawnArrow(normalShoot);
                break;

            case MODE.SPREAD:
                for (int i = 0; i < spreadShotArrow; i++)
                {
                    dambox      = spawnArrow(spreadShoot);
                    spreadAngle = spreadShotArrow * 8;
                    dambox.transform.eulerAngles += new Vector3(0, -(spreadAngle / 2) + (i * 8), 0);

                    /*dambox = Instantiate(arrowModel);
                     * dambox.transform.position = shootSpot.position;
                     * dambox.transform.eulerAngles = spreadShoot.transform.eulerAngles;
                     * dambox.transform.eulerAngles += new Vector3(0,-(spreadAngle/2)+ (i* spreadAngle/4),0);
                     *
                     * dambox.setDamage(spreadShoot.damage);
                     * dambox.duplicateAfterDoneDamage(spreadShoot);
                     * dambox.GetComponent<Bullet>().setSpeed(spreadShoot.speed);
                     * dambox.setOwner(myHitbox);*/
                }
                break;

            case MODE.TRIPLE:
                StartCoroutine(TripleShoot());
                break;

            case MODE.BOMB:
                damageHitbox damHB = bombShoot.spawnDuplicate(shootSpot);
                ChainAttack  CATK  = damHB.gameObject.GetComponent <ChainAttack>();
                CATK.chainList[0].model = bomb;
                break;
            }
        }
        else if (isUltimate)
        {
            fireUltiArrow();
        }
        anim.SetBool("isTrail", false);
    }
Exemplo n.º 11
0
 public void doActionADD(unitHitbox attacker, unitHitbox target, damageHitbox dhb)
 {
     unitCount++;
     if (unitCount >= maxUnit && isActive && maxUnit != 0)
     {
         speed = 0;
         damageHitbox.deActiveHitbox();
         Debug.Log("Destroy Arrow");
         damageHitbox.setDestroy();
     }
 }
Exemplo n.º 12
0
    void Spawn(Vector3 position)
    {
        if (Skill == null)
        {
            return;
        }

        GameObject   newIce = Instantiate(Skill, position, Skill.transform.rotation);
        damageHitbox dh     = newIce.GetComponent <damageHitbox>();

        dh.setDamage(basehitbox.damage);
    }
Exemplo n.º 13
0
    public damageHitbox spawnBomb(damageHitbox myBase, damageHitbox myPrefab)
    {
        damageHitbox dambox = Instantiate(myPrefab);

        dambox.transform.position    = transform.position;
        dambox.transform.eulerAngles = myBase.transform.eulerAngles;
        // dambox.transform.eulerAngles += new Vector3(0, -(spreadAngle / 2) + (i * spreadAngle / 4), 0);
        dambox.setDamage(myBase.damage);
        dambox.duplicateAfterDoneDamage(myBase);
        dambox.setOwner(hitbox);
        dambox.ultiRegen = myBase.ultiRegen;
        return(dambox);
    }
Exemplo n.º 14
0
    private void OnTriggerEnter(Collider other)
    {
        // Debug.Log(other);
        if (other.GetComponent <damageHitbox>() != null)
        {
            damageHitbox otherDH = other.GetComponent <damageHitbox>();
            if ((otherDH.isFriendly && gameObject.tag == "Player") || (otherDH.isUnFriendly && gameObject.tag == "Enemy") && !isDeath)
            {
                if (other.tag == "Heal" && !otherDH.isDamaged(this) && hpCurrent < hpMax)
                {
                    otherDH.regisUnit(this);
                    Debug.Log("tigger enter heal" + other.name);
                    takenHeal(otherDH.damage);
                    showParticleEffect(otherDH.effect);
                }
                return;
            }

            /* if (otherDH.isUnFriendly && gameObject.tag == "Enemy")
             * {
             *   return;
             * }*/
            if (other.tag == "Damage" && !otherDH.isDamaged(this))
            {
                otherDH.regisUnit(this);
                //                Debug.Log("tigger enter " + other.name);
                takenDamage(otherDH.damage, otherDH.ownerUnit);
                showParticleEffect(otherDH.effect);
            }
            //  else
        }

        // deal with item
        DropItem dt = other.GetComponent <DropItem>();

        if (dt != null && gameObject.tag == "Player" && dt.CanPlayerPickItem(this))
        {
            ItemBase item = other.GetComponent <ItemBase>();
            if (item != null && !item.picked)
            {
                DamageTextControl.instance.CreateGetItemText(item.itemModel.popupWhenGetItemText, transform);
                item.picked = true;
            }

            // showParticleEffect(potion.getParticle());
            dt.getItem(this);
        }
    }
Exemplo n.º 15
0
    public void doActionADD(unitHitbox attacker, unitHitbox target, damageHitbox damageHB)
    {
        float randomNum = Random.Range(1f, 100f);

        if (randomNum > currentFreezeChance)
        {
            return;
        }

        GameObject   freezeBomb = Instantiate(freezeBombInstance, target.transform.position, Quaternion.identity);
        damageHitbox dhb        = freezeBomb.GetComponent <damageHitbox>();

        dhb.setOwner(owner);
        dhb.setDamage(currentDamage);
        freezeBomb.SetActive(true);
    }
Exemplo n.º 16
0
    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);
    }
Exemplo n.º 17
0
    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);
    }
Exemplo n.º 18
0
    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);
    }
Exemplo n.º 19
0
    public damageHitbox damageHitboxFitter(damageHitboxTag dt)
    {
        damageHitbox hitbox = null;

        switch (dt)
        {
        case damageHitboxTag.NORMALLEFT:
            hitbox = normalLetf;
            break;

        case damageHitboxTag.NORMALRIGHT:
            hitbox = normalRight;
            break;

        case damageHitboxTag.COMBO5:
            hitbox = combo5;
            break;

        case damageHitboxTag.COMBO3:
            hitbox = combo3;
            break;
        }
        return(hitbox);
    }
Exemplo n.º 20
0
 public void doActionADD(unitHitbox attacker, unitHitbox target, damageHitbox DHB)
 {
     addUlti(DHB.ultiRegen);
 }
Exemplo n.º 21
0
    IEnumerator delaySpawn(damageHitbox myModel, damageHitbox myPrefab, Transform spot, unitHitbox attacker, float delay)
    {
        yield return(new WaitForSeconds(delay));

        spawnAtk(myModel, myPrefab, spot, attacker);
    }