Monsters + inventory working

This commit is contained in:
Darrel Marek 2018-04-26 06:59:29 -05:00
parent 1001ba58a3
commit 53a6f8c3f1
18 changed files with 143 additions and 15 deletions

View file

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 4 KiB

View file

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

View file

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -36,9 +36,10 @@ public class DragAndDrop : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndD
public void OnEndDrag (PointerEventData eventData)
{
_offsetToMouse = Vector3.zero;
//Debug.Log (Input.mousePosition.y);
if (Input.mousePosition.y < 75)
if (Input.mousePosition.y < 75) {
DraggedInstance.SetActive (false);
inventory.AddItem (DraggedInstance.name);
}
DraggedInstance = null;
}

View file

@ -1,7 +1,7 @@
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.Text;
public class Inventory : MonoBehaviour
{
@ -9,19 +9,32 @@ public class Inventory : MonoBehaviour
public Item[] items = new Item[numItemSlots];
public const int numItemSlots = 25;
private static bool created = false;
void Awake()
{
if (!created)
//PlayerPrefs.SetString("inventory", "");
string savedString = PlayerPrefs.GetString("inventory");
string[] itemNames = savedString.Split(' ');
Debug.Log (itemNames [itemNames.Length-1]);
for (int i = 0; i < itemNames.Length - 1; i++)
{
DontDestroyOnLoad(this.gameObject);
created = true;
Sprite sprite = (Resources.Load<Sprite>(itemNames[i] + "_sprite"));
Item itm = new Item ();
itm.name = itemNames [i];
itm.sprite = sprite;
items[i] = itm;
itemImages[i].sprite = itm.sprite;
itemImages[i].enabled = true;
}
}
public void AddItem(Item itemToAdd)
{
StringBuilder invList = new StringBuilder ();
invList.Append(PlayerPrefs.GetString ("inventory"));
invList.Append(itemToAdd.name).Append(" ");
PlayerPrefs.SetString ("inventory", invList.ToString());
for (int i = 0; i < items.Length; i++)
{
if (items[i] == null)
@ -34,13 +47,42 @@ public class Inventory : MonoBehaviour
}
}
public void RemoveItem (Item itemToRemove)
public void AddItem(string itemName)
{
GameObject instance = (GameObject)Instantiate(Resources.Load(itemToRemove.name));
StringBuilder invList = new StringBuilder ();
invList.Append(PlayerPrefs.GetString ("inventory"));
invList.Append(itemName).Append(" ");
PlayerPrefs.SetString ("inventory", invList.ToString());
for (int i = 0; i < items.Length; i++)
{
if (items[i] == itemToRemove)
if (items[i] == null)
{
Sprite sprite = (Resources.Load<Sprite>(itemName + "_sprite"));
Item itm = new Item ();
itm.name = itemName;
itm.sprite = sprite;
items[i] = itm;
itemImages[i].sprite = itm.sprite;
itemImages[i].enabled = true;
return;
}
}
}
public void RemoveItem (Item itemToRemove)
{
StringBuilder invList = new StringBuilder ();
invList.Append(PlayerPrefs.GetString ("inventory"));
int index = invList.ToString ().IndexOf (itemToRemove.name + " ");
invList.Remove(index, (itemToRemove.name + " ").Length);
PlayerPrefs.SetString ("inventory", invList.ToString());
GameObject instance = (GameObject)Instantiate(Resources.Load(itemToRemove.name));
instance.name = itemToRemove.name;
for (int i = 0; i < items.Length; i++)
{
if (items[i].name == itemToRemove.name)
{
items[i] = null;
itemImages[i].sprite = null;
@ -49,4 +91,30 @@ public class Inventory : MonoBehaviour
}
}
}
public void RemoveItem (string itemName)
{
StringBuilder invList = new StringBuilder ();
invList.Append(PlayerPrefs.GetString ("inventory"));
int index = invList.ToString ().IndexOf (itemName + " ");
invList.Remove(index, (itemName + " ").Length);
PlayerPrefs.SetString ("inventory", invList.ToString());
GameObject instance = (GameObject)Instantiate(Resources.Load(itemName));
instance.GetComponent<DragAndDrop> ().inventory = this;
instance.name = itemName;
for (int i = 0; i < items.Length - 1; i++)
{
if (items [i] != null) {
Debug.Log (items [i].name + " == " + itemName);
if (items [i].name == itemName) {
items [i] = null;
itemImages [i].sprite = null;
itemImages [i].enabled = false;
return;
}
}
}
}
}

View file

@ -0,0 +1,34 @@
using UnityEngine;
using UnityEngine.EventSystems;
using Image = UnityEngine.UI.Image;
public class ItemSlotBehavior : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
public static GameObject DraggedInstance;
public Inventory inventory;
Vector3 _startPosition;
Vector3 _offsetToMouse;
float _zDistanceToCamera;
#region Interface Implementations
public void OnBeginDrag (PointerEventData eventData)
{
DraggedInstance = gameObject;
Debug.Log ("Removing: " + DraggedInstance.GetComponent<Image> ().sprite.name.Remove (DraggedInstance.GetComponent<Image> ().sprite.name.Length - 7));
inventory.RemoveItem(DraggedInstance.GetComponent<Image>().sprite.name.Remove(DraggedInstance.GetComponent<Image>().sprite.name.Length-7));
}
public void OnDrag (PointerEventData eventData)
{
}
public void OnEndDrag (PointerEventData eventData)
{
}
#endregion
}

View file

@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: 062d9f417b017b445bd5b92d657b31d1
timeCreated: 1524730867
licenseType: Free
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -13,8 +13,7 @@ public class MonsterManager : MonoBehaviour {
void Start()
{
//inv = FindObjectOfType<Inventory> ();
inv.AddItem (item);
loadMonster();
}
public void showItems()
@ -30,13 +29,16 @@ public class MonsterManager : MonoBehaviour {
StringBuilder pos = new StringBuilder ();
string savedString;
string equippedString = "";
for (int i = 0; i < monsterParts.Length; i++) {
pos = new StringBuilder ();
pos.Append(GameObject.Find(monsterParts[i].name).transform.position.x).Append(" ").Append(GameObject.Find(monsterParts[i].name).transform.position.y).Append(" ").Append(GameObject.Find(monsterParts[i].name).transform.position.z);
equippedString = equippedString + monsterParts [i].name + " ";
savedString = pos.ToString ();
PlayerPrefs.SetString(SceneManager.GetActiveScene().name + monsterParts[i].name, savedString);
}
PlayerPrefs.SetString ("Equipped", equippedString);
/*
StringBuilder eyePos = new StringBuilder();
@ -78,8 +80,18 @@ public class MonsterManager : MonoBehaviour {
public void loadMonster ()
{
string savedString;
string[] values;
string equippedString = PlayerPrefs.GetString("Equipped");
string[] equipped = equippedString.Split (' ');
for (int i = 0; i < equipped.Length - 1; i++) {
string savedString = PlayerPrefs.GetString(SceneManager.GetActiveScene().name + equipped[i]);
string[] values = savedString.Split ();
GameObject instance = (GameObject)Instantiate(Resources.Load(equipped[i]));
instance.name = equipped [i];
instance.GetComponent<DragAndDrop> ().inventory = inv;
instance.transform.position = new Vector3(float.Parse(values[0]),float.Parse(values[1]),float.Parse(values[2]));
}
/*
string savedString = PlayerPrefs.GetString(SceneManager.GetActiveScene().name + "eyePosition");