aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorCarson Katri <carson.katri@gmail.com>2021-06-12 23:28:54 -0400
committerCarson Katri <carson.katri@gmail.com>2021-06-12 23:28:54 -0400
commitc500c71d07756d5f4bee8644fa6eb9a95e354b0e (patch)
treecfb712a881c58ac6046c6b43ed3aa73453a81783
parentda7b51461ae4c6452095a42c5fe2f5b4af09da16 (diff)
downloadgmtk-gamejam-c500c71d07756d5f4bee8644fa6eb9a95e354b0e.tar.gz
gmtk-gamejam-c500c71d07756d5f4bee8644fa6eb9a95e354b0e.tar.zst
gmtk-gamejam-c500c71d07756d5f4bee8644fa6eb9a95e354b0e.zip
Add game-end results overlay
-rw-r--r--Assets/Scenes/Main.unity200
-rw-r--r--Assets/Scripts/Controllers/GameController.cs26
2 files changed, 224 insertions, 2 deletions
diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity
index 95f1d81..5972c78 100644
--- a/Assets/Scenes/Main.unity
+++ b/Assets/Scenes/Main.unity
@@ -544,6 +544,43 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 447684161}
m_CullTransparentMesh: 1
+--- !u!1 &453079590
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 453079591}
+ m_Layer: 5
+ m_Name: Result
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!224 &453079591
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 453079590}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1894938101}
+ - {fileID: 1890797813}
+ m_Father: {fileID: 897316900}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0.000061035156, y: 0.000030517578}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &519420028
GameObject:
m_ObjectHideFlags: 0
@@ -984,6 +1021,7 @@ RectTransform:
m_Children:
- {fileID: 551981878}
- {fileID: 1302386145}
+ - {fileID: 453079591}
m_Father: {fileID: 198575129}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -1288,12 +1326,20 @@ MonoBehaviour:
m_EditorClassIdentifier:
timeLimit: 60
ball: {fileID: 707826158}
+ PlayerSpawnPoints:
+ ball: {fileID: 0}
+ character: {fileID: 0}
+ EnemySpawnPoints:
+ ball: {fileID: 0}
+ character: {fileID: 0}
PlayerHoop: {fileID: 614591307}
EnemyHoop: {fileID: 1354192742}
dribbleSound: {fileID: 1174357921}
playerScoreText: {fileID: 140689492}
enemyScoreText: {fileID: 447684163}
timerText: {fileID: 1402491148}
+ resultOverlay: {fileID: 453079590}
+ resultText: {fileID: 1890797814}
--- !u!82 &1174357921
AudioSource:
m_ObjectHideFlags: 0
@@ -1911,6 +1957,160 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 150, y: 0}
m_Pivot: {x: 0, y: 0.5}
+--- !u!1 &1890797812
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1890797813}
+ - component: {fileID: 1890797815}
+ - component: {fileID: 1890797814}
+ m_Layer: 5
+ m_Name: Content
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1890797813
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1890797812}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 453079591}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 200, y: 50}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1890797814
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1890797812}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 12800000, guid: b6747d7b13b2c4b9cb022acf49f3277b, type: 3}
+ m_FontSize: 14
+ m_FontStyle: 1
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: GAME_RESULT
+--- !u!222 &1890797815
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1890797812}
+ m_CullTransparentMesh: 1
+--- !u!1 &1894938100
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1894938101}
+ - component: {fileID: 1894938103}
+ - component: {fileID: 1894938102}
+ m_Layer: 5
+ m_Name: Darken
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1894938101
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1894938100}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 453079591}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0, y: 0.5}
+--- !u!114 &1894938102
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1894938100}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0, g: 0, b: 0, a: 0.7490196}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 7482667652216324306, guid: 48e93eef0688c4a259cb0eddcd8661f7, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1894938103
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1894938100}
+ m_CullTransparentMesh: 1
--- !u!1 &2055631263
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Scripts/Controllers/GameController.cs b/Assets/Scripts/Controllers/GameController.cs
index 9fbe674..6ebcabe 100644
--- a/Assets/Scripts/Controllers/GameController.cs
+++ b/Assets/Scripts/Controllers/GameController.cs
@@ -23,6 +23,10 @@ namespace Controllers
/// </summary>
[SerializeField] public Ball ball;
+ [Header("Spawn Points")]
+ [SerializeField] private SpawnPoints PlayerSpawnPoints;
+ [SerializeField] private SpawnPoints EnemySpawnPoints;
+
[Header("Hoops")]
[SerializeField] public Hoop PlayerHoop;
[SerializeField] public Hoop EnemyHoop;
@@ -34,6 +38,9 @@ namespace Controllers
[SerializeField] private Text playerScoreText;
[SerializeField] private Text enemyScoreText;
[SerializeField] private Text timerText;
+
+ [SerializeField] private GameObject resultOverlay;
+ [SerializeField] private Text resultText;
private void Awake()
{
@@ -60,10 +67,18 @@ namespace Controllers
playerScoreText.text = $"{player.score}";
enemyScoreText.text = $"{enemy.score}";
- var remaining = TimeSpan.FromSeconds(timeLimit - (Time.time - startTime));
+ var remainingRaw = timeLimit - (Time.time - startTime);
+ var remaining = TimeSpan.FromSeconds(Mathf.Clamp(remainingRaw, 0, float.MaxValue));
timerText.text = $"{remaining.Minutes:00}:{remaining.Seconds:00}";
+
+ if (remainingRaw <= 0)
+ {
+ resultOverlay.SetActive(true);
+ var outcome = player.score == enemy.score ? "TIE GAME" : player.score < enemy.score ? "AWAY TEAM WINS" : "HOME TEAM WINS";
+ resultText.text = $"{outcome}\n{player.score}-{enemy.score}";
+ }
}
-
+
public struct Player
{
/// <summary>
@@ -167,6 +182,13 @@ namespace Controllers
EnemyDribble,
EnemyShoot,
}
+
+ [Serializable]
+ private struct SpawnPoints
+ {
+ [SerializeField] internal Transform ball;
+ [SerializeField] internal Transform character;
+ }
}
internal static class GameControllerStateExtensions