private void OnEvent(EventData photonData) { byte eventCode = photonData.Code; if (eventCode == TAP_ANIMATION_SYNC_EVENT) { object[] data = (object[])photonData.CustomData; int index = (int)data[0]; Transform card = GameManager.Instance.GetActiveMinionZone(true).GetChild(index); CardVisual cv = card.GetComponent <CardVisual>(); cv.IsTapped = true; cv.ChangeTappedAppearance(); DelayCommand dc = new DelayCommand(card, 2f); dc.AddToQueue(); StartCoroutine(ShowEffectAnimation()); cv.AdjustHealth(1, false); } else if (eventCode == ANIMATION_SYNC_EVENT) { object[] data = (object[])photonData.CustomData; int index = (int)data[0]; Transform card = GameManager.Instance.GetActiveMinionZone(true).GetChild(index); DelayCommand dc = new DelayCommand(card, 2f); dc.AddToQueue(); StartCoroutine(ShowEffectAnimation()); } else if (eventCode == PEEK_SHOP_SYNC_EVENT) { object[] data = (object[])photonData.CustomData; string cardClass = (string)data[0]; int[] cards = (int[])data[1]; List <MinionData> cardList = new List <MinionData>(); foreach (int id in cards) { MinionData minion = Resources.Load("Minions/" + id) as MinionData; cardList.Add(minion); } UIManager.Instance.MoveTopCardsToBottom(cardClass, cardList); } else if (eventCode == ADJUST_HEALTH_SYNC_EVENT) { object[] data = (object[])photonData.CustomData; int position = (int)data[0]; int healthAmount = (int)data[1]; bool increaseOrDecrease = (bool)data[2]; bool activeOrInactive = (bool)data[3]; Transform card = GameManager.Instance.GetActiveMinionZone(activeOrInactive).GetChild(position); CardVisual cv = card.GetComponent <CardVisual>(); cv.AdjustHealth(healthAmount, increaseOrDecrease); } else if (eventCode == ADJUST_DAMAGE_SYNC_EVENT) { object[] data = (object[])photonData.CustomData; int position = (int)data[0]; int damageAmount = (int)data[1]; bool increaseOrDecrease = (bool)data[2]; Transform card = GameManager.Instance.GetActiveMinionZone(true).GetChild(position); CardVisual cv = card.GetComponent <CardVisual>(); cv.AdjustDamage(damageAmount, increaseOrDecrease); } else if (eventCode == ADJUST_GOLD_SYNC_EVENT) { object[] data = (object[])photonData.CustomData; int amount = (int)data[0]; GameManager.Instance.ActiveHero(true).AdjustGold(2, true); } else if (eventCode == ADJUST_EXP_SYNC_EVENT) { object[] data = (object[])photonData.CustomData; int amount = (int)data[0]; GameManager.Instance.ActiveHero(true).EnemyGainExp(2); } else if (eventCode == ADJUST_HERO_HEALTH_SYNC_EVENT) { object[] data = (object[])photonData.CustomData; int amount = (int)data[0]; GameManager.Instance.ActiveHero(false).AdjustHealth(amount, false); } else if (eventCode == DRAW_DISCARD_SYNC_EVENT) { object[] data = (object[])photonData.CustomData; int position = (int)data[0]; Transform card = GameManager.Instance.GetActiveHand(true).GetChild(position); GameManager.Instance.DiscardCard(card.gameObject); } else if (eventCode == ACTIVATE_SILENCE_SYNC_EVENT) { object[] data = (object[])photonData.CustomData; int position = (int)data[0]; Transform card = GameManager.Instance.GetActiveMinionZone(false).GetChild(position); CardVisual cv = card.GetComponent <CardVisual>(); cv.ActivateSilence(true); } else if (eventCode == ADJUST_DISCARD_SYNC_EVENT) { object[] data = (object[])photonData.CustomData; bool increase = (bool)data[0]; GameManager.Instance.ActiveHero(false).AdjustEnemyDiscard(increase); } else if (eventCode == ANIMATION_MESSAGE_SYNC_EVENT) { object[] data = (object[])photonData.CustomData; string message = (string)data[0]; StartCoroutine(ShowEffectAnimation(message)); } else if (eventCode == COMBAT_EFFECT_SYNC_EVENT) { object[] data = (object[])photonData.CustomData; int position = (int)data[0]; bool enableOrDisable = (bool)data[1]; string to = (string)data[2]; Transform card; if (to.Equals("Hand")) { card = GameManager.Instance.GetActiveHand(true).GetChild(position); } else { card = GameManager.Instance.GetActiveMinionZone(true).GetChild(position); } CardVisual cv = card.GetComponent <CardVisual>(); cv.IsCombatEffectActivated = enableOrDisable; cv.CombatEffectActivated(enableOrDisable); } }