예제 #1
0
    void SkillInit()
    {
        for (int i = 0; i < SkillIcon.Length; i++)
        {
            GameObject selectEff = SkillIcon[i].transform.parent.transform.FindChild("Selecteff").gameObject;
            selectEff.SetActive(false);
        }
        //액티브 스킬 셋팅
        Dictionary <ushort, NetData._PartnerActiveSkillData> activeSkillList = CurData.ActiveSkillList;
        int activeCount = activeSkillList.Count;

        for (int i = 1; i < activeCount; i++)//0번은 평타.
        {
            uint skillId = activeSkillList[(ushort)i]._skillIndex;
            SkillTables.ActionInfo actionLowData = _LowDataMgr.instance.GetSkillActionLowData(skillId);
            if (actionLowData == null)
            {
                continue;
            }

            SkillIcon[i - 1].spriteName = _LowDataMgr.instance.GetLowDataIcon(actionLowData.Icon);
            SkillName[i - 1].text       = _LowDataMgr.instance.GetStringSkillName(actionLowData.name);
            SkillLevel[i - 1].text      = string.Format(_LowDataMgr.instance.GetStringCommon(1151), CurData.GetBuffSkillToSlot((ushort)i)._skillLevel);

            int idx = i;
            EventDelegate.Set(ActiveSkillTrigger[i - 1].onClick, delegate()
            {
                OnClickActiveSkill(idx - 1, activeSkillList[(ushort)idx]);
            });
            //SkillDesc[i - 1].text = _LowDataMgr.instance.GetStringSkillName(actionLowData.descrpition);
        }

        //디폴트는 첫번째스킬
        OnClickActiveSkill(0, activeSkillList[1]);
    }
    /// <summary> 서버에서 스킬업그레이드 응답. </summary>
    public void OnPMsgCostumeSkillUp(NetData._CostumeData costume, int skillNumber)
    {
        GameObject skillViewObj = GetViewObj(ViewType.Skill);

        int       arr         = skillNumber - 1;//SkillLevelup.SelectSkillNum;
        Transform skillViewTf = skillViewObj.transform.FindChild("Skills");
        UISprite  icon        = skillViewTf.FindChild(string.Format("BtnSkill_{0}/icon_d5", arr)).GetComponent <UISprite>();
        UILabel   level       = skillViewTf.FindChild(string.Format("BtnSkill_{0}/level_d5", arr)).GetComponent <UILabel>();
        UILabel   name        = skillViewTf.FindChild(string.Format("BtnSkill_{0}/name_d5", arr)).GetComponent <UILabel>();

        SkillTables.ActionInfo actionLowData = _LowDataMgr.instance.GetSkillActionLowData(SkillLevelup.SkillId);
        if (actionLowData == null)
        {
            Debug.LogError("not found ActionInfo error " + SkillLevelup.SkillId);
            return;
        }
        ushort skillLevel = costume._skillLevel[arr];

        icon.spriteName = _LowDataMgr.instance.GetLowDataIcon(actionLowData.Icon);
        level.text      = string.Format(_LowDataMgr.instance.GetStringCommon(453), skillLevel);
        name.text       = _LowDataMgr.instance.GetStringSkillName(actionLowData.name);

        SkillUpEff.SetActive(false);
        SkillUpEff.SetActive(true);

        UIEventTrigger uiTri = skillViewTf.FindChild(string.Format("BtnSkill_{0}", arr)).GetComponent <UIEventTrigger>();

        EventDelegate.Set(uiTri.onClick, delegate() { SetSkillInfo(actionLowData, arr, skillLevel); });

        SetSkillInfo(actionLowData, arr, skillLevel);

        if (IsMaxSkillup)
        {
            SkillTables.SkillLevelInfo nowLevelLowData = _LowDataMgr.GetSkillLevelData(actionLowData.idx, (byte)skillLevel);//지금
            if (SkillMaxLv <= skillLevel ||
                NetData.instance.GetAsset(AssetType.Gold) < nowLevelLowData.CostGold ||
                NetData.instance.UserLevel < nowLevelLowData.LimitLv)
            {
                IsMaxSkillup = false;
            }
            else
            {
                OnClickSkillLevelup(true);
            }
        }

        SoundManager.instance.PlaySfxSound(eUISfx.UI_cos_skill_up, false);
    }
예제 #3
0
    /// <summary> 파트너 액티브스킬 레벨업 응답 </summary>
    public void OnPMsgHeroSkillUpgradeSHandler()
    {
        NetData._PartnerActiveSkillData selectSkill = CurData.GetBuffSkillToSlot((ushort)(SelectActiveSkillIndex + 1));
        if (selectSkill != null)
        {
            UIHelper.CreateEffectInGame(SkillLevelUpEffRoot, "Fx_partner_skillup_01");

            CurSelectSkillLevel[1].GetComponent <TweenColor>().ResetToBeginning();
            CurSelectSkillLevel[1].GetComponent <TweenColor>().PlayForward();

            CurSelectSkillLevel[1].GetComponent <TweenScale>().ResetToBeginning();
            CurSelectSkillLevel[1].GetComponent <TweenScale>().PlayForward();

            TempCoroutine.instance.FrameDelay(1f, delegate()
            {
                DestroyImmediate(SkillLevelUpEffRoot.GetChild(0).gameObject);
                //액티브 스킬 셋팅
                Dictionary <ushort, NetData._PartnerActiveSkillData> activeSkillList = CurData.ActiveSkillList;
                int activeCount = activeSkillList.Count;
                for (int i = 1; i < activeCount; i++)//0번은 평타.
                {
                    uint skillId = activeSkillList[(ushort)i]._skillIndex;
                    SkillTables.ActionInfo actionLowData = _LowDataMgr.instance.GetSkillActionLowData(skillId);
                    if (actionLowData == null)
                    {
                        continue;
                    }

                    SkillIcon[i - 1].spriteName = _LowDataMgr.instance.GetLowDataIcon(actionLowData.Icon);
                    SkillName[i - 1].text       = _LowDataMgr.instance.GetStringSkillName(actionLowData.name);
                    SkillLevel[i - 1].text      = string.Format(_LowDataMgr.instance.GetStringCommon(1151), CurData.GetBuffSkillToSlot((ushort)i)._skillLevel);

                    int idx = i;
                    EventDelegate.Set(ActiveSkillTrigger[i - 1].onClick, delegate()
                    {
                        OnClickActiveSkill(idx - 1, activeSkillList[(ushort)idx]);
                    });
                }

                OnClickActiveSkill(SelectActiveSkillIndex, selectSkill);
            });
        }
        else
        {
            Debug.LogError("CanNotFound SKillData");
        }
    }
    /*
     * /// <summary>
     * /// 스킬 뷰 초기화 함수 스킬 뷰로 올때마다 실행해준다
     * /// </summary>
     * void SkillViewSetting()
     * {
     *  SkillUpEff.SetActive(false);
     *  NetData._CostumeData costumeData = UserInfo.GetEquipCostume();
     *
     *  GameObject skillViewObj = GetViewObj(ViewType.Skill);
     *  if (skillViewObj == null)
     *      return;
     *
     *  Transform skillViewTf = skillViewObj.transform.FindChild("Skills");
     *  UILabel costumeName = skillViewObj.transform.FindChild("CostumeName").GetComponent<UILabel>();
     *  costumeName.text = costumeData.GetLocName();
     *
     *  ushort[] skillLevel = costumeData._skillLevel;
     *  List<uint> skillList = costumeData.GetSkillList();
     *  int skillCount = skillList.Count;
     *  for (int i = 0; i < skillCount; i++)
     *  {
     *      UIEventTrigger uiTri = skillViewTf.FindChild(string.Format("BtnSkill_{0}", i)).GetComponent<UIEventTrigger>();
     *      UISprite icon  = skillViewTf.FindChild(string.Format("BtnSkill_{0}/icon_d5", i)).GetComponent<UISprite>();
     *      UILabel level  = skillViewTf.FindChild(string.Format("BtnSkill_{0}/level_d5", i )).GetComponent<UILabel>();
     *      UILabel name   = skillViewTf.FindChild( string.Format("BtnSkill_{0}/name_d5", i)).GetComponent<UILabel>();
     *
     *      SkillTables.ActionInfo actionLowData = _LowDataMgr.instance.GetSkillActionLowData(skillList[i]);
     *      if (actionLowData == null)
     *      {
     *          Debug.LogError("SkillAction index error " + actionLowData.idx);
     *          continue;
     *      }
     *
     *      int arr = i;
     *      ushort s_level = skillLevel[i];
     *
     *      uiTri.collider.enabled = true; // ?????
     *      icon.spriteName = _LowDataMgr.instance.GetLowDataIcon(actionLowData.Icon);
     *      level.text = string.Format(_LowDataMgr.instance.GetStringCommon(453), skillLevel[i] );
     *      name.text = _LowDataMgr.instance.GetStringSkillName(actionLowData.name);
     *
     *      EventDelegate.Set(uiTri.onClick, delegate() { SetSkillInfo(actionLowData, arr, s_level); } );
     *  }
     *
     *  //기본으로 0번 선택해 놓는다.
     *  SetSkillInfo(_LowDataMgr.instance.GetSkillActionLowData(skillList[0]), 0, skillLevel[0] );
     * }
     */
    /// <summary>
    /// 선택한 스킬에 대한 정보를 출력해준다.
    /// </summary>
    void SetSkillInfo(SkillTables.ActionInfo actionLowData, int arr, ushort skillLevel)
    {
        SkillLevelup.Init();                                                                                             //일단 초기화하고 시작.

        SkillTables.SkillLevelInfo nowLevelLowData = _LowDataMgr.GetSkillLevelData(actionLowData.idx, (byte)skillLevel); //지금
        if (nowLevelLowData == null)
        {
            Debug.LogError("skillLevel index error " + actionLowData.idx);
            return;
        }

        uint nextSkillDesc = 0;

        if (skillLevel < SkillMaxLv)                                                                                              //렙업 가능 상황.
        {
            SkillTables.SkillLevelInfo nextSkillLevel = _LowDataMgr.GetSkillLevelData(actionLowData.idx, (byte)(skillLevel + 1)); //다음
            nextSkillDesc = nextSkillLevel.skilldesc;                                                                             //다은꺼는 이거말고 쓸게없음.

            {
                SkillLevelup.SelectSkillNum   = arr;
                SkillLevelup.SelectSkillLevel = skillLevel;
                SkillLevelup.SkillId          = actionLowData.idx;
            }
        }
        else//최대 렙임. 렙업 불가능.
        {
            nextSkillDesc = nowLevelLowData.skilldesc;
            //SkillLevelup.IsCanNotLevelup = true;
        }

        //스킬 정보 셋팅
        GameObject skillViewObj = GetViewObj(ViewType.Skill);

        if (skillViewObj == null)
        {
            return;
        }

        Transform skillInfoTf = skillViewObj.transform.FindChild("Info");
        UILabel   skillName   = skillInfoTf.FindChild("skill_name_d5").GetComponent <UILabel>();
        UILabel   skillDesc   = skillInfoTf.FindChild("description_d5").GetComponent <UILabel>();
        UILabel   nowData     = skillInfoTf.FindChild("SkillData/Now/now").GetComponent <UILabel>();
        UILabel   nextData    = skillInfoTf.FindChild("SkillData/Next/next").GetComponent <UILabel>();
        UILabel   needLevel   = skillInfoTf.FindChild("Need/Level/value_d5").GetComponent <UILabel>();
        UILabel   needGold    = skillInfoTf.FindChild("Need/Gold/value_d5").GetComponent <UILabel>();

        skillName.text = _LowDataMgr.instance.GetStringSkillName(actionLowData.name);
        skillDesc.text = _LowDataMgr.instance.GetStringSkillName(actionLowData.descrpition);
        nowData.text   = _LowDataMgr.instance.GetStringSkillName(nowLevelLowData.skilldesc);
        nextData.text  = _LowDataMgr.instance.GetStringSkillName(nextSkillDesc);
        needLevel.text = string.Format("{0}", nowLevelLowData.LimitLv);                                        //string.Format(_LowDataMgr.instance.GetStringCommon(453),
        needGold.text  = string.Format("{0}", SceneManager.instance.NumberToString(nowLevelLowData.CostGold)); //nowLevelLowData.CostGold == 0 ? "0" : nowLevelLowData.CostGold.ToString("#,##") );

        Transform btnTf = skillViewObj.transform.FindChild(string.Format("Skills/BtnSkill_{0}", arr));

        SelectSkillEff.parent        = btnTf;
        SelectSkillEff.localPosition = Vector3.zero;
        SelectSkillEff.localScale    = Vector3.one;

        Transform upEffTf = SkillUpEff.transform;

        upEffTf.parent        = btnTf;
        upEffTf.localScale    = Vector3.one;
        upEffTf.localPosition = Vector3.zero;
    }
예제 #5
0
    /// <summary>
    /// 액티브스킬칸 누름/// </summary>
    void OnClickActiveSkill(int index, NetData._PartnerActiveSkillData selectSkill)
    {
        SelectActiveSkillIndex = index;
        for (int i = 0; i < SkillIcon.Length; i++)
        {
            GameObject selectEff = SkillIcon[i].transform.parent.transform.FindChild("Selecteff").gameObject;
            selectEff.SetActive(i == index);
        }
        SkillTables.ActionInfo actionLowData = _LowDataMgr.instance.GetSkillActionLowData(selectSkill._skillIndex);
        if (actionLowData == null)
        {
            return;
        }

        SkillTables.SkillLevelInfo levelLowData = _LowDataMgr.GetSkillLevelData(selectSkill._skillIndex, selectSkill._skillLevel);
        CurSelectSkillDec.text = _LowDataMgr.instance.GetStringSkillName(actionLowData.descrpition);

        Transform SkillView = ViewObj[(int)ViewType.Skill].transform;

        //만렙인지 체크
        SkillTables.SkillLevelInfo nextLevelLowData = null;
        int maxSkillLevel = _LowDataMgr.instance.GetEtcTableValue <int>(EtcID.PartnerMaxSkillLevel);

        if (selectSkill._skillLevel < maxSkillLevel)
        {
            SkillView.FindChild("arrow").gameObject.SetActive(true);
            SkillView.FindChild("name").gameObject.SetActive(true);

            nextLevelLowData            = _LowDataMgr.GetSkillLevelData(selectSkill._skillIndex, (byte)(selectSkill._skillLevel + 1));
            CurSelectSkillLevel[1].text = string.Format(_LowDataMgr.instance.GetStringCommon(1151), selectSkill._skillLevel + 1);

            //스킬재료아이템
            SkillLevelUpMaterialSlot.SetLowDataItemSlot(nextLevelLowData.SkillLevelUpItem1, 0, (lowDataId) =>
            {
                OpenDetailPopup(null, nextLevelLowData.SkillLevelUpItem1);

                //UIMgr.OpenClickPopup((uint)lowDataId, SkillLevelUpMaterialSlot.transform.position);
            });

            int  nowAmount = UserInfo.GetItemCountForItemId(nextLevelLowData.SkillLevelUpItem1, (byte)eItemType.USE);
            bool isSuccess = true;
            if (nowAmount < nextLevelLowData.SkillLevelUpItem1Count || NetData.instance.GetAsset(AssetType.Gold) < nextLevelLowData.CostGold)
            {
                isSuccess = false;
            }

            SkillLevelUpRoot.FindChild("value").GetComponent <UILabel>().text  = string.Format(_LowDataMgr.instance.GetStringCommon(1167), nowAmount, nextLevelLowData.SkillLevelUpItem1Count);
            SkillLevelUpRoot.FindChild("value").GetComponent <UILabel>().color = nowAmount < nextLevelLowData.SkillLevelUpItem1Count ? Color.red : Color.white;

            SkillLevelUpRoot.FindChild("Lock").gameObject.SetActive(nowAmount < nextLevelLowData.SkillLevelUpItem1Count);

            if (isSuccess)
            {
                BtnSkillLevelUp.transform.FindChild("Btn_on").gameObject.SetActive(true);
                BtnSkillLevelUp.transform.FindChild("Btn_off").gameObject.SetActive(false);

                BtnSkillLevelUp.transform.FindChild("Btn_on/price").GetComponent <UILabel>().text = string.Format("x{0}", nextLevelLowData.CostGold);
            }
            else
            {
                BtnSkillLevelUp.transform.FindChild("Btn_on").gameObject.SetActive(false);
                BtnSkillLevelUp.transform.FindChild("Btn_off").gameObject.SetActive(true);

                BtnSkillLevelUp.transform.FindChild("Btn_off/price").GetComponent <UILabel>().text = string.Format("x{0}", nextLevelLowData.CostGold);
            }

            SkillLevelUpRoot.gameObject.SetActive(true);
            BtnSkillLevelUp.transform.gameObject.SetActive(true);
            CurSelectSkillLevel[1].transform.parent.gameObject.SetActive(true);

            CurSelectSkilDamage[0].text = string.Format(_LowDataMgr.instance.GetStringCommon(1166), GetSkillDamage(levelLowData.factorRate.list, (float)levelLowData.factor).ToString());
            CurSelectSkilDamage[1].text = string.Format(_LowDataMgr.instance.GetStringCommon(1166), GetSkillDamage(nextLevelLowData.factorRate.list, (float)nextLevelLowData.factor).ToString());
            SkillMaxLevel.SetActive(false);

            //위치변경도 있어야함
            CurSelectSkillLevel[0].transform.parent.transform.localPosition = new Vector3(-138, -3, 0);
            EventDelegate.Set(BtnSkillLevelUp.onClick, delegate()
            {
                if (!isSuccess)
                {
                    string msg = "";
                    if (nowAmount < nextLevelLowData.SkillLevelUpItem1Count)
                    {
                        msg = _LowDataMgr.instance.GetStringCommon(1173);   //재료부족
                    }
                    else if (NetData.instance.GetAsset(AssetType.Gold) < nextLevelLowData.CostGold)
                    {
                        msg = _LowDataMgr.instance.GetStringCommon(1174);   //골드부족
                    }
                    UIMgr.instance.AddPopup(_LowDataMgr.instance.GetStringCommon(141), msg, _LowDataMgr.instance.GetStringCommon(117));
                    return;
                }
                NetworkClient.instance.SendPMsgHeroSkillUpgradeC(CurData._partnerIndex, SelectActiveSkillIndex + 1);
            });
        }
        else
        {
            //만렙일경우
            //현재 레벨만 표기
            SkillView.FindChild("arrow").gameObject.SetActive(false);
            SkillView.FindChild("name").gameObject.SetActive(false);
            SkillLevelUpRoot.gameObject.SetActive(false);
            BtnSkillLevelUp.transform.gameObject.SetActive(false);
            CurSelectSkillLevel[1].transform.parent.gameObject.SetActive(false);
            //위치변경도 있어야함
            CurSelectSkilDamage[0].text = string.Format(_LowDataMgr.instance.GetStringCommon(1166), GetSkillDamage(levelLowData.factorRate.list, (float)levelLowData.factor).ToString());
            CurSelectSkillLevel[0].transform.parent.transform.localPosition = new Vector3(0, -3, 0);
            SkillMaxLevel.SetActive(true);
        }

        CurSelectSkillLevel[0].text = string.Format(_LowDataMgr.instance.GetStringCommon(1151), selectSkill._skillLevel);
        CurSelectSkillLevel[1].gameObject.transform.localScale = Vector3.one;
    }
예제 #6
0
    //< 실질적 스킬 적용
    public static void ApplySkill(SkillType skillType, AbilityData _ability, Unit _Caster, Unit _Target, bool normal = false)
    {
        float affectValue = CalcAffectValue(_ability, _Caster, _Target);

        switch (skillType)
        {
        case SkillType.Attack:          //일반 공격
        case SkillType.AttackBuff:
            if (_Target != null)
            {
                //SkillTables.ActionInfo _action = _LowDataMgr.GetSkillAction(_ability.Idx);

                //슈퍼아머 계산은 먼저 해야함
                //if (_ability != null)
                //{
                //    uint beforeSuperArmor = _Target.CharInfo.SuperArmor;
                //    //슈퍼아머값 감소
                //    if (_Target.CharInfo.SuperArmor <= _ability.superArmorDmg)
                //    {
                //        _Target.CharInfo.SuperArmor = 0;

                //        //0일경우만 회복을 시키고 아닐경우는 무시하자
                //        if (_Target.SuperRecoveryTick == 0f)
                //        {
                //            if(beforeSuperArmor!=0)
                //            {
                //                Transform effTrans = G_GameInfo.SpawnEffect("Fx_SuperArmor_Delete", _Target.cachedTransform.position, Quaternion.Euler(Vector3.zero));

                //                if (effTrans != null)
                //                {
                //                    FxMakerPoolItem poolItem = effTrans.GetComponent<FxMakerPoolItem>();
                //                    if (poolItem == null)
                //                    {
                //                        poolItem = effTrans.gameObject.AddComponent<FxMakerPoolItem>();
                //                        poolItem.destroyTime = 10;
                //                    }

                //                    poolItem.Owner = _Target;
                //                    poolItem.SetAttach(_Target.transform);
                //                }

                //                SoundManager.instance.PlaySfxUnitSound(0, _Target._audioSource, _Target.cachedTransform, true);
                //            }

                //            _Target.SuperRecoveryTick = _Target.CharInfo.SuperArmor_RecoveryTime;
                //        }
                //    }
                //    else
                //    {
                //        _Target.CharInfo.SuperArmor = _Target.CharInfo.SuperArmor - _ability.superArmorDmg;
                //    }

                //    //공격자측의 슈퍼아머 회복
                //    _Caster.CharInfo.SuperArmor += _ability.superArmorRecovery;
                //    _Caster.CharInfo.SuperArmor = (uint)Mathf.Clamp(_Caster.CharInfo.SuperArmor, 0, _Caster.CharInfo.MaxSuperArmor);
                //}
                //if (_ability.callBuffIdx != 0)
                //{
                //    if (_Target != null && _Target.BuffCtlr != null)
                //    {
                //        _Target.BuffCtlr.AttachBuff(_Caster, _Target, _Caster.SkillCtlr.__SkillGroupInfo.GetBuff(_ability.callBuffIdx, _ability.Idx), _ability.rate, _ability.durationTime);
                //    }
                //}

                _Target.TakeDamage(_Caster, 1.0f, affectValue, _ability.ignoreDef, eAttackType.All, !normal, _ability, false, false);
            }
            break;

        case SkillType.Projecttile:     //발사체 발사

            SkillTables.ProjectTileInfo _projecttiledata = _LowDataMgr.GetSkillProjectTileData(_ability.callAbilityIdx);
            Vector3 dirVec = _Caster.transform.forward;
            if (_projecttiledata.startType == 3)
            {
                Transform[] temp = _Caster.GetComponentsInChildren <Transform>(true);
                for (int i = 0; i < temp.Length; i++)
                {
                    if (temp[i] != null && temp[i].name.Equals("cast_dummy_01"))
                    {
                        Vector3 temp1 = _Caster.cachedTransform.position;
                        Vector3 temp2 = temp[i].position;

                        temp1.y = 0;
                        temp2.y = 0;

                        Vector3 temppos  = temp1 - temp2;
                        float   distance = temppos.magnitude;
                        dirVec = temppos / distance;
                        break;
                    }
                }
            }

            //< 발사체 생성
            if (SceneManager.instance.IsRTNetwork && (_Caster.m_rUUID == NetData.instance._userInfo._charUUID))
            {
                //발사체 생성 서버로 보내주자
                NetworkClient.instance.SendPMsgBattleAddProjectTileC((int)_ability.Idx, _ability.notiIdx, (int)_ability.callAbilityIdx, _Caster.BeforePosX, _Caster.BeforePosY, _Caster.BeforePosX, _Caster.BeforePosY, 10f, 10f, dirVec);
                break;
            }
            else
            {
                _Caster.SpawnProjectile(_LowDataMgr.GetSkillProjectTileData(_ability.callAbilityIdx), (int)affectValue, _Caster.TeamID, dirVec, _Caster, _Target, _ability, 0, normal);
                break;
            }

        case SkillType.Buff:            //< 버프 생성
            //황비홍 프로젝트 - 버프일단 무시
            if (_Target != null && _Target.BuffCtlr != null)
            {
                _Target.BuffCtlr.AttachBuff(_Caster, _Target, _Caster.SkillCtlr.__SkillGroupInfo.GetBuff(_ability.callBuffIdx, _ability.Idx), _ability.rate, _ability.durationTime);

                //< 주변적들에게 모두 넉백(자신에게 사용하는 버프만)
                if (_Target == _Caster)
                {
                    List <Unit>            targetList = GetTargetList(1, _Caster);
                    SkillTables.ActionInfo _action    = _LowDataMgr.GetSkillAction(_ability.Idx);
                    float radius = (ushort)(_ability.radius + _action.range);
                    for (int i = 0; i < targetList.Count; i++)
                    {
                        if (targetList[i] == null || targetList[i].IsDie)
                        {
                            continue;
                        }

                        if (!MathHelper.IsInRange((targetList[i].transform.position - _Caster.transform.position), radius, _Caster.Radius, targetList[i].Radius))
                        {
                            continue;
                        }

                        targetList[i].SetPush(_ability.pushpower, _Caster.gameObject, 1);
                    }
                }
            }
            break;


        case SkillType.Heal:            //체력 회복 또는 감소
            if (affectValue > 0 && _Target != null)
            {
                _Target.SetHp(_Caster, affectValue);
            }
            break;

        case SkillType.EffectSkill:     //< 해당 적 위치에 이펙트 바로 호출하여 공격
            //황비홍 프로젝트 - 이펙트 스킬 일단 무시

            /*
             * if (_Target != null && _ability.targetEffect != "0")
             * {
             *  //if (SimulationGameInfo.SimulationGameCheck)
             *  //    UnitSimulation.UseSkillNames.Add(_ability.targetEffect);
             *
             *  _Target.SpawnEffect(_ability.targetEffect, 1, _Target.transform, null, false, (skillCastingEff) =>
             *  {
             *      //< 사운드 실행
             *      if (_ability.targetSound > 0)
             *          SoundHelper.PlaySfxSound(_ability.targetSound, 1.5f);
             *
             *      //< 각도만 캐스터 방향으로 보정해준다
             *      skillCastingEff.transform.localRotation = _Caster.transform.localRotation;
             *
             *      // 1. 이펙트 자식중에 충돌체가 있는지 찾도록 한다.
             *      Collider[] existCol = skillCastingEff.GetComponentsInChildren<Collider>(true);
             *      if (null != existCol)
             *      {
             *          for (int j = 0; j < existCol.Length; j++)
             *              SetTriggerEvent(existCol[j], _Caster, affectValue, _ability);
             *      }
             *
             *      //< 이펙트에 듀플리케이트가 있을경우 연결해줌
             *      NcDuplicator _NcDuplicator = skillCastingEff.GetComponentInChildren<NcDuplicator>();
             *      if (_NcDuplicator != null)
             *      {
             *          _NcDuplicator._CallBack = (trn) =>
             *          {
             *              Collider[] existCol2 = trn.gameObject.GetComponentsInChildren<Collider>(true);
             *              if (null != existCol2)
             *              {
             *                  for (int j = 0; j < existCol2.Length; j++)
             *                      SetTriggerEvent(existCol2[j], _Caster, affectValue, _ability);
             *              }
             *          };
             *      }
             *  }, _Caster.Model.Main.transform.localScale.x);
             * }
             */
            break;
        }
    }