Changed to 3D graphics, Adapted House and Chest
This commit is contained in:
52
Assets/Scripts/Chest.cs
Normal file
52
Assets/Scripts/Chest.cs
Normal file
@@ -0,0 +1,52 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using System;
|
||||
|
||||
namespace Assets.Scripts
|
||||
{
|
||||
public class Chest : MonoBehaviour
|
||||
{
|
||||
bool gotItem;
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
gotItem = false;
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void interact(){
|
||||
if (gotItem)
|
||||
{
|
||||
GameObject.Find("UIHandler").GetComponent<UIHandler>().showMessage("ERROR;You already looted this chest");
|
||||
}
|
||||
else
|
||||
{
|
||||
gameObject.transform.parent.Find("Lid").GetComponent<Animator>().Play("ChestOpen");
|
||||
Item item;
|
||||
int luck = GameObject.Find("Player").GetComponent<Player>().getStats()[11];
|
||||
int type = new System.Random().Next(3);
|
||||
switch (type)
|
||||
{
|
||||
case 0:
|
||||
// Maybe add luck to increase chance for equipment
|
||||
item = new Equipment(luck);
|
||||
break;
|
||||
case 1:
|
||||
item = new Book(luck);
|
||||
break;
|
||||
default:
|
||||
item = new Item(luck);
|
||||
break;
|
||||
}
|
||||
GameObject.Find("Inventory").GetComponent<Inventory>().addItem(item);
|
||||
}
|
||||
gotItem = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Chest.cs.meta
Normal file
11
Assets/Scripts/Chest.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 542700d30d7f9c98a910fb33e30c4174
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -227,8 +227,8 @@ public class ContentGenerator : MonoBehaviour
|
||||
case "(MiniBoss)":
|
||||
name = "SlimeMiniBossIdle";
|
||||
break;
|
||||
case "(Water)":
|
||||
name = "SlimeWaterIdle";
|
||||
case "(Forest)":
|
||||
name = "SlimeForestIdle";
|
||||
break;
|
||||
case "(Mage)":
|
||||
name = "SlimeMageIdle";
|
||||
|
||||
@@ -65,15 +65,11 @@ public class Controls : MonoBehaviour
|
||||
case "NPC":
|
||||
target.GetComponent<NPC>().interact();
|
||||
break;
|
||||
case "House":
|
||||
currentHouse = target;
|
||||
target.GetComponent<House>().interact();
|
||||
break;
|
||||
case "Door":
|
||||
currentHouse.GetComponent<House>().leaveHouse();
|
||||
target.GetComponent<Door>().interact();
|
||||
break;
|
||||
case "Chest":
|
||||
currentHouse.GetComponent<House>().getItem();
|
||||
target.GetComponent<Chest>().interact();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
43
Assets/Scripts/Door.cs
Normal file
43
Assets/Scripts/Door.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using System;
|
||||
|
||||
namespace Assets.Scripts
|
||||
{
|
||||
public class Door : MonoBehaviour
|
||||
{
|
||||
bool hasInteracted;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
hasInteracted = false;
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void interact()
|
||||
{
|
||||
if (hasInteracted)
|
||||
{
|
||||
GameObject.Find("UIHandler").GetComponent<UIHandler>().showMessage("ERROR;You already tried this house");
|
||||
}
|
||||
else
|
||||
{
|
||||
int openChance = new System.Random().Next(4);
|
||||
if(openChance == 0){
|
||||
gameObject.GetComponent<Animator>().Play("DoorOpen");
|
||||
}
|
||||
else{
|
||||
GameObject.Find("UIHandler").GetComponent<UIHandler>().showMessage("ERROR;This house is locked.");
|
||||
}
|
||||
}
|
||||
hasInteracted = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -51,8 +51,8 @@ namespace Assets.Scripts
|
||||
case "SlimeWarriorIdle":
|
||||
enemyname = "Slime (Warrior)";
|
||||
break;
|
||||
case "SlimeWaterIdle":
|
||||
enemyname = "Slime (Water)";
|
||||
case "SlimeForestIdle":
|
||||
enemyname = "Slime (Forest)";
|
||||
break;
|
||||
case "SlimeBossIdle":
|
||||
enemyname = "Slime (Boss)";
|
||||
@@ -81,8 +81,8 @@ namespace Assets.Scripts
|
||||
case "Slime (Warrior)":
|
||||
slime = factory.generateWarriorSlime(player);
|
||||
break;
|
||||
case "Slime (Water)":
|
||||
slime = factory.generateWaterSlime(player);
|
||||
case "Slime (Forest)":
|
||||
slime = factory.generateForestSlime(player);
|
||||
break;
|
||||
case "Slime (Boss)":
|
||||
slime = factory.generateBossSlime(player);
|
||||
|
||||
@@ -19,6 +19,7 @@ public class Fight : MonoBehaviour
|
||||
this.player = player;
|
||||
enemy.GetComponent<Enemy>().scaleEnemy(player.GetComponent<Player>());
|
||||
enemy.transform.rotation = player.transform.rotation;
|
||||
enemy.transform.RotateAround (enemy.transform.position, enemy.transform.up, 180f);
|
||||
|
||||
uihandler = GameObject.Find("UIHandler").GetComponent<UIHandler>();
|
||||
uihandler.openFight();
|
||||
|
||||
@@ -1,86 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using System;
|
||||
|
||||
namespace Assets.Scripts
|
||||
{
|
||||
public class House : MonoBehaviour
|
||||
{
|
||||
bool hasInteracted;
|
||||
public GameObject houseObject;
|
||||
public Vector3 playerPosition;
|
||||
GameObject houseInstance;
|
||||
bool gotItem;
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
hasInteracted = false;
|
||||
gotItem = false;
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void interact()
|
||||
{
|
||||
if (hasInteracted)
|
||||
{
|
||||
GameObject.Find("UIHandler").GetComponent<UIHandler>().showMessage("ERROR;You already entered this house");
|
||||
}
|
||||
else
|
||||
{
|
||||
int openChance = new System.Random().Next(4);
|
||||
if(openChance == 0){
|
||||
playerPosition = GameObject.Find("Player").transform.position;
|
||||
houseInstance = Instantiate(houseObject);
|
||||
houseInstance.transform.position = new Vector3(playerPosition.x, 50, playerPosition.z);
|
||||
houseInstance.transform.localScale = new Vector3(1, 1, 1);
|
||||
GameObject.Find("Player").transform.position = new Vector3(playerPosition.x, 51, playerPosition.z);
|
||||
}
|
||||
else{
|
||||
GameObject.Find("UIHandler").GetComponent<UIHandler>().showMessage("ERROR;This house is locked.");
|
||||
}
|
||||
}
|
||||
hasInteracted = true;
|
||||
}
|
||||
|
||||
public void getItem()
|
||||
{
|
||||
if (gotItem)
|
||||
{
|
||||
GameObject.Find("UIHandler").GetComponent<UIHandler>().showMessage("ERROR;You already looted this chest");
|
||||
}
|
||||
else
|
||||
{
|
||||
Item item;
|
||||
int luck = GameObject.Find("Player").GetComponent<Player>().getStats()[11];
|
||||
int type = new System.Random().Next(3);
|
||||
switch (type)
|
||||
{
|
||||
case 0:
|
||||
// Maybe add luck to increase chance for equipment
|
||||
item = new Equipment(luck);
|
||||
break;
|
||||
case 1:
|
||||
item = new Book(luck);
|
||||
break;
|
||||
default:
|
||||
item = new Item(luck);
|
||||
break;
|
||||
}
|
||||
GameObject.Find("Inventory").GetComponent<Inventory>().addItem(item);
|
||||
}
|
||||
gotItem = true;
|
||||
}
|
||||
|
||||
public void leaveHouse()
|
||||
{
|
||||
GameObject.Find("Player").transform.position = playerPosition;
|
||||
Destroy(houseInstance);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,9 +6,9 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace Assets.Scripts.Slimes
|
||||
{
|
||||
class WaterSlime : BasicSlime
|
||||
class ForestSlime : BasicSlime
|
||||
{
|
||||
public WaterSlime(Player player) : base(player)
|
||||
public ForestSlime(Player player) : base(player)
|
||||
{
|
||||
//intelligence = intelligence;
|
||||
//strength = strength;
|
||||
@@ -33,9 +33,9 @@ namespace Assets.Scripts.Slimes
|
||||
return new WarriorSlime(player);
|
||||
}
|
||||
|
||||
public WaterSlime generateWaterSlime(Player player)
|
||||
public ForestSlime generateForestSlime(Player player)
|
||||
{
|
||||
return new WaterSlime(player);
|
||||
return new ForestSlime(player);
|
||||
}
|
||||
|
||||
public BossSlime generateBossSlime(Player player)
|
||||
|
||||
29
Assets/Scripts/Sun.cs
Normal file
29
Assets/Scripts/Sun.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class Sun : MonoBehaviour
|
||||
{
|
||||
// Assuming 60fps, have to reduce tickspeed of the sun
|
||||
int counter = 0;
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
counter++;
|
||||
if(counter >= 60){
|
||||
counter = 0;
|
||||
//0.01f/s / 180f = 18000s -> 300m -> 5h ()
|
||||
gameObject.transform.eulerAngles = new Vector3(gameObject.transform.eulerAngles.x+0.01f,gameObject.transform.eulerAngles.y,gameObject.transform.eulerAngles.z);
|
||||
//Reset rotation to 0
|
||||
if(gameObject.transform.eulerAngles.x >= 360){
|
||||
gameObject.transform.eulerAngles = new Vector3(0,gameObject.transform.eulerAngles.y,gameObject.transform.eulerAngles.z);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Sun.cs.meta
Normal file
11
Assets/Scripts/Sun.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eb4fe9eb7f26d1fd0a9e8a183c36b300
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -34,23 +34,7 @@ public class Tile : MonoBehaviour
|
||||
|
||||
public void Update()
|
||||
{
|
||||
GameObject obj;
|
||||
GameObject player = GameObject.Find("Player");
|
||||
for (int i = 0; i < gameObject.transform.childCount; i++)
|
||||
{
|
||||
obj = gameObject.transform.GetChild(i).gameObject;
|
||||
if (!obj.GetComponent<Renderer>().enabled )
|
||||
{
|
||||
if (!deadEnemies.Contains(obj))
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!obj.tag.Contains("House") && obj.tag.Contains("Object"))
|
||||
{
|
||||
obj.transform.LookAt(new Vector3(player.transform.position.x, obj.transform.position.y, player.transform.position.z));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void setBorders()
|
||||
|
||||
Reference in New Issue
Block a user