Changed to 3D graphics, Adapted House and Chest

This commit is contained in:
TAASONI3
2023-04-27 23:12:11 +02:00
parent c32e634c02
commit 6dc7063cec
124 changed files with 8553 additions and 5097 deletions

52
Assets/Scripts/Chest.cs Normal file
View 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;
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 542700d30d7f9c98a910fb33e30c4174
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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";

View File

@@ -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
View 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;
}
}
}

View File

@@ -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);

View File

@@ -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();

View File

@@ -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);
}
}
}

View File

@@ -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;

View File

@@ -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
View 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);
}
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: eb4fe9eb7f26d1fd0a9e8a183c36b300
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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()