improved save/load mechanic.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using Assets.Scripts.InteractableObjects;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
@@ -49,7 +50,7 @@ public class ContentGenerator : MonoBehaviour
|
||||
}
|
||||
else if (chance >= 50 && chance < 90)
|
||||
{
|
||||
if (rand.Next(0,2) == 0)
|
||||
if (rand.Next(0, 2) == 0)
|
||||
{
|
||||
return trees[rand.Next(0, trees.Length)];
|
||||
}
|
||||
@@ -62,7 +63,7 @@ public class ContentGenerator : MonoBehaviour
|
||||
{
|
||||
return generateEnemy();
|
||||
}
|
||||
else if(chance >= 95 && chance < 99)
|
||||
else if (chance >= 95 && chance < 99)
|
||||
{
|
||||
return boss;
|
||||
}
|
||||
@@ -187,7 +188,7 @@ public class ContentGenerator : MonoBehaviour
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(name.ToLower().Contains("tree"))
|
||||
else if (name.ToLower().Contains("tree"))
|
||||
{
|
||||
foreach (GameObject tree in trees)
|
||||
{
|
||||
@@ -198,10 +199,12 @@ public class ContentGenerator : MonoBehaviour
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(name.ToLower().Contains("npc")){
|
||||
else if (name.ToLower().Contains("npc"))
|
||||
{
|
||||
result = npc;
|
||||
}
|
||||
else if(name.ToLower().Contains("house")){
|
||||
else if (name.ToLower().Contains("house"))
|
||||
{
|
||||
result = house;
|
||||
}
|
||||
return result;
|
||||
@@ -210,51 +213,20 @@ public class ContentGenerator : MonoBehaviour
|
||||
public GameObject loadEnemy(JToken json)
|
||||
{
|
||||
GameObject result = gameObject;
|
||||
string name = json["enemyname"].ToString().Replace("(Clone)", "");
|
||||
if (name.Split(' ').Length > 1)
|
||||
SlimeType slimeType = (SlimeType)System.Enum.Parse(typeof(SlimeType), json["enemytype"].ToString().ToUpper());
|
||||
foreach (GameObject enemy in enemies)
|
||||
{
|
||||
name = name.Split(' ')[1];
|
||||
}
|
||||
if (name == "(Boss)")
|
||||
{
|
||||
result = boss;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (name)
|
||||
if (enemy.GetComponent<Enemy>().slimeType == slimeType)
|
||||
{
|
||||
case "Metal":
|
||||
name = "SlimeMetalIdle";
|
||||
break;
|
||||
case "MiniBoss":
|
||||
name = "SlimeMiniBossIdle";
|
||||
break;
|
||||
case "Forest":
|
||||
name = "SlimeForestIdle";
|
||||
break;
|
||||
case "Mage":
|
||||
name = "SlimeMageIdle";
|
||||
break;
|
||||
case "Warrior":
|
||||
name = "SlimeWarriorIdle";
|
||||
break;
|
||||
default:
|
||||
name = "SlimeBaseIdle";
|
||||
break;
|
||||
}
|
||||
foreach (GameObject enemy in enemies)
|
||||
{
|
||||
if (enemy.name == name)
|
||||
{
|
||||
result = enemy;
|
||||
break;
|
||||
}
|
||||
result = enemy;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public GameObject generateCityTileContent(){
|
||||
public GameObject generateCityTileContent()
|
||||
{
|
||||
int chance = rand.Next(1, 101);
|
||||
if (chance < 10)
|
||||
{
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace Assets.Scripts.InteractableObjects
|
||||
result = result + FileHandler.generateJSON("objectname", "\"" + transform.parent.name + "\",\r\n");
|
||||
result = result + FileHandler.generateJSON("hasInteracted", "\"" + hasInteracted + "\",\r\n");
|
||||
result = result + FileHandler.generateJSON("isOpen", "\"" + isOpen + "\",\r\n");
|
||||
result = result + FileHandler.generateJSON("gotItem", "\"" + transform.parent.Find("chest").Find("Body").GetComponent<Chest>().saveChest() + "\"");
|
||||
result = result + FileHandler.generateJSON("gotItem", "\"" + transform.parent.Find("chest").GetComponent<Chest>().saveChest() + "\"");
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace Assets.Scripts.Player
|
||||
if (hit.collider.gameObject.tag.ToLower().Contains("object"))
|
||||
{
|
||||
string obj = hit.collider.gameObject.tag.Split(':')[1];
|
||||
if (hit.distance <= 10 && !obj.ToLower().Equals("house"))
|
||||
if (hit.distance <= 3 && !obj.ToLower().Equals("house"))
|
||||
{
|
||||
if (!uihandler.isPlayerInFight())
|
||||
{
|
||||
|
||||
@@ -184,6 +184,7 @@ public class Tile : MonoBehaviour
|
||||
position = new Vector3(float.Parse(obj["position"].ToString().Split('/')[0]), float.Parse(obj["position"].ToString().Split('/')[1]), float.Parse(obj["position"].ToString().Split('/')[2]));
|
||||
spawnedObject = Instantiate(spawnedObject, position, Quaternion.identity);
|
||||
spawnedObject.transform.parent = gameObject.transform;
|
||||
spawnedObject.transform.localScale *= 10;
|
||||
if (spawnedObject.tag.Contains("Enemy"))
|
||||
{
|
||||
aliveEnemies.Add(spawnedObject);
|
||||
|
||||
@@ -95,7 +95,6 @@ public class WorldGenerator : MonoBehaviour
|
||||
noise.applyNoise(newTile, tiles, pos);
|
||||
newTile.GetComponent<Tile>().generateTile(pos, (TileType)Enum.Parse(typeof(TileType), newTile.name.Split("_")[0]));
|
||||
tiles.Add(pos, newTile);
|
||||
GameObject.Find("QuestLog").GetComponent<QuestLog>().updateQuests("find", newTile, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user