public override void Update(GameTime gameTime) { float TargetAlpha = 0.2f; Faction f = FactionManager.GetFaction(ParentShip.FactionNumber); if (f.Cells > 0 || f.Energy > 0 || f.Score > 0) { TargetAlpha = 1; } if (Alpha > TargetAlpha) { Alpha -= gameTime.ElapsedGameTime.Milliseconds * AlphaChange * 60 / 1000f; if (Alpha < TargetAlpha) { Alpha = TargetAlpha; } } else { Alpha += gameTime.ElapsedGameTime.Milliseconds * AlphaChange * 60 / 1000f; if (Alpha > TargetAlpha) { Alpha = TargetAlpha; } } base.Update(gameTime); }
public override void Update(GameTime gameTime) { GlowAlpha -= gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * AlphaChange; if (GlowAlpha < 0) { GlowAlpha = 0; } if (FactionManager.GetFaction(ParentBox.ParentShip.FactionNumber).Energy > 0) { IconAlpha += gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * IconAlpha; if (IconAlpha > 1) { IconAlpha = 1; } if (FactionManager.GetFaction(ParentBox.ParentShip.FactionNumber).Energy != OldEnergy) { OldEnergy = FactionManager.GetFaction(ParentBox.ParentShip.FactionNumber).Energy; GlowAlpha = 1; } } else { IconAlpha -= gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * IconAlpha; if (IconAlpha < 0.2f) { IconAlpha = 0.2f; } } base.Update(gameTime); }
public override void Update(GameTime gameTime) { GlowAlpha -= gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * AlphaChange; if (GlowAlpha < 0) { GlowAlpha = 0; } float TargetAlpha = FactionManager.GetFaction(ParentBox.ParentShip.FactionNumber).Cells > 0 ? 1 : 0.2f; if (IconAlpha < TargetAlpha) { IconAlpha += gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * AlphaChange; if (IconAlpha > TargetAlpha) { IconAlpha = TargetAlpha; } } else { IconAlpha -= gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * AlphaChange; if (IconAlpha < TargetAlpha) { IconAlpha = TargetAlpha; } } if (FactionManager.GetFaction(ParentBox.ParentShip.FactionNumber).Cells != OldCells) { OldCells = FactionManager.GetFaction(ParentBox.ParentShip.FactionNumber).Cells; GlowAlpha = 1; } base.Update(gameTime); }
public override void Draw() { CurrentGroup.DrawAll(); if (CardPickingMode) { Render.DrawShadowedText("Position: " + FactionManager.GetFaction(ParentShip.FactionNumber).CardPickPosition.ToString(), new Vector2(100)); } }
public void SetForGameSelection() { Groups.Clear(); TechTreeGroup group = new TechTreeGroup(FactionManager.GetFaction(ParentShip.FactionNumber).Cards); group.SetNode(Groups.AddLast(group), this); CurrentGroup = group; CardPickingMode = false; }
public override void Draw(Vector2 Position, Vector2 Size) { if (PayToRespawnAlpha > 0) { Render.DrawShadowedText(FactionEvent.FeedFont, RespawnString, Position - new Vector2(StringWidth / 2, 100), Vector2.Zero, Color.White * PayToRespawnAlpha, Color.Black * PayToRespawnAlpha); } FactionManager.GetFaction(ParentShip.FactionNumber).Draw(Position); }
public TechTreeMenu(PlayerShip ParentShip) : base(ParentShip) { MyFaction = FactionManager.GetFaction(ParentShip.FactionNumber); Groups = new LinkedList <TechTreeGroup>(); AddGroup(new TechTreeGroup(FactionCard.SortedTurretDeck[0])); AddGroup(new TechTreeGroup(FactionCard.SortedTurretDeck[1])); AddGroup(new TechTreeGroup(FactionCard.SortedTurretDeck[2])); }
public override void Update(GameTime gameTime) { if (ParentFrame != null) { DistanceAlpha = (300 - Math.Abs(this.Position.Y() - ParentFrame.CameraPosition.Y)) / 300f * (600 - Math.Abs(this.Position.X() - ParentFrame.CameraPosition.X)) / 600f; } if (Selected && FactionManager.GetFaction(ParentShip.FactionNumber).PickingCards) { SelectedAlpha += gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * AlphaChange; if (SelectedAlpha > 1) { SelectedAlpha = 1; } } else { SelectedAlpha -= gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * AlphaChange; if (SelectedAlpha < 0) { SelectedAlpha = 0; } } FlashAlpha -= gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * AlphaChange; ErrorAlpha -= gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * AlphaChange; if (Alpha > 0 && !FactionManager.GetFaction(ParentShip.FactionNumber).PickingCards&& MarkerCount > 0) { if (!ParentShip.CanPlaceTurret(MyCard.TurretSize)) { RingAlpha -= gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * AlphaChange; if (RingAlpha < 0) { RingAlpha = 0; } } else { RingAlpha += gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * AlphaChange; if (RingAlpha > 1) { RingAlpha = 1; } } } base.Update(gameTime); }
public override void Update(GameTime gameTime) { MoveSpeed = 1f; if (Counter > FactionManager.GetFaction(ParentBox.ParentShip.FactionNumber).MiningPlatformCounter / 2) { GlowAlpha -= gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * GlowAlphaChange; FullAlpha -= gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * AlphaChange; if (FullAlpha < 0) { FullAlpha = 0; } if (GlowAlpha < 0) { GlowAlpha = 0; } } else { if (GlowAlpha == 0) { ExtraGlowAlpha = 2; } GlowAlpha += gameTime.ElapsedGameTime.Milliseconds * 60 / 10000f * GlowAlphaChange; FullAlpha += gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * AlphaChange; if (FullAlpha > 1) { FullAlpha = 1; } float MaxGlowAlpha = FactionManager.CanBuildMiningPlatform(ParentBox.ParentShip.FactionNumber) ? 2 : 1; if (GlowAlpha > MaxGlowAlpha) { GlowAlpha = MaxGlowAlpha; } } ExtraGlowAlpha -= gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * AlphaChange; if (ExtraGlowAlpha < 0) { ExtraGlowAlpha = 0; } base.Update(gameTime); }
public override void Update2(GameTime gameTime) { if (Alpha > 0 && !FactionManager.GetFaction(ParentShip.FactionNumber).PickingCards&& MarkerCount > 0) { Vector2 PlacePosition = ParentShip.GetPlacePosition(MyCard.TurretSize / 2); ParticleManager.CreateParticle(new Vector3(PlacePosition.X, 0, PlacePosition.Y), Vector3.Zero, MyColor * Alpha * RingAlpha * 0.25f, MyCard.TurretSize * (10 + Rand.r.Next(5)), 1); ParticleManager.CreateRing(new Vector3(PlacePosition.X, 0, PlacePosition.Y), MyCard.TurretSize * UnitBuilding.BuildingRingSizeMult * Alpha * RingAlpha, ParentShip.GetTeam()); for (int i = 0; i < MyCard.CircleGlows; i++) { float R = (float)(((float)i / MyCard.CircleGlows * 2 * Math.PI) + (Level.Time % 2 / 2f * Math.PI)); Vector3 P = new Vector3((float)Math.Cos(R) * MyCard.Radius * Alpha * RingAlpha + PlacePosition.X, 0, (float)Math.Sin(R) * MyCard.Radius * Alpha * RingAlpha + PlacePosition.Y); ParticleManager.CreateParticle(P, Vector3.Zero, MyColor, 64 * Alpha * RingAlpha, 1); } } base.Update2(gameTime); }
public override void Update(GameTime gameTime) { int c = FactionManager.GetFaction(ParentShip.FactionNumber).MaxMiningPlatformCounter / 2; if (c != CurrentMaxCounter) { CurrentMaxCounter = c; AddItem(new HudMineralCounter()); int Counter = 0; foreach (HudMineralCounter m in Children) { Counter++; m.SetCounter(Counter, (-Children.Count / 2f + Counter - 0.5f) * 80); } } base.Update(gameTime); }
public override void Update(GameTime gameTime) { float TargetAlpha = FactionManager.GetFaction(ParentBox.ParentShip.FactionNumber).Cells > 0? 1 : 0.2f; if (Alpha < TargetAlpha) { Alpha += gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * AlphaChange; if (Alpha > TargetAlpha) { Alpha = TargetAlpha; } } else { Alpha -= gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f * AlphaChange; if (Alpha < TargetAlpha) { Alpha = TargetAlpha; } } base.Update(gameTime); }
public override void Interact(PlayerShip p) { if (miningPlatform == null && FactionManager.CanBuildMiningPlatform(p.FactionNumber)) { Vector3 P3 = new Vector3(Position.X(), 0, Position.Y()); for (int i = 0; i < 40; i++) { LineParticleSystem.AddParticle(P3, P3 + Rand.V3() * 1000, TeamInfo.GetColor(p.GetTeam())); } MiningPlatform m = FactionManager.GetMiningPlatform(p.FactionNumber); ParentLevel.AddObject(m); m.Position.set(Position.get()); setPlatform(m); SoundManager.Play3DSound("PlayerBuildMiningRing", new Vector3(m.Position.X(), Y, m.Position.Y()), 0.25f, 500, 1); if (p.PlacedStartingMineralRock) { FactionManager.AddCells(p.FactionNumber, -FactionManager.GetMiningPlatformCost(p.FactionNumber)); FactionManager.SetBuildingPlatform(p.FactionNumber, m); } else { FactionManager.GetFaction(p.FactionNumber).MiningPlatformCounter = 0; m.HullToughness *= 2; m.SetAsStarting(); p.PlacedStartingMineralRock = true; p.StartingMineralRock = this; } p.LastPlacedPlatform.AddFirst(m); PathFindingManager.AddMineralRock(m); } base.Interact(p); }
public override void DrawAsForm(Vector2 Position, Vector2 Size) { Vector2 FormSize = Size * Alpha * 1.5f; float FormAlpha = Alpha * DistanceAlpha; Render.DrawSprite(WaveCard.UnitPicker, Position, Size * new Vector2((Rand.F() + 6) / 7 * 4, 2.5f), Rotation.get(), MyColor * FormAlpha * 2); Render.DrawSprite(WaveCard.UnitBox, Position, FormSize * 1.25f, Rotation.get(), MyColor * (FormAlpha * FormAlpha * 0.3f * (4 + Rand.F()))); Render.DrawSprite(WaveCard.UnitPicker, Position, FormSize * new Vector2((Rand.F() + 6) / 7, 1), Rotation.get(), MyColor * (FormAlpha * FormAlpha * 0.3f * (4 + Rand.F()))); Render.DrawSprite(MyTexture, Position, FormSize, Rotation.get(), Color.White * FormAlpha); if (FlashAlpha > 0) { Render.DrawSprite(HudItem.GlowTexture, Position, FormSize * 2, Rotation.get(), MyColor * 1.5f * FlashAlpha * FormAlpha); } if (ErrorAlpha > 0) { Render.DrawSprite(HudItem.GlowTexture, Position, FormSize * 2, Rotation.get(), Color.Red * 1.5f * ErrorAlpha * FormAlpha); Render.DrawSprite(FactionEvent.LossTexture, Position, FormSize, Rotation.get(), Color.Red * 1.5f * ErrorAlpha * FormAlpha); } if (SelectedAlpha > 0) { Render.DrawSprite(FactionEvent.ReadyTexture, Position, FormSize * SelectedAlpha, Rotation.get(), MyColor * SelectedAlpha * 2 * FormAlpha); Render.DrawSprite(HudItem.GlowTexture, Position, FormSize, Rotation.get(), MyColor * SelectedAlpha * FormAlpha * 1.5f); } if (FormAlpha > 0.5 && Font.get() != null) { float DrawHeight = Position.Y - Size.Y / 2; float FontHeight = Font.get().MeasureString(Name.get()).Y; DrawHeight -= FontHeight * 2; string CostString = ""; if (MyCard.FactionCostIncreases.ContainsKey(ParentShip.FactionNumber)) { CostString = "$" + (MyCard.CardCellsCost + MyCard.CardCellsCostIncrease * MyCard.FactionCostIncreases[ParentShip.FactionNumber]).ToString(); } else { CostString = "$" + (MyCard.CardCellsCost).ToString(); } Render.DrawShadowedText(Font.get(), Text.get(), new Vector2(Position.X - Font.get().MeasureString(Text.get()).X / 2, DrawHeight), Vector2.One * 2, Color.White * (FormAlpha - 0.5f) * 2, Color.Black * (FormAlpha - 0.5f) * 2); DrawHeight -= FontHeight; Render.DrawShadowedText(Font.get(), CostString, new Vector2(Position.X - Font.get().MeasureString(CostString).X / 2, DrawHeight), Vector2.One * 2, Color.White * (FormAlpha - 0.5f) * 2, Color.Black * (FormAlpha - 0.5f) * 2); if (FactionManager.GetFaction(ParentShip.FactionNumber).PickingCards) { Vector2 s = Font.get().MeasureString(MyCard.Caption); DrawHeight -= s.Y + 20; //DrawHeight += 2 * FontHeight; Render.DrawSprite(HudItem.GlowTexture, new Vector2(Position.X, DrawHeight + s.Y / 2), s * 6, 0, Color.Black * (FormAlpha - 0.5f) * 2); Render.DrawShadowedText(Font.get(), MyCard.Caption, new Vector2(Position.X - Font.get().MeasureString(MyCard.Caption).X / 2, DrawHeight), Vector2.One * 2, Color.White * (FormAlpha - 0.5f) * 2, Color.Black * (FormAlpha - 0.5f) * 2); } if (!MyCard.StrongVs.Equals("")) { Render.DrawSprite(MyCard.GetStrongTexture(), Position - Size * 3 / 8 * new Vector2(1, -1), Size / 2, 0, Color.White * (FormAlpha * FormAlpha)); Render.DrawShadowedText(Font.get(), MyCard.StrongVs, new Vector2(Position.X - Size.X * 1 / 8, Position.Y - Font.get().MeasureString(MyCard.StrongVs).Y * 3 / 4 + Size.Y / 2), Vector2.One * 2, Color.White * (FormAlpha - 0.5f) * 2, Color.Black * (FormAlpha - 0.5f) * 2); } } Render.DrawOutlineRect(Position - FormSize * (FormAlpha - 0.5f), Position + FormSize * (FormAlpha - 0.5f), 2 * FormAlpha, Color.White * (FormAlpha * FormAlpha * FormAlpha)); base.DrawAsForm(Position, FormSize); }
public override void Draw(Vector2 Position, Vector2 Size) { DigitRenderer.DrawDigits(FactionManager.GetFaction(ParentBox.ParentShip.FactionNumber).Cells, 4, Position, Size, TeamInfo.HudColors[ParentBox.ParentShip.GetTeam()] * Alpha); base.Draw(Position, Size); }
public void Update(GameTime gameTime, BasicController MyController, bool Highlighted) { if (Highlighted && !ParentMenu.Closing) { TargetPosition = ParentMenu.Position - TechTreeMenu.NegativeOffset - new Vector2(0, Size.Y / 2); Position += (TargetPosition - Position) * gameTime.ElapsedGameTime.Milliseconds * PlayerMenu.CloseOpenSpeed * 2; Alpha = Math.Min(1, Alpha + gameTime.ElapsedGameTime.Milliseconds * PlayerMenu.CloseOpenSpeed * 2); if (Alpha > 0.5f) { Vector2 CursorPrevious = Cursor; bool ExtraSticks = FactionManager.GetFaction(ParentMenu.ParentShip.FactionNumber).PickingCards; Cursor += MyController.MenuStick(ExtraSticks, ExtraSticks, true, false, false); if (ExtraSticks) { Vector2 BumperCursorPrevious = BumperCursor; BumperCursor = MyController.MenuStick(false, false, false, true, true); if (Math.Abs(BumperCursor.X) > 0.1f && Math.Abs(BumperCursor.X) < 0.1f) { Faction f = FactionManager.GetFaction(ParentMenu.ParentShip.FactionNumber); if (BumperCursor.X > 0) { f.CardPickPosition++; if (f.CardPickPosition == f.Cards.Count) { ParentMenu.ParentShip.ReadyMenu(); } } else { f.CardPickPosition = Math.Max(0, f.CardPickPosition - 1); } } } if (Cursor.Y != 0 && ParentMenu.MyFaction.PickingCards) { if (Cursor.Y < 0) { TechTreeGroup PreviousGroup = MyNode.Previous != null ? MyNode.Previous.Value : MyNode.List.Last.Value; if (PreviousGroup.Cards != null && PreviousGroup.Cards.Count > 0) { PreviousGroup.Cursor.X = Cursor.X; PreviousGroup.Position = Position - new Vector2(0, PreviousGroup.Size.Y); ParentMenu.SetGroup(PreviousGroup); PreviousGroup.SwitchTo(); } } else if (Cursor.Y > 0) { TechTreeGroup NextGroup = MyNode.Next != null ? MyNode.Next.Value : MyNode.List.First.Value; if (NextGroup.Cards != null && NextGroup.Cards.Count > 0) { NextGroup.Cursor.X = Cursor.X; NextGroup.Position = Position + new Vector2(0, Size.Y); ParentMenu.SetGroup(NextGroup); NextGroup.SwitchTo(); } } Cursor.Y = 0; } Cursor.X = MathHelper.Clamp(Cursor.X, 0, Cards.Count - 1); int i = 0; foreach (FactionCard c in Cards) { c.MenuUpdate(gameTime, (int)Cursor.X == i, 1 - Math.Abs(Cursor.X - i++) / 2.25f); } Vector2 TargetOffset = -new Vector2((Cursor.X - 2) * CellBorders.X, -CellBorders.Y / 2f); DrawOffset += (TargetOffset - DrawOffset) * OffsetSpeed; HighlightedCard = Cards[(int)Cursor.X]; if (MyController.AButton() && !MyController.AButtonPrevious()) { } HighlightedCard.Update3D(ParentMenu.ParentShip); } } else { Alpha = Math.Max(0, Alpha - gameTime.ElapsedGameTime.Milliseconds * PlayerMenu.CloseOpenSpeed); } }
public override bool TriggerAsCurrent(BasicMarker m) { if (BasicMarker.SelectSound != null) { BasicMarker.SelectSound.Play(BasicMarker.SelectVolume, 0, 0); } Faction f = FactionManager.Factions[ParentShip.FactionNumber]; FlashAlpha = 1; if (FactionManager.GetFaction(ParentShip.FactionNumber).PickingCards) { if (Selected) { for (int i = 0; i < f.Cards.Count; i++) { if (f.Cards[i] == MyCard) { f.Cards[i] = null; Selected = false; return(true); } } } else { for (int i = 0; i < f.Cards.Count; i++) { if (f.Cards[i] == null) { f.Cards[i] = MyCard; Selected = true; break; } } if (!Selected) { f.Cards.Add(MyCard); Selected = true; } if (Faction.MaxCards == f.Cards.Count) { for (int i = 0; i < f.Cards.Count; i++) { if (f.Cards[i] == null) { return(true); } } ParentShip.ReadyMenu(); } } } else { int CardCost = MyCard.CardCellsCost; if (MyCard.FactionCostIncreases.ContainsKey(ParentShip.FactionNumber)) { CardCost += MyCard.CardCellsCostIncrease * MyCard.FactionCostIncreases[ParentShip.FactionNumber]; } if (FactionManager.CanAfford(ParentShip.FactionNumber, CardCost) && ParentShip.CanPlaceTurret(MyCard.TurretSize)) { if (MyCard.FactionCostIncreases.ContainsKey(ParentShip.FactionNumber)) { MyCard.FactionCostIncreases[ParentShip.FactionNumber]++; } else { MyCard.FactionCostIncreases.Add(ParentShip.FactionNumber, 1); } FactionManager.AddCells(ParentShip.FactionNumber, -CardCost); UnitTurret u = (UnitTurret)MyCard.GetUnit(ParentShip.FactionNumber); u.MyCard = MyCard; ParentShip.PlaceTurret(u); //ParentFrame.DeActivate(); } else { ErrorAlpha = 1; } } return(base.TriggerAsCurrent(m)); }