Exemplo n.º 1
0
    DancerInfo GetSelfDancerInfo()
    {
        DancerInfo self = new DancerInfo();

        if (SelfPlayerData.Sex == Female)
        {
            self.m_Sex = DancerInfo.Sex.Female;
        }
        else
        {
            self.m_Sex = DancerInfo.Sex.Male;
        }

        if (SelfPlayerData.Country == China)
        {
            self.m_Country = DancerInfo.Country.China;
        }
        else
        {
            self.m_Country = DancerInfo.Country.America;
        }

        if (SelfPlayerLevelData.ScoreIncrement > 0)
        {//自己是胜利者
            self.m_RankingType = DancerInfo.RankingType.Winner;
            m_SelfWinner       = true;
        }
        else
        {//自己是失败者
            self.m_RankingType = DancerInfo.RankingType.Loser;
            m_SelfWinner       = false;
        }

        m_TempTypeCache.Clear();
        self.ModelID = RoleModelConfig.Instance.GetNameById(int.Parse(SelfPlayerData.ModelId));
        m_TempTypeCache.Add(self.ModelID);
        self.FaceID   = RoleEmotionConfig.Instance.GetNameById(int.Parse(SelfPlayerData.EmotionId));
        self.Name     = SelfPlayerData.UserName;
        self.PlayerID = SelfPlayerData.Uuid;

        int songMax  = m_SongMaxScoreInfo.MaxScore;
        int clickMax = (int)(m_SongMaxScoreInfo.MaxScore * m_SongMaxScoreInfo.ClickScorePercent);
        int voiceMax = (int)(m_SongMaxScoreInfo.MaxScore * m_SongMaxScoreInfo.VoiceScorePercent);

        self.WholeScore          = m_Score;
        self.VoiceScore          = (int)(m_SumVoiceScore * CorePlaySettings.Instance.m_VoiceRightPoint);
        self.ClickScore          = self.WholeScore - self.VoiceScore;
        self.WholeRankingPercent = (float)self.WholeScore / songMax;
        self.ClickScorePercent   = (float)self.ClickScore / clickMax;
        self.VoiceScorePercent   = (float)self.VoiceScore / voiceMax;

        return(self);
    }
Exemplo n.º 2
0
    public static DancerInfo GetNPCDancer(bool betterOne, int wholeScore, DancerInfo.Country country, DancerInfo.Sex sex, int maxScore, int clickMaxScore, List <string> typeList)
    {
        DancerInfo dancer = new DancerInfo();

        if (country == DancerInfo.Country.China)
        {
            dancer.Name = RoleManager.RandomUserNickName(LanguageType.Chinese);
        }
        else
        {
            dancer.Name = RoleManager.RandomUserNickName(LanguageType.English);
        }

        dancer.m_Country = country;
        dancer.m_Sex     = sex;
        if (betterOne)
        {
            dancer.WholeScore    = UnityEngine.Random.Range(wholeScore + 1, maxScore);
            dancer.m_RankingType = DancerInfo.RankingType.Winner;
        }
        else
        {
            dancer.WholeScore    = UnityEngine.Random.Range(0, wholeScore);
            dancer.m_RankingType = DancerInfo.RankingType.Loser;
        }

        dancer.ClickScore          = UnityEngine.Random.Range(0, dancer.WholeScore);
        dancer.VoiceScore          = dancer.WholeScore - dancer.ClickScore;
        dancer.WholeRankingPercent = (float)dancer.WholeScore / maxScore;
        dancer.ClickScorePercent   = (float)dancer.ClickScore / clickMaxScore;
        dancer.VoiceScorePercent   = (float)dancer.VoiceScore / (maxScore - clickMaxScore);

        string tempType = RoleModelConfig.Instance.GetNameById(UnityEngine.Random.Range(20001, 20009));

        while (typeList.Contains(tempType))
        {
            tempType = RoleModelConfig.Instance.GetNameById(UnityEngine.Random.Range(20001, 20009));
        }
        typeList.Add(tempType);

        dancer.ModelID  = tempType;
        dancer.FaceID   = RoleEmotionConfig.Instance.GetNameById(UnityEngine.Random.Range(30001, 30009));
        dancer.PlayerID = "npc";

        return(dancer);
    }
Exemplo n.º 3
0
    IEnumerator LoadStageData()
    {
        yield return(new WaitForSeconds(WaitingLength));

        //模拟数据
        if (!m_AlreadyRuning)
        {
            m_AlreadyRuning = true;

            int songMax  = m_SongMaxScoreInfo.MaxScore;
            int clickMax = (int)(m_SongMaxScoreInfo.MaxScore * m_SongMaxScoreInfo.ClickScorePercent);
            int voiceMax = (int)(m_SongMaxScoreInfo.MaxScore * m_SongMaxScoreInfo.VoiceScorePercent);

            DancerInfo left  = new DancerInfo();
            DancerInfo right = new DancerInfo();

            if (m_SelfWinner)
            {
                left  = GetNPCDancer(false, m_Score, DancerInfo.Country.China, DancerInfo.Sex.Female, songMax, clickMax, m_TempTypeCache);
                right = GetNPCDancer(false, m_Score, DancerInfo.Country.America, DancerInfo.Sex.Male, songMax, clickMax, m_TempTypeCache);
            }
            else
            {
                int temp = UnityEngine.Random.Range(0, 2);
                if (temp == 0)
                {
                    left  = GetNPCDancer(true, m_Score, DancerInfo.Country.China, DancerInfo.Sex.Female, songMax, clickMax, m_TempTypeCache);
                    right = GetNPCDancer(false, m_Score, DancerInfo.Country.America, DancerInfo.Sex.Male, songMax, clickMax, m_TempTypeCache);
                }
                else
                {
                    left  = GetNPCDancer(false, m_Score, DancerInfo.Country.China, DancerInfo.Sex.Female, songMax, clickMax, m_TempTypeCache);
                    right = GetNPCDancer(true, m_Score, DancerInfo.Country.America, DancerInfo.Sex.Male, songMax, clickMax, m_TempTypeCache);
                }
            }

            stageManager.CreateDancer(left, StageManager.DancerPos.Left);
            stageManager.CreateDancer(right, StageManager.DancerPos.Right);
            stageManager.CreateDancerActionData();
        }
    }
Exemplo n.º 4
0
    public static ChoreographerData GetChoreographerDataFromJson(string json)
    {
        ChoreographerData cd = new ChoreographerData();

        JsonData data = JsonMapper.ToObject(json);

        cd.StartSpellIndex = int.Parse(data.TryGetString("startSpellIndex", "-1"));

        JsonData middleDancer = data["middle"];
        JsonData leftDancer   = data["left"];
        JsonData rightDancer  = data["right"];

        DancerInfo middle = new DancerInfo();
        DancerInfo left   = new DancerInfo();
        DancerInfo right  = new DancerInfo();

        middle.Name          = middleDancer.TryGetString("name");
        middle.ModelID       = middleDancer.TryGetString("modelID");
        middle.FaceID        = middleDancer.TryGetString("faceID");
        middle.m_Country     = (DancerInfo.Country) int.Parse(middleDancer.TryGetString("country"));
        middle.PlayerID      = middleDancer.TryGetString("uid");
        middle.m_RankingType = (DancerInfo.RankingType) int.Parse(middleDancer.TryGetString("ranking"));

        left.Name          = leftDancer.TryGetString("name");
        left.ModelID       = leftDancer.TryGetString("modelID");
        left.FaceID        = leftDancer.TryGetString("faceID");
        left.m_Country     = (DancerInfo.Country) int.Parse(leftDancer.TryGetString("country"));
        left.PlayerID      = leftDancer.TryGetString("uid");
        left.m_RankingType = (DancerInfo.RankingType) int.Parse(leftDancer.TryGetString("ranking"));

        right.Name          = rightDancer.TryGetString("name");
        right.ModelID       = rightDancer.TryGetString("modelID");
        right.FaceID        = rightDancer.TryGetString("faceID");
        right.m_Country     = (DancerInfo.Country) int.Parse(rightDancer.TryGetString("country"));
        right.PlayerID      = rightDancer.TryGetString("uid");
        right.m_RankingType = (DancerInfo.RankingType) int.Parse(rightDancer.TryGetString("ranking"));

        string[] middleActionList = middleDancer.TryGetString("actions").Split(',');
        string[] rightActionList  = rightDancer.TryGetString("actions").Split(',');
        string[] leftActionList   = leftDancer.TryGetString("actions").Split(',');

        for (int i = 0; i < middleActionList.Length; i++)
        {
            string[] array      = middleActionList[i].Split('|');
            int      beatNumber = int.Parse(array[0]);
            switch (array[1])
            {
            case "a":
                DanceActionData attackData = new DanceActionData("", 0, beatNumber);
                attackData.m_AnimationType = DanceActionData.AnimationType.Attack;
                switch (array[2])
                {
                case "lr":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromLeftToRight;
                    break;

                case "rl":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromRightToLeft;
                    break;

                case "rm":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromRightToMiddle;
                    break;

                case "mr":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToRight;
                    break;

                case "lm":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromLeftToMiddle;
                    break;

                case "ml":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToLeft;
                    break;
                }
                middle.m_DanceActionList.Add(attackData);
                break;

            case "b":
                DanceActionData beatenkData = new DanceActionData("", 0, beatNumber);
                beatenkData.m_AnimationType = DanceActionData.AnimationType.Beaten;
                switch (array[2])
                {
                case "lr":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromLeftToRight;
                    break;

                case "rl":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromRightToLeft;
                    break;

                case "rm":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromRightToMiddle;
                    break;

                case "mr":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToRight;
                    break;

                case "lm":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromLeftToMiddle;
                    break;

                case "ml":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToLeft;
                    break;
                }
                middle.m_DanceActionList.Add(beatenkData);
                break;

            case "d":
                int             animationID = int.Parse(array[2]);
                DanceActionData danceData   = new DanceActionData(StageManager.AnimationGroup[animationID], animationID, beatNumber);
                danceData.m_AnimationType = DanceActionData.AnimationType.Dance;
                middle.m_DanceActionList.Add(danceData);
                break;
            }
        }

        for (int i = 0; i < rightActionList.Length; i++)
        {
            string[] array      = rightActionList[i].Split('|');
            int      beatNumber = int.Parse(array[0]);
            switch (array[1])
            {
            case "a":
                DanceActionData attackData = new DanceActionData("", 0, beatNumber);
                attackData.m_AnimationType = DanceActionData.AnimationType.Attack;
                switch (array[2])
                {
                case "lr":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromLeftToRight;
                    break;

                case "rl":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromRightToLeft;
                    break;

                case "rm":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromRightToMiddle;
                    break;

                case "mr":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToRight;
                    break;

                case "lm":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromLeftToMiddle;
                    break;

                case "ml":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToLeft;
                    break;
                }
                right.m_DanceActionList.Add(attackData);
                break;

            case "b":
                DanceActionData beatenkData = new DanceActionData("", 0, beatNumber);
                beatenkData.m_AnimationType = DanceActionData.AnimationType.Beaten;
                switch (array[2])
                {
                case "lr":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromLeftToRight;
                    break;

                case "rl":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromRightToLeft;
                    break;

                case "rm":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromRightToMiddle;
                    break;

                case "mr":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToRight;
                    break;

                case "lm":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromLeftToMiddle;
                    break;

                case "ml":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToLeft;
                    break;
                }
                right.m_DanceActionList.Add(beatenkData);
                break;

            case "d":
                int             animationID = int.Parse(array[2]);
                DanceActionData danceData   = new DanceActionData(StageManager.AnimationGroup[animationID], animationID, beatNumber);
                danceData.m_AnimationType = DanceActionData.AnimationType.Dance;
                right.m_DanceActionList.Add(danceData);
                break;
            }
        }

        for (int i = 0; i < leftActionList.Length; i++)
        {
            string[] array      = leftActionList[i].Split('|');
            int      beatNumber = int.Parse(array[0]);
            switch (array[1])
            {
            case "a":
                DanceActionData attackData = new DanceActionData("", 0, beatNumber);
                attackData.m_AnimationType = DanceActionData.AnimationType.Attack;
                switch (array[2])
                {
                case "lr":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromLeftToRight;
                    break;

                case "rl":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromRightToLeft;
                    break;

                case "rm":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromRightToMiddle;
                    break;

                case "mr":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToRight;
                    break;

                case "lm":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromLeftToMiddle;
                    break;

                case "ml":
                    attackData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToLeft;
                    break;
                }
                left.m_DanceActionList.Add(attackData);
                break;

            case "b":
                DanceActionData beatenkData = new DanceActionData("", 0, beatNumber);
                beatenkData.m_AnimationType = DanceActionData.AnimationType.Beaten;
                switch (array[2])
                {
                case "lr":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromLeftToRight;
                    break;

                case "rl":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromRightToLeft;
                    break;

                case "rm":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromRightToMiddle;
                    break;

                case "mr":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToRight;
                    break;

                case "lm":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromLeftToMiddle;
                    break;

                case "ml":
                    beatenkData.m_AttackDir = DanceActionData.AttackDir.FromMiddleToLeft;
                    break;
                }
                left.m_DanceActionList.Add(beatenkData);
                break;

            case "d":
                int animationID = int.Parse(array[2]);
                int beatCounts  = 1;
                if (array.Length == 4)
                {
                    beatCounts = int.Parse(array[3]);
                }
                DanceActionData danceData = new DanceActionData(StageManager.AnimationGroup[animationID], animationID, beatNumber);
                danceData.AnimationBeatCount = beatCounts;
                danceData.m_AnimationType    = DanceActionData.AnimationType.Dance;
                left.m_DanceActionList.Add(danceData);
                break;
            }
        }

        cd.m_MiddleDancer = middle;
        cd.m_LeftDancer   = left;
        cd.m_RightDancer  = right;

        return(cd);
    }
Exemplo n.º 5
0
    void ServerDataCallback()
    {
        OnReceive_ScoreData();
        if (!m_AlreadyRuning)
        {
            StopCoroutine(LoadStageData());

            m_AlreadyRuning = true;
            //从服务器获取的真实数据


            int songMax  = m_SongMaxScoreInfo.MaxScore;
            int clickMax = (int)(m_SongMaxScoreInfo.MaxScore * m_SongMaxScoreInfo.ClickScorePercent);
            int voiceMax = (int)(m_SongMaxScoreInfo.MaxScore * m_SongMaxScoreInfo.VoiceScorePercent);

            DancerInfo left  = new DancerInfo();
            DancerInfo right = new DancerInfo();

            if (!string.IsNullOrEmpty(SelfPlayerLevelData.TempOtherLevelProcessData))
            {
                JsonData otherPlayers = JsonMapper.ToObject(SelfPlayerLevelData.TempOtherLevelProcessData);

                JsonData leftJson  = otherPlayers[0];
                JsonData rightJson = otherPlayers[1];

                if (int.Parse(leftJson.TryGetString("Country")) == China)
                {
                    left.m_Country = DancerInfo.Country.China;
                }
                else
                {
                    left.m_Country = DancerInfo.Country.America;
                }

                left.ModelID  = RoleModelConfig.Instance.GetNameById(int.Parse(leftJson.TryGetString("ModelId")));
                left.Name     = leftJson.TryGetString("UserName");
                left.FaceID   = RoleEmotionConfig.Instance.GetNameById(int.Parse(leftJson.TryGetString("EmotionId")));
                left.PlayerID = leftJson.TryGetString("uid");

                PlayerOperationData leftOperation = PlayerOperationData.GetDataFromJson(leftJson.TryGetString("Process"));

                left.WholeScore = leftOperation.wholeScore;
                left.ClickScore = leftOperation.clickScore;
                left.VoiceScore = left.WholeScore - left.ClickScore;

                left.WholeRankingPercent = (float)left.WholeScore / songMax;
                left.ClickScorePercent   = (float)left.ClickScore / clickMax;
                left.VoiceScorePercent   = (float)left.VoiceScore / voiceMax;

                if (int.Parse(rightJson.TryGetString("Country")) == China)
                {
                    right.m_Country = DancerInfo.Country.China;
                }
                else
                {
                    right.m_Country = DancerInfo.Country.America;
                }

                right.ModelID  = RoleModelConfig.Instance.GetNameById(int.Parse(rightJson.TryGetString("ModelId")));
                right.Name     = leftJson.TryGetString("UserName");
                right.FaceID   = RoleEmotionConfig.Instance.GetNameById(int.Parse(rightJson.TryGetString("EmotionId")));
                right.PlayerID = rightJson.TryGetString("uid");

                PlayerOperationData rightOperation = PlayerOperationData.GetDataFromJson(rightJson.TryGetString("Process"));

                right.WholeScore = rightOperation.wholeScore;
                right.ClickScore = rightOperation.clickScore;
                right.VoiceScore = right.WholeScore - right.ClickScore;

                right.WholeRankingPercent = (float)right.WholeScore / songMax;
                right.ClickScorePercent   = (float)right.ClickScore / clickMax;
                right.VoiceScorePercent   = (float)right.VoiceScore / voiceMax;
            }
            else
            {
                if (m_SelfWinner)
                {
                    left  = GetNPCDancer(false, m_Score, DancerInfo.Country.China, DancerInfo.Sex.Female, songMax, clickMax, m_TempTypeCache);
                    right = GetNPCDancer(false, m_Score, DancerInfo.Country.America, DancerInfo.Sex.Male, songMax, clickMax, m_TempTypeCache);
                }
                else
                {
                    int temp = UnityEngine.Random.Range(0, 2);
                    if (temp == 0)
                    {
                        left  = GetNPCDancer(true, m_Score, DancerInfo.Country.China, DancerInfo.Sex.Female, songMax, clickMax, m_TempTypeCache);
                        right = GetNPCDancer(false, m_Score, DancerInfo.Country.America, DancerInfo.Sex.Male, songMax, clickMax, m_TempTypeCache);
                    }
                    else
                    {
                        left  = GetNPCDancer(false, m_Score, DancerInfo.Country.China, DancerInfo.Sex.Female, songMax, clickMax, m_TempTypeCache);
                        right = GetNPCDancer(true, m_Score, DancerInfo.Country.America, DancerInfo.Sex.Male, songMax, clickMax, m_TempTypeCache);
                    }
                }
            }

            stageManager.CreateDancer(left, StageManager.DancerPos.Left);
            stageManager.CreateDancer(right, StageManager.DancerPos.Right);
            stageManager.CreateDancerActionData();
        }
    }