コード例 #1
0
 private void Awake()
 {
     _collision   = GetComponent <BaseCollision>();
     _collider    = GetComponent <BoxCollider2D>();
     _chainAttack = GetComponentInParent <ChainAttack>();
     _attack      = GetComponentInParent <Attack>();
     _player      = GameObject.Find("Player");
 }
コード例 #2
0
    public void fireMagic()
    {
        damageHitbox dambox;

        switch (chargeCount)
        {
        case 0:

            for (int i = 0; i < normalAtkNum; i++)
            {
                dambox = spawnMagic(normalAtk_base, normalAtk, fireSpot);
                dambox.transform.eulerAngles += new Vector3(0, normalAtkAngle * (Mathf.Pow(-1, i)) * (Mathf.Floor(((float)i + 1) / 2)), 0);
            }
            break;

        case 1:
            attackAudioSource.PlayOneShot(fireBallSound);
            for (int i = 0; i < fireBallNum; i++)
            {
                dambox = spawnMagic(skill_1_base, skill_1, fireSpot);
                dambox.transform.eulerAngles += new Vector3(0, fireBallAngle * (Mathf.Pow(-1, i)) * (Mathf.Floor(((float)i + 1) / 2)), 0);
                ChainAttack CATK = dambox.gameObject.GetComponent <ChainAttack>();
                CATK.chainList[0].model = sub_1_base;
                if (canFireArea)
                {
                    CATK.chainList[1].model = fireArea;
                }
            }
            break;

        case 2:
            attackAudioSource.PlayOneShot(tornadoSound);
            for (int i = 0; i < cycloneNum; i++)
            {
                dambox = spawnMagic(skill_2_base, skill_2, fireSpot);
                dambox.transform.eulerAngles += new Vector3(0, cycloneAngle * (Mathf.Pow(-1, i)) * (Mathf.Floor(((float)i + 1) / 2)), 0);
            }
            //spawnMagic(skill_2_base, skill_2, fireSpot);
            break;

        case 3:
            //spawnMagic(skill_3_base, skill_3, areaSpot);
            break;

        case 4:
            ultimateManager.resetUltimate();
            chargeCount = 0;
            manaUlti    = 0;
            manaUltiRing.updateGauge(manaMax, manaUlti);
            spawnMagic(skill_ulti_base, skill_ulti, areaSpot);
            break;
        }
        chargeCount = 0;
        GameManagerPC.Instance.sendMsgToController(id, "RECHARGE");
        mana = 0;
    }
コード例 #3
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);
    }
コード例 #4
0
        public override void Action(CharacterBase character, SceneBattle battle)
        {
            if (character.waittime < 1)
            {
                character.animationpoint = new Point(4, 0);
            }
            else if (character.waittime < 5)
            {
                character.animationpoint = new Point(5, 0);
            }
            else if (character.waittime == 30)
            {
                base.Action(character, battle);
            }
            if (character.waittime != 6)
            {
                return;
            }
            int         num         = this.power + this.pluspower;
            ChainAttack chainAttack = new ChainAttack(this.sound, character.parent, character.position.X + this.UnionRebirth(character.union), character.position.Y, character.union, this.Power(character), 4, 0, true, this.element);

            character.parent.attacks.Add(this.Paralyze(chainAttack));
        }
コード例 #5
0
    public float GetDamageAmount()
    {
        _chainAttack = GetComponent <ChainAttack>();
        float chainAttackDamage = 0;

        if (PerkManager.activeAxePerk != null && PerkManager.activeAxePerk.type == Perk.PerkType.AXE_SLUGGER)
        {
            chainAttackDamage = _chainAttack ? _chainAttack.numberOfChainAttacks * 2 : 0;
        }
        else
        {
            chainAttackDamage = _chainAttack ? _chainAttack.numberOfChainAttacks : 0;
        }

        Debug.Log(chainAttackDamage);
        if (attackState == State.Heavy)
        {
            return(weapon.heavyDamage + chainAttackDamage);
        }
        else
        {
            return(weapon.lightDamage + chainAttackDamage);
        }
    }