diff --git a/Assets/UI/GeneralStyleSheet.uss b/Assets/UI/GeneralStyleSheet.uss index 6985a4620ad196eb65774018dfc91582b5b76300..3a4b0000af669269c40fd98ffadfb4b7bbb65941 100644 --- a/Assets/UI/GeneralStyleSheet.uss +++ b/Assets/UI/GeneralStyleSheet.uss @@ -1,3 +1,8 @@ +.left-right-spaced { + margin-right: 24px; + margin-left: 24px; +} + .root-container { flex-grow: 1; width: 100%; @@ -5,6 +10,22 @@ } .button { + padding-top: 16px; + padding-right: 16px; + padding-bottom: 16px; + padding-left: 16px; + transition-property: background-color, color; + transition-duration: 0.2s, 0.2s; + -unity-font-style: bold; + border-left-color: rgba(0, 0, 0, 0); + border-right-color: rgba(0, 0, 0, 0); + border-top-color: rgba(0, 0, 0, 0); + border-bottom-color: rgba(0, 0, 0, 0); +} + +.do-button { + background-color: rgb(104, 183, 35); + text-shadow: 0 0 0 rgb(255, 255, 255); } .transform-transition-container { @@ -12,10 +33,19 @@ transition-duration: 0.25s; } +.normal-text { + font-size: 20px; + -unity-font-style: bold; +} + .exiting { translate: -100% 0; } +.has-text { + -unity-font-definition: url("project://database/Assets/TextMesh%20Pro/Examples%20&%20Extras/Fonts/Unity.ttf?fileID=12800000&guid=f4eec857a4fdf2f43be0e9f3d1a984e7&type=3#Unity"); +} + .entering { translate: 100% 0; } @@ -33,5 +63,123 @@ } .overlay { - background-color: rgba(0, 0, 0, 0.69); + background-color: rgba(39, 52, 69, 0.83); +} + +.normal-button { + background-color: rgb(114, 57, 179); + -unity-font-style: bold; + border-left-color: rgba(0, 0, 0, 0); + border-right-color: rgba(0, 0, 0, 0); + border-top-color: rgba(0, 0, 0, 0); + border-bottom-color: rgba(0, 0, 0, 0); + color: rgb(255, 255, 255); + transition-duration: 0.2s; +} + +.cancel-button { + background-color: rgb(198, 38, 46); + color: rgb(255, 255, 255); +} + +.rounded { + border-top-left-radius: 12px; + border-top-right-radius: 12px; + border-bottom-right-radius: 12px; + border-bottom-left-radius: 12px; +} + +.main-menu-container { +} + +.rounded { + border-top-left-radius: 12px; + border-top-right-radius: 12px; + border-bottom-right-radius: 12px; + border-bottom-left-radius: 12px; +} + +.main-menu-screen-title { + font-size: 36px; + -unity-font-style: bold; + color: rgb(155, 219, 77); +} + +.padded-container { + padding-top: 32px; + padding-right: 32px; + padding-bottom: 32px; + padding-left: 32px; +} + +.cancel-button { + background-color: rgb(198, 38, 46); + color: rgb(255, 255, 255); +} + +.has-texr { +} + +.main-menu-overlay { + background-image: none; + background-color: rgba(13, 82, 191, 0.29); +} + +.bottom-above-spaced { + margin-top: 24px; + margin-right: 0; + margin-bottom: 24px; + margin-left: 0; +} + +.info-prompt-text { + font-size: 36px; + -unity-font-style: bold; +} + +.spacer { + width: initial; + flex-grow: 1; +} + +.cancel-button:hover { + background-color: rgb(255, 255, 255); + color: rgb(198, 38, 46); +} + +.main-menu-back-button { + rotate: -10deg; + transition-duration: 0.2s; + transition-timing-function: ease-in; +} + +.main-menu-screen-title { + font-size: 36px; + -unity-font-style: bold; + color: rgb(155, 219, 77); +} + +.main-menu-back-button:hover { + rotate: 0; + scale: 1.2 1.2; +} + +.normal-button:hover { + scale: 1.2 1.2; + rotate: 10deg; + color: rgb(114, 57, 179); + background-color: rgb(255, 255, 255); +} + +.rotated { + rotate: -10deg; +} + +.main-menu-overlay { + background-image: none; + background-color: rgba(13, 82, 191, 0.29); +} + +.has-text { + -unity-font-definition: url("project://database/Assets/TextMesh%20Pro/Examples%20&%20Extras/Fonts/Unity.ttf?fileID=12800000&guid=f4eec857a4fdf2f43be0e9f3d1a984e7&type=3#Unity"); } diff --git a/Assets/UI/InGame/CompletedScreen/CompletedScreen.uxml b/Assets/UI/InGame/CompletedScreen/CompletedScreen.uxml index 523746ca06179ec1a67bef8e072cd766a066100e..7ab7f5f2b4ba0b2fccbd0d2b784dd69033b0eb53 100644 --- a/Assets/UI/InGame/CompletedScreen/CompletedScreen.uxml +++ b/Assets/UI/InGame/CompletedScreen/CompletedScreen.uxml @@ -1,9 +1,11 @@ <ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="False"> <Style src="project://database/Assets/UI/GeneralStyleSheet.uss?fileID=7433441132597879392&guid=103e7885a07d8d0b094c9b5affb02f2a&type=3#GeneralStyleSheet" /> <ui:VisualElement name="Container" class="overlay" style="flex-grow: 1; align-items: center; justify-content: center;"> - <ui:Label text="Congratulations! You've Finished the Game!" name="CompletedText" style="align-items: center; -unity-text-align: upper-center; font-size: 36px; background-color: rgba(255, 255, 255, 0); color: rgb(255, 255, 255);" /> - <ui:VisualElement name="ButtonContainer" style="flex-grow: 0; margin-top: 20px;"> - <ui:Button text="Return To Main Menu" name="ReturnToMainMenu" class="button" /> + <ui:VisualElement name="CompletedScreenContainer" class="rotated" style="flex-grow: 1; align-items: center; justify-content: center;"> + <ui:Label text="Congratulations! You've Finished the Game!" name="CompletedText" class="info-prompt-text" style="align-items: center; -unity-text-align: upper-center; font-size: 36px; background-color: rgba(255, 255, 255, 0); color: rgb(255, 255, 255);" /> + <ui:VisualElement name="ButtonContainer" style="flex-grow: 0; margin-top: 20px;"> + <ui:Button text="Return To Main Menu" name="ReturnToMainMenu" class="button rounded normal-button" /> + </ui:VisualElement> </ui:VisualElement> </ui:VisualElement> </ui:UXML> diff --git a/Assets/UI/InGame/GameOverScreen/GameOverScreen.uxml b/Assets/UI/InGame/GameOverScreen/GameOverScreen.uxml index 7406462ac052f4d830dad05d0c04a6463a3a7e80..25743170c53fdc5e8128ea05eaffeaefb921d96b 100644 --- a/Assets/UI/InGame/GameOverScreen/GameOverScreen.uxml +++ b/Assets/UI/InGame/GameOverScreen/GameOverScreen.uxml @@ -1,10 +1,12 @@ <ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="False"> <Style src="project://database/Assets/UI/GeneralStyleSheet.uss?fileID=7433441132597879392&guid=103e7885a07d8d0b094c9b5affb02f2a&type=3#GeneralStyleSheet" /> + <Style src="project://database/Assets/UI/MainMenuScene/GameStatisticsDisplay/GameStatisticsDisplay.uss?fileID=7433441132597879392&guid=ef9264b1b90c7f76e9cb71200220ec16&type=3#GameStatisticsDisplay" /> <ui:VisualElement name="Container" class="overlay" style="flex-grow: 1; align-items: center; justify-content: center;"> - <ui:Label text="Game Over!" name="GameOverText" style="align-items: center; -unity-text-align: upper-center; font-size: 36px; background-color: rgba(255, 255, 255, 0); color: rgb(255, 255, 255);" /> - <ui:VisualElement name="ButtonContainer" style="flex-grow: 0; margin-top: 20px; margin-bottom: 20px;"> - <ui:Button text="Return To Main Menu" name="ReturnToMainMenu" class="button" /> + <ui:VisualElement name="GameOverContainer" class="rotated" style="flex-grow: 1; justify-content: center; align-self: center; align-items: center;"> + <ui:Label text="Game Over!" name="GameOverText" class="info-prompt-text" style="align-items: center; -unity-text-align: upper-center; font-size: 36px; background-color: rgba(255, 255, 255, 0); color: rgb(255, 255, 255); margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0;" /> + <ui:VisualElement name="ButtonContainer" class="rounded" style="flex-grow: 0; margin-top: 20px; margin-bottom: 20px;" /> + <ui:Button text="Return To Main Menu" name="ReturnToMainMenu" class="button rounded normal-button bottom-above-spaced" style="width: initial; height: initial;" /> + <GameStatisticsContainer style="color: rgb(255, 255, 255); align-items: stretch;" /> </ui:VisualElement> - <GameStatisticsContainer style="color: rgb(255, 255, 255);" /> </ui:VisualElement> </ui:UXML> diff --git a/Assets/UI/InGame/HealthBar/HealthBar.uss b/Assets/UI/InGame/HealthBar/HealthBar.uss index 397a835c8ad93de3950cc5745eadbf35cb9d7d22..e8b34671deec7230ffba1148cd045d47d316c04b 100644 --- a/Assets/UI/InGame/HealthBar/HealthBar.uss +++ b/Assets/UI/InGame/HealthBar/HealthBar.uss @@ -5,13 +5,17 @@ padding-right: 0; padding-bottom: 0; padding-left: 0; - background-color: rgb(221, 60, 60); + background-color: rgb(198, 38, 46); width: 0; height: 30px; transition-duration: 0.25s; transition-delay: 0.25s; transition-timing-function: ease-in-out; transition-property: width; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; + border-bottom-left-radius: 6px; } .outer-bar { @@ -24,6 +28,10 @@ padding-left: 12px; width: 600px; --outer-bar-width: 600px; + border-top-left-radius: 12px; + border-top-right-radius: 12px; + border-bottom-right-radius: 12px; + border-bottom-left-radius: 12px; } .health-bar-background { @@ -34,6 +42,10 @@ } .pet-counter-card { + border-top-left-radius: 6px; + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; + border-bottom-left-radius: 6px; } .pet-counter-card-pet-name { diff --git a/Assets/UI/InGame/HealthBar/HealthBar.uxml b/Assets/UI/InGame/HealthBar/HealthBar.uxml index 1a56007bb8a6e6741ad619106a47a6c44c7a61ba..bace5c620ca6dbcb7102bd18c848f882bc598919 100644 --- a/Assets/UI/InGame/HealthBar/HealthBar.uxml +++ b/Assets/UI/InGame/HealthBar/HealthBar.uxml @@ -7,6 +7,6 @@ <ui:DataBinding property="Health" binding-mode="ToTarget" data-source-type="Player, Assembly-CSharp" data-source-path="health" /> </Bindings> </HealthBar> - <PetCounter data-source-type="Player" /> + <PetCounter data-source-type="Player" class="has-text" /> </ui:VisualElement> </ui:UXML> diff --git a/Assets/UI/InGame/PauseMenu/PauseMenu.uxml b/Assets/UI/InGame/PauseMenu/PauseMenu.uxml index 22457d12f26d998208a7a1830373f3ed25676d33..ad76eaf9473d2cf47d3fe466699ba65166b42db5 100644 --- a/Assets/UI/InGame/PauseMenu/PauseMenu.uxml +++ b/Assets/UI/InGame/PauseMenu/PauseMenu.uxml @@ -1,12 +1,12 @@ <ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="False"> <Style src="project://database/Assets/UI/GeneralStyleSheet.uss?fileID=7433441132597879392&guid=103e7885a07d8d0b094c9b5affb02f2a&type=3#GeneralStyleSheet" /> <Style src="project://database/Assets/UI/InGame/PauseMenu/PauseMenu.uss?fileID=7433441132597879392&guid=a92bd7591caac552d95718b61c97179c&type=3#PauseMenu" /> - <ui:VisualElement name="Container" class="root-container" style="flex-grow: 1; background-color: rgba(0, 0, 0, 0.57); align-items: center; justify-content: flex-start;"> - <ui:VisualElement name="PauseMenuContainer" style="flex-grow: 1; justify-content: center;"> - <ui:Button text="Resume" name="Resume" emoji-fallback-support="false" class="button" /> - <ui:Button text="Save" name="Save" class="button" /> - <ui:Button text="Shop" name="Shop" class="button" /> - <ui:Button text="Return To Main Menu" name="ReturnToMainMenu" /> + <ui:VisualElement name="Container" class="root-container" style="flex-grow: 1; background-color: rgba(0, 0, 0, 0.57); align-items: center; justify-content: center;"> + <ui:VisualElement name="PauseMenuContainer" class="rotated" style="flex-grow: 1; justify-content: center;"> + <ui:Button text="Resume" name="Resume" emoji-fallback-support="false" class="button rounded bottom-above-spaced normal-button" /> + <ui:Button text="Save" name="Save" class="button rounded bottom-above-spaced normal-button" /> + <ui:Button text="Shop" name="Shop" class="button rounded bottom-above-spaced normal-button" /> + <ui:Button text="Return To Main Menu" name="ReturnToMainMenu" class="rounded bottom-above-spaced button normal-button" /> </ui:VisualElement> </ui:VisualElement> </ui:UXML> diff --git a/Assets/UI/LoadingScreen/LoadingScreen.uxml b/Assets/UI/LoadingScreen/LoadingScreen.uxml index 37463cb90336111485100b80cd3431169711f600..c4129f9919d1de30b663e7d7e0903c57be8ea3ba 100644 --- a/Assets/UI/LoadingScreen/LoadingScreen.uxml +++ b/Assets/UI/LoadingScreen/LoadingScreen.uxml @@ -1,9 +1,9 @@ <ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="False"> <Style src="project://database/Assets/UI/GeneralStyleSheet.uss?fileID=7433441132597879392&guid=103e7885a07d8d0b094c9b5affb02f2a&type=3#GeneralStyleSheet" /> <Style src="project://database/Assets/UI/LoadingScreen/LoadingScreen.uss?fileID=7433441132597879392&guid=6410011e3c740d80693a839e1b68fb59&type=3#LoadingScreen" /> - <ui:VisualElement name="Container" class="root-container hidden" style="flex-grow: 1; align-items: stretch; flex-direction: column; -unity-background-image-tint-color: rgb(0, 0, 0); background-color: rgb(0, 0, 0); padding-top: 45px; padding-right: 45px; padding-bottom: 45px; padding-left: 45px;"> - <ui:VisualElement name="TextContainer" style="flex-grow: 1; -unity-text-align: upper-center; justify-content: center;"> - <ui:Label text="Loading..." name="Title" enable-rich-text="true" style="background-color: rgba(255, 255, 255, 0); color: rgb(255, 255, 255); font-size: 28px; -unity-text-align: upper-center;" /> + <ui:VisualElement name="Container" class="root-container hidden" style="flex-grow: 1; align-items: stretch; flex-direction: column; -unity-background-image-tint-color: rgb(0, 0, 0); background-color: rgb(100, 186, 255); padding-top: 45px; padding-right: 45px; padding-bottom: 45px; padding-left: 45px; display: flex;"> + <ui:VisualElement name="TextContainer" style="flex-grow: 1; -unity-text-align: upper-center; justify-content: flex-end;"> + <ui:Label text="Preparing Your Fun..." name="Title" enable-rich-text="true" class="info-prompt-text has-texr" style="background-color: rgba(255, 255, 255, 0); color: rgb(255, 255, 255); font-size: 28px; -unity-text-align: upper-center;" /> </ui:VisualElement> </ui:VisualElement> </ui:UXML> diff --git a/Assets/UI/MainMenuScene/ClickToStart/ClickToStart.uxml b/Assets/UI/MainMenuScene/ClickToStart/ClickToStart.uxml index 67b4d03336ef44a5383c1f9282e0005b356b2c28..a8c47aaadd551e1a65750be69732d1d8d4b80fce 100644 --- a/Assets/UI/MainMenuScene/ClickToStart/ClickToStart.uxml +++ b/Assets/UI/MainMenuScene/ClickToStart/ClickToStart.uxml @@ -4,7 +4,7 @@ <ui:VisualElement name="Container" class="root-container" style="flex-grow: 1; align-items: stretch; flex-direction: column; background-color: rgba(0, 0, 0, 0);"> <ui:VisualElement name="BackContainer" style="flex-grow: 1; padding-top: 45px; padding-right: 45px; padding-bottom: 45px; padding-left: 45px; background-color: rgba(0, 0, 0, 0);"> <ui:VisualElement name="spacer" style="flex-grow: 1;" /> - <ui:Label text="Click To Start" name="ClickToStartText" style="font-size: 28px; color: rgb(255, 255, 255); -unity-text-align: upper-center;" /> + <ui:Label text="Click To Start" name="ClickToStartText" class="has-texr info-prompt-text" style="font-size: 28px; color: rgb(255, 255, 255); -unity-text-align: upper-center;" /> </ui:VisualElement> </ui:VisualElement> </ui:UXML> diff --git a/Assets/UI/MainMenuScene/GameStatisticsDisplay/GameStatisticsDisplay.uss b/Assets/UI/MainMenuScene/GameStatisticsDisplay/GameStatisticsDisplay.uss index c78e35c9821b0b6751bb95562f668a9dfc468b05..6f3cb8efc8953a84ed16c22b78b78aa2c9bcb764 100644 --- a/Assets/UI/MainMenuScene/GameStatisticsDisplay/GameStatisticsDisplay.uss +++ b/Assets/UI/MainMenuScene/GameStatisticsDisplay/GameStatisticsDisplay.uss @@ -1,6 +1,26 @@ .enemies-killed-container { } +.statistics-container { + width: 100%; + border-top-left-radius: 8px; + border-top-right-radius: 8px; + border-bottom-right-radius: 8px; + border-bottom-left-radius: 8px; + background-color: rgb(77, 77, 77); + margin-top: 8px; + margin-right: 8px; + margin-bottom: 8px; + margin-left: 8px; + padding-top: 8px; + padding-right: 8px; + padding-bottom: 8px; + padding-left: 8px; + color: rgb(255, 255, 255); + -unity-font-style: bold; + font-size: 18px; +} + .enemies-killed-text { } @@ -27,13 +47,27 @@ } .shots-hit-container { + margin-top: 8px; + margin-right: 8px; + margin-bottom: 8px; + margin-left: 8px; } .shots-hit-text { } .accuracy-container { + margin-top: 8px; + margin-right: 8px; + margin-bottom: 8px; + margin-left: 8px; } .accuracy-text { } + +.statistics-container:hover { + color: rgb(77, 77, 77); + background-color: rgb(255, 255, 255); + scale: 1.1 1.1; +} diff --git a/Assets/UI/MainMenuScene/GameStatisticsDisplay/GameStatisticsDisplay.uxml b/Assets/UI/MainMenuScene/GameStatisticsDisplay/GameStatisticsDisplay.uxml index 23f1644eb20982af7877a41d6e4b60d0ee7fd143..20ace8e6665cbf9d8e6698f77b21fa5049ace66d 100644 --- a/Assets/UI/MainMenuScene/GameStatisticsDisplay/GameStatisticsDisplay.uxml +++ b/Assets/UI/MainMenuScene/GameStatisticsDisplay/GameStatisticsDisplay.uxml @@ -1,13 +1,13 @@ <ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="False"> <Style src="project://database/Assets/UI/GeneralStyleSheet.uss?fileID=7433441132597879392&guid=103e7885a07d8d0b094c9b5affb02f2a&type=3#GeneralStyleSheet" /> <Style src="project://database/Assets/UI/MainMenuScene/GameStatisticsDisplay/GameStatisticsDisplay.uss?fileID=7433441132597879392&guid=ef9264b1b90c7f76e9cb71200220ec16&type=3#GameStatisticsDisplay" /> - <ui:VisualElement name="Container" class="containter" style="flex-grow: 1; align-items: flex-start;"> + <ui:VisualElement name="Container" class="containter padded-container main-menu-container" style="flex-grow: 1; align-items: flex-start;"> <ui:VisualElement name="TitleContainer" style="flex-grow: 1; align-items: flex-start; justify-content: flex-start;"> - <ui:Label text="Your Statistics" name="Title" style="rotate: -5deg; font-size: 48px; translate: 1.5% 25%;" /> + <ui:Label text="Your Statistics" name="Title" class="has-texr main-menu-screen-title rotated" style="font-size: 48px; translate: 1.5% 25%;" /> </ui:VisualElement> - <GameStatisticsContainer name="GameStatisticsContainer" style="align-self: stretch; width: 100%; align-items: center;" /> - <ui:VisualElement name="BackContainer" style="flex-grow: 1;"> - <ui:Button text="Back" name="back-button" /> + <GameStatisticsContainer name="GameStatisticsContainer" class="has-texr rotated" style="align-self: center;" /> + <ui:VisualElement name="BackContainer" style="flex-grow: 1; justify-content: flex-end;"> + <ui:Button text="Back" name="back-button" class="cancel-button rounded button main-menu-back-button" /> </ui:VisualElement> </ui:VisualElement> </ui:UXML> diff --git a/Assets/UI/MainMenuScene/LoadGame/GameSaveCard.cs b/Assets/UI/MainMenuScene/LoadGame/GameSaveCard.cs index 4415a0ba129adeff188bc9b2ecb5c6e54f6c4b45..790c3582e7bcc31179ba9cfe3259cace830a1546 100644 --- a/Assets/UI/MainMenuScene/LoadGame/GameSaveCard.cs +++ b/Assets/UI/MainMenuScene/LoadGame/GameSaveCard.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using UnityEngine; +using UnityEngine.Rendering.HighDefinition; using UnityEngine.UIElements; public partial class GameSaveCard : VisualElement @@ -9,6 +10,8 @@ public partial class GameSaveCard : VisualElement TextElement indexText = new(); TextElement saveTimeText = new(); + public static string InnerTextUSSClassName = "game-save-card-text"; + public GameSaveCard(GameSaveData gameSaveData, int index, List<string> classes) { @@ -21,7 +24,12 @@ public partial class GameSaveCard : VisualElement indexText.text = (index + 1).ToString(); saveTimeText.text = gameSaveData.writeTime.ToString(); + indexText.AddToClassList(InnerTextUSSClassName); + saveTimeText.AddToClassList(InnerTextUSSClassName); Add(indexText); + VisualElement spacer = new(); + spacer.AddToClassList("spacer"); + Add(spacer); Add(saveTimeText); RegisterCallback((ClickEvent evt) => diff --git a/Assets/UI/MainMenuScene/LoadGame/GameSavesContainer.cs b/Assets/UI/MainMenuScene/LoadGame/GameSavesContainer.cs index f77e4e8d3201970be0867243f632c9b531c9c679..7a09557d6ab8adf9dc1059f3b01f231b952dbafd 100644 --- a/Assets/UI/MainMenuScene/LoadGame/GameSavesContainer.cs +++ b/Assets/UI/MainMenuScene/LoadGame/GameSavesContainer.cs @@ -11,9 +11,12 @@ public partial class GameSavesContainer : VisualElement public static readonly string GameSavesContainerUSSClassName = "game-saves-container"; public static readonly string NoSavesTextUSSClassName = "no-saves-text"; - public static readonly List<string> GameSaveCardUSSClassNameList = new() { "game-save-card" }; + public static readonly List<string> GameSaveCardUSSClassNameList = new() { "game-save-card", "has-text", "rounded" }; - private TextElementWithClassAndName m_NoSavesText = new("NoSavesText", new List<string> { NoSavesTextUSSClassName }); + private TextElementWithClassAndName m_NoSavesText = new("NoSavesText", new List<string> { NoSavesTextUSSClassName, "info-prompt-text" }) + { + text = "No Save Yet!" + }; public List<GameSaveData> Saves @@ -28,6 +31,12 @@ public partial class GameSavesContainer : VisualElement name = "GameSavesContainer"; AddToClassList(GameSavesContainerUSSClassName); + Add(m_NoSavesText); + Add(new GameSaveCard(new GameSaveData() + { + writeTime = DateTime.Now + }, 0, GameSaveCardUSSClassNameList)); + generateVisualContent += GenerateVisualContent; } @@ -41,7 +50,6 @@ public partial class GameSavesContainer : VisualElement if (Saves.Count <= 0) { - m_NoSavesText.text = "No Save Yet!"; Debug.Log("No saves!"); Add(m_NoSavesText); } diff --git a/Assets/UI/MainMenuScene/LoadGame/LoadGame.uss b/Assets/UI/MainMenuScene/LoadGame/LoadGame.uss index d3182c56a39dbe2b409fec6e3171be68fbff5ffc..bd0aeab91dd30e093a8ad21f21db8a3fe726a657 100644 --- a/Assets/UI/MainMenuScene/LoadGame/LoadGame.uss +++ b/Assets/UI/MainMenuScene/LoadGame/LoadGame.uss @@ -1,8 +1,38 @@ +.game-save-card { + flex-direction: row; + width: 100%; + background-color: rgb(171, 172, 174); + padding-top: 24px; + padding-right: 8px; + padding-bottom: 24px; + padding-left: 8px; + transition-property: rotate; + transition-duration: 0.2s; +} + .game-saves-container { } -.game-save-card { +.game-save-card-text { + margin-top: 0; + margin-right: 8px; + margin-bottom: 0; + margin-left: 8px; + font-size: 18px; + -unity-font-style: normal; +} + +#NoSavesText { + color: rgb(237, 83, 83); +} + +.game-save-card:hover { + background-color: rgb(77, 77, 77); + color: rgb(255, 255, 255); + transition-duration: 0.2s; + rotate: 5deg; } -.no-saves-text { +#DeleteAllSavesButton:hover { + rotate: 0; } diff --git a/Assets/UI/MainMenuScene/LoadGame/LoadGame.uxml b/Assets/UI/MainMenuScene/LoadGame/LoadGame.uxml index c23876a2379539fcde349318d02de111da7a7062..d90fe88f5b9dec5e6d34d3b214d444be4dab51e5 100644 --- a/Assets/UI/MainMenuScene/LoadGame/LoadGame.uxml +++ b/Assets/UI/MainMenuScene/LoadGame/LoadGame.uxml @@ -1,13 +1,14 @@ <ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="False"> <Style src="project://database/Assets/UI/GeneralStyleSheet.uss?fileID=7433441132597879392&guid=103e7885a07d8d0b094c9b5affb02f2a&type=3#GeneralStyleSheet" /> - <ui:VisualElement name="Container" class="container" style="flex-grow: 1; align-items: flex-start;"> + <Style src="project://database/Assets/UI/MainMenuScene/LoadGame/LoadGame.uss?fileID=7433441132597879392&guid=75662ccdee61039588cc80a750b8ad24&type=3#LoadGame" /> + <ui:VisualElement name="Container" class="container main-menu-container padded-container main-menu-overlay" style="flex-grow: 1; align-items: flex-start;"> <ui:VisualElement name="TitleContainer" style="flex-grow: 1; align-items: flex-start; justify-content: flex-start;"> - <ui:Label text="Load Saves" name="Title" style="rotate: -5deg; font-size: 48px; translate: 2.5% 20%;" /> + <ui:Label text="Load Saves" name="Title" class="main-menu-screen-title rotated" style="font-size: 48px; translate: 2.5% 20%;" /> </ui:VisualElement> - <GameSavesContainer /> - <ui:VisualElement name="BackContainer" style="flex-grow: 1;"> - <ui:Button text="Delete All Saves" name="DeleteAllSavesButton" /> - <ui:Button text="Back" name="back-button" /> + <GameSavesContainer class="rounded rotated" style="width: auto; align-items: center; padding-top: 16px; padding-right: 16px; padding-bottom: 16px; padding-left: 16px; align-self: center; margin-top: 32px; margin-right: 32px; margin-bottom: 32px; margin-left: 32px;" /> + <ui:Button text="Delete All Saves" name="DeleteAllSavesButton" class="button has-texr cancel-button rounded rotated" style="align-self: center;" /> + <ui:VisualElement name="BackContainer" style="flex-grow: 1; justify-content: flex-end;"> + <ui:Button text="Back" name="back-button" class="rounded cancel-button button has-texr main-menu-back-button" /> </ui:VisualElement> </ui:VisualElement> </ui:UXML> diff --git a/Assets/UI/MainMenuScene/MainMenu/MainMenu.uss b/Assets/UI/MainMenuScene/MainMenu/MainMenu.uss index 09fc9b93b3caeb86b678f6a91999bed43b94a207..e88360f3246cfccbae76945d767bf3b752bce219 100644 --- a/Assets/UI/MainMenuScene/MainMenu/MainMenu.uss +++ b/Assets/UI/MainMenuScene/MainMenu/MainMenu.uss @@ -1,5 +1,14 @@ +.main-menu-button:hover { + rotate: -15deg; + transition-property: rotate; + transition-duration: 0.2s; + transition-timing-function: ease-in; +} + .main-menu-button { font-size: 28px; + margin-right: 16px; + margin-left: 16px; } .shake-start { diff --git a/Assets/UI/MainMenuScene/MainMenu/MainMenu.uxml b/Assets/UI/MainMenuScene/MainMenu/MainMenu.uxml index 6aa347adc078ff7ca85a43891d4cd142fba71709..d7baec8634eb9c4dd8b295de51440c045c74eb87 100644 --- a/Assets/UI/MainMenuScene/MainMenu/MainMenu.uxml +++ b/Assets/UI/MainMenuScene/MainMenu/MainMenu.uxml @@ -3,22 +3,22 @@ <Style src="project://database/Assets/UI/GeneralStyleSheet.uss?fileID=7433441132597879392&guid=103e7885a07d8d0b094c9b5affb02f2a&type=3#GeneralStyleSheet" /> <ui:VisualElement name="Container" class="container root-container" style="flex-grow: 1; align-items: center; justify-content: flex-start;"> <ui:VisualElement name="TitleContainer" style="flex-grow: 1; width: auto; height: initial; max-width: none; align-items: auto;"> - <ui:Label text="Game Name" name="Title" style="-unity-text-align: upper-center; font-size: 128px; rotate: 0;" /> + <ui:Label text="Gunshin Impek" name="Title" emoji-fallback-support="false" class="has-texr" style="-unity-text-align: upper-center; font-size: 128px; rotate: 15deg; translate: 0 250px; -unity-font-style: bold;" /> </ui:VisualElement> - <ui:VisualElement name="ButtonContainer" style="flex-grow: 1; width: auto; flex-direction: row; align-items: center; justify-content: center; rotate: 15deg; transition-timing-function: ease; transition-duration: 0.75s;"> - <ui:Button text="New Game" name="start-game-button" class="main-menu-button" /> - <ui:Button text="Load Game" name="load-game-button" class="main-menu-button" style="width: auto;" /> - <ui:Button text="Settings" name="settings-button" class="main-menu-button" style="width: auto;" /> - <ui:Button text="Game Statistics" name="game-statistics-button" class="main-menu-button" style="width: auto;" /> - <ui:Button text="Exit" name="exit-button" emoji-fallback-support="true" class="main-menu-button" style="width: auto;" /> + <ui:VisualElement name="ButtonContainer" style="flex-grow: 1; width: auto; flex-direction: row; align-items: center; justify-content: center; rotate: 15deg; transition-timing-function: ease; transition-duration: 0.75s; translate: 0 -50px;"> + <ui:Button text="New Game" name="start-game-button" class="rounded button normal-button main-menu-button" /> + <ui:Button text="Load Game" name="load-game-button" class="main-menu-button rounded button normal-button" style="width: auto;" /> + <ui:Button text="Settings" name="settings-button" class="main-menu-button rounded button normal-button" style="width: auto;" /> + <ui:Button text="Game Statistics" name="game-statistics-button" class="main-menu-button rounded button normal-button" style="width: auto;" /> + <ui:Button text="Exit" name="exit-button" emoji-fallback-support="true" class="main-menu-button rounded button normal-button" style="width: auto;" /> </ui:VisualElement> <ui:VisualElement name="MaxSavesContainer" class="overlay" style="flex-grow: 1; position: absolute; top: 0; left: 0; right: 0; bottom: 0; align-items: center; justify-content: center;"> - <ui:VisualElement name="PromptContainer" style="flex-grow: 1; justify-content: center;"> - <ui:Label text="You've reached the amount of maximum save. To make a new game, would you like to delete your oldest save?" name="PromptText" /> + <ui:VisualElement name="PromptContainer" style="flex-grow: 1; justify-content: flex-end; padding-right: 240px; padding-left: 240px; padding-bottom: 40px;"> + <ui:Label text="You've reached the amount of maximum save. To make a new game, would you like to delete your oldest save?" name="PromptText" class="info-prompt-text rounded" style="text-overflow: clip; white-space: normal; -unity-text-align: upper-center; padding-top: 32px; padding-right: 32px; padding-bottom: 32px; padding-left: 32px; background-color: rgb(51, 51, 51); color: rgb(255, 255, 255);" /> </ui:VisualElement> - <ui:VisualElement name="OptionContainer" style="flex-grow: 1; flex-direction: row; align-items: center; width: auto; height: auto;"> - <ui:Button text="Yes" name="Yes" class="button" style="width: 100px;" /> - <ui:Button text="Cancel" name="Cancel" class="button" style="width: 100px;" /> + <ui:VisualElement name="OptionContainer" style="flex-grow: 1; flex-direction: row; align-items: flex-start; width: auto; height: auto;"> + <ui:Button text="Yes" name="Yes" class="button rounded has-texr normal-text do-button left-right-spaced" style="width: 100px;" /> + <ui:Button text="Cancel" name="Cancel" class="button rounded has-texr cancel-button normal-text left-right-spaced" style="width: 100px; margin-right: 48px; margin-left: 48px;" /> </ui:VisualElement> </ui:VisualElement> </ui:VisualElement> diff --git a/Assets/UI/MainMenuScene/Settings/Settings.uxml b/Assets/UI/MainMenuScene/Settings/Settings.uxml index ecb5e83c750b4198dc32fa2c7c7b6fb51a932cef..7fe07f7aa47a8a550470304c42f10dc1773e994a 100644 --- a/Assets/UI/MainMenuScene/Settings/Settings.uxml +++ b/Assets/UI/MainMenuScene/Settings/Settings.uxml @@ -1,13 +1,17 @@ <ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="False"> <Style src="project://database/Assets/UI/GeneralStyleSheet.uss?fileID=7433441132597879392&guid=103e7885a07d8d0b094c9b5affb02f2a&type=3#GeneralStyleSheet" /> <Style src="project://database/Assets/UI/MainMenuScene/Settings/Settings.uss?fileID=7433441132597879392&guid=ea448f37a68108020bc7aeabcbcb2f6a&type=3#Settings" /> - <ui:VisualElement name="Container" class="root-container" style="flex-grow: 1; align-items: stretch; flex-direction: column;"> - <ui:VisualElement name="TitleContainer" style="flex-grow: 1; align-items: flex-start; justify-content: flex-start;"> - <ui:Label text="Settings" name="Title" style="rotate: -5deg; font-size: 48px; translate: 2.5% 20%;" /> + <ui:VisualElement name="Container" class="root-container padded-container main-menu-overlay" style="flex-grow: 1; align-items: flex-start; flex-direction: column;"> + <ui:VisualElement name="TitleContainer" class="has-text" style="flex-grow: 1; align-items: flex-start; justify-content: flex-start;"> + <ui:Label text="Settings" name="Title" class="main-menu-screen-title rotated" style="font-size: 48px; translate: 2.5% 20%;" /> </ui:VisualElement> - <SettingsContainer style="padding-top: 40px; padding-right: 40px; padding-bottom: 40px; padding-left: 40px;" /> - <ui:VisualElement name="BackContainer" style="flex-grow: 1;"> - <ui:Button text="Back" name="back-button" /> + <ui:VisualElement name="SetttingsContainer" class="has-text rotated" style="flex-grow: 1; align-self: center;"> + <ui:TextField label="Player Name" placeholder-text="filler text" name="PlayerNameField" class="bottom-above-spaced" /> + <ui:DropdownField label="Difficulty" name="DifficultyDropdown" /> + <ui:Slider label="Sound Volume" value="42" high-value="100" name="VolumeSlider" class="bottom-above-spaced" /> + </ui:VisualElement> + <ui:VisualElement name="BackContainer" style="flex-grow: 1; align-items: flex-start; justify-content: flex-end;"> + <ui:Button text="Back" name="back-button" class="main-menu-back-button cancel-button rounded button has-texr" style="width: initial;" /> </ui:VisualElement> </ui:VisualElement> </ui:UXML> diff --git a/Assets/UI/MainMenuScene/Settings/SettingsContainer.cs b/Assets/UI/MainMenuScene/Settings/SettingsContainer.cs index cd3a362fd2254d9f1f6d4c664b9366f92e5a0715..a5201db40876e5f4a4c6ebcb6714a0f23a475e1c 100644 --- a/Assets/UI/MainMenuScene/Settings/SettingsContainer.cs +++ b/Assets/UI/MainMenuScene/Settings/SettingsContainer.cs @@ -13,38 +13,29 @@ public partial class SettingsContainer : VisualElement public DifficultyDropdown difficultyDropdown; public VolumeSlider volumeSlider; + + public SettingsContainer() { name = "SettingsContainer"; - nameField = new(); - difficultyDropdown = new(); - volumeSlider = new(); + nameField = new() + { + name = "NameField" + }; + difficultyDropdown = new() + { + name = "DifficultyDropdown" + }; + volumeSlider = new() + { + name = "VolumeSlider" + }; Add(nameField); Add(difficultyDropdown); Add(volumeSlider); - volumeSlider.RegisterCallback<ChangeEvent<float>>((evt) => - { - Debug.Assert(GameSettingsManager.Instance is not null); - Debug.Assert(GameSettingsManager.Instance.gameSettings is not null); - AudioListener.volume = evt.newValue / volumeSlider.highValue; - GameSettingsManager.Instance.gameSettings.SoundVolume = evt.newValue; - }); - - nameField.RegisterCallback<ChangeEvent<string>>((evt) => - { - - GameSaveManager.Instance.GetActiveGameSave().playerName = evt.newValue; - }); - - difficultyDropdown.RegisterCallback<ChangeEvent<string>>((evt) => - { - Enum.TryParse(evt.newValue, out DifficultyType newDifficulty); - GameSaveManager.Instance.GetActiveGameSave().difficulty = newDifficulty; - }); - generateVisualContent += GenerateVisualContent; } diff --git a/Assets/UI/MainMenuScene/Settings/SettingsController.cs b/Assets/UI/MainMenuScene/Settings/SettingsController.cs index f16a199ac791d76a5e6bfae226a43225ee880de6..d6193c8f650b69ef07b70a6fc2e4a669c7967d40 100644 --- a/Assets/UI/MainMenuScene/Settings/SettingsController.cs +++ b/Assets/UI/MainMenuScene/Settings/SettingsController.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Linq; using UnityEngine; using UnityEngine.UIElements; @@ -9,6 +10,9 @@ public class SettingsController : MainMenuScreenController SettingsContainer settingsContainer; + public NameField nameField; + public DropdownField difficultyDropdown; + public Slider volumeSlider; public new void OnEnable() { @@ -16,11 +20,54 @@ public class SettingsController : MainMenuScreenController MainMenuManager.InitializeBackButton(rootElement); - settingsContainer = rootElement.Query<SettingsContainer>("SettingsContainer"); + // Setup name field + nameField = rootElement.Query<NameField>("PlayerNameField"); - settingsContainer.Setup(); + nameField.RegisterCallback<ChangeEvent<string>>((evt) => + { + GameSaveManager.Instance.GetActiveGameSave().playerName = evt.newValue; + }); + // Setup difficulty dropdown + difficultyDropdown = rootElement.Query<DropdownField>("DifficultyDropdown"); + + difficultyDropdown.RegisterCallback<ChangeEvent<string>>((evt) => + { + Enum.TryParse(evt.newValue, out DifficultyType newDifficulty); + GameSaveManager.Instance.GetActiveGameSave().difficulty = newDifficulty; + }); + + List<string> dropdownChoices = Enum.GetNames(typeof(DifficultyType)).ToList(); + + difficultyDropdown.index = 1; + difficultyDropdown.choices = dropdownChoices; + difficultyDropdown.value = dropdownChoices[1]; + + // Setup volume slider + volumeSlider = rootElement.Query<Slider>("VolumeSlider"); + volumeSlider.lowValue = 0; + volumeSlider.highValue = 100; + volumeSlider.value = 100; + + volumeSlider.RegisterCallback<ChangeEvent<float>>((evt) => + { + Debug.Assert(GameSettingsManager.Instance is not null); + Debug.Assert(GameSettingsManager.Instance.gameSettings is not null); + AudioListener.volume = evt.newValue / volumeSlider.highValue; + GameSettingsManager.Instance.gameSettings.SoundVolume = evt.newValue; + }); + + Setup(); + + } + + public void Setup() + { + Debug.Assert(GameSettingsManager.Instance); + Debug.Assert(GameSettingsManager.Instance.gameSettings is not null); + volumeSlider.value = GameSettingsManager.Instance.gameSettings.SoundVolume; + nameField.SetName(GameSaveManager.Instance.GetActiveGameSave().playerName); } } diff --git a/Assets/UI/SplashScreen/SplashScreen.uxml b/Assets/UI/SplashScreen/SplashScreen.uxml index e9e1b54f8739aecb9b85a3dacaa8cf8f35f5f495..d420b3504e9da981d20864b08561b85741ce50cf 100644 --- a/Assets/UI/SplashScreen/SplashScreen.uxml +++ b/Assets/UI/SplashScreen/SplashScreen.uxml @@ -1,9 +1,9 @@ <ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="False"> <Style src="project://database/Assets/UI/GeneralStyleSheet.uss?fileID=7433441132597879392&guid=103e7885a07d8d0b094c9b5affb02f2a&type=3#GeneralStyleSheet" /> <Style src="project://database/Assets/UI/SplashScreen/SplashScreen.uss?fileID=7433441132597879392&guid=a30fc5c87b0d08c5ab1881e37181adb6&type=3#SplashScreen" /> - <ui:VisualElement name="Container" class="root-container" style="flex-grow: 1; align-items: stretch; flex-direction: column; -unity-background-image-tint-color: rgb(0, 0, 0); background-color: rgb(0, 0, 0); padding-top: 45px; padding-right: 45px; padding-bottom: 45px; padding-left: 45px; display: flex;"> - <ui:VisualElement name="TextContainer" style="flex-grow: 1; -unity-text-align: upper-center; justify-content: center;"> - <ui:Label text="Splashing So Hard Right Now" name="Title" enable-rich-text="true" style="background-color: rgba(255, 255, 255, 0); color: rgb(255, 255, 255); font-size: 28px; -unity-text-align: upper-center;" /> + <ui:VisualElement name="Container" class="root-container" style="flex-grow: 1; align-items: stretch; flex-direction: column; -unity-background-image-tint-color: rgb(0, 0, 0); background-color: rgb(114, 57, 179); padding-top: 45px; padding-right: 45px; padding-bottom: 45px; padding-left: 45px; display: flex;"> + <ui:VisualElement name="TextContainer" style="flex-grow: 1; -unity-text-align: upper-center; justify-content: flex-end;"> + <ui:Label text="Ready To Make An Impék?" name="Title" enable-rich-text="true" class="has-texr" style="background-color: rgba(255, 255, 255, 0); color: rgb(255, 255, 255); font-size: 36px; -unity-text-align: upper-center; -unity-font-style: bold;" /> </ui:VisualElement> </ui:VisualElement> </ui:UXML>