Commit 926ba458 authored by 18손재민's avatar 18손재민

방 클리어하는 함수 새로 팜

parent 214fbfeb
This diff is collapsed.
......@@ -988,70 +988,70 @@ public class MapManager : Singleton<MapManager> {
Tetrimino.rotationInformation[5].horizontalLength = new int[4] { 3, 2, 3, 2 }; //S
Tetrimino.rotationInformation[6].horizontalLength = new int[4] { 3, 2, 3, 2 }; //Z
Tetrimino.rotationInformation[7].horizontalLength = new int[4] { 1, 1, 1, 1 }; //Boss
ItemRoomInGame.itemRoomInformation[0] = new RoomItemInfo(
new ItemSpawnInfo[8]
ItemRoomInGame.itemRoomInformation[0] = new RoomItemInfo<ItemRoomItemInfo>(
new ItemRoomItemInfo[8]
{
new ItemSpawnInfo(12.5f, new ItemSpawnType[2] { ItemSpawnType.Item, ItemSpawnType.GoldPotion },
new ItemRoomItemInfo(12.5f, new ItemSpawnType[2] { ItemSpawnType.Item, ItemSpawnType.GoldPotion },
new ItemQuality[2] { ItemQuality.Ordinary, ItemQuality.None }, new int[2] { 1, 2 }),
new ItemSpawnInfo(12.5f, new ItemSpawnType[2] { ItemSpawnType.Addon, ItemSpawnType.GoldPotion },
new ItemRoomItemInfo(12.5f, new ItemSpawnType[2] { ItemSpawnType.Addon, ItemSpawnType.GoldPotion },
new ItemQuality[2] { ItemQuality.Ordinary, ItemQuality.None }, new int[2] { 1, 2 }),
new ItemSpawnInfo(12.5f, new ItemSpawnType[2] { ItemSpawnType.Item, ItemSpawnType.LifeStone },
new ItemRoomItemInfo(12.5f, new ItemSpawnType[2] { ItemSpawnType.Item, ItemSpawnType.LifeStone },
new ItemQuality[2] { ItemQuality.Ordinary, ItemQuality.Gold }, new int[2] { 1, 1 }),
new ItemSpawnInfo(12.5f, new ItemSpawnType[2] { ItemSpawnType.Addon, ItemSpawnType.LifeStone },
new ItemRoomItemInfo(12.5f, new ItemSpawnType[2] { ItemSpawnType.Addon, ItemSpawnType.LifeStone },
new ItemQuality[2] { ItemQuality.Ordinary, ItemQuality.Gold }, new int[2] { 1, 1 }),
new ItemSpawnInfo(17, new ItemSpawnType[2] { ItemSpawnType.Item, ItemSpawnType.Addon },
new ItemRoomItemInfo(17, new ItemSpawnType[2] { ItemSpawnType.Item, ItemSpawnType.Addon },
new ItemQuality[2] { ItemQuality.Ordinary, ItemQuality.Ordinary }, new int[2] { 1, 1 }),
new ItemSpawnInfo(25, new ItemSpawnType[2] { ItemSpawnType.Item, ItemSpawnType.Addon },
new ItemRoomItemInfo(25, new ItemSpawnType[2] { ItemSpawnType.Item, ItemSpawnType.Addon },
new ItemQuality[2] { ItemQuality.Ordinary, ItemQuality.Study }, new int[2] { 1, 1 }),
new ItemSpawnInfo(4, new ItemSpawnType[1] { ItemSpawnType.Item },
new ItemRoomItemInfo(4, new ItemSpawnType[1] { ItemSpawnType.Item },
new ItemQuality[1] { ItemQuality.Superior }, new int[1] { 1 }),
new ItemSpawnInfo(4, new ItemSpawnType[1] { ItemSpawnType.Addon },
new ItemRoomItemInfo(4, new ItemSpawnType[1] { ItemSpawnType.Addon },
new ItemQuality[1] { ItemQuality.Superior }, new int[1] { 1 })
});
ItemRoomInGame.itemRoomInformation[1] = new RoomItemInfo(
new ItemSpawnInfo[7]
ItemRoomInGame.itemRoomInformation[1] = new RoomItemInfo<ItemRoomItemInfo>(
new ItemRoomItemInfo[7]
{
new ItemSpawnInfo(10, new ItemSpawnType[2] { ItemSpawnType.Item, ItemSpawnType.GoldPotion },
new ItemQuality[2] { ItemQuality.Superior, ItemQuality.None }, new int[2] { 1, 3 }),
new ItemSpawnInfo(10, new ItemSpawnType[2] { ItemSpawnType.Addon, ItemSpawnType.GoldPotion },
new ItemQuality[2] { ItemQuality.Superior, ItemQuality.None }, new int[2] { 1, 3 }),
new ItemSpawnInfo(20, new ItemSpawnType[3] { ItemSpawnType.Addon, ItemSpawnType.Addon, ItemSpawnType.Addon },
new ItemRoomItemInfo(10, new ItemSpawnType[2] { ItemSpawnType.Item, ItemSpawnType.GoldPotion },
new ItemQuality[2] { ItemQuality.Superior, ItemQuality.None }, new int[2] { 1, 3 }),
new ItemRoomItemInfo(10, new ItemSpawnType[2] { ItemSpawnType.Addon, ItemSpawnType.GoldPotion },
new ItemQuality[2] { ItemQuality.Superior, ItemQuality.None }, new int[2] { 1, 3 }),
new ItemRoomItemInfo(20, new ItemSpawnType[3] { ItemSpawnType.Addon, ItemSpawnType.Addon, ItemSpawnType.Addon },
new ItemQuality[3] { ItemQuality.Superior, ItemQuality.Ordinary, ItemQuality.Study }, new int[3] { 1, 1, 1 }),
new ItemSpawnInfo(20, new ItemSpawnType[2] { ItemSpawnType.Item, ItemSpawnType.Addon },
new ItemRoomItemInfo(20, new ItemSpawnType[2] { ItemSpawnType.Item, ItemSpawnType.Addon },
new ItemQuality[2] { ItemQuality.Superior, ItemQuality.Study }, new int[2] { 1, 2 }),
new ItemSpawnInfo(20, new ItemSpawnType[3] { ItemSpawnType.Item, ItemSpawnType.Addon, ItemSpawnType.LifeStone },
new ItemRoomItemInfo(20, new ItemSpawnType[3] { ItemSpawnType.Item, ItemSpawnType.Addon, ItemSpawnType.LifeStone },
new ItemQuality[3] { ItemQuality.Superior, ItemQuality.Ordinary, ItemQuality.None }, new int[3] { 1, 1, 1 }),
new ItemSpawnInfo(10, new ItemSpawnType[2] { ItemSpawnType.Item, ItemSpawnType.LifeStone },
new ItemRoomItemInfo(10, new ItemSpawnType[2] { ItemSpawnType.Item, ItemSpawnType.LifeStone },
new ItemQuality[2] { ItemQuality.Superior, ItemQuality.None }, new int[2] { 1, 3 }),
new ItemSpawnInfo(10, new ItemSpawnType[2] { ItemSpawnType.Addon, ItemSpawnType.LifeStone },
new ItemRoomItemInfo(10, new ItemSpawnType[2] { ItemSpawnType.Addon, ItemSpawnType.LifeStone },
new ItemQuality[2] { ItemQuality.Superior, ItemQuality.None }, new int[2] { 1, 3 })
});
ItemRoomInGame.itemRoomInformation[2] = new RoomItemInfo(
new ItemSpawnInfo[4]
ItemRoomInGame.itemRoomInformation[2] = new RoomItemInfo<ItemRoomItemInfo>(
new ItemRoomItemInfo[4]
{
new ItemSpawnInfo(33.5f, new ItemSpawnType[4] { ItemSpawnType.Item, ItemSpawnType.Addon, ItemSpawnType.Item, ItemSpawnType.GoldPotion },
new ItemRoomItemInfo(33.5f, new ItemSpawnType[4] { ItemSpawnType.Item, ItemSpawnType.Addon, ItemSpawnType.Item, ItemSpawnType.GoldPotion },
new ItemQuality[4] { ItemQuality.Superior, ItemQuality.Superior, ItemQuality.Ordinary, ItemQuality.None }, new int[4] { 1, 1, 1, 1 }),
new ItemSpawnInfo(33.5f, new ItemSpawnType[4] { ItemSpawnType.Item, ItemSpawnType.Addon, ItemSpawnType.Addon, ItemSpawnType.GoldPotion },
new ItemRoomItemInfo(33.5f, new ItemSpawnType[4] { ItemSpawnType.Item, ItemSpawnType.Addon, ItemSpawnType.Addon, ItemSpawnType.GoldPotion },
new ItemQuality[4] { ItemQuality.Superior, ItemQuality.Superior, ItemQuality.Ordinary, ItemQuality.None }, new int[4] { 1, 1, 1, 1 }),
new ItemSpawnInfo(16.5f, new ItemSpawnType[1] { ItemSpawnType.Item },
new ItemRoomItemInfo(16.5f, new ItemSpawnType[1] { ItemSpawnType.Item },
new ItemQuality[1] { ItemQuality.Masterpiece }, new int[1] { 1 }),
new ItemSpawnInfo(16.5f, new ItemSpawnType[1] { ItemSpawnType.Addon },
new ItemRoomItemInfo(16.5f, new ItemSpawnType[1] { ItemSpawnType.Addon },
new ItemQuality[1] { ItemQuality.Masterpiece }, new int[1] { 1 })
});
ItemRoomInGame.itemRoomInformation[3] = new RoomItemInfo(
new ItemSpawnInfo[2]
ItemRoomInGame.itemRoomInformation[3] = new RoomItemInfo<ItemRoomItemInfo>(
new ItemRoomItemInfo[2]
{
new ItemSpawnInfo(50, new ItemSpawnType[2] { ItemSpawnType.Item, ItemSpawnType.GoldPotion },
new ItemRoomItemInfo(50, new ItemSpawnType[2] { ItemSpawnType.Item, ItemSpawnType.GoldPotion },
new ItemQuality[2] { ItemQuality.Masterpiece, ItemQuality.None }, new int[2] { 1, 2 }),
new ItemSpawnInfo(50, new ItemSpawnType[2] { ItemSpawnType.Addon, ItemSpawnType.GoldPotion },
new ItemRoomItemInfo(50, new ItemSpawnType[2] { ItemSpawnType.Addon, ItemSpawnType.GoldPotion },
new ItemQuality[2] { ItemQuality.Masterpiece, ItemQuality.None }, new int[2] { 1, 2 })
});
ItemRoomInGame.itemRoomInformation[4] = new RoomItemInfo(
new ItemSpawnInfo[2]
ItemRoomInGame.itemRoomInformation[4] = new RoomItemInfo<ItemRoomItemInfo>(
new ItemRoomItemInfo[2]
{
new ItemSpawnInfo(50, new ItemSpawnType[3] { ItemSpawnType.Item, ItemSpawnType.LifeStoneFrame, ItemSpawnType.LifeStone },
new ItemRoomItemInfo(50, new ItemSpawnType[3] { ItemSpawnType.Item, ItemSpawnType.LifeStoneFrame, ItemSpawnType.LifeStone },
new ItemQuality[3] { ItemQuality.Masterpiece, ItemQuality.None, ItemQuality.Gold }, new int[3] { 1, 1, 1 }),
new ItemSpawnInfo(50, new ItemSpawnType[3] { ItemSpawnType.Addon, ItemSpawnType.LifeStoneFrame, ItemSpawnType.LifeStone },
new ItemRoomItemInfo(50, new ItemSpawnType[3] { ItemSpawnType.Addon, ItemSpawnType.LifeStoneFrame, ItemSpawnType.LifeStone },
new ItemQuality[3] { ItemQuality.Masterpiece, ItemQuality.None, ItemQuality.Gold }, new int[3] { 1, 1, 1 })
});
for (int i = 0; i < tetrisYCoord.Length; i++)
......@@ -1229,7 +1229,7 @@ public class MapManager : Singleton<MapManager> {
if(GameManager.gameState == GameState.Portal)
PortalControl();
if (!currentRoom.isRoomCleared && (EnemyManager.Instance.IsClear() || (currentRoom.specialRoomType != RoomType.Normal && currentRoom.specialRoomType != RoomType.Boss)))
currentRoom.ClearRoom();
currentRoom.FinishRoom();
}
}
}
......@@ -221,6 +221,19 @@ public class Room : MonoBehaviour
{
portal = roomInGame.transform.Find("portal spot").gameObject;
portal = Instantiate(MapManager.Instance.portal, portal.transform.position, Quaternion.identity, roomInGame.transform);
for (int x = 0; x < MapManager.width; x++)
MapManager.portalDistributedHorizontal[x].Clear();
for (int y = 0; y <= MapManager.realHeight; y++)
MapManager.portalDistributedVertical[y].Clear();
for (int x = 0; x < MapManager.width; x++)
for (int y = 0; y <= MapManager.realHeight; y++)
if (MapManager.mapGrid[x, y] != null && MapManager.mapGrid[x, y].isPortal == true)
{
MapManager.portalGrid[x, y] = true;
MapManager.portalDistributedHorizontal[x].Add(y);
MapManager.portalDistributedVertical[y].Add(x);
}
portalSurface = Instantiate(MapManager.Instance.portalSurface, transform.position + new Vector3(12, 12, 0), Quaternion.identity, transform);
}
}
}
......@@ -366,7 +379,7 @@ public class Room : MonoBehaviour
/// Clear the cleared room.
/// Open all the doors and change fog to cleared fog.
/// </summary>
public void ClearRoom()
public void FinishRoom()
{
if(isRoomCleared != true)
{
......@@ -375,32 +388,14 @@ public class Room : MonoBehaviour
OpenDoor("Left");
OpenDoor("Right");
Vector3 fogPosition = fog.transform.position;
Destroy(fog);
fog = Instantiate(MapManager.Instance.clearedFog, fogPosition, Quaternion.identity, transform);
fog.GetComponent<SpriteRenderer>().color = new Color(1, 1, 1, 0);
CreatePortal();
if (isPortal == true)
{
for (int x = 0; x < MapManager.width; x++)
MapManager.portalDistributedHorizontal[x].Clear();
for (int y = 0; y <= MapManager.realHeight; y++)
MapManager.portalDistributedVertical[y].Clear();
for (int x = 0; x < MapManager.width; x++)
for (int y = 0; y <= MapManager.realHeight; y++)
if (MapManager.mapGrid[x, y] != null && MapManager.mapGrid[x, y].isPortal == true)
{
MapManager.portalGrid[x, y] = true;
MapManager.portalDistributedHorizontal[x].Add(y);
MapManager.portalDistributedVertical[y].Add(x);
}
portalSurface = Instantiate(MapManager.Instance.portalSurface, transform.position + new Vector3(12, 12, 0), Quaternion.identity, transform);
}
isRoomCleared = true;
MapManager.Instance.clock.clockSpeedStack -= 3;
if (MapManager.Instance.clock.clockSpeedStack < 0)
MapManager.Instance.clock.clockSpeedStack = 0;
if (specialRoomType == RoomType.Boss)
MapManager.currentStage += 1;
roomInGame.RoomClear();
}
//Need to make extra works.
}
......
......@@ -2,31 +2,14 @@
using System.Collections.Generic;
using UnityEngine;
public class ItemSpawnInfo
public class RoomItemInfo<T>
{
public float probability;
public ItemSpawnType[] itemType;
public ItemQuality[] itemQuality;
public int[] amount;
public ItemSpawnInfo(float _probability, ItemSpawnType[] _itemType, ItemQuality[] _itemQuality, int[] _amount)
{
probability = _probability;
itemType = new ItemSpawnType[_itemType.Length];
itemQuality = new ItemQuality[_itemQuality.Length];
amount = new int[4];
for (int i = 0; i < _itemType.Length; i++)
{
itemType[i] = _itemType[i];
itemQuality[i] = _itemQuality[i];
amount[i] = _amount[i];
}
}
}
public List<T> itemSpawnInfo = new List<T>();
public RoomItemInfo()
{
public class RoomItemInfo
{
public List<ItemSpawnInfo> itemSpawnInfo = new List<ItemSpawnInfo>();
public RoomItemInfo(ItemSpawnInfo[] _itemSpawnInfo)
}
public RoomItemInfo(T[] _itemSpawnInfo)
{
for (int i = 0; i < _itemSpawnInfo.Length; i++)
itemSpawnInfo.Add(_itemSpawnInfo[i]);
......@@ -63,4 +46,9 @@ public class RoomInGame : MonoBehaviour {
{
}
public virtual void RoomClear()
{
}
}
......@@ -4,14 +4,16 @@ using UnityEngine;
public class BossRoomInGame : RoomInGame {
IEnumerator[] phases;
public override void RoomEnter()
{
base.RoomEnter();
// 보스 소개
//보스 만들어지면 구현할 것
}
public override void RoomClear()
{
base.RoomClear();
MapManager.currentStage += 1;
}
}
......@@ -2,17 +2,39 @@
using System.Collections.Generic;
using UnityEngine;
public class GoldRoomInGame : RoomInGame {
public class GoldRoomItemInfo
{
public ItemSpawnType[] itemType;
public ItemQuality[] itemQuality;
public int[] price;
public GoldRoomItemInfo(ItemSpawnType[] _itemType, ItemQuality[] _itemQuality, int[] _price)
{
itemType = new ItemSpawnType[_itemType.Length];
itemQuality = new ItemQuality[_itemQuality.Length];
price = new int[_price.Length];
for (int i = 0; i < _itemType.Length; i++)
{
itemType[i] = _itemType[i];
itemQuality[i] = _itemQuality[i];
price[i] = _price[i];
}
}
}
public class GoldRoomInGame : RoomInGame {
public static RoomItemInfo<GoldRoomItemInfo>[] goldRoomInformation = new RoomItemInfo<GoldRoomItemInfo>()[];
public override void RoomEnter()
{
base.RoomEnter();
}
public override void RoomClear()
{
base.RoomClear();
}
}
......@@ -2,11 +2,32 @@
using System.Collections.Generic;
using UnityEngine;
public class ItemRoomItemInfo
{
public float probability;
public ItemSpawnType[] itemType;
public ItemQuality[] itemQuality;
public int[] amount;
public ItemRoomItemInfo(float _probability, ItemSpawnType[] _itemType, ItemQuality[] _itemQuality, int[] _amount)
{
probability = _probability;
itemType = new ItemSpawnType[_itemType.Length];
itemQuality = new ItemQuality[_itemQuality.Length];
amount = new int[_amount.Length];
for (int i = 0; i < _itemType.Length; i++)
{
itemType[i] = _itemType[i];
itemQuality[i] = _itemQuality[i];
amount[i] = _amount[i];
}
}
}
public class ItemRoomInGame : RoomInGame {
public static RoomItemInfo[] itemRoomInformation = new RoomItemInfo[5];
public void SpawnItem()
public static RoomItemInfo<ItemRoomItemInfo>[] itemRoomInformation = new RoomItemInfo<ItemRoomItemInfo>[5];
public void SpawnItem()
{
Room room = transform.parent.GetComponent<Room>();
InventoryManager inventoryManager = InventoryManager.Instance;
......@@ -21,7 +42,7 @@ public class ItemRoomInGame : RoomInGame {
itemRoomIndex = 5;
for(int index = 0; index < itemRoomInformation[itemRoomIndex - 1].itemSpawnInfo.Count; index++)
{
ItemSpawnInfo child = itemRoomInformation[itemRoomIndex - 1].itemSpawnInfo[index];
ItemRoomItemInfo child = itemRoomInformation[itemRoomIndex - 1].itemSpawnInfo[index];
probability -= child.probability;
Debug.Log(probability);
if (probability <= 0)
......@@ -86,4 +107,10 @@ public class ItemRoomInGame : RoomInGame {
base.RoomEnter();
SpawnItem();
}
public override void RoomClear()
{
base.RoomClear();
}
}
......@@ -9,4 +9,10 @@ public class NormalRoomInGame : RoomInGame {
base.RoomEnter();
EnemyManager.Instance.SpawnEnemyToMap();
}
public override void RoomClear()
{
base.RoomClear();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment