void BombTrigger(CellData bomb) { List <Mine> bombtoReset = new List <Mine>(); foreach (var item in bomb.Listbomb) { if (item.BombOwner == gameObject.name) { Mine.m_BombState typeOfBomb = item.BombState; switch (typeOfBomb) { case Mine.m_BombState.BLACK: Debug.Log("black"); BLACKtrigger(); break; case Mine.m_BombState.WHITE: Debug.Log("white"); WHITEtrigger(); break; case Mine.m_BombState.Nothing: Debug.Log("Nothing"); break; case Mine.m_BombState.RED: Debug.Log("Red"); StartCoroutine(REDtrigger()); break; default: Debug.Log("Default"); break; } bombtoReset.Add(item); } else { Debug.Log("Ce n'est pas ma bombe " + item.BombState); } } if (bombtoReset.Count > 0) { foreach (var mine in bombtoReset) { bomb.ResetTileMine(mine); } } }
/// <summary> /// This method sends a message to other players that she/he trigger one of your mine. /// </summary> /// <param name="bombState"> the type of the bomb</param> /// <param name="tileName"> the name of the tile / his position </param> /// <param name="bombOwner"> the owner of the mine</param> void SendBombTrigger(Mine.m_BombState bombState, string tileName, string bombOwner) { int indexOfMine; switch (bombState) { case Mine.m_BombState.RED: indexOfMine = 0; break; case Mine.m_BombState.BLACK: indexOfMine = 1; break; case Mine.m_BombState.WHITE: indexOfMine = 2; break; case Mine.m_BombState.Nothing: indexOfMine = 3; break; default: indexOfMine = -1; break; } byte evCode = 9; // Custom Event 1: Used as "MoveUnitsToTargetPosition" event object[] content = new object[] { indexOfMine, tileName, bombOwner }; // Array contains the target position and the IDs of the selected units RaiseEventOptions raiseEventOptions = new RaiseEventOptions(); //raiseEventOptions.CachingOption = EventCaching.AddToRoomCacheGlobal; raiseEventOptions.Receivers = ReceiverGroup.Others; SendOptions sendOptions = new SendOptions(); sendOptions.DeliveryMode = DeliveryMode.Reliable; PhotonNetwork.RaiseEvent(evCode, content, raiseEventOptions, sendOptions); }