Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEngine.EventSystems;
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using Sfs2X;
- using Sfs2X.Logging;
- using Sfs2X.Util;
- using Sfs2X.Core;
- using Sfs2X.Entities;
- using Sfs2X.Entities.Managers;
- using Sfs2X.Requests;
- using UnityEngine.SceneManagement;
- using Sfs2X.Entities.Variables;
- public class InGameConnector : MonoBehaviour
- {
- //-----------------------
- // Initialize Sripts
- //-----------------------
- public bool hosting;
- //-----------------------
- // Initialize variables
- //-----------------------
- private SmartFox sfs;
- public string ding;
- public string changedVar;
- public bool FIRST_IS_ALWAYS_HOST;
- public Text debugText;
- public List<User> users;
- public int userAmount;
- public List<UserVariable> userVars;
- public List<UserVariable> userMessage;
- public InputField inputFieldRaise;
- public Text potAmountText;
- public Text chipsAmountText;
- public Text StateButtonText;
- //---------------------
- // Card shit initialized
- //---------------------
- public DealCards cardDealer;
- public string p1k1;
- private string p1k2;
- private string p2k1;
- private string p2k2;
- private string p3k1;
- private string p3k2;
- private string p4k1;
- private string p4k2;
- public string finalCard1;
- public string finalCard2;
- public string raiseMessage;
- public string foldMessage;
- public string allInMessage;
- public string checkMessage;
- public string deleteCardsMessage;
- public string activateButtons;
- public string deActivateButtons;
- public string turnMessage;
- public int potAmount;
- public int raiseAmount;
- public int callAmount;
- public bool roundStart;
- public bool userMadeAChoice;
- public bool folded;
- public bool givenTurn;
- public int currentUser;
- public int currentTurn;
- //-------------------
- // UI Elements
- //-------------------
- public InputField input;
- public Button sendButton;
- public int totalChipsAmount;
- public Button check;
- public Button fold;
- public Button raise;
- public Button allIn;
- //----------------------
- // Scene is loaded and started initializing
- //----------------------
- void Start()
- {
- hosting = false;
- userMessage = new List<UserVariable> ();
- totalChipsAmount = 500;
- potAmount = 0;
- chipsAmountText.text = "chips: " +totalChipsAmount;
- currentTurn = 0;
- }
- //---------------------
- // Initializing smartfox
- //---------------------
- void Awake()
- {
- if (SmartFoxConnection.IsInitialized)
- {
- sfs = SmartFoxConnection.Connection;
- }
- else
- {
- SceneManager.LoadScene("Login");
- return;
- }
- sfs.AddEventListener(SFSEvent.USER_VARIABLES_UPDATE, onUserVarsUpdate);
- sfs.AddEventListener(SFSEvent.CONNECTION_LOST, OnConnectionLost);
- sfs.AddEventListener(SFSEvent.USER_EXIT_ROOM, OnUserExitRoom);
- //Lijst waar alle in de server opgehaalde variabelen komen
- userVars = new List<UserVariable>();
- //bepaal wie host is
- users = sfs.UserManager.GetUserList();
- foreach (User people in users)
- {
- if (users[0].Name == sfs.MySelf.Name)
- {
- hosting = true;
- }
- }
- }
- //----------------------
- // Reset functions
- //----------------------
- public void reset()
- {
- sfs.RemoveAllEventListeners();
- sfs.Disconnect();
- // Return to lobby scene
- SceneManager.LoadScene("Login");
- }
- public void newRound()
- {
- raiseAmount = 0;
- callAmount = 10;
- potAmount = 0;
- DestroyAllCardsMessage();
- }
- //----------------------
- // Ingame buttons
- //----------------------
- public int CountUsers()
- {
- return users.Count;
- }
- public ArrayList GetPLayerNames()
- {
- ArrayList allNames = new ArrayList();
- foreach (User people in users)
- {
- if (people.Name != "01234567890123456789012")
- {
- allNames.Add (people.Name);
- }
- }
- return allNames;
- }
- public void onStateButtonClick()
- {
- if (StateButtonText.text == "Start Round")
- {
- //deActivateClientButtons ();
- getCards ();
- sfs.Send (new SetUserVariablesRequest (userVars));
- Debug.Log ("kaarten verstuurd naar spelers");
- StateButtonText.text = "Round 1";
- roundStart = true;
- currentUser = users.Count - 1;
- } else if (StateButtonText.text == "Round 1" || StateButtonText.text == "Round 2" || StateButtonText.text == "Round 3" || StateButtonText.text == "Round 4")
- {
- // does nothing
- } else if (StateButtonText.text == "Turn")
- {
- cardDealer.SetCurrentGameState (GameState.dealCardState);
- StateButtonText.text = "Round 2";
- roundStart = true;
- } else if (StateButtonText.text == "River")
- {
- cardDealer.SetCurrentGameState (GameState.dealCardState);
- StateButtonText.text = "Round 3";
- roundStart = true;
- } else if (StateButtonText.text == "Flop")
- {
- cardDealer.SetCurrentGameState (GameState.dealCardState);
- StateButtonText.text = "Round 4";
- roundStart = true;
- } else if (StateButtonText.text == "Show Cards")
- {
- cardDealer.ShowPlayerCards ();
- StateButtonText.text = "New Round";
- } else if (StateButtonText.text == "New Round")
- {
- //activateClientButtons ();
- cardDealer.SetCurrentGameState (GameState.beforeGameState);
- newRound ();
- StateButtonText.text = "Start Round";
- }
- }
- public void OnLeaveGameButtonClick()
- {
- // Remove SFS2X listeners
- reset();
- }
- private void getCards()
- {
- Debug.Log("werkt: user count = " + users.Count);
- for (int i = 0; i < users.Count; i++)
- {
- string kaart1 = cardDealer.DrawCards();
- string kaart2 = cardDealer.DrawCards();
- if (i == 1)
- {
- p1k1 = kaart1;
- p1k2 = kaart2;
- userVars.Add(new SFSUserVariable(users[i].Name + "kaart1", p1k1));
- userVars.Add(new SFSUserVariable(users[i].Name + "kaart2", p1k2));
- }
- if (i == 2)
- {
- p2k1 = kaart1;
- p2k2 = kaart2;
- userVars.Add(new SFSUserVariable(users[i].Name + "kaart1", p2k1));
- userVars.Add(new SFSUserVariable(users[i].Name + "kaart2", p2k2));
- }
- if (i == 3)
- {
- p3k1 = kaart1;
- p3k2 = kaart2;
- userVars.Add(new SFSUserVariable(users[i].Name + "kaart1", p3k1));
- userVars.Add(new SFSUserVariable(users[i].Name + "kaart2", p3k2));
- }
- if (i == 4)
- {
- p4k1 = kaart1;
- p4k2 = kaart2;
- userVars.Add(new SFSUserVariable(users[i].Name + "kaart1", p4k1));
- userVars.Add(new SFSUserVariable(users[i].Name + "kaart2", p4k2));
- }
- }
- }
- //--------------------
- // Update
- //--------------------
- void Update()
- {
- print ("currentUser = " + currentUser);
- //update all the smartfox events every frame
- if (sfs != null)
- sfs.ProcessEvents();
- // running the rounds, just for the host
- if (roundStart && sfs.MySelf.Name == "01234567890123456789012")
- {
- switch (currentUser)
- {
- case 1:
- if (!givenTurn)
- {
- for (int i = 0; i < users.Count; i++)
- {
- print ("user name is: " + users [i].Name + " and index is: " + i);
- }
- setMyTurn (users [1].Name);
- givenTurn = true;
- }
- if (userMadeAChoice)
- {
- switch (currentTurn)
- {
- case 0:
- StateButtonText.text = "Turn";
- currentTurn++;
- break;
- case 1:
- StateButtonText.text = "River";
- currentTurn++;
- break;
- case 2:
- StateButtonText.text = "Flop";
- currentTurn++;
- break;
- case 3:
- StateButtonText.text = "Show Cards";
- currentTurn = 0;
- break;
- }
- userMadeAChoice = false;
- //sendButton.interactable = true;
- givenTurn = false;
- currentUser = users.Count -1 ;
- roundStart = false;
- }
- break;
- case 2:
- if (!givenTurn)
- {
- for (int i = 0; i < users.Count; i++)
- {
- print ("user name is: " + users [i].Name + " and index is: " + i);
- }
- setMyTurn (users [2].Name);
- givenTurn = true;
- }
- if (userMadeAChoice)
- {
- print("hij merkt dat de tweede user zijn turn heeft beeindigd");
- userMadeAChoice = false;
- givenTurn = false;
- currentUser = 1;
- }
- break;
- case 3:
- if (!givenTurn)
- {
- for (int i = 0; i < users.Count; i++)
- {
- print ("user name is: " + users [i].Name + " and index is: " + i);
- }
- givenTurn = true;
- setMyTurn (users [3].Name);
- }
- if (userMadeAChoice)
- {
- userMadeAChoice = false;
- givenTurn = false;
- currentUser = 2;
- }
- break;
- case 4:
- if (!givenTurn)
- {
- for (int i = 0; i < users.Count; i++)
- {
- print ("user name is: " + users [i].Name + " and index is: " + i);
- }
- givenTurn = true;
- setMyTurn (users [4].Name);
- }
- if (userMadeAChoice)
- {
- userMadeAChoice = false;
- givenTurn = false;
- currentUser = 3;
- }
- break;
- }
- }
- }
- //---------------------------------
- // Smartfox events
- // ----------------------------------
- //Show the the debug text from smartfox events
- private void trace(string msg)
- {
- debugText.text = (msg + (debugText.text != "" ? "\n" : "") + debugText.text);
- }
- //when connection is lost
- private void OnConnectionLost(BaseEvent evt)
- {
- reset();
- string reason = (string)evt.Params["reason"];
- if (reason != ClientDisconnectionReason.MANUAL)
- {
- trace("Connection was lost. Reason: " + reason);
- }
- }
- private void OnUserExitRoom(BaseEvent evt)
- {
- User user = (User)evt.Params["user"];
- if (user != sfs.MySelf)
- {
- Room room = (Room)evt.Params["room"];
- trace("User " + user.Name + " left the game");
- }
- }
- void onUserVarsUpdate(BaseEvent evt)
- {
- Debug.Log("update start");
- ArrayList changedVars = (ArrayList)evt.Params["changedVars"];
- User user = (User)evt.Params["user"];
- foreach (string chv in changedVars)
- {
- print("svs.Myself.Name = " + sfs.MySelf.Name);
- print("chv = " + chv);
- if (!hosting || sfs.MySelf.Name != "01234567890123456789012")
- {
- if (chv == sfs.MySelf.Name + "kaart1")
- {
- finalCard1 = user.GetVariable(chv).Value.ToString();
- print("finalCard1 = " + finalCard1);
- }
- else if (chv == sfs.MySelf.Name + "kaart2")
- {
- finalCard2 = user.GetVariable(chv).Value.ToString();
- print("finalCard2 = " + finalCard2);
- SendFinalCards();
- }
- if (chv == "deleteCards")
- {
- foreach (GameObject obsoleteCard in GameObject.FindGameObjectsWithTag("card"))
- {
- Destroy(obsoleteCard);
- }
- }
- if (chv == "activateButtons")
- {
- raise.interactable = true;
- allIn.interactable = true;
- check.interactable = true;
- fold.interactable = true;
- }
- if (chv == "deActivateButtons")
- {
- if (raise != null)
- {
- raise.interactable = false;
- allIn.interactable = false;
- check.interactable = false;
- fold.interactable = false;
- }
- }
- if (chv == sfs.MySelf.Name + "myTurn")
- {
- raise.interactable = true;
- allIn.interactable = true;
- check.interactable = true;
- fold.interactable = true;
- }
- }
- if (sfs.MySelf.Name == "01234567890123456789012")
- {
- if (chv == "raise")
- {
- string raiseAmountReceived = user.GetVariable("raiseAmount").Value.ToString();
- int finalRaiseAmount = int.Parse(raiseAmountReceived);
- trace(user.Name + " raised with: " + finalRaiseAmount);
- potAmount += finalRaiseAmount;
- callAmount = finalRaiseAmount;
- potAmountText.text = potAmount.ToString();
- userMadeAChoice = true;
- }
- else if (chv == "fold")
- {
- trace(user.Name + " folded");
- userMadeAChoice = true;
- }
- else if (chv == "allIn")
- {
- string allInAmountReceived = user.GetVariable("allInAmount").Value.ToString();
- potAmount += int.Parse(allInAmountReceived);
- potAmountText.text = potAmount.ToString();
- trace(user.Name + " went all in " + totalChipsAmount);
- print ("someone went all in so userMadeAChoice will be set to true now");
- userMadeAChoice = true;
- }
- else if (chv == "check")
- {
- potAmount += callAmount;
- potAmountText.text = potAmount.ToString();
- trace(user.Name + "checked");
- userMadeAChoice = true;
- }
- }
- }
- }
- public void SendFinalCards()
- {
- List<string> cardsList = new List<string>();
- cardsList.Add(finalCard1);
- cardsList.Add(finalCard2);
- this.gameObject.GetComponent<ClientGame>().DrawCards(cardsList);
- }
- public void raiseButton()
- {
- if (inputFieldRaise.text == "")
- {
- trace("Please enter a value");
- }
- else if (int.Parse(inputFieldRaise.text) <= 0)
- {
- trace("Please enter a positive value");
- }
- else if ((int.Parse(inputFieldRaise.text + callAmount)) <= totalChipsAmount)
- {
- raiseAmount = int.Parse(inputFieldRaise.text) + callAmount;
- totalChipsAmount -= raiseAmount;
- userMessage.Add(new SFSUserVariable("raise", raiseMessage));
- userMessage.Add(new SFSUserVariable("raiseAmount", raiseAmount));
- sfs.Send(new SetUserVariablesRequest(userMessage));
- userMessage.Clear();
- chipsAmountText.text = totalChipsAmount.ToString();
- trace("You have " + totalChipsAmount + " chips left");
- chipsAmountText.text = "chips: " + totalChipsAmount;
- // disable buttons after choosing an action, as this indicates this players turn has ended
- raise.interactable = false;
- allIn.interactable = false;
- check.interactable = false;
- fold.interactable = false;
- }
- else
- {
- trace("Not enough chips available to raise that high");
- }
- }
- public void checkButton()
- {
- totalChipsAmount -= callAmount;
- userMessage.Add(new SFSUserVariable("check", checkMessage));
- sfs.Send(new SetUserVariablesRequest(userMessage));
- userMessage.Clear();
- chipsAmountText.text = "chips: " + totalChipsAmount;
- // disable buttons after choosing an action, as this indicates this players turn has ended
- raise.interactable = false;
- allIn.interactable = false;
- check.interactable = false;
- fold.interactable = false;
- }
- public void foldButton()
- {
- userMessage.Add(new SFSUserVariable("fold", foldMessage));
- sfs.Send(new SetUserVariablesRequest(userMessage));
- userMessage.Clear();
- folded = true;
- // disable buttons after choosing an action, as this indicates this players turn has ended
- raise.interactable = false;
- allIn.interactable = false;
- check.interactable = false;
- fold.interactable = false;
- }
- public void allInButton()
- {
- userMessage.Add(new SFSUserVariable("allInAmount", totalChipsAmount));
- totalChipsAmount = 0;
- userMessage.Add(new SFSUserVariable("allIn", allInMessage));
- sfs.Send(new SetUserVariablesRequest(userMessage));
- userMessage.Clear();
- trace("You went all in");
- print (sfs.MySelf.Name + " went all in");
- chipsAmountText.text = "chips: " + totalChipsAmount;
- // disable buttons after choosing an action, as this indicates this players turn has ended
- raise.interactable = false;
- allIn.interactable = false;
- check.interactable = false;
- fold.interactable = false;
- }
- public void setMyTurn(string playerName)
- {
- turnMessage = "turned";
- userMessage.Add(new SFSUserVariable(playerName + "myTurn", turnMessage));
- sfs.Send (new SetUserVariablesRequest (userMessage));
- userMessage.Clear ();
- }
- public void DestroyAllCardsMessage()
- {
- userMessage.Add(new SFSUserVariable("deleteCards", deleteCardsMessage));
- sfs.Send(new SetUserVariablesRequest(userMessage));
- userMessage.Clear();
- }
- public ArrayList PutAllCardsInAList ()
- {
- ArrayList AllPlayerCards = new ArrayList();
- AllPlayerCards.Add(p1k1);
- AllPlayerCards.Add(p1k2);
- AllPlayerCards.Add(p2k1);
- AllPlayerCards.Add(p2k2);
- AllPlayerCards.Add(p3k1);
- AllPlayerCards.Add(p3k2);
- AllPlayerCards.Add(p4k1);
- AllPlayerCards.Add(p4k2);
- return AllPlayerCards;
- }
- public void activateClientButtons()
- {
- userMessage.Add(new SFSUserVariable("activateButtons", activateButtons));
- sfs.Send(new SetUserVariablesRequest(userMessage));
- userMessage.Clear();
- }
- public void deActivateClientButtons()
- {
- userMessage.Add(new SFSUserVariable("deActivateButtons", deActivateButtons));
- sfs.Send(new SetUserVariablesRequest(userMessage));
- userMessage.Clear();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement