private void DoQuoteTurret() { if (!Simulator.DemoMode) return; if (Turrets.Count <= 0) return; if (TimeLastQuote > 5000) { TimeLastQuote = 0; if (Main.Random.Next(0, 5) == 0) { Turret tourelle = Turrets[Main.Random.Next(0, Turrets.Count)]; if (!tourelle.Visible || !tourelle.Watcher || TalkingTurrets.ContainsKey(tourelle)) return; Text texte = new Text(@"Pixelite"); texte.SizeX = 1; texte.Color = tourelle.Color; if (Main.Random.Next(0, 10) == 1) { texte.Data = QuotesHistoire[Main.Random.Next(0, QuotesHistoire.Count)]; } else { switch (tourelle.Type) { case TurretType.Basic: texte.Data = QuotesBase[Main.Random.Next(0, QuotesBase.Count)]; break; case TurretType.Gravitational: texte.Data = QuotesGravitationnelle[Main.Random.Next(0, QuotesGravitationnelle.Count)]; break; case TurretType.MultipleLasers: texte.Data = QuotesLaserMultiple[Main.Random.Next(0, QuotesLaserMultiple.Count)]; break; case TurretType.Laser: texte.Data = QuotesLaserSimple[Main.Random.Next(0, QuotesLaserSimple.Count)]; break; case TurretType.Missile: texte.Data = QuotesMissile[Main.Random.Next(0, QuotesMissile.Count)]; break; case TurretType.SlowMotion: texte.Data = QuotesSlowMotion[Main.Random.Next(0, QuotesSlowMotion.Count)]; break; } } TextBubble bulle = new TextBubble(Simulator.Scene, texte, tourelle.Position, 0, VisualPriorities.Default.TurretMessage); bulle.ShowTime = texte.Data.Length * 100; foreach (var kvp in TalkingTurrets) if (kvp.Value.Dimension.Intersects(bulle.Dimension)) return; AddTalkingTurret(tourelle, bulle); } } }
private void AddTalkingTurret(ICollidable obj, TextBubble bulle) { TalkingTurrets.Add(obj, bulle); bulle.FadeIn(250); bulle.FadeTime = 250; //bulle.Show(); }
public void ShowMessage(ICollidable obj, string message, double time, double visualPriority) { if (obj == null || TalkingTurrets.ContainsKey(obj)) return; Text texteInfos = new Text(message, @"Pixelite", Color.White, Vector3.Zero); texteInfos.SizeX = 2; visualPriority = (visualPriority == -1) ? VisualPriorities.Default.TurretMessage : visualPriority; TextBubble bulle = new TextBubble(Simulator.Scene, texteInfos, obj.Position, 0, visualPriority); bulle.Text.Data = message; bulle.ShowTime = time; foreach (var kvp in TalkingTurrets) if (kvp.Value.Dimension.Intersects(bulle.Dimension)) ToDelete.Add(kvp); DeleteTalkingTurrets(); AddTalkingTurret(obj, bulle); }