Commit c4245b9f authored by 15김민규's avatar 15김민규 Committed by 18김상언

Merge remote-tracking branch 'origin/LifeStone' into enemy

# Conflicts:
#	Assets/Scripts/Characters/Enemy.cs
parents 1840ed85 2395cbda
......@@ -91,7 +91,7 @@ Rigidbody2D:
m_Material: {fileID: 0}
m_Interpolate: 0
m_SleepingMode: 1
m_CollisionDetection: 0
m_CollisionDetection: 1
m_Constraints: 4
--- !u!61 &61781846804253628
BoxCollider2D:
......
......@@ -51,7 +51,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 674793b622d7c184882dfeb8784bbf92, type: 3}
m_Name:
m_EditorClassIdentifier:
itemPool: []
addonPool: []
droppedPrefab: {fileID: 1610049888013262, guid: ee63f05b79e18ce4bad2c226aa70a28e,
type: 2}
popoutStrengthMultiplier: 4
popoutTime: 0.3
......@@ -99,6 +99,8 @@ MonoBehaviour:
droppedLifeStonePrefab: {fileID: 1149595688849768, guid: 8255a117a93935941b32b4aed9b299a0,
type: 2}
frameBorder: 0.2
popoutStrengthMultiplier: 3
popoutTime: 0.3
--- !u!224 &224255635903845628
RectTransform:
m_ObjectHideFlags: 1
......
......@@ -26,7 +26,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!1 &1778675533210814
GameObject:
m_ObjectHideFlags: 0
......@@ -91,7 +91,7 @@ Rigidbody2D:
m_Material: {fileID: 0}
m_Interpolate: 0
m_SleepingMode: 1
m_CollisionDetection: 0
m_CollisionDetection: 1
m_Constraints: 4
--- !u!61 &61337180976087290
BoxCollider2D:
......
......@@ -129,6 +129,8 @@ public class Enemy : MonoBehaviour {
return;
}
// Coroutine
IEnumerator DebuffCase(EnemyDebuffed sCase)
{
......
......@@ -9,7 +9,7 @@ public class DroppedItem : MonoBehaviour, IPlayerInteraction
public Item item;
public Addon addon;
public GameObject highlight;
float itemSizeMultiplier = 0.0077f;
float itemSizeMultiplier = 0.007f;
Rigidbody2D rb2D;
BoxCollider2D bc2D;
SpriteRenderer sprt;
......
......@@ -10,6 +10,8 @@ public class InventoryManager : MonoBehaviour {
public List<string>[] itemPool = new List<string>[4];
public List<string>[] addonPool = new List<string>[4];
public GameObject droppedPrefab;
public float popoutStrengthMultiplier;
public float popoutTime;
GameObject player;
private void Start()
......@@ -83,45 +85,48 @@ public class InventoryManager : MonoBehaviour {
IEnumerator TestCoroutine()
{
yield return null;
ItemInstantiate(ItemQuality.Study, player.transform.position);
/*PushItem((Item)System.Activator.CreateInstance(System.Type.GetType(itemPool[0])));
PushItem((Item)System.Activator.CreateInstance(System.Type.GetType(itemPool[2])));
yield return new WaitForSeconds(1.5f);
ItemInstantiate(itemPool[0], player.transform.position);
yield return new WaitForSeconds(1.5f);
ItemInstantiate(itemPool[1], player.transform.position);
yield return new WaitForSeconds(1.5f);
ItemInstantiate(itemPool[2], player.transform.position);
yield return new WaitForSeconds(1.5f);
ItemInstantiate(itemPool[3], player.transform.position);
yield return new WaitForSeconds(1.5f);
AddonInstantiate(addonPool[0], player.transform.position);
yield return new WaitForSeconds(1.5f);
AddonInstantiate(addonPool[1], player.transform.position);
ItemSelect(0);
yield return new WaitForSeconds(1f);
PushItem((Item)System.Activator.CreateInstance(System.Type.GetType(itemPool[1])));
yield return new WaitForSeconds(1f);
PushItem((Item)System.Activator.CreateInstance(System.Type.GetType(itemPool[2])));
yield return new WaitForSeconds(1f);
PushAddon((Addon)System.Activator.CreateInstance(System.Type.GetType(addonPool[0])));
yield return new WaitForSeconds(1f);
PushAddon((Addon)System.Activator.CreateInstance(System.Type.GetType(addonPool[1])));
yield return new WaitForSeconds(1f);
AttachAddon(0, 0);
yield return new WaitForSeconds(1f);
*/
yield return new WaitForSeconds(2.5f);
ItemInstantiate(ItemQuality.Study, player.transform.position, 1f);
}
IEnumerator PopoutCoroutine(GameObject obj)
{
float endTime = Time.time + popoutTime;
Vector2 orgScale = obj.transform.localScale;
SpriteRenderer[] sprtArr = obj.GetComponents<SpriteRenderer>();
while(Time.time < endTime)
{
obj.transform.localScale = (1 - ((endTime - Time.time) / popoutTime)) * orgScale;
foreach (SpriteRenderer sprt in sprtArr)
sprt.color = new Color(sprt.color.r, sprt.color.g, sprt.color.b, 1 - ((endTime - Time.time) / popoutTime));
yield return null;
}
obj.transform.localScale = orgScale;
foreach (SpriteRenderer sprt in sprtArr)
sprt.color = new Color(sprt.color.r, sprt.color.g, sprt.color.b, 1f);
}
void PopoutGenerator(GameObject obj, float popoutStrength)
{
popoutStrength *= popoutStrengthMultiplier;
float angle = Mathf.Deg2Rad * Random.Range(60f, 120f);
obj.GetComponent<Rigidbody2D>().velocity = new Vector2(Mathf.Cos(angle), Mathf.Sin(angle)) * popoutStrength;
StartCoroutine(PopoutCoroutine(obj));
}
/// <summary>
/// Instantiate random item by quality
/// </summary>
/// <param name="quality"></param>
/// <param name="pos"></param>
public void ItemInstantiate(ItemQuality quality, Vector3 pos)
/// <param name="popoutStrength">0:no popout, 1:normal popout</param>
public void ItemInstantiate(ItemQuality quality, Vector3 pos, float popoutStrength)
{
if(itemPool[(int)quality].Count > 0)
{
ItemInstantiate(itemPool[(int)quality][0], pos);
ItemInstantiate(itemPool[(int)quality][0], pos, popoutStrength);
itemPool[(int)quality].RemoveAt(0);
}
}
......@@ -130,21 +135,24 @@ public class InventoryManager : MonoBehaviour {
/// </summary>
/// <param name="str"></param>
/// <param name="pos"></param>
public void ItemInstantiate(string str, Vector3 pos)
public void ItemInstantiate(string str, Vector3 pos, float popoutStrength)
{
GameObject tmpItem = Instantiate(droppedPrefab);
tmpItem.GetComponent<DroppedItem>().Init((Item)System.Activator.CreateInstance(System.Type.GetType(str)), pos);
PopoutGenerator(tmpItem, popoutStrength);
}
/// <summary>
/// Instantiate item by Item Instance on pos
/// </summary>
/// <param name="item"></param>
/// <param name="pos"></param>
public void ItemInstantiate(Item item, Vector3 pos)
public void ItemInstantiate(Item item, Vector3 pos, float popoutStrength)
{
GameObject tmpItem = Instantiate(droppedPrefab);
tmpItem.GetComponent<DroppedItem>().Init(item, pos);
PopoutGenerator(tmpItem, popoutStrength);
}
/// <summary>
/// Instantiate random addon by quality
/// </summary>
......@@ -178,6 +186,7 @@ public class InventoryManager : MonoBehaviour {
GameObject tmpItem = Instantiate(droppedPrefab);
tmpItem.GetComponent<DroppedItem>().Init(addon, pos);
}
/// <summary>
/// reset inventory canvas
/// </summary>
......@@ -185,6 +194,7 @@ public class InventoryManager : MonoBehaviour {
{
ui.SetOnPosition(itemList, addonList);
}
/// <summary>
/// call when item has been clicked
/// </summary>
......@@ -234,7 +244,7 @@ public class InventoryManager : MonoBehaviour {
{
if (itemList.Count > index)
{
ItemInstantiate(itemList[index], player.transform.position);
ItemInstantiate(itemList[index], player.transform.position, 1f);
itemList.RemoveAt(index);
if (index == ui.selectedItem)
ui.selectedItem = -1;
......
......@@ -58,7 +58,10 @@ public class LifeStoneManager : MonoBehaviour {
public float frameBorder;
void Start () {
public float popoutStrengthMultiplier;
public float popoutTime;
void Start () {
transform.position = new Vector3(lifeStoneLocation.x, lifeStoneLocation.y, 0);
frameSuper.GetComponent<LifeStoneFrame>().Init(frameSuper.transform, standardImage, lifeStoneRowNum, lifeStoneSize, sprites, frameBorder);
lifeStoneArray = new int[50, 3];
......@@ -84,9 +87,35 @@ public class LifeStoneManager : MonoBehaviour {
frameSuper.GetComponent<LifeStoneFrame>().AddRow(lifeStoneRowNum);
}
public void InstantiatePotion(Vector3 pos)
public void InstantiatePotion(Vector3 pos, float popoutStrength)
{
PopoutGenerator(Instantiate(goldPotionPrefab, pos, Quaternion.identity), popoutStrength);
}
IEnumerator PopoutCoroutine(GameObject obj)
{
float endTime = Time.time + popoutTime;
Vector2 orgScale = obj.transform.localScale;
SpriteRenderer[] sprtArr = obj.GetComponents<SpriteRenderer>();
while (Time.time < endTime)
{
obj.transform.localScale = (1 - ((endTime - Time.time) / popoutTime)) * orgScale;
foreach (SpriteRenderer sprt in sprtArr)
sprt.color = new Color(sprt.color.r, sprt.color.g, sprt.color.b, 1 - ((endTime - Time.time) / popoutTime));
yield return null;
}
obj.transform.localScale = orgScale;
foreach (SpriteRenderer sprt in sprtArr)
sprt.color = new Color(sprt.color.r, sprt.color.g, sprt.color.b, 1f);
}
void PopoutGenerator(GameObject obj, float popoutStrength)
{
Instantiate(goldPotionPrefab, pos, Quaternion.identity);
popoutStrength *= popoutStrengthMultiplier;
float angle = Mathf.Deg2Rad * Random.Range(60f, 120f);
obj.GetComponent<Rigidbody2D>().velocity = new Vector2(Mathf.Cos(angle), Mathf.Sin(angle)) * popoutStrength;
StartCoroutine(PopoutCoroutine(obj));
}
/// <summary>
......@@ -94,25 +123,29 @@ public class LifeStoneManager : MonoBehaviour {
/// </summary>
/// <param name="info"></param>
/// <param name="pos"></param>
public void InstantiateDroppedLifeStone(Vector2Int size, int num, float goldPer, int ameNum, Vector3 pos)
public void InstantiateDroppedLifeStone(Vector2Int size, int num, float goldPer, int ameNum, Vector3 pos, float popoutStrength)
{
GameObject tmpObj = Instantiate(droppedLifeStonePrefab);
tmpObj.GetComponent<DroppedLifeStone>().Init(CreateLifeStoneInfo(size, num, goldPer, ameNum), pos);
PopoutGenerator(tmpObj, popoutStrength);
}
public void InstantiateDroppedLifeStone(Vector2Int size, float goldPer, int ameNum, Vector3 pos)
public void InstantiateDroppedLifeStone(Vector2Int size, float goldPer, int ameNum, Vector3 pos, float popoutStrength)
{
GameObject tmpObj = Instantiate(droppedLifeStonePrefab);
tmpObj.GetComponent<DroppedLifeStone>().Init(CreateLifeStoneInfo(size, goldPer, ameNum), pos);
PopoutGenerator(tmpObj, popoutStrength);
}
public void InstantiateDroppedLifeStone(int num, float goldPer, int ameNum, Vector3 pos)
public void InstantiateDroppedLifeStone(int num, float goldPer, int ameNum, Vector3 pos, float popoutStrength)
{
GameObject tmpObj = Instantiate(droppedLifeStonePrefab);
tmpObj.GetComponent<DroppedLifeStone>().Init(CreateLifeStoneInfo(num, goldPer, ameNum), pos);
PopoutGenerator(tmpObj, popoutStrength);
}
public void InstantiateDroppedLifeStone(LifeStoneInfo info, Vector3 pos)
public void InstantiateDroppedLifeStone(LifeStoneInfo info, Vector3 pos, float popoutStrength)
{
GameObject tmpObj = Instantiate(droppedLifeStonePrefab);
tmpObj.GetComponent<DroppedLifeStone>().Init(info, pos);
PopoutGenerator(tmpObj, popoutStrength);
}
/// <summary>
......@@ -324,7 +357,8 @@ public class LifeStoneManager : MonoBehaviour {
}
InstantiateDroppedLifeStone(CreateLifeStoneInfo(
new LifeStoneInfo(new Vector2Int(pSize.x, pSize.y - cutRow), new string(newFill))),
GameObject.Find("Player").transform.position + new Vector3(droppedLifeStonePrefab.GetComponent<DroppedLifeStone>().unitSprite.GetComponent<SpriteRenderer>().bounds.size.x * i,0,0));
GameObject.Find("Player").transform.position + new Vector3(droppedLifeStonePrefab.GetComponent<DroppedLifeStone>().unitSprite.GetComponent<SpriteRenderer>().bounds.size.x * i,0,0),
1f);
}
}
}
......
......@@ -18,7 +18,7 @@ public class LifeStoneTest : MonoBehaviour {
public void push()
{
uii.InstantiateDroppedLifeStone(Convert.ToInt32(numText.GetComponent<InputField>().text), Convert.ToSingle(goldPerText.GetComponent<InputField>().text), Convert.ToInt32(ameNumText.GetComponent<InputField>().text),GameObject.Find("Player").transform.position);
uii.InstantiateDroppedLifeStone(Convert.ToInt32(numText.GetComponent<InputField>().text), Convert.ToSingle(goldPerText.GetComponent<InputField>().text), Convert.ToInt32(ameNumText.GetComponent<InputField>().text),GameObject.Find("Player").transform.position,1f);
}
public void gold()
{
......@@ -42,6 +42,6 @@ public class LifeStoneTest : MonoBehaviour {
}
public void goldPotion()
{
uii.InstantiatePotion(GameObject.Find("Player").transform.position);
uii.InstantiatePotion(GameObject.Find("Player").transform.position, 1f);
}
}
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