示例#1
0
    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);
            }
        }
    }
示例#2
0
    /// <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);
    }