public void CreateRandomItem(ItemCreatePointComponent comp)
    {
        //创建一个可以捡的道具
        CollisionComponent colc = new CollisionComponent();

        colc.area.direction = new Vector3(1, 0, 0);
        colc.area.position  = comp.pos.ToVector();
        colc.area.areaType  = AreaType.Circle;
        colc.area.radius    = 0.5f;
        //colc.isStatic = true;

        ItemComponent      ic     = new ItemComponent();
        AssetComponent     assert = new AssetComponent();
        TransfromComponent tc     = new TransfromComponent();

        tc.pos = comp.pos;

        int r = m_world.GetRandom() % comp.randomList.Count;

        //Debug.Log("r " + r + " comp.randomList.Count " + comp.randomList.Count);

        string itemID = comp.randomList[r];

        ic.ItemData = DataGenerateManager <ItemsDataGenerate> .GetData(itemID);

        assert.m_assetName = ic.ItemData.m_modelid;

        ic.ItemID = int.Parse(itemID);

        string identify = comp.Entity.ID + "Item" + comp.pos.ToVector(); //通过标识符保证唯一ID

        m_world.CreateEntity(identify, colc, ic, assert, tc);
    }
    public static void SetPoemByTag(List <string> difficultys, List <string> poemTypes)
    {
        s_poemList.Clear();

        for (int j = 0; j < s_poemdata.TableIDs.Count; j++)
        {
            string id = s_poemdata.TableIDs[j];

            for (int i = 0; i < difficultys.Count; i++)
            {
                bool isBreak = false;
                if (id.Contains(difficultys[i]))
                {
                    for (int k = 0; k < poemTypes.Count; k++)
                    {
                        if (id.Contains(poemTypes[k]))
                        {
                            s_poemList.Add(DataGenerateManager <poemDataGenerate> .GetData(id));
                            isBreak = true;
                            break;
                        }
                    }
                }

                if (isBreak)
                {
                    break;
                }
            }
        }
    }
    public static void SetPoemByName(string poemID)
    {
        s_poemList.Clear();
        poemDataGenerate poem = DataGenerateManager <poemDataGenerate> .GetData(poemID);

        s_poemList.Add(poem);
    }
Exemple #4
0
    List <Dictionary <string, object> > GetShopData()
    {
        List <Dictionary <string, object> > data = new List <Dictionary <string, object> >();

        DataTable itemData = DataManager.GetData("item");

        for (int i = 0; i < itemData.TableIDs.Count; i++)
        {
            //SingleData singleData = itemData.GetLineFromKey(itemData.TableIDs[i]);
            //string itemName = singleData.GetString("ItemName");
            //int cost = singleData.GetInt("Cost");

            Dictionary <string, object> tmp = new Dictionary <string, object>();

            tmp.Add("Name", DataGenerateManager <itemGenerate> .GetData(itemData.TableIDs[i]).m_ItemName);
            tmp.Add("Cost", DataGenerateManager <itemGenerate> .GetData(itemData.TableIDs[i]).m_key);

            data.Add(tmp);
        }


        //itemGenerate data = DataGenerateManager<itemGenerate>.GetData("1");
        //string itemName = data.m_ItemName;
        //int cost = data.m_Cost;


        return(data);
    }
    public override void FixedUpdate(int deltaTime)
    {
        List <EntityBase> list = GetEntityList();

        for (int i = 0; i < list.Count; i++)
        {
            CommandComponent     cc  = (CommandComponent)list[i].GetComp("CommandComponent");
            SkillStatusComponent ssc = (SkillStatusComponent)list[i].GetComp("SkillStatusComponent");
            PlayerComponent      pc  = (PlayerComponent)list[i].GetComp("PlayerComponent");
            MoveComponent        mc  = (MoveComponent)list[i].GetComp("MoveComponent");
            LifeComponent        lc  = (LifeComponent)list[i].GetComp("LifeComponent");

            //CD
            for (int j = 0; j < ssc.m_skillList.Count; j++)
            {
                ssc.m_CDList[j] -= deltaTime;
            }

            if (ssc.skillDirCache.ToVector() != Vector3.zero &&
                cc.isFire &&
                !pc.GetIsDizziness() &&
                lc.Life > 0 &&
                cc.skillDir.ToVector() == Vector3.zero
                )
            {
                string    skillID = SkillUtils.GetSkillName(cc);
                SkillData data    = ssc.GetSkillData(skillID);

                if (ssc.GetSkillCDFinsih(skillID))
                {
                    //Debug.Log("FIRE!!! --> " + skillID);
                    ssc.m_skillTime        = 0;
                    ssc.m_skillStstus      = SkillStatusEnum.Before;
                    ssc.m_isTriggerSkill   = false;
                    ssc.m_currentSkillData = data;
                    ssc.m_currentSkillData.UpdateInfo();

                    ssc.SetSkillCD(skillID, data.CDSpace);

                    ssc.skillDir = ssc.skillDirCache.DeepCopy();
                    AreaDataGenerate areaData = DataGenerateManager <AreaDataGenerate> .GetData(ssc.m_currentSkillData.SkillInfo.m_EffectArea);

                    float distance = ssc.skillDir.ToVector().magnitude;
                    distance = areaData.m_SkewDistance + Mathf.Clamp(distance, 0, areaData.m_distance);

                    Vector3 aimPos = mc.pos.ToVector() + ssc.skillDir.ToVector().normalized *distance;
                    if (areaData.m_Shape != AreaType.Rectangle)
                    {
                        ssc.skillPos.FromVector(aimPos);
                    }
                    else
                    {
                        ssc.skillPos.FromVector(mc.pos.ToVector() + ssc.skillDir.ToVector().normalized *(areaData.m_SkewDistance - areaData.m_Length / 2));
                    }
                }
            }

            ssc.skillDirCache = cc.skillDir.DeepCopy();
        }
    }
    public void RecveviceBuyCharacter(SyncSession session, PlayerBuyCharacter_s msg)
    {
        for (int i = 0; i < session.player.OwnCharacter.Count; i++)
        {
            if (session.player.OwnCharacter[i] == msg.characterID)
            {
                PlayerBuyCharacter_c result = new PlayerBuyCharacter_c();
                result.code = ServiceErrorCode.c_HasOwnCharacter;

                ProtocolAnalysisService.SendMsg(session, result);
                return;
            }
        }
        ShopDataGenerate data = DataGenerateManager <ShopDataGenerate> .GetData(msg.characterID);

        if (data.m_cost <= session.player.Diamond)
        {
            session.player.Diamond -= (int)data.m_cost;
            session.player.OwnCharacter.Add(data.m_item_id.ToString());

            PlayerBuyCharacter_c result = new PlayerBuyCharacter_c();
            result.code = ServiceErrorCode.c_Success;

            ProtocolAnalysisService.SendMsg(session, result);
        }
        else
        {
            PlayerBuyCharacter_c result = new PlayerBuyCharacter_c();
            result.code = ServiceErrorCode.c_NotEnoughDiamond;

            ProtocolAnalysisService.SendMsg(session, result);
        }
    }
    /// <summary>
    /// 检查是否要直接登录,如果是那就直接登录(默认选择筛选后的第0个登录)
    /// </summary>
    /// <param name="datas">返回可登录选项</param>
    /// <returns></returns>
    public static bool CheckAutoLoginOrGetLoginPlatforms(out List <LoginConfigData> datas)
    {
        datas = new List <LoginConfigData>();
        List <LoginConfigData> allConfigs = DataGenerateManager <LoginConfigData> .GetAllDataList();

        string sdkStr = SDKManager.GetProperties(SDKInterfaceDefine.PropertiesKey_LoginPlatform, "");

        if (!string.IsNullOrEmpty(sdkStr))
        {
            string[] arrStr = sdkStr.Split('|');
            foreach (var item in arrStr)
            {
                LoginConfigData con = DataGenerateManager <LoginConfigData> .GetData(item);

                if (con != null)
                {
                    datas.Add(con);
                }
                else
                {
                    Debug.LogError("获取登录配置失败:" + item);
                }
            }
        }
        else
        {
            //Debug.LogError("获取登录配置失败:" + item);

            foreach (var d in allConfigs)
            {
                List <string> platforms = null;
                if (d.m_SupportPlatform == null)
                {
                    platforms = new List <string>();
                }
                else
                {
                    platforms = new List <string>(d.m_SupportPlatform);
                }

                if (d.m_UseItem || platforms.Contains(Application.platform.ToString()))
                {
                    datas.Add(d);
                }
            }
        }

        string directlyLoginStr = SDKManager.GetProperties(SDKInterfaceDefine.PropertiesKey_DirectlyLogin, "false");
        bool   directlyLogin    = bool.Parse(directlyLoginStr);

        if (directlyLogin)
        {
            LoginConfigData d = datas[0];
            Login(d.m_loginName, "", "", d.m_CustomInfo);
            return(true);
        }
        return(false);
    }
    /// <summary>
    /// 构造谜题库
    /// </summary>
    static void CreatePuzzleLibrary()
    {
        s_poemdata = DataManager.GetData("poemData");

        for (int i = 0; i < s_poemdata.TableIDs.Count; i++)
        {
            PutPoem(DataGenerateManager <poemDataGenerate> .GetData(s_poemdata.TableIDs[i]));
        }
    }
    public static void SetPoemByFavorite(List <string> favoriteList)
    {
        s_poemList.Clear();

        for (int i = 0; i < favoriteList.Count; i++)
        {
            s_poemList.Add(DataGenerateManager <poemDataGenerate> .GetData(favoriteList[i]));
        }
    }
    public static void SetPoemByAllPoem()
    {
        s_poemList.Clear();

        for (int i = 0; i < s_poemdata.TableIDs.Count; i++)
        {
            s_poemList.Add(DataGenerateManager <poemDataGenerate> .GetData(s_poemdata.TableIDs[i]));
        }
    }
Exemple #11
0
    public void StartSelectServer(GameServerAreaData gameServerArea)
    {
        Debug.Log("开始选服");
        if (ApplicationManager.Instance.m_AppMode == AppMode.Release)
        {
            RuntimePlatform platform = Application.platform;
            //if (Application.isEditor)
            //{
            //    if (platform == RuntimePlatform.OSXEditor)
            //        platform = RuntimePlatform.IPhonePlayer;
            //    else
            //    {
            //        platform = RuntimePlatform.Android;
            //    }
            //}

            string defaultChannel = "GameCenter";

            string channel = SDKManager.GetProperties(SDKInterfaceDefine.PropertiesKey_ChannelName, defaultChannel);
            GameInfoCollecter.AddNetworkStateInfoValue("渠道", channel);

            string selectNetworkPath = gameServerArea.m_SelectServerURL;
            SelectSeverController.Start(selectNetworkPath, Application.version, platform, channel, (data) =>
            {
                SelectNetworkData select = null;
                bool isSelectRight       = false;
                if (data == null || data.Count == 0)
                {
                    Debug.LogError("没有合适的服务器!");
                    //return;
                    string networkID = SDKManager.GetProperties("NetworkID", "3");
                    select           = DataGenerateManager <SelectNetworkData> .GetData(networkID);
                }
                else
                {
                    int r         = UnityEngine.Random.Range(0, data.Count);
                    select        = data[r];
                    isSelectRight = true;
                }
                GameInfoCollecter.AddNetworkStateInfoValue("是否正确匹配服务器", isSelectRight);
                GameInfoCollecter.AddNetworkStateInfoValue("匹配服务器", select.m_serverIP + ":" + select.m_port);
                GameInfoCollecter.AddNetworkStateInfoValue("服务器描述", select.m_description);
                SelectServerCompleted(select);
            });
        }
        else
        {
            if (OnSelectServerLocal != null)
            {
                OnSelectServerLocal(SelectServerCompleted);
            }
        }
    }
    public void UpdateInfo()
    {
        if (m_skillID != "" && m_skillID != "null")
        {
            SkillInfo = DataGenerateManager <SkillDataGenerate> .GetData(m_skillID);

            BeforeInfo = DataGenerateManager <SkillStatusDataGenerate> .GetData(SkillInfo.m_BeforeStatus);

            CurrentInfo = DataGenerateManager <SkillStatusDataGenerate> .GetData(SkillInfo.m_CurrentStatus);

            LaterInfo = DataGenerateManager <SkillStatusDataGenerate> .GetData(SkillInfo.m_LaterStatus);
        }
    }
Exemple #13
0
    private void Prepare(List <PreloadResourcesDataGenerate> otherResList)
    {
        List <PreloadResourcesDataGenerate> configs = DataGenerateManager <PreloadResourcesDataGenerate> .GetAllDataList();

        if (otherResList != null)
        {
            queueRes.AddRange(otherResList);
        }

        queueRes.AddRange(configs);

        count      = queueRes.Count;
        currentNum = 0;
        LoadQueue();
    }
    void CreateFlyObject(SkillDataGenerate skillData, EntityBase skiller)
    {
        CampComponent campComp = skiller.GetComp <CampComponent>();

        //Debug.Log("CreateFlyObject " + skiller.ID + "  " + campComp.creater);

        if (skillData.m_FlyObjectName.Length != 0)
        {
            List <CreatPostionInfo> poss = GetCreatePostionInfos(skillData, skiller, skillData.m_FlyObjectName.Length);

            for (int i = 0; i < poss.Count; i++)
            {
                FlyDataGenerate flyData = DataGenerateManager <FlyDataGenerate> .GetData(skillData.m_FlyObjectName[i]);

                TransfromComponent tc = new TransfromComponent();
                tc.pos = poss[i].m_pos;
                tc.dir = poss[i].m_dir;

                MoveComponent mc = new MoveComponent();
                mc.pos        = poss[i].m_pos;
                mc.dir        = poss[i].m_dir;
                mc.m_velocity = flyData.m_Speed;

                LifeSpanComponent lsc = new LifeSpanComponent();
                lsc.lifeTime = flyData.m_LiveTime;

                AssetComponent ac = new AssetComponent();
                ac.m_assetName = flyData.m_ModelName;

                CampComponent cp = new CampComponent();
                cp.camp    = campComp.camp;
                cp.creater = campComp.creater;

                CollisionComponent cc = new CollisionComponent();
                cc.area.areaType = AreaType.Circle;
                cc.area.radius   = flyData.m_Radius / 1000;

                FlyObjectComponent fc = new FlyObjectComponent();
                fc.createrID   = skiller.ID;
                fc.damage      = skillData.m_FlyDamageValue;
                fc.flyObjectID = skillData.m_FlyObjectName[i];

                string identify = skiller.ID + "FlyObject" + i + poss[i].m_pos;
                m_world.CreateEntity(identify, tc, mc, ac, cp, lsc, cc, fc);
            }
        }
    }
Exemple #15
0
    public void StartSelectServer(GameServerAreaDataGenerate gameServerArea)
    {
        Debug.Log("开始选服");
        if (ApplicationManager.Instance.m_AppMode == AppMode.Release)
        {
            RuntimePlatform platform = Application.platform;
            if (Application.isEditor)
            {
                if (platform == RuntimePlatform.OSXEditor)
                {
                    platform = RuntimePlatform.IPhonePlayer;
                }
                else
                {
                    platform = RuntimePlatform.Android;
                }
            }
            string channel           = SDKManager.GetProperties(SDKInterfaceDefine.PropertiesKey_ChannelName, "GameCenter");
            string selectNetworkPath = gameServerArea.m_SelectServerURL;
            SelectSeverController.Start(selectNetworkPath, Application.version, platform, channel, (data) =>
            {
                SelectNetworkData select = null;

                if (data == null || data.Count == 0)
                {
                    Debug.LogError("没有合适的服务器!");
                    //return;
                    string networkID = SDKManager.GetProperties("NetworkID", "3");
                    select           = DataGenerateManager <SelectNetworkData> .GetData(networkID);
                }
                else
                {
                    int r  = UnityEngine.Random.Range(0, data.Count);
                    select = data[r];
                }
                SelectServerCompleted(select);
            });
        }
        else
        {
            if (OnSelectServerLocal != null)
            {
                OnSelectServerLocal(SelectServerCompleted);
            }
        }
    }
Exemple #16
0
    List <Dictionary <string, object> > GetShopData()
    {
        var data = new List <Dictionary <string, object> >();

        DataTable itemData = DataManager.GetData("item");

        for (int i = 0; i < itemData.TableIDs.Count; i++)
        {
            Dictionary <string, object> tmp = new Dictionary <string, object>();

            tmp.Add("Name", DataGenerateManager <itemGenerate> .GetData(itemData.TableIDs[i]).m_ItemName);
            tmp.Add("Cost", DataGenerateManager <itemGenerate> .GetData(itemData.TableIDs[i]).m_key);

            data.Add(tmp);
        }

        return(data);
    }
    void SetData()
    {
        List <string> list = FavoritesService.GetFavoritesList();

        List <Dictionary <string, object> > data = new List <Dictionary <string, object> >();

        for (int i = 0; i < list.Count; i++)
        {
            Dictionary <string, object> item     = new Dictionary <string, object>();
            poemDataGenerate            poemData = DataGenerateManager <poemDataGenerate> .GetData(list[i]);

            item.Add("poemData", poemData);

            data.Add(item);
        }

        GetReusingScrollRect("scrollRect").SetData(data);
    }
Exemple #18
0
    public static string GetSkillName(CommandComponent cmd)
    {
        if (s_comboData == null)
        {
            s_comboData = DataManager.GetData("CombineData");
        }

        if (cmd.element1 == Element_NoChoice && cmd.element2 == Element_NoChoice)
        {
            return(DataGenerateManager <CombineDataGenerate> .GetData(s_comboData.TableIDs[0]).m_key);
        }

        for (int i = 0; i < s_comboData.TableIDs.Count; i++)
        {
            CombineDataGenerate data = DataGenerateManager <CombineDataGenerate> .GetData(s_comboData.TableIDs[i]);

            if (data.m_ele_1 != Element_NoChoice &&
                data.m_ele_2 != Element_NoChoice
                )
            {
                if ((data.m_ele_1 == cmd.element1 && data.m_ele_2 == cmd.element2) ||
                    (data.m_ele_2 == cmd.element1 && data.m_ele_1 == cmd.element2)
                    )
                {
                    return(data.m_key);
                }
            }
            else
            {
                if ((data.m_ele_1 == cmd.element1 && data.m_ele_2 == 0) ||
                    (data.m_ele_2 == cmd.element2 && data.m_ele_1 == 0)
                    )
                {
                    return(data.m_key);
                }
            }
        }

        return(null);

        //Error!
        throw new System.Exception("Not Find SkillName!");
    }
    public static void UpdateArea(Area area, string areaID, EntityBase skiller, EntityBase aim = null)
    {
        MoveComponent smc = skiller.GetComp <MoveComponent>();

        AreaDataGenerate areaData = DataGenerateManager <AreaDataGenerate> .GetData(areaID);

        Vector3 dir = GetAreaDir(area, areaData, skiller, aim);

        area.areaType = areaData.m_Shape;
        area.length   = areaData.m_Length;
        area.Width    = areaData.m_Width;
        area.angle    = areaData.m_Angle;
        area.radius   = areaData.m_Radius;

        area.direction = dir.normalized;
        area.position  = smc.pos.ToVector() + area.direction * areaData.m_SkewDistance;

        //Debug.Log( "skiller forward"+skiller.transform.forward);
    }
    ////判断CD结束
    //public bool CDFinished()
    //{
    //    if (GetCDResidueTime() <= 0)
    //    {
    //        return true;
    //    }
    //    else
    //    {

    //        return false;
    //    }
    //}

    ///// <summary>
    ///// 获取CD剩余时间
    ///// </summary>
    //public float GetCDResidueTime()
    //{
    //    if (m_lastExecuteTime < 0)
    //    {
    //        return 0;
    //    }

    //    float result = m_CDSpace - (SyncService.CurrentServiceTime - m_lastExecuteTime);

    //    if (result < 0)
    //    {
    //        result = 0;
    //    }

    //    return result;
    //}

    #endregion

    public void UpdateInfo()
    {
        if (m_skillID != "" && m_skillID != "null")
        {
            m_skillInfo = DataGenerateManager <SkillDataGenerate> .GetData(m_skillID);

            m_beforeInfo = DataGenerateManager <SkillStatusDataGenerate> .GetData(m_skillInfo.m_BeforeStatus);

            m_currentInfo = DataGenerateManager <SkillStatusDataGenerate> .GetData(m_skillInfo.m_CurrentStatus);

            m_laterInfo = DataGenerateManager <SkillStatusDataGenerate> .GetData(m_skillInfo.m_LaterStatus);

            m_beforeTime = m_beforeInfo.m_Time;

            m_hitTime     = m_beforeTime + m_skillInfo.m_HitTime;
            m_currentTime = m_beforeTime + m_currentInfo.m_Time;
            m_laterTime   = m_currentTime + m_laterInfo.m_Time;
            m_CDSpace     = m_skillInfo.m_CD;
        }
    }
    public void UpdateInfo()
    {
        if (m_skillID != "" && m_skillID != "null")
        {
            SkillInfo = DataGenerateManager <SkillDataGenerate> .GetData(m_skillID);

            BeforeInfo = DataGenerateManager <SkillStatusDataGenerate> .GetData(SkillInfo.m_BeforeStatus);

            CurrentInfo = DataGenerateManager <SkillStatusDataGenerate> .GetData(SkillInfo.m_CurrentStatus);

            LaterInfo = DataGenerateManager <SkillStatusDataGenerate> .GetData(SkillInfo.m_LaterStatus);

            BeforeTime = BeforeInfo.m_Time;

            HitTime     = BeforeTime + SkillInfo.m_HitTime;
            CurrentTime = BeforeTime + CurrentInfo.m_Time;
            LaterTime   = CurrentTime + LaterInfo.m_Time;
            CDSpace     = SkillInfo.m_CD;
        }
    }
    private void Prepare(List <PreloadResourcesDataGenerate> otherResList)
    {
        List <PreloadResourcesDataGenerate> configs = DataGenerateManager <PreloadResourcesDataGenerate> .GetAllDataList();

        if (otherResList != null)
        {
            queueRes.AddRange(otherResList);
        }

        foreach (var item in configs)
        {
            if (item.m_UseLoad)
            {
                queueRes.Add(item);
            }
        }

        count      = queueRes.Count;
        currentNum = 0;
        instance.StartCoroutine(LoadQueue());
    }
    void CreateFlyObject(SkillDataGenerate skillData, EntityBase skiller)
    {
        CampComponent campComp = skiller.GetComp <CampComponent>();

        if (skillData.m_FlyObjectName.Length != 0)
        {
            List <CreatPostionInfo> poss = GetCreatePostionInfos(skillData, skiller, skillData.m_FlyObjectName.Length);

            for (int i = 0; i < poss.Count; i++)
            {
                FlyDataGenerate flyData = DataGenerateManager <FlyDataGenerate> .GetData(skillData.m_FlyObjectName[i]);

                MoveComponent mc = new MoveComponent();
                mc.pos.FromVector(poss[i].m_pos);
                mc.dir.FromVector(poss[i].m_dir);
                mc.m_velocity = (int)(flyData.m_Speed * 1000);

                LifeSpanComponent lsc = new LifeSpanComponent();
                lsc.lifeTime = (int)(flyData.m_LiveTime * 1000);

                AssetComponent ac = new AssetComponent();
                ac.m_assetName = flyData.m_ModelName;

                CampComponent cp = new CampComponent();
                cp.camp = campComp.camp;

                CollisionComponent cc = new CollisionComponent();
                cc.area.areaType = AreaType.Circle;
                cc.area.radius   = flyData.m_Radius;

                FlyObjectComponent fc = new FlyObjectComponent();
                fc.createrID = skiller.ID;
                fc.damage    = skillData.m_DamageValue;

                m_world.CreateEntity(mc, ac, cp, lsc, cc, fc);

                Debug.Log(poss[i].m_pos.ToString());
            }
        }
    }
    public void SetMesh(EntityBase entity, string areaID, bool isEnemy, string textureID)
    {
        MoveComponent mc = entity.GetComp <MoveComponent>();

        AreaDataGenerate areaData = DataGenerateManager <AreaDataGenerate> .GetData(areaID);

        Area    Area    = new Area();
        Vector3 AreaDir = SkillUtils.GetAreaDir(Area, areaData, entity, null);

        //Debug.Log("areaData.m_SkewDistance " + areaData.m_SkewDistance);

        Vector3 pos = mc.pos.ToVector();

        pos.y += 0.1f;
        transform.position = pos + AreaDir * areaData.m_SkewDistance;

        if (areaData.m_Shape == AreaType.Rectangle)
        {
            transform.position = pos + AreaDir * areaData.m_SkewDistance - AreaDir * areaData.m_Length / 2;
        }

        transform.right = AreaDir.normalized; //轴向不同,RangeTip 的前方为x轴,而player的为Z轴

        shapeType   = areaData.m_Shape;
        radius      = areaData.m_Radius;
        angleDegree = areaData.m_Angle;
        segments    = 40;
        high        = (int)Math.Ceiling(areaData.m_Length);
        width       = (int)Math.Ceiling(areaData.m_Width);

        isMonster = isEnemy;
        side      = 0.5f;

        SetTexture(textureID);

        creator.verticesTmp  = null;
        creator.uvsTmp       = null;
        creator.trianglesTmp = null;
    }
Exemple #25
0
    public static string GetRhythmID(string content)
    {
        try
        {
            string tmp = content.Substring(content.Length - 1, 1);

            for (int i = 0; i < s_rhythmData.TableIDs.Count; i++)
            {
                if (DataGenerateManager <RhythmDataGenerate> .GetData(s_rhythmData.TableIDs[i]).m_Content.Contains(tmp))
                {
                    return(s_rhythmData.TableIDs[i]);
                }
            }

            //Debug.Log("查无此韵 " + content);
        }
        catch (Exception e)
        {
            Debug.LogError("GetRhythmID Error :->" + content + "<- Exception : " + e.ToString());
        }


        return("未知");
    }
    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);
    }
    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);
    }