1
0
Fork 0

Add / Implement FinishObjective

This commit is contained in:
Saibotk 2018-04-23 14:59:34 +02:00
parent d93381aae2
commit 55d6feae55
11 changed files with 79 additions and 64 deletions

View file

@ -1059,7 +1059,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 66.396866, y: 0}
m_AnchoredPosition: {x: 64.16286, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 1, y: 0.5}
--- !u!224 &224218339018349506

View file

@ -497,17 +497,6 @@ Prefab:
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 114835806183609276, guid: 3d1911457c1e44f53b6b4044334db52f,
type: 2}
propertyPath: bulletSpawn
value:
objectReference: {fileID: 2032758561}
- target: {fileID: 114835806183609276, guid: 3d1911457c1e44f53b6b4044334db52f,
type: 2}
propertyPath: bulletPrefab
value:
objectReference: {fileID: 1379543051791382, guid: c6c321ecc6516374781405a54c1fa6a7,
type: 2}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 3d1911457c1e44f53b6b4044334db52f, type: 2}
m_IsPrefabParent: 0
@ -851,7 +840,7 @@ Prefab:
- target: {fileID: 224150154901314796, guid: 460d856ea4eb14cedb5fecde1fe6d743,
type: 2}
propertyPath: m_AnchoredPosition.x
value: 66.396866
value: 67.14285
objectReference: {fileID: 0}
- target: {fileID: 224150154901314796, guid: 460d856ea4eb14cedb5fecde1fe6d743,
type: 2}
@ -883,15 +872,6 @@ Prefab:
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1604998495297016, guid: 460d856ea4eb14cedb5fecde1fe6d743, type: 2}
propertyPath: m_Name
value: RestartPanel
objectReference: {fileID: 0}
- target: {fileID: 114917026543374048, guid: 460d856ea4eb14cedb5fecde1fe6d743,
type: 2}
propertyPath: restartUIPanel
value:
objectReference: {fileID: 1755791938}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 460d856ea4eb14cedb5fecde1fe6d743, type: 2}
m_IsPrefabParent: 0
@ -1094,11 +1074,6 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1755791938 stripped
GameObject:
m_PrefabParentObject: {fileID: 1604998495297016, guid: 460d856ea4eb14cedb5fecde1fe6d743,
type: 2}
m_PrefabInternal: {fileID: 1379476068}
--- !u!1 &1908750961
GameObject:
m_ObjectHideFlags: 0
@ -1224,11 +1199,6 @@ AudioSource:
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
--- !u!4 &2032758561 stripped
Transform:
m_PrefabParentObject: {fileID: 4676354101874032, guid: 3d1911457c1e44f53b6b4044334db52f,
type: 2}
m_PrefabInternal: {fileID: 865504979}
--- !u!1 &2063368131
GameObject:
m_ObjectHideFlags: 0

View file

@ -67,9 +67,11 @@ public class Door : MonoBehaviour {
if ( collision.tag == "Player") {
// TODO better checks
Debug.Log("Leaving Trigger");
if (parent != null) {
parent.OnPlayerEnter(collision.gameObject.GetComponent<Player>());
if(parent == null) {
Debug.Log("This door has no parent Room!");
return;
}
parent.OnPlayerEnter(collision.gameObject.GetComponent<Player>());
}
}
}

View file

@ -9,6 +9,10 @@ public class GameController : MonoBehaviour {
private Room start;
private Room finish;
public enum EndedCause {
WIN, DIED
}
// Generation Settings
[Header("Tile Prefabs")]
[SerializeField]
@ -82,7 +86,7 @@ public class GameController : MonoBehaviour {
}
public enum GameState { UNSET, INIT, STARTING, RUNNING, ENDED };
private EndedCause endCause = EndedCause.DIED;
private GameState state = GameState.UNSET;
// Use this for initialization
@ -193,8 +197,11 @@ public class GameController : MonoBehaviour {
doorRootf.name = "Doors";
doorRootf.transform.SetParent(goFinish.transform);
ltf = ltf.FindAll(x => x.tag == "door");
ltf.ForEach(x => x.SetParent(doorRootf.transform));
finish = goFinish.AddComponent<Room>();
ltf.ForEach(x => {
x.SetParent(doorRootf.transform);
x.gameObject.GetComponent<Door>().SetParent(finish);
});
finish.SetDoorsRootObject(doorRootf);
finish.Reload();
finish.transform.SetParent(mapRoot.transform);
@ -206,9 +213,13 @@ public class GameController : MonoBehaviour {
GameObject doorRootg = new GameObject();
doorRootg.name = "Doors";
doorRootg.transform.SetParent(groom.transform);
ltg = ltg.FindAll(x => x.tag == "door");
ltg.ForEach(x => x.SetParent(doorRootg.transform));
Room grom = groom.AddComponent<Room>();
ltg = ltg.FindAll(x => x.tag == "door");
ltg.ForEach(x => {
x.SetParent(doorRootg.transform);
x.gameObject.GetComponent<Door>().SetParent(grom);
});
grom.SetDoorsRootObject(doorRootg);
grom.Reload();
groom.transform.SetParent(mapRoot.transform);
@ -232,6 +243,7 @@ public class GameController : MonoBehaviour {
} else {
Debug.Log("No Player spawned!");
}
finish.SetObjective(new FinishObjective(finish));
}
private void Running() {
@ -242,9 +254,15 @@ public class GameController : MonoBehaviour {
Debug.Log("Game ended");
//Time.timeScale = 0;
if ( ui != null ) {
Debug.Log("show Gameover UI");
cam.GetComponent<AudioControl>().SfxPlay(2);
ui.GetComponent<UIController>().ShowGameOverUI();
Debug.Log("show end UI");
if(endCause == EndedCause.DIED) {
cam.GetComponent<AudioControl>().SfxPlay(2);
ui.GetComponent<UIController>().ShowGameOverUI();
} else if(endCause == EndedCause.WIN) {
//cam.GetComponent<AudioControl>().SfxPlay(2);
ui.GetComponent<UIController>().ShowWinUI();
}
} else {
Debug.Log("No UI specified");
}
@ -261,4 +279,9 @@ public class GameController : MonoBehaviour {
public bool GameEnded() {
return state == GameState.ENDED;
}
public void EndGame(EndedCause cause) {
endCause = cause;
ChangeState(GameState.ENDED);
}
}

View file

@ -0,0 +1,23 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FinishObjective : Objective {
public FinishObjective(Room caller) : base(caller) { }
public override void ActivateGoal(Player player) {
// Player reached the end => win
base.ActivateGoal(player);
UpdateGoal();
}
public override void UpdateGoal() {
ReachedGoal();
}
protected override void ReachedGoal() {
base.ReachedGoal();
GameController.instance.EndGame(GameController.EndedCause.WIN);
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 409e13e4d4aa55c4fa47137e828d465c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -114,14 +114,16 @@ public class Room : MonoBehaviour {
/// </summary>
/// <param name="player"></param>
public void OnPlayerEnter(Player player) {
if ( objective != null && objective.GetFinished() ) {
if(objective == null) {
Debug.Log("[ROOMS] This Room has no objective!");
return;
}
if ( objective.GetFinished() ) {
Debug.Log("[ROOMS] This room has been cleared already.");
return;
}
if ( objective != null ) {
Debug.Log("[ROOMS] Player activated Objective");
objective.ActivateGoal(player);
}
Debug.Log("[ROOMS] Player activated Objective");
objective.ActivateGoal(player);
}
/// <summary>

View file

@ -60,7 +60,7 @@ public class UIController : MonoBehaviour
string headerText = won ? "You won!" : "Game Over";
if (restartUIPanel != null) {
restartUIPanel.SetActive(true);
restartUIPanel.GetComponent<Text>().text = headerText;
restartUIPanel.GetComponentInChildren<Text>().text = headerText;
} else {
Debug.Log("No restart panel assigned");
}

View file

@ -29,7 +29,7 @@ TextureImporter:
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
filterMode: 1
aniso: -1
mipBias: -1
wrapU: 1

View file

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 9ec323b9157704d00a3409f8ea6e46b2
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: df6e7833427b5497b92308fb6f54e552
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: