Added comments to unfinished code | Tile tags changed | WIP Spawnpoint
This commit is contained in:
parent
4119fdb2c6
commit
5a01e45f0c
13 changed files with 217 additions and 145 deletions
|
@ -21,9 +21,11 @@ GameObject:
|
|||
- component: {fileID: 4704489882212962}
|
||||
- component: {fileID: 212166467098511970}
|
||||
- component: {fileID: 61866627210428188}
|
||||
- component: {fileID: 114053119853995034}
|
||||
- component: {fileID: 61243635969098510}
|
||||
m_Layer: 0
|
||||
m_Name: door
|
||||
m_TagString: Untagged
|
||||
m_TagString: door
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
|
@ -41,6 +43,31 @@ Transform:
|
|||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!61 &61243635969098510
|
||||
BoxCollider2D:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1065161683117842}
|
||||
m_Enabled: 1
|
||||
m_Density: 1
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 1
|
||||
m_UsedByEffector: 0
|
||||
m_UsedByComposite: 0
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_SpriteTilingProperty:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
oldSize: {x: 1, y: 1}
|
||||
newSize: {x: 1, y: 1}
|
||||
adaptiveTilingThreshold: 0.5
|
||||
drawMode: 0
|
||||
adaptiveTiling: 0
|
||||
m_AutoTiling: 0
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 1, y: 1}
|
||||
m_EdgeRadius: 0
|
||||
--- !u!61 &61866627210428188
|
||||
BoxCollider2D:
|
||||
m_ObjectHideFlags: 1
|
||||
|
@ -66,6 +93,18 @@ BoxCollider2D:
|
|||
serializedVersion: 2
|
||||
m_Size: {x: 1, y: 1}
|
||||
m_EdgeRadius: 0
|
||||
--- !u!114 &114053119853995034
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1065161683117842}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 8b8cc30ac6e59724bba6536a17fbf027, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
parent: {fileID: 0}
|
||||
--- !u!212 &212166467098511970
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 1
|
||||
|
|
|
@ -20,7 +20,6 @@ GameObject:
|
|||
m_Component:
|
||||
- component: {fileID: 4167595944037000}
|
||||
- component: {fileID: 212910617741009226}
|
||||
- component: {fileID: 61790205413884498}
|
||||
m_Layer: 0
|
||||
m_Name: ground
|
||||
m_TagString: Untagged
|
||||
|
@ -41,31 +40,6 @@ Transform:
|
|||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!61 &61790205413884498
|
||||
BoxCollider2D:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1487413182883822}
|
||||
m_Enabled: 1
|
||||
m_Density: 1
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_UsedByEffector: 0
|
||||
m_UsedByComposite: 0
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_SpriteTilingProperty:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
oldSize: {x: 1, y: 1}
|
||||
newSize: {x: 1, y: 1}
|
||||
adaptiveTilingThreshold: 0.5
|
||||
drawMode: 0
|
||||
adaptiveTiling: 0
|
||||
m_AutoTiling: 0
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 1, y: 1}
|
||||
m_EdgeRadius: 0
|
||||
--- !u!212 &212910617741009226
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 1
|
||||
|
|
|
@ -23,7 +23,7 @@ GameObject:
|
|||
- component: {fileID: 61976448807984186}
|
||||
m_Layer: 0
|
||||
m_Name: wallCornerIn
|
||||
m_TagString: Untagged
|
||||
m_TagString: wall
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
|
|
|
@ -23,7 +23,7 @@ GameObject:
|
|||
- component: {fileID: 61112856149238616}
|
||||
m_Layer: 0
|
||||
m_Name: wallCornerOut
|
||||
m_TagString: Untagged
|
||||
m_TagString: wall
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
|
|
|
@ -23,7 +23,7 @@ GameObject:
|
|||
- component: {fileID: 61106583680129832}
|
||||
m_Layer: 0
|
||||
m_Name: wallSide
|
||||
m_TagString: Untagged
|
||||
m_TagString: wall
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
using UnityEngine;
|
||||
|
||||
[RequireComponent(typeof(SpriteRenderer))]
|
||||
public class Door : MonoBehaviour {
|
||||
private bool locked = false;
|
||||
|
||||
[SerializeField]
|
||||
GameObject graphics;
|
||||
|
||||
[SerializeField]
|
||||
Room parent;
|
||||
|
||||
|
@ -18,15 +15,23 @@ public class Door : MonoBehaviour {
|
|||
foreach ( BoxCollider2D collider in colliders ) {
|
||||
if ( collider.isTrigger ) {
|
||||
triggerBox = collider;
|
||||
Debug.Log("Found Door trigger");
|
||||
//Debug.Log("Found Door trigger");
|
||||
} else {
|
||||
boundingBox = collider;
|
||||
Debug.Log("Found Door collider");
|
||||
//Debug.Log("Found Door collider");
|
||||
}
|
||||
}
|
||||
Unlock();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets the parent Room Object reference.
|
||||
/// </summary>
|
||||
/// <param name="room"></param>
|
||||
public void SetParent(Room room) {
|
||||
this.parent = room;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Locks the door.
|
||||
/// </summary>
|
||||
|
@ -34,7 +39,7 @@ public class Door : MonoBehaviour {
|
|||
locked = true;
|
||||
boundingBox.enabled = true;
|
||||
triggerBox.enabled = false;
|
||||
graphics.GetComponent<SpriteRenderer>().enabled = true;
|
||||
GetComponent<SpriteRenderer>().enabled = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -44,7 +49,7 @@ public class Door : MonoBehaviour {
|
|||
locked = false;
|
||||
boundingBox.enabled = false;
|
||||
triggerBox.enabled = true;
|
||||
graphics.GetComponent<SpriteRenderer>().enabled = false;
|
||||
GetComponent<SpriteRenderer>().enabled = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -60,10 +65,12 @@ public class Door : MonoBehaviour {
|
|||
/// </summary>
|
||||
/// <param name="collision"></param>
|
||||
private void OnTriggerExit2D(Collider2D collision) {
|
||||
if ( collision.tag == "Player" ) {
|
||||
if ( collision.tag == "Player") {
|
||||
// TODO better checks
|
||||
Debug.Log("Leaving Trigger");
|
||||
if (parent != null) {
|
||||
parent.OnPlayerEnter(collision.gameObject.GetComponent<Player>());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ public class Player : Mob {
|
|||
/// This is called when a Player died.
|
||||
/// </summary>
|
||||
protected override void Death() {
|
||||
Debug.Log("Player died...");
|
||||
Destroy(this.gameObject);
|
||||
GameController.instance.ChangeState(GameController.GameState.ENDED);
|
||||
}
|
||||
|
|
|
@ -4,10 +4,8 @@ using UnityEngine;
|
|||
|
||||
public class GameController : MonoBehaviour {
|
||||
|
||||
[SerializeField]
|
||||
GameObject playerPrefab;
|
||||
|
||||
[SerializeField]
|
||||
|
||||
private Room start;
|
||||
private Room finish;
|
||||
|
||||
|
@ -58,14 +56,24 @@ public class GameController : MonoBehaviour {
|
|||
|
||||
private Dictionary<GenerationProcessor.ExtendedTileType, GameObject> genPrefabs;
|
||||
|
||||
[Space(10)]
|
||||
[Header("References")]
|
||||
|
||||
[SerializeField]
|
||||
private GameObject playerPrefab;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject ui;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject cam;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject mapRoot;
|
||||
|
||||
private bool engineInitDone;
|
||||
private Player player;
|
||||
|
||||
public static GameController instance;
|
||||
public GameController() {
|
||||
instance = this;
|
||||
|
@ -146,23 +154,67 @@ public class GameController : MonoBehaviour {
|
|||
DungeonGenerator dg = new DungeonGenerator();
|
||||
GenerationProcessor gp = new GenerationProcessor(genPrefabs);
|
||||
dg.Generate();
|
||||
|
||||
// Start room
|
||||
GameObject goStart = gp.ProcessRoom(dg.start.tiles);
|
||||
goStart.name = "Start";
|
||||
List<Transform> lt = new List<Transform>(goStart.GetComponentsInChildren<Transform>());
|
||||
GameObject doorRoot = new GameObject();
|
||||
doorRoot.name = "Doors";
|
||||
doorRoot.transform.SetParent(goStart.transform);
|
||||
start = goStart.AddComponent<Room>();
|
||||
//start.SetDoorsRootObject(new List<Transform>(goStart.GetComponentsInChildren<Transform>()).Find(x => x.tag == "DoorRoot").gameObject);
|
||||
lt = lt.FindAll(x => x.tag == "door");
|
||||
lt.ForEach(x => {
|
||||
x.SetParent(doorRoot.transform);
|
||||
x.gameObject.GetComponent<Door>().SetParent(start);
|
||||
});
|
||||
start.SetDoorsRootObject(doorRoot);
|
||||
|
||||
// WIP
|
||||
GameObject spawnpointRoot = new GameObject();
|
||||
spawnpointRoot.name = "Spawnpoints";
|
||||
spawnpointRoot.transform.SetParent(goStart.transform);
|
||||
spawnpointRoot.transform.position = new Vector3(dg.start.roomPosition.x, dg.start.roomPosition.y, 0);
|
||||
GameObject spawn = new GameObject();
|
||||
spawn.transform.SetParent(spawnpointRoot.transform);
|
||||
spawn.transform.position = new Vector3(3, 3, 0);
|
||||
start.SetSpawnPointsRootObject(spawnpointRoot);
|
||||
|
||||
start.Reload();
|
||||
start.transform.SetParent(mapRoot.transform);
|
||||
|
||||
// Finish room
|
||||
GameObject goFinish = gp.ProcessRoom(dg.end.tiles);
|
||||
goFinish.name = "Finish";
|
||||
List<Transform> ltf = new List<Transform>(goFinish.GetComponentsInChildren<Transform>());
|
||||
GameObject doorRootf = new GameObject();
|
||||
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>();
|
||||
//finish.SetDoorsRootObject(new List<Transform>(goFinish.GetComponentsInChildren<Transform>()).Find(x => x.tag == "DoorRoot").gameObject);
|
||||
finish.SetDoorsRootObject(doorRootf);
|
||||
finish.Reload();
|
||||
finish.transform.SetParent(mapRoot.transform);
|
||||
|
||||
// Other Rooms
|
||||
foreach (GenRoom gr in dg.rooms) {
|
||||
GameObject groom = gp.ProcessRoom(gr.tiles);
|
||||
groom.AddComponent<Room>();
|
||||
List<Transform> ltg = new List<Transform>(groom.GetComponentsInChildren<Transform>());
|
||||
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>();
|
||||
grom.SetDoorsRootObject(doorRootg);
|
||||
grom.Reload();
|
||||
groom.transform.SetParent(mapRoot.transform);
|
||||
}
|
||||
|
||||
// Hallways
|
||||
GameObject goHallways = gp.ProcessRoom(dg.path.tiles);
|
||||
goHallways.name = "Hallways";
|
||||
goHallways.AddComponent<Room>();
|
||||
goHallways.transform.SetParent(mapRoot.transform);
|
||||
}
|
||||
|
@ -172,11 +224,11 @@ public class GameController : MonoBehaviour {
|
|||
start.SetObjective(goal);
|
||||
start.OnPlayerEnter(player);
|
||||
player = goal.GetPlayer();
|
||||
if ( player != null ) {
|
||||
cam.GetComponent<CameraControl>().SetFollow(player.gameObject);
|
||||
} else {
|
||||
Debug.Log("No Player spawned!");
|
||||
}
|
||||
|
||||
private void Starting() {
|
||||
|
||||
}
|
||||
|
||||
private void Running() {
|
||||
|
@ -187,10 +239,10 @@ public class GameController : MonoBehaviour {
|
|||
Debug.Log("Game ended");
|
||||
//Time.timeScale = 0;
|
||||
if ( ui != null ) {
|
||||
Debug.Log("show gameover UI");
|
||||
Debug.Log("show Gameover UI");
|
||||
ui.GetComponent<UIController>().ShowGameOverUI();
|
||||
} else {
|
||||
Debug.Log("No ui specified");
|
||||
Debug.Log("No UI specified");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ public class DungeonGenerator {
|
|||
// All rooms except the three above
|
||||
public HashSet<GenRoom> rooms;
|
||||
|
||||
private const float percentageRocks = 0.03;
|
||||
private const float percentageRocks = 0.03f;
|
||||
private const int maxRockCluster = 5;
|
||||
|
||||
public void Generate() {
|
||||
|
@ -355,30 +355,30 @@ public class DungeonGenerator {
|
|||
|
||||
public static void generateInterior(GenRoom r)
|
||||
{
|
||||
int width = r.bounds.width;
|
||||
int height = r.bounds.height;
|
||||
//int width = r.bounds.width;
|
||||
//int height = r.bounds.height;
|
||||
|
||||
Vector2Int root = new Vector2Int (1, 1);
|
||||
Random rand = new Random (System.DateTime.Now);
|
||||
//Vector2Int root = new Vector2Int (1, 1);
|
||||
//Random rand = new Random (System.DateTime.Now);
|
||||
|
||||
for(int x = 0; i != width; ++x)
|
||||
{
|
||||
for(int y = 0; y != width; ++y)
|
||||
{
|
||||
Room.TileType tempTile;
|
||||
r.tiles.TryGetValue (root + new Vector2Int (x, y), tempTile);
|
||||
//for(int x = 0; i != width; ++x)
|
||||
//{
|
||||
// for(int y = 0; y != width; ++y)
|
||||
// {
|
||||
// Room.TileType tempTile;
|
||||
// r.tiles.TryGetValue (root + new Vector2Int (x, y), tempTile);
|
||||
|
||||
if(rand.NextDouble() <= percentageRocks && tempTile.Equals(Room.TileType.GROUND)
|
||||
{
|
||||
int clusterSize = rand.Next (1, maxRockCluster + 1);
|
||||
r.tiles.Add (root + new Vector2Int (x, y), Room.TileType.ROCK);
|
||||
// if(rand.NextDouble() <= percentageRocks && tempTile.Equals(Room.TileType.GROUND)
|
||||
// {
|
||||
// int clusterSize = rand.Next (1, maxRockCluster + 1);
|
||||
// r.tiles.Add (root + new Vector2Int (x, y), Room.TileType.ROCK);
|
||||
|
||||
for(int i = 0; i != clusterSize; ++i)
|
||||
{
|
||||
Vector2Int newRock = root + new Vector2Int(x + rand.Next(0, 2), y + rand.Next(0, 2));
|
||||
r.tiles.TryGetValue (newRock, tempTile);
|
||||
if(!tempTile.Equals(Room.TileType.GROUND))
|
||||
break;
|
||||
// for(int i = 0; i != clusterSize; ++i)
|
||||
// {
|
||||
// Vector2Int newRock = root + new Vector2Int(x + rand.Next(0, 2), y + rand.Next(0, 2));
|
||||
// r.tiles.TryGetValue (newRock, tempTile);
|
||||
// if(!tempTile.Equals(Room.TileType.GROUND))
|
||||
// break;
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ public class GenRoom {
|
|||
return ret;
|
||||
}
|
||||
|
||||
public void generateInteror()
|
||||
{
|
||||
b
|
||||
public void generateInteror() {
|
||||
|
||||
}
|
||||
}
|
|
@ -30,7 +30,7 @@ public class NotificationManager : MonoBehaviour {
|
|||
}
|
||||
|
||||
// Use this for initialization
|
||||
void Start () {
|
||||
void Start() {
|
||||
delay = 0;
|
||||
showingMessage = false;
|
||||
messages = new List<Notification>();
|
||||
|
@ -38,9 +38,9 @@ public class NotificationManager : MonoBehaviour {
|
|||
}
|
||||
|
||||
void Update() {
|
||||
if (showingMessage) {
|
||||
if (Time.time > delay) {
|
||||
if (messages.Count == 1) {
|
||||
if ( showingMessage ) {
|
||||
if ( Time.time > delay ) {
|
||||
if ( messages.Count == 1 ) {
|
||||
GetComponentInParent<Image>().enabled = false;
|
||||
messages.Remove(messages[0]);
|
||||
showingMessage = false;
|
||||
|
@ -53,7 +53,7 @@ public class NotificationManager : MonoBehaviour {
|
|||
}
|
||||
|
||||
public void showMessage(string text, float duration) {
|
||||
if (showingMessage) {
|
||||
if ( showingMessage ) {
|
||||
messages.Add(new Notification(text, duration));
|
||||
} else {
|
||||
showingMessage = true;
|
||||
|
|
|
@ -20,7 +20,6 @@ public class StartObjective : Objective {
|
|||
/// </summary>
|
||||
/// <param name="ply">Player is ignored </param>
|
||||
public override void ActivateGoal(Player player) {
|
||||
Debug.Log(room == null);
|
||||
if ( room.GetSpawnpoints().Count > 0 ) {
|
||||
GameObject ply = GameObject.Instantiate(playerPrefab);
|
||||
ply.transform.position = room.GetSpawnpoints()[0].position;
|
||||
|
@ -34,7 +33,6 @@ public class StartObjective : Objective {
|
|||
/// </summary>
|
||||
/// <returns>Player</returns>
|
||||
public Player GetPlayer() {
|
||||
Debug.Log(player == null);
|
||||
return player;
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ public class Room : MonoBehaviour {
|
|||
foreach ( Door d in doorsRootObject.GetComponentsInChildren<Door>() ) {
|
||||
doors.Add(d);
|
||||
}
|
||||
Debug.Log("[ROOMS] Doors: " + doors.Count);
|
||||
//Debug.Log("[ROOMS] Doors: " + doors.Count);
|
||||
}
|
||||
|
||||
spawnpoints = new List<Transform>();
|
||||
|
@ -36,8 +36,9 @@ public class Room : MonoBehaviour {
|
|||
spawnpoints.Add(t);
|
||||
}
|
||||
}
|
||||
Debug.Log("[ROOMS] Spawnpoints: " + spawnpoints.Count);
|
||||
//Debug.Log("[ROOMS] Spawnpoints: " + spawnpoints.Count);
|
||||
}
|
||||
//Unlock();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -49,7 +50,7 @@ public class Room : MonoBehaviour {
|
|||
foreach ( Door d in doorsRootObject.GetComponentsInChildren<Door>() ) {
|
||||
doors.Add(d);
|
||||
}
|
||||
Debug.Log("[ROOMS] Doors: " + doors.Count);
|
||||
//Debug.Log("[ROOMS] Doors: " + doors.Count);
|
||||
}
|
||||
|
||||
spawnpoints = new List<Transform>();
|
||||
|
@ -59,7 +60,7 @@ public class Room : MonoBehaviour {
|
|||
spawnpoints.Add(t);
|
||||
}
|
||||
}
|
||||
Debug.Log("[ROOMS] Spawnpoints: " + spawnpoints.Count);
|
||||
//Debug.Log("[ROOMS] Spawnpoints: " + spawnpoints.Count);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue