Beispiel #1
0
        public override void Start()
        {
            m_scoreTexts       = new TextComponent[3];
            m_scoreTextFxs     = new TextFx[3];
            m_textFxParameters = new TextFxParameters[3];
            for (int i = 0; i < m_textFxParameters.Length; i++)
            {
                m_textFxParameters[i] = new TextFxParameters();
            }

            m_scoreTextsSpacing = new Vector2[]
            {
                new Vector2(-150, 140),
                new Vector2(0, 140),
                new Vector2(150, 140)
            };

            Engine.World.EventManager.AddListener((int)EventId.Goal, OnGoal);
            Engine.World.EventManager.AddListener((int)EventId.LastSeconds, OnLastSeconds);
            Engine.World.EventManager.AddListener((int)EventId.Victory, OnVictory);
            Engine.World.EventManager.AddListener((int)EventId.MatchBegin, OnMatchBegin);
            Engine.World.EventManager.AddListener((int)EventId.FirstPeriod, OnFirstPeriod);
            Engine.World.EventManager.AddListener((int)EventId.SecondPeriodBegin, OnSecondPeriodBegin);
            Engine.World.EventManager.AddListener((int)EventId.SecondPeriod, OnSecondPeriod);
            Engine.World.EventManager.AddListener((int)EventId.HalfTime, OnHalfTime);
            Engine.World.EventManager.AddListener((int)EventId.MatchEnd, OnMatchEnd);
            Engine.World.EventManager.AddListener((int)EventId.Victory, OnVictory);

            m_timerScoreTextMS         = new Timer(Engine.GameTime.Source, 0);
            m_timerScoreTextEvent      = new TimerEvent(m_timerScoreTextMS_OnTime);
            m_timerScoreTextMS.OnTime += m_timerScoreTextEvent;

            m_timerCupSpriteMS         = new Timer(Engine.GameTime.Source, 0);
            m_timerCupSpriteEvent      = new TimerEvent(m_timerCupSpriteMS_OnTime);
            m_timerCupSpriteMS.OnTime += m_timerCupSpriteEvent;

            m_playerOffScreenMarkerSprites = new ColorMaskedSprite[4];
            for (int i = 0; i < m_playerOffScreenMarkerSprites.Length; i++)
            {
                Sprite sprite = Sprite.CreateFromTexture("Graphics/playerOffScreenMarkerAO.png");
                sprite.Scale = new Vector2(0.5f, 0.5f);
                m_playerOffScreenMarkerSprites[i] = new ColorMaskedSprite(sprite, "ArenaOverlay9");
                var texAsset = Engine.AssetManager.GetAsset <Texture2D>("Graphics/playerOffScreenMarkerAO.png");

                m_playerOffScreenMarkerSprites[i].Mask    = texAsset.Content;
                m_playerOffScreenMarkerSprites[i].Color1  = Game.GameManager.Players[i].PlayerColors[2];
                m_playerOffScreenMarkerSprites[i].Color2  = Game.GameManager.Players[i].PlayerColors[2];
                m_playerOffScreenMarkerSprites[i].Color3  = Game.GameManager.Players[i].PlayerColors[2];
                m_playerOffScreenMarkerSprites[i].Visible = false;

                Owner.Attach(m_playerOffScreenMarkerSprites[i]);

                PlayerOffScreenMarker playerOffScreenMarker = Game.GameManager.Players[i].Owner.FindComponent <PlayerOffScreenMarker>();
                playerOffScreenMarker.Init();
            }
        }
Beispiel #2
0
        public void OnVictory(object arg)
        {
            if (!Enabled)
            {
                return;
            }

            string victoryText = "";

            if (Game.Arena.LeftGoal.Score != Game.Arena.RightGoal.Score)
            {
                victoryText = " Victory !";
            }
            else
            {
                victoryText = "Draw Game";
            }

            TextFxParameters textFxParam = new TextFxParameters();

            textFxParam = new TextFxParameters
            {
                TextEffectTimeMS = 4000,
                ScaleStart       = 0.70f,
                ScaleEnd         = 0.40f,
                ScaleTimeMS      = 100,
                ScaleDelayMS     = 0,

                FadeStart   = 255,
                FadeEnd     = 0,
                FadeTimeMS  = 300,
                FadeDelayMS = 2900,

                MoveTimeMS  = 400,
                MoveDelayMS = 3550,
            };

            textFxParam.MoveValue = new Vector2(Game.GameManager.Camera.GetPosition().X, Game.GameManager.Camera.GetPosition().Y);

            CreateFeedBackText(Owner, ref m_timeText, ref m_VictoryTextFx,
                               victoryText,
                               Color.Orange,
                               new Vector2(50, 40),
                               textFxParam);

            m_VictoryTextFx.MoveEnd = new Vector2(Game.GameManager.Camera.GetPosition().X, Game.GameManager.Camera.GetPosition().Y);
        }
Beispiel #3
0
        public void OnLastSeconds(object arg)
        {
            if (!Enabled)
            {
                return;
            }

            int remainingTime = (int)((object[])arg)[0];

            TextFxParameters textFxParam = new TextFxParameters();

            textFxParam = new TextFxParameters
            {
                TextEffectTimeMS = 1000,
                ScaleStart       = 1.0f,
                ScaleEnd         = 0.25f,
                ScaleTimeMS      = 300,
                ScaleDelayMS     = 500,

                FadeStart   = 255,
                FadeEnd     = 0,
                FadeTimeMS  = 300,
                FadeDelayMS = 500,

                MoveTimeMS  = 300,
                MoveDelayMS = 500,
            };

            textFxParam.MoveValue = new Vector2(-Game.GameManager.Camera.GetPosition().X + Game.GameManager.Arena.RightTimerTextCmp.Position.X * 3,
                                                Game.GameManager.Camera.GetPosition().Y + Game.GameManager.Arena.RightTimerTextCmp.Position.Y);

            CreateFeedBackText(Owner, ref m_timeText, ref m_timeTextFx,
                               remainingTime.ToString(),
                               Color.LightGray,
                               new Vector2(Game.GameManager.Camera.GetPosition().X, Game.GameManager.Camera.GetPosition().Y),
                               textFxParam);

            m_timeTextFx.MoveEnd = new Vector2(Game.GameManager.Arena.RightTimerTextCmp.Position.X + 35, Game.GameManager.Arena.RightTimerTextCmp.Position.Y);
        }
Beispiel #4
0
        public void OnFirstPeriod(object arg)
        {
            if (!Enabled)
            {
                return;
            }

            TextFxParameters textFxParam = new TextFxParameters();

            textFxParam = new TextFxParameters
            {
                TextEffectTimeMS = 2000,
                ScaleStart       = 0.60f,
                ScaleEnd         = 0.35f,
                ScaleTimeMS      = 100,
                ScaleDelayMS     = 0,

                FadeStart   = 255,
                FadeEnd     = 0,
                FadeTimeMS  = 300,
                FadeDelayMS = 1400,

                MoveTimeMS  = 400,
                MoveDelayMS = 2150,
            };

            textFxParam.MoveValue = new Vector2(Game.GameManager.Camera.GetPosition().X, Game.GameManager.Camera.GetPosition().Y);
            //textFxParam.MoveValue = Vector2.Zero;

            CreateFeedBackText(Owner, ref m_timeText, ref m_FirstPeriodTextFx,
                               "Rush!",
                               Color.Orange,
                               new Vector2(50, 40),
                               textFxParam);

            m_FirstPeriodTextFx.MoveEnd = new Vector2(Game.GameManager.Camera.GetPosition().X, Game.GameManager.Camera.GetPosition().Y);
        }
Beispiel #5
0
        public void OnMatchEnd(object arg)
        {
            if (!Enabled)
            {
                return;
            }

            TextFxParameters textFxParam = new TextFxParameters();

            textFxParam = new TextFxParameters
            {
                TextEffectTimeMS = 3000,
                ScaleStart       = 0.60f,
                ScaleEnd         = 0.35f,
                ScaleTimeMS      = 100,
                ScaleDelayMS     = 0,

                FadeStart   = 255,
                FadeEnd     = 0,
                FadeTimeMS  = 300,
                FadeDelayMS = 1900,

                MoveTimeMS  = 400,
                MoveDelayMS = 2550,
            };

            textFxParam.MoveValue = new Vector2(Game.GameManager.Camera.GetPosition().X, Game.GameManager.Camera.GetPosition().Y);

            CreateFeedBackText(Owner, ref m_timeText, ref m_MatchEndTextFx,
                               "Match Over",
                               Color.Orange,
                               new Vector2(Game.GameManager.Camera.GetPosition().X, Game.GameManager.Camera.GetPosition().Y),
                               textFxParam);

            m_MatchEndTextFx.MoveEnd = new Vector2(Game.GameManager.Camera.GetPosition().X, Game.GameManager.Camera.GetPosition().Y);
        }
Beispiel #6
0
        //
        public void OnGoal(object arg)
        {
            if (!Enabled)
            {
                return;
            }

            for (int i = 0; i < m_textFxParameters.Length; i++)
            {
                m_textFxParameters[i] = new TextFxParameters
                {
                    TextEffectTimeMS = 1550,
                    ScaleStart       = 1.00f,
                    ScaleEnd         = 0.15f,
                    ScaleTimeMS      = 300,
                    ScaleDelayMS     = 1000,

                    FadeStart   = 255,
                    FadeEnd     = 0,
                    FadeTimeMS  = 500,
                    FadeDelayMS = 1000,

                    MoveTimeMS  = 500,
                    MoveDelayMS = 1000,
                };
            }

            m_textFxParameters[0].MoveValue = new Vector2(-Game.GameManager.Camera.GetPosition().X + Game.GameManager.Arena.RightScoreTextCmp.Position.X + 100,
                                                          Game.GameManager.Camera.GetPosition().Y + Game.GameManager.Arena.RightScoreTextCmp.Position.Y - 144);

            m_textFxParameters[1].MoveValue = new Vector2(-Game.GameManager.Camera.GetPosition().X + Game.GameManager.Arena.ScoreDashTextCmp.Position.X,
                                                          Game.GameManager.Camera.GetPosition().Y + Game.GameManager.Arena.ScoreDashTextCmp.Position.Y - 144);

            m_textFxParameters[2].MoveValue = new Vector2(-Game.GameManager.Camera.GetPosition().X + Game.GameManager.Arena.LeftScoreTxtCmp.Position.X - 100,
                                                          Game.GameManager.Camera.GetPosition().Y + Game.GameManager.Arena.LeftScoreTxtCmp.Position.Y - 144);


            CreateFeedBackText(Owner, ref m_scoreTexts[0], ref m_scoreTextFxs[0],
                               Game.GameManager.Arena.RightGoal.Score.ToString("00"),
                               Game.GameManager.Arena.LeftGoal.Team.ColorScheme.Color1,
                               new Vector2(Game.GameManager.Camera.GetPosition().X - 150, Game.GameManager.Camera.GetPosition().Y + 140),
                               m_textFxParameters[0]);

            CreateFeedBackText(Owner, ref m_scoreTexts[1], ref m_scoreTextFxs[1], " - ",
                               Color.LightGray, new Vector2(Game.GameManager.Camera.GetPosition().X + 0, Game.GameManager.Camera.GetPosition().Y + 140),
                               m_textFxParameters[1]);

            CreateFeedBackText(Owner, ref m_scoreTexts[2], ref m_scoreTextFxs[2],
                               Game.GameManager.Arena.LeftGoal.Score.ToString("00"),
                               Game.GameManager.Arena.RightGoal.Team.ColorScheme.Color1,
                               new Vector2(Game.GameManager.Camera.GetPosition().X + 150, Game.GameManager.Camera.GetPosition().Y + 140),
                               m_textFxParameters[2]);


            m_scoreTextFxs[0].MoveEnd = new Vector2(Game.GameManager.Arena.RightScoreTextCmp.Position.X, Game.GameManager.Arena.RightScoreTextCmp.Position.Y);
            m_scoreTextFxs[1].MoveEnd = new Vector2(Game.GameManager.Arena.ScoreDashTextCmp.Position.X, Game.GameManager.Arena.ScoreDashTextCmp.Position.Y);
            m_scoreTextFxs[2].MoveEnd = new Vector2(Game.GameManager.Arena.LeftScoreTxtCmp.Position.X, Game.GameManager.Arena.LeftScoreTxtCmp.Position.Y);

            m_timerScoreTextMS.TargetTime = m_textFxParameters[0].TextEffectTimeMS;
            m_timerScoreTextMS.Start();
        }
Beispiel #7
0
        public void CreateFeedBackText(GameObject parent, ref TextComponent textCmp, ref TextFx textFx, string text, Color color, Vector2 offset, TextFxParameters textFxParams)
        {
            if (textCmp != null)
            {
                textCmp.Owner.Remove(textCmp);
            }

            textCmp = new TextComponent("ArenaUIOverlay0");

            SpriteFont font      = Engine.AssetManager.Get <SpriteFont>("Graphics/GameplayFontLarge");
            float      fontScale = 1.0f;

            textCmp.Text        = text;
            textCmp.Alignement  = TextAlignementHorizontal.Center;
            textCmp.Style       = new TextStyle();
            textCmp.Style.Font  = font;
            textCmp.Style.Scale = fontScale * textFxParams.ScaleStart;
            textCmp.Style.Color = color;

            textCmp.Position = offset;

            textFx = new TextFx(textCmp);

            textFx.SetParameters(textFxParams);
            parent.Attach(textCmp);

            textCmp.Owner.Attach(textFx);
            textFx.StartFx();
        }