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(); } }
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); }
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); }
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); }
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); }
// 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(); }
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(); }