First Reward system (Gold)

This commit is contained in:
Antoine H 2021-01-07 14:45:19 +01:00
parent caf73dfc25
commit 998cc81e0a
5 changed files with 33 additions and 6 deletions

View file

@ -7784,7 +7784,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
prepTime: 2
product_name: beer
product_value: 1
product_value: 10
product_sprite: {fileID: 21300000, guid: 17d59b2d4d882c04480a40119a442279, type: 3}
stock: 5
--- !u!61 &1165291009

View file

@ -82,13 +82,13 @@ public class Client_controller : MonoBehaviour, IUsable
}
else
{
Debug.Log("Display order (or something else) of "+gameObject.name);
Debug.Log(gameObject.name+" doesn't want that");
return false;
}
}
else
{
Debug.Log("Display order (or something else) of "+gameObject.name);
Debug.Log(gameObject.name+" doesn't want that");
return false;
}
}
@ -161,7 +161,11 @@ public class Client_controller : MonoBehaviour, IUsable
Mug obj = currentMug.GetComponent<Mug>();
if(obj !=null)
{
obj.consume();
//Reward
Consumable content = obj.consume();
int money = (int)(content.Value*(1.0f+waitTimer/waitingTime)); //Reward = value order + Tips (value * waitTime)
ClientManager.Instance.clientReward(money);
//Drop mug
obj.drop(gameObject.transform.position+ (Vector3)Vector2.down * 0.2f);
currentMug=null;

View file

@ -6,7 +6,7 @@ using UnityEditor;
//Define the system managing the clients. (Singleton)
public sealed class ClientManager : MonoBehaviour
{
int nbMaxClients = 10;
int nbMaxClients = 1;
bool clientSpawnReady = false;
float clientSpawnTimer = 0.5f; //Intial time before first spawn (pseudo-random after that)
float maxTimeNewClients = 2.0f;
@ -40,6 +40,12 @@ public sealed class ClientManager : MonoBehaviour
return false; //No new client
}
//TODO: Reputation
public void clientReward(int money)
{
GameSystem.Instance.gold+=money;
}
//Destroy a client
public void clientLeave(GameObject client)
{

View file

@ -14,6 +14,20 @@ public sealed class GameSystem : MonoBehaviour
float slowScale = 0.5f; //Default scale for slow mode
private float fixedDeltaTime;
//TODO : Effect on gold change
//Money
private int _gold;
public int gold
{
get{return _gold;}
set{
if(value<0)
value=0;
_gold = value;
Debug.Log("Gold : "+_gold);
}
}
public void startService()
{
serviceTimer=serviceTime;
@ -71,6 +85,7 @@ public sealed class GameSystem : MonoBehaviour
void Start()
{
startService();
gold=0;
}
// Update is called once per frame

View file

@ -43,10 +43,12 @@ public class Mug : MonoBehaviour, IGrabable
Debug.Log(gameObject.name+" cannot be filled (already full) with "+new_content.Type);
}
}
public void consume() //Empty Mug of its Consumable
public Consumable consume() //Return Mug content and empty it
{
Consumable output = content;
content=null;
dirty = true; //Used and dirty
return output;
}
// Start is called before the first frame update