Esempio n. 1
0
    public void UseSkill(int button_number)
    {
        int use_skillnumber = number_dic[button_number];

        if (skillDataNow.Count < 8)
        {
            return;
        }
        if (isSkill)
        {
            return;
        }

        for (int i = 0; i < skillDataNow.Count; i++)
        {
            if (skillDataNow[i].user_particle == null)
            {
                return;
            }
        }



        enemy = near_enemy(gameObject);

        animator.SetTrigger("Skill1");

        //使用時のエフェクト
        GameObject user_obj = Instantiate(skillDataNow[use_skillnumber].user_particle, this.transform.position, skillDataNow[use_skillnumber].user_particle.transform.rotation);

        Destroy(user_obj, skillDataNow[use_skillnumber].user_particle_destroy_time);
        Debug.Log("No2");


        //魔法弾系統
        if (skillDataNow[use_skillnumber].isInstantiate)
        {
            //回復系統の玉
            if (skillDataNow[use_skillnumber].isLifeRecoverSkill)
            {
                GameObject         _obj = Instantiate(skillDataNow[use_skillnumber].bullet_obj, this.transform.position, this.transform.rotation);
                PlayerMagicControl mag  = _obj.GetComponent <PlayerMagicControl>();
                mag._power             = skillDataNow[use_skillnumber].power;
                mag.isBullet           = true;
                mag.isLifeRecoverSkill = true;
                mag.target             = this.transform.gameObject;

                return;
            }

            //敵の体内に生成
            if (skillDataNow[use_skillnumber].isEnemyInside)
            {
                //敵の位置に生成する攻撃魔法
                if (!enemy)
                {
                    return;
                }
                this.transform.LookAt(enemy.transform);
                GameObject         obj = Instantiate(skillDataNow[use_skillnumber].bullet_obj, enemy.transform.position, Quaternion.identity);
                PlayerMagicControl mag = obj.GetComponent <PlayerMagicControl>();
                mag._power = skillDataNow[use_skillnumber].power;
            }
            else//射出式
            {
                if (!enemy)
                {
                    return;
                }
                this.transform.LookAt(enemy.transform);
                GameObject         obj = Instantiate(skillDataNow[use_skillnumber].bullet_obj, magic_pos.transform.position, this.transform.rotation);
                PlayerMagicControl mag = obj.GetComponent <PlayerMagicControl>();
                mag._power   = skillDataNow[use_skillnumber].power;
                mag.isBullet = true;
                mag.target   = enemy;
            }
        }
        else
        {
            //実体のないバフ系統
            if (skillDataNow[use_skillnumber].isLifeRecoverSkill)
            {
                switch (skillDataNow[use_skillnumber].buffType)
                {
                case SkillData.BuffType.None:

                    break;

                case SkillData.BuffType.Attacker:

                    playerStatus.condition = PlayerStatus.Condition.Attacker;
                    break;

                case SkillData.BuffType.Defencer:

                    playerStatus.condition = PlayerStatus.Condition.Defencer;
                    break;
                }
            }
        }
    }
Esempio n. 2
0
    public void UseLifeSkillSelect(int r)
    {
        r = Random.Range(0, lifeSkillData.Count);

        //使用時のエフェクト
        GameObject user_obj = Instantiate(lifeSkillData[r].user_particle, this.transform.position, skilldata[r].user_particle.transform.rotation);

        Destroy(user_obj, skilldata[r].user_particle_destroy_time);

        //魔法弾系統
        if (skilldata[r].isInstantiate)
        {
            //回復系統の玉
            if (skilldata[r].isLifeRecoverSkill)
            {
                GameObject         _obj = Instantiate(skilldata[r].bullet_obj, this.transform.position, this.transform.rotation);
                PlayerMagicControl mag  = _obj.GetComponent <PlayerMagicControl>();
                mag._power             = skilldata[r].power;
                mag.isBullet           = true;
                mag.isLifeRecoverSkill = true;
                if (!controller.player)
                {
                    mag.target = this.transform.gameObject;
                }
                else
                {
                    this.transform.LookAt(controller.player.transform);
                    mag.target = controller.player;
                }

                return;
            }

            //敵の体内に生成
            if (skilldata[r].isEnemyInside)
            {
                //敵の位置に生成する攻撃魔法
                if (!controller.enemy)
                {
                    return;
                }
                this.transform.LookAt(controller.enemy.transform);
                GameObject         obj = Instantiate(skilldata[r].bullet_obj, controller.enemy.transform.position, Quaternion.identity);
                PlayerMagicControl mag = obj.GetComponent <PlayerMagicControl>();
                mag._power = skilldata[r].power;
            }
            else//射出式
            {
                if (!controller.enemy)
                {
                    return;
                }
                this.transform.LookAt(controller.enemy.transform);
                GameObject         obj = Instantiate(skilldata[r].bullet_obj, magic_pos.transform.position, this.transform.rotation);
                PlayerMagicControl mag = obj.GetComponent <PlayerMagicControl>();
                mag._power   = skilldata[r].power;
                mag.isBullet = true;
                mag.target   = controller.enemy;
            }
        }
        else
        {
            //実体のないバフ系統
            if (skilldata[r].isLifeRecoverSkill)
            {
                switch (skilldata[r].buffType)
                {
                case SkillData.BuffType.None:

                    break;

                case SkillData.BuffType.Attacker:

                    controller.conditionType = NPCController.ConditionType.Attacker;
                    break;

                case SkillData.BuffType.Defencer:
                    controller.conditionType = NPCController.ConditionType.Defence;
                    break;
                }
            }
        }
    }