//This is used when locally selecting a posion card. Network poisoning happens differently+ public void ChoosePoisonCard(int myPlayerinteger, IndividualCard myCard, string message) { DataLogger.LogMessage("Player: " + myPlayerinteger.ToString() + " picked Poison card!" + myCard.cBase.myPoisonType + " - " + message); switch (myCard.cBase.myPoisonType) { case CardBase.PoisonTypes.DeadlyPoison: DeadlyRoutineHolder myHolder = new DeadlyRoutineHolder(myCard); Coroutine myRout = StartCoroutine(DeadlyPoisonCard(myPlayerinteger, myCard, myHolder)); myHolder.routine = myRout; ActivatedDeadlyPoisons.Enqueue(myHolder); findTheCureUIEffect.SetActive(true); break; case CardBase.PoisonTypes.PoisonCure: if (CureDeadlyPoison()) { myCard.SelectCard(myPlayerinteger); myCard.Invoke("MatchCard", 1f); } else { myCard.SelectCard(myPlayerinteger); myCard.Invoke("UnSelectCard", 1f); } break; } }
public bool CureDeadlyPoison() { if (ActivatedDeadlyPoisons.Count > 0) { DeadlyRoutineHolder toCure = ActivatedDeadlyPoisons.Dequeue(); StopCoroutine(toCure.routine); Destroy(toCure.effect); toCure.card.Invoke("MatchCard", 1f); if (ActivatedDeadlyPoisons.Count == 0) { findTheCureUIEffect.SetActive(false); } return(true); } else { return(false); } }
IEnumerator DeadlyPoisonCard(int myPlayerinteger, IndividualCard myCard, DeadlyRoutineHolder holder) { myCard.SelectCard(myPlayerinteger); float timer = myCard.cBase.poisonAmount; GameObject myEffect = Instantiate(deadlyPoisonEffect, myCard.transform.position, Quaternion.identity); myEffect.GetComponent <DeadlyPoisonEffect> ().SetUp(timer); holder.effect = myEffect; yield return(new WaitForSeconds(timer)); LocalPlayerController.s.canSelect = false; GameObjectiveMaster.s.isGamePlaying = false; Instantiate(deadlyPoisonExplodeEffect, myCard.transform.position, Quaternion.identity); yield return(new WaitForSeconds(1f)); GameObjectiveMaster.s.EndGame(GameObjectiveMaster.s.WinnerID(false)); yield return(null); }