void Start()
    {
        Instance = this;

        uiScoreTextTween.isDead      = true;
        uiScoreTextTween.doStayAlive = true;
        uiScoreTextTween.SetTransition(step => {
            float size = 1.5f + (1f - step) * 1f;
            uiScoreText.transform.localScale = new Vector3(size, size, size);
        });
        TweenManager.AddTween(uiScoreTextTween, false);
        uiComboTextTween.isDead      = true;
        uiComboTextTween.doStayAlive = true;
        uiComboTextTween.SetTransition(step => {
            float size = 1f + (1f - step) * 0.2f;
            uiComboText.transform.localScale = new Vector3(size, size, size);
        });
        TweenManager.AddTween(uiComboTextTween, false);
        uiIncTextTween.isDead      = true;
        uiIncTextTween.doStayAlive = true;
        uiIncTextTween.SetTransition(step => {
//			float size = 1.5f + (1f - step) * 0.2f;
            float size = (1f - step) * 1.5f;
            uiIncText.transform.localScale = new Vector3(size, size, size);
        });
        TweenManager.AddTween(uiIncTextTween, false);
    }
Exemplo n.º 2
0
        public async Task GenerateViaAndTarget_ShouldNot_RecreateViaWhenAccurate()
        {
            var  proc         = new Mock <IProcessHandler>().Object;
            var  character    = new Mock <ICharacterStateProvider>().Object;
            var  input        = new Mock <IInputHandler>().Object;
            var  planProvider = new TestPlanProvider();
            var  livePlayer   = new LivePlayer(proc, character, input, planProvider);
            Node firstTarget;
            Node target;
            Node via0;
            Node via1;

            await livePlayer.LoadAndGenerateRoute();

            firstTarget = livePlayer.GenerateViaAndTarget(2.2f, 0.1f);
            target      = livePlayer.GenerateViaAndTarget(2.1f, 0.1f);
            via0        = livePlayer.ViaRoute.Dequeue();
            via1        = livePlayer.ViaRoute.Dequeue();

            firstTarget.Should().Be(target);
            livePlayer.ViaRoute.Should().HaveCount(0);
            via0.X.Should().Be(2);
            via0.Y.Should().BeInRange(0, 2);
            via1.X.Should().Be(2 - via1.Y);
            via1.Y.Should().BeInRange(0, 2);
            target.Should().Be(via0);
        }
Exemplo n.º 3
0
        public async Task LoadAndGenerateRoute_Should_Work()
        {
            var proc         = new Mock <IProcessHandler>().Object;
            var character    = new Mock <ICharacterStateProvider>().Object;
            var input        = new Mock <IInputHandler>().Object;
            var planProvider = new TestPlanProvider();
            var livePlayer   = new LivePlayer(proc, character, input, planProvider);
            var nodes        = new List <Node>();
            var validators   = new List <Action <Node> >()
            {
                n => { n.X.Should().Be(0.5f); n.Y.Should().Be(0.5f); },
                n => { n.X.Should().Be(1.5f); n.Y.Should().Be(1.5f); },
                n => { n.X.Should().Be(2.5f); n.Y.Should().Be(0.5f); },
                n => { n.X.Should().Be(3.5f); n.Y.Should().Be(1.5f); },
                n => { n.X.Should().Be(4.5f); n.Y.Should().Be(2.5f); },
                n => { n.X.Should().Be(0.5f); n.Y.Should().Be(2.5f); },
            };

            await livePlayer.LoadAndGenerateRoute();

            livePlayer.Route.Should().HaveSameCount(validators);
            for (int i = 0; i < livePlayer.Route.Count; ++i)
            {
                validators[i](livePlayer.Route[i]);
            }
        }
Exemplo n.º 4
0
        private void InitializeGame()
        {
            player = new LivePlayer(
                MainMenu.ChosenFaction,
                Hero.DeffaultHero,
                HeavenUnits.DeffaultHeavenUnits,
                1000);

            //player.Hero.Name = MainMenu.Nickname;
        }
Exemplo n.º 5
0
        /// <summary>
        ///		Start Preview in realtime.
        ///		<para><paramref name="playWndHandle"/> - window handle, on fitch will be drawing.</para>
        ///		<para><paramref name="previewSettings"/> - preview settings.</para>
        /// </summary>
        public void StartPreview(IntPtr playWndHandle, NvrPreviewSettings previewSettings)
        {
            if (livePlayer_.RealPlayHandle != -1)
            {
                throw new NvrBadLogicException("Call StopPreview before calling StartPreview");
            }

            if (!NvrUserSession.IsSessionValid())
            {
                throw new NvrBadLogicException("Call StartPreview when NvrUserSession is invalid");
            }

            livePlayer_ = new LivePlayer(playWndHandle, previewSettings);

            CHCNetSDK.NET_DVR_PREVIEWINFO previewInfo = new CHCNetSDK.NET_DVR_PREVIEWINFO()
            {
                lChannel        = NvrUserSession.UserSessionState.SelectedChannelNum,
                dwStreamType    = livePlayer_.PreviewSettings.StreamType,
                dwLinkMode      = (uint)livePlayer_.PreviewSettings.LinkMode,
                bBlocked        = livePlayer_.PreviewSettings.IsBlocked,
                dwDisplayBufNum = livePlayer_.PreviewSettings.DisplayBufNum,
                byPreviewMode   = (byte)livePlayer_.PreviewSettings.PreviewMode
            };

            switch (previewSettings.PreviewHandleMode)
            {
            case PreviewHandleType.Direct:
                livePlayer_.RealDataCallBackFunc = null;
                previewInfo.hPlayWnd             = livePlayer_.PlayWndHandlePtr;
                break;

            case PreviewHandleType.CallBack:
                livePlayer_.RealDataCallBackFunc = new CHCNetSDK.REALDATACALLBACK(realDataCallBack);                        // Real-time stream callback function
                previewInfo.hPlayWnd             = IntPtr.Zero;
                break;
            }

            livePlayer_.RealPlayHandle = CHCNetSDK.NET_DVR_RealPlay_V40(NvrUserSession.UserSessionState.UserId, ref previewInfo, livePlayer_.RealDataCallBackFunc, IntPtr.Zero);

            if (livePlayer_.RealPlayHandle == -1)
            {
                throw new NvrSdkException(CHCNetSDK.NET_DVR_GetLastError(), "NET_DVR_RealPlay_V40 failed: " + livePlayer_.RealPlayHandle);
            }

            if (previewSettings.PreviewHandleMode == PreviewHandleType.Direct)
            {
                livePlayer_.DrawCallBackFunc = new CHCNetSDK.DRAWFUN(drawCallBack);
                if (!CHCNetSDK.NET_DVR_RigisterDrawFun(livePlayer_.RealPlayHandle, livePlayer_.DrawCallBackFunc, 0))
                {
                    invokeOnPreviewErrorEvent(PlayCtrl.PlayM4_GetLastError(livePlayer_.RealPlayPort), "NET_DVR_RigisterDrawFun failed");
                }
            }

            debugInfo("NET_DVR_RealPlay_V40 succ!");
        }
Exemplo n.º 6
0
 private void CreatePlayer()
 {
     if (MainMenu.ChosenFaction == Faction.Inferno)
     {
         Player = new LivePlayer(MainMenu.ChosenFaction, InfernoUnit.DeffaultUnits, 1000);
     }
     else
     {
         Player = new LivePlayer(MainMenu.ChosenFaction, HeavenUnit.DeffaultUnits, 1000);
     }
 }
Exemplo n.º 7
0
 private void InitializeGame()
 {
     if (MainMenu.ChosenFaction == Faction.Inferno)
     {
         player = new LivePlayer(MainMenu.ChosenFaction, InfernoCreatures.DeffaultUnits, 1000);
     }
     else
     {
         player = new LivePlayer(MainMenu.ChosenFaction, HeavenUnits.DeffaultUnits, 1000);
     }
 }
Exemplo n.º 8
0
        /// <summary>
        ///		Stop Preview.
        /// </summary>
        public void StopPreview()
        {
            if (livePlayer_.RealPlayHandle == -1)
            {
                debugInfo("Preview not started!");
                return;
            }

            {
                // Set to null Draw CallBack Function
                CHCNetSDK.NET_DVR_RigisterDrawFun(livePlayer_.RealPlayHandle, null, 0);
            }

            bool isStopRealPlayOk;

            {
                // Stop live view
                isStopRealPlayOk = CHCNetSDK.NET_DVR_StopRealPlay(livePlayer_.RealPlayHandle);

                if (livePlayer_.RealPlayPort >= 0)
                {
                    if (!PlayCtrl.PlayM4_Stop(livePlayer_.RealPlayPort))
                    {
                        invokeOnPreviewErrorEvent(PlayCtrl.PlayM4_GetLastError(livePlayer_.RealPlayPort), "PlayM4_Stop failed");
                    }

                    if (!PlayCtrl.PlayM4_CloseStream(livePlayer_.RealPlayPort))
                    {
                        invokeOnPreviewErrorEvent(PlayCtrl.PlayM4_GetLastError(livePlayer_.RealPlayPort), "PlayM4_CloseStream failed");
                    }

                    if (!PlayCtrl.PlayM4_FreePort(livePlayer_.RealPlayPort))
                    {
                        invokeOnPreviewErrorEvent(PlayCtrl.PlayM4_GetLastError(livePlayer_.RealPlayPort), "PlayM4_FreePort failed");
                    }
                }
            }

            livePlayer_ = LivePlayer.Default();

            if (isStopRealPlayOk)
            {
                debugInfo("NET_DVR_StopRealPlay succ!");
            }
            else
            {
                throw new NvrSdkException(CHCNetSDK.NET_DVR_GetLastError(), "NET_DVR_StopRealPlay failed");
            }
        }
Exemplo n.º 9
0
        public async Task GenerateViaAndTarget_Should_NotCreateViaForTargetInSameTri()
        {
            var  proc         = new Mock <IProcessHandler>().Object;
            var  character    = new Mock <ICharacterStateProvider>().Object;
            var  input        = new Mock <IInputHandler>().Object;
            var  planProvider = new TestPlanProvider();
            var  livePlayer   = new LivePlayer(proc, character, input, planProvider);
            Node target;

            await livePlayer.LoadAndGenerateRoute();

            target = livePlayer.GenerateViaAndTarget(0.1f, 0.1f);

            livePlayer.ViaRoute.Should().HaveCount(0);
            target.Should().Be(livePlayer.Route[0]);
        }
Exemplo n.º 10
0
        public async Task GenerateViaAndTarget_Should_DeleteViaWhenInaccurate()
        {
            var  proc         = new Mock <IProcessHandler>().Object;
            var  character    = new Mock <ICharacterStateProvider>().Object;
            var  input        = new Mock <IInputHandler>().Object;
            var  planProvider = new TestPlanProvider();
            var  livePlayer   = new LivePlayer(proc, character, input, planProvider);
            Node badTarget;
            Node target;

            await livePlayer.LoadAndGenerateRoute();

            badTarget = livePlayer.GenerateViaAndTarget(0.1f, 2.1f);
            target    = livePlayer.GenerateViaAndTarget(0.1f, 0.1f);

            badTarget.X.Should().BeInRange(0, 2);
            badTarget.Y.Should().Be(2);
            livePlayer.ViaRoute.Should().HaveCount(0);
            target.Should().Be(livePlayer.Route[0]);
        }
Exemplo n.º 11
0
 public NvrLivePlayer(NvrUserSession userSession, bool isDebugEnabled)
 {
     NvrUserSession  = userSession;
     isDebugEnabled_ = isDebugEnabled;
     livePlayer_     = LivePlayer.Default();
 }
Exemplo n.º 12
0
        private static LiveEvent ParseLeagueOfLegends(Link link)
        {
            var       json = JObject.Parse(_client.GetStringAsync(link.Uri).Result);
            LiveEvent ev   = new LiveEvent();

            ev.Sport      = SportEnum.LeagueOfLegends;
            ev.GameTime   = int.Parse(json["game_time"].ToString());
            ev.MapNumber  = link.MapNumber;
            ev.LeagueName = link.LeagueName;
            ev.BestOf     = link.BestOf;
            switch (json["first_tower"].ToString())
            {
            case "red":
                ev.FirstTower = 2;
                break;

            case "blue":
                ev.FirstTower = 1;
                break;
            }
            switch (json["first_blood"].ToString())
            {
            case "red":
                ev.FirstBlood = 2;
                break;

            case "blue":
                ev.FirstBlood = 1;
                break;
            }
            LiveTeam homeTeam = new LiveTeam();

            homeTeam.WinsInSeries = link.ScoreHome;
            homeTeam.Players      = new List <LivePlayer>();
            homeTeam.TeamName     = json["blue_team"]["name"].ToString();
            homeTeam.Gold         = int.Parse(json["blue"]["gold"].ToString());
            homeTeam.Kills        = int.Parse(json["blue"]["score"].ToString());

            LiveTeam awayTeam = new LiveTeam();

            awayTeam.WinsInSeries = link.ScoreAway;
            awayTeam.Players      = new List <LivePlayer>();
            awayTeam.TeamName     = json["red_team"]["name"].ToString();
            awayTeam.Gold         = int.Parse(json["red"]["gold"].ToString());
            awayTeam.Kills        = int.Parse(json["red"]["score"].ToString());

            foreach (var player in json["blue"]["players"])
            {
                LivePlayer pl = new LivePlayer();
                pl.Nickname         = player["name"].ToString();
                pl.ChampionName     = player["hero"]["name"].ToString();
                pl.ChampionImageUrl = player["hero"]["image_url"].ToString();
                if (player["color"].ToString() == "blue")
                {
                    homeTeam.Players.Add(pl);
                }
            }
            foreach (var player in json["red"]["players"])
            {
                LivePlayer pl = new LivePlayer();
                pl.Nickname         = player["name"].ToString();
                pl.ChampionName     = player["hero"]["name"].ToString();
                pl.ChampionImageUrl = player["hero"]["image_url"].ToString();
                if (player["color"].ToString() == "red")
                {
                    awayTeam.Players.Add(pl);
                }
            }

            if (link.HomeTeamName.ToLowerInvariant() == awayTeam.TeamName.ToLowerInvariant()) //hack for reversed team names
            {
                ev.HomeTeam = awayTeam;
                ev.AwayTeam = homeTeam;

                ev.HomeTeam.WinsInSeries = link.ScoreHome;
                ev.AwayTeam.WinsInSeries = link.ScoreAway;

                return(ev);
            }

            ev.HomeTeam = homeTeam;
            ev.AwayTeam = awayTeam;

            return(ev);
        }