Added inventory load, fixed inventory save, v1.3.0
This commit is contained in:
parent
22137fffde
commit
349e023cbf
@ -22,7 +22,7 @@ namespace Assets.Scripts
|
||||
sw.Close();
|
||||
}
|
||||
|
||||
public static void loadGame(Player player, WorldGenerator worldGenerator)
|
||||
public static void loadGame(Player player, WorldGenerator worldGenerator, Inventory inventory)
|
||||
{
|
||||
if (hasSaveFile())
|
||||
{
|
||||
@ -35,6 +35,7 @@ namespace Assets.Scripts
|
||||
JObject json = JsonConvert.DeserializeObject<JObject>(jsonString);
|
||||
player.loadPlayer(json["player"]);
|
||||
worldGenerator.loadWorld(json["world"]);
|
||||
inventory.loadInventory(json["inventory"]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
@ -33,15 +35,7 @@ namespace Assets.Scripts
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
statBoost = new Dictionary<string, int>();
|
||||
statBoost.Add("HP", 0);
|
||||
statBoost.Add("MP", 0);
|
||||
statBoost.Add("HPR", 0);
|
||||
statBoost.Add("MPR", 0);
|
||||
statBoost.Add("STR", 0);
|
||||
statBoost.Add("DEX", 0);
|
||||
statBoost.Add("INT", 0);
|
||||
statBoost.Add("LCK", 0);
|
||||
createStatBoost();
|
||||
tooltip = GameObject.Find("TooltipHandler").GetComponent<TooltipHandler>();
|
||||
itemDisplay.transform.localScale = new Vector3(0,0,0);
|
||||
changeCurrentBag(0);
|
||||
@ -54,6 +48,22 @@ namespace Assets.Scripts
|
||||
checkEquipColors();
|
||||
}
|
||||
|
||||
private void createStatBoost()
|
||||
{
|
||||
if (statBoost == null)
|
||||
{
|
||||
statBoost = new Dictionary<string, int>();
|
||||
statBoost.Add("HP", 0);
|
||||
statBoost.Add("MP", 0);
|
||||
statBoost.Add("HPR", 0);
|
||||
statBoost.Add("MPR", 0);
|
||||
statBoost.Add("STR", 0);
|
||||
statBoost.Add("DEX", 0);
|
||||
statBoost.Add("INT", 0);
|
||||
statBoost.Add("LCK", 0);
|
||||
}
|
||||
}
|
||||
|
||||
public void addItem(Item item)
|
||||
{
|
||||
if (item != null)
|
||||
@ -217,18 +227,7 @@ namespace Assets.Scripts
|
||||
|
||||
public Dictionary<string, int> getEquipmentBonus()
|
||||
{
|
||||
if (statBoost == null)
|
||||
{
|
||||
statBoost = new Dictionary<string, int>();
|
||||
statBoost.Add("HP", 0);
|
||||
statBoost.Add("MP", 0);
|
||||
statBoost.Add("HPR", 0);
|
||||
statBoost.Add("MPR", 0);
|
||||
statBoost.Add("STR", 0);
|
||||
statBoost.Add("DEX", 0);
|
||||
statBoost.Add("INT", 0);
|
||||
statBoost.Add("LCK", 0);
|
||||
}
|
||||
createStatBoost();
|
||||
return statBoost;
|
||||
}
|
||||
|
||||
@ -307,5 +306,79 @@ namespace Assets.Scripts
|
||||
result = result + "\r\n}";
|
||||
return result;
|
||||
}
|
||||
|
||||
public void loadInventory(JToken json)
|
||||
{
|
||||
loadEquipment(json["equipment"]);
|
||||
var jsonData = JObject.Parse(json["bags"].ToString()).Children();
|
||||
List<JToken> tokens = jsonData.Children().ToList();
|
||||
int counter = 0;
|
||||
foreach (JToken slot in tokens)
|
||||
{
|
||||
if (slot["bag1"].ToString() != "empty")
|
||||
{
|
||||
slots[counter].GetComponent<InventorySlot>().loadSlot(slot["bag1"], 0);
|
||||
}
|
||||
if (slot["bag2"].ToString() != "empty")
|
||||
{
|
||||
slots[counter].GetComponent<InventorySlot>().loadSlot(slot["bag2"], 1);
|
||||
}
|
||||
if (slot["bag3"].ToString() != "empty")
|
||||
{
|
||||
slots[counter].GetComponent<InventorySlot>().loadSlot(slot["bag3"], 2);
|
||||
}
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
|
||||
private void loadEquipment(JToken slot)
|
||||
{
|
||||
GameObject equip = head;
|
||||
string slotname = "";
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
case 0:
|
||||
equip = head;
|
||||
slotname = "head";
|
||||
break;
|
||||
case 1:
|
||||
equip = rightHand;
|
||||
slotname = "rightHand";
|
||||
break;
|
||||
case 2:
|
||||
equip = leftHand;
|
||||
slotname = "leftHand";
|
||||
break;
|
||||
case 3:
|
||||
equip = amulet;
|
||||
slotname = "amulet";
|
||||
break;
|
||||
case 4:
|
||||
equip = feet;
|
||||
slotname = "feet";
|
||||
break;
|
||||
case 5:
|
||||
equip = shoulders;
|
||||
slotname = "shoulders";
|
||||
break;
|
||||
case 6:
|
||||
equip = chest;
|
||||
slotname = "chest";
|
||||
break;
|
||||
case 7:
|
||||
equip = ring;
|
||||
slotname = "ring";
|
||||
break;
|
||||
}
|
||||
if (slot[slotname].ToString() != "empty")
|
||||
{
|
||||
equip.GetComponent<InventorySlot>().loadSlot(slot[slotname], -1);
|
||||
createStatBoost();
|
||||
calculateStatBoost(equip.GetComponent<InventorySlot>().getEquip().getAttributes(), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,3 +1,4 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
@ -275,5 +276,18 @@ namespace Assets.Scripts
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public void loadSlot(JToken json, int bag)
|
||||
{
|
||||
if (bag == -1)
|
||||
{
|
||||
equip = new Item(json);
|
||||
}
|
||||
else
|
||||
{
|
||||
items[bag] = new Item(json);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,3 +1,5 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
@ -34,6 +36,60 @@ namespace Assets.Scripts
|
||||
}
|
||||
calculateAttributes(luck, numberOfAttributes);
|
||||
place = (ItemPlace)rand.Next(8);
|
||||
editName();
|
||||
setColor();
|
||||
loadImage();
|
||||
}
|
||||
|
||||
public Item(JToken json)
|
||||
{
|
||||
attributes = new Dictionary<string, int>();
|
||||
rarity = (ItemRarity)Enum.Parse(typeof(ItemRarity), json["rarity"].ToString());
|
||||
place = (ItemPlace)Enum.Parse(typeof(ItemPlace), json["place"].ToString());
|
||||
itemName = json["itemName"].ToString();
|
||||
loadAttributes(json);
|
||||
setColor();
|
||||
loadImage();
|
||||
}
|
||||
|
||||
private void loadAttributes(JToken json)
|
||||
{
|
||||
if (json["MPR"] != null)
|
||||
{
|
||||
attributes.Add("MPR", int.Parse(json["MPR"].ToString()));
|
||||
}
|
||||
if (json["HPR"] != null)
|
||||
{
|
||||
attributes.Add("HPR", int.Parse(json["HPR"].ToString()));
|
||||
}
|
||||
if (json["MP"] != null)
|
||||
{
|
||||
attributes.Add("MP", int.Parse(json["MP"].ToString()));
|
||||
}
|
||||
if (json["HP"] != null)
|
||||
{
|
||||
attributes.Add("HP", int.Parse(json["HP"].ToString()));
|
||||
}
|
||||
if (json["STR"] != null)
|
||||
{
|
||||
attributes.Add("STR", int.Parse(json["STR"].ToString()));
|
||||
}
|
||||
if (json["DEX"] != null)
|
||||
{
|
||||
attributes.Add("DEX", int.Parse(json["DEX"].ToString()));
|
||||
}
|
||||
if (json["INT"] != null)
|
||||
{
|
||||
attributes.Add("INT", int.Parse(json["INT"].ToString()));
|
||||
}
|
||||
if (json["LCK"] != null)
|
||||
{
|
||||
attributes.Add("LCK", int.Parse(json["LCK"].ToString()));
|
||||
}
|
||||
}
|
||||
|
||||
private void editName()
|
||||
{
|
||||
string replacement = "";
|
||||
if (place == ItemPlace.LEFTHAND)
|
||||
{
|
||||
@ -90,12 +146,6 @@ namespace Assets.Scripts
|
||||
}
|
||||
itemName = itemName.ToLower();
|
||||
itemName = char.ToUpper(itemName[0]) + itemName.Substring(1);
|
||||
loadImage();
|
||||
}
|
||||
|
||||
public Item(string save)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void calculateRarity(int luck)
|
||||
@ -104,22 +154,37 @@ namespace Assets.Scripts
|
||||
if (number + luck < 80)
|
||||
{
|
||||
rarity = ItemRarity.COMMON;
|
||||
rarityColor = new Color32(0,255,20,255);
|
||||
}
|
||||
else if (number + luck >= 80 && number + luck < 100)
|
||||
{
|
||||
rarity = ItemRarity.RARE;
|
||||
rarityColor = new Color32(0,100,255, 255);
|
||||
}
|
||||
else if (number + luck >= 100 && number + luck < 120)
|
||||
{
|
||||
rarity = ItemRarity.EPIC;
|
||||
rarityColor = new Color32(255,0,230, 255);
|
||||
}
|
||||
else if (number + luck >= 120)
|
||||
{
|
||||
rarity = ItemRarity.LEGENDARY;
|
||||
rarityColor = new Color32(255,230,0, 255);
|
||||
}
|
||||
}
|
||||
|
||||
private void setColor()
|
||||
{
|
||||
switch (rarity)
|
||||
{
|
||||
case ItemRarity.COMMON:
|
||||
rarityColor = new Color32(0, 255, 20, 255);
|
||||
break;
|
||||
case ItemRarity.RARE:
|
||||
rarityColor = new Color32(0, 100, 255, 255);
|
||||
break;
|
||||
case ItemRarity.EPIC:
|
||||
rarityColor = new Color32(255, 0, 230, 255);
|
||||
break;
|
||||
case ItemRarity.LEGENDARY:
|
||||
rarityColor = new Color32(255, 230, 0, 255);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -306,6 +371,7 @@ namespace Assets.Scripts
|
||||
int counter = 0;
|
||||
result = result + FileHandler.generateJSON("rarity", "\"" + rarity + "\"") + ",\r\n";
|
||||
result = result + FileHandler.generateJSON("place", "\"" + place + "\"") + ",\r\n";
|
||||
result = result + FileHandler.generateJSON("itemName", "\"" + itemName + "\"") + ",\r\n";
|
||||
foreach (string key in attributes.Keys)
|
||||
{
|
||||
result = result + FileHandler.generateJSON(key, attributes[key]);
|
||||
|
||||
@ -516,7 +516,7 @@ namespace Assets.Scripts
|
||||
}
|
||||
else
|
||||
{
|
||||
FileHandler.loadGame(GameObject.Find("Player").GetComponent<Player>(), GameObject.Find("WorldGenerator").GetComponent<WorldGenerator>());
|
||||
FileHandler.loadGame(GameObject.Find("Player").GetComponent<Player>(), GameObject.Find("WorldGenerator").GetComponent<WorldGenerator>(), GameObject.Find("Inventory").GetComponent<Inventory>());
|
||||
hideOtherElements(introduction);
|
||||
introduction.transform.localScale = new Vector3(0, 0, 0);
|
||||
tutorial.transform.localScale = new Vector3(0,0,0);
|
||||
|
||||
10
save.json
10
save.json
@ -3,7 +3,7 @@
|
||||
"playername": "Nicola",
|
||||
"maxHealth": 110,
|
||||
"maxSecondary": 10,
|
||||
"secondary": 15,
|
||||
"secondary": 10,
|
||||
"health": 110,
|
||||
"strength": 7,
|
||||
"dexterity": 5,
|
||||
@ -43,14 +43,14 @@
|
||||
},
|
||||
"bags": {
|
||||
"slot0": {
|
||||
"bag1": "empty",
|
||||
"bag2": "empty",
|
||||
"bag3": {
|
||||
"bag1": {
|
||||
"rarity": "COMMON",
|
||||
"place": "BOOTS",
|
||||
"itemName": "Common boots of mana",
|
||||
"MP": 12
|
||||
}
|
||||
},
|
||||
"bag2": "empty",
|
||||
"bag3": "empty"
|
||||
},
|
||||
"slot1": {
|
||||
"bag1": "empty",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user