Skip to content
Snippets Groups Projects
Commit 071f66ed authored by Karel Ševčík's avatar Karel Ševčík
Browse files

Merge branch 'beer_ai' into 'master'

Beer ai

See merge request !13
parents 0e805763 f019e356
No related branches found
No related tags found
1 merge request!13Beer ai
......@@ -15,7 +15,7 @@ GameObject:
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_StaticEditorFlags: 8
m_IsActive: 1
--- !u!4 &4655853085821256091
Transform:
......@@ -112,6 +112,10 @@ PrefabInstance:
propertyPath: m_Name
value: bench
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: c1ebb97f72fb7e348af8eb53221ac643, type: 3}
propertyPath: m_StaticEditorFlags
value: 8
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: c1ebb97f72fb7e348af8eb53221ac643, type: 3}
--- !u!4 &2083404612180048203 stripped
......
......@@ -12,7 +12,7 @@ GameObject:
- component: {fileID: 4182334956560875996}
- component: {fileID: 6114325857243205638}
m_Layer: 0
m_Name: Capsule
m_Name: Pena
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
......@@ -125,7 +125,7 @@ GameObject:
- component: {fileID: 5789683521475316761}
- component: {fileID: 32267312592104086}
m_Layer: 0
m_Name: Cylinder (1)
m_Name: Pivo
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
......@@ -207,7 +207,7 @@ GameObject:
- component: {fileID: 2380231329785497136}
- component: {fileID: 3999157089307231285}
m_Layer: 0
m_Name: Cylinder
m_Name: Sklo
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
......@@ -302,7 +302,7 @@ GameObject:
- component: {fileID: 3804688119398474160}
- component: {fileID: 4938203733800983108}
m_Layer: 0
m_Name: Cube
m_Name: Drzak
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
......
......@@ -15,7 +15,7 @@ GameObject:
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_StaticEditorFlags: 8
m_IsActive: 1
--- !u!4 &4637264989093091855
Transform:
......@@ -96,10 +96,46 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8266390553334472930, guid: 84150fea9f350284891f456bd9c56bf0, type: 3}
propertyPath: m_StaticEditorFlags
value: 8
objectReference: {fileID: 0}
- target: {fileID: -4768608749249228979, guid: 84150fea9f350284891f456bd9c56bf0, type: 3}
propertyPath: m_StaticEditorFlags
value: 8
objectReference: {fileID: 0}
- target: {fileID: -3322881320263628418, guid: 84150fea9f350284891f456bd9c56bf0, type: 3}
propertyPath: m_StaticEditorFlags
value: 8
objectReference: {fileID: 0}
- target: {fileID: -1537068234071735670, guid: 84150fea9f350284891f456bd9c56bf0, type: 3}
propertyPath: m_StaticEditorFlags
value: 8
objectReference: {fileID: 0}
- target: {fileID: -1298319664939714517, guid: 84150fea9f350284891f456bd9c56bf0, type: 3}
propertyPath: m_StaticEditorFlags
value: 8
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 84150fea9f350284891f456bd9c56bf0, type: 3}
propertyPath: m_Name
value: table
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 84150fea9f350284891f456bd9c56bf0, type: 3}
propertyPath: m_StaticEditorFlags
value: 8
objectReference: {fileID: 0}
- target: {fileID: 1103589456493000380, guid: 84150fea9f350284891f456bd9c56bf0, type: 3}
propertyPath: m_StaticEditorFlags
value: 8
objectReference: {fileID: 0}
- target: {fileID: 2099305873245720534, guid: 84150fea9f350284891f456bd9c56bf0, type: 3}
propertyPath: m_StaticEditorFlags
value: 8
objectReference: {fileID: 0}
- target: {fileID: 3211446230867215174, guid: 84150fea9f350284891f456bd9c56bf0, type: 3}
propertyPath: m_StaticEditorFlags
value: 8
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 84150fea9f350284891f456bd9c56bf0, type: 3}
--- !u!4 &3749899520927804307 stripped
......
fileFormatVersion: 2
guid: 5e3720f9d5b33a7449cc3c14ff1ae7cc
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
This diff is collapsed.
File added
fileFormatVersion: 2
guid: 1cc6167b7acc10f45a945ec980fa04ea
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: c779b90e5b5f3ab458e43d6bcda79ece
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
using UnityEngine.AI;
namespace Nudle.Scripts.AI
{
public class BeerMaster : MonoBehaviour
{
[SerializeField]
private AIState State = AIState.WAITING;
public Transform Barrels;
public Transform Beers;
public Transform WaitingPlace;
public float Reach;
public NavMeshAgent Agent;
public BeerManager Manager;
internal void Update()
{
switch (State)
{
case AIState.WAITING:
break;
case AIState.GETTING_BEERS:
if (Vector3.Distance(transform.position, Barrels.position) <= Reach)
{
Agent.destination = Beers.position;
State = AIState.RETURNING;
}
break;
case AIState.RETURNING:
if (Vector3.Distance(transform.position, Beers.position) <= Reach)
{
Agent.destination = WaitingPlace.position;
State = AIState.WAITING;
Manager.SendMessage("PlaceBeers");
}
break;
}
}
public void GrabBeers()
{
if (State == AIState.WAITING)
{
State = AIState.GETTING_BEERS;
Agent.destination = Barrels.position;
}
}
private enum AIState
{
WAITING,
GETTING_BEERS,
RETURNING,
}
}
}
fileFormatVersion: 2
guid: c62031499a1af0943b3fea6cf2a3d2a3
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
using UnityEngine.AI;
namespace Nudle.Scripts.AI
{
public class Patron : MonoBehaviour
{
public Transform BeerPosition;
public Transform SeatPosition;
public float Reach;
public BeerManager Manager;
[SerializeField]
private AIState State = AIState.SITTING_WITHOUT_BEER;
private float Timer;
private NavMeshAgent Agent;
public float SleepTime = 1f;
internal void Start()
{
Agent = GetComponent<NavMeshAgent>();
}
internal void Update()
{
switch (State)
{
case AIState.SITTING_WITHOUT_BEER:
SittingWithoutBeer();
break;
case AIState.SEEKING_BEER:
SeekingBeer();
break;
case AIState.RETURNING_TO_SEAT:
ReturningToSeat();
break;
case AIState.SITTING_WITH_BEER:
SittingWithBeer();
break;
case AIState.DRINKING:
DrinkingBeer();
break;
}
}
private void SittingWithBeer()
{
Timer -= Time.deltaTime;
if (Timer <= 0)
{
State = AIState.DRINKING;
Timer = SleepTime;
}
}
private void SittingWithoutBeer()
{
Timer -= Time.deltaTime;
if (Timer <= 0 && Manager.AvailibleBeers() > 0)
{
State = AIState.SEEKING_BEER;
Agent.destination = BeerPosition.position;
}
}
private void DrinkingBeer()
{
// TODO: PLAY DRINKING ANIMATION
Timer -= Time.deltaTime;
if (Timer <= 0)
{
State = AIState.SITTING_WITHOUT_BEER;
Timer = SleepTime;
}
}
private void SeekingBeer()
{
if (Vector3.Distance(transform.position, BeerPosition.position) <= Reach && Manager.AvailibleBeers() > 0)
{
State = AIState.RETURNING_TO_SEAT;
Agent.destination = SeatPosition.position;
Manager.SendMessage("RemoveBeer");
}
}
private void ReturningToSeat()
{
if (Vector3.Distance(transform.position, SeatPosition.position) <= Reach)
{
State = AIState.SITTING_WITH_BEER;
Timer = SleepTime;
}
}
private enum AIState
{
SITTING_WITHOUT_BEER,
SEEKING_BEER,
RETURNING_TO_SEAT,
SITTING_WITH_BEER,
DRINKING,
}
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: 7de7bfde5d6eb9548b97d2201fc03f56
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
using System.Linq;
using Nudle.Scripts.AI;
namespace Nudle.Scripts
{
public class BeerManager : MonoBehaviour
{
public BeerMaster BeerMaster;
public GameObject[] Beers;
public int AvailibleBeers() =>
Beers.Count(beer => beer.activeSelf);
public void RemoveBeer()
{
Beers.First(beer => beer.activeSelf).SetActive(false);
BeerMaster.SendMessage("GrabBeers", SendMessageOptions.RequireReceiver);
}
public void PlaceBeers()
{
foreach (var beer in Beers)
beer.SetActive(true);
}
}
}
fileFormatVersion: 2
guid: f8c2c621bf064ec41b776dabc981db00
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment