diff --git a/README.md b/README.md index 11ec7fdc..ef8a3af8 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,34 @@ # Sol Standard -Sol Standard is a tactical strategy game that pits two players against each other in the pursuit of victory! There are several classes of units available, as well as computer-controlled monsters. Plenty of items and interactable tiles allow for vastly different gameplay experiences on different battle maps. + +Check out the project website for media, Discord and credits! https://talberon.github.io/solstandard/ + +Sol Standard is a competitive tactics game that focuses on allowing players to outmaneuver and outsmart their opponents! There are various units with unique abilities that you can command to achieve victory, each with their own playstyle and synergies with other units. There are lots of multiplayer maps to play with your friends, or you can check out one of the solo maps for some practice. + +Each map has various items, AI-controlled monsters and interactable objects that you can leverage to gain the advantage over your foes. Draft your army and form a composition that fits your own playstyle, whether it's super fast and deadly, or strong and stable, and anywhere inbetween. + +Keyboard and Gamepads are both supported and the interface will dynamically update based on whichever one you are using. Xbox controllers work best, and you can use a different controller for each player. The keyboard can control both players as well if you want to trade off or play against yourself. Netplay is also available; be sure to port forward if hosting a match over the internet. ## Project Info -Sol Standard started as a continuation of [@Talberon](https://github.com/Talberon)'s Ars Tactica project before dropping the project entirely to rebuild it in a cleaner project structure. The project is written in C# using the Monogame framework; an open-source continuation of Microsoft's XNA Framework. The project currently runs on .NET Framework 4.7.1, but may be updated to .NET Core in the future. +Sol Standard started as a rewrite of [@Talberon](https://github.com/Talberon)'s Ars Tactica project before dropping the original project to rebuild it in a cleaner structure and with newer tools. This project is written in C# using Monogame; an open-source continuation of Microsoft's XNA Framework. The project currently runs on .NET Framework 4.7.1, but may be updated to .NET Core in the future. ## Gallery -### Gameplay Samples +### Combat + +Combat + +### Unit Drafting + +Unit Drafting + +### AI Units -#### Combat -![Combat](https://i.imgur.com/v1avMuD.gif) +AI Units -#### Unit Action -![Unit Action](https://i.imgur.com/Fqr8UsU.gif) +### Interactive Tiles -#### Turn Resolution -![Turn Resolution](https://i.imgur.com/pbYdZy6.gif) +Interactive Tiles ## A Note About Art Assets -Art assets are amalgamated from a variety of self-made, public domain and paid resources, so none of the art/sound assets are included in this repository for redistribution. Check out `CREDITS.md` for info on licensing and credit for asset work. \ No newline at end of file +Art assets are amalgamated from a variety of self-made, public domain and paid resources, so none of the art/sound assets are included in this repository for redistribution. **Check out `CREDITS.md` for info on licensing and credit for asset work.** \ No newline at end of file diff --git a/SolStandard/Containers/Contexts/BattleContext.cs b/SolStandard/Containers/Contexts/BattleContext.cs index f363263c..d7b02530 100644 --- a/SolStandard/Containers/Contexts/BattleContext.cs +++ b/SolStandard/Containers/Contexts/BattleContext.cs @@ -6,7 +6,9 @@ using Microsoft.Xna.Framework.Graphics; using SolStandard.Containers.Contexts.Combat; using SolStandard.Containers.View; +using SolStandard.Entity; using SolStandard.Entity.General; +using SolStandard.Entity.General.Item; using SolStandard.Entity.Unit; using SolStandard.Entity.Unit.Actions; using SolStandard.Entity.Unit.Statuses; @@ -32,6 +34,8 @@ public enum BattleState ResolveCombat } + private const int BountyPerTriumph = 10; + private readonly BattleView battleView; private CombatDamage attackerDamage; @@ -47,6 +51,8 @@ public enum BattleState private GameUnit attacker; private GameUnit defender; + private Vector2 attackerCoordinates; + private Vector2 defenderCoordinates; private UnitStatistics attackerStats; private UnitStatistics defenderStats; @@ -94,10 +100,8 @@ public void StartNewCombat(GameUnit newAttacker, GameUnit newDefender, UnitStati defender.SetUnitAnimation(UnitAnimationState.Active); //Treat the unit as off-screen if null - Vector2 attackerCoordinates = - attacker.UnitEntity?.MapCoordinates ?? new Vector2(-1); - Vector2 defenderCoordinates = - defender.UnitEntity?.MapCoordinates ?? new Vector2(-1); + attackerCoordinates = attacker.UnitEntity?.MapCoordinates ?? new Vector2(-1); + defenderCoordinates = defender.UnitEntity?.MapCoordinates ?? new Vector2(-1); attackerInRange = true; defenderInRange = @@ -177,6 +181,15 @@ public void ContinueCombat() GlobalEventQueue.QueueSingleEvent(new EndTurnEvent()); } + if (!attacker.IsAlive) + { + TakeAttackerSpoilsAndIncreaseBounty(); + } + else if (!defender.IsAlive) + { + TakeDefenderSpoilsAndIncreaseBounty(); + } + GameContext.MapCamera.RevertToPreviousZoomLevel(); } @@ -186,15 +199,67 @@ public void ContinueCombat() } } + private void TakeDefenderSpoilsAndIncreaseBounty() + { + MapSlice defenderSlice = MapContainer.GetMapSliceAtCoordinates(defenderCoordinates); + if (!(defenderSlice.ItemEntity is Spoils defenderSpoils)) return; + + GlobalEventQueue.QueueSingleEvent(new TakeSpoilsEvent(defenderSpoils)); + + string toastMessage = string.Empty; + toastMessage += $"Obtained {defenderSpoils.Gold} {Currency.CurrencyAbbreviation}!"; + + foreach (IItem item in defenderSpoils.Items) + { + toastMessage += Environment.NewLine; + toastMessage += $"Obtained {item.Name}!"; + } + + attacker.CurrentBounty += BountyPerTriumph; + toastMessage += Environment.NewLine + Environment.NewLine + + $"{attacker.Id} bounty increased by {BountyPerTriumph}!"; + + GlobalEventQueue.QueueSingleEvent( + new ToastAtCoordinatesEvent(attackerCoordinates, toastMessage, AssetManager.CoinSFX, 80) + ); + + GlobalEventQueue.QueueSingleEvent(new WaitFramesEvent(10)); + } + + private void TakeAttackerSpoilsAndIncreaseBounty() + { + MapSlice attackerSlice = MapContainer.GetMapSliceAtCoordinates(attackerCoordinates); + if (!(attackerSlice.ItemEntity is Spoils attackerSpoils)) return; + GlobalEventQueue.QueueSingleEvent(new TakeSpoilsEvent(attackerSpoils)); + + string toastMessage = string.Empty; + toastMessage += $"Obtained {attackerSpoils.Gold} {Currency.CurrencyAbbreviation}!"; + + foreach (IItem item in attackerSpoils.Items) + { + toastMessage += Environment.NewLine; + toastMessage += $"Obtained {item.Name}!"; + } + + defender.CurrentBounty += BountyPerTriumph; + toastMessage += Environment.NewLine + Environment.NewLine + + $"{defender.Id} bounty increased by {BountyPerTriumph}!"; + + GlobalEventQueue.QueueSingleEvent( + new ToastAtCoordinatesEvent(defenderCoordinates, toastMessage, AssetManager.CoinSFX, 80) + ); + GlobalEventQueue.QueueSingleEvent(new WaitFramesEvent(10)); + } + private void SetPromptWindowText(string promptText) { IRenderable[,] promptTextContent = { { new RenderText(AssetManager.PromptFont, promptText), - new RenderBlank(), - new RenderBlank(), - new RenderBlank() + RenderBlank.Blank, + RenderBlank.Blank, + RenderBlank.Blank }, { new RenderText(AssetManager.PromptFont, "["), @@ -223,11 +288,11 @@ private void SetupHelpWindow() { { new RenderText(AssetManager.WindowFont, helpText, Color.White), - new RenderBlank(), - new RenderBlank(), - new RenderBlank(), - new RenderBlank(), - new RenderBlank() + RenderBlank.Blank, + RenderBlank.Blank, + RenderBlank.Blank, + RenderBlank.Blank, + RenderBlank.Blank }, { new RenderText(AssetManager.WindowFont, "Dice Legend: ", Color.White), diff --git a/SolStandard/Containers/Contexts/ControlContext.cs b/SolStandard/Containers/Contexts/ControlContext.cs index 3da49db3..26b151c1 100644 --- a/SolStandard/Containers/Contexts/ControlContext.cs +++ b/SolStandard/Containers/Contexts/ControlContext.cs @@ -300,7 +300,7 @@ private static void MapControls(ControlMapper controlMapper) case GameMapContext.TurnState.AdHocDraft: AdHocDraftControl(controlMapper); break; - case GameMapContext.TurnState.StealItem: + case GameMapContext.TurnState.TakeItem: StealItemControl(controlMapper); break; case GameMapContext.TurnState.SelectUnit: @@ -538,16 +538,6 @@ private static void DecideActionControl(ControlMapper controlMapper) GlobalEventQueue.QueueSingleEvent(new MoveActionMenuEvent(MenuCursorDirection.Right)); } - if (controlMapper.Press(Input.PreviewUnit, PressType.Single)) - { - GlobalEventQueue.QueueSingleEvent(new ToggleCombatMenuEvent()); - } - - if (controlMapper.Press(Input.PreviewItem, PressType.Single)) - { - GlobalEventQueue.QueueSingleEvent(new ToggleCombatMenuEvent()); - } - if (controlMapper.Press(Input.Confirm, PressType.Single)) { GlobalEventQueue.QueueSingleEvent(new SelectActionMenuOptionEvent()); @@ -651,7 +641,7 @@ private static void UnitTargetingControl(ControlMapper controlMapper) if (controlMapper.Press(Input.Cancel, PressType.Single)) { - GlobalEventQueue.QueueSingleEvent(new CancelActionEvent()); + GlobalEventQueue.QueueSingleEvent(new CancelActionTargetingEvent()); } } diff --git a/SolStandard/Containers/Contexts/DeploymentContext.cs b/SolStandard/Containers/Contexts/DeploymentContext.cs index d7c258c4..6a873cb0 100644 --- a/SolStandard/Containers/Contexts/DeploymentContext.cs +++ b/SolStandard/Containers/Contexts/DeploymentContext.cs @@ -141,7 +141,7 @@ private void UpdateItemPreview(MapSlice hoverSlice) public void MoveToNextDeploymentTile() { - List mapEntities = MapContainer.GetMapEntities(); + IEnumerable mapEntities = MapContainer.GetMapEntities(); List deployTiles = mapEntities.Where(tile => tile is DeployTile).ToList(); if (deployTiles.Count == 0) return; diff --git a/SolStandard/Containers/Contexts/DraftContext.cs b/SolStandard/Containers/Contexts/DraftContext.cs index 29e12d3e..600ecba9 100644 --- a/SolStandard/Containers/Contexts/DraftContext.cs +++ b/SolStandard/Containers/Contexts/DraftContext.cs @@ -76,8 +76,8 @@ public void StartNewDraft(int blueTeamUnitMax, int redTeamUnitMax, int maxUnitDu redUnitCount = new Dictionary(); DraftView.UpdateCommanderPortrait(Role.Silhouette, Team.Creep); - DraftView.UpdateTeamUnitsWindow(new List {new RenderBlank()}, Team.Blue); - DraftView.UpdateTeamUnitsWindow(new List {new RenderBlank()}, Team.Red); + DraftView.UpdateTeamUnitsWindow(new List {RenderBlank.Blank}, Team.Blue); + DraftView.UpdateTeamUnitsWindow(new List {RenderBlank.Blank}, Team.Red); DraftView.UpdateUnitSelectMenu(firstTurn, GetRolesEnabled(blueUnitCount, maxDuplicateUnitType)); DraftView.UpdateHelpWindow( diff --git a/SolStandard/Containers/Contexts/GameContext.cs b/SolStandard/Containers/Contexts/GameContext.cs index 4eb10b8d..746b00be 100644 --- a/SolStandard/Containers/Contexts/GameContext.cs +++ b/SolStandard/Containers/Contexts/GameContext.cs @@ -39,7 +39,8 @@ public enum GameState public static readonly Color PositiveColor = new Color(30, 200, 30); public static readonly Color NegativeColor = new Color(250, 10, 10); - public static readonly Color NeutralColor = new Color(255, 250, 250); + public static readonly Color NeutralColor = new Color(255, 255, 255); + public static readonly Color DimColor = new Color(100, 100, 100); private const string MapDirectory = "Content/TmxMaps/"; private const string MapSelectFile = "Map_Select_06.tmx"; @@ -57,8 +58,8 @@ public enum GameState public static DeploymentContext DeploymentContext { get; private set; } public static CodexContext CodexContext { get; private set; } public static CreditsContext CreditsContext { get; private set; } - public static Team P1Team { get; private set; } + public static Team P1Team { get; private set; } public static Team P2Team => (P1Team == Team.Blue) ? Team.Red : Team.Blue; public static GameState CurrentGameState; @@ -80,9 +81,9 @@ public static PlayerIndex ActivePlayer case GameState.Deployment: return GetPlayerForTeam(DeploymentContext.CurrentTurn); case GameState.PauseScreen: - return GetPlayerForTeam(InitiativeContext.CurrentActiveTeam); + return GetPlayerForTeam(ActiveTeam); case GameState.InGame: - return GetPlayerForTeam(InitiativeContext.CurrentActiveTeam); + return GetPlayerForTeam(ActiveTeam); case GameState.Codex: return GetPlayerForTeam(CodexContext.CurrentTeam); case GameState.Results: @@ -90,7 +91,7 @@ public static PlayerIndex ActivePlayer case GameState.Credits: return PlayerIndex.One; case GameState.ItemPreview: - return GetPlayerForTeam(InitiativeContext.CurrentActiveTeam); + return GetPlayerForTeam(ActiveTeam); default: throw new ArgumentOutOfRangeException(); } @@ -185,6 +186,7 @@ public static MapCamera MapCamera public static List Units => InitiativeContext.InitiativeList; public static GameUnit ActiveUnit => InitiativeContext.CurrentActiveUnit; + public static Team ActiveTeam => InitiativeContext.CurrentActiveTeam; public static void CenterCursorAndCamera() { @@ -291,7 +293,8 @@ private static void InjectCreepsIntoSpawnTiles(List mapLoot) } } - private static void InjectCreepIntoTile(List mapLoot, CreepEntity randomSummon, MapElement creepDeployTile) + private static void InjectCreepIntoTile(List mapLoot, CreepEntity randomSummon, + MapElement creepDeployTile) { Trace.WriteLine($"Injecting {randomSummon.Name} at {creepDeployTile.MapCoordinates}"); diff --git a/SolStandard/Containers/Contexts/GameMapContext.cs b/SolStandard/Containers/Contexts/GameMapContext.cs index 7dc325a6..75efd7f0 100644 --- a/SolStandard/Containers/Contexts/GameMapContext.cs +++ b/SolStandard/Containers/Contexts/GameMapContext.cs @@ -34,7 +34,7 @@ public enum TurnState UnitActing, ResolvingTurn, AdHocDraft, - StealItem + TakeItem } public TurnState CurrentTurnState { get; set; } @@ -75,7 +75,7 @@ public bool CanPressConfirm get { if (CurrentTurnState != TurnState.SelectUnit) return true; - return HoverUnit != null && HoverUnit.Team == GameContext.ActiveUnit.Team; + return HoverUnit != null && HoverUnit.Team == GameContext.ActiveTeam; } } @@ -99,7 +99,7 @@ public bool CanPressCancel return false; case TurnState.AdHocDraft: return false; - case TurnState.StealItem: + case TurnState.TakeItem: return true; default: return false; @@ -144,10 +144,7 @@ public void PlayAnimationAtCoordinates(TriggeredAnimation animation, Vector2 coo public static void UpdateWindowsEachTurn() { - //Initiative Window GameMapView.GenerateInitiativeWindow(); - - //Help Window GameMapView.GenerateObjectiveWindow(); } @@ -328,11 +325,16 @@ public void CancelActionMenu() { if (CurrentTurnState != TurnState.UnitDecidingAction) return; - MapContainer.ClearDynamicAndPreviewGrids(); - GameMapView.CloseCombatMenu(); - - RevertToPreviousState(); - CancelMove(); + if (GameMapView.ActionMenuContext.IsAtRootMenu) + { + CancelActionMenuAndReturnToOrigin(); + } + else + { + GameMapView.ActionMenuContext.GoToPreviousMenu(); + GameMapView.GenerateCurrentMenuDescription(); + AssetManager.MapUnitCancelSFX.Play(); + } } else { @@ -340,14 +342,19 @@ public void CancelActionMenu() } } - public void CancelTargetAction() + private void CancelActionMenuAndReturnToOrigin() + { + MapContainer.ClearDynamicAndPreviewGrids(); + GameMapView.CloseCombatMenu(); + RevertToPreviousState(); + CancelMove(); + } + + public void CancelUnitTargeting() { if (CanCancelAction) { - GameContext.ActiveUnit.CancelArmedSkill(); - ResetCursorToActiveUnit(); - GameMapView.GenerateActionMenus(); - RevertToPreviousState(); + CancelTargetAndOpenLastActionMenu(); } else { @@ -359,18 +366,32 @@ private void CancelExtraAction() { if (CurrentTurnState == TurnState.UnitTargeting) { - GameContext.ActiveUnit.CancelArmedSkill(); - ResetCursorToActiveUnit(); - ResetToActionMenu(); - AssetManager.MapUnitCancelSFX.Play(); + CancelTargetAndOpenLastActionMenu(); } else { - MapContainer.AddNewToastAtMapCursor("Can't cancel action!", 50); - AssetManager.WarningSFX.Play(); + if (GameMapView.ActionMenuContext.IsAtRootMenu) + { + MapContainer.AddNewToastAtMapCursor("Can't cancel action!", 50); + AssetManager.WarningSFX.Play(); + } + else + { + GameMapView.ActionMenuContext.GoToPreviousMenu(); + AssetManager.MapUnitCancelSFX.Play(); + } } } + private void CancelTargetAndOpenLastActionMenu() + { + GameContext.ActiveUnit.CancelArmedSkill(); + ResetCursorToActiveUnit(); + GameMapView.ActionMenuContext.Unhide(); + RevertToPreviousState(); + AssetManager.MapUnitCancelSFX.Play(); + } + private void StartMoving() { if (SelectedUnit != null) @@ -522,24 +543,30 @@ public void UpdateHoverContextWindows() private void UpdateThreatRangePreview(GameUnit hoverMapUnit, MapSlice hoverSlice) { - if (hoverMapUnit != null && GameContext.ActiveUnit.Team != Team.Creep) + MapContainer.ClearDynamicAndPreviewGrids(); + if (hoverMapUnit != null && GameContext.ActiveTeam != Team.Creep) { if (MapContainer.GetMapElementsFromLayer(Layer.Dynamic).Count != 0 && HoverUnit == hoverMapUnit) return; - MapContainer.ClearDynamicAndPreviewGrids(); new UnitTargetingContext(MapDistanceTile.GetTileSprite(MapDistanceTile.TileType.Attack)) .GenerateThreatGrid(hoverSlice.MapCoordinates, hoverMapUnit, hoverMapUnit.Team); } else if (hoverSlice.TerrainEntity is IThreatRange entityThreat) { if (LastHoverEntity == hoverSlice.TerrainEntity && LastHoverItem == hoverSlice.ItemEntity) return; - MapContainer.ClearDynamicAndPreviewGrids(); + new UnitTargetingContext(MapDistanceTile.GetTileSprite(MapDistanceTile.TileType.Attack)) .GenerateThreatGrid(hoverSlice.MapCoordinates, entityThreat); } - else + else if (hoverSlice.TerrainEntity is IActionTile actionTile) { - MapContainer.ClearDynamicAndPreviewGrids(); + new UnitTargetingContext(MapDistanceTile.GetTileSprite(MapDistanceTile.TileType.Action)) + .GenerateTargetingGrid(hoverSlice.MapCoordinates, actionTile.InteractRange, Layer.Preview); + } + else if (hoverSlice.ItemEntity is IActionTile itemActionTile) + { + new UnitTargetingContext(MapDistanceTile.GetTileSprite(MapDistanceTile.TileType.Action)) + .GenerateTargetingGrid(hoverSlice.MapCoordinates, itemActionTile.InteractRange, Layer.Preview); } } @@ -579,13 +606,23 @@ public void MoveActionMenuCursor(MenuCursorDirection direction) public void SelectActionMenuOption() { + AssetManager.MapUnitSelectSFX.Play(); MapContainer.ClearDynamicAndPreviewGrids(); - GameMapView.CurrentMenu.CurrentOption.Execute(); - GameMapView.CloseCombatMenu(); - CurrentTurnState = TurnState.UnitTargeting; - SelectedUnit.SetUnitAnimation(UnitAnimationState.Active); - AssetManager.MapUnitSelectSFX.Play(); + //FIXME This part of the code shouldn't know so much about the menu? + if (GameMapView?.CurrentMenu?.CurrentOption is ActionOption) + { + GameMapView.CurrentMenu.CurrentOption.Execute(); + GameMapView.ActionMenuContext.Hide(); + CurrentTurnState = TurnState.UnitTargeting; + SelectedUnit.SetUnitAnimation(UnitAnimationState.Active); + } + else + { + GameMapView?.CurrentMenu?.CurrentOption.Execute(); + GameMapView?.GenerateCurrentMenuDescription(); + GenerateActionPreviewGrid(); + } } public void RefreshCurrentActionMenuOption() @@ -624,7 +661,7 @@ public static bool TriggerEffectTiles(EffectTriggerTime effectTriggerTime, bool if (triggerTiles.Count <= 0) { - effectTiles.ForEach(tile => tile.HasTriggered = false); + effectTiles.ForEach(tile => tile.HasTriggered = false); return false; } @@ -686,10 +723,10 @@ public static void RemoveExpiredEffectTiles(IEnumerable effectTiles } } - public void OpenStealMenu(GameUnit targetToStealFrom) + public void OpenTakeItemMenu(GameUnit targetToTakeFrom, bool freeAction) { - CurrentTurnState = TurnState.StealItem; - GameMapView.GenerateStealItemMenu(targetToStealFrom); + CurrentTurnState = TurnState.TakeItem; + GameMapView.GenerateTakeItemMenu(targetToTakeFrom, freeAction); AssetManager.MenuConfirmSFX.Play(); } @@ -721,7 +758,7 @@ public void CancelStealItemMenu() public void OpenDraftMenu() { CurrentTurnState = TurnState.AdHocDraft; - GameMapView.GenerateDraftMenu(GameContext.ActiveUnit.Team); + GameMapView.GenerateDraftMenu(GameContext.ActiveTeam); AssetManager.MenuConfirmSFX.Play(); } @@ -731,15 +768,6 @@ public void ClearDraftMenu() MapContainer.ClearDynamicAndPreviewGrids(); } - public void ToggleActionInventoryMenu() - { - MapContainer.ClearDynamicAndPreviewGrids(); - GameMapView.ToggleCombatMenu(); - GameMapView.GenerateCurrentMenuDescription(); - GenerateActionPreviewGrid(); - AssetManager.MenuMoveSFX.Play(); - } - private static void GenerateActionPreviewGrid() { MapContainer.ClearDynamicAndPreviewGrids(); diff --git a/SolStandard/Containers/Contexts/InitiativeContext.cs b/SolStandard/Containers/Contexts/InitiativeContext.cs index 725fc91d..82e97df5 100644 --- a/SolStandard/Containers/Contexts/InitiativeContext.cs +++ b/SolStandard/Containers/Contexts/InitiativeContext.cs @@ -18,13 +18,17 @@ public class InitiativeContext public List InitiativeList { get; } public GameUnit CurrentActiveUnit { get; private set; } public Team CurrentActiveTeam { get; private set; } - private Team FirstPlayer { get; } + public Team FirstPlayer { get; } + private int redTeamGold; + private int blueTeamGold; public InitiativeContext(List unitList, Team firstTurn, TurnOrder turnOrder = TurnOrder.AlternateExhaustingUnits) { CurrentActiveTeam = firstTurn; FirstPlayer = firstTurn; + redTeamGold = 0; + blueTeamGold = 0; switch (turnOrder) { @@ -36,16 +40,67 @@ public InitiativeContext(List unitList, Team firstTurn, } } + private int RedTeamGold + { + get => redTeamGold; + set => redTeamGold = value < 0 ? 0 : value; + } + + private int BlueTeamGold + { + get => blueTeamGold; + set => blueTeamGold = value < 0 ? 0 : value; + } + + public int GetGoldForTeam(Team team) + { + switch (team) + { + case Team.Blue: + return blueTeamGold; + case Team.Red: + return redTeamGold; + default: + return 0; + } + } + + public void AddGoldToTeam(int goldToAdd, Team team) + { + switch (team) + { + case Team.Blue: + BlueTeamGold += goldToAdd; + break; + case Team.Red: + RedTeamGold += goldToAdd; + break; + } + } + + public void DeductGoldFromTeam(int goldToDeduct, Team team) + { + switch (team) + { + case Team.Blue: + BlueTeamGold -= goldToDeduct; + break; + case Team.Red: + RedTeamGold -= goldToDeduct; + break; + } + } + public void StartFirstTurn() { CurrentActiveTeam = TeamWithFewerRemainingUnits(); CurrentActiveUnit = InitiativeList.FirstOrDefault(unit => unit.Team == CurrentActiveTeam && unit.IsAlive); - - foreach (CreepUnit creepUnit in GameContext.Units.Where(unit=>unit is CreepUnit).Cast()) + + foreach (CreepUnit creepUnit in GameContext.Units.Where(unit => unit is CreepUnit).Cast()) { creepUnit.ReadyNextRoutine(); } - + StartNewRound(); } @@ -122,7 +177,7 @@ private void StartNewRound() GlobalEventQueue.QueueSingleEvent(new EffectTilesStartOfRoundEvent()); GlobalEventQueue.QueueSingleEvent(new UpdateTurnOrderEvent(this)); - + GameContext.StatusScreenView.UpdateWindows(); } @@ -132,7 +187,7 @@ public void UpdateTurnOrder() UpdateUnitActivation(); } - private Team TeamWithFewerRemainingUnits() + public Team TeamWithFewerRemainingUnits() { int redTeamUnits = InitiativeList.Count(unit => unit.Team == Team.Red && unit.IsAlive); int blueTeamUnits = InitiativeList.Count(unit => unit.Team == Team.Blue && unit.IsAlive); @@ -195,7 +250,7 @@ private void ExecuteCreepRoutine() { if (CurrentActiveTeam != Team.Creep) return; if (GameContext.ActiveUnit.UnitEntity == null) return; - + GlobalEventQueue.QueueSingleEvent(new WaitFramesEvent(30)); if (GameContext.ActiveUnit is CreepUnit activeCreep) diff --git a/SolStandard/Containers/Contexts/UnitContextualActionMenuContext.cs b/SolStandard/Containers/Contexts/UnitContextualActionMenuContext.cs index eb710aaa..88a2ae0f 100644 --- a/SolStandard/Containers/Contexts/UnitContextualActionMenuContext.cs +++ b/SolStandard/Containers/Contexts/UnitContextualActionMenuContext.cs @@ -1,119 +1,104 @@ using System.Collections.Generic; +using System.Linq; using Microsoft.Xna.Framework; using SolStandard.Entity; +using SolStandard.Entity.Unit; using SolStandard.Entity.Unit.Actions; +using SolStandard.Entity.Unit.Actions.Item; using SolStandard.HUD.Menu; using SolStandard.HUD.Menu.Options; using SolStandard.HUD.Menu.Options.ActionMenu; -using SolStandard.Map; -using SolStandard.Map.Elements; -using SolStandard.Map.Elements.Cursor; +using SolStandard.HUD.Window.Content; using SolStandard.Utility; -using SolStandard.Utility.Exceptions; namespace SolStandard.Containers.Contexts { public static class UnitContextualActionMenuContext { - private static readonly int[] InteractionRangeLimit = {0, 1, 2}; - private static List _contextualActions; - - public static MenuOption[] GenerateActionMenuOptions(Color windowColour) + public static List ActiveUnitContextOptions(Color windowColor) { - _contextualActions = FetchContextualActionsInRange(); - foreach (UnitAction activeUnitSkill in GameContext.ActiveUnit.Actions) - { - _contextualActions.Add(activeUnitSkill); - } + return FetchContextualActionsInRange() + .Select(contextAction => new ActionOption(windowColor, contextAction)) + .ToList(); + } - MenuOption[] options = new MenuOption[_contextualActions.Count]; - for (int i = 0; i < _contextualActions.Count; i++) + public static List ActiveUnitSkillOptions(Color windowColor) + { + List options = new List(); + foreach (UnitAction skillAction in GameContext.ActiveUnit.Actions) { - options[i] = new ActionOption(windowColour, _contextualActions[i]); + options.Add(new ActionOption(windowColor, skillAction)); } return options; } - public static IRenderable GetActionDescriptionAtIndex(IMenu actionMenu) + public static IRenderable GetActionDescriptionForCurrentMenuOption(IMenu actionMenu) { - if (actionMenu.CurrentOption is ActionOption action) + if (actionMenu.CurrentOption is IOptionDescription descriptiveOption) { - return action.Action.Description; + return descriptiveOption.Description; } - throw new SkillDescriptionNotFoundException(); + return RenderBlank.Blank; } - public static MenuOption[,] GenerateInventoryMenuOptions(Color windowColour) + public static MenuOption[,] GenerateInventoryMenuOptions(Color windowColor) { const int columns = 2; - MenuOption[,] options = new MenuOption[GameContext.ActiveUnit.Inventory.Count + 1, columns]; + List activeUnitInventory = GameContext.ActiveUnit.Inventory; + MenuOption[,] options = new MenuOption[activeUnitInventory.Count, columns]; - options[0, 0] = new ActionOption(windowColour, new DropGiveGoldAction()); - options[0, 1] = new ActionOption(windowColour, new Wait()); - - for (int i = 0; i < GameContext.ActiveUnit.Inventory.Count; i++) + for (int i = 0; i < activeUnitInventory.Count; i++) { - options[i + 1, 0] = new ActionOption(windowColour, GameContext.ActiveUnit.Inventory[i].UseAction()); - options[i + 1, 1] = new ActionOption(windowColour, GameContext.ActiveUnit.Inventory[i].DropAction()); + IItem currentItem = activeUnitInventory[i]; + options[i, 0] = new ItemActionOption(currentItem, windowColor); + options[i, 1] = new ActionOption(windowColor, currentItem.DropAction()); } return options; } - private static List FetchContextualActionsInRange() + private static IEnumerable FetchContextualActionsInRange() { - new UnitTargetingContext(MapDistanceTile.GetTileSprite(MapDistanceTile.TileType.Action)) - .GenerateTargetingGrid(GameContext.ActiveUnit.UnitEntity.MapCoordinates, InteractionRangeLimit); - - List mapSlicesInRange = new List(); - List distanceTiles = new List(); - - foreach (MapElement mapElement in MapContainer.GameGrid[(int) Layer.Dynamic]) - { - if (mapElement == null) continue; - - distanceTiles.Add(mapElement as MapDistanceTile); - mapSlicesInRange.Add(MapContainer.GetMapSliceAtCoordinates(mapElement.MapCoordinates)); - } - - List contextualSkills = new List(); - - foreach (MapSlice slice in mapSlicesInRange) + List mapActionTiles = MapContainer.GetMapEntities() + .Where(entity => entity is IActionTile) + .Cast() + .ToList(); + + List contextActions = new List(); + + foreach (IActionTile actionTile in mapActionTiles.Where(actionTile => + RangeComparison.TargetIsWithinRangeOfOrigin( + actionTile.MapCoordinates, + actionTile.InteractRange, + GameContext.ActiveUnit.UnitEntity.MapCoordinates + )) + ) { - IActionTile entityActionTile = slice.TerrainEntity as IActionTile; - AddEntityAction(entityActionTile, distanceTiles, contextualSkills); - - IActionTile itemActionTile = slice.ItemEntity as IActionTile; - AddEntityAction(itemActionTile, distanceTiles, contextualSkills); - - IActionTile unitActionTile = slice.UnitEntity; - AddEntityAction(unitActionTile, distanceTiles, contextualSkills); + contextActions.AddRange(actionTile.TileActions()); } - MapContainer.ClearDynamicAndPreviewGrids(); + UnitAction takeAction = TakeActionIfAllyInRange(); + if (takeAction != null) contextActions.Add(takeAction); - return contextualSkills; + return contextActions; } - private static void AddEntityAction(IActionTile entityActionTile, List distanceTiles, - List contextualSkills) + private static UnitAction TakeActionIfAllyInRange() { - if (entityActionTile == null) return; - - foreach (MapDistanceTile distanceTile in distanceTiles) - { - foreach (int range in entityActionTile.InteractRange) - { - //If the tile's range aligns with the current range of the unit, add the action to the action list - if (distanceTile.MapCoordinates != entityActionTile.MapCoordinates) continue; - if (distanceTile.Distance == range) - { - contextualSkills.AddRange(entityActionTile.TileActions()); - } - } - } + int[] meleeRange = {1}; + + List alliesInRange = GameContext.Units + .Where(unit => unit.Team == GameContext.ActiveTeam && unit.IsAlive) + .Where(ally => RangeComparison.TargetIsWithinRangeOfOrigin( + GameContext.ActiveUnit.UnitEntity.MapCoordinates, + meleeRange, + ally.UnitEntity.MapCoordinates + )) + .ToList(); + + return alliesInRange.Any(ally => ally.Inventory.Count > 0) ? new TakeItemAction() : null; } } } \ No newline at end of file diff --git a/SolStandard/Containers/Contexts/WinConditions/Objective.cs b/SolStandard/Containers/Contexts/WinConditions/Objective.cs index 4ce24457..9a5a85ba 100644 --- a/SolStandard/Containers/Contexts/WinConditions/Objective.cs +++ b/SolStandard/Containers/Contexts/WinConditions/Objective.cs @@ -29,7 +29,7 @@ public abstract class Objective protected bool CoOpVictory; protected bool AllPlayersLose; - public virtual IRenderable ObjectiveInfo => new RenderBlank(); + public virtual IRenderable ObjectiveInfo => RenderBlank.Blank; public abstract bool ConditionsMet(); diff --git a/SolStandard/Containers/Contexts/WinConditions/Taxes.cs b/SolStandard/Containers/Contexts/WinConditions/Taxes.cs index 9926ebed..1b8b347f 100644 --- a/SolStandard/Containers/Contexts/WinConditions/Taxes.cs +++ b/SolStandard/Containers/Contexts/WinConditions/Taxes.cs @@ -1,6 +1,5 @@ using System; -using System.Collections.Generic; -using System.Linq; +using Microsoft.Xna.Framework; using SolStandard.Entity.General; using SolStandard.Entity.Unit; using SolStandard.HUD.Window; @@ -21,18 +20,16 @@ public Taxes(int targetGold) } protected override IRenderable VictoryLabelContent => BuildObjectiveWindow(AssetManager.ResultsFont); - - public override IRenderable ObjectiveInfo => BuildObjectiveWindow(AssetManager.WindowFont); private Window BuildObjectiveWindow(ISpriteFont font) { Window blueGoldWindow = new Window( - new RenderText(font, "Blue: " + CollectedGold(Team.Blue) + "/" + targetGold + "G"), + new RenderText(font, "Blue: " + BankedGoldForTeam(Team.Blue) + "/" + targetGold + "G"), TeamUtility.DetermineTeamColor(Team.Blue)); Window redGoldWindow = new Window( - new RenderText(font, "Red: " + CollectedGold(Team.Red) + "/" + targetGold + "G"), + new RenderText(font, "Red: " + BankedGoldForTeam(Team.Red) + "/" + targetGold + "G"), TeamUtility.DetermineTeamColor(Team.Red)); WindowContentGrid teamGoldWindowContentGrid = new WindowContentGrid( @@ -42,8 +39,9 @@ private Window BuildObjectiveWindow(ISpriteFont font) blueGoldWindow, ObjectiveIconProvider.GetObjectiveIcon( VictoryConditions.Taxes, - GameDriver.CellSizeVector + new Vector2(font.MeasureString("A").Y) ), + new RenderText(font, "Deposit"), redGoldWindow } }, @@ -55,19 +53,19 @@ private Window BuildObjectiveWindow(ISpriteFont font) public override bool ConditionsMet() { - if (TeamHasCollectedTargetGold(Team.Blue) && TeamHasCollectedTargetGold(Team.Red)) + if (TeamHasBankedTargetGold(Team.Blue) && TeamHasBankedTargetGold(Team.Red)) { GameIsADraw = true; return GameIsADraw; } - if (TeamHasCollectedTargetGold(Team.Blue)) + if (TeamHasBankedTargetGold(Team.Blue)) { BlueTeamWins = true; return BlueTeamWins; } - if (TeamHasCollectedTargetGold(Team.Red)) + if (TeamHasBankedTargetGold(Team.Red)) { RedTeamWins = true; return RedTeamWins; @@ -76,34 +74,24 @@ public override bool ConditionsMet() return false; } - private static int CollectedGold(Team team) + private static int BankedGoldForTeam(Team team) { - List teamUnitList = GameContext.Units.FindAll(unit => unit.Team == team); - - int heldGold = teamUnitList.Sum(unit => unit.CurrentGold); - - int bankedGold = 0; - switch (team) { case Team.Blue: - bankedGold = Bank.BlueMoney; - break; + return Bank.BlueMoney; case Team.Red: - bankedGold = Bank.RedMoney; - break; + return Bank.RedMoney; case Team.Creep: - break; + return 0; default: throw new ArgumentOutOfRangeException(nameof(team), team, null); } - - return heldGold + bankedGold; } - private bool TeamHasCollectedTargetGold(Team team) + private bool TeamHasBankedTargetGold(Team team) { - return CollectedGold(team) >= targetGold; + return BankedGoldForTeam(team) >= targetGold; } } } \ No newline at end of file diff --git a/SolStandard/Containers/MapContainer.cs b/SolStandard/Containers/MapContainer.cs index 88cba137..b52cc93a 100644 --- a/SolStandard/Containers/MapContainer.cs +++ b/SolStandard/Containers/MapContainer.cs @@ -131,7 +131,7 @@ public MapSlice GetMapSliceAtCursor() return GetMapSliceAtCoordinates(MapCursor.MapCoordinates); } - public static List GetMapEntities() + public static IEnumerable GetMapEntities() { List entities = new List(); @@ -142,7 +142,10 @@ public static List GetMapEntities() { for (int column = 0; column < mapWidth; column++) { - if (GameGrid[(int) Layer.Entities][column, row] is MapEntity currentTile) entities.Add(currentTile); + if (GameGrid[(int) Layer.Entities][column, row] is MapEntity currentEntity) + entities.Add(currentEntity); + + if (GameGrid[(int) Layer.Items][column, row] is MapEntity currentItem) entities.Add(currentItem); } } diff --git a/SolStandard/Containers/View/BattleView.cs b/SolStandard/Containers/View/BattleView.cs index ee339f53..16da665c 100644 --- a/SolStandard/Containers/View/BattleView.cs +++ b/SolStandard/Containers/View/BattleView.cs @@ -27,25 +27,25 @@ public class BattleView : IUserInterface private const int WindowSpacing = 5; private static readonly Vector2 HpBarSize = new Vector2(350, 80); - public AnimatedWindow AttackerPortraitWindow { get; private set; } - private AnimatedWindow AttackerDetailWindow { get; set; } - private AnimatedWindow AttackerHpWindow { get; set; } - private AnimatedWindow AttackerAtkWindow { get; set; } - public AnimatedWindow AttackerBonusWindow { get; private set; } - private AnimatedWindow AttackerRangeWindow { get; set; } - private AnimatedWindow AttackerDiceWindow { get; set; } - private AnimatedWindow AttackerSpriteWindow { get; set; } - - public AnimatedWindow DefenderPortraitWindow { get; private set; } - private AnimatedWindow DefenderDetailWindow { get; set; } - private AnimatedWindow DefenderHpWindow { get; set; } - private AnimatedWindow DefenderAtkWindow { get; set; } - private AnimatedWindow DefenderBonusWindow { get; set; } - private AnimatedWindow DefenderRangeWindow { get; set; } - private AnimatedWindow DefenderDiceWindow { get; set; } - private AnimatedWindow DefenderSpriteWindow { get; set; } - - private AnimatedWindow HelpTextWindow { get; set; } + private AnimatedRenderable AttackerPortraitWindow { get; set; } + private AnimatedRenderable AttackerDetailWindow { get; set; } + private AnimatedRenderable AttackerHpWindow { get; set; } + private AnimatedRenderable AttackerAtkWindow { get; set; } + public AnimatedRenderable AttackerBonusWindow { get; private set; } + private AnimatedRenderable AttackerRangeWindow { get; set; } + private AnimatedRenderable AttackerDiceWindow { get; set; } + private AnimatedRenderable AttackerSpriteWindow { get; set; } + + private AnimatedRenderable DefenderPortraitWindow { get; set; } + private AnimatedRenderable DefenderDetailWindow { get; set; } + private AnimatedRenderable DefenderHpWindow { get; set; } + private AnimatedRenderable DefenderAtkWindow { get; set; } + private AnimatedRenderable DefenderBonusWindow { get; set; } + private AnimatedRenderable DefenderRangeWindow { get; set; } + private AnimatedRenderable DefenderDiceWindow { get; set; } + private AnimatedRenderable DefenderSpriteWindow { get; set; } + + private AnimatedRenderable HelpTextWindow { get; set; } private Window UserPromptWindow { get; set; } private bool visible; @@ -55,23 +55,23 @@ public BattleView() visible = true; } - private static IWindowAnimation RightBattlerAnimation => - new WindowSlide(WindowSlide.SlideDirection.Left, UnitSlideDistance, WindowSlideSpeed); + private static IRenderableAnimation RightBattlerAnimation => + new RenderableSlide(RenderableSlide.SlideDirection.Left, UnitSlideDistance, WindowSlideSpeed); - private static IWindowAnimation LeftBattlerAnimation => - new WindowSlide(WindowSlide.SlideDirection.Right, UnitSlideDistance, WindowSlideSpeed); + private static IRenderableAnimation LeftBattlerAnimation => + new RenderableSlide(RenderableSlide.SlideDirection.Right, UnitSlideDistance, WindowSlideSpeed); - private static IWindowAnimation RightSideWindowAnimation => - new WindowSlide(WindowSlide.SlideDirection.Left, WindowHorizontalSlideDistance, WindowSlideSpeed); + private static IRenderableAnimation RightSideRenderableAnimation => + new RenderableSlide(RenderableSlide.SlideDirection.Left, WindowHorizontalSlideDistance, WindowSlideSpeed); - private static IWindowAnimation LeftSideWindowAnimation => - new WindowSlide(WindowSlide.SlideDirection.Right, WindowHorizontalSlideDistance, WindowSlideSpeed); + private static IRenderableAnimation LeftSideRenderableAnimation => + new RenderableSlide(RenderableSlide.SlideDirection.Right, WindowHorizontalSlideDistance, WindowSlideSpeed); - private static IWindowAnimation BottomWindowAnimation => - new WindowSlide(WindowSlide.SlideDirection.Up, WindowVerticalSlideDistance, WindowSlideSpeed); + private static IRenderableAnimation BottomRenderableAnimation => + new RenderableSlide(RenderableSlide.SlideDirection.Up, WindowVerticalSlideDistance, WindowSlideSpeed); - private static IWindowAnimation TopWindowAnimation => - new WindowSlide(WindowSlide.SlideDirection.Down, WindowVerticalSlideDistance, WindowSlideSpeed); + private static IRenderableAnimation TopRenderableAnimation => + new RenderableSlide(RenderableSlide.SlideDirection.Down, WindowVerticalSlideDistance, WindowSlideSpeed); #region View Management @@ -87,7 +87,7 @@ public void HidePromptWindow() public void GenerateHelpTextWindow(WindowContentGrid helpTextContent) { Color helpTextWindowColor = new Color(20, 20, 20, 200); - HelpTextWindow = new AnimatedWindow(new Window(helpTextContent, helpTextWindowColor), TopWindowAnimation); + HelpTextWindow = new AnimatedRenderable(new Window(helpTextContent, helpTextWindowColor), TopRenderableAnimation); } public void GenerateUserPromptWindow(WindowContentGrid promptTextContent, Vector2 sizeOverride) @@ -116,37 +116,37 @@ public void GenerateAttackerSpriteWindow(GameUnit attacker, Color spriteColor, U } AttackerSpriteWindow = - new AnimatedWindow(BattlerWindow(attacker, spriteColor, state, frameDelay, false), + new AnimatedRenderable(BattlerWindow(attacker, spriteColor, state, frameDelay, false), LeftBattlerAnimation); } public void GenerateAttackerDamageWindow(Color attackerWindowColor, CombatDamage attackerDamage) { AttackerDiceWindow = - new AnimatedWindow(new Window(attackerDamage, attackerWindowColor), LeftSideWindowAnimation); + new AnimatedRenderable(new Window(attackerDamage, attackerWindowColor), LeftSideRenderableAnimation); } public void GenerateAttackerInRangeWindow(Color attackerWindowColor, bool inRange) { AttackerRangeWindow = - new AnimatedWindow(RangeWindow(attackerWindowColor, inRange), LeftSideWindowAnimation); + new AnimatedRenderable(RangeWindow(attackerWindowColor, inRange), LeftSideRenderableAnimation); } public void GenerateAttackerBonusWindow(BonusStatistics bonusStatistics, Color attackerWindowColor) { AttackerBonusWindow = - new AnimatedWindow(BonusWindow(bonusStatistics, attackerWindowColor), LeftSideWindowAnimation); + new AnimatedRenderable(BonusWindow(bonusStatistics, attackerWindowColor), LeftSideRenderableAnimation); } public void GenerateAttackerAtkWindow(Color windowColor, UnitStatistics attackerStats, Stats combatStat) { - AttackerAtkWindow = new AnimatedWindow(CombatStatWindow(windowColor, attackerStats, combatStat), - LeftSideWindowAnimation); + AttackerAtkWindow = new AnimatedRenderable(CombatStatWindow(windowColor, attackerStats, combatStat), + LeftSideRenderableAnimation); } public void GenerateAttackerHpWindow(Color windowColor, GameUnit attacker) { - AttackerHpWindow = new AnimatedWindow(GenerateHpWindow(attacker, windowColor), LeftSideWindowAnimation); + AttackerHpWindow = new AnimatedRenderable(GenerateHpWindow(attacker, windowColor), LeftSideRenderableAnimation); } public void GenerateAttackerUnitCard(Color attackerWindowColor, GameUnit attacker, bool animated = true) @@ -159,16 +159,16 @@ private void GenerateAttackerDetailWindow(Color attackerWindowColor, IRenderable attackerDetail, bool animated) { AttackerDetailWindow = - new AnimatedWindow(new Window(attackerDetail, attackerWindowColor), - animated ? BottomWindowAnimation : new WindowStatic(AttackerDetailWindowPosition())); + new AnimatedRenderable(new Window(attackerDetail, attackerWindowColor), + animated ? BottomRenderableAnimation : new RenderableStatic(AttackerDetailWindowPosition())); } private void GenerateAttackerPortraitWindow(Color attackerWindowColor, IRenderable attackerPortrait, bool animated) { AttackerPortraitWindow = - new AnimatedWindow(new Window(attackerPortrait, attackerWindowColor), - animated ? BottomWindowAnimation : new WindowStatic(AttackerPortraitWindowPosition())); + new AnimatedRenderable(new Window(attackerPortrait, attackerWindowColor), + animated ? BottomRenderableAnimation : new RenderableStatic(AttackerPortraitWindowPosition())); } #endregion Attacker Windows @@ -193,7 +193,7 @@ public void GenerateDefenderSpriteWindow(GameUnit defender, Color spriteColor, U } DefenderSpriteWindow = - new AnimatedWindow(BattlerWindow(defender, spriteColor, state, frameDelay, true), + new AnimatedRenderable(BattlerWindow(defender, spriteColor, state, frameDelay, true), RightBattlerAnimation); } @@ -201,33 +201,33 @@ public void GenerateDefenderSpriteWindow(GameUnit defender, Color spriteColor, U public void GenerateDefenderDamageWindow(Color defenderWindowColor, CombatDamage defenderDamage) { DefenderDiceWindow = - new AnimatedWindow(new Window(defenderDamage, defenderWindowColor), RightSideWindowAnimation); + new AnimatedRenderable(new Window(defenderDamage, defenderWindowColor), RightSideRenderableAnimation); } public void GenerateDefenderRangeWindow(Color defenderWindowColor, bool inRange) { DefenderRangeWindow = - new AnimatedWindow(RangeWindow(defenderWindowColor, inRange), RightSideWindowAnimation); + new AnimatedRenderable(RangeWindow(defenderWindowColor, inRange), RightSideRenderableAnimation); } public void GenerateDefenderBonusWindow(BonusStatistics bonusStatistics, Color defenderWindowColor) { DefenderBonusWindow = - new AnimatedWindow(BonusWindow(bonusStatistics, defenderWindowColor), RightSideWindowAnimation); + new AnimatedRenderable(BonusWindow(bonusStatistics, defenderWindowColor), RightSideRenderableAnimation); } public void GenerateDefenderRetWindow(Color windowColor, UnitStatistics defenderStats, Stats combatStat) { - DefenderAtkWindow = new AnimatedWindow(CombatStatWindow(windowColor, defenderStats, combatStat), - RightSideWindowAnimation); + DefenderAtkWindow = new AnimatedRenderable(CombatStatWindow(windowColor, defenderStats, combatStat), + RightSideRenderableAnimation); } public void GenerateDefenderHpWindow(Color windowColor, GameUnit defender) { - DefenderHpWindow = new AnimatedWindow(GenerateHpWindow(defender, windowColor), RightSideWindowAnimation); + DefenderHpWindow = new AnimatedRenderable(GenerateHpWindow(defender, windowColor), RightSideRenderableAnimation); } public void GenerateDefenderUnitCard(Color defenderWindowColor, GameUnit defender, bool animated = true) @@ -240,16 +240,16 @@ private void GenerateDefenderDetailWindow(Color defenderWindowColor, IRenderable defenderDetail, bool animated) { DefenderDetailWindow = - new AnimatedWindow(new Window(defenderDetail, defenderWindowColor), - animated ? BottomWindowAnimation : new WindowStatic(DefenderDetailWindowPosition())); + new AnimatedRenderable(new Window(defenderDetail, defenderWindowColor), + animated ? BottomRenderableAnimation : new RenderableStatic(DefenderDetailWindowPosition())); } private void GenerateDefenderPortraitWindow(Color defenderWindowColor, IRenderable defenderPortrait, bool animated) { DefenderPortraitWindow = - new AnimatedWindow(new Window(defenderPortrait, defenderWindowColor), - animated ? BottomWindowAnimation : new WindowStatic(DefenderPortraitWindowPosition())); + new AnimatedRenderable(new Window(defenderPortrait, defenderWindowColor), + animated ? BottomRenderableAnimation : new RenderableStatic(DefenderPortraitWindowPosition())); } #endregion Defender Windows @@ -273,7 +273,7 @@ private static Window RangeWindow(Color windowColor, bool inRange) } }; - WindowContentGrid defenderRangeContentGrid = new WindowContentGrid(defenderRangeContent, 1); + WindowContentGrid defenderRangeContentGrid = new WindowContentGrid(defenderRangeContent); return new Window(defenderRangeContentGrid, windowColor); } @@ -306,8 +306,7 @@ private static Window BattlerWindow(GameUnit attacker, Color spriteColor, UnitAn { attacker.GetMapSprite(new Vector2(spriteSize), spriteColor, state, frameDelay, isFlipped) } - }, - 1 + } ), Color.Transparent ); @@ -346,8 +345,7 @@ private static Window CombatStatWindow(Color windowColor, UnitStatistics stats, UnitStatistics.DetermineStatColor(statValue, baseStatValue) ) } - }, - 1 + } ); return new Window(atkContentGrid, windowColor); } diff --git a/SolStandard/Containers/View/CodexView.cs b/SolStandard/Containers/View/CodexView.cs index 72c2a899..795a91b4 100644 --- a/SolStandard/Containers/View/CodexView.cs +++ b/SolStandard/Containers/View/CodexView.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using SolStandard.Containers.Contexts; @@ -47,9 +48,13 @@ public void ShowUnitDetails(GameUnit unit) unitDetailWindow = GenerateUnitDetailWindow(unit); } - private static Window GenerateActionWindow(IReadOnlyList actions, Color windowColor) + private static Window GenerateActionWindow(IEnumerable unitActions, Color windowColor) { - IRenderable[,] actionElements = new IRenderable[actions.Count, 4]; + List codexActions = new List(unitActions) + .Where(action => !(action is BasicAttack) && !(action is Wait)) + .ToList(); + + IRenderable[,] actionElements = new IRenderable[codexActions.Count, 4]; const int iconIndex = 0; const int nameIndex = 1; @@ -60,27 +65,27 @@ private static Window GenerateActionWindow(IReadOnlyList actions, Co int largestRangeWidth = 0; int largestDescriptionWidth = 0; - for (int i = 0; i < actions.Count; i++) + for (int i = 0; i < codexActions.Count; i++) { - actionElements[i, iconIndex] = actions[i].Icon; + actionElements[i, iconIndex] = codexActions[i].Icon; actionElements[i, nameIndex] = new Window( - new RenderText(AssetManager.WindowFont, actions[i].Name, - (actions[i].FreeAction) ? GameContext.PositiveColor : Color.White), Color.Transparent); + new RenderText(AssetManager.WindowFont, codexActions[i].Name, + (codexActions[i].FreeAction) ? GameContext.PositiveColor : Color.White), Color.Transparent); actionElements[i, rangeIndex] = new Window( new RenderText( AssetManager.WindowFont, - actions[i].Range == null + codexActions[i].Range == null ? "Range: N/A" - : $"Range: [{string.Join(",", actions[i].Range)}]" + : $"Range: [{string.Join(",", codexActions[i].Range)}]" ), Color.Transparent ); actionElements[i, descriptionIndex] = - new Window(actions[i].Description, windowColor); + new Window(codexActions[i].Description, windowColor); //Remember the largest width for aligning later if (actionElements[i, nameIndex].Width > largestNameWidth) @@ -100,7 +105,7 @@ private static Window GenerateActionWindow(IReadOnlyList actions, Co } - for (int i = 0; i < actions.Count; i++) + for (int i = 0; i < codexActions.Count; i++) { //Fill space so that all the elements have the same width like a grid ((Window) actionElements[i, nameIndex]).Width = largestNameWidth; diff --git a/SolStandard/Containers/View/DeploymentView.cs b/SolStandard/Containers/View/DeploymentView.cs index f11fa535..f3c6b04f 100644 --- a/SolStandard/Containers/View/DeploymentView.cs +++ b/SolStandard/Containers/View/DeploymentView.cs @@ -76,31 +76,31 @@ private static Window GenerateHelpTextWindow() { { new RenderText(AssetManager.HeaderFont, "Deployment Phase"), - new RenderBlank(), - new RenderBlank(), - new RenderBlank(), - new RenderBlank() + RenderBlank.Blank, + RenderBlank.Blank, + RenderBlank.Blank, + RenderBlank.Blank }, { new RenderText(windowFont, "Press "), InputIconProvider.GetInputIcon(Input.Confirm, new Vector2(windowFont.MeasureString("A").Y)), new RenderText(windowFont, " on a deployment tile to deploy a unit."), - new RenderBlank(), - new RenderBlank() + RenderBlank.Blank, + RenderBlank.Blank }, { new RenderText(windowFont, "Press "), InputIconProvider.GetInputIcon(Input.Cancel, new Vector2(windowFont.MeasureString("A").Y)), new RenderText(windowFont, " to snap to the first deploy tile."), - new RenderBlank(), - new RenderBlank() + RenderBlank.Blank, + RenderBlank.Blank }, { new RenderText(windowFont, "Press "), InputIconProvider.GetInputIcon(Input.PreviewUnit, new Vector2(windowFont.MeasureString("A").Y)), new RenderText(windowFont, " to preview selected unit in the codex."), - new RenderBlank(), - new RenderBlank() + RenderBlank.Blank, + RenderBlank.Blank }, { new RenderText(windowFont, "Press "), diff --git a/SolStandard/Containers/View/DraftView.cs b/SolStandard/Containers/View/DraftView.cs index 74c4522a..1dc88d36 100644 --- a/SolStandard/Containers/View/DraftView.cs +++ b/SolStandard/Containers/View/DraftView.cs @@ -61,10 +61,10 @@ public void UpdateControlsTextWindow() { { new RenderText(AssetManager.HeaderFont, "~Draft Phase~"), - new RenderBlank(), - new RenderBlank(), - new RenderBlank(), - new RenderBlank() + RenderBlank.Blank, + RenderBlank.Blank, + RenderBlank.Blank, + RenderBlank.Blank }, { new RenderText(windowFont, "Move Draft Cursor: "), @@ -76,16 +76,16 @@ public void UpdateControlsTextWindow() { new RenderText(windowFont, "Draft a unit: "), InputIconProvider.GetInputIcon(Input.Confirm, new Vector2(windowFont.MeasureString("A").Y)), - new RenderBlank(), - new RenderBlank(), - new RenderBlank() + RenderBlank.Blank, + RenderBlank.Blank, + RenderBlank.Blank }, { new RenderText(windowFont, "View Unit Codex: "), InputIconProvider.GetInputIcon(Input.PreviewUnit, new Vector2(windowFont.MeasureString("A").Y)), - new RenderBlank(), - new RenderBlank(), - new RenderBlank() + RenderBlank.Blank, + RenderBlank.Blank, + RenderBlank.Blank }, { new RenderText(windowFont, "Move Map Camera: "), @@ -155,7 +155,7 @@ public void UpdateCommanderSelect(List units, Team team) } else { - commanderOptions[row, column] = new UnselectableOption(new RenderBlank(), DarkBackgroundColor); + commanderOptions[row, column] = new UnselectableOption(RenderBlank.Blank, DarkBackgroundColor); } unitIndex++; @@ -310,7 +310,7 @@ private static Window BuildUnitListWindow(IReadOnlyList unitSprites { if (unitIndex >= unitSprites.Count) { - unitCells[row, column] = new RenderBlank(); + unitCells[row, column] = RenderBlank.Blank; } else { diff --git a/SolStandard/Containers/View/GameMapView.cs b/SolStandard/Containers/View/GameMapView.cs index c56d0974..f1e4e7a1 100644 --- a/SolStandard/Containers/View/GameMapView.cs +++ b/SolStandard/Containers/View/GameMapView.cs @@ -1,14 +1,20 @@ using System; using System.Collections.Generic; +using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using SolStandard.Containers.Contexts; +using SolStandard.Containers.Contexts.WinConditions; using SolStandard.Entity; using SolStandard.Entity.General; using SolStandard.Entity.Unit; +using SolStandard.Entity.Unit.Actions; +using SolStandard.Entity.Unit.Actions.Champion; +using SolStandard.Entity.Unit.Actions.Duelist; using SolStandard.Entity.Unit.Statuses; using SolStandard.HUD.Menu; using SolStandard.HUD.Menu.Options; +using SolStandard.HUD.Menu.Options.ActionMenu; using SolStandard.HUD.Menu.Options.StealMenu; using SolStandard.HUD.Window; using SolStandard.HUD.Window.Animation; @@ -16,7 +22,7 @@ using SolStandard.Map.Elements.Cursor; using SolStandard.Utility; using SolStandard.Utility.Assets; -using SolStandard.Utility.Buttons; +using SolStandard.Utility.Monogame; namespace SolStandard.Containers.View { @@ -29,8 +35,7 @@ public class GameMapView : IUserInterface private enum MenuType { ActionMenu, - InventoryMenu, - StealItemMenu, + TakeItemMenu, DraftMenu } @@ -45,38 +50,35 @@ private enum MenuType public static readonly Color UserPromptWindowColor = new Color(40, 30, 40, 200); private int LeftHoverUnit { get; set; } - private AnimatedWindow LeftUnitPortraitWindow { get; set; } - private AnimatedWindow LeftUnitDetailWindow { get; set; } - private AnimatedWindow LeftUnitStatusWindow { get; set; } - private AnimatedWindow LeftUnitInventoryWindow { get; set; } + private AnimatedRenderable LeftUnitPortraitWindow { get; set; } + private AnimatedRenderable LeftUnitDetailWindow { get; set; } + private AnimatedRenderable LeftUnitStatusWindow { get; set; } + private AnimatedRenderable LeftUnitInventoryWindow { get; set; } private int RightHoverUnit { get; set; } - private AnimatedWindow RightUnitPortraitWindow { get; set; } - private AnimatedWindow RightUnitDetailWindow { get; set; } - private AnimatedWindow RightUnitStatusWindow { get; set; } - private AnimatedWindow RightUnitInventoryWindow { get; set; } + private AnimatedRenderable RightUnitPortraitWindow { get; set; } + private AnimatedRenderable RightUnitDetailWindow { get; set; } + private AnimatedRenderable RightUnitStatusWindow { get; set; } + private AnimatedRenderable RightUnitInventoryWindow { get; set; } private int EntityWindowHash { get; set; } - private AnimatedWindow EntityWindow { get; set; } + private AnimatedRenderable EntityWindow { get; set; } private Window InitiativeWindow { get; set; } private Window BlueTeamWindow { get; set; } private Window RedTeamWindow { get; set; } private Window ObjectiveWindow { get; set; } + private static Window TeamInfoWindow => GenerateTeamInfoWindow(); public Window ItemDetailWindow { get; private set; } private Window UserPromptWindow { get; set; } - private VerticalMenu ActionMenu { get; set; } + private Window MenuHeaderWindow { get; set; } + public MenuContext ActionMenuContext { get; private set; } private Window ActionMenuDescriptionWindow { get; set; } - private TwoDimensionalMenu InventoryMenu { get; set; } - private Window InventoryMenuDescriptionWindow { get; set; } - - private Window MenuDescriptionWindow { get; set; } - private TwoDimensionalMenu AdHocDraftMenu { get; set; } - private TwoDimensionalMenu StealItemMenu { get; set; } + private TwoDimensionalMenu TakeItemMenu { get; set; } private readonly IRenderable cursorSprite; private MenuType visibleMenu; @@ -98,27 +100,18 @@ private MenuType VisibleMenu switch (value) { case MenuType.ActionMenu: - ActionMenu.IsVisible = true; - InventoryMenu.IsVisible = false; - if (StealItemMenu != null) StealItemMenu.IsVisible = false; - if (AdHocDraftMenu != null) AdHocDraftMenu.IsVisible = false; - break; - case MenuType.InventoryMenu: - ActionMenu.IsVisible = false; - InventoryMenu.IsVisible = true; - if (StealItemMenu != null) StealItemMenu.IsVisible = false; + ActionMenuContext.CurrentMenu.IsVisible = true; + if (TakeItemMenu != null) TakeItemMenu.IsVisible = false; if (AdHocDraftMenu != null) AdHocDraftMenu.IsVisible = false; break; - case MenuType.StealItemMenu: - ActionMenu.IsVisible = false; - InventoryMenu.IsVisible = false; - StealItemMenu.IsVisible = true; + case MenuType.TakeItemMenu: + ActionMenuContext.CurrentMenu.IsVisible = false; + TakeItemMenu.IsVisible = true; if (AdHocDraftMenu != null) AdHocDraftMenu.IsVisible = false; break; case MenuType.DraftMenu: - ActionMenu.IsVisible = false; - InventoryMenu.IsVisible = false; - if (StealItemMenu != null) StealItemMenu.IsVisible = false; + ActionMenuContext.CurrentMenu.IsVisible = false; + if (TakeItemMenu != null) TakeItemMenu.IsVisible = false; AdHocDraftMenu.IsVisible = true; break; default: @@ -134,11 +127,9 @@ public IMenu CurrentMenu switch (VisibleMenu) { case MenuType.ActionMenu: - return ActionMenu; - case MenuType.InventoryMenu: - return InventoryMenu; - case MenuType.StealItemMenu: - return StealItemMenu; + return ActionMenuContext.CurrentMenu; + case MenuType.TakeItemMenu: + return TakeItemMenu; case MenuType.DraftMenu: return AdHocDraftMenu; default: @@ -147,27 +138,11 @@ public IMenu CurrentMenu } } - private static IWindowAnimation RightSideWindowAnimation => - new WindowSlide(WindowSlide.SlideDirection.Left, WindowSlideDistance, WindowSlideSpeed); - - private static IWindowAnimation LeftSideWindowAnimation => - new WindowSlide(WindowSlide.SlideDirection.Right, WindowSlideDistance, WindowSlideSpeed); - - public void ToggleCombatMenu() - { - switch (VisibleMenu) - { - case MenuType.ActionMenu: - VisibleMenu = MenuType.InventoryMenu; - break; - case MenuType.InventoryMenu: - VisibleMenu = MenuType.ActionMenu; - break; - } + private static IRenderableAnimation RightSideWindowAnimation => + new RenderableSlide(RenderableSlide.SlideDirection.Left, WindowSlideDistance, WindowSlideSpeed); - Color windowColour = TeamUtility.DetermineTeamColor(GameContext.ActiveUnit.Team); - GenerateMenuDescriptionWindow(VisibleMenu, windowColour); - } + private static IRenderableAnimation LeftSideWindowAnimation => + new RenderableSlide(RenderableSlide.SlideDirection.Right, WindowSlideDistance, WindowSlideSpeed); #region Close Windows @@ -183,8 +158,7 @@ public void CloseItemDetailWindow() public void CloseCombatMenu() { - ActionMenu.IsVisible = false; - InventoryMenu.IsVisible = false; + ActionMenuContext.ClearMenuStack(); } public void CloseAdHocDraftMenu() @@ -194,32 +168,32 @@ public void CloseAdHocDraftMenu() public void CloseStealItemMenu() { - StealItemMenu = null; + TakeItemMenu = null; } #endregion Close Windows #region Generation - public void GenerateStealItemMenu(GameUnit targetToStealFrom) + public void GenerateTakeItemMenu(GameUnit targetToTakeFrom, bool freeAction) { - StealItemMenu = new TwoDimensionalMenu( - GenerateStealOptions(targetToStealFrom), + TakeItemMenu = new TwoDimensionalMenu( + GenerateTakeOptions(targetToTakeFrom, freeAction), cursorSprite, ItemTerrainWindowColor, TwoDimensionalMenu.CursorType.Pointer ); - VisibleMenu = MenuType.StealItemMenu; + VisibleMenu = MenuType.TakeItemMenu; } - private static MenuOption[,] GenerateStealOptions(GameUnit targetToStealFrom) + private static MenuOption[,] GenerateTakeOptions(GameUnit targetToTakeFrom, bool freeAction) { - List unitInventory = targetToStealFrom.Inventory; + List unitInventory = targetToTakeFrom.Inventory; MenuOption[,] menu = new MenuOption[unitInventory.Count, 1]; for (int i = 0; i < unitInventory.Count; i++) { - menu[i, 0] = new StealItemOption(targetToStealFrom, unitInventory[i], ItemTerrainWindowColor); + menu[i, 0] = new TakeItemOption(targetToTakeFrom, unitInventory[i], ItemTerrainWindowColor, freeAction); } return menu; @@ -299,41 +273,145 @@ public static Window GenerateItemsWindow(IReadOnlyList items, Color windo ), windowColor); } + private static Window GenerateTeamInfoWindow() + { + ISpriteFont font = AssetManager.WindowFont; + + Window blueGoldWindow = new Window( + new RenderText(font, $"Blue: {GameContext.InitiativeContext.GetGoldForTeam(Team.Blue)}G"), + TeamUtility.DetermineTeamColor(Team.Blue)); + + Window redGoldWindow = new Window( + new RenderText(font, $"Red: {GameContext.InitiativeContext.GetGoldForTeam(Team.Red)}G"), + TeamUtility.DetermineTeamColor(Team.Red)); + + + bool blueIsFirst = GameContext.InitiativeContext.TeamWithFewerRemainingUnits() == Team.Blue; + IRenderable firstIcon = MiscIconProvider.GetMiscIcon(MiscIcon.First, GameDriver.CellSizeVector); + IRenderable secondIcon = MiscIconProvider.GetMiscIcon(MiscIcon.Second, GameDriver.CellSizeVector); + + WindowContentGrid teamGoldWindowContentGrid = new WindowContentGrid( + new[,] + { + { + blueIsFirst ? firstIcon : secondIcon, + blueGoldWindow, + ObjectiveIconProvider.GetObjectiveIcon( + VictoryConditions.Taxes, + GameDriver.CellSizeVector + ), + redGoldWindow, + blueIsFirst ? secondIcon : firstIcon + } + }, + 2, + HorizontalAlignment.Centered + ); + + return new Window(teamGoldWindowContentGrid, BlankTerrainWindowColor); + } + public void GenerateActionMenus() { - Color windowColour = TeamUtility.DetermineTeamColor(GameContext.ActiveUnit.Team); - GenerateActionMenu(windowColour); - GenerateInventoryMenu(windowColour); + Color windowColor = TeamUtility.DetermineTeamColor(GameContext.ActiveTeam); + + IMenu contextMenu = BuildContextMenu(windowColor); + + List skillOptions = UnitContextualActionMenuContext.ActiveUnitSkillOptions(windowColor); + ActionOption basicAttackOption = skillOptions.FirstOrDefault(option => option.Action is BasicAttack); + ActionOption waitOption = + skillOptions.FirstOrDefault(option => option.Action is Wait || option.Action is Focus); + ActionOption roleOption = + skillOptions.FirstOrDefault(option => option.Action is Shove || option.Action is Sprint); + ActionOption guardOption = skillOptions.FirstOrDefault(option => option.Action is Guard); + skillOptions.Remove(basicAttackOption); + skillOptions.Remove(waitOption); + skillOptions.Remove(roleOption); + skillOptions.Remove(guardOption); + IMenu skillMenu = BuildSkillMenu(skillOptions, windowColor); + + IMenu inventoryMenu = BuildInventoryMenu(windowColor); + + IMenu actionMenu = BuildActionMenu(contextMenu, windowColor, basicAttackOption, skillMenu, inventoryMenu, + roleOption, guardOption, waitOption); + ActionMenuContext = new MenuContext(actionMenu); + VisibleMenu = MenuType.ActionMenu; - GenerateMenuDescriptionWindow(VisibleMenu, windowColour); + GenerateMenuDescriptionWindow(VisibleMenu, windowColor); + } + + private IMenu BuildActionMenu(IMenu contextMenu, Color windowColor, MenuOption basicAttackOption, + IMenu skillMenu, IMenu inventoryMenu, MenuOption roleOption, MenuOption guardOption, MenuOption waitOption) + { + List topLevelOptions = new List(); + + if (contextMenu != null) + { + IRenderable contextMenuIcon = MiscIconProvider.GetMiscIcon(MiscIcon.Context, GameDriver.CellSizeVector); + topLevelOptions.Add(new SubmenuOption(contextMenu, contextMenuIcon, "Context", + "View extra actions that can be performed based on the environment.", windowColor)); + } + + if (basicAttackOption != null) topLevelOptions.Add(basicAttackOption); + + if (skillMenu != null) + { + IRenderable skillMenuIcon = MiscIconProvider.GetMiscIcon(MiscIcon.SkillBook, GameDriver.CellSizeVector); + topLevelOptions.Add(new SubmenuOption(skillMenu, skillMenuIcon, "Skills", + "View unique actions for this unit.", windowColor)); + } + + if (inventoryMenu != null) + { + IRenderable spoilsMenuIcon = MiscIconProvider.GetMiscIcon(MiscIcon.Spoils, GameDriver.CellSizeVector); + topLevelOptions.Add(new SubmenuOption(inventoryMenu, spoilsMenuIcon, "Inventory", + "Use and manage items in this unit's inventory.", windowColor)); + } + + if (roleOption != null) topLevelOptions.Add(roleOption); + if (guardOption != null) topLevelOptions.Add(guardOption); + if (waitOption != null) topLevelOptions.Add(waitOption); + + + IMenu actionMenu = new VerticalMenu(topLevelOptions.ToArray(), cursorSprite, windowColor); + return actionMenu; + } + + private IMenu BuildInventoryMenu(Color windowColor) + { + MenuOption[,] inventoryOptions = UnitContextualActionMenuContext.GenerateInventoryMenuOptions(windowColor); + return (inventoryOptions.Length > 0) + ? new TwoDimensionalMenu(inventoryOptions, cursorSprite, windowColor, + TwoDimensionalMenu.CursorType.Pointer) + : null; } - private void GenerateActionMenu(Color windowColor) + private IMenu BuildSkillMenu(List skillOptions, Color windowColor) { - MenuOption[] options = UnitContextualActionMenuContext.GenerateActionMenuOptions(windowColor); - ActionMenu = new VerticalMenu(options, cursorSprite, windowColor); + IMenu skillMenu = null; + // ReSharper disable once CoVariantArrayConversion + if (skillOptions.Count > 0) skillMenu = new VerticalMenu(skillOptions.ToArray(), cursorSprite, windowColor); + return skillMenu; } - private void GenerateInventoryMenu(Color windowColor) + private IMenu BuildContextMenu(Color windowColor) { - MenuOption[,] options = UnitContextualActionMenuContext.GenerateInventoryMenuOptions(windowColor); - InventoryMenu = - new TwoDimensionalMenu(options, cursorSprite, windowColor, TwoDimensionalMenu.CursorType.Pointer); + // ReSharper disable once CoVariantArrayConversion + MenuOption[] contextOptions = + UnitContextualActionMenuContext.ActiveUnitContextOptions(windowColor).ToArray(); + IMenu contextMenu = null; + if (contextOptions.Length > 0) contextMenu = new VerticalMenu(contextOptions, cursorSprite, windowColor); + return contextMenu; } private void GenerateMenuDescriptionWindow(MenuType menuType, Color windowColor) { - string menuName; RenderText windowText; switch (menuType) { case MenuType.ActionMenu: - menuName = "Unit Actions"; - windowText = new RenderText(AssetManager.HeaderFont, menuName); - break; - case MenuType.InventoryMenu: - menuName = "Inventory"; + const string menuName = "Unit Actions"; windowText = new RenderText(AssetManager.HeaderFont, menuName); break; default: @@ -341,14 +419,12 @@ private void GenerateMenuDescriptionWindow(MenuType menuType, Color windowColor) } - MenuDescriptionWindow = new Window( + MenuHeaderWindow = new Window( new WindowContentGrid( - new[,] + new IRenderable[,] { { - InputIconProvider.GetInputIcon(Input.PreviewUnit, new Vector2(windowText.Height)), - windowText, - InputIconProvider.GetInputIcon(Input.PreviewItem, new Vector2(windowText.Height)) + windowText } }, 3, @@ -361,18 +437,11 @@ private void GenerateMenuDescriptionWindow(MenuType menuType, Color windowColor) public void GenerateCurrentMenuDescription() { - Color windowColour = TeamUtility.DetermineTeamColor(GameContext.ActiveUnit.Team); + Color windowColor = TeamUtility.DetermineTeamColor(GameContext.ActiveTeam); - switch (VisibleMenu) + if (VisibleMenu == MenuType.ActionMenu) { - case MenuType.ActionMenu: - GenerateActionMenuDescription(windowColour); - break; - case MenuType.InventoryMenu: - GenerateInventoryMenuDescription(windowColour); - break; - default: - throw new ArgumentOutOfRangeException(); + GenerateActionMenuDescription(windowColor); } } @@ -380,15 +449,7 @@ public void GenerateCurrentMenuDescription() private void GenerateActionMenuDescription(Color windowColor) { ActionMenuDescriptionWindow = new Window( - UnitContextualActionMenuContext.GetActionDescriptionAtIndex(ActionMenu), - windowColor - ); - } - - private void GenerateInventoryMenuDescription(Color windowColor) - { - InventoryMenuDescriptionWindow = new Window( - UnitContextualActionMenuContext.GetActionDescriptionAtIndex(InventoryMenu), + UnitContextualActionMenuContext.GetActionDescriptionForCurrentMenuOption(ActionMenuContext.CurrentMenu), windowColor ); } @@ -406,7 +467,7 @@ public void SetEntityWindow(MapSlice hoverSlice) { if (EntityWindowHash == hoverSlice.GetHashCode()) return; EntityWindowHash = hoverSlice.GetHashCode(); - EntityWindow = new AnimatedWindow(GenerateEntityWindow(hoverSlice), RightSideWindowAnimation); + EntityWindow = new AnimatedRenderable(GenerateEntityWindow(hoverSlice), RightSideWindowAnimation); } public static Window GenerateEntityWindow(MapSlice hoverSlice) @@ -424,7 +485,7 @@ public static Window GenerateEntityWindow(MapSlice hoverSlice) hoverSlice.TerrainEntity.TerrainInfo, EntityTerrainWindowColor ) as IRenderable - : new RenderBlank() + : RenderBlank.Blank }, { (hoverSlice.ItemEntity != null) @@ -432,26 +493,25 @@ public static Window GenerateEntityWindow(MapSlice hoverSlice) hoverSlice.ItemEntity.TerrainInfo, ItemTerrainWindowColor ) as IRenderable - : new RenderBlank() + : RenderBlank.Blank } - }, - 1); + }); } else { bool canMove = UnitMovingContext.CanEndMoveAtCoordinates(hoverSlice.MapCoordinates); WindowContentGrid noEntityContent = new WindowContentGrid( - new IRenderable[,] + new[,] { { new RenderText(AssetManager.WindowFont, $"[ X: {GameContext.MapCursor.MapCoordinates.X}, Y: {GameContext.MapCursor.MapCoordinates.Y} ]"), - new RenderBlank() + RenderBlank.Blank }, { new RenderText(AssetManager.WindowFont, "None"), - new RenderBlank() + RenderBlank.Blank }, { UnitStatistics.GetSpriteAtlas(Stats.Mv), @@ -472,8 +532,7 @@ public static Window GenerateEntityWindow(MapSlice hoverSlice) BlankTerrainWindowColor ) } - }, - 1); + }); } return new Window(terrainContentGrid, new Color(50, 50, 50, 150)); @@ -490,7 +549,7 @@ public void GenerateInitiativeWindow() GenerateTeamInitiativeWindow(Team.Red); InitiativeWindow = new Window( - new WindowContentGrid(new IRenderable[,] {{BlueTeamWindow, RedTeamWindow}}, 1), + new WindowContentGrid(new IRenderable[,] {{BlueTeamWindow, RedTeamWindow}}), Color.Transparent, HorizontalAlignment.Centered ); @@ -498,11 +557,9 @@ public void GenerateInitiativeWindow() private void GenerateTeamInitiativeWindow(Team team) { - //TODO figure out if we really want this to be hard-coded or determined based on screen size or something const int unitsPerRow = 10; const int initiativeHealthBarHeight = 10; - List unitList = GameContext.Units.FindAll(unit => unit.Team == team); int rows = Convert.ToInt32(Math.Ceiling((float) unitList.Count / unitsPerRow)); @@ -522,7 +579,7 @@ private void GenerateTeamInitiativeWindow(Team team) } else { - unitListGrid[row, column] = new RenderBlank(); + unitListGrid[row, column] = RenderBlank.Blank; } unitIndex++; @@ -556,23 +613,23 @@ public static IRenderable SingleUnitContent(GameUnit unit, int initiativeHealthB { { unit.IsCommander - ? GameUnit.GetCommanderCrown(new Vector2(crownIconSize)) - : new RenderBlank() as IRenderable, + ? MiscIconProvider.GetMiscIcon(MiscIcon.Crown, new Vector2(crownIconSize)) + : RenderBlank.Blank, new RenderText(AssetManager.MapFont, unit.Id) }, { - new RenderBlank(), + RenderBlank.Blank, unit.SmallPortrait }, { - new RenderBlank(), + RenderBlank.Blank, unit.IsCommander ? unit.GetInitiativeCommandPointBar(new Vector2(unit.SmallPortrait.Width, (float) initiativeHealthBarHeight / 2)) - : new RenderBlank() as IRenderable + : RenderBlank.Blank }, { - new RenderBlank(), + RenderBlank.Blank, unit.GetInitiativeHealthBar(new Vector2(unit.SmallPortrait.Width, initiativeHealthBarHeight)) } }; @@ -604,14 +661,14 @@ public void UpdateLeftPortraitAndDetailWindows(GameUnit hoverMapUnit) Window leftUnitStatusWindow = GenerateUnitStatusWindow(hoverMapUnit.StatusEffects, windowColor); Window leftUnitInventoryWindow = GenerateUnitInventoryWindow(hoverMapUnit.InventoryPane, windowColor); - LeftUnitPortraitWindow = new AnimatedWindow(leftUnitPortraitWindow, LeftSideWindowAnimation); - LeftUnitDetailWindow = new AnimatedWindow(leftUnitDetailWindow, LeftSideWindowAnimation); + LeftUnitPortraitWindow = new AnimatedRenderable(leftUnitPortraitWindow, LeftSideWindowAnimation); + LeftUnitDetailWindow = new AnimatedRenderable(leftUnitDetailWindow, LeftSideWindowAnimation); LeftUnitStatusWindow = leftUnitStatusWindow != null - ? new AnimatedWindow(leftUnitStatusWindow, LeftSideWindowAnimation) + ? new AnimatedRenderable(leftUnitStatusWindow, LeftSideWindowAnimation) : null; LeftUnitInventoryWindow = leftUnitInventoryWindow != null - ? new AnimatedWindow(leftUnitInventoryWindow, LeftSideWindowAnimation) + ? new AnimatedRenderable(leftUnitInventoryWindow, LeftSideWindowAnimation) : null; } } @@ -637,13 +694,13 @@ public void UpdateRightPortraitAndDetailWindows(GameUnit hoverMapUnit) Window rightUnitInventoryWindow = GenerateUnitInventoryWindow(hoverMapUnit.InventoryPane, windowColor); - RightUnitPortraitWindow = new AnimatedWindow(rightUnitPortraitWindow, RightSideWindowAnimation); - RightUnitDetailWindow = new AnimatedWindow(rightUnitDetailWindow, RightSideWindowAnimation); + RightUnitPortraitWindow = new AnimatedRenderable(rightUnitPortraitWindow, RightSideWindowAnimation); + RightUnitDetailWindow = new AnimatedRenderable(rightUnitDetailWindow, RightSideWindowAnimation); RightUnitStatusWindow = rightUnitStatusWindow != null - ? new AnimatedWindow(rightUnitStatusWindow, RightSideWindowAnimation) + ? new AnimatedRenderable(rightUnitStatusWindow, RightSideWindowAnimation) : null; RightUnitInventoryWindow = rightUnitInventoryWindow != null - ? new AnimatedWindow(rightUnitInventoryWindow, RightSideWindowAnimation) + ? new AnimatedRenderable(rightUnitInventoryWindow, RightSideWindowAnimation) : null; } } @@ -687,7 +744,7 @@ private static Window GenerateUnitStatusWindow(IReadOnlyList statu ); } - return new Window(new WindowContentGrid(selectedUnitStatuses, 1), windowColor); + return new Window(new WindowContentGrid(selectedUnitStatuses), windowColor); } private static Window GenerateUnitInventoryWindow(IRenderable inventoryPane, Color windowColor) @@ -704,17 +761,8 @@ private Vector2 ActionMenuPosition() { //Center of screen return new Vector2( - GameDriver.ScreenSize.X / 3 - (float) ActionMenu.Width / 2, - (GameDriver.ScreenSize.Y / 2) - ((float) ActionMenu.Height / 2) - ); - } - - private Vector2 InventoryMenuPosition() - { - //Center of screen - return new Vector2( - GameDriver.ScreenSize.X / 3 - (float) InventoryMenu.Width / 2, - (GameDriver.ScreenSize.Y / 2) - ((float) InventoryMenu.Height / 2) + GameDriver.ScreenSize.X / 3 - (float) ActionMenuContext.CurrentMenu.Width / 2, + (GameDriver.ScreenSize.Y / 2) - ((float) ActionMenuContext.CurrentMenu.Height / 2) ); } @@ -722,20 +770,11 @@ private Vector2 ActionMenuDescriptionPosition() { //Right of Action Menu return new Vector2( - WindowEdgeBuffer + ActionMenuPosition().X + ActionMenu.Width, + WindowEdgeBuffer + ActionMenuPosition().X + ActionMenuContext.CurrentMenu.Width, ActionMenuPosition().Y ); } - private Vector2 InventoryMenuDescriptionPosition() - { - //Right of Action Menu - return new Vector2( - WindowEdgeBuffer + InventoryMenuPosition().X + InventoryMenu.Width, - InventoryMenuPosition().Y - ); - } - private Vector2 LeftUnitPortraitWindowPosition() { //Bottom-left, above initiative window @@ -756,20 +795,24 @@ private Vector2 LeftUnitDetailWindowPosition() private Vector2 LeftUnitStatusWindowPosition() { - //Bottom-left, above portrait + float verticalAnchor = (LeftUnitInventoryWindow == null) + ? LeftUnitPortraitWindowPosition().Y + : LeftUnitInventoryWindowPosition().Y; + + //Bottom-left, above portrait/inventory return new Vector2( LeftUnitPortraitWindowPosition().X, - LeftUnitPortraitWindowPosition().Y - LeftUnitStatusWindow.Height - WindowEdgeBuffer + verticalAnchor - LeftUnitStatusWindow.Height - WindowEdgeBuffer ); } private Vector2 LeftUnitInventoryWindowPosition() { - //Bottom-left, right of stats + //Bottom-left, above stats return new Vector2( - LeftUnitDetailWindowPosition().X + LeftUnitDetailWindow.Width + WindowEdgeBuffer, - LeftUnitDetailWindowPosition().Y + LeftUnitDetailWindowPosition().X, + LeftUnitDetailWindowPosition().Y - LeftUnitInventoryWindow.Height ); } @@ -797,20 +840,24 @@ private Vector2 RightUnitDetailWindowPosition() private Vector2 RightUnitStatusWindowPosition() { - //Bottom-right, above portrait + float verticalAnchor = (RightUnitInventoryWindow == null) + ? RightUnitPortraitWindowPosition().Y + : RightUnitInventoryWindowPosition().Y; + + //Bottom-right, above portrait/inventory return new Vector2( RightUnitPortraitWindowPosition().X + RightUnitPortraitWindow.Width - RightUnitStatusWindow.Width, - RightUnitPortraitWindowPosition().Y - RightUnitStatusWindow.Height - WindowEdgeBuffer + verticalAnchor - RightUnitStatusWindow.Height - WindowEdgeBuffer ); } private Vector2 RightUnitInventoryWindowPosition() { - //Bottom-left, right of stats + //Bottom-left, above stats return new Vector2( - RightUnitDetailWindowPosition().X - RightUnitInventoryWindow.Width - WindowEdgeBuffer, - RightUnitDetailWindowPosition().Y + RightUnitDetailWindowPosition().X + RightUnitDetailWindow.Width - RightUnitInventoryWindow.Width, + RightUnitDetailWindowPosition().Y - RightUnitInventoryWindow.Height ); } @@ -833,6 +880,15 @@ private Vector2 EntityWindowPosition() ); } + private Vector2 GoldWindowPosition() + { + //Center, above initiative list + return new Vector2( + GameDriver.ScreenSize.X / 2 - (float) TeamInfoWindow.Width / 2, + InitiativeWindowPosition().Y - TeamInfoWindow.Height + ); + } + private Vector2 ObjectiveWindowPosition() { //Top-left @@ -856,7 +912,7 @@ private Vector2 AdHocDraftMenuPosition() private Vector2 SteamItemMenuPosition() { - return CenterItemOnScreen(StealItemMenu); + return CenterItemOnScreen(TakeItemMenu); } private static Vector2 CenterItemOnScreen(IRenderable item) @@ -869,7 +925,7 @@ private static Vector2 CenterItemOnScreen(IRenderable item) private Vector2 MenuDescriptionWindowPosition(Vector2 menuPosition) { - return menuPosition - new Vector2(0, MenuDescriptionWindow.Height); + return menuPosition - new Vector2(0, MenuHeaderWindow.Height); } #endregion Window Positions @@ -886,6 +942,7 @@ public void Draw(SpriteBatch spriteBatch) if (InitiativeWindow != null) { InitiativeWindow.Draw(spriteBatch, InitiativeWindowPosition()); + TeamInfoWindow?.Draw(spriteBatch, GoldWindowPosition()); if (LeftUnitPortraitWindow != null) { @@ -907,30 +964,20 @@ public void Draw(SpriteBatch spriteBatch) UserPromptWindow?.Draw(spriteBatch, UserPromptWindowPosition()); } - if (ActionMenu != null) + if (ActionMenuContext?.CurrentMenu != null) { - ActionMenu.Draw(spriteBatch, ActionMenuPosition()); + ActionMenuContext.CurrentMenu.Draw(spriteBatch, ActionMenuPosition()); - if (ActionMenu.IsVisible) + if (ActionMenuContext.CurrentMenu.IsVisible) { ActionMenuDescriptionWindow?.Draw(spriteBatch, ActionMenuDescriptionPosition()); - MenuDescriptionWindow?.Draw(spriteBatch, MenuDescriptionWindowPosition(ActionMenuPosition())); - } - } - - if (InventoryMenu != null) - { - InventoryMenu.Draw(spriteBatch, InventoryMenuPosition()); - if (InventoryMenu.IsVisible) - { - InventoryMenuDescriptionWindow?.Draw(spriteBatch, InventoryMenuDescriptionPosition()); - MenuDescriptionWindow?.Draw(spriteBatch, MenuDescriptionWindowPosition(InventoryMenuPosition())); + MenuHeaderWindow?.Draw(spriteBatch, MenuDescriptionWindowPosition(ActionMenuPosition())); } } ObjectiveWindow?.Draw(spriteBatch, ObjectiveWindowPosition()); AdHocDraftMenu?.Draw(spriteBatch, AdHocDraftMenuPosition()); - StealItemMenu?.Draw(spriteBatch, SteamItemMenuPosition()); + TakeItemMenu?.Draw(spriteBatch, SteamItemMenuPosition()); } } } \ No newline at end of file diff --git a/SolStandard/Containers/View/MapSelectScreenView.cs b/SolStandard/Containers/View/MapSelectScreenView.cs index eb6090b0..b49785c8 100644 --- a/SolStandard/Containers/View/MapSelectScreenView.cs +++ b/SolStandard/Containers/View/MapSelectScreenView.cs @@ -14,7 +14,7 @@ namespace SolStandard.Containers.View public class MapSelectScreenView : IUserInterface { private Window instructionWindow; - private AnimatedWindow mapInfoWindow; + private AnimatedRenderable mapInfoWindow; private Window teamSelectWindow; private const int WindowSlideSpeed = 40; @@ -32,8 +32,8 @@ public MapSelectScreenView() SetUpWindows(); } - private static IWindowAnimation LeftSideWindowAnimation => - new WindowSlide(WindowSlide.SlideDirection.Right, WindowSlideDistance, WindowSlideSpeed); + private static IRenderableAnimation LeftSideWindowAnimation => + new RenderableSlide(RenderableSlide.SlideDirection.Right, WindowSlideDistance, WindowSlideSpeed); private void SetUpWindows() { @@ -46,8 +46,8 @@ private void SetUpWindows() new RenderText(AssetManager.WindowFont, "Select a map! Move the cursor to the crossed swords and press "), InputIconProvider.GetInputIcon(Input.Confirm, iconSize), - new RenderBlank(), - new RenderBlank(), + RenderBlank.Blank, + RenderBlank.Blank, }, { new RenderText(AssetManager.WindowFont, "Toggle between maps with"), @@ -55,15 +55,14 @@ private void SetUpWindows() new RenderText(AssetManager.WindowFont, "and"), InputIconProvider.GetInputIcon(Input.TabRight, iconSize), } - }, - 1 + } ); instructionWindow = new Window(instructionContentGrid, InstructionWindowColor); mapInfoWindow = - new AnimatedWindow(new Window(new RenderBlank(), MapInfoWindowColor), LeftSideWindowAnimation); + new AnimatedRenderable(new Window(RenderBlank.Blank, MapInfoWindowColor), LeftSideWindowAnimation); } public void UpdateTeamSelectWindow() @@ -132,7 +131,7 @@ public void UpdateMapInfoWindow(IRenderable terrainInfo) { mapInfoWindow = terrainInfo == null ? null - : new AnimatedWindow(new Window(terrainInfo, MapInfoWindowColor, HorizontalAlignment.Right), + : new AnimatedRenderable(new Window(terrainInfo, MapInfoWindowColor, HorizontalAlignment.Right), LeftSideWindowAnimation); } diff --git a/SolStandard/Containers/View/StatusScreenView.cs b/SolStandard/Containers/View/StatusScreenView.cs index c031ddfb..9fffadb2 100644 --- a/SolStandard/Containers/View/StatusScreenView.cs +++ b/SolStandard/Containers/View/StatusScreenView.cs @@ -73,7 +73,7 @@ private void GenerateBlueTeamLeaderPortraitWindow() IRenderable[,] blueLeaderContent = LeaderContent(FindTeamLeader(Team.Blue)); BlueTeamLeaderPortrait = new Window( - new WindowContentGrid(blueLeaderContent, 1), + new WindowContentGrid(blueLeaderContent), TeamUtility.DetermineTeamColor(Team.Blue) ); } @@ -95,8 +95,7 @@ private void GenerateBlueTeamResultWindow(string windowText) { new RenderText(AssetManager.ResultsFont, windowText) } - }, - 1 + } ), TeamUtility.DetermineTeamColor(Team.Blue) ); @@ -107,7 +106,7 @@ private void GenerateRedTeamLeaderPortraitWindow() IRenderable[,] redLeaderContent = LeaderContent(FindTeamLeader(Team.Red)); RedTeamLeaderPortrait = new Window( - new WindowContentGrid(redLeaderContent, 1), + new WindowContentGrid(redLeaderContent), TeamUtility.DetermineTeamColor(Team.Red) ); } @@ -129,8 +128,7 @@ private void GenerateRedTeamResultWindow(string windowText) { new RenderText(AssetManager.ResultsFont, windowText) } - }, - 1 + } ), TeamUtility.DetermineTeamColor(Team.Red) ); @@ -174,30 +172,29 @@ private static GameUnit FindTeamLeader(Team team) { { unit.IsCommander - ? GameUnit.GetCommanderCrown(new Vector2(crownIconSize)) - : new RenderBlank() as IRenderable, + ? MiscIconProvider.GetMiscIcon(MiscIcon.Crown, new Vector2(crownIconSize)) + : RenderBlank.Blank, new RenderText(AssetManager.WindowFont, unit.Id) }, { - new RenderBlank(), + RenderBlank.Blank, portraitToUse }, { - new RenderBlank(), + RenderBlank.Blank, unit.GetResultsHealthBar(new Vector2(portraitToUse.Width, unitListHealthBarHeight)) }, { - new RenderBlank(), + RenderBlank.Blank, new Window( new WindowContentGrid( new IRenderable[,] { { - new SpriteAtlas(AssetManager.GoldIcon, GameDriver.CellSizeVector), - new RenderText(AssetManager.WindowFont, unit.CurrentGold + "G") + MiscIconProvider.GetMiscIcon(MiscIcon.Gold, GameDriver.CellSizeVector), + new RenderText(AssetManager.WindowFont, unit.CurrentBounty + "G") } - }, - 1 + } ), TeamUtility.DetermineTeamColor(unit.Team) ) diff --git a/SolStandard/Content/Content.mgcb b/SolStandard/Content/Content.mgcb index 2122f03f..7ec066ee 100644 --- a/SolStandard/Content/Content.mgcb +++ b/SolStandard/Content/Content.mgcb @@ -1732,6 +1732,30 @@ /processorParam:TextureFormat=Color /build:Graphics/Images/Dice/AttackDiceAtlas.png +#begin Graphics/Images/Icons/Misc/1st.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Graphics/Images/Icons/Misc/1st.png + +#begin Graphics/Images/Icons/Misc/2nd.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Graphics/Images/Icons/Misc/2nd.png + #begin Graphics/Images/Icons/Misc/AuraAttack.png /importer:TextureImporter /processor:TextureProcessor @@ -1816,6 +1840,18 @@ /processorParam:TextureFormat=Color /build:Graphics/Images/Icons/Misc/CommanderCrown.png +#begin Graphics/Images/Icons/Misc/Context.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Graphics/Images/Icons/Misc/Context.png + #begin Graphics/Images/Icons/Misc/Damage.png /importer:TextureImporter /processor:TextureProcessor @@ -1900,6 +1936,18 @@ /processorParam:TextureFormat=Color /build:Graphics/Images/Icons/Misc/IceTrap.png +#begin Graphics/Images/Icons/Misc/Independent.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Graphics/Images/Icons/Misc/Independent.png + #begin Graphics/Images/Icons/Misc/Interact.png /importer:TextureImporter /processor:TextureProcessor @@ -1996,6 +2044,18 @@ /processorParam:TextureFormat=Color /build:Graphics/Images/Icons/Misc/RecoverHealth.png +#begin Graphics/Images/Icons/Misc/SkillBook.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Graphics/Images/Icons/Misc/SkillBook.png + #begin Graphics/Images/Icons/Misc/SongAura.png /importer:TextureImporter /processor:TextureProcessor @@ -3772,6 +3832,18 @@ /processorParam:TextureFormat=Color /build:Graphics/Map/MapPreviews/Draft_Grassland_01.png +#begin Graphics/Map/MapPreviews/Draft_Grassland_02.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Graphics/Map/MapPreviews/Draft_Grassland_02.png + #begin Graphics/Map/MapPreviews/Draft_Hiatok_Fortress.png /importer:TextureImporter /processor:TextureProcessor diff --git a/SolStandard/Content/TmxMaps/00_DRAFT_TEMPLATE.tmx b/SolStandard/Content/TmxMaps/00_DRAFT_TEMPLATE.tmx index b4bd8184..aef1101e 100644 --- a/SolStandard/Content/TmxMaps/00_DRAFT_TEMPLATE.tmx +++ b/SolStandard/Content/TmxMaps/00_DRAFT_TEMPLATE.tmx @@ -1,5 +1,5 @@ - + @@ -2032,7 +2032,7 @@ - + @@ -2040,20 +2040,27 @@ - + - + + + + + + - + - + - + + + @@ -2070,7 +2077,7 @@ - + @@ -2080,7 +2087,6 @@ - @@ -2095,7 +2101,6 @@ - @@ -2105,7 +2110,7 @@ - + @@ -2119,7 +2124,7 @@ - + @@ -2127,14 +2132,9 @@ - + - - - - - - + diff --git a/SolStandard/Content/TmxMaps/Chesslike_01.tmx b/SolStandard/Content/TmxMaps/Chesslike_01.tmx deleted file mode 100644 index d626a26b..00000000 --- a/SolStandard/Content/TmxMaps/Chesslike_01.tmx +++ /dev/null @@ -1,1826 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Debug_01.tmx b/SolStandard/Content/TmxMaps/Debug_01.tmx index 20b508d0..bbb6bc15 100644 --- a/SolStandard/Content/TmxMaps/Debug_01.tmx +++ b/SolStandard/Content/TmxMaps/Debug_01.tmx @@ -1,5 +1,5 @@ - + @@ -7,6 +7,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -34,48 +100,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + @@ -90,366 +119,439 @@ + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -458,15 +560,60 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - @@ -477,26 +624,8 @@ - - - - - - - - - - - - - - - - - - @@ -507,27 +636,7 @@ - - - - - - - - - - - - - - - - - - - - @@ -538,49 +647,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -647,10 +717,6 @@ - - - - @@ -831,6 +897,10 @@ + + + + @@ -862,9 +932,6 @@ - - - @@ -894,9 +961,6 @@ - - - @@ -926,9 +990,6 @@ - - - @@ -958,9 +1019,6 @@ - - - @@ -990,9 +1048,6 @@ - - - @@ -1022,9 +1077,6 @@ - - - @@ -1045,18 +1097,8 @@ - - - - - - - - - - @@ -1077,18 +1119,8 @@ - - - - - - - - - - @@ -1109,18 +1141,6 @@ - - - - - - - - - - - - @@ -1141,16 +1161,6 @@ - - - - - - - - - - @@ -1173,16 +1183,6 @@ - - - - - - - - - - @@ -1328,10 +1328,6 @@ - - - - @@ -1347,24 +1343,57 @@ + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1379,26 +1408,9 @@ - - - - - - - - - - - - - - - - - - + @@ -1407,26 +1419,19 @@ + + + + + + + - - - - - - - - - - - - - - @@ -1437,6 +1442,7 @@ + @@ -1445,20 +1451,13 @@ - - - - - - - - - - + + + @@ -1475,26 +1474,24 @@ + - - - - - - - + + + + + + - - + + - - @@ -1509,24 +1506,22 @@ + - - - - - - - - - + + + + + + @@ -1543,22 +1538,25 @@ + + + + + + + - - - + - - @@ -1578,15 +1576,17 @@ - - - - + + + + + - - + + + @@ -1611,14 +1611,13 @@ + - - - + @@ -1643,14 +1642,14 @@ - - - - + + + + @@ -1676,20 +1675,13 @@ + - - - - - - - - - + @@ -1706,27 +1698,27 @@ + + + + + + + + - - - - + - - - - - @@ -1738,27 +1730,27 @@ + + + + + + + + - - + + - - - - + - - - - - @@ -1770,18 +1762,25 @@ + + + + + + + + + - + - - @@ -1798,26 +1797,19 @@ - - - - - - - - - - - - - - + + + + + + + @@ -1828,25 +1820,9 @@ - - - - - - - - - - - - - - - - @@ -1859,16 +1835,40 @@ - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1876,9 +1876,18 @@ - - - + + + + + + + + + + + + @@ -1926,421 +1935,478 @@ - - - - - - - - - - + - + - + - + - - + + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - + + - - + + - + - + - + - + + - + + - + - + - + - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + - + + + - + - + - + - + + + - + - + - + - + + - + - - + - - + - + + - + - + - + - + - - + - - + - + - + + - + - + + - + - + + - + - + + - + - + + - + - - - - + + - + - - - - + + - - - + - + + - + + + - - + + @@ -2348,46 +2414,46 @@ - + - + - - + + - + - + - + - + @@ -2395,7 +2461,7 @@ - + @@ -2403,7 +2469,7 @@ - + @@ -2411,25 +2477,25 @@ - - - + + + - + - + - - + + @@ -2465,40 +2531,45 @@ - + - - + - + - + - + - + + + + + + + @@ -2518,385 +2589,396 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - - + + - + - - - - - - - - - - - - - - - - - - - + + + + - + - + - + - - - - - - - - - - - - - - + - + - + - - + + + - + - - + + + - + - + - + - + + + - + - + - + - + - - - + + - + - - - - - - - + - - - - - - + + - + - - - - - + + - + - - - - - - + + - + - - - - - - + + - + - + - + - + - + - + - + - + - + - - + + + - + - + - + - + - + - + + - + - - + + - + - + - + - - + + - + - - + - + - - + - - - + + - - - - - + - - - - - - - - - - + + - + - - - - - - - - - + + @@ -2948,7 +3030,6 @@ - @@ -2981,6 +3062,7 @@ + diff --git a/SolStandard/Content/TmxMaps/Debug_02.tmx b/SolStandard/Content/TmxMaps/Debug_02.tmx index e03dc0b5..70ee63a6 100644 --- a/SolStandard/Content/TmxMaps/Debug_02.tmx +++ b/SolStandard/Content/TmxMaps/Debug_02.tmx @@ -1,5 +1,5 @@ - + diff --git a/SolStandard/Content/TmxMaps/Debug_03_AI.tmx b/SolStandard/Content/TmxMaps/Debug_03_AI.tmx index fc328e45..a5441837 100644 --- a/SolStandard/Content/TmxMaps/Debug_03_AI.tmx +++ b/SolStandard/Content/TmxMaps/Debug_03_AI.tmx @@ -1,5 +1,5 @@ - + @@ -1983,6 +1983,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2190,50 +2242,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2254,24 +2262,6 @@ - - - - - - - - - - - - - - - - - - @@ -2283,43 +2273,19 @@ - - - - - - - - - - - - - + - - - - - - - + - - - - - - - + diff --git a/SolStandard/Content/TmxMaps/Draft_01_Arena.tmx b/SolStandard/Content/TmxMaps/Draft_01_Arena.tmx deleted file mode 100644 index 18143b0d..00000000 --- a/SolStandard/Content/TmxMaps/Draft_01_Arena.tmx +++ /dev/null @@ -1,4012 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Draft_02_Dungeon.tmx b/SolStandard/Content/TmxMaps/Draft_02_Dungeon.tmx deleted file mode 100644 index fc23c852..00000000 --- a/SolStandard/Content/TmxMaps/Draft_02_Dungeon.tmx +++ /dev/null @@ -1,4327 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Draft_Arena_Dungeon_01.tmx b/SolStandard/Content/TmxMaps/Draft_Arena_Dungeon_01.tmx deleted file mode 100644 index 6cb1166e..00000000 --- a/SolStandard/Content/TmxMaps/Draft_Arena_Dungeon_01.tmx +++ /dev/null @@ -1,4486 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Draft_Arena_Dungeon_02.tmx b/SolStandard/Content/TmxMaps/Draft_Arena_Dungeon_02.tmx index e06e4875..395ac54e 100644 --- a/SolStandard/Content/TmxMaps/Draft_Arena_Dungeon_02.tmx +++ b/SolStandard/Content/TmxMaps/Draft_Arena_Dungeon_02.tmx @@ -1,5 +1,5 @@ - + @@ -1687,8 +1687,8 @@ - - + + @@ -2299,7 +2299,7 @@ - + @@ -2314,11 +2314,10 @@ - + - @@ -2476,11 +2475,6 @@ - - - - - @@ -2587,7 +2581,6 @@ - @@ -2750,85 +2743,78 @@ - - - - - - - - - - - - - + - + - + - - + - + - - - - - - - + - + - + - + - + - + - + + - + + + - - + + + + + + + + + + + @@ -2903,6 +2889,11 @@ + + + + + @@ -2979,6 +2970,7 @@ + @@ -3020,12 +3012,12 @@ - + - + @@ -3040,7 +3032,7 @@ - + @@ -3065,22 +3057,31 @@ - + - + - - + + + + + + + + + + + @@ -3088,27 +3089,18 @@ + - + - + - + - - - - - - - - - - - + @@ -3127,6 +3119,7 @@ + @@ -3138,6 +3131,7 @@ + @@ -3360,8 +3354,8 @@ - - + + diff --git a/SolStandard/Content/TmxMaps/Draft_Arena_Grassland_01.tmx b/SolStandard/Content/TmxMaps/Draft_Arena_Grassland_01.tmx deleted file mode 100644 index 762cf766..00000000 --- a/SolStandard/Content/TmxMaps/Draft_Arena_Grassland_01.tmx +++ /dev/null @@ -1,3893 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Draft_Arena_Tower_01.tmx b/SolStandard/Content/TmxMaps/Draft_Arena_Tower_01.tmx deleted file mode 100644 index 6b34a1b7..00000000 --- a/SolStandard/Content/TmxMaps/Draft_Arena_Tower_01.tmx +++ /dev/null @@ -1,6486 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Draft_Arena_Tower_02.tmx b/SolStandard/Content/TmxMaps/Draft_Arena_Tower_02.tmx index 4d68bbc4..38cdb4a8 100644 --- a/SolStandard/Content/TmxMaps/Draft_Arena_Tower_02.tmx +++ b/SolStandard/Content/TmxMaps/Draft_Arena_Tower_02.tmx @@ -1,5 +1,5 @@ - + @@ -4503,7 +4503,7 @@ - + @@ -4514,101 +4514,94 @@ - - - - - - - - + - - - - + - + - - - + - + - - - - + + - + + + - + - - - + + - + - + + - + - + - - + - - - + + + - + + - + - + - + + + - + - - + + - + - - - + + + + - + - - + + + + - + diff --git a/SolStandard/Content/TmxMaps/Draft_Arena_Tropical_01.tmx b/SolStandard/Content/TmxMaps/Draft_Arena_Tropical_01.tmx index 4f050f36..c3d83f81 100644 --- a/SolStandard/Content/TmxMaps/Draft_Arena_Tropical_01.tmx +++ b/SolStandard/Content/TmxMaps/Draft_Arena_Tropical_01.tmx @@ -1,5 +1,5 @@ - + @@ -286,8 +286,9 @@ - - + + + @@ -305,7 +306,6 @@ - @@ -318,9 +318,8 @@ - - - + + @@ -337,7 +336,8 @@ - + + @@ -351,7 +351,6 @@ - @@ -369,7 +368,8 @@ - + + @@ -401,7 +401,7 @@ - + @@ -1542,7 +1542,7 @@ - + @@ -1574,8 +1574,8 @@ - - + + @@ -1593,9 +1593,12 @@ - - - + + + + + + @@ -1604,10 +1607,7 @@ - - - @@ -1625,9 +1625,6 @@ - - - @@ -1636,10 +1633,13 @@ - - - - + + + + + + + @@ -1657,7 +1657,7 @@ - + @@ -1689,7 +1689,7 @@ - + @@ -2401,7 +2401,7 @@ - + @@ -2466,85 +2466,38 @@ - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - + - + - + - + @@ -2569,85 +2522,71 @@ - - - + - - - - - - + - + - - - + - + - - - - + - + - - - + - + - - - - + + + - + - + + + - + - - - + + + + - + - - + + + + - + + + - - - - + - + - - - + - + - - + @@ -2719,8 +2658,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -2807,7 +2803,7 @@ - + @@ -2892,11 +2888,6 @@ - - - - - @@ -2912,7 +2903,7 @@ - + diff --git a/SolStandard/Content/TmxMaps/Draft_Bellriver_Tavern_02.tmx b/SolStandard/Content/TmxMaps/Draft_Bellriver_Tavern_02.tmx index fb2b10dc..f41b226a 100644 --- a/SolStandard/Content/TmxMaps/Draft_Bellriver_Tavern_02.tmx +++ b/SolStandard/Content/TmxMaps/Draft_Bellriver_Tavern_02.tmx @@ -1,5 +1,5 @@ - + @@ -2353,11 +2353,13 @@ + + @@ -2395,11 +2397,13 @@ + + @@ -2438,19 +2442,11 @@ - - - - - - - - - + @@ -2833,8 +2829,18 @@ + + + + + + + + + + - + @@ -2883,7 +2889,7 @@ - + @@ -3029,7 +3035,7 @@ - + @@ -3064,7 +3070,7 @@ - + diff --git a/SolStandard/Content/TmxMaps/Draft_Crossroads.tmx b/SolStandard/Content/TmxMaps/Draft_Crossroads.tmx deleted file mode 100644 index 7fb93c3b..00000000 --- a/SolStandard/Content/TmxMaps/Draft_Crossroads.tmx +++ /dev/null @@ -1,5142 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Draft_Dimpimple_Beach.tmx b/SolStandard/Content/TmxMaps/Draft_Dimpimple_Beach.tmx deleted file mode 100644 index 93bf3a78..00000000 --- a/SolStandard/Content/TmxMaps/Draft_Dimpimple_Beach.tmx +++ /dev/null @@ -1,3403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Draft_Dusk_Temple.tmx b/SolStandard/Content/TmxMaps/Draft_Dusk_Temple.tmx index 5b2ef8aa..4a654a05 100644 --- a/SolStandard/Content/TmxMaps/Draft_Dusk_Temple.tmx +++ b/SolStandard/Content/TmxMaps/Draft_Dusk_Temple.tmx @@ -1,5 +1,5 @@ - + @@ -1056,7 +1056,7 @@ - + @@ -1080,7 +1080,7 @@ - + @@ -1253,7 +1253,7 @@ - + @@ -1277,7 +1277,7 @@ - + @@ -1458,10 +1458,6 @@ - - - - @@ -1700,62 +1696,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -2076,6 +2072,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -2120,6 +2140,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2133,12 +2183,12 @@ - + - + @@ -2193,32 +2243,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Draft_Escape_Prison.tmx b/SolStandard/Content/TmxMaps/Draft_Escape_Prison.tmx index cf72dcac..29cb832c 100644 --- a/SolStandard/Content/TmxMaps/Draft_Escape_Prison.tmx +++ b/SolStandard/Content/TmxMaps/Draft_Escape_Prison.tmx @@ -1,5 +1,5 @@ - + @@ -2322,7 +2322,7 @@ - + @@ -2352,7 +2352,7 @@ - + @@ -2483,7 +2483,6 @@ - @@ -2536,7 +2535,7 @@ - + @@ -2581,12 +2580,6 @@ - - - - - - @@ -3056,7 +3049,7 @@ - + @@ -3072,10 +3065,10 @@ - + - + @@ -3544,7 +3537,7 @@ - + diff --git a/SolStandard/Content/TmxMaps/Draft_Factory_Floor.tmx b/SolStandard/Content/TmxMaps/Draft_Factory_Floor.tmx index 665e3e74..f1770f09 100644 --- a/SolStandard/Content/TmxMaps/Draft_Factory_Floor.tmx +++ b/SolStandard/Content/TmxMaps/Draft_Factory_Floor.tmx @@ -1,11 +1,11 @@ - + - + @@ -721,9 +721,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -914,7 +948,7 @@ - + @@ -948,7 +982,7 @@ - + @@ -1053,8 +1087,8 @@ - - + + @@ -1087,12 +1121,12 @@ + + - - - - + + @@ -1125,8 +1159,8 @@ - - + + @@ -1439,9 +1473,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -1511,7 +1579,7 @@ - + @@ -1544,8 +1612,8 @@ - - + + @@ -1578,8 +1646,8 @@ - - + + @@ -1612,8 +1680,8 @@ - - + + @@ -1646,8 +1714,8 @@ - - + + @@ -1680,8 +1748,8 @@ - - + + @@ -1714,8 +1782,8 @@ - - + + @@ -1748,8 +1816,8 @@ - - + + @@ -1782,8 +1850,8 @@ - - + + @@ -1816,8 +1884,8 @@ - - + + @@ -1850,8 +1918,8 @@ - - + + @@ -1884,8 +1952,8 @@ - - + + @@ -1898,8 +1966,8 @@ - - + + @@ -1918,8 +1986,8 @@ - - + + @@ -1933,7 +2001,7 @@ - + @@ -1952,8 +2020,8 @@ - - + + @@ -1967,7 +2035,7 @@ - + @@ -1986,8 +2054,8 @@ - - + + @@ -2001,7 +2069,7 @@ - + @@ -2020,8 +2088,8 @@ - - + + @@ -2035,7 +2103,7 @@ - + @@ -2054,8 +2122,8 @@ - - + + @@ -2069,7 +2137,7 @@ - + @@ -2088,8 +2156,8 @@ - - + + @@ -2103,7 +2171,7 @@ - + @@ -2122,8 +2190,8 @@ - - + + @@ -2137,7 +2205,7 @@ - + @@ -2156,6 +2224,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2181,7 +2283,7 @@ - + @@ -2260,45 +2362,27 @@ - + - - - - - - - - - - - - - - - - - - - + - + - + - + @@ -2420,8 +2504,6 @@ - - @@ -2522,9 +2604,9 @@ - + - + @@ -2861,6 +2943,26 @@ + + + + + + + + + + + + + + + + + + + + @@ -2968,7 +3070,6 @@ - @@ -2979,7 +3080,6 @@ - @@ -2989,7 +3089,6 @@ - @@ -3043,7 +3142,7 @@ - + @@ -3060,11 +3159,11 @@ - - - - - + + + + + @@ -3094,11 +3193,11 @@ - - - - - + + + + + @@ -3338,10 +3437,10 @@ - - - - + + + + @@ -3372,14 +3471,14 @@ - - - - - - - - + + + + + + + + @@ -3410,11 +3509,10 @@ - - - - - + + + + @@ -3463,8 +3561,17 @@ + + + + + + + + + @@ -3488,8 +3595,17 @@ + + + + + + + + + @@ -3512,6 +3628,7 @@ + @@ -3525,6 +3642,7 @@ + @@ -3543,12 +3661,11 @@ - + - @@ -3559,6 +3676,7 @@ + @@ -3573,16 +3691,15 @@ + - - @@ -3592,7 +3709,6 @@ - @@ -3609,6 +3725,8 @@ + + @@ -3626,7 +3744,24 @@ - + + + + + + + + + + + + + + + + + + @@ -3653,8 +3788,6 @@ - - diff --git a/SolStandard/Content/TmxMaps/Draft_Ferdinand_City.tmx b/SolStandard/Content/TmxMaps/Draft_Ferdinand_City.tmx deleted file mode 100644 index c62d65f8..00000000 --- a/SolStandard/Content/TmxMaps/Draft_Ferdinand_City.tmx +++ /dev/null @@ -1,4017 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Draft_Fortress_01.tmx b/SolStandard/Content/TmxMaps/Draft_Fortress_01.tmx deleted file mode 100644 index 895348ae..00000000 --- a/SolStandard/Content/TmxMaps/Draft_Fortress_01.tmx +++ /dev/null @@ -1,5776 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Draft_Fortress_02.tmx b/SolStandard/Content/TmxMaps/Draft_Fortress_02.tmx index c7142317..5ac08175 100644 --- a/SolStandard/Content/TmxMaps/Draft_Fortress_02.tmx +++ b/SolStandard/Content/TmxMaps/Draft_Fortress_02.tmx @@ -1,5 +1,5 @@ - + @@ -2104,8 +2104,8 @@ - + @@ -2438,7 +2438,9 @@ - + + + diff --git a/SolStandard/Content/TmxMaps/Draft_Grassland_01.tmx b/SolStandard/Content/TmxMaps/Draft_Grassland_01.tmx index ce43c6d6..b4a3e196 100644 --- a/SolStandard/Content/TmxMaps/Draft_Grassland_01.tmx +++ b/SolStandard/Content/TmxMaps/Draft_Grassland_01.tmx @@ -1,655 +1,655 @@ - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -750,17 +750,17 @@ - - - - - - - - - - - + + + + + + + + + + + @@ -782,17 +782,17 @@ - - - - - - - - - - - + + + + + + + + + + + @@ -814,16 +814,16 @@ - - - - - - - - - - + + + + + + + + + + @@ -846,14 +846,14 @@ - - - - - - - - + + + + + + + + @@ -878,13 +878,13 @@ - - - - - - - + + + + + + + @@ -910,12 +910,12 @@ - - - - - - + + + + + + @@ -942,11 +942,11 @@ - - - - - + + + + + @@ -974,10 +974,10 @@ - - - - + + + + @@ -1006,9 +1006,9 @@ - - - + + + @@ -1038,8 +1038,8 @@ - - + + @@ -1070,8 +1070,8 @@ - - + + @@ -1102,7 +1102,7 @@ - + @@ -1134,7 +1134,7 @@ - + @@ -1166,7 +1166,7 @@ - + @@ -1198,7 +1198,7 @@ - + @@ -1390,38 +1390,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1490,80 +1490,80 @@ - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -1572,28 +1572,28 @@ - + - - - + + + - - - - - - - - - - - + + + + + + + + + + + @@ -1604,27 +1604,27 @@ - - + + - - - + + + - - - - - - - - - - + + + + + + + + + + @@ -1637,25 +1637,25 @@ - + - + - - - - - - - - + + + + + + + + @@ -1663,14 +1663,14 @@ - - - + + + - - + + @@ -1682,11 +1682,11 @@ - - - - - + + + + + @@ -1695,10 +1695,10 @@ - - - - + + + + @@ -1710,14 +1710,14 @@ - - - - - - - - + + + + + + + + @@ -1728,9 +1728,9 @@ - - - + + + @@ -1745,10 +1745,10 @@ - - - - + + + + @@ -1768,18 +1768,18 @@ - - + + - - - - - + + + + + @@ -1792,8 +1792,8 @@ - - + + @@ -1807,11 +1807,11 @@ - - - - - + + + + + @@ -1819,13 +1819,13 @@ - - + + - - + + @@ -1840,9 +1840,9 @@ - - - + + + @@ -1851,8 +1851,8 @@ - - + + @@ -1865,16 +1865,16 @@ - - - + + + - + @@ -1899,21 +1899,21 @@ - - + + - - - - + + + + - - - - + + + + @@ -1938,18 +1938,18 @@ - + - - - - - + + + + + - + @@ -1973,8 +1973,8 @@ - - + + @@ -1989,8 +1989,8 @@ - - + + @@ -1998,7 +1998,7 @@ - + @@ -2016,13 +2016,13 @@ - - + + - - + + @@ -2031,9 +2031,9 @@ - - - + + + @@ -2048,8 +2048,8 @@ - - + + @@ -2062,170 +2062,170 @@ - - - - + + + + - - - + + + - - - + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2270,47 +2270,47 @@ - + - + - + - + - + - + - + - + - + @@ -2385,201 +2385,201 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2589,7 +2589,7 @@ - + @@ -2601,7 +2601,7 @@ - + @@ -2610,13 +2610,13 @@ - + - + @@ -2624,13 +2624,13 @@ - + - + @@ -2639,7 +2639,7 @@ - + @@ -2647,7 +2647,7 @@ - + @@ -2655,7 +2655,7 @@ - + @@ -2663,7 +2663,7 @@ - + @@ -2671,7 +2671,7 @@ - + @@ -2794,7 +2794,7 @@ - + @@ -2945,7 +2945,7 @@ - + @@ -3071,7 +3071,7 @@ - + @@ -3110,7 +3110,7 @@ - + @@ -3190,7 +3190,7 @@ - + diff --git a/SolStandard/Content/TmxMaps/Draft_Grassland_02.tmx b/SolStandard/Content/TmxMaps/Draft_Grassland_02.tmx new file mode 100644 index 00000000..90077d3d --- /dev/null +++ b/SolStandard/Content/TmxMaps/Draft_Grassland_02.tmx @@ -0,0 +1,4604 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SolStandard/Content/TmxMaps/Draft_Hiatok_Fortress.tmx b/SolStandard/Content/TmxMaps/Draft_Hiatok_Fortress.tmx index 5c2414e3..77a7aecd 100644 --- a/SolStandard/Content/TmxMaps/Draft_Hiatok_Fortress.tmx +++ b/SolStandard/Content/TmxMaps/Draft_Hiatok_Fortress.tmx @@ -2387,7 +2387,7 @@ - + diff --git a/SolStandard/Content/TmxMaps/Draft_Island_Coast.tmx b/SolStandard/Content/TmxMaps/Draft_Island_Coast.tmx index 63b74674..c9eed6c3 100644 --- a/SolStandard/Content/TmxMaps/Draft_Island_Coast.tmx +++ b/SolStandard/Content/TmxMaps/Draft_Island_Coast.tmx @@ -1,994 +1,995 @@ - - + + - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1053,7 +1054,7 @@ - + @@ -1119,7 +1120,7 @@ - + @@ -1160,7 +1161,7 @@ - + @@ -1222,7 +1223,7 @@ - + @@ -1235,7 +1236,7 @@ - + @@ -1308,11 +1309,11 @@ - + - + @@ -1342,7 +1343,7 @@ - + @@ -1402,7 +1403,7 @@ - + @@ -1417,10 +1418,10 @@ - - + + - + @@ -1452,7 +1453,7 @@ - + @@ -1466,7 +1467,7 @@ - + @@ -1487,13 +1488,13 @@ - + - + @@ -1503,7 +1504,7 @@ - + @@ -1630,16 +1631,16 @@ - - - + + + - + @@ -1650,7 +1651,7 @@ - + @@ -1668,7 +1669,7 @@ - + @@ -1701,11 +1702,11 @@ - + - - + + @@ -1749,13 +1750,13 @@ - + - + @@ -1773,7 +1774,7 @@ - + @@ -1805,7 +1806,7 @@ - + @@ -1841,8 +1842,8 @@ - - + + @@ -1977,191 +1978,187 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - - + + + - + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + - - + - + + + - - - - - - - - - - - - + + + + + + + + + + + + @@ -2181,22 +2178,22 @@ - - - - - - - - - - - - + + + + + + + + + + + + @@ -2205,170 +2202,173 @@ - + - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - + + + + + - - + + @@ -2376,12 +2376,12 @@ - - - - - + + + + + @@ -2389,16 +2389,16 @@ - - - - - - - - + + + + + + + + @@ -2411,30 +2411,30 @@ - - - - - - + + + + + + - + - - - - - - - - - + + + + + + + + + @@ -2445,12 +2445,12 @@ - - - - - + + + + + @@ -2460,19 +2460,18 @@ - - - - - - - - - - + + + + + + + + + @@ -2480,223 +2479,223 @@ - - - - - - + + + + + + - - + + - - - - - - - - + + + + + + + + - - - - - - + + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + - - - + + + - - - - - + + + + + - - - - - - - - - + + + + + + + + + - - - + + + - - - - - + + + + + - - - - - - - - - - + + + + + + + + + + - - - + + + - - - - + + + + - - - - - - - - - - + + + + + + + + + + - - - - + + + + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - + + + + + @@ -2706,257 +2705,259 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + + + + + + - - - - - - - - - - - - - + + + - - - - - - - - - - - + + + + + + + + + + + + + - - + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3014,17 +3015,17 @@ - + - + - + @@ -3249,7 +3250,7 @@ - + @@ -3292,169 +3293,169 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3484,42 +3485,42 @@ - + - + - + - + - + - + - + - + @@ -3531,7 +3532,7 @@ - + @@ -3540,7 +3541,7 @@ - + @@ -3549,7 +3550,7 @@ - + @@ -3558,7 +3559,7 @@ - + @@ -3567,27 +3568,27 @@ - + - + - + - + - + @@ -3753,7 +3754,7 @@ - + @@ -3858,7 +3859,7 @@ - + @@ -4441,7 +4442,7 @@ - + @@ -4473,10 +4474,10 @@ - - - - + + + + @@ -4506,12 +4507,12 @@ - - - - - - + + + + + + @@ -4526,12 +4527,12 @@ - - - - - - + + + + + + @@ -4540,13 +4541,13 @@ - - - - - - - + + + + + + + @@ -4560,28 +4561,28 @@ - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + diff --git a/SolStandard/Content/TmxMaps/Draft_Jirai_Archipelago.tmx b/SolStandard/Content/TmxMaps/Draft_Jirai_Archipelago.tmx index 4110da8e..ad58b29c 100644 --- a/SolStandard/Content/TmxMaps/Draft_Jirai_Archipelago.tmx +++ b/SolStandard/Content/TmxMaps/Draft_Jirai_Archipelago.tmx @@ -1,655 +1,655 @@ - - - + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1186,7 +1186,7 @@ - + @@ -1249,7 +1249,7 @@ - + @@ -1490,176 +1490,149 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - + + + + + + + - + + + + + + + + + + + + + + - - + + + + - - - - - - - - - - - - @@ -1668,564 +1641,591 @@ + + - - - - - + + + + + + + + - - - - - - - + + + + - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - + + + - - - - + + + + + + - - - - + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + - + + - + + + + + + + + + + + + + - - - + - - - - - - - - + - - + + + + - + + + + + + + + - - - - + - - - - - - - + - - + + + + + - + + + + + + + - - - - - - - - - - - - - + - + - - - - - - - - - + - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + - - - - - - + + + + + + + + + + + + + + + + + - - + - - + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2251,7 +2251,7 @@ - + @@ -2320,12 +2320,12 @@ - + - + @@ -2365,157 +2365,157 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2532,27 +2532,27 @@ - + - + - + - + - + @@ -2562,26 +2562,28 @@ - + - + - + - + + + @@ -2595,95 +2597,102 @@ - + - + - + - + - + - + - + - + - + - + + - + + - + + - + + - + + - + + - + + @@ -2724,7 +2733,7 @@ - + @@ -2859,7 +2868,7 @@ - + @@ -2905,7 +2914,7 @@ - + @@ -2962,14 +2971,14 @@ - + - + @@ -3045,7 +3054,7 @@ - + @@ -3070,7 +3079,7 @@ - + @@ -3128,7 +3137,7 @@ - + @@ -3263,7 +3272,7 @@ - + @@ -3316,7 +3325,7 @@ - + diff --git a/SolStandard/Content/TmxMaps/Draft_Quest_Race.tmx b/SolStandard/Content/TmxMaps/Draft_Quest_Race.tmx index d8789cc2..e0d16a13 100644 --- a/SolStandard/Content/TmxMaps/Draft_Quest_Race.tmx +++ b/SolStandard/Content/TmxMaps/Draft_Quest_Race.tmx @@ -3068,7 +3068,7 @@ - + @@ -3101,7 +3101,7 @@ - + diff --git a/SolStandard/Content/TmxMaps/Draft_Raid_Dungeon.tmx b/SolStandard/Content/TmxMaps/Draft_Raid_Dungeon.tmx index 45ca14d4..296d94b3 100644 --- a/SolStandard/Content/TmxMaps/Draft_Raid_Dungeon.tmx +++ b/SolStandard/Content/TmxMaps/Draft_Raid_Dungeon.tmx @@ -1796,8 +1796,8 @@ - - + + @@ -1827,7 +1827,7 @@ - + diff --git a/SolStandard/Content/TmxMaps/Draft_Snow_Zone.tmx b/SolStandard/Content/TmxMaps/Draft_Snow_Zone.tmx deleted file mode 100644 index 2bb440e6..00000000 --- a/SolStandard/Content/TmxMaps/Draft_Snow_Zone.tmx +++ /dev/null @@ -1,2269 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Draft_Tavern_Inn.tmx b/SolStandard/Content/TmxMaps/Draft_Tavern_Inn.tmx deleted file mode 100644 index 119fe5c9..00000000 --- a/SolStandard/Content/TmxMaps/Draft_Tavern_Inn.tmx +++ /dev/null @@ -1,7824 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Draft_Town_Market.tmx b/SolStandard/Content/TmxMaps/Draft_Town_Market.tmx deleted file mode 100644 index 84c02609..00000000 --- a/SolStandard/Content/TmxMaps/Draft_Town_Market.tmx +++ /dev/null @@ -1,2726 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Draft_Verdant_Forest.tmx b/SolStandard/Content/TmxMaps/Draft_Verdant_Forest.tmx index de8679a2..4e2f0a3a 100644 --- a/SolStandard/Content/TmxMaps/Draft_Verdant_Forest.tmx +++ b/SolStandard/Content/TmxMaps/Draft_Verdant_Forest.tmx @@ -1,5 +1,5 @@ - + @@ -2967,7 +2967,7 @@ - + @@ -2982,7 +2982,7 @@ - + @@ -2997,12 +2997,12 @@ - + - + @@ -3012,6 +3012,8 @@ + + @@ -3077,12 +3079,12 @@ - + - + diff --git a/SolStandard/Content/TmxMaps/Draft_Village_Center.tmx b/SolStandard/Content/TmxMaps/Draft_Village_Center.tmx index 6f006738..b6b68315 100644 --- a/SolStandard/Content/TmxMaps/Draft_Village_Center.tmx +++ b/SolStandard/Content/TmxMaps/Draft_Village_Center.tmx @@ -1,5 +1,5 @@ - + @@ -418,10 +418,10 @@ - - - - + + + + @@ -450,10 +450,10 @@ - - - - + + + + @@ -482,10 +482,10 @@ - - - - + + + + @@ -514,10 +514,10 @@ - - - - + + + + @@ -546,10 +546,10 @@ - - - - + + + + @@ -578,10 +578,10 @@ - - - - + + + + @@ -768,7 +768,7 @@ - + @@ -793,8 +793,8 @@ - - + + @@ -825,8 +825,8 @@ - - + + @@ -861,9 +861,9 @@ - - - + + + @@ -893,9 +893,9 @@ - - - + + + @@ -1040,8 +1040,8 @@ - - + + @@ -1051,8 +1051,8 @@ - - + + @@ -1072,8 +1072,8 @@ - - + + @@ -1083,8 +1083,8 @@ - - + + @@ -1095,8 +1095,8 @@ - - + + @@ -1125,11 +1125,11 @@ + - - + @@ -1142,7 +1142,7 @@ - + @@ -1157,7 +1157,7 @@ - + @@ -1185,7 +1185,7 @@ - + @@ -1221,7 +1221,7 @@ - + @@ -1380,7 +1380,7 @@ - + @@ -1412,7 +1412,7 @@ - + @@ -1444,7 +1444,7 @@ - + @@ -1689,9 +1689,9 @@ - - - + + + @@ -1722,7 +1722,7 @@ - + @@ -1738,10 +1738,10 @@ + - - - + + @@ -1769,7 +1769,7 @@ - + @@ -1786,7 +1786,7 @@ - + @@ -1796,15 +1796,15 @@ + - - - + + @@ -1821,7 +1821,7 @@ - + @@ -1833,9 +1833,9 @@ - - - + + + @@ -1865,7 +1865,7 @@ - + @@ -1943,7 +1943,7 @@ - + @@ -1958,27 +1958,27 @@ - + - + - + - + - + @@ -2013,13 +2013,13 @@ - + - + @@ -2066,31 +2066,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2106,62 +2081,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -2176,13 +2096,13 @@ - + - + @@ -2213,105 +2133,122 @@ - + - - + - + - + - - - + - + - + - - - - + + - - - + - + + + - - - + - + - - - + - + - + - + - - + - + - - - + + + - + - - + + + + - + - - - - + + + + - + - + + + + - + - - + + + + - + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + - - @@ -2361,6 +2298,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2380,12 +2360,12 @@ - + - + @@ -2405,17 +2385,12 @@ - - - - - - + @@ -2450,6 +2425,11 @@ + + + + + @@ -2484,7 +2464,7 @@ - + @@ -2978,9 +2958,9 @@ - - - + + + @@ -2997,7 +2977,7 @@ - + @@ -3010,9 +2990,9 @@ - - - + + + @@ -3029,8 +3009,8 @@ - + @@ -3043,7 +3023,7 @@ - + @@ -3061,7 +3041,7 @@ - + @@ -3075,10 +3055,10 @@ - - + + @@ -3086,14 +3066,14 @@ - + - + @@ -3118,7 +3098,7 @@ - + diff --git a/SolStandard/Content/TmxMaps/Map_Select_03.tmx b/SolStandard/Content/TmxMaps/Map_Select_03.tmx deleted file mode 100644 index 42b0269a..00000000 --- a/SolStandard/Content/TmxMaps/Map_Select_03.tmx +++ /dev/null @@ -1,2636 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Map_Select_04.tmx b/SolStandard/Content/TmxMaps/Map_Select_04.tmx deleted file mode 100644 index 366d6464..00000000 --- a/SolStandard/Content/TmxMaps/Map_Select_04.tmx +++ /dev/null @@ -1,2737 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Map_Select_05.tmx b/SolStandard/Content/TmxMaps/Map_Select_05.tmx deleted file mode 100644 index ba6d2bd1..00000000 --- a/SolStandard/Content/TmxMaps/Map_Select_05.tmx +++ /dev/null @@ -1,12339 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Map_Select_06.tmx b/SolStandard/Content/TmxMaps/Map_Select_06.tmx index 4f8538d9..063a9a26 100644 --- a/SolStandard/Content/TmxMaps/Map_Select_06.tmx +++ b/SolStandard/Content/TmxMaps/Map_Select_06.tmx @@ -1,5 +1,5 @@ - + @@ -3032,7 +3032,7 @@ - + @@ -3071,9 +3071,9 @@ + - @@ -3196,7 +3196,7 @@ - + @@ -3990,9 +3990,10 @@ + - + @@ -4005,30 +4006,31 @@ - + - + + + - + - + - + - - - + + + - @@ -4046,9 +4048,8 @@ - + - @@ -4061,22 +4062,9 @@ - - - - - - - - - - - - - - + @@ -4101,7 +4089,7 @@ - + @@ -4115,16 +4103,15 @@ - + - + - @@ -4137,10 +4124,9 @@ - - + @@ -4149,7 +4135,7 @@ - + @@ -4187,7 +4173,6 @@ - @@ -4201,7 +4186,7 @@ - + @@ -4244,7 +4229,7 @@ - + @@ -4252,6 +4237,8 @@ + + @@ -4265,23 +4252,8 @@ - - - - - - - - - - - - - - - @@ -4296,6 +4268,19 @@ + + + + + + + + + + + + + @@ -4623,7 +4608,7 @@ - + @@ -4674,11 +4659,11 @@ - - + + @@ -4719,7 +4704,7 @@ - + @@ -4799,7 +4784,6 @@ - @@ -4809,6 +4793,7 @@ + @@ -4925,7 +4910,7 @@ - + @@ -5143,7 +5128,7 @@ - + @@ -5193,7 +5178,7 @@ - + diff --git a/SolStandard/Content/TmxMaps/Solo_Collection_Quest.tmx b/SolStandard/Content/TmxMaps/Solo_Collection_Quest.tmx deleted file mode 100644 index d42cc073..00000000 --- a/SolStandard/Content/TmxMaps/Solo_Collection_Quest.tmx +++ /dev/null @@ -1,3441 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SolStandard/Content/TmxMaps/Solo_Island_Boss.tmx b/SolStandard/Content/TmxMaps/Solo_Island_Boss.tmx index 03e30772..29affcb8 100644 --- a/SolStandard/Content/TmxMaps/Solo_Island_Boss.tmx +++ b/SolStandard/Content/TmxMaps/Solo_Island_Boss.tmx @@ -1996,7 +1996,7 @@ - + @@ -2004,7 +2004,7 @@ - + diff --git a/SolStandard/Content/TmxMaps/overworld-32.tsx b/SolStandard/Content/TmxMaps/overworld-32.tsx index 7ad1e61b..355b0f89 100644 --- a/SolStandard/Content/TmxMaps/overworld-32.tsx +++ b/SolStandard/Content/TmxMaps/overworld-32.tsx @@ -17,10 +17,12 @@ - + + - + + @@ -1367,12 +1369,12 @@ - - - - - - + + + + + + @@ -1397,18 +1399,18 @@ - - - - - - - - - - - - + + + + + + + + + + + + @@ -1416,7 +1418,7 @@ - + @@ -1424,7 +1426,7 @@ - + @@ -1432,7 +1434,7 @@ - + @@ -1440,7 +1442,7 @@ - + @@ -1448,7 +1450,7 @@ - + @@ -1456,8 +1458,8 @@ - - + + @@ -1465,7 +1467,7 @@ - + @@ -1473,7 +1475,7 @@ - + @@ -1481,7 +1483,7 @@ - + @@ -1489,7 +1491,7 @@ - + @@ -1497,7 +1499,7 @@ - + @@ -1505,7 +1507,7 @@ - + @@ -1513,7 +1515,7 @@ - + @@ -1521,12 +1523,12 @@ - - - - - - + + + + + + @@ -1534,7 +1536,7 @@ - + @@ -1542,7 +1544,7 @@ - + @@ -1550,7 +1552,7 @@ - + @@ -1558,7 +1560,7 @@ - + @@ -1566,12 +1568,12 @@ - - - - - - + + + + + + @@ -1579,8 +1581,8 @@ - - + + @@ -1588,7 +1590,7 @@ - + @@ -1596,7 +1598,7 @@ - + @@ -1604,12 +1606,12 @@ - - - - - - + + + + + + @@ -1617,7 +1619,7 @@ - + @@ -1625,7 +1627,7 @@ - + @@ -1633,7 +1635,7 @@ - + @@ -1641,7 +1643,7 @@ - + @@ -1654,46 +1656,46 @@ - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -1780,19 +1782,19 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -1801,14 +1803,14 @@ - - - - - - - - + + + + + + + + @@ -1817,14 +1819,14 @@ - - - - - - - - + + + + + + + + @@ -1833,12 +1835,12 @@ - - - - - - + + + + + + @@ -1847,15 +1849,15 @@ - - - - - - - - - + + + + + + + + + @@ -2096,242 +2098,244 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SolStandard/Entity/General/Artillery.cs b/SolStandard/Entity/General/Artillery.cs index d1d879be..bbc1a595 100644 --- a/SolStandard/Entity/General/Artillery.cs +++ b/SolStandard/Entity/General/Artillery.cs @@ -1,13 +1,10 @@ using System.Collections.Generic; using Microsoft.Xna.Framework; using SolStandard.Entity.General.Item; -using SolStandard.Entity.Unit; using SolStandard.Entity.Unit.Actions; using SolStandard.Entity.Unit.Actions.Terrain; using SolStandard.HUD.Window; -using SolStandard.HUD.Window.Content; using SolStandard.Utility; -using SolStandard.Utility.Assets; namespace SolStandard.Entity.General { @@ -37,25 +34,6 @@ public List TileActions() }; } - public override IRenderable TerrainInfo => - new WindowContentGrid( - new[,] - { - { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - statWindow, - new RenderBlank() - } - }, - 1 - ); + protected override IRenderable EntityInfo => statWindow; } } \ No newline at end of file diff --git a/SolStandard/Entity/General/Bank.cs b/SolStandard/Entity/General/Bank.cs index cd3e5cbd..3056744b 100644 --- a/SolStandard/Entity/General/Bank.cs +++ b/SolStandard/Entity/General/Bank.cs @@ -41,7 +41,7 @@ public List TileActions() public static void Deposit(GameUnit depositer, int goldToDeposit) { - depositer.CurrentGold -= goldToDeposit; + GameContext.InitiativeContext.DeductGoldFromTeam(goldToDeposit, depositer.Team); switch (depositer.Team) { @@ -65,7 +65,7 @@ public static void Deposit(GameUnit depositer, int goldToDeposit) public static void Withdraw(GameUnit depositer, int goldToWithdraw) { - depositer.CurrentGold += goldToWithdraw; + GameContext.InitiativeContext.AddGoldToTeam(goldToWithdraw, depositer.Team); switch (depositer.Team) { @@ -108,27 +108,10 @@ public static void ResetBank() BlueMoney = 0; } - - public override IRenderable TerrainInfo => + protected override IRenderable EntityInfo => new WindowContentGrid( - new[,] + new IRenderable[,] { - { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - StatusIconProvider.GetStatusIcon(StatusIcon.PickupRange, GameDriver.CellSizeVector), - new RenderText( - AssetManager.WindowFont, - ": " + $"[{string.Join(",", InteractRange)}]" - ) - }, { new Window( new IRenderable[,] @@ -143,8 +126,7 @@ public static void ResetBank() } }, TeamUtility.DetermineTeamColor(Team.Blue) - ), - new RenderBlank() + ) }, { new Window( @@ -160,9 +142,8 @@ public static void ResetBank() } }, TeamUtility.DetermineTeamColor(Team.Red) - ), - new RenderBlank() - } + ) + }, }, 1, HorizontalAlignment.Centered diff --git a/SolStandard/Entity/General/BreakableObstacle.cs b/SolStandard/Entity/General/BreakableObstacle.cs index 3c810788..80a4f655 100644 --- a/SolStandard/Entity/General/BreakableObstacle.cs +++ b/SolStandard/Entity/General/BreakableObstacle.cs @@ -51,6 +51,9 @@ public void DealDamage(int damage) CanMove = true; Visible = false; + //Remove self from the map + MapContainer.GameGrid[(int) Layer.Entities][(int) MapCoordinates.X, (int) MapCoordinates.Y] = null; + GameContext.GameMapContext.MapContainer.AddNewToastAtMapCellCoordinates("Destroyed!", MapCoordinates, 50); } @@ -90,7 +93,7 @@ private void DropSpoils() = new Spoils( Name + " Spoils", "Spoils", - new SpriteAtlas(AssetManager.SpoilsIcon, GameDriver.CellSizeVector), + MiscIconProvider.GetMiscIcon(MiscIcon.Spoils, GameDriver.CellSizeVector), MapCoordinates, gold, new List(items) @@ -100,30 +103,20 @@ private void DropSpoils() items.Clear(); } - public override IRenderable TerrainInfo => + protected override IRenderable EntityInfo => new WindowContentGrid( new[,] { - { - InfoHeader, - new RenderBlank() - }, { UnitStatistics.GetSpriteAtlas(Stats.Hp), new RenderText(AssetManager.WindowFont, "HP: " + HP) }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, { new RenderText(AssetManager.WindowFont, (IsBroken) ? "Broken" : "Not Broken", (IsBroken) ? NegativeColor : PositiveColor), - new RenderBlank() + RenderBlank.Blank } - }, - 3 + } ); } } \ No newline at end of file diff --git a/SolStandard/Entity/General/BuffTile.cs b/SolStandard/Entity/General/BuffTile.cs index 9901f123..cbfe9f88 100644 --- a/SolStandard/Entity/General/BuffTile.cs +++ b/SolStandard/Entity/General/BuffTile.cs @@ -10,68 +10,43 @@ namespace SolStandard.Entity.General { public class BuffTile : TerrainEntity { - private readonly bool canMove; public BonusStatistics BonusStatistics { get; } public BuffTile(string name, string type, IRenderable sprite, Vector2 mapCoordinates, int atkBonus, - int retBonus, int blockBonus, int luckBonus, bool canMove) : base(name, type, sprite, mapCoordinates) + int retBonus, int blockBonus, int luckBonus) : base(name, type, sprite, mapCoordinates) { - this.canMove = canMove; BonusStatistics = new BonusStatistics(atkBonus, retBonus, blockBonus, luckBonus); } - - public override IRenderable TerrainInfo => - new WindowContentGrid( - new[,] + protected override IRenderable EntityInfo => + new WindowContentGrid(new IRenderable[,] { { - InfoHeader, - new RenderBlank() + UnitStatistics.GetSpriteAtlas(Stats.Atk), + new RenderText(AssetManager.WindowFont, + UnitStatistics.Abbreviation[Stats.Atk] + ": +" + BonusStatistics.AtkBonus) + }, + { + UnitStatistics.GetSpriteAtlas(Stats.Retribution), + new RenderText(AssetManager.WindowFont, + UnitStatistics.Abbreviation[Stats.Retribution] + ": +" + + BonusStatistics.RetBonus) }, { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (canMove) ? "Can Move" : "No Move", - (canMove) ? PositiveColor : NegativeColor) + UnitStatistics.GetSpriteAtlas(Stats.Block), + new RenderText(AssetManager.WindowFont, + UnitStatistics.Abbreviation[Stats.Block] + ": +" + + BonusStatistics.BlockBonus) }, { - new Window( - new WindowContentGrid( - new IRenderable[,] - { - { - UnitStatistics.GetSpriteAtlas(Stats.Atk), - new RenderText(AssetManager.WindowFont, - UnitStatistics.Abbreviation[Stats.Atk] + ": +" + BonusStatistics.AtkBonus) - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Retribution), - new RenderText(AssetManager.WindowFont, - UnitStatistics.Abbreviation[Stats.Retribution] + ": +" + - BonusStatistics.RetBonus) - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Block), - new RenderText(AssetManager.WindowFont, - UnitStatistics.Abbreviation[Stats.Block] + ": +" + - BonusStatistics.BlockBonus) - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Luck), - new RenderText(AssetManager.WindowFont, - UnitStatistics.Abbreviation[Stats.Luck] + ": +" + - BonusStatistics.LuckBonus) - } - }, - 0 - ), - InnerWindowColor - ), - new RenderBlank() + UnitStatistics.GetSpriteAtlas(Stats.Luck), + new RenderText(AssetManager.WindowFont, + UnitStatistics.Abbreviation[Stats.Luck] + ": +" + + BonusStatistics.LuckBonus) } }, - 3, + 1, HorizontalAlignment.Centered ); } diff --git a/SolStandard/Entity/General/Chest.cs b/SolStandard/Entity/General/Chest.cs index 39619450..bf637391 100644 --- a/SolStandard/Entity/General/Chest.cs +++ b/SolStandard/Entity/General/Chest.cs @@ -1,14 +1,13 @@ using System; using System.Collections.Generic; +using System.Linq; using Microsoft.Xna.Framework; using SolStandard.Containers; using SolStandard.Containers.Contexts; using SolStandard.Containers.Contexts.WinConditions; using SolStandard.Entity.General.Item; -using SolStandard.Entity.Unit; using SolStandard.Entity.Unit.Actions; using SolStandard.Entity.Unit.Actions.Terrain; -using SolStandard.HUD.Window; using SolStandard.HUD.Window.Content; using SolStandard.Utility; using SolStandard.Utility.Assets; @@ -19,7 +18,7 @@ namespace SolStandard.Entity.General { public class Chest : TerrainEntity, IActionTile, IOpenable, ILockable, ITriggerable { - private enum LockIconState + public enum LockIconState { Locked, Unlocked @@ -40,8 +39,7 @@ private enum OpenCloseIconState public List Items { get; } public Chest(string name, string type, IRenderable sprite, Vector2 mapCoordinates, bool isLocked, bool isOpen, - bool canMove, int[] range, - int gold, IItem item = null) : + bool canMove, int[] range, int gold, IItem item = null) : base(name, type, sprite, mapCoordinates) { CanMove = canMove; @@ -54,75 +52,50 @@ public Chest(string name, string type, IRenderable sprite, Vector2 mapCoordinate if (item != null) Items.Add(item); } - public override IRenderable TerrainInfo - { - get - { - List itemList = new List(); - Items.ForEach(item => itemList.Add(item.Name)); + private IEnumerable ItemList => Items.Select(item => item.Name); - return new WindowContentGrid( - new[,] + protected override IRenderable EntityInfo => + new WindowContentGrid(new IRenderable[,] + { { - { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - new Window(new WindowContentGrid(new IRenderable[,] - { - { - new SpriteAtlas( - AssetManager.LockTexture, - new Vector2(AssetManager.LockTexture.Width), - GameDriver.CellSizeVector, - Convert.ToInt32( - IsLocked ? LockIconState.Locked : LockIconState.Unlocked - ) - ), - new RenderText(AssetManager.WindowFont, (IsLocked) ? "Locked" : "Unlocked", - (IsLocked) ? NegativeColor : PositiveColor) - }, - { - new SpriteAtlas( - AssetManager.OpenTexture, - new Vector2(AssetManager.OpenTexture.Width), - GameDriver.CellSizeVector, - Convert.ToInt32( - IsOpen ? OpenCloseIconState.Open : OpenCloseIconState.Closed - ) - ), - new RenderText(AssetManager.WindowFont, (IsOpen) ? "Open" : "Closed", - (IsOpen) ? PositiveColor : NegativeColor) - }, - { - ObjectiveIconProvider.GetObjectiveIcon( - VictoryConditions.Taxes, - GameDriver.CellSizeVector - ), - new RenderText(AssetManager.WindowFont, - ": " + (IsOpen ? Gold + Currency.CurrencyAbbreviation : "???")) - }, - { - new RenderText(AssetManager.WindowFont, "Contents: "), - new RenderText(AssetManager.WindowFont, - (IsOpen) ? string.Join(Environment.NewLine, itemList) : "????"), - } - }, 1), - InnerWindowColor), - new RenderBlank() - } + new SpriteAtlas( + AssetManager.LockTexture, + new Vector2(AssetManager.LockTexture.Width), + GameDriver.CellSizeVector, + Convert.ToInt32( + IsLocked ? LockIconState.Locked : LockIconState.Unlocked + ) + ), + new RenderText(AssetManager.WindowFont, (IsLocked) ? "Locked" : "Unlocked", + (IsLocked) ? NegativeColor : PositiveColor) }, - 3, - HorizontalAlignment.Centered - ); - } - } + { + new SpriteAtlas( + AssetManager.OpenTexture, + new Vector2(AssetManager.OpenTexture.Width), + GameDriver.CellSizeVector, + Convert.ToInt32( + IsOpen ? OpenCloseIconState.Open : OpenCloseIconState.Closed + ) + ), + new RenderText(AssetManager.WindowFont, (IsOpen) ? "Open" : "Closed", + (IsOpen) ? PositiveColor : NegativeColor) + }, + { + ObjectiveIconProvider.GetObjectiveIcon( + VictoryConditions.Taxes, + GameDriver.CellSizeVector + ), + new RenderText(AssetManager.WindowFont, + ": " + (IsOpen ? Gold + Currency.CurrencyAbbreviation : "???")) + }, + { + new RenderText(AssetManager.WindowFont, "Contents: "), + new RenderText(AssetManager.WindowFont, + (IsOpen) ? string.Join(Environment.NewLine, ItemList) : "????"), + }, + } + ); public List TileActions() { diff --git a/SolStandard/Entity/General/Door.cs b/SolStandard/Entity/General/Door.cs index 6d65be6f..5adb9a4c 100644 --- a/SolStandard/Entity/General/Door.cs +++ b/SolStandard/Entity/General/Door.cs @@ -1,8 +1,8 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using Microsoft.Xna.Framework; using SolStandard.Containers; using SolStandard.Containers.Contexts; -using SolStandard.Entity.Unit; using SolStandard.Entity.Unit.Actions; using SolStandard.Entity.Unit.Actions.Terrain; using SolStandard.HUD.Window; @@ -32,59 +32,32 @@ public Door(string name, string type, IRenderable sprite, Vector2 mapCoordinates ElementColor = (IsOpen) ? InactiveColor : Color.White; } - public override IRenderable TerrainInfo => - new WindowContentGrid( - new[,] + protected override IRenderable EntityInfo => + new WindowContentGrid(new[,] { { - InfoHeader, - new RenderBlank() + new SpriteAtlas( + AssetManager.LockTexture, + new Vector2(AssetManager.LockTexture.Width), + GameDriver.CellSizeVector, + Convert.ToInt32( + IsLocked ? Chest.LockIconState.Locked : Chest.LockIconState.Unlocked + ) + ), + new RenderText(AssetManager.WindowFont, (IsLocked) ? "Locked" : "Unlocked", + (IsLocked) ? NegativeColor : PositiveColor) }, { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) + new RenderText(AssetManager.WindowFont, (IsOpen) ? "Open" : "Closed", + (IsOpen) ? PositiveColor : NegativeColor), + RenderBlank.Blank }, { - new Window(new IRenderable[,] - { - { - new RenderText(AssetManager.WindowFont, (IsLocked) ? "Locked" : "Unlocked", - (IsLocked) ? NegativeColor : PositiveColor), - new RenderBlank() - }, - { - new RenderText(AssetManager.WindowFont, (IsOpen) ? "Open" : "Closed", - (IsOpen) ? PositiveColor : NegativeColor), - new RenderBlank() - }, - { - new Window(new IRenderable[,] - { - { - UnitStatistics.GetSpriteAtlas(Stats.Hp), - new RenderText(AssetManager.WindowFont, "HP: " + HP) - }, - { - new RenderText(AssetManager.WindowFont, - (IsBroken) ? "Broken" : "Not Broken", - (IsBroken) ? NegativeColor : PositiveColor), - new RenderBlank() - } - }, - InnerWindowColor, - HorizontalAlignment.Centered - ), - new RenderBlank() - } - }, - InnerWindowColor, - HorizontalAlignment.Centered - ), - new RenderBlank() - } + base.EntityInfo, + RenderBlank.Blank + }, }, - 3, + 1, HorizontalAlignment.Centered ); @@ -100,7 +73,6 @@ public List TileActions() public void Trigger() { if (!CanTrigger) return; - UnitAction toggleAction = new UseDoorAction(this, MapCoordinates, false); toggleAction.GenerateActionGrid(GameContext.ActiveUnit.UnitEntity.MapCoordinates); toggleAction.ExecuteAction(MapContainer.GetMapSliceAtCoordinates(MapCoordinates)); @@ -113,7 +85,6 @@ public void RemoteTrigger() GameContext.MapCursor.SnapCameraAndCursorToCoordinates(MapCoordinates); GameContext.MapCamera.SnapCameraCenterToCursor(); GameContext.GameMapContext.MapContainer.AddNewToastAtMapCursor(Name + " triggered!", 50); - ToggleOpen(); } @@ -123,6 +94,7 @@ private void ToggleOpen() { Close(); } + else { Open(); diff --git a/SolStandard/Entity/General/Drawbridge.cs b/SolStandard/Entity/General/Drawbridge.cs index d735d64c..ea6ff920 100644 --- a/SolStandard/Entity/General/Drawbridge.cs +++ b/SolStandard/Entity/General/Drawbridge.cs @@ -1,7 +1,6 @@ using Microsoft.Xna.Framework; using SolStandard.Containers; using SolStandard.Containers.Contexts; -using SolStandard.Entity.Unit; using SolStandard.HUD.Window.Content; using SolStandard.Map.Elements.Cursor; using SolStandard.Utility; @@ -68,32 +67,11 @@ public void ToggleLock() } - public override IRenderable TerrainInfo => - new WindowContentGrid( - new[,] - { - { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - new RenderText(AssetManager.WindowFont, (IsLocked) ? "Locked" : "Unlocked", - (IsLocked) ? NegativeColor : PositiveColor), - new RenderBlank() - }, - { - new RenderText(AssetManager.WindowFont, (IsOpen) ? "Open" : "Closed", - (IsOpen) ? PositiveColor : NegativeColor), - new RenderBlank() - } - }, - 3 - ); + protected override IRenderable EntityInfo => new RenderText( + AssetManager.WindowFont, + (IsOpen) ? "Open" : "Closed", + (IsOpen) ? PositiveColor : NegativeColor + ); public void RemoteTrigger() { @@ -104,6 +82,8 @@ public void RemoteTrigger() ToggleOpen(); } + public bool CanTrigger => !IsObstructed; + public bool IsObstructed { get diff --git a/SolStandard/Entity/General/Item/Barricade.cs b/SolStandard/Entity/General/Item/Barricade.cs index 01197b16..c7ffc7a6 100644 --- a/SolStandard/Entity/General/Item/Barricade.cs +++ b/SolStandard/Entity/General/Item/Barricade.cs @@ -26,7 +26,7 @@ public UnitAction UseAction() public UnitAction DropAction() { - return new TradeItemAction(this); + return new DropGiveItemAction(this); } public IItem Duplicate() diff --git a/SolStandard/Entity/General/Item/BlinkItem.cs b/SolStandard/Entity/General/Item/BlinkItem.cs index b0bfb09f..7a15451c 100644 --- a/SolStandard/Entity/General/Item/BlinkItem.cs +++ b/SolStandard/Entity/General/Item/BlinkItem.cs @@ -1,11 +1,9 @@ using System.Collections.Generic; using Microsoft.Xna.Framework; -using SolStandard.Entity.Unit; using SolStandard.Entity.Unit.Actions; using SolStandard.Entity.Unit.Actions.Item; using SolStandard.Entity.Unit.Actions.Mage; using SolStandard.Entity.Unit.Actions.Terrain; -using SolStandard.HUD.Window; using SolStandard.HUD.Window.Content; using SolStandard.Utility; using SolStandard.Utility.Assets; @@ -16,7 +14,7 @@ public class BlinkItem : TerrainEntity, IItem, IActionTile { public int[] BlinkRange { get; } public int[] InteractRange { get; } - public int UsesRemaining { get; set; } + public int UsesRemaining { get; } public string ItemPool { get; } public BlinkItem(string name, string type, IRenderable sprite, Vector2 mapCoordinates, int[] pickupRange, @@ -57,48 +55,21 @@ public IItem Duplicate() ItemPool); } - public override IRenderable TerrainInfo => - new WindowContentGrid( - new[,] + protected override IRenderable EntityInfo => + new WindowContentGrid(new[,] { { - InfoHeader, - new RenderBlank() + SkillIconProvider.GetSkillIcon(SkillIcon.Blink, + GameDriver.CellSizeVector), + new RenderText(AssetManager.WindowFont, + "Blink Range: [" + string.Join(",", BlinkRange) + "]") }, { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - StatusIconProvider.GetStatusIcon(StatusIcon.PickupRange, GameDriver.CellSizeVector), - new RenderText( - AssetManager.WindowFont, - ": " + $"[{string.Join(",", InteractRange)}]" - ) - }, - { - new Window(new IRenderable[,] - { - { - SkillIconProvider.GetSkillIcon(SkillIcon.Blink, - GameDriver.CellSizeVector), - new RenderText(AssetManager.WindowFont, - "Blink Range: [" + string.Join(",", BlinkRange) + "]") - }, - { - new RenderText(AssetManager.WindowFont, - "Uses Remaining: [" + UsesRemaining + "]"), - new RenderBlank() - } - }, - InnerWindowColor, - HorizontalAlignment.Centered - ), - new RenderBlank() + new RenderText(AssetManager.WindowFont, + "Uses Remaining: [" + UsesRemaining + "]"), + RenderBlank.Blank } - }, - 3 + } ); } } \ No newline at end of file diff --git a/SolStandard/Entity/General/Item/Bomb.cs b/SolStandard/Entity/General/Item/Bomb.cs index c2c55b73..20d1ae3a 100644 --- a/SolStandard/Entity/General/Item/Bomb.cs +++ b/SolStandard/Entity/General/Item/Bomb.cs @@ -7,7 +7,6 @@ using SolStandard.Entity.Unit; using SolStandard.Entity.Unit.Actions; using SolStandard.Entity.Unit.Actions.Item; -using SolStandard.HUD.Window; using SolStandard.HUD.Window.Content; using SolStandard.Map; using SolStandard.Map.Elements; @@ -50,7 +49,7 @@ public UnitAction UseAction() public UnitAction DropAction() { - return new TradeItemAction(this); + return new DropGiveItemAction(this); } public IItem Duplicate() @@ -121,42 +120,25 @@ public bool WillTrigger(EffectTriggerTime triggerTime) return triggerTime == EffectTriggerTime.StartOfRound && !HasTriggered; } - public override IRenderable TerrainInfo => + protected override IRenderable EntityInfo => new WindowContentGrid( - new[,] + new IRenderable[,] { { - InfoHeader, - new RenderBlank() + UnitStatistics.GetSpriteAtlas(Stats.Atk, GameDriver.CellSizeVector), + new RenderText( + AssetManager.WindowFont, + UnitStatistics.Abbreviation[Stats.Atk] + ": " + Damage + ) }, { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - new Window(new IRenderable[,] - { - { - UnitStatistics.GetSpriteAtlas(Stats.Atk, GameDriver.CellSizeVector), - new RenderText( - AssetManager.WindowFont, - UnitStatistics.Abbreviation[Stats.Atk] + ": " + Damage - ) - }, - { - UnitStatistics.GetSpriteAtlas(Stats.AtkRange, GameDriver.CellSizeVector), - new RenderText( - AssetManager.WindowFont, - UnitStatistics.Abbreviation[Stats.AtkRange] - + ": [" + string.Join(",", Range) + "]" - ) - } - }, InnerWindowColor), - new RenderBlank() + UnitStatistics.GetSpriteAtlas(Stats.AtkRange, GameDriver.CellSizeVector), + new RenderText( + AssetManager.WindowFont, + UnitStatistics.Abbreviation[Stats.AtkRange] + ": [" + string.Join(",", Range) + "]" + ) } - }, - 1 + } ); public override void Draw(SpriteBatch spriteBatch) diff --git a/SolStandard/Entity/General/Item/BuffItem.cs b/SolStandard/Entity/General/Item/BuffItem.cs index b441d605..88607d19 100644 --- a/SolStandard/Entity/General/Item/BuffItem.cs +++ b/SolStandard/Entity/General/Item/BuffItem.cs @@ -43,11 +43,11 @@ public BuffItem(string name, string type, IRenderable sprite, Vector2 mapCoordin private Window GenerateBuffWindow() { - return new Window(new WindowContentGrid(new IRenderable[,] + return new Window(new WindowContentGrid(new[,] { { new RenderText(AssetManager.HeaderFont, "~Buff~"), - new RenderBlank(), new RenderBlank(), new RenderBlank(), new RenderBlank() + RenderBlank.Blank, RenderBlank.Blank, RenderBlank.Blank, RenderBlank.Blank }, { new RenderText(AssetManager.WindowFont, @@ -122,32 +122,6 @@ public IItem Duplicate() buffDuration, InteractRange, ItemPool); } - public override IRenderable TerrainInfo => - new WindowContentGrid( - new[,] - { - { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - StatusIconProvider.GetStatusIcon(StatusIcon.PickupRange, GameDriver.CellSizeVector), - new RenderText( - AssetManager.WindowFont, - ": " + $"[{string.Join(",", InteractRange)}]" - ) - }, - { - buffWindow, - new RenderBlank() - } - }, - 3 - ); + protected override IRenderable EntityInfo => buffWindow; } } \ No newline at end of file diff --git a/SolStandard/Entity/General/Item/Contract.cs b/SolStandard/Entity/General/Item/Contract.cs index 2bcc0419..eebb9e46 100644 --- a/SolStandard/Entity/General/Item/Contract.cs +++ b/SolStandard/Entity/General/Item/Contract.cs @@ -81,35 +81,8 @@ private static Window SpecificUnitWindow(Role role, Team team) private static Window FreeContractWindow => SpecificUnitWindow(Role.Silhouette, Team.Creep); - public override IRenderable TerrainInfo => - new WindowContentGrid( - new[,] - { - { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - StatusIconProvider.GetStatusIcon(StatusIcon.PickupRange, GameDriver.CellSizeVector), - new RenderText( - AssetManager.WindowFont, - ": " + $"[{string.Join(",", InteractRange)}]" - ) - }, - { - (forSpecificUnit) - ? SpecificUnitWindow(specificRole, GameContext.ActiveUnit.Team) - : FreeContractWindow, - new RenderBlank() - } - }, - 3, - HorizontalAlignment.Centered - ); + protected override IRenderable EntityInfo => (forSpecificUnit) + ? SpecificUnitWindow(specificRole, GameContext.ActiveTeam) + : FreeContractWindow; } } \ No newline at end of file diff --git a/SolStandard/Entity/General/Item/Currency.cs b/SolStandard/Entity/General/Item/Currency.cs index 5d398903..b1097c25 100644 --- a/SolStandard/Entity/General/Item/Currency.cs +++ b/SolStandard/Entity/General/Item/Currency.cs @@ -1,10 +1,8 @@ using System.Collections.Generic; using Microsoft.Xna.Framework; using SolStandard.Containers.Contexts.WinConditions; -using SolStandard.Entity.Unit; using SolStandard.Entity.Unit.Actions; using SolStandard.Entity.Unit.Actions.Terrain; -using SolStandard.HUD.Window; using SolStandard.HUD.Window.Content; using SolStandard.Utility; using SolStandard.Utility.Assets; @@ -27,7 +25,7 @@ public Currency(string name, string type, IRenderable sprite, Vector2 mapCoordin public static IRenderable GoldIcon(Vector2 size) { - return new SpriteAtlas(AssetManager.GoldIcon, size); + return MiscIconProvider.GetMiscIcon(MiscIcon.Gold, size); } public List TileActions() @@ -38,42 +36,16 @@ public List TileActions() }; } - public override IRenderable TerrainInfo => + protected override IRenderable EntityInfo => new WindowContentGrid( - new[,] + new IRenderable[,] { { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - StatusIconProvider.GetStatusIcon(StatusIcon.PickupRange, GameDriver.CellSizeVector), - new RenderText( - AssetManager.WindowFont, - ": " + $"[{string.Join(",", InteractRange)}]" - ) - }, - { - new Window(new IRenderable[,] - { - { - new RenderText(AssetManager.WindowFont, "Value: " + Value), - ObjectiveIconProvider.GetObjectiveIcon(VictoryConditions.Taxes, - GameDriver.CellSizeVector) - } - }, - InnerWindowColor, - HorizontalAlignment.Centered - ), - new RenderBlank() + new RenderText(AssetManager.WindowFont, "Value: " + Value), + ObjectiveIconProvider.GetObjectiveIcon(VictoryConditions.Taxes, + GameDriver.CellSizeVector) } - }, - 1 + } ); } } \ No newline at end of file diff --git a/SolStandard/Entity/General/Item/HealthPotion.cs b/SolStandard/Entity/General/Item/HealthPotion.cs index 768ed704..e1cdb44f 100644 --- a/SolStandard/Entity/General/Item/HealthPotion.cs +++ b/SolStandard/Entity/General/Item/HealthPotion.cs @@ -5,7 +5,6 @@ using SolStandard.Entity.Unit.Actions; using SolStandard.Entity.Unit.Actions.Item; using SolStandard.Entity.Unit.Actions.Terrain; -using SolStandard.HUD.Window; using SolStandard.HUD.Window.Content; using SolStandard.Utility; using SolStandard.Utility.Assets; @@ -63,38 +62,15 @@ public IItem Duplicate() return new HealthPotion(Name, Type, Sprite, MapCoordinates, InteractRange, HPHealed, ItemPool); } - public override IRenderable TerrainInfo => + protected override IRenderable EntityInfo => new WindowContentGrid( - new[,] + new IRenderable[,] { { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - StatusIconProvider.GetStatusIcon(StatusIcon.PickupRange, GameDriver.CellSizeVector), - new RenderText( - AssetManager.WindowFont, - ": " + $"[{string.Join(",", InteractRange)}]" - ) - }, - { - new Window(new IRenderable[,] - { - { - UnitStatistics.GetSpriteAtlas(Stats.Hp, GameDriver.CellSizeVector), - new RenderText(AssetManager.WindowFont, "Heal : +" + HPHealed + "") - } - }, InnerWindowColor), - new RenderBlank() + UnitStatistics.GetSpriteAtlas(Stats.Hp, GameDriver.CellSizeVector), + new RenderText(AssetManager.WindowFont, "Heal : +" + HPHealed + "") } - }, - 3 + } ); } } \ No newline at end of file diff --git a/SolStandard/Entity/General/Item/Key.cs b/SolStandard/Entity/General/Item/Key.cs index 3aa2d11e..4b342b4b 100644 --- a/SolStandard/Entity/General/Item/Key.cs +++ b/SolStandard/Entity/General/Item/Key.cs @@ -1,10 +1,9 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using Microsoft.Xna.Framework; -using SolStandard.Entity.Unit; using SolStandard.Entity.Unit.Actions; using SolStandard.Entity.Unit.Actions.Item; using SolStandard.Entity.Unit.Actions.Terrain; -using SolStandard.HUD.Window; using SolStandard.HUD.Window.Content; using SolStandard.Utility; using SolStandard.Utility.Assets; @@ -55,33 +54,20 @@ public IItem Duplicate() return new Key(Name, Type, Sprite, MapCoordinates, UsedWith, InteractRange, ItemPool, IsMasterKey); } - public override IRenderable TerrainInfo => + protected override IRenderable EntityInfo => new WindowContentGrid( - new[,] + new IRenderable[,] { { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - StatusIconProvider.GetStatusIcon(StatusIcon.PickupRange, GameDriver.CellSizeVector), - new RenderText( - AssetManager.WindowFont, - ": " + $"[{string.Join(",", InteractRange)}]" - ) - }, - { - new Window(new RenderText(AssetManager.WindowFont, "Used with: " + UsedWith), - InnerWindowColor), - new RenderBlank() + new SpriteAtlas( + AssetManager.LockTexture, + new Vector2(AssetManager.LockTexture.Width), + GameDriver.CellSizeVector, + Convert.ToInt32(Chest.LockIconState.Unlocked) + ), + new RenderText(AssetManager.WindowFont, ": " + UsedWith) } - }, - 3 + } ); } } \ No newline at end of file diff --git a/SolStandard/Entity/General/Item/LadderBridge.cs b/SolStandard/Entity/General/Item/LadderBridge.cs index 605737b4..90f2c73a 100644 --- a/SolStandard/Entity/General/Item/LadderBridge.cs +++ b/SolStandard/Entity/General/Item/LadderBridge.cs @@ -27,7 +27,7 @@ public UnitAction UseAction() public UnitAction DropAction() { - return new TradeItemAction(this); + return new DropGiveItemAction(this); } public IItem Duplicate() diff --git a/SolStandard/Entity/General/Item/Magnet.cs b/SolStandard/Entity/General/Item/Magnet.cs index ebaabac6..0cec86f4 100644 --- a/SolStandard/Entity/General/Item/Magnet.cs +++ b/SolStandard/Entity/General/Item/Magnet.cs @@ -59,35 +59,15 @@ public IItem Duplicate() return new Magnet(Name, Type, Sprite, MapCoordinates, InteractRange, actionRange, usesRemaining, ItemPool); } - public override IRenderable TerrainInfo => + protected override IRenderable EntityInfo => new WindowContentGrid( - new[,] + new IRenderable[,] { - { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - StatusIconProvider.GetStatusIcon(StatusIcon.PickupRange, GameDriver.CellSizeVector), - new RenderText( - AssetManager.WindowFont, - ": " + $"[{string.Join(",", InteractRange)}]" - ) - }, { UnitStatistics.GetSpriteAtlas(Stats.AtkRange), - new RenderText( - AssetManager.WindowFont, - ": " + $"[{string.Join(",", actionRange)}]" - ) + new RenderText(AssetManager.WindowFont, ": " + $"[{string.Join(",", actionRange)}]") } - }, - 3 + } ); } } \ No newline at end of file diff --git a/SolStandard/Entity/General/Item/RecallCharm.cs b/SolStandard/Entity/General/Item/RecallCharm.cs index 5a64eb52..3d39c7bb 100644 --- a/SolStandard/Entity/General/Item/RecallCharm.cs +++ b/SolStandard/Entity/General/Item/RecallCharm.cs @@ -60,7 +60,7 @@ public List TileActions() public void DeployRecall() { - //FIXME HACK: Re-add this item to the unit's inventory to update the UseAction + //Re-add this item to the unit's inventory to update the UseAction immediately GameContext.ActiveUnit.RemoveItemFromInventory(this); recallDeployed = true; GameContext.ActiveUnit.AddItemToInventory(this); diff --git a/SolStandard/Entity/General/Item/Spoils.cs b/SolStandard/Entity/General/Item/Spoils.cs index 3beab4a9..b41131ae 100644 --- a/SolStandard/Entity/General/Item/Spoils.cs +++ b/SolStandard/Entity/General/Item/Spoils.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using Microsoft.Xna.Framework; -using SolStandard.Entity.Unit; using SolStandard.Entity.Unit.Actions; using SolStandard.Entity.Unit.Actions.Terrain; using SolStandard.HUD.Window; @@ -22,7 +21,7 @@ public Spoils(string name, string type, IRenderable sprite, Vector2 mapCoordinat { Gold = gold; Items = items; - InteractRange = new[] {0, 1}; + InteractRange = new[] {0}; } public List TileActions() @@ -33,42 +32,16 @@ public List TileActions() }; } - public override IRenderable TerrainInfo => - new WindowContentGrid( - new[,] + protected override IRenderable EntityInfo => + new WindowContentGrid(new[,] { { - InfoHeader, - new RenderBlank() + MiscIconProvider.GetMiscIcon(MiscIcon.Gold, GameDriver.CellSizeVector), + new RenderText(AssetManager.WindowFont, "Gold: " + Gold + Currency.CurrencyAbbreviation) }, { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - StatusIconProvider.GetStatusIcon(StatusIcon.PickupRange, GameDriver.CellSizeVector), - new RenderText( - AssetManager.WindowFont, - ": " + $"[{string.Join(",", InteractRange)}]" - ) - }, - { - new Window(new[,] - { - { - new SpriteAtlas(AssetManager.GoldIcon, GameDriver.CellSizeVector), - new RenderText(AssetManager.WindowFont, - "Gold: " + Gold + Currency.CurrencyAbbreviation) - }, - { - ItemDetails, - new RenderBlank() - } - }, - InnerWindowColor - ), - new RenderBlank() + ItemDetails, + RenderBlank.Blank } }, 1, @@ -79,7 +52,7 @@ private IRenderable ItemDetails { get { - if (Items.Count <= 0) return new RenderBlank(); + if (Items.Count <= 0) return RenderBlank.Blank; IRenderable[,] content = new IRenderable[Items.Count, 2]; diff --git a/SolStandard/Entity/General/Item/Weapon.cs b/SolStandard/Entity/General/Item/Weapon.cs index 2ed36834..737877c7 100644 --- a/SolStandard/Entity/General/Item/Weapon.cs +++ b/SolStandard/Entity/General/Item/Weapon.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using Microsoft.Xna.Framework; -using SolStandard.Entity.Unit; using SolStandard.Entity.Unit.Actions; using SolStandard.Entity.Unit.Actions.Item; using SolStandard.Entity.Unit.Actions.Terrain; @@ -67,33 +66,6 @@ public IItem Duplicate() WeaponStatistics.LuckModifier, WeaponStatistics.AtkRange, WeaponStatistics.UsesRemaining, ItemPool); } - public override IRenderable TerrainInfo => - new WindowContentGrid( - new[,] - { - { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - StatusIconProvider.GetStatusIcon(StatusIcon.PickupRange, GameDriver.CellSizeVector), - new RenderText( - AssetManager.WindowFont, - ": " + $"[{string.Join(",", InteractRange)}]" - ) - }, - { - statWindow, - new RenderBlank() - } - }, - 3, - HorizontalAlignment.Centered - ); + protected override IRenderable EntityInfo => statWindow; } } \ No newline at end of file diff --git a/SolStandard/Entity/General/Launchpad.cs b/SolStandard/Entity/General/Launchpad.cs index 37b1bdb7..661b8c00 100644 --- a/SolStandard/Entity/General/Launchpad.cs +++ b/SolStandard/Entity/General/Launchpad.cs @@ -31,37 +31,19 @@ public List TileActions() }; } - public override IRenderable TerrainInfo => + protected override IRenderable EntityInfo => new WindowContentGrid( - new[,] + new IRenderable[,] { { - InfoHeader, - new RenderBlank() + UnitStatistics.GetSpriteAtlas(Stats.AtkRange), + new RenderText(AssetManager.WindowFont, "Interact:"), + new RenderText(AssetManager.WindowFont, $"[{string.Join(",", InteractRange)}]") }, { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - new Window( - new IRenderable[,] - { - { - UnitStatistics.GetSpriteAtlas(Stats.AtkRange), - new RenderText(AssetManager.WindowFont, "Interact:"), - new RenderText(AssetManager.WindowFont, $"[{string.Join(",", InteractRange)}]") - }, - { - UnitStatistics.GetSpriteAtlas(Stats.AtkRange), - new RenderText(AssetManager.WindowFont, "Launch:"), - new RenderText(AssetManager.WindowFont, $"[{string.Join(",", launchRange)}]") - } - }, - InnerWindowColor - ), - new RenderBlank() + UnitStatistics.GetSpriteAtlas(Stats.AtkRange), + new RenderText(AssetManager.WindowFont, "Launch:"), + new RenderText(AssetManager.WindowFont, $"[{string.Join(",", launchRange)}]") } }, 1, diff --git a/SolStandard/Entity/General/Movable.cs b/SolStandard/Entity/General/Movable.cs index fa880c8f..a7f2de0d 100644 --- a/SolStandard/Entity/General/Movable.cs +++ b/SolStandard/Entity/General/Movable.cs @@ -1,8 +1,5 @@ using Microsoft.Xna.Framework; -using SolStandard.Entity.Unit; -using SolStandard.HUD.Window.Content; using SolStandard.Utility; -using SolStandard.Utility.Assets; namespace SolStandard.Entity.General { @@ -13,22 +10,5 @@ public Movable(string name, string type, IRenderable sprite, Vector2 mapCoordina { CanMove = canMove; } - - public override IRenderable TerrainInfo => - new WindowContentGrid( - new[,] - { - { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - } - }, - 3 - ); } } \ No newline at end of file diff --git a/SolStandard/Entity/General/Piston.cs b/SolStandard/Entity/General/Piston.cs index 0b6d2776..47f9b4c5 100644 --- a/SolStandard/Entity/General/Piston.cs +++ b/SolStandard/Entity/General/Piston.cs @@ -1,10 +1,10 @@ using System; +using System.Linq; using Microsoft.Xna.Framework; using SolStandard.Containers; using SolStandard.Containers.Contexts; using SolStandard.Entity.Unit; using SolStandard.Entity.Unit.Actions; -using SolStandard.HUD.Window; using SolStandard.HUD.Window.Content; using SolStandard.Map.Elements.Cursor; using SolStandard.Utility; @@ -95,7 +95,6 @@ public void RemoteTrigger() { GameContext.GameMapContext.MapContainer.AddNewToastAtMapCellCoordinates("No unit in range!", MapCoordinates, 50); - AssetManager.WarningSFX.Play(); } } @@ -106,9 +105,12 @@ private bool CanPush(GameUnit targetUnit) Vector2 targetCoordinates = targetUnit.UnitEntity.MapCoordinates; Vector2 oppositeCoordinates = UnitAction.DetermineOppositeTileOfUnit(MapCoordinates, targetCoordinates); - return UnitMovingContext.CanEndMoveAtCoordinates(targetUnit.UnitEntity, oppositeCoordinates) && targetUnit.IsMovable; + return UnitMovingContext.CanEndMoveAtCoordinates(targetUnit.UnitEntity, oppositeCoordinates) && + targetUnit.IsMovable; } + public bool CanTrigger => GameContext.Units.Any(CanPush); + private void PushTarget(GameUnit target) { Vector2 oppositeCoordinates = @@ -118,35 +120,14 @@ private void PushTarget(GameUnit target) } - public override IRenderable TerrainInfo => - new WindowContentGrid( - new[,] + protected override IRenderable EntityInfo => + new WindowContentGrid(new IRenderable[,] { { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - new Window( - new IRenderable[,] - { - { - UnitStatistics.GetSpriteAtlas(Stats.AtkRange), - new RenderText(AssetManager.WindowFont, "Pushes: " + pistonDirection) - } - }, - InnerWindowColor - ), - new RenderBlank() + UnitStatistics.GetSpriteAtlas(Stats.AtkRange), + new RenderText(AssetManager.WindowFont, "Pushes: " + pistonDirection) } - }, - 1, - HorizontalAlignment.Centered + } ); } } \ No newline at end of file diff --git a/SolStandard/Entity/General/Portal.cs b/SolStandard/Entity/General/Portal.cs index 056758e2..ef7dbe11 100644 --- a/SolStandard/Entity/General/Portal.cs +++ b/SolStandard/Entity/General/Portal.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using Microsoft.Xna.Framework; -using SolStandard.Entity.Unit; using SolStandard.Entity.Unit.Actions; using SolStandard.Entity.Unit.Actions.Terrain; using SolStandard.HUD.Window.Content; @@ -11,15 +10,13 @@ namespace SolStandard.Entity.General { public class Portal : TerrainEntity, IActionTile { - private readonly bool canMove; private readonly string destinationId; public int[] InteractRange { get; } - public Portal(string name, string type, IRenderable sprite, Vector2 mapCoordinates, bool canMove, - string destinationId, int[] range) : + public Portal(string name, string type, IRenderable sprite, Vector2 mapCoordinates, string destinationId, + int[] range) : base(name, type, sprite, mapCoordinates) { - this.canMove = canMove; this.destinationId = destinationId; InteractRange = range; } @@ -32,30 +29,7 @@ public List TileActions() }; } - public override IRenderable TerrainInfo => - new WindowContentGrid( - new[,] - { - { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (canMove) ? "Can Move" : "No Move", - (canMove) ? PositiveColor : NegativeColor) - }, - { - new RenderText(AssetManager.WindowFont, "Destination: " + destinationId), - new RenderBlank() - }, - { - new RenderText(AssetManager.WindowFont, - $"Range: [{string.Join(",", InteractRange)}]"), - new RenderBlank() - } - }, - 3 - ); + protected override IRenderable EntityInfo => + new RenderText(AssetManager.WindowFont, "Destination: " + destinationId); } } \ No newline at end of file diff --git a/SolStandard/Entity/General/PressurePlate.cs b/SolStandard/Entity/General/PressurePlate.cs index 174746a3..91617c1a 100644 --- a/SolStandard/Entity/General/PressurePlate.cs +++ b/SolStandard/Entity/General/PressurePlate.cs @@ -43,7 +43,9 @@ public bool WillTrigger(EffectTriggerTime triggerTime) { if (triggerTime != TriggerTime || HasTriggered) return false; - return ((PlateIsPressed && !wasPressed) || (!PlateIsPressed && wasPressed)); + bool plateStateChanged = ((PlateIsPressed && !wasPressed) || (!PlateIsPressed && wasPressed)); + + return plateStateChanged; } @@ -55,14 +57,14 @@ public bool Trigger(EffectTriggerTime triggerTime) if (PlateIsPressed) { - if ((!wasPressed || lastOccupant != CurrentOccupant) && - ToggleSwitchAction.NothingObstructingSwitchTarget(TriggerTiles)) - { - lastOccupant = CurrentOccupant; - TriggerTiles.ForEach(tile => tile.RemoteTrigger()); - AssetManager.DoorSFX.Play(); - wasPressed = true; - } + if ( + (wasPressed && lastOccupant == CurrentOccupant) || + !ToggleSwitchAction.NothingObstructingSwitchTarget(TriggerTiles) + ) return true; + + lastOccupant = CurrentOccupant; + TriggerTiles.ToList().ForEach(tile => tile.RemoteTrigger()); + wasPressed = true; } else { @@ -111,56 +113,26 @@ private List TriggerTiles private bool PlateIsPressed => UnitIsStandingOnPressurePlate || ItemIsOnPressurePlate; - private bool ItemIsOnPressurePlate - { - get - { - return MapContainer.GetMapElementsFromLayer(Layer.Items) - .Any(item => item.MapCoordinates == MapCoordinates); - } - } + private bool ItemIsOnPressurePlate => MapContainer.GetMapElementsFromLayer(Layer.Items) + .Any(item => item.MapCoordinates == MapCoordinates); - private bool UnitIsStandingOnPressurePlate - { - get - { - return GameContext.Units.Any(unit => - unit.UnitEntity != null && unit.UnitEntity.MapCoordinates == MapCoordinates); - } - } + private bool UnitIsStandingOnPressurePlate => + GameContext.Units.Any(unit => unit.UnitEntity != null && unit.UnitEntity.MapCoordinates == MapCoordinates); - public override IRenderable TerrainInfo => + protected override IRenderable EntityInfo => new WindowContentGrid( - new[,] + new IRenderable[,] { { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) + UnitStatistics.GetSpriteAtlas(Stats.AtkRange), + new RenderText(AssetManager.WindowFont, "Triggers: " + triggersId) }, { - new Window( - new IRenderable[,] - { - { - UnitStatistics.GetSpriteAtlas(Stats.AtkRange), - new RenderText(AssetManager.WindowFont, "Triggers: " + triggersId) - }, - { - UnitStatistics.GetSpriteAtlas(Stats.AtkRange), - new RenderText( - AssetManager.WindowFont, - (triggerOnRelease) ? "On Press/Release" : "On Press" - ) - } - }, - InnerWindowColor - ), - new RenderBlank() + UnitStatistics.GetSpriteAtlas(Stats.AtkRange), + new RenderText( + AssetManager.WindowFont, + (triggerOnRelease) ? "On Press/Release" : "On Press" + ) } }, 1, diff --git a/SolStandard/Entity/General/Railgun.cs b/SolStandard/Entity/General/Railgun.cs index 980e8a29..1cc1ce74 100644 --- a/SolStandard/Entity/General/Railgun.cs +++ b/SolStandard/Entity/General/Railgun.cs @@ -1,13 +1,10 @@ using System.Collections.Generic; using Microsoft.Xna.Framework; using SolStandard.Entity.General.Item; -using SolStandard.Entity.Unit; using SolStandard.Entity.Unit.Actions; using SolStandard.Entity.Unit.Actions.Terrain; using SolStandard.HUD.Window; -using SolStandard.HUD.Window.Content; using SolStandard.Utility; -using SolStandard.Utility.Assets; namespace SolStandard.Entity.General { @@ -37,25 +34,6 @@ public List TileActions() }; } - public override IRenderable TerrainInfo => - new WindowContentGrid( - new[,] - { - { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - statWindow, - new RenderBlank() - } - }, - 1 - ); + protected override IRenderable EntityInfo => statWindow; } } \ No newline at end of file diff --git a/SolStandard/Entity/General/RecoveryTile.cs b/SolStandard/Entity/General/RecoveryTile.cs index 7eb0dda7..ed9a6239 100644 --- a/SolStandard/Entity/General/RecoveryTile.cs +++ b/SolStandard/Entity/General/RecoveryTile.cs @@ -2,7 +2,6 @@ using SolStandard.Containers; using SolStandard.Containers.Contexts; using SolStandard.Entity.Unit; -using SolStandard.HUD.Window; using SolStandard.HUD.Window.Content; using SolStandard.Map.Elements.Cursor; using SolStandard.Utility; @@ -91,11 +90,9 @@ public bool WillTrigger(EffectTriggerTime triggerTime) public bool IsExpired => false; - public override IRenderable TerrainInfo - { - get - { - IRenderable[,] statContent = + protected override IRenderable EntityInfo => + new WindowContentGrid( + new IRenderable[,] { { UnitStatistics.GetSpriteAtlas(Stats.Hp, GameDriver.CellSizeVector), @@ -111,31 +108,7 @@ public override IRenderable TerrainInfo ((amrPerTurn > 0) ? "+" : "") + amrPerTurn ) } - }; - - Window statContentWindow = new Window(statContent, InnerWindowColor); - - return new WindowContentGrid( - new[,] - { - { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - statContentWindow, - new RenderBlank() - } - }, - 3, - HorizontalAlignment.Centered - ); - } - } + } + ); } } \ No newline at end of file diff --git a/SolStandard/Entity/General/SeizeEntity.cs b/SolStandard/Entity/General/SeizeEntity.cs index 56d4425d..47e7994b 100644 --- a/SolStandard/Entity/General/SeizeEntity.cs +++ b/SolStandard/Entity/General/SeizeEntity.cs @@ -34,30 +34,17 @@ public List TileActions() }; } - public override IRenderable TerrainInfo => + protected override IRenderable EntityInfo => new WindowContentGrid( new[,] { - { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText( - AssetManager.WindowFont, - (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor - ) - }, { (CapturableByBlue) ? new Window( new RenderText(AssetManager.WindowFont, "Capturable by Blue"), TeamUtility.DetermineTeamColor(Team.Blue) ) - : new RenderBlank() as IRenderable, - new RenderBlank() + : RenderBlank.Blank }, { (CapturableByRed) @@ -65,11 +52,9 @@ public List TileActions() new RenderText(AssetManager.WindowFont, "Capturable by Red"), TeamUtility.DetermineTeamColor(Team.Red) ) - : new RenderBlank() as IRenderable, - new RenderBlank() - } - }, - 3 + : RenderBlank.Blank + }, + } ); } } \ No newline at end of file diff --git a/SolStandard/Entity/General/SelectMapEntity.cs b/SolStandard/Entity/General/SelectMapEntity.cs index 516dc49f..8264491c 100644 --- a/SolStandard/Entity/General/SelectMapEntity.cs +++ b/SolStandard/Entity/General/SelectMapEntity.cs @@ -38,9 +38,9 @@ public SelectMapEntity(string name, string type, IRenderable sprite, Vector2 map MaxDuplicateUnits = maxDuplicateUnits; SoloTeam = soloTeam; this.mapPreview = (mapPreview == null) - ? new RenderBlank() + ? RenderBlank.Blank : new SpriteAtlas(mapPreview, new Vector2(mapPreview.Width, mapPreview.Height), - FitImageToSize(MaximumPreviewSize, mapPreview)) as IRenderable; + FitImageToSize(MaximumPreviewSize, mapPreview)); } public override IRenderable TerrainInfo => diff --git a/SolStandard/Entity/General/SpringTrap.cs b/SolStandard/Entity/General/SpringTrap.cs index 0a37df6b..b5276871 100644 --- a/SolStandard/Entity/General/SpringTrap.cs +++ b/SolStandard/Entity/General/SpringTrap.cs @@ -2,7 +2,6 @@ using SolStandard.Containers; using SolStandard.Containers.Contexts; using SolStandard.Entity.Unit; -using SolStandard.HUD.Window; using SolStandard.HUD.Window.Content; using SolStandard.Utility; using SolStandard.Utility.Assets; @@ -69,7 +68,7 @@ public bool Trigger(EffectTriggerTime triggerTime) UnitEntity unitEntityOnSpring = MapContainer.GetMapSliceAtCoordinates(MapCoordinates).UnitEntity; GameUnit unitOnSpring = UnitSelector.SelectUnit(unitEntityOnSpring); HasTriggered = true; - + if (!TargetTileIsObstructed) { GameContext.GameMapContext.MapContainer.AddNewToastAtUnit(unitEntityOnSpring, @@ -111,35 +110,15 @@ private static void MoveUnitToCoordinates(GameUnit unitOnSpring, Vector2 targetC } - public override IRenderable TerrainInfo => + protected override IRenderable EntityInfo => new WindowContentGrid( - new[,] + new IRenderable[,] { { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - new Window( - new IRenderable[,] - { - { - UnitStatistics.GetSpriteAtlas(Stats.AtkRange), - new RenderText(AssetManager.WindowFont, "Target: " + trapLaunchCoordinates) - } - }, - InnerWindowColor - ), - new RenderBlank() + UnitStatistics.GetSpriteAtlas(Stats.AtkRange), + new RenderText(AssetManager.WindowFont, "Target: " + trapLaunchCoordinates) } - }, - 1, - HorizontalAlignment.Centered + } ); } } \ No newline at end of file diff --git a/SolStandard/Entity/General/Switch.cs b/SolStandard/Entity/General/Switch.cs index 38108ac1..938586aa 100644 --- a/SolStandard/Entity/General/Switch.cs +++ b/SolStandard/Entity/General/Switch.cs @@ -87,25 +87,15 @@ public void ToggleActive() } } - public override IRenderable TerrainInfo => + protected override IRenderable EntityInfo => new WindowContentGrid( - new[,] + new IRenderable[,] { - { - InfoHeader, - new RenderBlank() - }, { UnitStatistics.GetSpriteAtlas(Stats.AtkRange), new RenderText(AssetManager.WindowFont, "Triggers: " + TriggersId) }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - } - }, - 1 + } ); } } \ No newline at end of file diff --git a/SolStandard/Entity/General/TerrainEntity.cs b/SolStandard/Entity/General/TerrainEntity.cs index 8c452843..633c43db 100644 --- a/SolStandard/Entity/General/TerrainEntity.cs +++ b/SolStandard/Entity/General/TerrainEntity.cs @@ -57,7 +57,7 @@ public class TerrainEntity : MapEntity public static readonly Color NegativeColor = new Color(250, 10, 10); protected static readonly Color InnerWindowColor = new Color(25, 25, 25, 80); - protected IRenderable InfoHeader { get; } + private IRenderable InfoHeader { get; } private IRenderable NameText { get; } private IRenderable TypeText { get; } @@ -76,8 +76,9 @@ protected TerrainEntity(string name, string type, IRenderable sprite, Vector2 ma new[,] { { - new RenderText(AssetManager.WindowFont, $"[ X: {MapCoordinates.X}, Y: {MapCoordinates.Y} ]"), - new RenderBlank() + new RenderText(AssetManager.WindowFont, + $"[ X: {MapCoordinates.X}, Y: {MapCoordinates.Y} ]"), + RenderBlank.Blank }, { Sprite.Clone(), @@ -85,7 +86,7 @@ protected TerrainEntity(string name, string type, IRenderable sprite, Vector2 ma }, { TypeText, - new RenderBlank() + RenderBlank.Blank } } , @@ -103,16 +104,31 @@ protected TerrainEntity(string name, string type, IRenderable sprite, Vector2 ma { { InfoHeader, - new RenderBlank() + RenderBlank.Blank }, { UnitStatistics.GetSpriteAtlas(Stats.Mv), new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", (CanMove) ? PositiveColor : NegativeColor) + }, + { + this is IActionTile + ? StatusIconProvider.GetStatusIcon(StatusIcon.PickupRange, GameDriver.CellSizeVector) + : RenderBlank.Blank, + this is IActionTile actionTile + ? new RenderText(AssetManager.WindowFont, + $": [{string.Join(",", actionTile.InteractRange)}]") + : RenderBlank.Blank + }, + { + new Window(EntityInfo, InnerWindowColor), + RenderBlank.Blank } }, 1, HorizontalAlignment.Centered ); + + protected virtual IRenderable EntityInfo => RenderBlank.Blank; } } \ No newline at end of file diff --git a/SolStandard/Entity/General/TrapEntity.cs b/SolStandard/Entity/General/TrapEntity.cs index 78b95879..baecf2ba 100644 --- a/SolStandard/Entity/General/TrapEntity.cs +++ b/SolStandard/Entity/General/TrapEntity.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; using Microsoft.Xna.Framework; using SolStandard.Containers; using SolStandard.Containers.Contexts; @@ -6,7 +7,6 @@ using SolStandard.Entity.Unit.Actions; using SolStandard.Entity.Unit.Actions.Item; using SolStandard.Entity.Unit.Statuses; -using SolStandard.HUD.Window; using SolStandard.HUD.Window.Content; using SolStandard.Map.Elements.Cursor; using SolStandard.Utility; @@ -56,8 +56,8 @@ public bool Trigger(EffectTriggerTime triggerTime) if (trapUnit == null) return false; - string trapMessage = "Trap activated!" + Environment.NewLine + trapUnit.Id + " takes [" + Damage + - "] damage!"; + string trapMessage = "Trap activated!" + Environment.NewLine + + $"{trapUnit.Id} takes [{Damage}] damage!"; if (willSnare) { @@ -76,7 +76,6 @@ public bool Trigger(EffectTriggerTime triggerTime) trapUnit.DamageUnit(); } - TriggersRemaining--; if (limitedTriggers && TriggersRemaining < 1) @@ -103,12 +102,9 @@ public bool Trigger(EffectTriggerTime triggerTime) public bool WillTrigger(EffectTriggerTime triggerTime) { - if (triggerTime != EffectTriggerTime.StartOfRound || HasTriggered) return false; + if (triggerTime != EffectTriggerTime.StartOfRound || HasTriggered || !enabled) return false; - MapSlice trapSlice = MapContainer.GetMapSliceAtCoordinates(MapCoordinates); - GameUnit trapUnit = UnitSelector.SelectUnit(trapSlice.UnitEntity); - - return trapUnit != null && enabled; + return GameContext.Units.Any(unit => unit?.UnitEntity?.MapCoordinates == MapCoordinates); } public void RemoteTrigger() @@ -143,49 +139,32 @@ private void UpdateSpriteColor() ElementColor = (enabled) ? Color.White : InactiveColor; } - public override IRenderable TerrainInfo => + protected override IRenderable EntityInfo => new WindowContentGrid( - new[,] + new IRenderable[,] { { - InfoHeader, - new RenderBlank() + UnitStatistics.GetSpriteAtlas(Stats.Atk), + new RenderText(AssetManager.WindowFont, "Damage: " + Damage) + }, + { + UnitStatistics.GetSpriteAtlas(Stats.AtkRange), + new RenderText(AssetManager.WindowFont, + (limitedTriggers) ? "Triggers Left: " + TriggersRemaining : "Permanent") }, { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) + willSnare + ? UnitStatistics.GetSpriteAtlas(Stats.Positive) + : UnitStatistics.GetSpriteAtlas(Stats.Negative), + new RenderText(AssetManager.WindowFont, (willSnare) ? "Snares Target" : "No Snare") }, { - new Window(new IRenderable[,] - { - { - UnitStatistics.GetSpriteAtlas(Stats.Atk), - new RenderText(AssetManager.WindowFont, "Damage: " + Damage) - }, - { - UnitStatistics.GetSpriteAtlas(Stats.AtkRange), - new RenderText(AssetManager.WindowFont, - (limitedTriggers) ? "Triggers Left: " + TriggersRemaining : "Permanent") - }, - { - willSnare - ? UnitStatistics.GetSpriteAtlas(Stats.Positive) - : UnitStatistics.GetSpriteAtlas(Stats.Negative), - new RenderText(AssetManager.WindowFont, (willSnare) ? "Snares Target" : "No Snare") - }, - { - willSlow - ? UnitStatistics.GetSpriteAtlas(Stats.Positive) - : UnitStatistics.GetSpriteAtlas(Stats.Negative), - new RenderText(AssetManager.WindowFont, (willSlow) ? "Slows Target" : "No Slow") - } - }, InnerWindowColor), - new RenderBlank() + willSlow + ? UnitStatistics.GetSpriteAtlas(Stats.Positive) + : UnitStatistics.GetSpriteAtlas(Stats.Negative), + new RenderText(AssetManager.WindowFont, (willSlow) ? "Slows Target" : "No Slow") } - }, - 1, - HorizontalAlignment.Centered + } ); public UnitAction UseAction() @@ -195,7 +174,7 @@ public UnitAction UseAction() public UnitAction DropAction() { - return new TradeItemAction(this); + return new DropGiveItemAction(this); } public IItem Duplicate() diff --git a/SolStandard/Entity/General/Vendor.cs b/SolStandard/Entity/General/Vendor.cs index 3fc229b2..1c1f5bd4 100644 --- a/SolStandard/Entity/General/Vendor.cs +++ b/SolStandard/Entity/General/Vendor.cs @@ -2,9 +2,7 @@ using System.Linq; using Microsoft.Xna.Framework; using SolStandard.Containers.Contexts.WinConditions; -using SolStandard.Containers.View; using SolStandard.Entity.General.Item; -using SolStandard.Entity.Unit; using SolStandard.Entity.Unit.Actions; using SolStandard.Entity.Unit.Actions.Terrain; using SolStandard.HUD.Window; @@ -50,7 +48,8 @@ public void RemoveBuyActionForItem(IItem item) foreach (KeyValuePair purchaseActionKeyPair in purchaseActions) { - if (!(purchaseActionKeyPair.Key is VendorPurchase buyAction) || buyAction.Item.Name != item.Name) continue; + if (!(purchaseActionKeyPair.Key is VendorPurchase buyAction) || + buyAction.Item.Name != item.Name) continue; purchaseActions[buyAction]--; @@ -103,40 +102,9 @@ private IRenderable GenerateItemList() $"[{purchaseActions[purchaseActionsList[i]]}]"); } - return new Window( - new WindowContentGrid(itemDetailList, 1, HorizontalAlignment.Centered), - GameMapView.ItemTerrainWindowColor, - HorizontalAlignment.Centered - ); + return new WindowContentGrid(itemDetailList, 1, HorizontalAlignment.Right); } - public override IRenderable TerrainInfo => - new WindowContentGrid( - new[,] - { - { - InfoHeader, - new RenderBlank() - }, - { - UnitStatistics.GetSpriteAtlas(Stats.Mv), - new RenderText(AssetManager.WindowFont, (CanMove) ? "Can Move" : "No Move", - (CanMove) ? PositiveColor : NegativeColor) - }, - { - StatusIconProvider.GetStatusIcon(StatusIcon.PickupRange, GameDriver.CellSizeVector), - new RenderText( - AssetManager.WindowFont, - ": " + $"[{string.Join(",", InteractRange)}]" - ) - }, - { - itemList, - new RenderBlank() - } - }, - 1, - HorizontalAlignment.Centered - ); + protected override IRenderable EntityInfo => itemList; } } \ No newline at end of file diff --git a/SolStandard/Entity/Unit/Actions/Archer/CmdHuntingCompanion.cs b/SolStandard/Entity/Unit/Actions/Archer/CmdHuntingCompanion.cs index 0aaf8b1a..9137e96c 100644 --- a/SolStandard/Entity/Unit/Actions/Archer/CmdHuntingCompanion.cs +++ b/SolStandard/Entity/Unit/Actions/Archer/CmdHuntingCompanion.cs @@ -79,7 +79,7 @@ private static bool CompanionAlreadySummoned { GameUnit summonedPet = GameContext.Units.FirstOrDefault(pet => - pet.Role == PetType && pet.Team == GameContext.ActiveUnit.Team); + pet.Role == PetType && pet.Team == GameContext.ActiveTeam); return summonedPet != null; } diff --git a/SolStandard/Entity/Unit/Actions/Bard/ModeConcerto.cs b/SolStandard/Entity/Unit/Actions/Bard/ModeConcerto.cs index 92a8f9c2..975cdd1b 100644 --- a/SolStandard/Entity/Unit/Actions/Bard/ModeConcerto.cs +++ b/SolStandard/Entity/Unit/Actions/Bard/ModeConcerto.cs @@ -47,7 +47,8 @@ public override void ExecuteAction(MapSlice targetSlice) Queue eventQueue = new Queue(); eventQueue.Enqueue(new CastStatusEffectEvent(targetUnit, new ConcertoStatus())); - eventQueue.Enqueue(new WaitFramesEvent(30)); + eventQueue.Enqueue(new ToastAtCursorEvent("Song range extended at reduced potency!")); + eventQueue.Enqueue(new WaitFramesEvent(50)); eventQueue.Enqueue(new AdditionalActionEvent()); GlobalEventQueue.QueueEvents(eventQueue); } diff --git a/SolStandard/Entity/Unit/Actions/Bard/ModeSolo.cs b/SolStandard/Entity/Unit/Actions/Bard/ModeSolo.cs index 76923b8c..f21e508f 100644 --- a/SolStandard/Entity/Unit/Actions/Bard/ModeSolo.cs +++ b/SolStandard/Entity/Unit/Actions/Bard/ModeSolo.cs @@ -48,7 +48,8 @@ public override void ExecuteAction(MapSlice targetSlice) Queue eventQueue = new Queue(); eventQueue.Enqueue(new CastStatusEffectEvent(targetUnit, new SoloStatus())); - eventQueue.Enqueue(new WaitFramesEvent(30)); + eventQueue.Enqueue(new ToastAtCursorEvent("Song range limited at increased potency!")); + eventQueue.Enqueue(new WaitFramesEvent(50)); eventQueue.Enqueue(new AdditionalActionEvent()); GlobalEventQueue.QueueEvents(eventQueue); } diff --git a/SolStandard/Entity/Unit/Actions/Cavalier/CmdDoubleTime.cs b/SolStandard/Entity/Unit/Actions/Cavalier/CmdDoubleTime.cs index 4bc8c150..ef1bf08d 100644 --- a/SolStandard/Entity/Unit/Actions/Cavalier/CmdDoubleTime.cs +++ b/SolStandard/Entity/Unit/Actions/Cavalier/CmdDoubleTime.cs @@ -71,7 +71,7 @@ private void BuffAlliesInRange() { GameUnit unitAtPosition = UnitSelector.SelectUnit(position.UnitEntity); bool allyIsAtPosition = unitAtPosition != null && - unitAtPosition.Team == GameContext.ActiveUnit.Team; + unitAtPosition.Team == GameContext.ActiveTeam; if (allyIsAtPosition) { eventQueue.Enqueue( diff --git a/SolStandard/Entity/Unit/Actions/Champion/Fortify.cs b/SolStandard/Entity/Unit/Actions/Champion/Fortify.cs index c007234a..b6521ec4 100644 --- a/SolStandard/Entity/Unit/Actions/Champion/Fortify.cs +++ b/SolStandard/Entity/Unit/Actions/Champion/Fortify.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using SolStandard.Containers; using SolStandard.Containers.Contexts; -using SolStandard.Entity.Unit.Statuses; +using SolStandard.Entity.Unit.Statuses.Champion; using SolStandard.Map.Elements; using SolStandard.Map.Elements.Cursor; using SolStandard.Utility; diff --git a/SolStandard/Entity/Unit/Actions/Creeps/BasicAttackRoutine.cs b/SolStandard/Entity/Unit/Actions/Creeps/BasicAttackRoutine.cs index 166513da..30566ff0 100644 --- a/SolStandard/Entity/Unit/Actions/Creeps/BasicAttackRoutine.cs +++ b/SolStandard/Entity/Unit/Actions/Creeps/BasicAttackRoutine.cs @@ -99,7 +99,7 @@ protected static List> TilesWithinThreatRangeFor { if (targetUnit.UnitEntity == null) continue; if (targetUnit.UnitEntity == GameContext.ActiveUnit.UnitEntity) continue; - if (!isIndependent && targetUnit.Team == GameContext.ActiveUnit.Team) continue; + if (!isIndependent && targetUnit.Team == GameContext.ActiveTeam) continue; unitTargetingContext.GenerateTargetingGrid(targetUnit.UnitEntity.MapCoordinates, creep.AtkRange, Layer.Preview); @@ -116,6 +116,8 @@ protected static List> TilesWithinThreatRangeFor MapContainer.ClearPreviewGrid(); } + + MapContainer.ClearDynamicAndPreviewGrids(); return attackPositionsInRange; } diff --git a/SolStandard/Entity/Unit/Actions/DropGiveGoldAction.cs b/SolStandard/Entity/Unit/Actions/DropGiveGoldAction.cs index 57b39ef6..971d29f4 100644 --- a/SolStandard/Entity/Unit/Actions/DropGiveGoldAction.cs +++ b/SolStandard/Entity/Unit/Actions/DropGiveGoldAction.cs @@ -41,8 +41,8 @@ private static WindowContentGrid GenerateActionDescription() ObjectiveIconProvider.GetObjectiveIcon(VictoryConditions.Taxes, iconSize), new RenderText(AssetManager.WindowFont, Currency.CurrencyAbbreviation + " on an empty item tile or give it to an ally."), - new RenderBlank(), - new RenderBlank() + RenderBlank.Blank, + RenderBlank.Blank }, { new RenderText(AssetManager.WindowFont, "Adjust value to give with "), @@ -61,7 +61,7 @@ private Spoils GenerateMoneyBag(Vector2 mapCoordinates) return new Spoils( "Money Bag", "Spoils", - new SpriteAtlas(AssetManager.SpoilsIcon, GameDriver.CellSizeVector), + MiscIconProvider.GetMiscIcon(MiscIcon.Spoils, GameDriver.CellSizeVector), mapCoordinates, Value, new List() @@ -70,7 +70,7 @@ private Spoils GenerateMoneyBag(Vector2 mapCoordinates) public void Increment(int amountToIncrement) { - int activeUnitCurrentGold = GameContext.ActiveUnit.CurrentGold; + int activeUnitCurrentGold = GameContext.ActiveUnit.CurrentBounty; if (Value + amountToIncrement > activeUnitCurrentGold) { @@ -118,7 +118,7 @@ public override void ExecuteAction(MapSlice targetSlice) else if (CanPlaceItemAtSlice(targetSlice)) { Queue eventQueue = new Queue(); - eventQueue.Enqueue(new DecreaseUnitGoldEvent(Value)); + eventQueue.Enqueue(new DecreaseTeamGoldEvent(Value)); eventQueue.Enqueue(new PlaceEntityOnMapEvent( GenerateMoneyBag(targetSlice.MapCoordinates), Layer.Items, AssetManager.DropItemSFX) ); diff --git a/SolStandard/Entity/Unit/Actions/Duelist/Focus.cs b/SolStandard/Entity/Unit/Actions/Duelist/Focus.cs index 81cdc9f9..61e1c245 100644 --- a/SolStandard/Entity/Unit/Actions/Duelist/Focus.cs +++ b/SolStandard/Entity/Unit/Actions/Duelist/Focus.cs @@ -17,7 +17,7 @@ public Focus(int maxActions) : base( icon: SkillIconProvider.GetSkillIcon(SkillIcon.Focus, GameDriver.CellSizeVector), name: "Focus", description: "End your action now and store it for later. Can store up to " + maxActions + - " actions at a time.", + " action(s) at a time.", tileSprite: MapDistanceTile.GetTileSprite(MapDistanceTile.TileType.Action), range: new[] {0}, freeAction: false @@ -40,7 +40,7 @@ public override void ExecuteAction(MapSlice targetSlice) AssetManager.SkillBuffSFX.Play(); AssetManager.MenuConfirmSFX.Play(); GlobalEventQueue.QueueSingleEvent( - new CastStatusEffectEvent(targetUnit, new FocusStatus(currentFocus.FocusPoints + 1)) + new CastStatusEffectEvent(targetUnit, new FocusStatus(currentFocus.FocusPoints + 1, false)) ); GlobalEventQueue.QueueSingleEvent(new EndTurnEvent()); } @@ -52,7 +52,7 @@ public override void ExecuteAction(MapSlice targetSlice) } else { - GlobalEventQueue.QueueSingleEvent(new CastStatusEffectEvent(targetUnit, new FocusStatus(1))); + GlobalEventQueue.QueueSingleEvent(new CastStatusEffectEvent(targetUnit, new FocusStatus(1, false))); GlobalEventQueue.QueueSingleEvent(new EndTurnEvent()); } } diff --git a/SolStandard/Entity/Unit/Actions/Duelist/WeightedWoe.cs b/SolStandard/Entity/Unit/Actions/Duelist/WeightedWoe.cs deleted file mode 100644 index 3afde376..00000000 --- a/SolStandard/Entity/Unit/Actions/Duelist/WeightedWoe.cs +++ /dev/null @@ -1,47 +0,0 @@ -using SolStandard.Containers.Contexts; -using SolStandard.Entity.General.Item; -using SolStandard.Map.Elements; -using SolStandard.Map.Elements.Cursor; -using SolStandard.Utility; -using SolStandard.Utility.Assets; -using SolStandard.Utility.Events; - -namespace SolStandard.Entity.Unit.Actions.Duelist -{ - public class WeightedWoe : UnitAction - { - public WeightedWoe() : base( - //TODO New Icon - icon: SkillIconProvider.GetSkillIcon(SkillIcon.BasicAttack, GameDriver.CellSizeVector), - name: "Weighted Woe", - description: - $"Attack an enemy unit, dealing damage equal to their missing {UnitStatistics.Abbreviation[Stats.Armor]}.", - tileSprite: MapDistanceTile.GetTileSprite(MapDistanceTile.TileType.Attack), - range: new[] {1}, - freeAction: false - ) - { - } - - public override void ExecuteAction(MapSlice targetSlice) - { - GameUnit targetUnit = UnitSelector.SelectUnit(targetSlice.UnitEntity); - - if (TargetIsAnEnemyInRange(targetSlice, targetUnit)) - { - int targetMissingArmor = targetUnit.Stats.MaxArmor - targetUnit.Stats.CurrentArmor; - WeaponStatistics antiArmorWeapon = new WeaponStatistics(targetMissingArmor, 0, Range, 1); - GlobalEventQueue.QueueSingleEvent(new StartCombatEvent( - targetUnit, - false, - GameContext.ActiveUnit.Stats.ApplyWeaponStatistics(antiArmorWeapon, true) - )); - } - else - { - GameContext.GameMapContext.MapContainer.AddNewToastAtMapCursor("Can't attack here!", 50); - AssetManager.WarningSFX.Play(); - } - } - } -} \ No newline at end of file diff --git a/SolStandard/Entity/Unit/Actions/IRoutine.cs b/SolStandard/Entity/Unit/Actions/IRoutine.cs index 2bcb43ad..a526af5f 100644 --- a/SolStandard/Entity/Unit/Actions/IRoutine.cs +++ b/SolStandard/Entity/Unit/Actions/IRoutine.cs @@ -5,6 +5,9 @@ namespace SolStandard.Entity.Unit.Actions { public interface IRoutine { + string Name { get; } + IRenderable Description { get; } + IRenderable Icon { get; } IRenderable MapIcon { get; } bool CanBeReadied(CreepUnit creep); bool CanExecute { get; } diff --git a/SolStandard/Entity/Unit/Actions/Item/ConsumeBuffItemAction.cs b/SolStandard/Entity/Unit/Actions/Item/ConsumeBuffItemAction.cs index 0428cbe0..81030466 100644 --- a/SolStandard/Entity/Unit/Actions/Item/ConsumeBuffItemAction.cs +++ b/SolStandard/Entity/Unit/Actions/Item/ConsumeBuffItemAction.cs @@ -44,8 +44,7 @@ private static IRenderable ItemDescription(Stats statistic, int statModifier, in $"{UnitStatistics.Abbreviation[statistic]} by [{statModifier}] for [{buffDuration}] turns." ) } - }, - 1 + } ); } diff --git a/SolStandard/Entity/Unit/Actions/Item/DeployBombAction.cs b/SolStandard/Entity/Unit/Actions/Item/DeployBombAction.cs index 9a6c066b..4dfa22c8 100644 --- a/SolStandard/Entity/Unit/Actions/Item/DeployBombAction.cs +++ b/SolStandard/Entity/Unit/Actions/Item/DeployBombAction.cs @@ -17,9 +17,11 @@ public class DeployBombAction : UnitAction public DeployBombAction(Bomb bombToDeploy, int fuseTurns) : base( icon: bombToDeploy.RenderSprite.Clone(), name: "Set Bomb", - description: "Place a bomb on an unoccupied tile. Will detonate after [" + fuseTurns + "] rounds." + + description: $"Place a bomb on an unoccupied tile that will explode for [{bombToDeploy.Damage}] damage." + Environment.NewLine + - "Will detonate in a [" + string.Join(",", bombToDeploy.Range) + "] tile range." + + $"Will detonate after [{fuseTurns}] rounds." + + Environment.NewLine + + $"Will detonate in a [{string.Join(",", bombToDeploy.Range)}] tile range." + Environment.NewLine + "Cannot be picked up once placed!", tileSprite: MapDistanceTile.GetTileSprite(MapDistanceTile.TileType.Action), diff --git a/SolStandard/Entity/Unit/Actions/Item/DropGiveItemAction.cs b/SolStandard/Entity/Unit/Actions/Item/DropGiveItemAction.cs index 58693711..0eb39bff 100644 --- a/SolStandard/Entity/Unit/Actions/Item/DropGiveItemAction.cs +++ b/SolStandard/Entity/Unit/Actions/Item/DropGiveItemAction.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using SolStandard.Containers.Contexts; using SolStandard.Entity.General; +using SolStandard.Entity.General.Item; using SolStandard.Map.Elements; using SolStandard.Map.Elements.Cursor; using SolStandard.Utility; @@ -52,8 +53,15 @@ public override void ExecuteAction(MapSlice targetSlice) private static bool CanPlaceItemAtSlice(TerrainEntity itemTile, MapSlice targetSlice) { - return targetSlice.ItemEntity == null && itemTile != null && targetSlice.DynamicEntity != null && - UnitMovingContext.CanEndMoveAtCoordinates(targetSlice.MapCoordinates); + return ( + targetSlice.ItemEntity == null + || targetSlice.ItemEntity is Spoils + || targetSlice.ItemEntity is IItem + || targetSlice.ItemEntity is Currency + ) + && itemTile != null + && targetSlice.DynamicEntity != null + && UnitMovingContext.CanEndMoveAtCoordinates(targetSlice.MapCoordinates); } } } \ No newline at end of file diff --git a/SolStandard/Entity/Unit/Actions/Item/TakeItemAction.cs b/SolStandard/Entity/Unit/Actions/Item/TakeItemAction.cs new file mode 100644 index 00000000..de610418 --- /dev/null +++ b/SolStandard/Entity/Unit/Actions/Item/TakeItemAction.cs @@ -0,0 +1,59 @@ +using SolStandard.Containers; +using SolStandard.Containers.Contexts; +using SolStandard.Map.Elements; +using SolStandard.Map.Elements.Cursor; +using SolStandard.Utility; +using SolStandard.Utility.Assets; + +namespace SolStandard.Entity.Unit.Actions.Item +{ + public class TakeItemAction : UnitAction + { + public TakeItemAction() : base( + icon: MiscIconProvider.GetMiscIcon(MiscIcon.Spoils, GameDriver.CellSizeVector), + name: "Take Item", + description: "Take this item from an ally in range.", + tileSprite: MapDistanceTile.GetTileSprite(MapDistanceTile.TileType.Action), + range: new[] {1}, + freeAction: true + ) + { + } + + public override void ExecuteAction(MapSlice targetSlice) + { + GameUnit targetUnit = UnitSelector.SelectUnit(targetSlice.UnitEntity); + + if (TargetIsAnAllyInRange(targetSlice, targetUnit)) + { + if (targetUnit.Inventory.Count > 0) + { + MapContainer.ClearDynamicAndPreviewGrids(); + GameContext.GameMapContext.OpenTakeItemMenu(targetUnit, true); + } + else + { + GameContext.GameMapContext.MapContainer.AddNewToastAtMapCursor( + "Target has no items in inventory!", 50 + ); + AssetManager.WarningSFX.Play(); + } + } + else + { + GameContext.GameMapContext.MapContainer.AddNewToastAtMapCursor("Invalid target!", 50); + AssetManager.WarningSFX.Play(); + } + } + + public static void TakeItemFromInventory(GameUnit taker, GameUnit takenFrom, IItem itemToTake) + { + if (!takenFrom.Inventory.Contains(itemToTake)) return; + + taker.AddItemToInventory(itemToTake); + takenFrom.RemoveItemFromInventory(itemToTake); + AssetManager.CombatBlockSFX.Play(); + GameContext.GameMapContext.MapContainer.AddNewToastAtMapCursor($"Took {itemToTake.Name}!", 50); + } + } +} \ No newline at end of file diff --git a/SolStandard/Entity/Unit/Actions/Item/TradeItemAction.cs b/SolStandard/Entity/Unit/Actions/Item/TradeItemAction.cs index 1aaacdef..2f0a960d 100644 --- a/SolStandard/Entity/Unit/Actions/Item/TradeItemAction.cs +++ b/SolStandard/Entity/Unit/Actions/Item/TradeItemAction.cs @@ -25,6 +25,11 @@ public TradeItemAction(IItem item) : base( } public override void ExecuteAction(MapSlice targetSlice) + { + GiveItemToAlly(targetSlice); + } + + private void GiveItemToAlly(MapSlice targetSlice) { GameUnit actingUnit = GameContext.ActiveUnit; GameUnit targetUnit = UnitSelector.SelectUnit(targetSlice.UnitEntity); diff --git a/SolStandard/Entity/Unit/Actions/Lancer/Execute.cs b/SolStandard/Entity/Unit/Actions/Lancer/Execute.cs index cf1954f2..d5b4db7c 100644 --- a/SolStandard/Entity/Unit/Actions/Lancer/Execute.cs +++ b/SolStandard/Entity/Unit/Actions/Lancer/Execute.cs @@ -3,7 +3,7 @@ using Microsoft.Xna.Framework; using SolStandard.Containers.Contexts; using SolStandard.Entity.General.Item; -using SolStandard.Entity.Unit.Statuses; +using SolStandard.Entity.Unit.Statuses.Lancer; using SolStandard.Map; using SolStandard.Map.Elements; using SolStandard.Map.Elements.Cursor; diff --git a/SolStandard/Entity/Unit/Actions/LayTrap.cs b/SolStandard/Entity/Unit/Actions/LayTrap.cs index ca7e638d..cf09f074 100644 --- a/SolStandard/Entity/Unit/Actions/LayTrap.cs +++ b/SolStandard/Entity/Unit/Actions/LayTrap.cs @@ -24,9 +24,10 @@ protected LayTrap(IRenderable skillIcon, IRenderable trapSprite, string title, i : base( icon: skillIcon.Clone(), name: title, - description: description ?? ("Place a tile that will deal [" + damage + - "] damage to units that start their turn on it." + Environment.NewLine + - "Max activations: [" + maxTriggers + "]"), + description: description ?? + ($"Place a tile that will deal [{damage}] damage to units that start their turn on it." + + Environment.NewLine + + $"Max activations: [{maxTriggers}]"), tileSprite: MapDistanceTile.GetTileSprite(MapDistanceTile.TileType.Action), range: range, freeAction: freeAction @@ -39,14 +40,15 @@ protected LayTrap(IRenderable skillIcon, IRenderable trapSprite, string title, i public LayTrap(TrapEntity trapItem) : base( - icon: trapItem.RenderSprite, + icon: trapItem.RenderSprite.Clone(), name: "Place Trap", - description: "Place a tile that will deal [" + trapItem.Damage + - "] damage to units that start their turn on it." + Environment.NewLine + - "Max activations: [" + trapItem.TriggersRemaining + "]", + description: + $"Place a tile that will deal [{trapItem.Damage}] damage to units that start their turn on it." + + Environment.NewLine + + $"Max activations: [{trapItem.TriggersRemaining}]", tileSprite: MapDistanceTile.GetTileSprite(MapDistanceTile.TileType.Action), range: new[] {1}, - freeAction: false + freeAction: true ) { this.trapItem = trapItem; @@ -79,7 +81,16 @@ public override void ExecuteAction(MapSlice targetSlice) ); eventQueue.Enqueue(new PlaceEntityOnMapEvent((TrapEntity) trapToPlace.Duplicate(), Layer.Entities, AssetManager.DropItemSFX)); - eventQueue.Enqueue(new EndTurnEvent()); + + if (FreeAction) + { + eventQueue.Enqueue(new AdditionalActionEvent()); + } + else + { + eventQueue.Enqueue(new EndTurnEvent()); + } + GlobalEventQueue.QueueEvents(eventQueue); } else diff --git a/SolStandard/Entity/Unit/Actions/Mage/Frostbite.cs b/SolStandard/Entity/Unit/Actions/Mage/Frostbite.cs index 7550af29..4835aa4d 100644 --- a/SolStandard/Entity/Unit/Actions/Mage/Frostbite.cs +++ b/SolStandard/Entity/Unit/Actions/Mage/Frostbite.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using Microsoft.Xna.Framework; using SolStandard.Containers; using SolStandard.Containers.Contexts; @@ -22,7 +23,7 @@ public Frostbite(int damage, int maxTriggers) : base( maxTriggers: maxTriggers, range: new[] {0, 1}, description: - $"Place a trap that will deal [{damage}] damage and slow units that start their turn on it." + + $"Place a trap that will deal [{damage}] damage and slow units that start the round on it." + Environment.NewLine + $"Max activations: [{maxTriggers}]", freeAction: true @@ -39,17 +40,11 @@ public override void GenerateActionGrid(Vector2 origin, Layer mapLayer = Layer.D private static void RemoveActionTilesOnUnplaceableSpaces(Layer mapLayer) { - List tilesToRemove = new List(); - List targetTiles = MapContainer.GetMapElementsFromLayer(mapLayer); - foreach (MapElement element in targetTiles) - { - if (TargetHasEntityOrWall(MapContainer.GetMapSliceAtCoordinates(element.MapCoordinates))) - { - tilesToRemove.Add(element); - } - } + List tilesToRemove = targetTiles + .Where(element => TargetHasEntityOrWall(MapContainer.GetMapSliceAtCoordinates(element.MapCoordinates))) + .ToList(); foreach (MapElement tile in tilesToRemove) { @@ -64,8 +59,7 @@ public override void ExecuteAction(MapSlice targetSlice) if (!TargetHasEntityOrWall(targetSlice)) { TrapEntity trapToPlace = new TrapEntity("Ice Spikes", TrapSprite.Clone(), - targetSlice.MapCoordinates, Damage, - MaxTriggers, true, true, false, true); + targetSlice.MapCoordinates, Damage, MaxTriggers, true, true, false, true); MapContainer.ClearDynamicAndPreviewGrids(); Queue eventQueue = new Queue(); diff --git a/SolStandard/Entity/Unit/Actions/Mage/Inferno.cs b/SolStandard/Entity/Unit/Actions/Mage/Inferno.cs index d66763d4..7c4ace08 100644 --- a/SolStandard/Entity/Unit/Actions/Mage/Inferno.cs +++ b/SolStandard/Entity/Unit/Actions/Mage/Inferno.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using Microsoft.Xna.Framework; using SolStandard.Containers; using SolStandard.Containers.Contexts; @@ -20,15 +21,16 @@ public Inferno(int damage, int maxTriggers) : base( title: "Pyromancy - Inferno", damage: damage, maxTriggers: maxTriggers, - range: new[] {1}, - description: "Place up to 4 traps around you that will deal [" + damage + - "] damage to units that start their turn on it." + Environment.NewLine + - "Max activations: [" + maxTriggers + "]", + range: new[] {0, 1}, + description: $"Place a trap that will deal [{damage}] damage to units that start the round on it." + + Environment.NewLine + + $"Max activations: [{maxTriggers}]", freeAction: true ) { } + public override void GenerateActionGrid(Vector2 origin, Layer mapLayer = Layer.Dynamic) { UnitTargetingContext unitTargetingContext = new UnitTargetingContext(TileSprite); @@ -38,17 +40,11 @@ public override void GenerateActionGrid(Vector2 origin, Layer mapLayer = Layer.D private static void RemoveActionTilesOnUnplaceableSpaces(Layer mapLayer) { - List tilesToRemove = new List(); - List targetTiles = MapContainer.GetMapElementsFromLayer(mapLayer); - foreach (MapElement element in targetTiles) - { - if (TargetHasEntityOrWall(MapContainer.GetMapSliceAtCoordinates(element.MapCoordinates))) - { - tilesToRemove.Add(element); - } - } + List tilesToRemove = targetTiles + .Where(element => TargetHasEntityOrWall(MapContainer.GetMapSliceAtCoordinates(element.MapCoordinates))) + .ToList(); foreach (MapElement tile in tilesToRemove) { @@ -60,36 +56,27 @@ public override void ExecuteAction(MapSlice targetSlice) { if (TargetIsInRange(targetSlice)) { - bool allTilesObstructed = true; - - Queue eventQueue = new Queue(); - - foreach (MapElement targetTile in MapContainer.GetMapElementsFromLayer(Layer.Dynamic)) + if (!TargetHasEntityOrWall(targetSlice)) { - MapSlice slice = MapContainer.GetMapSliceAtCoordinates(targetTile.MapCoordinates); - - if (TargetHasEntityOrWall(slice)) continue; - - TrapEntity trap = new TrapEntity("Fire", TrapSprite.Clone(), slice.MapCoordinates, Damage, - MaxTriggers, true, true); + TrapEntity trapToPlace = new TrapEntity("Fire", TrapSprite.Clone(), targetSlice.MapCoordinates, + Damage, MaxTriggers, true, true); MapContainer.ClearDynamicAndPreviewGrids(); - - eventQueue.Enqueue(new PlaceEntityOnMapEvent(trap, Layer.Entities, AssetManager.DropItemSFX)); - allTilesObstructed = false; - } - - if (allTilesObstructed) - { - GameContext.GameMapContext.MapContainer.AddNewToastAtMapCursor("All tiles are obstructed!", 50); - AssetManager.WarningSFX.Play(); - } - else - { + Queue eventQueue = new Queue(); + eventQueue.Enqueue( + new PlayAnimationAtCoordinatesEvent(AnimatedIconType.Interact, targetSlice.MapCoordinates) + ); + eventQueue.Enqueue(new PlaceEntityOnMapEvent((TrapEntity) trapToPlace.Duplicate(), Layer.Entities, + AssetManager.DropItemSFX)); eventQueue.Enqueue(new WaitFramesEvent(30)); eventQueue.Enqueue(new AdditionalActionEvent()); GlobalEventQueue.QueueEvents(eventQueue); } + else + { + GameContext.GameMapContext.MapContainer.AddNewToastAtMapCursor("Target is obstructed!", 50); + AssetManager.WarningSFX.Play(); + } } else { diff --git a/SolStandard/Entity/Unit/Actions/Marauder/CmdBerserk.cs b/SolStandard/Entity/Unit/Actions/Marauder/CmdBerserk.cs index 22e76e3d..dd548e91 100644 --- a/SolStandard/Entity/Unit/Actions/Marauder/CmdBerserk.cs +++ b/SolStandard/Entity/Unit/Actions/Marauder/CmdBerserk.cs @@ -42,10 +42,10 @@ private static WindowContentGrid GenerateActionDescription(int cmdCost) new RenderText(AssetManager.WindowFont, "As a free action, deal X damage to self. Cannot deal fatal damage." + Environment.NewLine + $"Costs {cmdCost}{UnitStatistics.Abbreviation[Stats.CommandPoints]}."), - new RenderBlank(), - new RenderBlank(), - new RenderBlank(), - new RenderBlank() + RenderBlank.Blank, + RenderBlank.Blank, + RenderBlank.Blank, + RenderBlank.Blank }, { new RenderText(AssetManager.WindowFont, "Adjust damage value with "), diff --git a/SolStandard/Entity/Unit/Actions/Rogue/Rob.cs b/SolStandard/Entity/Unit/Actions/Rogue/Rob.cs index 8be14d27..da86cf94 100644 --- a/SolStandard/Entity/Unit/Actions/Rogue/Rob.cs +++ b/SolStandard/Entity/Unit/Actions/Rogue/Rob.cs @@ -13,7 +13,7 @@ public class Rob : UnitAction public Rob() : base( icon: SkillIconProvider.GetSkillIcon(SkillIcon.Rob, GameDriver.CellSizeVector), name: "Rob", - description: "Take one item that another unit is holding." + Environment.NewLine + + description: "Take one item that an enemy is holding." + Environment.NewLine + $"Will not work if target has any {UnitStatistics.Abbreviation[Stats.Armor]} remaining.", tileSprite: MapDistanceTile.GetTileSprite(MapDistanceTile.TileType.Action), range: new[] {1}, @@ -26,14 +26,14 @@ public override void ExecuteAction(MapSlice targetSlice) { GameUnit targetUnit = UnitSelector.SelectUnit(targetSlice.UnitEntity); - if (TargetIsUnitInRange(targetSlice, targetUnit)) + if (TargetIsAnEnemyInRange(targetSlice, targetUnit)) { if (targetUnit.Stats.CurrentArmor == 0) { if (targetUnit.Inventory.Count > 0) { MapContainer.ClearDynamicAndPreviewGrids(); - GameContext.GameMapContext.OpenStealMenu(targetUnit); + GameContext.GameMapContext.OpenTakeItemMenu(targetUnit, false); } else { @@ -58,16 +58,5 @@ public override void ExecuteAction(MapSlice targetSlice) } } - public static void StealItemFromInventory(GameUnit thief, GameUnit target, IItem itemToSteal) - { - if (!target.Inventory.Contains(itemToSteal)) return; - - thief.AddItemToInventory(itemToSteal); - target.RemoveItemFromInventory(itemToSteal); - AssetManager.CombatBlockSFX.Play(); - GameContext.GameMapContext.MapContainer.AddNewToastAtMapCursor( - $"Stole {itemToSteal.Name}!", 50 - ); - } } } \ No newline at end of file diff --git a/SolStandard/Entity/Unit/Actions/SpawnUnitAction.cs b/SolStandard/Entity/Unit/Actions/SpawnUnitAction.cs index 3e695fec..49f290c4 100644 --- a/SolStandard/Entity/Unit/Actions/SpawnUnitAction.cs +++ b/SolStandard/Entity/Unit/Actions/SpawnUnitAction.cs @@ -31,7 +31,7 @@ public SpawnUnitAction(Role unitRole, IItem spawnItem = null) : base( private static IRenderable UnitIcon(Role role) { ITexture2D unitPortrait = UnitGenerator.GetUnitPortrait(role, - (GameContext.ActiveUnit != null) ? GameContext.ActiveUnit.Team : Team.Blue); + (GameContext.ActiveUnit != null) ? GameContext.ActiveTeam : Team.Blue); return new SpriteAtlas(unitPortrait, new Vector2(unitPortrait.Width, unitPortrait.Height), GameDriver.CellSizeVector @@ -51,7 +51,7 @@ public override void ExecuteAction(MapSlice targetSlice) eventQueue.Enqueue( new SpawnUnitEvent( unitRole, - GameContext.ActiveUnit.Team, + GameContext.ActiveTeam, targetSlice.MapCoordinates ) ); diff --git a/SolStandard/Entity/Unit/Actions/Terrain/BankDeposit.cs b/SolStandard/Entity/Unit/Actions/Terrain/BankDeposit.cs index bb072e27..4ef5799f 100644 --- a/SolStandard/Entity/Unit/Actions/Terrain/BankDeposit.cs +++ b/SolStandard/Entity/Unit/Actions/Terrain/BankDeposit.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using SolStandard.Containers; @@ -54,19 +53,19 @@ private static WindowContentGrid GenerateActionDescription() { new RenderText(AssetManager.WindowFont, "Deposit"), ObjectiveIconProvider.GetObjectiveIcon(VictoryConditions.Taxes, iconSize), + new RenderText(AssetManager.WindowFont, Currency.CurrencyAbbreviation + " in the bank."), + RenderBlank.Blank + }, + { new RenderText(AssetManager.WindowFont, - Currency.CurrencyAbbreviation + - " in the bank." + Environment.NewLine + - "Value will still count towards your total for Taxes victory."), - new RenderBlank(), - new RenderBlank() + "This will count towards the Deposit victory condition."), + RenderBlank.Blank, RenderBlank.Blank, RenderBlank.Blank }, { new RenderText(AssetManager.WindowFont, "Adjust value to deposit with "), InputIconProvider.GetInputIcon(Input.TabLeft, iconSize), new RenderText(AssetManager.WindowFont, " and "), - InputIconProvider.GetInputIcon(Input.TabRight, iconSize), - new RenderText(AssetManager.WindowFont, "") + InputIconProvider.GetInputIcon(Input.TabRight, iconSize) } }, 2 @@ -75,11 +74,11 @@ private static WindowContentGrid GenerateActionDescription() public void Increment(int amountToIncrement) { - int activeUnitCurrentGold = GameContext.ActiveUnit.CurrentGold; + int maxGold = GameContext.InitiativeContext.GetGoldForTeam(GameContext.ActiveTeam); - if (Value + amountToIncrement > activeUnitCurrentGold) + if (Value + amountToIncrement > maxGold) { - Value = activeUnitCurrentGold; + Value = maxGold; } else { diff --git a/SolStandard/Entity/Unit/Actions/Terrain/BankWithdraw.cs b/SolStandard/Entity/Unit/Actions/Terrain/BankWithdraw.cs index b8b32161..fb942898 100644 --- a/SolStandard/Entity/Unit/Actions/Terrain/BankWithdraw.cs +++ b/SolStandard/Entity/Unit/Actions/Terrain/BankWithdraw.cs @@ -54,8 +54,8 @@ private static WindowContentGrid GenerateActionDescription() new RenderText(AssetManager.WindowFont, "Withdraw"), ObjectiveIconProvider.GetObjectiveIcon(VictoryConditions.Taxes, iconSize), new RenderText(AssetManager.WindowFont, Currency.CurrencyAbbreviation + " from the bank."), - new RenderBlank(), - new RenderBlank() + RenderBlank.Blank, + RenderBlank.Blank }, { new RenderText(AssetManager.WindowFont, "Adjust value to withdraw with "), @@ -71,11 +71,11 @@ private static WindowContentGrid GenerateActionDescription() public void Increment(int amountToIncrement) { - int bankCurrentGold = Bank.GetTeamGoldInBank(GameContext.ActiveUnit.Team); + int maxGold = Bank.GetTeamGoldInBank(GameContext.ActiveTeam); - if (Value + amountToIncrement > bankCurrentGold) + if (Value + amountToIncrement > maxGold) { - Value = bankCurrentGold; + Value = maxGold; } else { diff --git a/SolStandard/Entity/Unit/Actions/Terrain/EscapeAction.cs b/SolStandard/Entity/Unit/Actions/Terrain/EscapeAction.cs index 20a313c3..ba42e93e 100644 --- a/SolStandard/Entity/Unit/Actions/Terrain/EscapeAction.cs +++ b/SolStandard/Entity/Unit/Actions/Terrain/EscapeAction.cs @@ -131,7 +131,7 @@ private bool UnitCanUseTile { get { - switch (GameContext.ActiveUnit.Team) + switch (GameContext.ActiveTeam) { case Team.Red: return escapeEntity.UseableByRed; diff --git a/SolStandard/Entity/Unit/Actions/Terrain/OpenChestAction.cs b/SolStandard/Entity/Unit/Actions/Terrain/OpenChestAction.cs index 0e93652c..ba393dd0 100644 --- a/SolStandard/Entity/Unit/Actions/Terrain/OpenChestAction.cs +++ b/SolStandard/Entity/Unit/Actions/Terrain/OpenChestAction.cs @@ -65,7 +65,7 @@ public override void ExecuteAction(MapSlice targetSlice) if (chest.Gold > 0) { - eventQueue.Enqueue(new IncreaseUnitGoldEvent(chest.Gold)); + eventQueue.Enqueue(new IncreaseTeamGoldEvent(chest.Gold)); eventQueue.Enqueue(new WaitFramesEvent(20)); } diff --git a/SolStandard/Entity/Unit/Actions/Terrain/SeizeAction.cs b/SolStandard/Entity/Unit/Actions/Terrain/SeizeAction.cs index 9735ef11..ede14033 100644 --- a/SolStandard/Entity/Unit/Actions/Terrain/SeizeAction.cs +++ b/SolStandard/Entity/Unit/Actions/Terrain/SeizeAction.cs @@ -46,7 +46,7 @@ public override void ExecuteAction(MapSlice targetSlice) MapContainer.ClearDynamicAndPreviewGrids(); Queue eventQueue = new Queue(); - eventQueue.Enqueue(new SeizeObjectiveEvent(GameContext.ActiveUnit.Team)); + eventQueue.Enqueue(new SeizeObjectiveEvent(GameContext.ActiveTeam)); eventQueue.Enqueue(new WaitFramesEvent(10)); eventQueue.Enqueue(new EndTurnEvent()); GlobalEventQueue.QueueEvents(eventQueue); @@ -75,7 +75,7 @@ private bool UnitIsAllowedToSeize { get { - switch (GameContext.ActiveUnit.Team) + switch (GameContext.ActiveTeam) { case Team.Red: return seizeEntity.CapturableByRed; diff --git a/SolStandard/Entity/Unit/Actions/Terrain/ToggleLockAction.cs b/SolStandard/Entity/Unit/Actions/Terrain/ToggleLockAction.cs index 522beca0..3aff2f81 100644 --- a/SolStandard/Entity/Unit/Actions/Terrain/ToggleLockAction.cs +++ b/SolStandard/Entity/Unit/Actions/Terrain/ToggleLockAction.cs @@ -15,8 +15,8 @@ public class ToggleLockAction : UnitAction public ToggleLockAction(Key key) : base( icon: key.Icon, - name: "Use: " + key.Name, - description: "Locks or unlocks the target if you have the appropriate key.", + name: "Use", + description: $"Locks or unlocks a target ${key.UsedWith}.", tileSprite: MapDistanceTile.GetTileSprite(MapDistanceTile.TileType.Action), range: new[] {1}, freeAction: true diff --git a/SolStandard/Entity/Unit/Actions/Terrain/ToggleSwitchAction.cs b/SolStandard/Entity/Unit/Actions/Terrain/ToggleSwitchAction.cs index a8849966..3d347910 100644 --- a/SolStandard/Entity/Unit/Actions/Terrain/ToggleSwitchAction.cs +++ b/SolStandard/Entity/Unit/Actions/Terrain/ToggleSwitchAction.cs @@ -86,7 +86,7 @@ public override void ExecuteAction(MapSlice targetSlice) } } - private static bool IsCreepTurn => GameContext.ActiveUnit.Team == Team.Creep; + private static bool IsCreepTurn => GameContext.ActiveTeam == Team.Creep; private static bool TargetingSwitch(MapSlice targetSlice) { diff --git a/SolStandard/Entity/Unit/Actions/Terrain/VendorPurchase.cs b/SolStandard/Entity/Unit/Actions/Terrain/VendorPurchase.cs index 3d837652..385452ac 100644 --- a/SolStandard/Entity/Unit/Actions/Terrain/VendorPurchase.cs +++ b/SolStandard/Entity/Unit/Actions/Terrain/VendorPurchase.cs @@ -28,8 +28,7 @@ public VendorPurchase(IItem item, int price, Vendor vendor) : base( { item.UseAction().Description } - }, - 1 + } ), tileSprite: MapDistanceTile.GetTileSprite(MapDistanceTile.TileType.Action), range: new[] {0, 1}, @@ -56,7 +55,7 @@ public override void ExecuteAction(MapSlice targetSlice) { if (TargetIsVendor(targetSlice)) { - if (ActiveUnitCanAffordItem()) + if (ActiveTeamCanAffordItem()) { vendor.RemoveBuyActionForItem(Item); @@ -64,9 +63,9 @@ public override void ExecuteAction(MapSlice targetSlice) eventQueue.Enqueue( new PlayAnimationAtCoordinatesEvent(AnimatedIconType.Interact, targetSlice.MapCoordinates) ); - eventQueue.Enqueue(new DecreaseUnitGoldEvent(Price)); + eventQueue.Enqueue(new DecreaseTeamGoldEvent(Price)); eventQueue.Enqueue(new WaitFramesEvent(25)); - eventQueue.Enqueue(new AddItemToUnitInventoryEvent(GameContext.ActiveUnit, Item)); + eventQueue.Enqueue(new AddItemToUnitInventoryEvent(GameContext.ActiveUnit, Item.Duplicate())); eventQueue.Enqueue(new WaitFramesEvent(50)); eventQueue.Enqueue(new AdditionalActionEvent()); GlobalEventQueue.QueueEvents(eventQueue); @@ -88,9 +87,9 @@ public override void ExecuteAction(MapSlice targetSlice) public int Price { get; } - private bool ActiveUnitCanAffordItem() + private bool ActiveTeamCanAffordItem() { - return GameContext.ActiveUnit.CurrentGold >= Price; + return GameContext.InitiativeContext.GetGoldForTeam(GameContext.ActiveTeam) >= Price; } private bool TargetIsVendor(MapSlice targetSlice) diff --git a/SolStandard/Entity/Unit/Actions/UnitAction.cs b/SolStandard/Entity/Unit/Actions/UnitAction.cs index b1e496c6..1077bdd4 100644 --- a/SolStandard/Entity/Unit/Actions/UnitAction.cs +++ b/SolStandard/Entity/Unit/Actions/UnitAction.cs @@ -67,14 +67,14 @@ protected static bool TargetIsAnAllyInRange(MapSlice targetSlice, GameUnit targe { return TargetIsUnitInRange(targetSlice, targetUnit) - && targetUnit.Team == GameContext.ActiveUnit.Team; + && targetUnit.Team == GameContext.ActiveTeam; } protected static bool TargetIsAnEnemyInRange(MapSlice targetSlice, GameUnit targetUnit) { return TargetIsUnitInRange(targetSlice, targetUnit) - && GameContext.ActiveUnit.Team != targetUnit.Team; + && GameContext.ActiveTeam != targetUnit.Team; } protected static bool TargetIsSelfInRange(MapSlice targetSlice, GameUnit targetUnit) diff --git a/SolStandard/Entity/Unit/CreepEntity.cs b/SolStandard/Entity/Unit/CreepEntity.cs index a6a9faf0..6cad3f06 100644 --- a/SolStandard/Entity/Unit/CreepEntity.cs +++ b/SolStandard/Entity/Unit/CreepEntity.cs @@ -2,6 +2,7 @@ using Microsoft.Xna.Framework.Graphics; using SolStandard.Entity.Unit.Actions; using SolStandard.Utility; +using SolStandard.Utility.Assets; using SolStandard.Utility.Model; namespace SolStandard.Entity.Unit @@ -9,7 +10,9 @@ namespace SolStandard.Entity.Unit public class CreepEntity : UnitEntity { private IRenderable routineIcon; - public CreepRoutineModel Routines { get; } + private IRenderable independentIcon; + private const int IndependentIconSize = 8; + public CreepRoutineModel Model { get; } public string CreepPool { get; } public int StartingGold { get; } @@ -17,7 +20,7 @@ public CreepEntity(string name, string type, UnitSpriteSheet spriteSheet, Vector Role role, bool isCommander, CreepRoutineModel creepRoutineModel, string[] initialInventory) : base(name, type, spriteSheet, mapCoordinates, team, role, isCommander, initialInventory) { - Routines = creepRoutineModel; + Model = creepRoutineModel; CreepPool = creepRoutineModel.CreepPool; StartingGold = creepRoutineModel.StartingGold; } @@ -36,17 +39,34 @@ private static Vector2 CenterTopOfTile(Vector2 tileCoordinates, float iconSize) return centerCoordinates; } + private static Vector2 TopRightOfTile(Vector2 tileCoordinates, float iconWidth) + { + Vector2 centerCoordinates = tileCoordinates * GameDriver.CellSize; + centerCoordinates.X += GameDriver.CellSize - iconWidth; + return centerCoordinates; + } + public override void Draw(SpriteBatch spriteBatch) { base.Draw(spriteBatch); routineIcon?.Draw(spriteBatch, CenterTopOfTile(MapCoordinates, routineIcon.Width)); + + if (Model.IsIndependent) + { + IndependentIcon.Draw(spriteBatch, TopRightOfTile(MapCoordinates, IndependentIcon.Width)); + } } public CreepEntity Copy() { - return new CreepEntity(Name, Type, UnitSpriteSheet.Clone(), MapCoordinates, Team, Role, IsCommander, Routines, - InitialInventory); + return new CreepEntity(Name, Type, UnitSpriteSheet.Clone(), MapCoordinates, Team, Role, IsCommander, + Model, InitialInventory); } + + private IRenderable IndependentIcon => + independentIcon ?? ( + independentIcon = MiscIconProvider.GetMiscIcon(MiscIcon.Independent, new Vector2(IndependentIconSize)) + ); } } \ No newline at end of file diff --git a/SolStandard/Entity/Unit/CreepUnit.cs b/SolStandard/Entity/Unit/CreepUnit.cs index 28e6954d..9aba4543 100644 --- a/SolStandard/Entity/Unit/CreepUnit.cs +++ b/SolStandard/Entity/Unit/CreepUnit.cs @@ -2,6 +2,7 @@ using System.Linq; using SolStandard.Containers; using SolStandard.Entity.Unit.Actions; +using SolStandard.Entity.Unit.Statuses.Creep; using SolStandard.Map.Elements.Cursor; using SolStandard.Utility.Events; using SolStandard.Utility.Monogame; @@ -13,12 +14,12 @@ public class CreepUnit : GameUnit private IRoutine nextRoutine; private readonly IRoutine fallbackRoutine; - // ReSharper disable once SuggestBaseTypeForParameter public CreepUnit(string id, Team team, Role role, CreepEntity unitEntity, UnitStatistics stats, ITexture2D portrait, bool isBoss) : - base(id, team, role, unitEntity, stats, portrait, unitEntity.Routines.Actions, isBoss) + base(id, team, role, unitEntity, stats, portrait, unitEntity.Model.Actions, isBoss) { - fallbackRoutine = unitEntity.Routines.FallbackRoutine; + fallbackRoutine = unitEntity.Model.FallbackRoutine; + if (unitEntity.Model.IsIndependent) AddStatusEffect(new IndependentStatus()); } private CreepEntity CreepEntity => UnitEntity as CreepEntity; @@ -60,6 +61,7 @@ private void UpdateUnitRoutine(IRoutine newRoutine) { nextRoutine = newRoutine; CreepEntity.UpdateRoutineIcon(newRoutine); + AddStatusEffect(new NextRoutineStatus(newRoutine)); } } } \ No newline at end of file diff --git a/SolStandard/Entity/Unit/GameUnit.cs b/SolStandard/Entity/Unit/GameUnit.cs index ed9a7da4..1f1b4c78 100644 --- a/SolStandard/Entity/Unit/GameUnit.cs +++ b/SolStandard/Entity/Unit/GameUnit.cs @@ -6,6 +6,7 @@ using Microsoft.Xna.Framework.Graphics; using SolStandard.Containers; using SolStandard.Containers.Contexts; +using SolStandard.Containers.View; using SolStandard.Entity.General; using SolStandard.Entity.General.Item; using SolStandard.Entity.Unit.Actions; @@ -95,7 +96,7 @@ public class GameUnit : GameEntity, IThreatRange public bool IsMovable { get; set; } public List Inventory { get; } - public int CurrentGold { get; set; } + public int CurrentBounty { get; set; } private TriggeredAnimation deathAnimation; @@ -133,7 +134,7 @@ public GameUnit(string id, Team team, Role role, UnitEntity unitEntity, UnitStat StatusEffects = new List(); Inventory = new List(); - CurrentGold = 0; + CurrentBounty = 0; deathAnimation = null; @@ -196,7 +197,7 @@ public IRenderable UnitPortraitPane new Vector2(MediumPortrait.Width - windowBordersSize, (float) hoverWindowHealthBarHeight / 2) ) - : new RenderBlank() as IRenderable + : RenderBlank.Blank }, { GetHoverWindowHealthBar( @@ -224,24 +225,21 @@ public IRenderable InventoryPane { get { - if (Inventory.Count > 0) - { - const int offset = 1; - IRenderable[,] content = new IRenderable[Inventory.Count + offset, 2]; + if (Inventory.Count <= 0) return null; - content[0, 0] = new RenderBlank(); - content[0, 1] = new RenderText(AssetManager.HeaderFont, "Inventory"); + IRenderable[,] content = new IRenderable[1, Inventory.Count + 1]; - for (int i = 0; i < Inventory.Count; i++) - { - content[i + offset, 0] = Inventory[i].Icon; - content[i + offset, 1] = new RenderText(AssetManager.WindowFont, Inventory[i].Name); - } + content[0, 0] = new Window( + new RenderText(AssetManager.StatFont, " ITEMS"), + GameMapView.BlankTerrainWindowColor + ); - return new WindowContentGrid(content, 2); + for (int i = 0; i < Inventory.Count; i++) + { + content[0, i + 1] = Inventory[i].Icon.Clone(); } - return null; + return new WindowContentGrid(content, 2); } } @@ -258,24 +256,23 @@ public IRenderable DetailPane const int crownIconSize = 24; return new WindowContentGrid( - new IRenderable[,] + new[,] { { new Window( - new WindowContentGrid( - new[,] + new[,] + { { - { - IsCommander - ? GetCommanderCrown(new Vector2(crownIconSize)) - : new RenderBlank() as IRenderable, - new RenderText(AssetManager.HeaderFont, Id) - } - }, - 1 - ), + IsCommander + ? MiscIconProvider.GetMiscIcon(MiscIcon.Crown, + new Vector2(crownIconSize)) + : RenderBlank.Blank, + new RenderText(AssetManager.HeaderFont, Id) + } + }, statPanelColor, - twoColumnPanel + twoColumnPanel, + HorizontalAlignment.Centered ), new Window( @@ -283,180 +280,162 @@ public IRenderable DetailPane statPanelColor, twoColumnPanel ), - new RenderBlank() + RenderBlank.Blank }, { new Window( - new WindowContentGrid( - new IRenderable[,] + new IRenderable[,] + { { - { - UnitStatistics.GetSpriteAtlas(Unit.Stats.Armor), - new RenderText(statfont, - UnitStatistics.Abbreviation[Unit.Stats.Armor] + ": "), - new RenderText(statfont, Stats.CurrentArmor + "/" + Stats.MaxArmor) - } - }, - 1 - ), + UnitStatistics.GetSpriteAtlas(Unit.Stats.Armor), + new RenderText(statfont, + UnitStatistics.Abbreviation[Unit.Stats.Armor] + ": "), + new RenderText(statfont, Stats.CurrentArmor + "/" + Stats.MaxArmor) + } + }, statPanelColor, - threeColumnPanel + threeColumnPanel, + HorizontalAlignment.Centered ), new Window( - new WindowContentGrid( - new IRenderable[,] + new IRenderable[,] + { { - { - UnitStatistics.GetSpriteAtlas(Unit.Stats.Hp), - new RenderText(statfont, - UnitStatistics.Abbreviation[Unit.Stats.Hp] + ": "), - new RenderText(statfont, Stats.CurrentHP + "/" + Stats.MaxHP) - } - }, - 1 - ), + UnitStatistics.GetSpriteAtlas(Unit.Stats.Hp), + new RenderText(statfont, + UnitStatistics.Abbreviation[Unit.Stats.Hp] + ": "), + new RenderText(statfont, Stats.CurrentHP + "/" + Stats.MaxHP) + } + }, statPanelColor, - threeColumnPanel + threeColumnPanel, + HorizontalAlignment.Centered ), new Window( - new WindowContentGrid( - new IRenderable[,] + new IRenderable[,] + { { - { - new SpriteAtlas(AssetManager.GoldIcon, GameDriver.CellSizeVector), - new RenderText(statfont, - "Gold: " + CurrentGold + Currency.CurrencyAbbreviation) - } - }, - 1 - ), + MiscIconProvider.GetMiscIcon(MiscIcon.Gold, GameDriver.CellSizeVector), + new RenderText(statfont, + "Bounty: " + CurrentBounty + Currency.CurrencyAbbreviation) + } + }, statPanelColor, - threeColumnPanel + threeColumnPanel, + HorizontalAlignment.Centered ) }, { new Window( - new WindowContentGrid( - new IRenderable[,] + new IRenderable[,] + { { - { - UnitStatistics.GetSpriteAtlas(Unit.Stats.Atk), - new RenderText(statfont, - UnitStatistics.Abbreviation[Unit.Stats.Atk] + ": "), - new RenderText( - statfont, - Stats.Atk.ToString(), - UnitStatistics.DetermineStatColor(Stats.Atk, Stats.BaseAtk) - ) - } - }, - 1 - ), + UnitStatistics.GetSpriteAtlas(Unit.Stats.Atk), + new RenderText(statfont, + UnitStatistics.Abbreviation[Unit.Stats.Atk] + ": "), + new RenderText( + statfont, + Stats.Atk.ToString(), + UnitStatistics.DetermineStatColor(Stats.Atk, Stats.BaseAtk) + ) + } + }, statPanelColor, - threeColumnPanel + threeColumnPanel, + HorizontalAlignment.Centered ), new Window( - new WindowContentGrid( - new IRenderable[,] + new IRenderable[,] + { { - { - UnitStatistics.GetSpriteAtlas(Unit.Stats.Retribution), - new RenderText(statfont, - UnitStatistics.Abbreviation[Unit.Stats.Retribution] + ": "), - new RenderText( - statfont, - Stats.Ret.ToString(), - UnitStatistics.DetermineStatColor(Stats.Ret, Stats.BaseRet) - ) - } - }, - 1 - ), + UnitStatistics.GetSpriteAtlas(Unit.Stats.Retribution), + new RenderText(statfont, + UnitStatistics.Abbreviation[Unit.Stats.Retribution] + ": "), + new RenderText( + statfont, + Stats.Ret.ToString(), + UnitStatistics.DetermineStatColor(Stats.Ret, Stats.BaseRet) + ) + } + }, statPanelColor, - threeColumnPanel + threeColumnPanel, + HorizontalAlignment.Centered ), new Window( - new WindowContentGrid( - new IRenderable[,] + new IRenderable[,] + { { - { - UnitStatistics.GetSpriteAtlas(Unit.Stats.Block), - new RenderText(statfont, - UnitStatistics.Abbreviation[Unit.Stats.Block] + ": "), - new RenderText( - statfont, - Stats.Blk.ToString(), - UnitStatistics.DetermineStatColor(Stats.Blk, Stats.BaseBlk) - ) - } - }, - 1 - ), + UnitStatistics.GetSpriteAtlas(Unit.Stats.Block), + new RenderText(statfont, + UnitStatistics.Abbreviation[Unit.Stats.Block] + ": "), + new RenderText( + statfont, + Stats.Blk.ToString(), + UnitStatistics.DetermineStatColor(Stats.Blk, Stats.BaseBlk) + ) + } + }, statPanelColor, - threeColumnPanel + threeColumnPanel, + HorizontalAlignment.Centered ) }, { new Window( - new WindowContentGrid( - new IRenderable[,] + new IRenderable[,] + { { - { - UnitStatistics.GetSpriteAtlas(Unit.Stats.Luck), - new RenderText(statfont, - UnitStatistics.Abbreviation[Unit.Stats.Luck] + ": "), - new RenderText( - statfont, - Stats.Luck.ToString(), - UnitStatistics.DetermineStatColor(Stats.Luck, Stats.BaseLuck) - ) - } - }, - 1 - ), + UnitStatistics.GetSpriteAtlas(Unit.Stats.Luck), + new RenderText(statfont, + UnitStatistics.Abbreviation[Unit.Stats.Luck] + ": "), + new RenderText( + statfont, + Stats.Luck.ToString(), + UnitStatistics.DetermineStatColor(Stats.Luck, Stats.BaseLuck) + ) + } + }, statPanelColor, - threeColumnPanel + threeColumnPanel, + HorizontalAlignment.Centered ), new Window( - new WindowContentGrid( - new IRenderable[,] + new IRenderable[,] + { { - { - UnitStatistics.GetSpriteAtlas(Unit.Stats.Mv), - new RenderText(statfont, - UnitStatistics.Abbreviation[Unit.Stats.Mv] + ": "), - new RenderText( - statfont, - Stats.Mv.ToString(), - UnitStatistics.DetermineStatColor(Stats.Mv, Stats.BaseMv) - ) - } - }, - 1 - ), + UnitStatistics.GetSpriteAtlas(Unit.Stats.Mv), + new RenderText(statfont, + UnitStatistics.Abbreviation[Unit.Stats.Mv] + ": "), + new RenderText( + statfont, + Stats.Mv.ToString(), + UnitStatistics.DetermineStatColor(Stats.Mv, Stats.BaseMv) + ) + } + }, statPanelColor, - threeColumnPanel + threeColumnPanel, + HorizontalAlignment.Centered ), new Window( - new WindowContentGrid( - new IRenderable[,] + new IRenderable[,] + { { - { - UnitStatistics.GetSpriteAtlas(Unit.Stats.AtkRange), - new RenderText(statfont, - UnitStatistics.Abbreviation[Unit.Stats.AtkRange] + ": "), - new RenderText( - statfont, - $"[{string.Join(",", Stats.CurrentAtkRange)}]", - UnitStatistics.DetermineStatColor(Stats.CurrentAtkRange.Max(), - Stats.BaseAtkRange.Max()) - ) - } - }, - 1 - ), + UnitStatistics.GetSpriteAtlas(Unit.Stats.AtkRange), + new RenderText(statfont, + UnitStatistics.Abbreviation[Unit.Stats.AtkRange] + ": "), + new RenderText( + statfont, + $"[{string.Join(",", Stats.CurrentAtkRange)}]", + UnitStatistics.DetermineStatColor(Stats.CurrentAtkRange.Max(), + Stats.BaseAtkRange.Max()) + ) + } + }, statPanelColor, - threeColumnPanel + threeColumnPanel, + HorizontalAlignment.Centered ) } }, @@ -475,7 +454,7 @@ public IRenderable GetMapSprite(Vector2 size, Color color, UnitAnimationState an clonedSpriteSheet.DefaultColor = color; if (IsAlive) return clonedSpriteSheet.Resize(size); - if (Stats.CurrentHP != 0) return deathAnimation as IRenderable ?? new RenderBlank(); + if (Stats.CurrentHP != 0) return deathAnimation ?? RenderBlank.Blank; deathAnimation = AnimatedIconProvider.GetAnimatedIcon(AnimatedIconType.Death, size); deathAnimation.PlayOnce(); return deathAnimation; @@ -773,23 +752,22 @@ public void Escape() private void DropSpoils() { //Don't drop spoils if inventory is empty - if (CurrentGold == 0 && Inventory.Count == 0) return; + if (CurrentBounty == 0 && Inventory.Count == 0) return; - //If on top of other Spoils, pick those up before dropping on top of them + MapElement itemAtUnitPosition = MapContainer.GameGrid[(int) Layer.Items][(int) MapEntity.MapCoordinates.X, + (int) MapEntity.MapCoordinates.Y]; - if (MapContainer.GameGrid[(int) Layer.Items][(int) MapEntity.MapCoordinates.X, - (int) MapEntity.MapCoordinates.Y] is Spoils spoilsAtUnitPosition) + //If on top of other Spoils, pick those up before dropping on top of them + if (itemAtUnitPosition is Spoils spoilsAtUnitPosition) { - CurrentGold += spoilsAtUnitPosition.Gold; + CurrentBounty += spoilsAtUnitPosition.Gold; Inventory.AddRange(spoilsAtUnitPosition.Items); } - //Check if an item already exists here and add it to the spoils so that they aren't lost - if (MapContainer.GameGrid[(int) Layer.Items][(int) MapEntity.MapCoordinates.X, - (int) MapEntity.MapCoordinates.Y] is TerrainEntity itemAtUnitPosition) + if (itemAtUnitPosition is TerrainEntity entityAtUnitPosition) { - switch (itemAtUnitPosition) + switch (entityAtUnitPosition) { case IItem item: AddItemToInventory(item); @@ -797,7 +775,7 @@ private void DropSpoils() case Currency currency: { Currency gold = currency; - CurrentGold += gold.Value; + CurrentBounty += gold.Value; break; } } @@ -807,13 +785,14 @@ private void DropSpoils() = new Spoils( Id + " Spoils", "Spoils", - new SpriteAtlas(AssetManager.SpoilsIcon, GameDriver.CellSizeVector), + MiscIconProvider.GetMiscIcon(MiscIcon.Spoils, GameDriver.CellSizeVector), MapEntity.MapCoordinates, - CurrentGold, + CurrentBounty, new List(Inventory) ); - CurrentGold = 0; + GameContext.InitiativeContext.DeductGoldFromTeam(CurrentBounty, Team); + CurrentBounty = 0; Inventory.Clear(); } @@ -860,16 +839,11 @@ public override int GetHashCode() hashCode += StatusEffects.Count; hashCode += (int) Team; hashCode += (int) Role; - hashCode += CurrentGold; + hashCode += CurrentBounty; hashCode *= serialId; return hashCode; } - public static SpriteAtlas GetCommanderCrown(Vector2 size) - { - return new SpriteAtlas(AssetManager.CommanderIcon, new Vector2(AssetManager.CommanderIcon.Height), size); - } - public void DrawAuras(SpriteBatch spriteBatch) { if (!IsAlive) return; diff --git a/SolStandard/Entity/Unit/Statuses/Bard/AnthemStatus.cs b/SolStandard/Entity/Unit/Statuses/Bard/AnthemStatus.cs index 0391eb41..544b35c0 100644 --- a/SolStandard/Entity/Unit/Statuses/Bard/AnthemStatus.cs +++ b/SolStandard/Entity/Unit/Statuses/Bard/AnthemStatus.cs @@ -24,7 +24,7 @@ public AnthemStatus(int auraBonus, int selfBonus, int[] auraRange) : base( AnimationType.SongAttack, GameDriver.CellSizeVector, SongAnimationFrameDelay, - GetSongColor(GameContext.ActiveUnit.Team) + GetSongColor(GameContext.ActiveTeam) ); } diff --git a/SolStandard/Entity/Unit/Statuses/Bard/BattleHymnStatus.cs b/SolStandard/Entity/Unit/Statuses/Bard/BattleHymnStatus.cs index 6c4e8946..74e0cb0d 100644 --- a/SolStandard/Entity/Unit/Statuses/Bard/BattleHymnStatus.cs +++ b/SolStandard/Entity/Unit/Statuses/Bard/BattleHymnStatus.cs @@ -25,7 +25,7 @@ public BattleHymnStatus(int auraBonus, int selfBonus, int[] auraRange) : base( AnimationType.SongHymn, GameDriver.CellSizeVector, SongAnimationFrameDelay, - GetSongColor(GameContext.ActiveUnit.Team) + GetSongColor(GameContext.ActiveTeam) ); } diff --git a/SolStandard/Entity/Unit/Statuses/Bard/FreestyleStatus.cs b/SolStandard/Entity/Unit/Statuses/Bard/FreestyleStatus.cs index 456d6de8..cc581763 100644 --- a/SolStandard/Entity/Unit/Statuses/Bard/FreestyleStatus.cs +++ b/SolStandard/Entity/Unit/Statuses/Bard/FreestyleStatus.cs @@ -23,7 +23,7 @@ public FreestyleStatus(int auraBonus, int selfBonus, int[] auraRange) : base( AnimationType.SongLuck, GameDriver.CellSizeVector, SongAnimationFrameDelay, - GetSongColor(GameContext.ActiveUnit.Team) + GetSongColor(GameContext.ActiveTeam) ); } diff --git a/SolStandard/Entity/Unit/Statuses/Bard/SongStatus.cs b/SolStandard/Entity/Unit/Statuses/Bard/SongStatus.cs index f92b838e..f173331c 100644 --- a/SolStandard/Entity/Unit/Statuses/Bard/SongStatus.cs +++ b/SolStandard/Entity/Unit/Statuses/Bard/SongStatus.cs @@ -27,7 +27,7 @@ protected SongStatus(IRenderable statusIcon, string name, string description, in SelfBonus = selfBonus; this.auraRange = auraRange; SongSprite = AnimatedSpriteProvider.GetAnimatedSprite(AnimationType.SongHymn, GameDriver.CellSizeVector, - SongAnimationFrameDelay, GetSongColor(GameContext.ActiveUnit.Team)); + SongAnimationFrameDelay, GetSongColor(GameContext.ActiveTeam)); } protected static Color GetSongColor(Team team) @@ -68,8 +68,6 @@ public override void ApplyEffect(GameUnit target) protected static bool UnitIsAffectedBySong(GameUnit unitAffected, SongStatus song) { - //TODO Differentiate between ally and enemies so bonuses aren't applied to enemies unless the skill specifically wants to - GameUnit singer = GameContext.Units.FirstOrDefault(unit => unit.StatusEffects.Contains(song)); if (singer == null || unitAffected == null || !singer.IsAlive || !unitAffected.IsAlive) return false; diff --git a/SolStandard/Entity/Unit/Statuses/Bard/TempestStatus.cs b/SolStandard/Entity/Unit/Statuses/Bard/TempestStatus.cs index 56e2384d..b1a0ebb7 100644 --- a/SolStandard/Entity/Unit/Statuses/Bard/TempestStatus.cs +++ b/SolStandard/Entity/Unit/Statuses/Bard/TempestStatus.cs @@ -24,7 +24,7 @@ public TempestStatus(int auraBonus, int selfBonus, int[] auraRange) : base( AnimationType.SongRetribution, GameDriver.CellSizeVector, SongAnimationFrameDelay, - GetSongColor(GameContext.ActiveUnit.Team) + GetSongColor(GameContext.ActiveTeam) ); } diff --git a/SolStandard/Entity/Unit/Statuses/FortifiedStatus.cs b/SolStandard/Entity/Unit/Statuses/Champion/FortifiedStatus.cs similarity index 96% rename from SolStandard/Entity/Unit/Statuses/FortifiedStatus.cs rename to SolStandard/Entity/Unit/Statuses/Champion/FortifiedStatus.cs index 30ddd817..e554fb68 100644 --- a/SolStandard/Entity/Unit/Statuses/FortifiedStatus.cs +++ b/SolStandard/Entity/Unit/Statuses/Champion/FortifiedStatus.cs @@ -1,7 +1,7 @@ using SolStandard.Containers.Contexts; using SolStandard.Utility.Assets; -namespace SolStandard.Entity.Unit.Statuses +namespace SolStandard.Entity.Unit.Statuses.Champion { public class FortifiedStatus : StatusEffect { diff --git a/SolStandard/Entity/Unit/Statuses/Creep/IndependentStatus.cs b/SolStandard/Entity/Unit/Statuses/Creep/IndependentStatus.cs new file mode 100644 index 00000000..b4e804a9 --- /dev/null +++ b/SolStandard/Entity/Unit/Statuses/Creep/IndependentStatus.cs @@ -0,0 +1,33 @@ +using SolStandard.Utility.Assets; + +namespace SolStandard.Entity.Unit.Statuses.Creep +{ + public class IndependentStatus : StatusEffect + { + public IndependentStatus() : base( + MiscIconProvider.GetMiscIcon(MiscIcon.Independent, GameDriver.CellSizeVector), + "Independent", + "Unit can attack team mates.", + 100, + false, + false + ) + { + } + + public override void ApplyEffect(GameUnit target) + { + //Do nothing + } + + protected override void ExecuteEffect(GameUnit target) + { + //Do nothing + } + + public override void RemoveEffect(GameUnit target) + { + //Do nothing + } + } +} \ No newline at end of file diff --git a/SolStandard/Entity/Unit/Statuses/Creep/NextRoutineStatus.cs b/SolStandard/Entity/Unit/Statuses/Creep/NextRoutineStatus.cs new file mode 100644 index 00000000..07a6fbad --- /dev/null +++ b/SolStandard/Entity/Unit/Statuses/Creep/NextRoutineStatus.cs @@ -0,0 +1,35 @@ +using SolStandard.Entity.Unit.Actions; + +namespace SolStandard.Entity.Unit.Statuses.Creep +{ + public class NextRoutineStatus : StatusEffect + { + public NextRoutineStatus( + IRoutine routine + ) : base( + routine.Icon, + routine.Name, + "Next AI Routine", + 2, + false, + false + ) + { + } + + public override void ApplyEffect(GameUnit target) + { + //Do nothing + } + + protected override void ExecuteEffect(GameUnit target) + { + //Do nothing + } + + public override void RemoveEffect(GameUnit target) + { + //Do nothing + } + } +} \ No newline at end of file diff --git a/SolStandard/Entity/Unit/Statuses/Duelist/FocusStatus.cs b/SolStandard/Entity/Unit/Statuses/Duelist/FocusStatus.cs index aaeae84b..596a9a33 100644 --- a/SolStandard/Entity/Unit/Statuses/Duelist/FocusStatus.cs +++ b/SolStandard/Entity/Unit/Statuses/Duelist/FocusStatus.cs @@ -1,3 +1,4 @@ +using System.Linq; using SolStandard.Containers.Contexts; using SolStandard.Entity.Unit.Actions; using SolStandard.Utility.Assets; @@ -12,7 +13,7 @@ public class FocusStatus : StatusEffect, ITurnProc private const string StatusName = "Focusing!"; public int FocusPoints { get; private set; } - public FocusStatus(int focusPoints, bool actImmediately = false) : base( + public FocusStatus(int focusPoints, bool actImmediately) : base( statusIcon: SkillIconProvider.GetSkillIcon(SkillIcon.Focus, GameDriver.CellSizeVector), name: StatusName, description: "Allows acting again at the end of your turn.", @@ -26,6 +27,9 @@ public FocusStatus(int focusPoints, bool actImmediately = false) : base( UpdateTitle(); } + private bool StatusWasAppliedThisTurn => TurnDuration == InitialDuration; + private bool StatusAppliedAndCanNotAct => StatusWasAppliedThisTurn && !actImmediately; + public override void ApplyEffect(GameUnit target) { AssetManager.SkillBuffSFX.Play(); @@ -53,26 +57,27 @@ public void OnTurnStart() public void OnTurnEnd() { - if (FocusPoints > 0) - { - if (StatusWasAppliedThisTurn && !actImmediately) - { - GlobalEventQueue.QueueSingleEvent(new EndTurnEvent(skipProcs: true)); - } - else - { - GlobalEventQueue.QueueSingleEvent(new AdditionalActionEvent()); - FocusPoints--; - UpdateTitle(); - } - } - else + if (FocusPoints <= 0) { TurnDuration = 0; } } - private bool StatusWasAppliedThisTurn => TurnDuration == InitialDuration; + public static bool ActiveDuelistHasFocusPoints => + GameContext.ActiveUnit.Role == Role.Duelist && + GameContext.ActiveUnit.StatusEffects.Any(status => + status is FocusStatus focusStatus && + focusStatus.FocusPoints > 0 && + !focusStatus.StatusAppliedAndCanNotAct + ); + + public void StartAdditionalAction() + { + AdditionalActionEvent.StartExtraAction("Extra Focus action!"); + FocusPoints--; + UpdateTitle(); + GlobalEventQueue.QueueSingleEvent(new AdditionalActionEvent()); + } private void UpdateTitle() { diff --git a/SolStandard/Entity/Unit/Statuses/ExecutionerStatus.cs b/SolStandard/Entity/Unit/Statuses/Lancer/ExecutionerStatus.cs similarity index 98% rename from SolStandard/Entity/Unit/Statuses/ExecutionerStatus.cs rename to SolStandard/Entity/Unit/Statuses/Lancer/ExecutionerStatus.cs index 220ec4e2..2c84e096 100644 --- a/SolStandard/Entity/Unit/Statuses/ExecutionerStatus.cs +++ b/SolStandard/Entity/Unit/Statuses/Lancer/ExecutionerStatus.cs @@ -4,7 +4,7 @@ using SolStandard.Utility; using SolStandard.Utility.Events; -namespace SolStandard.Entity.Unit.Statuses +namespace SolStandard.Entity.Unit.Statuses.Lancer { public class ExecutionerStatus : StatusEffect, ICombatProc { diff --git a/SolStandard/Entity/Unit/Statuses/StatusEffect.cs b/SolStandard/Entity/Unit/Statuses/StatusEffect.cs index 5b98a971..6c854272 100644 --- a/SolStandard/Entity/Unit/Statuses/StatusEffect.cs +++ b/SolStandard/Entity/Unit/Statuses/StatusEffect.cs @@ -4,9 +4,9 @@ namespace SolStandard.Entity.Unit.Statuses { public abstract class StatusEffect { - public IRenderable StatusIcon { get; protected set; } + public IRenderable StatusIcon { get; } public string Name { get; protected set; } - public string Description { get; protected set; } + public string Description { get; } public int TurnDuration { get; protected set; } public bool HasNotification { get; } public bool CanCleanse { get; } diff --git a/SolStandard/Entity/Unit/UnitEntity.cs b/SolStandard/Entity/Unit/UnitEntity.cs index 286efac5..3cf55d54 100644 --- a/SolStandard/Entity/Unit/UnitEntity.cs +++ b/SolStandard/Entity/Unit/UnitEntity.cs @@ -5,6 +5,7 @@ using SolStandard.Entity.Unit.Actions; using SolStandard.Map.Elements; using SolStandard.Utility; +using SolStandard.Utility.Assets; namespace SolStandard.Entity.Unit { @@ -48,7 +49,8 @@ public bool IsCommander isCommander = value; const int crownSize = 8; - commanderCrown = isCommander ? GameUnit.GetCommanderCrown(new Vector2(crownSize)) : null; + commanderCrown = + isCommander ? MiscIconProvider.GetMiscIcon(MiscIcon.Crown, new Vector2(crownSize)) : null; } } diff --git a/SolStandard/Entity/Unit/UnitGenerator.cs b/SolStandard/Entity/Unit/UnitGenerator.cs index 89b69390..7ae59690 100644 --- a/SolStandard/Entity/Unit/UnitGenerator.cs +++ b/SolStandard/Entity/Unit/UnitGenerator.cs @@ -22,6 +22,7 @@ namespace SolStandard.Entity.Unit { public static class UnitGenerator { + private const int InitialUnitBounty = 10; private const int StartingGoldVariance = 5; public static List GenerateUnitsFromMap(IEnumerable units, List loot) @@ -49,7 +50,7 @@ public static GameUnit BuildUnitFromProperties(string id, Team unitTeam, Role un { generatedUnit = GenerateCreep(unitJobClass, unitTeam, id, isCommander, mapEntity as CreepEntity); PopulateUnitInventory(mapEntity.InitialInventory, loot, generatedUnit); - AssignStartingGold(generatedUnit, ((CreepEntity) mapEntity).StartingGold, StartingGoldVariance); + AssignStartingBounty(generatedUnit, ((CreepEntity) mapEntity).StartingGold, StartingGoldVariance); } else { @@ -59,9 +60,9 @@ public static GameUnit BuildUnitFromProperties(string id, Team unitTeam, Role un return generatedUnit; } - private static void AssignStartingGold(GameUnit generatedUnit, int amount, int variance) + private static void AssignStartingBounty(GameUnit generatedUnit, int amount, int variance) { - generatedUnit.CurrentGold += amount + GameDriver.Random.Next(variance); + generatedUnit.CurrentBounty += amount + GameDriver.Random.Next(variance); } private static void PopulateUnitInventory(IEnumerable inventoryItems, List loot, GameUnit unit) @@ -170,7 +171,7 @@ private static UnitStatistics SelectSlimeStats() private static UnitStatistics SelectTrollStats() { - return new UnitStatistics(hp: 13, armor: 6, atk: 6, ret: 4, blk: 0, luck: 2, mv: 4, atkRange: new[] {1}, + return new UnitStatistics(hp: 13, armor: 7, atk: 6, ret: 4, blk: 0, luck: 2, mv: 4, atkRange: new[] {1}, maxCmd: 1); } @@ -182,7 +183,7 @@ private static UnitStatistics SelectOrcStats() private static UnitStatistics SelectNecromancerStats() { - return new UnitStatistics(hp: 15, armor: 5, atk: 6, ret: 5, blk: 0, luck: 1, mv: 4, atkRange: new[] {1, 2}, + return new UnitStatistics(hp: 10, armor: 10, atk: 6, ret: 5, blk: 0, luck: 1, mv: 4, atkRange: new[] {1, 2}, maxCmd: 1); } @@ -338,7 +339,7 @@ private static List SelectPugilistSkills(bool isCommander) private static List SelectDuelistSkills(bool isCommander) { - const int maxFocusPoints = 2; + const int maxFocusPoints = 1; List skills = new List { new BasicAttack(), @@ -418,6 +419,7 @@ private static List SelectCavalierSkills(bool isCommander) { new BasicAttack(), new Bloodthirst(2), + new PhaseStrike(), new Inspire(2, 1), new Gallop(3), new Sprint(3), @@ -492,7 +494,7 @@ public static CreepUnit GenerateAdHocCreep(Role role, Dictionary AssetManager.UnitSprites, Vector2.Zero, entityProperties); CreepUnit creep = GenerateCreep(role, Team.Creep, unitName, false, generatedEntity); - AssignStartingGold(creep, generatedEntity.StartingGold, StartingGoldVariance); + AssignStartingBounty(creep, generatedEntity.StartingGold, StartingGoldVariance); return creep; } @@ -530,7 +532,10 @@ private static GameUnit GenerateUnit(Role role, Team team, string unitName, bool UnitStatistics unitStatistics = GetUnitStatistics(role); List unitActions = GetUnitActions(role, isCommander); - return new GameUnit(unitName, team, role, entity, unitStatistics, portrait, unitActions, isCommander); + GameUnit generatedUnit = new GameUnit(unitName, team, role, entity, unitStatistics, portrait, unitActions, isCommander); + AssignStartingBounty(generatedUnit, InitialUnitBounty, 0); + + return generatedUnit; } private static UnitStatistics GetUnitStatistics(Role unitType) diff --git a/SolStandard/HUD/Menu/IMenu.cs b/SolStandard/HUD/Menu/IMenu.cs index 100c8f6c..8e8c3086 100644 --- a/SolStandard/HUD/Menu/IMenu.cs +++ b/SolStandard/HUD/Menu/IMenu.cs @@ -13,9 +13,9 @@ public enum MenuCursorDirection public interface IMenu : IRenderable { - void MoveMenuCursor(MenuCursorDirection direction); void SelectOption(); MenuOption CurrentOption { get; } + bool IsVisible { get; set; } } } \ No newline at end of file diff --git a/SolStandard/HUD/Menu/IOptionDescription.cs b/SolStandard/HUD/Menu/IOptionDescription.cs new file mode 100644 index 00000000..40f5d343 --- /dev/null +++ b/SolStandard/HUD/Menu/IOptionDescription.cs @@ -0,0 +1,9 @@ +using SolStandard.Utility; + +namespace SolStandard.HUD.Menu +{ + public interface IOptionDescription + { + IRenderable Description { get; } + } +} \ No newline at end of file diff --git a/SolStandard/HUD/Menu/MenuContext.cs b/SolStandard/HUD/Menu/MenuContext.cs new file mode 100644 index 00000000..fb0ae466 --- /dev/null +++ b/SolStandard/HUD/Menu/MenuContext.cs @@ -0,0 +1,48 @@ +using System.Collections.Generic; + +namespace SolStandard.HUD.Menu +{ + public class MenuContext + { + private readonly Stack menuStack; + public IMenu CurrentMenu => menuStack.Count > 0 ? menuStack.Peek() : null; + public bool IsAtRootMenu => menuStack.Count < 2; + + public MenuContext(IMenu initialMenu) + { + menuStack = new Stack(); + menuStack.Push(initialMenu); + } + + public void OpenSubMenu(IMenu submenu) + { + menuStack.Push(submenu); + } + + public void GoToPreviousMenu() + { + menuStack.Pop(); + } + + public void ClearMenuStack() + { + menuStack.Clear(); + } + + public void Hide() + { + foreach (IMenu menu in menuStack) + { + menu.IsVisible = false; + } + } + + public void Unhide() + { + foreach (IMenu menu in menuStack) + { + menu.IsVisible = true; + } + } + } +} \ No newline at end of file diff --git a/SolStandard/HUD/Menu/Options/ActionMenu/ActionOption.cs b/SolStandard/HUD/Menu/Options/ActionMenu/ActionOption.cs index 3270280d..3a9afd90 100644 --- a/SolStandard/HUD/Menu/Options/ActionMenu/ActionOption.cs +++ b/SolStandard/HUD/Menu/Options/ActionMenu/ActionOption.cs @@ -7,38 +7,40 @@ namespace SolStandard.HUD.Menu.Options.ActionMenu { - public class ActionOption : MenuOption + public class ActionOption : MenuOption, IOptionDescription { public UnitAction Action { get; } + public IRenderable Description => Action.Description; - public ActionOption(Color windowColor, UnitAction action) : base( - new WindowContentGrid( - new[,] - { - { - action.Icon, - new RenderText(AssetManager.WindowFont, action.Name, action.FreeAction ? GameContext.PositiveColor : Color.White) - } - }, - 1 - ), windowColor) + public ActionOption(Color windowColor, UnitAction action) : this(action.Name, windowColor, action) + { + } + + protected ActionOption(string actionName, Color windowColor, UnitAction action) : base( + GenerateActionContent(action.Icon, actionName, action.FreeAction), + windowColor + ) { Action = action; } - public override void Refresh() + public static WindowContentGrid GenerateActionContent(IRenderable icon, string name, bool freeAction) { - LabelContent = new WindowContentGrid( + return new WindowContentGrid( new[,] { { - Action.Icon, - new RenderText(AssetManager.WindowFont, Action.Name, Action.FreeAction ? GameContext.PositiveColor : Color.White) + icon, + new RenderText(AssetManager.WindowFont, name, + freeAction ? GameContext.PositiveColor : Color.White) } - }, - 1 + } ); + } + public override void Refresh() + { + LabelContent = GenerateActionContent(Action.Icon, Action.Name, Action.FreeAction); base.Refresh(); } diff --git a/SolStandard/HUD/Menu/Options/ActionMenu/ItemActionOption.cs b/SolStandard/HUD/Menu/Options/ActionMenu/ItemActionOption.cs new file mode 100644 index 00000000..70512303 --- /dev/null +++ b/SolStandard/HUD/Menu/Options/ActionMenu/ItemActionOption.cs @@ -0,0 +1,16 @@ +using Microsoft.Xna.Framework; +using SolStandard.Entity; + +namespace SolStandard.HUD.Menu.Options.ActionMenu +{ + public class ItemActionOption : ActionOption + { + public ItemActionOption(IItem item, Color windowColor) : base( + $"{item.Name} | {item.UseAction().Name}", + windowColor, + item.UseAction() + ) + { + } + } +} \ No newline at end of file diff --git a/SolStandard/HUD/Menu/Options/DraftMenu/SelectCommanderOption.cs b/SolStandard/HUD/Menu/Options/DraftMenu/SelectCommanderOption.cs index 98f34273..3ebb8039 100644 --- a/SolStandard/HUD/Menu/Options/DraftMenu/SelectCommanderOption.cs +++ b/SolStandard/HUD/Menu/Options/DraftMenu/SelectCommanderOption.cs @@ -44,20 +44,17 @@ private static IRenderable WindowContent(GameUnit unit, UnitAction commandAction }, { new Window.Window( - new WindowContentGrid( - new IRenderable[,] + new IRenderable[,] + { { - { - ObjectiveIconProvider.GetObjectiveIcon(VictoryConditions.Seize, - new Vector2(16)), - new RenderText( - AssetManager.SmallWindowFont, commandAction.Name, - commandAction.FreeAction ? GameContext.PositiveColor : Color.White - ) - } - }, - 1 - ), + ObjectiveIconProvider.GetObjectiveIcon(VictoryConditions.Seize, + new Vector2(16)), + new RenderText( + AssetManager.SmallWindowFont, commandAction.Name, + commandAction.FreeAction ? GameContext.PositiveColor : Color.White + ) + } + }, new Color(20, 20, 20, 180), HorizontalAlignment.Centered ) as IRenderable diff --git a/SolStandard/HUD/Menu/Options/StealMenu/StealItemOption.cs b/SolStandard/HUD/Menu/Options/StealMenu/TakeItemOption.cs similarity index 58% rename from SolStandard/HUD/Menu/Options/StealMenu/StealItemOption.cs rename to SolStandard/HUD/Menu/Options/StealMenu/TakeItemOption.cs index 6edfd330..78ee4422 100644 --- a/SolStandard/HUD/Menu/Options/StealMenu/StealItemOption.cs +++ b/SolStandard/HUD/Menu/Options/StealMenu/TakeItemOption.cs @@ -2,7 +2,7 @@ using SolStandard.Containers.Contexts; using SolStandard.Entity; using SolStandard.Entity.Unit; -using SolStandard.Entity.Unit.Actions.Rogue; +using SolStandard.Entity.Unit.Actions.Item; using SolStandard.HUD.Window.Content; using SolStandard.Utility; using SolStandard.Utility.Assets; @@ -10,18 +10,20 @@ namespace SolStandard.HUD.Menu.Options.StealMenu { - public class StealItemOption : MenuOption + public class TakeItemOption : MenuOption { private readonly GameUnit target; - private readonly IItem itemToSteal; + private readonly IItem itemToTake; + private readonly bool freeAction; - public StealItemOption(GameUnit target, IItem itemToSteal, Color color) : base( - GetOptionWindowForItem(itemToSteal, color), + public TakeItemOption(GameUnit target, IItem itemToTake, Color color, bool freeAction) : base( + GetOptionWindowForItem(itemToTake, color), color ) { this.target = target; - this.itemToSteal = itemToSteal; + this.itemToTake = itemToTake; + this.freeAction = freeAction; } private static IRenderable GetOptionWindowForItem(IItem item, Color color) @@ -32,27 +34,34 @@ private static IRenderable GetOptionWindowForItem(IItem item, Color color) { item.Icon.Clone(), new Window.Window( - new RenderText(AssetManager.WindowFont, $"Steal: {item.Name}"), + new RenderText(AssetManager.WindowFont, $"Take: {item.Name}"), color ), new Window.Window(item.UseAction().Description, color) } - }, - 1 + } ); } public override void Execute() { GameContext.GameMapContext.ClearStealItemMenu(); - Rob.StealItemFromInventory(GameContext.ActiveUnit, target, itemToSteal); + TakeItemAction.TakeItemFromInventory(GameContext.ActiveUnit, target, itemToTake); GlobalEventQueue.QueueSingleEvent(new WaitFramesEvent(30)); - GlobalEventQueue.QueueSingleEvent(new EndTurnEvent()); + + if (freeAction) + { + GlobalEventQueue.QueueSingleEvent(new AdditionalActionEvent()); + } + else + { + GlobalEventQueue.QueueSingleEvent(new EndTurnEvent()); + } } public override IRenderable Clone() { - return new StealItemOption(target, itemToSteal, DefaultColor); + return new TakeItemOption(target, itemToTake, DefaultColor, freeAction); } } } \ No newline at end of file diff --git a/SolStandard/HUD/Menu/Options/SubmenuOption.cs b/SolStandard/HUD/Menu/Options/SubmenuOption.cs new file mode 100644 index 00000000..16e4b84a --- /dev/null +++ b/SolStandard/HUD/Menu/Options/SubmenuOption.cs @@ -0,0 +1,46 @@ +using Microsoft.Xna.Framework; +using SolStandard.Containers.Contexts; +using SolStandard.HUD.Menu.Options.ActionMenu; +using SolStandard.HUD.Window.Content; +using SolStandard.Utility; +using SolStandard.Utility.Assets; + +namespace SolStandard.HUD.Menu.Options +{ + public class SubmenuOption : MenuOption, IOptionDescription + { + private readonly IMenu submenu; + private readonly IRenderable icon; + private readonly string label; + public IRenderable Description { get; } + + public SubmenuOption(IMenu submenu, IRenderable icon, string label, Color color) : this( + submenu, icon, label, string.Empty, color + ) + { + } + + public SubmenuOption(IMenu submenu, IRenderable icon, string label, string description, Color color) : base( + ActionOption.GenerateActionContent(icon, label, false), + color + ) + { + this.submenu = submenu; + this.icon = icon; + this.label = label; + Description = new RenderText(AssetManager.WindowFont, description); + } + + + public override void Execute() + { + GameMapContext.GameMapView.ActionMenuContext.OpenSubMenu(submenu); + } + + public override IRenderable Clone() + { + return new SubmenuOption(submenu, icon, label, DefaultColor); + } + + } +} \ No newline at end of file diff --git a/SolStandard/HUD/Window/AnimatedWindow.cs b/SolStandard/HUD/Window/AnimatedRenderable.cs similarity index 52% rename from SolStandard/HUD/Window/AnimatedWindow.cs rename to SolStandard/HUD/Window/AnimatedRenderable.cs index 98fc0cfa..bf422856 100644 --- a/SolStandard/HUD/Window/AnimatedWindow.cs +++ b/SolStandard/HUD/Window/AnimatedRenderable.cs @@ -5,17 +5,17 @@ namespace SolStandard.HUD.Window { - public class AnimatedWindow : IWindow + public class AnimatedRenderable : IWindow { - private IWindowAnimation WindowAnimation { get; } - private Window Window { get; } + private IRenderableAnimation RenderableAnimation { get; } + private IRenderable Window { get; } public int Height => Window.Height; public int Width => Window.Width; - public AnimatedWindow(Window window, IWindowAnimation windowAnimation) + public AnimatedRenderable(IRenderable window, IRenderableAnimation renderableAnimation) { Window = window; - WindowAnimation = windowAnimation; + RenderableAnimation = renderableAnimation; } public Color DefaultColor @@ -26,19 +26,19 @@ public Color DefaultColor public void Draw(SpriteBatch spriteBatch, Vector2 position) { - WindowAnimation.Update(position); - Window.Draw(spriteBatch, WindowAnimation.CurrentPosition); + RenderableAnimation.Update(position); + Window.Draw(spriteBatch, RenderableAnimation.CurrentPosition); } public void Draw(SpriteBatch spriteBatch, Vector2 position, Color colorOverride) { - WindowAnimation.Update(position); - Window.Draw(spriteBatch, WindowAnimation.CurrentPosition, colorOverride); + RenderableAnimation.Update(position); + Window.Draw(spriteBatch, RenderableAnimation.CurrentPosition, colorOverride); } public IRenderable Clone() { - return new AnimatedWindow(Window, WindowAnimation); + return new AnimatedRenderable(Window, RenderableAnimation); } } } \ No newline at end of file diff --git a/SolStandard/HUD/Window/Animation/IWindowAnimation.cs b/SolStandard/HUD/Window/Animation/IRenderableAnimation.cs similarity index 80% rename from SolStandard/HUD/Window/Animation/IWindowAnimation.cs rename to SolStandard/HUD/Window/Animation/IRenderableAnimation.cs index 862eca63..95e0e855 100644 --- a/SolStandard/HUD/Window/Animation/IWindowAnimation.cs +++ b/SolStandard/HUD/Window/Animation/IRenderableAnimation.cs @@ -2,7 +2,7 @@ namespace SolStandard.HUD.Window.Animation { - public interface IWindowAnimation + public interface IRenderableAnimation { void Update(Vector2 destination); Vector2 CurrentPosition { get; } diff --git a/SolStandard/HUD/Window/Animation/WindowSlide.cs b/SolStandard/HUD/Window/Animation/RenderableSlide.cs similarity index 93% rename from SolStandard/HUD/Window/Animation/WindowSlide.cs rename to SolStandard/HUD/Window/Animation/RenderableSlide.cs index 7bb72761..96915097 100644 --- a/SolStandard/HUD/Window/Animation/WindowSlide.cs +++ b/SolStandard/HUD/Window/Animation/RenderableSlide.cs @@ -4,7 +4,7 @@ namespace SolStandard.HUD.Window.Animation { - public class WindowSlide : IWindowAnimation + public class RenderableSlide : IRenderableAnimation { public enum SlideDirection { @@ -20,7 +20,7 @@ public enum SlideDirection public Vector2 CurrentPosition { get; private set; } private bool hasMoved; - public WindowSlide(SlideDirection slideDirection, float distanceToTravel, int slideSpeed = 10) + public RenderableSlide(SlideDirection slideDirection, float distanceToTravel, int slideSpeed = 10) { this.slideDirection = slideDirection; this.distanceToTravel = distanceToTravel; diff --git a/SolStandard/HUD/Window/Animation/WindowStatic.cs b/SolStandard/HUD/Window/Animation/RenderableStatic.cs similarity index 75% rename from SolStandard/HUD/Window/Animation/WindowStatic.cs rename to SolStandard/HUD/Window/Animation/RenderableStatic.cs index 91ad7176..ef84f135 100644 --- a/SolStandard/HUD/Window/Animation/WindowStatic.cs +++ b/SolStandard/HUD/Window/Animation/RenderableStatic.cs @@ -2,11 +2,11 @@ namespace SolStandard.HUD.Window.Animation { - public class WindowStatic : IWindowAnimation + public class RenderableStatic : IRenderableAnimation { public Vector2 CurrentPosition { get; private set; } - public WindowStatic(Vector2 position) + public RenderableStatic(Vector2 position) { CurrentPosition = position; } diff --git a/SolStandard/HUD/Window/Content/Combat/CombatDamage.cs b/SolStandard/HUD/Window/Content/Combat/CombatDamage.cs index 893ce547..902f0eae 100644 --- a/SolStandard/HUD/Window/Content/Combat/CombatDamage.cs +++ b/SolStandard/HUD/Window/Content/Combat/CombatDamage.cs @@ -205,7 +205,7 @@ private WindowContentGrid ConstructAttackPointGrid() if (allPointsCounted) { - damagePoints[row, column] = new RenderBlank(); + damagePoints[row, column] = RenderBlank.Blank; } else { @@ -245,7 +245,7 @@ private WindowContentGrid ConstructBlockPointGrid() if (allPointsCounted) { - damagePoints[row, column] = new RenderBlank(); + damagePoints[row, column] = RenderBlank.Blank; } else { diff --git a/SolStandard/HUD/Window/Content/RenderBlank.cs b/SolStandard/HUD/Window/Content/RenderBlank.cs index 542fc02c..1357416c 100644 --- a/SolStandard/HUD/Window/Content/RenderBlank.cs +++ b/SolStandard/HUD/Window/Content/RenderBlank.cs @@ -6,16 +6,18 @@ namespace SolStandard.HUD.Window.Content { public class RenderBlank : IRenderable { + public static IRenderable Blank { get; } = new RenderBlank(); + public int Height { get; } public int Width { get; } public Color DefaultColor { get; set; } - public RenderBlank() + private RenderBlank() { Height = 0; Width = 0; } - + public void Draw(SpriteBatch spriteBatch, Vector2 position) { //Do nothing @@ -28,7 +30,7 @@ public void Draw(SpriteBatch spriteBatch, Vector2 position, Color colorOverride) public IRenderable Clone() { - return new RenderBlank(); + return Blank; } } } \ No newline at end of file diff --git a/SolStandard/HUD/Window/Content/WindowContentGrid.cs b/SolStandard/HUD/Window/Content/WindowContentGrid.cs index 3408f7e6..62b769bd 100644 --- a/SolStandard/HUD/Window/Content/WindowContentGrid.cs +++ b/SolStandard/HUD/Window/Content/WindowContentGrid.cs @@ -22,7 +22,7 @@ private WindowContentGrid(List> contentGrid, int spacing, Hori DefaultColor = Color.Transparent; } - public WindowContentGrid(IRenderable[,] contentGrid, int spacing, + public WindowContentGrid(IRenderable[,] contentGrid, int spacing = 1, HorizontalAlignment alignment = HorizontalAlignment.Left) : this(ArrayToList.Convert2DArrayToNestedList(contentGrid), spacing, alignment) { diff --git a/SolStandard/HUD/Window/Window.cs b/SolStandard/HUD/Window/Window.cs index b5d9fff2..7b45a04b 100644 --- a/SolStandard/HUD/Window/Window.cs +++ b/SolStandard/HUD/Window/Window.cs @@ -54,11 +54,25 @@ public Window(IRenderable windowContent, Color color) : this(windowContent, colo { } - public Window(IRenderable[,] windowContentGrid, Color color, + public Window(IRenderable[,] windowContentGrid, Color color, Vector2 pixelSizeOverride, HorizontalAlignment horizontalAlignment = HorizontalAlignment.Left, int elementSpacing = 2, int insidePadding = 2) : this( - new WindowContentGrid(windowContentGrid, 1), + new WindowContentGrid(windowContentGrid), + color, + pixelSizeOverride, + horizontalAlignment, + elementSpacing, + insidePadding + ) + { + } + + public Window(IRenderable[,] windowContentGrid, Color color, + HorizontalAlignment horizontalAlignment = HorizontalAlignment.Left, int elementSpacing = 2, + int insidePadding = 2) + : this( + windowContentGrid, color, Vector2.Zero, horizontalAlignment, diff --git a/SolStandard/Map/Elements/Cursor/MapSlice.cs b/SolStandard/Map/Elements/Cursor/MapSlice.cs index 2e2a0116..132d422e 100644 --- a/SolStandard/Map/Elements/Cursor/MapSlice.cs +++ b/SolStandard/Map/Elements/Cursor/MapSlice.cs @@ -54,8 +54,6 @@ public override bool Equals(object obj) private bool Equals(MapSlice other) { return Equals(UnitEntity, other.UnitEntity) && - Equals(PreviewEntity, other.PreviewEntity) && - Equals(DynamicEntity, other.DynamicEntity) && Equals(TerrainEntity, other.TerrainEntity) && Equals(ItemEntity, other.ItemEntity) && Equals(CollideTile, other.CollideTile) && @@ -69,8 +67,6 @@ public override int GetHashCode() unchecked { int hashCode = (UnitEntity != null ? UnitEntity.GetHashCode() : 0); - hashCode += (hashCode * 397) ^ (PreviewEntity != null ? PreviewEntity.GetHashCode() : 0); - hashCode += (hashCode * 397) ^ (DynamicEntity != null ? DynamicEntity.GetHashCode() : 0); hashCode += (hashCode * 397) ^ (TerrainEntity != null ? TerrainEntity.GetHashCode() : 0); hashCode += (hashCode * 397) ^ (ItemEntity != null ? ItemEntity.GetHashCode() : 0); hashCode += (hashCode * 397) ^ (CollideTile != null ? CollideTile.GetHashCode() : 0); diff --git a/SolStandard/Map/TmxMapParser.cs b/SolStandard/Map/TmxMapParser.cs index a2f5c410..81d1ee53 100644 --- a/SolStandard/Map/TmxMapParser.cs +++ b/SolStandard/Map/TmxMapParser.cs @@ -270,8 +270,7 @@ public List LoadSummons() Convert.ToInt32(currentProperties["atkBonus"]), Convert.ToInt32(currentProperties["retBonus"]), Convert.ToInt32(currentProperties["blockBonus"]), - Convert.ToInt32(currentProperties["luckBonus"]), - Convert.ToBoolean(currentProperties["canMove"]) + Convert.ToInt32(currentProperties["luckBonus"]) ); break; case EntityTypes.Chest: @@ -348,7 +347,6 @@ public List LoadSummons() currentObject.Type, tileSprite, new Vector2(col, row), - Convert.ToBoolean(currentProperties["canMove"]), currentProperties["destinationId"], currentProperties["range"] .Split(',').Select(n => Convert.ToInt32(n)).ToArray() @@ -810,7 +808,6 @@ private static IItem TakeRandomItemFromPool(List mapLoot, string itemPool if (poolItems.Count <= 0) return null; IItem itemFromPool = poolItems[GameDriver.Random.Next(poolItems.Count)]; - mapLoot.Remove(itemFromPool); return itemFromPool; } diff --git a/SolStandard/SolStandard.csproj b/SolStandard/SolStandard.csproj index 359c69ed..25b1afc2 100644 --- a/SolStandard/SolStandard.csproj +++ b/SolStandard/SolStandard.csproj @@ -180,7 +180,6 @@ - @@ -191,6 +190,7 @@ + @@ -276,18 +276,20 @@ + + + - - + @@ -306,7 +308,10 @@ + + + @@ -335,16 +340,17 @@ - + + - - - + + + @@ -362,7 +368,7 @@ - + @@ -386,6 +392,7 @@ + @@ -427,10 +434,10 @@ - + - + @@ -461,7 +468,6 @@ - @@ -488,7 +494,7 @@ - + @@ -642,9 +648,6 @@ - - PreserveNewest - PreserveNewest @@ -654,24 +657,9 @@ PreserveNewest - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - PreserveNewest - - PreserveNewest - - - PreserveNewest - PreserveNewest @@ -684,12 +672,6 @@ PreserveNewest - - PreserveNewest - - - PreserveNewest - PreserveNewest @@ -699,15 +681,15 @@ PreserveNewest - - PreserveNewest - PreserveNewest PreserveNewest + + PreserveNewest + PreserveNewest @@ -729,15 +711,6 @@ PreserveNewest - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - PreserveNewest @@ -747,9 +720,6 @@ PreserveNewest - - - PreserveNewest diff --git a/SolStandard/Utility/Assets/AssetManager.cs b/SolStandard/Utility/Assets/AssetManager.cs index f3df9ed2..9254f047 100644 --- a/SolStandard/Utility/Assets/AssetManager.cs +++ b/SolStandard/Utility/Assets/AssetManager.cs @@ -38,6 +38,7 @@ public static class AssetManager public static List MapPreviewTextures { get; private set; } private static List GuiTextures { get; set; } + private static List MiscIcons { get; set; } private static List ButtonIcons { get; set; } private static List KeyboardIcons { get; set; } private static List SkillIcons { get; set; } @@ -68,10 +69,7 @@ public static class AssetManager public static ITexture2D WhiteGrid { get; private set; } public static ITexture2D DiceTexture { get; private set; } public static ITexture2D StatIcons { get; private set; } - public static ITexture2D GoldIcon { get; private set; } - public static ITexture2D SpoilsIcon { get; private set; } public static ITexture2D ObjectiveIcons { get; private set; } - public static ITexture2D CommanderIcon { get; private set; } public static ITexture2D TeamIcons { get; private set; } public static List UnitSprites { get; private set; } @@ -143,10 +141,9 @@ public static void LoadContent(ContentManager content) SmallPortraitTextures = ContentLoader.LoadSmallPortraits(content); DiceTexture = ContentLoader.LoadDiceAtlas(content); - - GoldIcon = ContentLoader.LoadGoldIcon(content); - SpoilsIcon = ContentLoader.LoadSpoilsIcon(content); - CommanderIcon = ContentLoader.LoadCommanderIcon(content); + + MiscIcons = ContentLoader.LoadMiscIcons(content); + MiscIconProvider.LoadMiscIcons(MiscIcons); ButtonIcons = ContentLoader.LoadButtonIcons(content); ButtonIconProvider.LoadButtons(ButtonIcons); diff --git a/SolStandard/Utility/Assets/MiscIconProvider.cs b/SolStandard/Utility/Assets/MiscIconProvider.cs new file mode 100644 index 00000000..ee7de108 --- /dev/null +++ b/SolStandard/Utility/Assets/MiscIconProvider.cs @@ -0,0 +1,65 @@ +using System.Collections.Generic; +using Microsoft.Xna.Framework; +using SolStandard.Utility.Monogame; + +namespace SolStandard.Utility.Assets +{ + public enum MiscIcon + { + First, + Second, + Independent, + Clock, + Crown, + Context, + Durability, + Gold, + Hand, + Spoils, + SkillBook + } + + public static class MiscIconProvider + { + private static Dictionary _miscIconDictionary; + + public static SpriteAtlas GetMiscIcon(MiscIcon icon, Vector2 iconSize) + { + return new SpriteAtlas( + _miscIconDictionary[icon], + new Vector2(_miscIconDictionary[icon].Width, _miscIconDictionary[icon].Height), + iconSize + ); + } + + public static void LoadMiscIcons(List miscIconTextures) + { + ITexture2D first = miscIconTextures.Find(texture => texture.Name.EndsWith("1st")); + ITexture2D second = miscIconTextures.Find(texture => texture.Name.EndsWith("2nd")); + ITexture2D independent = miscIconTextures.Find(texture => texture.Name.EndsWith("Independent")); + ITexture2D clock = miscIconTextures.Find(texture => texture.Name.EndsWith("clock")); + ITexture2D crown = miscIconTextures.Find(texture => texture.Name.EndsWith("CommanderCrown")); + ITexture2D context = miscIconTextures.Find(texture => texture.Name.EndsWith("Context")); + ITexture2D durability = miscIconTextures.Find(texture => texture.Name.EndsWith("durability")); + ITexture2D gold = miscIconTextures.Find(texture => texture.Name.EndsWith("Gold")); + ITexture2D hand = miscIconTextures.Find(texture => texture.Name.EndsWith("hand")); + ITexture2D spoils = miscIconTextures.Find(texture => texture.Name.EndsWith("spoils")); + ITexture2D skillBook = miscIconTextures.Find(texture => texture.Name.EndsWith("SkillBook")); + + _miscIconDictionary = new Dictionary + { + {MiscIcon.First, first}, + {MiscIcon.Second, second}, + {MiscIcon.Independent, independent}, + {MiscIcon.Clock, clock}, + {MiscIcon.Crown, crown}, + {MiscIcon.Context, context}, + {MiscIcon.Durability, durability}, + {MiscIcon.Gold, gold}, + {MiscIcon.Hand, hand}, + {MiscIcon.Spoils, spoils}, + {MiscIcon.SkillBook, skillBook}, + }; + } + } +} \ No newline at end of file diff --git a/SolStandard/Utility/Buttons/Gamepad/GamepadController.cs b/SolStandard/Utility/Buttons/Gamepad/GamepadController.cs index c4a52338..675cbdb1 100644 --- a/SolStandard/Utility/Buttons/Gamepad/GamepadController.cs +++ b/SolStandard/Utility/Buttons/Gamepad/GamepadController.cs @@ -96,7 +96,7 @@ public GameControl GetInput(Input input) public IRenderable GetInputIcon(Input input, Vector2 iconSize) { - if (input == Input.None) return new RenderBlank(); + if (input == Input.None) return RenderBlank.Blank; return ButtonIconProvider.GetButton(icons[input], iconSize); } diff --git a/SolStandard/Utility/Buttons/KeyboardInput/KeyboardController.cs b/SolStandard/Utility/Buttons/KeyboardInput/KeyboardController.cs index 27db2ca2..b14647e5 100644 --- a/SolStandard/Utility/Buttons/KeyboardInput/KeyboardController.cs +++ b/SolStandard/Utility/Buttons/KeyboardInput/KeyboardController.cs @@ -97,7 +97,7 @@ public GameControl GetInput(Input input) public IRenderable GetInputIcon(Input input, Vector2 iconSize) { - if (input == Input.None) return new RenderBlank(); + if (input == Input.None) return RenderBlank.Blank; return KeyboardIconProvider.GetKeyboardIcon(Icons[input], iconSize); } diff --git a/SolStandard/Utility/Buttons/Network/NetworkController.cs b/SolStandard/Utility/Buttons/Network/NetworkController.cs index ce702fb0..4bb03f74 100644 --- a/SolStandard/Utility/Buttons/Network/NetworkController.cs +++ b/SolStandard/Utility/Buttons/Network/NetworkController.cs @@ -105,7 +105,7 @@ public GameControl GetInput(Input input) public IRenderable GetInputIcon(Input input, Vector2 iconSize) { - return new RenderBlank(); + return RenderBlank.Blank; } public GameControl Confirm { get; } diff --git a/SolStandard/Utility/Events/AddItemToUnitInventoryEvent.cs b/SolStandard/Utility/Events/AddItemToUnitInventoryEvent.cs index fcac6429..c0a49fe9 100644 --- a/SolStandard/Utility/Events/AddItemToUnitInventoryEvent.cs +++ b/SolStandard/Utility/Events/AddItemToUnitInventoryEvent.cs @@ -38,8 +38,7 @@ public static void ItemToast(GameUnit unit, IItem item) SpriteResizer.TryResizeRenderable(item.Icon, new Vector2(MapContainer.MapToastIconSize)), new RenderText(AssetManager.MapFont, unit.Id + " got " + item.Name + "!") } - }, - 1 + } ); GameContext.GameMapContext.MapContainer.AddNewToastAtMapCursor(itemToast, 50); diff --git a/SolStandard/Utility/Events/AdditionalActionEvent.cs b/SolStandard/Utility/Events/AdditionalActionEvent.cs index cd254d03..d1eaa18c 100644 --- a/SolStandard/Utility/Events/AdditionalActionEvent.cs +++ b/SolStandard/Utility/Events/AdditionalActionEvent.cs @@ -10,9 +10,7 @@ public void Continue() { if (GameContext.ActiveUnit.IsAlive) { - GameContext.GameMapContext.ResetToActionMenu(); - GameContext.GameMapContext.MapContainer.AddNewToastAtMapCursor("Extra action!", 50); - GameMapContext.UpdateWindowsEachTurn(); + StartExtraAction("Extra action!"); } else { @@ -21,5 +19,12 @@ public void Continue() Complete = true; } + + public static void StartExtraAction(string message) + { + GameContext.GameMapContext.ResetToActionMenu(); + GameContext.GameMapContext.MapContainer.AddNewToastAtMapCursor(message, 50); + GameMapContext.UpdateWindowsEachTurn(); + } } } \ No newline at end of file diff --git a/SolStandard/Utility/Events/DecreaseUnitGoldEvent.cs b/SolStandard/Utility/Events/DecreaseTeamGoldEvent.cs similarity index 67% rename from SolStandard/Utility/Events/DecreaseUnitGoldEvent.cs rename to SolStandard/Utility/Events/DecreaseTeamGoldEvent.cs index 129a2e79..3ce41235 100644 --- a/SolStandard/Utility/Events/DecreaseUnitGoldEvent.cs +++ b/SolStandard/Utility/Events/DecreaseTeamGoldEvent.cs @@ -4,11 +4,11 @@ namespace SolStandard.Utility.Events { - public class DecreaseUnitGoldEvent : IEvent + public class DecreaseTeamGoldEvent : IEvent { private readonly int gold; - public DecreaseUnitGoldEvent(int gold) + public DecreaseTeamGoldEvent(int gold) { this.gold = gold; } @@ -17,9 +17,9 @@ public DecreaseUnitGoldEvent(int gold) public void Continue() { - GameContext.ActiveUnit.CurrentGold -= gold; + GameContext.InitiativeContext.DeductGoldFromTeam(gold, GameContext.ActiveTeam); GameContext.GameMapContext.MapContainer.AddNewToastAtMapCursor( - GameContext.ActiveUnit.Id + " lost " + gold + Currency.CurrencyAbbreviation + "!", 50 + $"{GameContext.ActiveTeam} team lost {gold} {Currency.CurrencyAbbreviation}!", 50 ); AssetManager.CoinSFX.Play(); GameMapContext.GameMapView.GenerateObjectiveWindow(); diff --git a/SolStandard/Utility/Events/DropItemEvent.cs b/SolStandard/Utility/Events/DropItemEvent.cs index da55de3c..5fe77c5b 100644 --- a/SolStandard/Utility/Events/DropItemEvent.cs +++ b/SolStandard/Utility/Events/DropItemEvent.cs @@ -1,10 +1,13 @@ -using Microsoft.Xna.Framework; +using System.Collections.Generic; +using Microsoft.Xna.Framework; using SolStandard.Containers; using SolStandard.Containers.Contexts; using SolStandard.Entity; using SolStandard.Entity.General; +using SolStandard.Entity.General.Item; using SolStandard.HUD.Window.Content; using SolStandard.Map; +using SolStandard.Map.Elements; using SolStandard.Utility.Assets; namespace SolStandard.Utility.Events @@ -36,12 +39,12 @@ public void Continue() new Vector2(MapContainer.MapToastIconSize)), new RenderText(AssetManager.MapFont, "Dropped " + itemTile.Name + "!") } - }, - 1 + } ); GameContext.GameMapContext.MapContainer.AddNewToastAtMapCursor(toastContent, 50); AssetManager.DropItemSFX.Play(); } + GameMapContext.GameMapView.GenerateObjectiveWindow(); Complete = true; @@ -50,7 +53,50 @@ public void Continue() private void DropItemAtCoordinates() { itemTile.SnapToCoordinates(dropCoordinates); - MapContainer.GameGrid[(int) Layer.Items][(int) dropCoordinates.X, (int) dropCoordinates.Y] = itemTile; + + MapElement targetItemElement = + MapContainer.GameGrid[(int) Layer.Items][(int) dropCoordinates.X, (int) dropCoordinates.Y]; + + + IItem newItemToDrop = itemTile as IItem; + List itemsToDrop; + int goldToDrop; + + switch (targetItemElement) + { + case Spoils targetSpoils: + itemsToDrop = targetSpoils.Items; + itemsToDrop.Add(newItemToDrop); + goldToDrop = targetSpoils.Gold; + break; + case Currency currency: + itemsToDrop = new List {newItemToDrop}; + goldToDrop = currency.Value; + break; + case IItem existingItem: + itemsToDrop = new List + { + existingItem, + newItemToDrop + }; + goldToDrop = 0; + break; + default: + itemsToDrop = new List {newItemToDrop}; + goldToDrop = 0; + break; + } + + Spoils spoilsToDrop = new Spoils( + "Item Bag", + "Spoils", + MiscIconProvider.GetMiscIcon(MiscIcon.Spoils, GameDriver.CellSizeVector), + dropCoordinates, + goldToDrop, + itemsToDrop + ); + + MapContainer.GameGrid[(int) Layer.Items][(int) dropCoordinates.X, (int) dropCoordinates.Y] = spoilsToDrop; } } } \ No newline at end of file diff --git a/SolStandard/Utility/Events/EndTurnEvent.cs b/SolStandard/Utility/Events/EndTurnEvent.cs index 921f3694..48101a26 100644 --- a/SolStandard/Utility/Events/EndTurnEvent.cs +++ b/SolStandard/Utility/Events/EndTurnEvent.cs @@ -1,24 +1,30 @@ using SolStandard.Containers.Contexts; using SolStandard.Entity; +using SolStandard.Entity.Unit.Statuses.Duelist; namespace SolStandard.Utility.Events { public class EndTurnEvent : IEvent { public bool Complete { get; private set; } - private readonly bool skipProcs; + private readonly bool duelistHasFocusPoints; - public EndTurnEvent(bool skipProcs = false) + public EndTurnEvent() { - this.skipProcs = skipProcs; + duelistHasFocusPoints = FocusStatus.ActiveDuelistHasFocusPoints; } public void Continue() { + if (duelistHasFocusPoints) + { + (GameContext.ActiveUnit.StatusEffects.Find(status => status is FocusStatus) as FocusStatus) + ?.StartAdditionalAction(); + } //IMPORTANT Do not allow tiles that have been triggered to trigger again or the risk of soft-locking via infinite triggers can occur - if (!GameMapContext.TriggerEffectTiles(EffectTriggerTime.EndOfTurn, false)) + else if (!GameMapContext.TriggerEffectTiles(EffectTriggerTime.EndOfTurn, false)) { - GameMapContext.FinishTurn(skipProcs); + GameMapContext.FinishTurn(false); } Complete = true; diff --git a/SolStandard/Utility/Events/IncreaseUnitGoldEvent.cs b/SolStandard/Utility/Events/IncreaseTeamGoldEvent.cs similarity index 67% rename from SolStandard/Utility/Events/IncreaseUnitGoldEvent.cs rename to SolStandard/Utility/Events/IncreaseTeamGoldEvent.cs index bf18d404..1be70961 100644 --- a/SolStandard/Utility/Events/IncreaseUnitGoldEvent.cs +++ b/SolStandard/Utility/Events/IncreaseTeamGoldEvent.cs @@ -4,11 +4,11 @@ namespace SolStandard.Utility.Events { - public class IncreaseUnitGoldEvent : IEvent + public class IncreaseTeamGoldEvent : IEvent { private readonly int gold; - public IncreaseUnitGoldEvent(int gold) + public IncreaseTeamGoldEvent(int gold) { this.gold = gold; } @@ -17,9 +17,9 @@ public IncreaseUnitGoldEvent(int gold) public void Continue() { - GameContext.ActiveUnit.CurrentGold += gold; + GameContext.InitiativeContext.AddGoldToTeam(gold, GameContext.ActiveTeam); GameContext.GameMapContext.MapContainer.AddNewToastAtMapCursor( - GameContext.ActiveUnit.Id + " got " + gold + Currency.CurrencyAbbreviation + "!", 50 + $"{GameContext.ActiveTeam} team got {gold} {Currency.CurrencyAbbreviation}!", 50 ); AssetManager.CoinSFX.Play(); GameMapContext.GameMapView.GenerateObjectiveWindow(); diff --git a/SolStandard/Utility/Events/Network/CancelActionEvent.cs b/SolStandard/Utility/Events/Network/CancelActionTargetingEvent.cs similarity index 64% rename from SolStandard/Utility/Events/Network/CancelActionEvent.cs rename to SolStandard/Utility/Events/Network/CancelActionTargetingEvent.cs index 7316fec1..ea577b3a 100644 --- a/SolStandard/Utility/Events/Network/CancelActionEvent.cs +++ b/SolStandard/Utility/Events/Network/CancelActionTargetingEvent.cs @@ -4,11 +4,11 @@ namespace SolStandard.Utility.Events.Network { [Serializable] - public class CancelActionEvent : NetworkEvent + public class CancelActionTargetingEvent : NetworkEvent { public override void Continue() { - GameContext.GameMapContext.CancelTargetAction(); + GameContext.GameMapContext.CancelUnitTargeting(); Complete = true; } } diff --git a/SolStandard/Utility/Events/Network/ConcedeEvent.cs b/SolStandard/Utility/Events/Network/ConcedeEvent.cs index 9181b731..3d41f02e 100644 --- a/SolStandard/Utility/Events/Network/ConcedeEvent.cs +++ b/SolStandard/Utility/Events/Network/ConcedeEvent.cs @@ -13,7 +13,7 @@ public override void Continue() { if (GameContext.Scenario.Objectives[VictoryConditions.Surrender] is Surrender surrender) { - switch (GameContext.ActiveUnit.Team) + switch (GameContext.ActiveTeam) { case Team.Red: surrender.RedConcedes = true; diff --git a/SolStandard/Utility/Events/Network/ToggleCombatMenuEvent.cs b/SolStandard/Utility/Events/Network/ToggleCombatMenuEvent.cs deleted file mode 100644 index 9ad8305a..00000000 --- a/SolStandard/Utility/Events/Network/ToggleCombatMenuEvent.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using SolStandard.Containers.Contexts; - -namespace SolStandard.Utility.Events.Network -{ - [Serializable] - public class ToggleCombatMenuEvent : NetworkEvent - { - public override void Continue() - { - GameContext.GameMapContext.ToggleActionInventoryMenu(); - Complete = true; - } - } -} \ No newline at end of file diff --git a/SolStandard/Utility/Events/PickUpCurrencyEvent.cs b/SolStandard/Utility/Events/PickUpCurrencyEvent.cs index 64eb2afb..de70e17b 100644 --- a/SolStandard/Utility/Events/PickUpCurrencyEvent.cs +++ b/SolStandard/Utility/Events/PickUpCurrencyEvent.cs @@ -1,6 +1,7 @@ using SolStandard.Containers; using SolStandard.Containers.Contexts; using SolStandard.Entity.General.Item; +using SolStandard.Entity.Unit; using SolStandard.Map; using SolStandard.Utility.Assets; @@ -19,7 +20,15 @@ public PickUpCurrencyEvent(Currency currency) public void Continue() { - GameContext.ActiveUnit.CurrentGold += currency.Value; + if (GameContext.ActiveTeam == Team.Creep) + { + GameContext.ActiveUnit.CurrentBounty += currency.Value; + } + else + { + GameContext.InitiativeContext.AddGoldToTeam(currency.Value, GameContext.ActiveTeam); + } + RemoveItemFromMap(); AssetManager.CoinSFX.Play(); GameMapContext.GameMapView.GenerateObjectiveWindow(); diff --git a/SolStandard/Utility/Events/StartCombatEvent.cs b/SolStandard/Utility/Events/StartCombatEvent.cs index 9cff646f..5cd4a3a3 100644 --- a/SolStandard/Utility/Events/StartCombatEvent.cs +++ b/SolStandard/Utility/Events/StartCombatEvent.cs @@ -1,5 +1,4 @@ -using SolStandard.Containers; -using SolStandard.Containers.Contexts; +using SolStandard.Containers.Contexts; using SolStandard.Entity.Unit; using SolStandard.Utility.Assets; @@ -26,7 +25,6 @@ public void Continue() { GameUnit attackingUnit = GameContext.ActiveUnit; GameUnit defendingUnit = targetUnit; - MapContainer.ClearDynamicAndPreviewGrids(); GameContext.BattleContext.StartNewCombat(attackingUnit, defendingUnit, attackerStatsOverride, defendingUnit.Stats, freeAction); diff --git a/SolStandard/Utility/Events/TakeSpoilsEvent.cs b/SolStandard/Utility/Events/TakeSpoilsEvent.cs index c8e02daa..ff09ed1b 100644 --- a/SolStandard/Utility/Events/TakeSpoilsEvent.cs +++ b/SolStandard/Utility/Events/TakeSpoilsEvent.cs @@ -20,7 +20,7 @@ public TakeSpoilsEvent(Spoils spoils) public void Continue() { - GameContext.ActiveUnit.CurrentGold += spoils.Gold; + GameContext.InitiativeContext.AddGoldToTeam(spoils.Gold, GameContext.ActiveTeam); foreach (IItem item in spoils.Items) { diff --git a/SolStandard/Utility/Events/TransferUnitGoldEvent.cs b/SolStandard/Utility/Events/TransferUnitGoldEvent.cs index ab1596ca..579b9d00 100644 --- a/SolStandard/Utility/Events/TransferUnitGoldEvent.cs +++ b/SolStandard/Utility/Events/TransferUnitGoldEvent.cs @@ -27,8 +27,8 @@ public TransferUnitGoldEvent(GameUnit givingUnit, GameUnit receivingUnit, int go public void Continue() { - givingUnit.CurrentGold -= goldToGive; - receivingUnit.CurrentGold += goldToGive; + givingUnit.CurrentBounty -= goldToGive; + receivingUnit.CurrentBounty += goldToGive; IRenderable toastContent = new WindowContentGrid( new[,] @@ -40,8 +40,7 @@ public void Continue() $"{givingUnit.Id} gave {goldToGive + Currency.CurrencyAbbreviation} to {receivingUnit.Id}!" ) } - }, - 1 + } ); GameContext.GameMapContext.MapContainer.AddNewToastAtMapCursor(toastContent, 50); diff --git a/SolStandard/Utility/Events/TransferUnitItemEvent.cs b/SolStandard/Utility/Events/TransferUnitItemEvent.cs index a9c9a037..4b307255 100644 --- a/SolStandard/Utility/Events/TransferUnitItemEvent.cs +++ b/SolStandard/Utility/Events/TransferUnitItemEvent.cs @@ -38,10 +38,9 @@ public void Continue() $"{givingUnit.Id} gave {itemToGive.Name} to {receivingUnit.Id}!" ) } - }, - 1 + } ); - + GameMapContext.GameMapView.GenerateObjectiveWindow(); GameContext.GameMapContext.MapContainer.AddNewToastAtMapCursor(toastContent, 50); AssetManager.MenuConfirmSFX.Play(); diff --git a/SolStandard/Utility/Load/ContentLoader.cs b/SolStandard/Utility/Load/ContentLoader.cs index d86343bb..8098ae45 100644 --- a/SolStandard/Utility/Load/ContentLoader.cs +++ b/SolStandard/Utility/Load/ContentLoader.cs @@ -291,12 +291,6 @@ public static List LoadAnimations(ContentManager content) return songITextures; } - public static ITexture2D LoadCommanderIcon(ContentManager content) - { - Texture2D loadTexture = content.Load("Graphics/Images/Icons/Misc/CommanderCrown"); - return new Texture2DWrapper(loadTexture); - } - public static ITexture2D LoadGameLogo(ContentManager content) { Texture2D backgroundTexture = @@ -320,32 +314,18 @@ public static List LoadMapPreviews(ContentManager content) { List mapPreviewTextures = new List { - content.Load("Graphics/Map/MapPreviews/Beach_01"), - content.Load("Graphics/Map/MapPreviews/Village_01"), - content.Load("Graphics/Map/MapPreviews/Chesslike_01"), - content.Load("Graphics/Map/MapPreviews/Crossroads_01"), - content.Load("Graphics/Map/MapPreviews/Dungeon_01"), - content.Load("Graphics/Map/MapPreviews/Scotia_Hill_Redux_01"), - content.Load("Graphics/Map/MapPreviews/Draft_01_Arena"), content.Load("Graphics/Map/MapPreviews/Draft_02_Dungeon"), - content.Load("Graphics/Map/MapPreviews/Draft_Arena_Dungeon_01"), content.Load("Graphics/Map/MapPreviews/Draft_Arena_Dungeon_02"), - content.Load("Graphics/Map/MapPreviews/Draft_Arena_Grassland_01"), - content.Load("Graphics/Map/MapPreviews/Draft_Arena_Tower_01"), - content.Load("Graphics/Map/MapPreviews/Draft_Fortress_01"), content.Load("Graphics/Map/MapPreviews/Draft_Fortress_02"), content.Load("Graphics/Map/MapPreviews/Draft_Grassland_01"), + content.Load("Graphics/Map/MapPreviews/Draft_Grassland_02"), content.Load("Graphics/Map/MapPreviews/Draft_Island_Coast"), - content.Load("Graphics/Map/MapPreviews/Draft_Tavern_Inn"), - content.Load("Graphics/Map/MapPreviews/Draft_Dimpimple_Beach"), - content.Load("Graphics/Map/MapPreviews/Draft_Crossroads"), content.Load("Graphics/Map/MapPreviews/Draft_Jirai_Archipelago"), content.Load("Graphics/Map/MapPreviews/Draft_Master_Control"), content.Load("Graphics/Map/MapPreviews/Draft_Verdant_Forest"), content.Load("Graphics/Map/MapPreviews/Draft_Raid_Dungeon"), content.Load("Graphics/Map/MapPreviews/Draft_Dusk_Temple"), - content.Load("Graphics/Map/MapPreviews/Draft_Town_Market"), content.Load("Graphics/Map/MapPreviews/Draft_Collosseum_01"), content.Load("Graphics/Map/MapPreviews/Solo_Alpha_Dungeon"), @@ -659,16 +639,22 @@ public static List LoadMusic(ContentManager content) }; } - public static ITexture2D LoadGoldIcon(ContentManager content) + public static List LoadMiscIcons(ContentManager content) { - Texture2D loadTexture = content.Load("Graphics/Images/Icons/Misc/gold"); - return new Texture2DWrapper(loadTexture); - } - - public static ITexture2D LoadSpoilsIcon(ContentManager content) - { - Texture2D loadTexture = content.Load("Graphics/Images/Icons/Misc/spoils"); - return new Texture2DWrapper(loadTexture); + return new List + { + new Texture2DWrapper(content.Load("Graphics/Images/Icons/Misc/1st")), + new Texture2DWrapper(content.Load("Graphics/Images/Icons/Misc/2nd")), + new Texture2DWrapper(content.Load("Graphics/Images/Icons/Misc/Independent")), + new Texture2DWrapper(content.Load("Graphics/Images/Icons/Misc/clock")), + new Texture2DWrapper(content.Load("Graphics/Images/Icons/Misc/CommanderCrown")), + new Texture2DWrapper(content.Load("Graphics/Images/Icons/Misc/Context")), + new Texture2DWrapper(content.Load("Graphics/Images/Icons/Misc/durability")), + new Texture2DWrapper(content.Load("Graphics/Images/Icons/Misc/Gold")), + new Texture2DWrapper(content.Load("Graphics/Images/Icons/Misc/hand")), + new Texture2DWrapper(content.Load("Graphics/Images/Icons/Misc/spoils")), + new Texture2DWrapper(content.Load("Graphics/Images/Icons/Misc/SkillBook")), + }; } public static ITexture2D LoadObjectiveIcons(ContentManager content) diff --git a/SolStandard/Utility/Model/CreepRoutineModel.cs b/SolStandard/Utility/Model/CreepRoutineModel.cs index 3090e1da..26fee6fa 100644 --- a/SolStandard/Utility/Model/CreepRoutineModel.cs +++ b/SolStandard/Utility/Model/CreepRoutineModel.cs @@ -52,7 +52,6 @@ public class CreepRoutineModel public Role CreepClass { get; } public string CreepPool { get; } private readonly bool isCommander; - private readonly bool isIndependent; private readonly string items; private readonly Team team; private readonly Routine fallbackRoutine; @@ -69,6 +68,7 @@ public class CreepRoutineModel private readonly bool routineKingslayer; private readonly bool routineWait; public int StartingGold { get; } + public bool IsIndependent { get; } private CreepRoutineModel(Role creepClass, bool isCommander, bool isIndependent, string items, Team team, string creepPool, int startingGold, Routine fallbackRoutine, bool routineBasicAttack, @@ -79,7 +79,7 @@ private CreepRoutineModel(Role creepClass, bool isCommander, bool isIndependent, CreepClass = creepClass; CreepPool = creepPool; this.isCommander = isCommander; - this.isIndependent = isIndependent; + IsIndependent = isIndependent; this.items = items; this.team = team; StartingGold = startingGold; @@ -145,7 +145,7 @@ private static UnitAction GenerateRoutine(Routine routine, bool isIndependent, s return new WanderRoutine(); case Routine.Summon: CreepEntity creepToSummon = FindSummonByName(summonName); - return new SummoningRoutine(creepToSummon.Routines); + return new SummoningRoutine(creepToSummon.Model); case Routine.TreasureHunter: return new TreasureHunterRoutine(); case Routine.TriggerHappy: @@ -231,7 +231,7 @@ private static Routine GetRoutineByName(string routineName) { {ClassProp, CreepClass.ToString()}, {CommanderProp, isCommander.ToString()}, - {IndependentProp, isIndependent.ToString()}, + {IndependentProp, IsIndependent.ToString()}, {ItemsProp, items}, {TeamProp, team.ToString()}, {CreepPoolProp, CreepPool}, diff --git a/SolStandard/Utility/PathingUtil.cs b/SolStandard/Utility/PathingUtil.cs index 518ebe40..c241ee43 100644 --- a/SolStandard/Utility/PathingUtil.cs +++ b/SolStandard/Utility/PathingUtil.cs @@ -35,6 +35,9 @@ public static Queue MoveToCoordinates(GameUnit movingUnit, Vector2 endCo } pathToItemQueue.Enqueue(new CreepMoveEvent(movingUnit, Direction.None)); + + MapContainer.ClearDynamicAndPreviewGrids(); + return pathToItemQueue; } } diff --git a/SolStandard/Utility/SpriteAtlas.cs b/SolStandard/Utility/SpriteAtlas.cs index 996c4554..21f24735 100644 --- a/SolStandard/Utility/SpriteAtlas.cs +++ b/SolStandard/Utility/SpriteAtlas.cs @@ -1,7 +1,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using SolStandard.Utility.Monogame; using SolStandard.Utility.Exceptions; +using SolStandard.Utility.Monogame; namespace SolStandard.Utility { diff --git a/SolStandardTest/Containers/Contexts/InitiativeContextTest.cs b/SolStandardTest/Containers/Contexts/InitiativeContextTest.cs deleted file mode 100644 index 8cd4e89e..00000000 --- a/SolStandardTest/Containers/Contexts/InitiativeContextTest.cs +++ /dev/null @@ -1,146 +0,0 @@ -using System.Collections.Generic; -using NUnit.Framework; -using SolStandard.Containers.Contexts; -using SolStandard.Entity.Unit; -using SolStandard.Entity.Unit.Actions; -using SolStandard.Utility.Monogame; - -namespace SolStandardTest.Containers.Contexts -{ - [TestFixture] - public class InitiativeContextTest - { - private static readonly GameUnit BlueUnit = - new GameUnit("BlueGuy", Team.Blue, Role.Bard, null, new UnitStatistics(10, 2, 2, 2, 0, 2, 2, new[] {1}, 0), - new BlankTexture(), new List(), true); - - private static readonly GameUnit RedUnit = - new GameUnit("RedGuy", Team.Red, Role.Bard, null, new UnitStatistics(10, 2, 2, 2, 0, 2, 2, new[] {1}, 0), - new BlankTexture(), new List(), true); - - [Test] - public void testInitiativeListRandomizer_3v3_BlueFirst() - { - List unitList = GenerateUnitList(3, 3); - - InitiativeContext initiativeContext = new InitiativeContext(unitList, Team.Blue); - - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[0].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[1].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[2].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[3].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[4].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[5].Team); - } - - [Test] - public void testInitiativeListRandomizer_3v3_RedFirst() - { - List unitList = GenerateUnitList(3, 3); - - InitiativeContext initiativeContext = new InitiativeContext(unitList, Team.Red); - - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[0].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[1].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[2].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[3].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[4].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[5].Team); - } - - [Test] - public void testInitiativeListRandomizer_3v5_BlueMajority() - { - List unitList = GenerateUnitList(redUnits: 3, blueUnits: 5); - - InitiativeContext initiativeContext = new InitiativeContext(unitList, Team.Blue); - - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[0].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[1].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[2].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[3].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[4].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[5].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[6].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[7].Team); - } - - [Test] - public void testInitiativeListRandomizer_3v5_RedMajority() - { - List unitList = GenerateUnitList(redUnits: 5, blueUnits: 3); - - InitiativeContext initiativeContext = new InitiativeContext(unitList, Team.Blue); - - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[0].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[1].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[2].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[3].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[4].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[5].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[6].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[7].Team); - } - - [Test] - public void testInitiativeListRandomizer_3v8() - { - List unitList = GenerateUnitList(redUnits: 3, blueUnits: 8); - - InitiativeContext initiativeContext = new InitiativeContext(unitList, Team.Blue); - - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[0].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[1].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[2].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[3].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[4].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[5].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[6].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[7].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[8].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[9].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[10].Team); - } - - [Test] - public void testInitiativeListRandomizer_3v11() - { - List unitList = GenerateUnitList(redUnits: 11, blueUnits: 3); - - InitiativeContext initiativeContext = new InitiativeContext(unitList, Team.Blue); - - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[0].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[1].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[2].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[3].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[4].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[5].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[6].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[7].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[8].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[9].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[10].Team); - Assert.AreEqual(BlueUnit.Team, initiativeContext.InitiativeList[11].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[12].Team); - Assert.AreEqual(RedUnit.Team, initiativeContext.InitiativeList[13].Team); - } - - - private static List GenerateUnitList(int redUnits, int blueUnits) - { - List unitList = new List(); - - for (int i = 0; i < redUnits; i++) - { - unitList.Add(RedUnit); - } - - for (int i = 0; i < blueUnits; i++) - { - unitList.Add(BlueUnit); - } - - return unitList; - } - } -} \ No newline at end of file diff --git a/SolStandardTest/SolStandardTest.csproj b/SolStandardTest/SolStandardTest.csproj index 235df525..fa6d03d7 100644 --- a/SolStandardTest/SolStandardTest.csproj +++ b/SolStandardTest/SolStandardTest.csproj @@ -148,7 +148,6 @@ - @@ -178,6 +177,7 @@ +