public override void OnSelect() { for (int i = 0; i < TransformingUnit.ArrayTransformingUnit.Length; ++i) { AddChoiceToCurrentPanel(new ActionPanelConfirmTransform(TransformingUnit, i, ActiveSquad, Map, TransformingUnit.CanTransform(i, Map.ActiveSquad.CurrentWingmanA, Map.ActiveSquad.CurrentWingmanB))); } }
public override void Draw(CustomSpriteBatch g) { float X, Y; DrawNextChoice(g); X = (Map.CursorPosition.X + 1 - Map.CameraPosition.X) * Map.TileSize.X; Y = (Map.CursorPosition.Y - Map.CameraPosition.Y) * Map.TileSize.Y; if (X + MinActionMenuWidth + MinActionMenuWidth >= Constants.Width) { X = Constants.Width - MinActionMenuWidth - MinActionMenuWidth; } if (ShowSquadMembers) { for (int U = 0; U < ActiveSquad.UnitsAliveInSquad; ++U) { GameScreen.DrawBox(g, new Vector2(X + MinActionMenuWidth, Y + U * PannelHeight), MinActionMenuWidth, PannelHeight, Color.White); if (!(ActiveSquad[U] is UnitTransforming) || TransformingUnit.PermanentTransformation) { GameScreen.DrawText(g, ActiveSquad[U].FullName, new Vector2(X + MinActionMenuWidth, Y + U * PannelHeight), Color.Gray); } else { GameScreen.DrawText(g, ActiveSquad[U].FullName, new Vector2(X + MinActionMenuWidth, Y + U * PannelHeight), Color.White); } } g.Draw(GameScreen.sprPixel, new Rectangle((int)X + MinActionMenuWidth, (int)Y + ActiveSquad.IndexOf(TransformingUnit) * PannelHeight, 50, 20), Color.FromNonPremultiplied(255, 255, 255, 128)); } for (int U = 0; U < TransformingUnit.ArrayTransformingUnit.Length; ++U) { g.Draw(GameScreen.sprPixel, new Rectangle((int)X + MinActionMenuWidth + MinActionMenuWidth, (int)Y + U * PannelHeight, 50, 20), Color.Navy); if (TransformingUnit.CanTransform(U, ActiveSquad.CurrentWingmanA, ActiveSquad.CurrentWingmanB)) { GameScreen.DrawText(g, TransformingUnit.ArrayTransformingUnit[U].TransformingUnitName, new Vector2(X + MinActionMenuWidth + MinActionMenuWidth, Y + U * PannelHeight), Color.White); } else { GameScreen.DrawText(g, TransformingUnit.ArrayTransformingUnit[U].TransformingUnitName, new Vector2(X + MinActionMenuWidth + MinActionMenuWidth, Y + U * PannelHeight), Color.Gray); } } g.Draw(GameScreen.sprPixel, new Rectangle((int)X + MinActionMenuWidth, (int)Y + TransformationChoice * PannelHeight, 50, 20), Color.FromNonPremultiplied(255, 255, 255, 128)); g.Draw(GameScreen.sprPixel, new Rectangle(Constants.Width / 2 - 100, Constants.Height / 2 - 25, 200, 50), Color.Navy); GameScreen.DrawText(g, ActiveSquad.CurrentLeader.FullName + " will transform into " + TransformingUnit.ArrayTransformingUnit[TransformationChoice].TransformingUnitName + ".\n\rThis will be permanent. Continue?", new Vector2(Constants.Width / 2 - 100, Constants.Height / 2 - 25), Color.White); }