|
|
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using TMPro;
- using System;
- using Multiplayer;
-
- public class Recipe : MonoBehaviour {
-
- Player localPlayer;
- int PlayerCount;
- public Vegetable[] Veggies;
- public Frame[] Frames;
-
- public int[] Qtys;
- public int[] heldQtys;
-
- public GameObject RecipeCanvas;
-
- public Image Inventory;
-
- // Use this for initialization
- void Start () {
-
- localPlayer = PlayersManager.Instance.LocalPlayer.GetComponent<Player>();
- PlayerCount = PlayersManager.Instance.RemotePlayers.Count + 1;
-
- localPlayer.GetComponent<LocalPlayer>().recipe = this;
- int count = 0;
- for (int i = 0; i < PlayerCount; i++)
- {
- Qtys[count] += 1;
- count += 1;
- if (count > 3)
- {
- count = 0;
- }
- }
- for (int i = 0; i < 4; i++) //Set the recipe UI
- {
- Frames[i].VegetableSpot.sprite = Veggies[i].Image;
- Frames[i].Qty.text = Qtys[i] + "";
- }
- }
-
- private void OnEnable()
- {
- ClientManager.Instance.Client.RegisterHandler(PlayerMsgID.Vegetable, recieveVeg);
- }
-
- private void OnDisable()
- {
- ClientManager.Instance.Client.UnregisterHandler(PlayerMsgID.Vegetable);
- }
-
- //Button calls
- public void OpenRecipe()
- {
- RecipeCanvas.SetActive(true);
- }
-
- public void CloseRecipe()
- {
- RecipeCanvas.SetActive(false);
- }
-
- //Veggie interactions
- public void pickupItem(Vegetable newVeggie)
- {
- Inventory.gameObject.SetActive(true);
- Inventory.sprite = newVeggie.Image;
- }
-
- public void dropItem()
- {
- Inventory.gameObject.SetActive(false);
- }
- public void friendlyPickup(string VeggieName, int change)
- {
- StartCoroutine(ItemLookup(VeggieName, change));
-
- VegMsg msg = new VegMsg(ClientManager.Instance.ID, VeggieName, change);
- ClientManager.Instance.SendMessage(PlayerMsgID.Vegetable, msg);
- }
-
- public void recieveVeg(UnityEngine.Networking.NetworkMessage msg)
- {
-
- VegMsg vegMsg;
- if (!Utility.ReadMessage<VegMsg>(msg, out vegMsg))
- return;
-
- StartCoroutine(ItemLookup(vegMsg.String, vegMsg.Int));
- }
-
- IEnumerator ItemLookup(string VeggieName, int change)
- {
- for (int i = 0; i < Veggies.Length; i++)
- {
- if(Veggies[i].Name == VeggieName)
- {
- heldQtys[i] += change;
- }
- }
- yield return new WaitForEndOfFrame();
- }
-
- public bool CheckVictory()
- {
- bool winning = true;
- for (int i = 0; i < Veggies.Length; i++)
- {
- if (Qtys[i] != heldQtys[i])
- {
- winning = false;
- }
- }
- return winning;
- }
- }
-
-
-
- [Serializable]
- public class Vegetable
- {
- public string Name;
- public Sprite Image;
- }
-
- [Serializable]
- public class Frame
- {
- public Image VegetableSpot;
- public TextMeshProUGUI Qty;
- }
|