2025-04-18 02:50:50 -04:00
|
|
|
|
using UnityEngine;
|
2025-04-18 14:27:08 -04:00
|
|
|
|
using TMPro;
|
2025-04-18 02:50:50 -04:00
|
|
|
|
|
2025-04-18 15:54:50 -04:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// This class manages the user manual popup, including displaying instructions,
|
|
|
|
|
|
/// game mode descriptions, controls, and tips for players.
|
|
|
|
|
|
/// </summary>
|
2025-04-18 02:50:50 -04:00
|
|
|
|
public class UserManualPopup : MonoBehaviour
|
|
|
|
|
|
{
|
2025-04-18 15:54:50 -04:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// The panel that contains the user manual popup.
|
|
|
|
|
|
/// </summary>
|
2025-04-18 02:50:50 -04:00
|
|
|
|
public GameObject popupPanel;
|
2025-04-18 15:54:50 -04:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// The text element used to display the user manual content.
|
|
|
|
|
|
/// </summary>
|
2025-04-18 14:27:08 -04:00
|
|
|
|
public TextMeshProUGUI userManualText;
|
2025-04-18 02:50:50 -04:00
|
|
|
|
|
2025-04-18 15:54:50 -04:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// The sprite asset used for embedding icons in the user manual text.
|
|
|
|
|
|
/// </summary>
|
2025-04-18 14:27:08 -04:00
|
|
|
|
public TMP_SpriteAsset combinedSpriteAsset;
|
|
|
|
|
|
|
2025-04-18 15:54:50 -04:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Initializes the user manual content and assigns the sprite asset.
|
|
|
|
|
|
/// </summary>
|
2025-04-18 14:27:08 -04:00
|
|
|
|
private void Start()
|
|
|
|
|
|
{
|
|
|
|
|
|
// Assign the combined sprite asset
|
|
|
|
|
|
userManualText.spriteAsset = combinedSpriteAsset;
|
|
|
|
|
|
|
|
|
|
|
|
// Clear the text
|
|
|
|
|
|
userManualText.text = "";
|
|
|
|
|
|
|
|
|
|
|
|
// Add the header
|
|
|
|
|
|
userManualText.text += "<align=center><size=60><b>User Manual <20> How to Play</b></size></align>\n\n";
|
|
|
|
|
|
|
|
|
|
|
|
// Add the first section
|
|
|
|
|
|
userManualText.text += "<size=30>Press the 'Start' Button to enter the main menu.</size>\n";
|
|
|
|
|
|
userManualText.text += "<size=30>Use <sprite=1> on keyboard, or <sprite=13> on controller to add your player.</size>\n";
|
|
|
|
|
|
userManualText.text += "<size=30>Choose your desired gamemode and map.</size>\n";
|
|
|
|
|
|
userManualText.text += "<size=30>Press 'Begin' to start the match.</size>\n\n";
|
|
|
|
|
|
|
|
|
|
|
|
// Add the "Game Modes" section
|
|
|
|
|
|
userManualText.text += "<align=center><size=50><b>Game Modes</b></size></align>\n\n";
|
|
|
|
|
|
|
|
|
|
|
|
userManualText.text += "<size=40><b>Free For All</b></size>\n";
|
|
|
|
|
|
userManualText.text += "<size=30>Battle it out with other players.</size>\n";
|
|
|
|
|
|
userManualText.text += "<size=30>Each player starts with 5 lives.</size>\n";
|
|
|
|
|
|
userManualText.text += "<size=30>The last player standing wins.</size>\n\n";
|
|
|
|
|
|
|
|
|
|
|
|
userManualText.text += "<size=40><b>Obstacle Course</b></size>\n";
|
|
|
|
|
|
userManualText.text += "<size=30>Punch and race your way through the course to reach the end.</size>\n";
|
|
|
|
|
|
userManualText.text += "<size=30>The player who reaches the flag first wins.</size>\n\n";
|
|
|
|
|
|
|
|
|
|
|
|
userManualText.text += "<size=40><b>Keep Away</b></size>\n";
|
|
|
|
|
|
userManualText.text += "<size=30>Fight for the hat! You get 3 minutes.</size>\n";
|
|
|
|
|
|
userManualText.text += "<size=30>Touch the hat to start wearing it.</size>\n";
|
|
|
|
|
|
userManualText.text += "<size=30>You will drop the hat if you are hit or if you died.</size>\n";
|
|
|
|
|
|
userManualText.text += "<size=30>The player who wears the hat the longest wins.</size>\n\n";
|
|
|
|
|
|
|
|
|
|
|
|
// Add the "Controls" section
|
2025-04-18 14:55:38 -04:00
|
|
|
|
userManualText.text += "<align=center><size=50><b>Controls</b></size></align>\n\n";
|
|
|
|
|
|
userManualText.text += "<size=40><b>Naviagation:</b></size><size=30> Use Left-Click to select and press <sprite=17> to exit</size>\n";
|
|
|
|
|
|
userManualText.text += "<size=40><b>Move:</b></size><size=30> <sprite=16> / <sprite=7><sprite=4><sprite=6><sprite=0></size>\n";
|
|
|
|
|
|
userManualText.text += "<size=40><b>Jump:</b></size><size=30> <sprite=8> / <sprite=10> / <sprite=14> / <sprite=5></size>\n";
|
|
|
|
|
|
userManualText.text += "<size=40><b>Punch:</b></size><size=30> <sprite=11> / <sprite=9> / <sprite=15> / <sprite=2></size>\n";
|
|
|
|
|
|
userManualText.text += "<size=40><b>Block:</b></size><size=30> <sprite=12></size>\n";
|
|
|
|
|
|
userManualText.text += "<size=40><b>Parry:</b></size><size=30> Let go of <sprite=12> at the right time</size>\n\n";
|
2025-04-18 14:27:08 -04:00
|
|
|
|
|
|
|
|
|
|
// Add the "Tips" section
|
2025-04-18 14:55:38 -04:00
|
|
|
|
userManualText.text += "<align=center><size=50><b>Tips</b></size></align>\n\n";
|
2025-04-18 14:27:08 -04:00
|
|
|
|
userManualText.text += "<size=30>Punches seem to hit you harder when you lose health.</size>\n\n";
|
|
|
|
|
|
userManualText.text += "<size=30>Walk into your opponent to turn them around and push them.</size>\n\n";
|
|
|
|
|
|
userManualText.text += "<size=30>Time your jumps to avoid falling (or hitting your head).</size>\n\n";
|
|
|
|
|
|
userManualText.text += "<size=30>The hat has physics too! Don't punch it too hard.</size>";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-04-18 15:54:50 -04:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Displays the user manual popup.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public void ShowPopup()
|
2025-04-18 02:50:50 -04:00
|
|
|
|
{
|
|
|
|
|
|
popupPanel.SetActive(true);
|
|
|
|
|
|
gameObject.SetActive(true);
|
2025-04-18 14:27:08 -04:00
|
|
|
|
print("User manual opened");
|
2025-04-18 02:50:50 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-04-18 15:54:50 -04:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Hides the user manual popup.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public void HidePopup()
|
2025-04-18 02:50:50 -04:00
|
|
|
|
{
|
|
|
|
|
|
popupPanel.SetActive(false);
|
|
|
|
|
|
gameObject.SetActive(false);
|
2025-04-18 14:27:08 -04:00
|
|
|
|
print("User manual closed");
|
2025-04-18 02:50:50 -04:00
|
|
|
|
}
|
2025-04-18 15:54:50 -04:00
|
|
|
|
}
|