Esempio n. 1
0
    public float m_FXOffSet;                   //特效偏移

    public override void LoadData(string key)
    {
        DataTable table = DataManager.GetData("SkillStatusData");

        if (!table.ContainsKey(key))
        {
            throw new Exception("SkillStatusDataGenerate LoadData Exception Not Fond key ->" + key + "<-");
        }

        SingleData data = table[key];

        m_key                = key;
        m_AnimName           = data.GetString("AnimName");
        m_Time               = data.GetFloat("Time");
        m_SFXDelay           = data.GetFloat("SFXDelay");
        m_SFXName            = data.GetString("SFXName");
        m_FXCreatPoint       = data.GetEnum <HardPointEnum>("FXCreatPoint");
        m_FXLifeTime         = data.GetFloat("FXLifeTime");
        m_FXDelay            = data.GetFloat("FXDelay");
        m_FXName             = data.GetString("FXName");
        m_FollowFXCreatPoint = data.GetEnum <HardPointEnum>("FollowFXCreatPoint");
        m_FollowFXLifeTime   = data.GetFloat("FollowFXLifeTime");
        m_FollowFXName       = data.GetString("FollowFXName");
        m_CameraMove         = data.GetString("CameraMove");
        m_FollowFXOffSet     = data.GetFloat("FollowFXOffSet");
        m_FXOffSet           = data.GetFloat("FXOffSet");
    }
Esempio n. 2
0
    public Transform GetHardPoint(HardPointEnum pointEnum)
    {
        Transform result = null;

        switch (pointEnum)
        {
        case HardPointEnum.head: result = m_head; break;

        case HardPointEnum.chest: result = m_chest; break;

        case HardPointEnum.hand_R: result = m_hand_R; break;

        case HardPointEnum.hand_L: result = m_hand_L; break;

        case HardPointEnum.position: result = m_pos; break;

        case HardPointEnum.enemy: result = m_enemy; break;

        case HardPointEnum.Weapon_01: result = m_weapon01; break;

        case HardPointEnum.Weapon_02: result = m_weapon02; break;

        case HardPointEnum.headTop: result = m_headTop; break;

        default: throw new Exception("ERROR HardPointEnum " + pointEnum);
        }

        if (result == null)
        {
            throw new Exception("ERROR HardPoint is null ! " + pointEnum);
        }

        return(result);
    }
Esempio n. 3
0
    public string m_BlowFlyID;      //造成目标击飞ID

    public override void LoadData(string key)
    {
        DataTable table = DataManager.GetData("FlyData");

        if (!table.ContainsKey(key))
        {
            throw new Exception("FlyDataGenerate LoadData Exception Not Fond key ->" + key + "<-");
        }

        SingleData data = table[key];

        m_key              = key;
        m_ModelName        = data.GetString("ModelName");
        m_HitFXCreatPoint  = data.GetEnum <HardPointEnum>("HitFXCreatPoint");
        m_HitEffect        = data.GetString("HitEffect");
        m_Speed            = data.GetInt("Speed");
        m_Radius           = data.GetInt("Radius");
        m_LiveTime         = data.GetInt("LiveTime");
        m_CollisionTrigger = data.GetBool("CollisionTrigger");
        m_TriggerSkill     = data.GetString("TriggerSkill");
        m_AcrossEnemy      = data.GetBool("AcrossEnemy");
        m_HitSFX           = data.GetString("HitSFX");
        m_HurtBuff         = data.GetStringArray("HurtBuff");
        m_BlowFlyID        = data.GetString("BlowFlyID");
    }
Esempio n. 4
0
    public int m_limit;                    //叠加上限

    public override void LoadData(string key)
    {
        DataTable table = DataManager.GetData("BuffData");

        if (!table.ContainsKey(key))
        {
            throw new Exception("BuffDataGenerate LoadData Exception Not Fond key ->" + key + "<-");
        }

        SingleData data = table[key];

        m_key                    = key;
        m_BuffCreateFX           = data.GetString("BuffCreateFX");
        m_BuffExitFX             = data.GetString("BuffExitFX");
        m_BuffFX                 = data.GetString("BuffFX");
        m_BuffFollowPos          = data.GetEnum <HardPointEnum>("BuffFollowPos");
        m_BuffTime               = data.GetInt("BuffTime");
        m_AttackChange           = data.GetInt("AttackChange");
        m_AttackChangePercantage = data.GetFloat("AttackChangePercantage");
        m_SpeedChange            = data.GetInt("SpeedChange");
        m_SpeedChangePercentage  = data.GetFloat("SpeedChangePercentage");
        m_BuffEffectSpace        = data.GetInt("BuffEffectSpace");
        m_Invincible             = data.GetBool("Invincible");
        m_BuffCreateSFX          = data.GetString("BuffCreateSFX");
        m_BuffExitSFX            = data.GetString("BuffExitSFX");
        m_BuffSFX                = data.GetString("BuffSFX");
        m_Dizziness              = data.GetBool("Dizziness");
        m_Cloaking               = data.GetBool("Cloaking");
        m_BeDamageInterrupt      = data.GetBool("BeDamageInterrupt");
        m_UseSkilIinterrupt      = data.GetBool("UseSkilIinterrupt");
        m_RecoverNumber          = data.GetInt("RecoverNumber");
        m_DamageNumber           = data.GetInt("DamageNumber");
        m_IsTakeOver             = data.GetBool("IsTakeOver");
        m_AnimName               = data.GetString("AnimName");
        m_TrueSight              = data.GetBool("TrueSight");
        m_BuffhitSFX             = data.GetString("BuffhitSFX");
        m_defChange              = data.GetInt("defChange");
        m_hprecoverChange        = data.GetInt("hprecoverChange");
        m_critChange             = data.GetInt("critChange");
        m_critdamageChange       = data.GetInt("critdamageChange");
        m_ignoredefChange        = data.GetInt("ignoredefChange");
        m_hpabsorbChange         = data.GetInt("hpabsorbChange");
        m_toughChange            = data.GetInt("toughChange");
        m_defPercantage          = data.GetFloat("defPercantage");
        m_hprecoverPercantage    = data.GetFloat("hprecoverPercantage");
        m_critPercantage         = data.GetFloat("critPercantage");
        m_critdamagePercantage   = data.GetFloat("critdamagePercantage");
        m_ignoredefPercantage    = data.GetFloat("ignoredefPercantage");
        m_hpabsorbPercantage     = data.GetFloat("hpabsorbPercantage");
        m_toughPercantage        = data.GetFloat("toughPercantage");
        m_EffectArea             = data.GetString("EffectArea");
        m_limit                  = data.GetInt("limit");
    }
Esempio n. 5
0
    public void CreateFollowSkillEffect(EntityBase entity, string effectName, HardPointEnum hardPoint, float time)
    {
        PerfabComponent pc = entity.GetComp <PerfabComponent>();

        EffectData data    = new EffectData();
        PoolObject effectP = GameObjectManager.GetPoolObject(effectName, pc.hardPoint.hardPoint.GetHardPoint(hardPoint).gameObject);

        effectP.transform.localPosition    = Vector3.zero;
        effectP.transform.localEulerAngles = Vector3.zero;

        data.m_effect = effectP;
        data.m_timer  = time;

        //m_SkillEffectList.Add(data);

        //Debug.Log("CreateSkillEffect " + effectName + " time " + time + " " + " hard " +  m_character.m_hardPoint.GetHardPoint(hardPoint).gameObject, effectP );
    }
Esempio n. 6
0
    //CreatMesh RangeTip;


    public void CreatSkillEffect(EntityBase entity, SkillStatusComponent skillComp)
    {
        SkillStatusDataGenerate skillStatusData = null;

        switch (skillComp.m_skillStstus)
        {
        case SkillStatusEnum.Before:
            skillStatusData = skillComp.m_currentSkillData.BeforeInfo;
            break;

        case SkillStatusEnum.Current:
            skillStatusData = skillComp.m_currentSkillData.CurrentInfo;
            break;

        case SkillStatusEnum.Later:
            skillStatusData = skillComp.m_currentSkillData.LaterInfo;
            break;
        }

        string        FXName       = skillStatusData.m_FXName;
        float         FXLifeTime   = skillStatusData.m_FXLifeTime;
        float         offset       = skillStatusData.m_FXOffSet;
        HardPointEnum FXCreatPoint = skillStatusData.m_FXCreatPoint;

        string        followFXName       = skillStatusData.m_FollowFXName;
        float         FLoffset           = skillStatusData.m_FollowFXOffSet;
        HardPointEnum followFXCreatPoint = skillStatusData.m_FollowFXCreatPoint;
        float         followFXLifeTime   = skillStatusData.m_FollowFXLifeTime;

        //Debug.Log("FXName " + FXName);
        //Debug.Log("followFXName " + followFXName);

        //现在不管特效填跟不跟随都跟随角色,并在技能被打断时退出
        if (FXName != "null")
        {
            //恢复不follow
            CreateEffect(entity, FXName, FXCreatPoint, FXLifeTime, offset);
        }

        if (followFXName != "null")
        {
            CreateFollowSkillEffect(entity, followFXName, followFXCreatPoint, followFXLifeTime);
        }
    }
Esempio n. 7
0
    public void CreateEffect(EntityBase entity, string effectName, HardPointEnum hardPoint, float time, float offset)
    {
        PerfabComponent      pc  = entity.GetComp <PerfabComponent>();
        SkillStatusComponent ssc = entity.GetComp <SkillStatusComponent>();
        MoveComponent        mc  = entity.GetComp <MoveComponent>();

        //挂载点完全放弃了
        Transform creatPoint = pc.hardPoint.hardPoint.GetHardPoint(hardPoint);

        Vector3 createPos      = mc.pos.ToVector() + ssc.skillDir.ToVector() * offset;
        Vector3 charactorEugle = Vector3.zero;
        Vector3 m_aimWaistDir  = ssc.skillDir.ToVector();
        float   euler          = Mathf.Atan2(m_aimWaistDir.x, m_aimWaistDir.z) * Mathf.Rad2Deg;

        if (m_aimWaistDir.z == 0)
        {
            euler = 0;
        }

        charactorEugle.y = euler;

        TransfromComponent etc = new TransfromComponent();

        etc.pos.FromVector(createPos);
        etc.dir.FromVector(m_aimWaistDir);

        AssetComponent eac = new AssetComponent();

        eac.m_assetName = effectName;

        LifeSpanComponent elc = new LifeSpanComponent();

        elc.lifeTime = (int)(time * 1000);

        m_world.CreateEntity("Effect" + effectName + entity.ID + createPos, etc, eac, elc);
    }
    List <CreatPostionInfo> GetCreatePostionInfos(SkillDataGenerate skillData, EntityBase skiller, int Length)
    {
        MoveComponent   mc = skiller.GetComp <MoveComponent>();
        PlayerComponent pc = skiller.GetComp <PlayerComponent>();

        List <CreatPostionInfo> result = new List <CreatPostionInfo>();

        result.Clear();

        if (Length == 0)
        {
            return(result);
        }

        HardPointEnum l_FXCreatPoint = skillData.m_FlyCreatPoint;

        Vector3 forward = pc.faceDir.ToVector();
        Vector3 dir     = forward;
        Vector3 pos     = Vector3.zero;

        //获取散射区域
        Area skillArea = UpdatSkillArea(areaCache, skillData, skiller, null);

        //TODO 寻敌方法
        //CharacterBase enemy = GetRecentlyEnemy(skillArea, skiller.m_camp, false);
        //CharacterBase enemy = null;
        MoveComponent emc = null;

        if (l_FXCreatPoint != HardPointEnum.enemy)
        {
            pos = mc.pos.ToVector();
        }
        else
        {
            if (emc == null)
            {
                return(result);
            }
            else
            {
                pos = emc.pos.ToVector();
            }
        }

        Vector3 leftBorder    = Vector3.zero;
        Vector3 leftDir       = Vector3.zero;
        Vector3 leftPos       = Vector3.zero;
        float   sectorStep    = 0;
        float   rectangleStep = 0;

        AreaDataGenerate area = DataGenerateManager <AreaDataGenerate> .GetData(skillData.m_FlyObjectArea);

        switch (area.m_SkewDirection)
        {
        case DirectionEnum.Forward: break;

        case DirectionEnum.Backward: forward *= -1; break;

        case DirectionEnum.Close: forward = (emc.pos.ToVector() - mc.pos.ToVector()).normalized; break;

        case DirectionEnum.Leave: forward = (mc.pos.ToVector() - emc.pos.ToVector()).normalized; break;
        }

        switch (area.m_Shape)
        {
        case AreaType.Circle:
            leftBorder = forward.Vector3RotateInXZ(360 * 0.5f);
            sectorStep = 360 / (Length + 1);
            break;

        case AreaType.Sector:
            leftBorder = forward.Vector3RotateInXZ(area.m_Angle * 0.5f);
            sectorStep = area.m_Angle / (Length + 1);
            break;

        case AreaType.Rectangle:
            leftDir       = forward.Vector3RotateInXZ(90);
            leftPos       = pos + leftDir * area.m_Width * 0.5f;
            rectangleStep = area.m_Width / (Length + 1);
            break;
        }

        for (int i = 0; i < Length; i++)
        {
            switch (area.m_Shape)
            {
            case AreaType.Circle:
            case AreaType.Sector:
                dir = leftBorder.Vector3RotateInXZ2((i + 1) * sectorStep);
                pos = pos + forward * area.m_SkewDistance;
                break;

            case AreaType.Rectangle:
                pos = leftPos - leftDir * rectangleStep * (i + 1);
                break;
            }


            CreatPostionInfo cpi = new CreatPostionInfo();
            cpi.m_pos = pos;
            cpi.m_dir = dir;

            result.Add(cpi);
        }

        return(result);
    }
Esempio n. 9
0
    List <CreatPostionInfo> GetCreatePostionInfos(SkillDataGenerate skillData, EntityBase skiller, int Length)
    {
        MoveComponent        mc  = skiller.GetComp <MoveComponent>();
        SkillStatusComponent ssc = skiller.GetComp <SkillStatusComponent>();

        List <CreatPostionInfo> result = new List <CreatPostionInfo>();

        //result.Clear();

        if (Length == 0)
        {
            return(result);
        }

        HardPointEnum l_FXCreatPoint = skillData.m_FlyCreatPoint;

        SyncVector3 forward = new SyncVector3().FromVector(ssc.skillDir.ToVector().normalized);
        SyncVector3 dir     = forward;
        SyncVector3 pos     = mc.pos;

        SyncVector3 leftBorder    = new SyncVector3();
        SyncVector3 leftDir       = new SyncVector3();
        SyncVector3 leftPos       = new SyncVector3();
        float       sectorStep    = 0;
        float       rectangleStep = 0;

        AreaDataGenerate area = DataGenerateManager <AreaDataGenerate> .GetData(skillData.m_FlyObjectArea);

        switch (area.m_SkewDirection)
        {
        case DirectionEnum.Forward: break;

        case DirectionEnum.Backward: forward *= -1; break;
            //case DirectionEnum.Close: forward = (emc.pos - mc.pos); break;
            //case DirectionEnum.Leave: forward = (mc.pos - emc.pos); break;
        }

        switch (area.m_Shape)
        {
        case AreaType.Circle:
            leftBorder = forward.RotateInXZ(360 * 0.5f);
            sectorStep = 360 / (Length + 1);
            break;

        case AreaType.Sector:
            leftBorder = forward.RotateInXZ(area.m_Angle * 0.5f);
            sectorStep = area.m_Angle / (Length + 1);
            pos        = pos + forward * area.m_SkewDistance;
            break;

        case AreaType.Rectangle:
            leftDir       = forward.RotateInXZ(90);
            leftPos       = pos + leftDir * area.m_Width * 0.5f;
            rectangleStep = area.m_Width / (Length + 1);

            break;
        }
        for (int i = 0; i < Length; i++)
        {
            switch (area.m_Shape)
            {
            case AreaType.Circle:
            case AreaType.Sector:
                dir = leftBorder.RotateInXZ2((i + 1) * sectorStep);

                break;

            case AreaType.Rectangle:
                pos = leftPos - leftDir * rectangleStep * (i + 1);
                break;
            }
            CreatPostionInfo cpi = new CreatPostionInfo();
            pos.y = 0;
            dir.y = 0;

            cpi.m_pos = pos;
            cpi.m_dir = dir;
            result.Add(cpi);

            //CreatPostionInfo cpi = new CreatPostionInfo();
            //cpi.m_pos = mc.pos.DeepCopy();
            //cpi.m_dir.FromVector( ssc.skillDir.DeepCopy().ToVector().normalized);

            //result.Add(cpi);
        }

        return(result);
    }
Esempio n. 10
0
    public string m_SkillAgency;            //代放技能

    public override void LoadData(string key)
    {
        DataTable table = DataManager.GetData("SkillData");

        if (!table.ContainsKey(key))
        {
            throw new Exception("SkillDataGenerate LoadData Exception Not Fond key ->" + key + "<-");
        }

        SingleData data = table[key];

        m_key              = key;
        m_name             = data.GetString("name");
        m_info             = data.GetString("info");
        m_icon             = data.GetString("icon");
        m_HitFXName        = data.GetString("HitFXName");
        m_EffectArea       = data.GetString("EffectArea");
        m_DamageValue      = data.GetInt("DamageValue");
        m_HurtSFXDelay     = data.GetFloat("HurtSFXDelay");
        m_HurtSFX          = data.GetString("HurtSFX");
        m_CanBreak         = data.GetBool("CanBreak");
        m_BlowFlyID        = data.GetString("BlowFlyID");
        m_HurtBuff         = data.GetStringArray("HurtBuff");
        m_CD               = data.GetInt("CD");
        m_Moment           = data.GetBool("Moment");
        m_TriggerSpaceTime = data.GetInt("TriggerSpaceTime");
        m_allowMove        = data.GetBool("allowMove");
        m_noclip           = data.GetBool("noclip");
        m_FlyObjectArea    = data.GetString("FlyObjectArea");
        m_FlyDamageValue   = data.GetInt("FlyDamageValue");
        m_FlyObjectName    = data.GetStringArray("FlyObjectName");
        m_flydistance      = data.GetInt("flydistance");
        m_uplv             = data.GetInt("uplv");
        m_nextskill        = data.GetString("nextskill");
        m_moneytype        = data.GetInt("moneytype");
        m_moneynum         = data.GetInt("moneynum");
        m_material         = data.GetInt("material");
        m_materialnum      = data.GetInt("materialnum");
        m_BeforeStatus     = data.GetString("BeforeStatus");
        m_CurrentStatus    = data.GetString("CurrentStatus");
        m_LaterStatus      = data.GetString("LaterStatus");
        m_RaiseTime        = data.GetFloat("RaiseTime");
        m_HitTime          = data.GetInt("HitTime");
        m_HitFXCreatPoint  = data.GetEnum <HardPointEnum>("HitFXCreatPoint");
        m_AreaTexture      = data.GetString("AreaTexture");
        m_DamagePer        = data.GetInt("DamagePer");
        m_RecoverValue     = data.GetInt("RecoverValue");
        m_ReValuep         = data.GetInt("ReValuep");
        m_HurtCameraShoke  = data.GetString("HurtCameraShoke");
        m_flydamageper     = data.GetInt("flydamageper");
        m_FlyCreatPoint    = data.GetEnum <HardPointEnum>("FlyCreatPoint");
        m_CanBeBreakInC    = data.GetBool("CanBeBreakInC");
        m_CanBeBreak       = data.GetBool("CanBeBreak");
        m_MoveID           = data.GetString("MoveID");
        m_SelfBuff         = data.GetStringArray("SelfBuff");
        m_RecoverBuff      = data.GetStringArray("RecoverBuff");
        m_SummonMonster    = data.GetStringArray("SummonMonster");
        m_AffectTrap       = data.GetBool("AffectTrap");
        m_IsAreaTip        = data.GetBool("IsAreaTip");
        m_SkillAgency      = data.GetString("SkillAgency");
    }