Ejemplo n.º 1
0
 private void RequestUpdatePlayer(NetworkPlayer player)
 {
     C2Request request;
     request = new C2Request(C2MessageType.Request_UpdateAlive);
     request.putData("NetworkPlayer" , player);
     this.SendRequest(request);
 }
Ejemplo n.º 2
0
    private void RequestUpdatePlayer(NetworkPlayer player , string item)
    {
        C2Request request;

        switch (item){
        case "Coin":
            request = new C2Request(C2MessageType.Request_UpdateCoin);
            request.putData("NetworkPlayer" , player);
            this.SendRequest(request);
            break;
        case "EnergyBlock":
            request = new C2Request(C2MessageType.Request_UpdateEnergy);
            request.putData("NetworkPlayer" , player);
            this.SendRequest(request);
            break;
        case "Accelerator":
            request = new C2Request(C2MessageType.Request_UpdateSpeed);
            request.putData("NetworkPlayer" , player);
            this.SendRequest(request);
            break;
        case "Shield":
            request = new C2Request(C2MessageType.Request_UpdateShield);
            request.putData("NetworkPlayer" , player);
            this.SendRequest(request);
            break;
        default:
            break;
        }
    }
Ejemplo n.º 3
0
 private void RequestInput(float VInput , float HInput)
 {
     C2Request request = new C2Request(C2MessageType.Request_Input);
     request.putData("VInput",VInput);
     request.putData("HInput",HInput);
     this.SendRequest(request);
 }
Ejemplo n.º 4
0
    protected override void HandleRequest(C2Request request)
    {
        string type = request.Type;
        NetworkPlayer player = (NetworkPlayer)request.getData("NetworkPlayer");

        switch (type){
        case C2MessageType.Request_UpdateCoin:
            playerList[player].updatePlayerCoin();
            break;
        case C2MessageType.Request_UpdateEnergy:
            playerList[player].updatePlayerEnergy();
            break;
        case C2MessageType.Request_UpdateSpeed:
            playerList[player].updatePlayerSpeed();
            break;
        case C2MessageType.Request_UpdateShield:
            playerList[player].updatePlayerShield();
            break;
        case C2MessageType.Request_UpdateAlive:
            playerList[player].updatePlayerAlive();
            break;
        case C2MessageType.Request_PlayerStatus:

            C2Notification notification = new C2Notification(C2MessageType.Notification_PlayerStatus);
            notification.putData("NetworkPlayer" , player);
            notification.putData("Player" , playerList[player]);
            this.SendNotification(notification);
            break;
            default:
                break;
        }
    }
 protected override void HandleRequest(C2Request request)
 {
     foreach(C2Port topPort in this.tops)
     {
         topPort.PassRequest(request);
     }
 }
Ejemplo n.º 6
0
    public void RequestPlayerStatus(NetworkPlayer player)
    {
        //request for lasted data

        C2Request request = new C2Request(C2MessageType.Request_PlayerStatus);
        request.putData("NetworkPlayer" , player);
        this.HandleRequest(request);
    }
Ejemplo n.º 7
0
 void RequestSpawnItem(Vector3 spawnPos , string item)
 {
     C2Request request= new C2Request("Spawn" + item);
     request.putData("x",spawnPos.x);
     request.putData("y",spawnPos.y);
     request.putData("z",spawnPos.z);
     this.SendRequest(request);
 }
Ejemplo n.º 8
0
 protected override void HandleRequest(C2Request request)
 {
     string type = request.Type;
     if(type.Equals("SpawnBullet")) {
         Vector3 spawnPos = new Vector3((float)request.getData("x"), (float)request.getData("y"), (float)request.getData("z"));
         SpawnCollidable(bulletPrefab, spawnPos);
     }
 }
Ejemplo n.º 9
0
 private void RequestMovement(float VInput, float HInput)
 {
     float liftForce = VInput * Time.deltaTime * upForce;
     float rotation = HInput * Time.deltaTime;
     C2Request request = new C2Request(C2MessageType.Request_Movement);
     request.putData("VForce", liftForce);
     request.putData("Rotation", rotation);
     this.SendRequest(request);
 }
Ejemplo n.º 10
0
    public void SendClientAction(float VInput, float HInput , NetworkPlayer player)
    {
        C2Request request = new C2Request(C2MessageType.Request_ClientAction);
        request.putData("VInput", VInput);
        request.putData("HInput", HInput);
        request.putData("NetworkPlayer" , player);

        this.HandleRequest(request);
    }
Ejemplo n.º 11
0
    protected override void HandleRequest(C2Request request)
    {
        string type = request.Type;
        if(type.Equals(C2MessageType.Request_SpawnStone)) {

            Vector3 spawnPos = new Vector3((float)request.getData("x"), (float)request.getData("y"), (float)request.getData("z"));
            SpawnCollidable(stonePrefab, spawnPos);
        }
    }
Ejemplo n.º 12
0
    protected override void HandleRequest(C2Request request)
    {
        if (Network.isClient && (owner == Network.player))	{
            string type = request.Type;

            if (currentPlayer.Alive == true && type.Equals(C2MessageType.Request_Movement))
            {

                   float liftForce = (float)request.getData("VForce");

                    Vector3 upVec = transform.position;
                    upVec.Normalize();
                    if (currentPlayer.Energy > 0){
                        constantForce.force = upVec * liftForce * 700;
                        currentPlayer.Energy -= liftForce;
                    }
                    else{
                        constantForce.force  = Vector3.zero;
                        currentPlayer.Energy = 0;
                    }

                float rotation = (float)request.getData("Rotation");
                transform.RotateAround(transform.position, rotation);
            }
        }
        else if (Network.isServer){
            string type = request.Type;

            if ( type.Equals(C2MessageType.Request_Movement))
            {
                NetworkPlayer nid = (NetworkPlayer)request.getData("NetworkPlayer");

                if (nid == owner){

                   float liftForce = (float)request.getData("VForce");

                    Vector3 upVec = transform.position;
                    currentPlayer = ((Players)GameObject.Find("Players").GetComponent(typeof(Players))).playerList[nid];
                    if (currentPlayer.Alive == false)return;
                    upVec.Normalize();
                    if (currentPlayer.Energy > 0){
                        constantForce.force = upVec * liftForce * 700;
                        currentPlayer.Energy -= liftForce;
                    }
                    else{
                        constantForce.force  = Vector3.zero;
                        currentPlayer.Energy = 0;
                    }

                    float rotation = (float)request.getData("Rotation");
                    transform.RotateAround(transform.position, rotation);

                }
            }
        }
    }
Ejemplo n.º 13
0
    //Obviously the GUI is for both client&servers (mixed!)
    protected override void HandleRequest(C2Request request)
    {
        string type = request.Type;

        if(type.Equals("StartServer")) {
            Network.InitializeServer(32, connectPort , false);
        } else if(type.Equals("CloseServer")) {
            Network.Disconnect(200);
        }
    }
Ejemplo n.º 14
0
 protected override void HandleRequest(C2Request request)
 {
     string type = request.Type;
     if (Network.peerType == NetworkPeerType.Server){
         if(type.Equals("SpawnCoin")) {
             Vector3 spawnPos = new Vector3((float)request.getData("x"), (float)request.getData("y"), (float)request.getData("z"));
             SpawnCollidable(coinPrefab, spawnPos);
         }
     }
 }
Ejemplo n.º 15
0
    protected override void HandleRequest(C2Request request)
    {
        if (request.Type.Equals(C2MessageType.Request_ClientAction)){

            C2Notification notification = new C2Notification(C2MessageType.Notification_Input);
            notification.putData("VInput", (float)request.getData("VInput"));
            notification.putData("HInput", (float)request.getData("HInput"));
            notification.putData("NetworkPlayer" , (NetworkPlayer)request.getData("NetworkPlayer"));

            this.SendNotification(notification);
        }
    }
Ejemplo n.º 16
0
    //send request to upper brick through this port
    public bool PassRequest(C2Request request)
    {
        if (this.topBrick == null)return false;
        if(this.topBrick.AcceptReq(request.Type)) {
            //Debug.Log(this.topBrick.name + " accepted request " + request.Type + " from " + this.ButtomBrick.name);

        //	this.topBrick.PrintAcceptedReqType();

            this.topBrick.SendMessage("HandleRequest",request);
            return true;
        }
        return false;
    }
Ejemplo n.º 17
0
    //Obviously the GUI is for both client&servers (mixed!)
    protected override void HandleRequest(C2Request request)
    {
        string type = request.Type;

        if(type.Equals(C2MessageType.Request_ConnectToServer)) {
            string ConnectToIP = (string)request.getData("IP");
            int ConnectPort = (int)request.getData("Port");
            Network.Connect(ConnectToIP , ConnectPort);
            Application.LoadLevel(Application.loadedLevel);
        } else if(type.Equals(C2MessageType.Request_DisconnectFromServer)) {
            Network.Disconnect(200);
            Application.LoadLevel(Application.loadedLevel);
        }
    }
Ejemplo n.º 18
0
    void OnGUI()
    {
        if (Network.peerType == NetworkPeerType.Disconnected){
            //We are currently disconnected: Not a client or host
            GUILayout.Label("Connection status: Disconnected");
            connectToIP = GUILayout.TextField(connectToIP, GUILayout.MinWidth(100));
            connectPort = int.Parse(GUILayout.TextField(connectPort.ToString()));
            GUILayout.BeginVertical();
            if (GUILayout.Button ("Connect To Server"))
            {
                C2Request request = new C2Request(C2MessageType.Request_ConnectToServer);
                request.putData("IP" , connectToIP);
                request.putData("Port" , connectPort);
                this.SendRequest(request);

            }
            GUILayout.EndVertical();

        }else{
            //We've got a connection(s)!

            if (Network.peerType == NetworkPeerType.Connecting){

                GUILayout.Label("Connection status: Connecting");

            } else if (Network.peerType == NetworkPeerType.Client){

                GUILayout.Label("Connection status: Client!");
                GUILayout.Label("Ping to server: "+Network.GetAveragePing(  Network.connections[0] ) );
            }

            if (GUILayout.Button ("Disconnect"))
            {
                C2Request request = new C2Request(C2MessageType.Request_DisconnectFromServer);
                this.SendRequest(request);
            }

        }
        /*if (gameState == LunarLanderGameState.lost)
        {
            GUILayout.Label("You Lost!");
            if (GUILayout.Button("Try again"))
            {
                Application.LoadLevel(Application.loadedLevel);
            }
        }*/
        //We display the game GUI from the playerscript
        //It would be nicer to have a seperate script dedicated to the GUI though...
    }
Ejemplo n.º 19
0
 protected override void HandleRequest(C2Request request)
 {
     string type = request.Type;
     if(type.Equals(C2MessageType.Request_SpawnAccelerator)) {
         Vector3 spawnPos = new Vector3((float)request.getData("x"), (float)request.getData("y"), (float)request.getData("z"));
         SpawnCollidable(acceleratorPrefab, spawnPos);
     }
     if(type.Equals(C2MessageType.Request_SpawnEnergyBlock)) {
         Vector3 spawnPos = new Vector3((float)request.getData("x"), (float)request.getData("y"), (float)request.getData("z"));
         SpawnCollidable(energyBlockPrefab, spawnPos);
     }
     if(type.Equals(C2MessageType.Request_SpawnShield)) {
         Vector3 spawnPos = new Vector3((float)request.getData("x"), (float)request.getData("y"), (float)request.getData("z"));
         SpawnCollidable(shieldPrefab, spawnPos);
     }
 }
Ejemplo n.º 20
0
 protected override void HandleRequest(C2Request request)
 {
     foreach(C2Port topPort in this.tops)
     {
         if (testConnectionMode){
             if (topPort.PassRequest(request)){
                 Debug.Log(name + " successfully sent request " + request.Type + " to " + topPort.TopBrick.name);
             }
             else{
                 Debug.Log(name + " failed to sent request " + request.Type + " to " + topPort.TopBrick.name);
             }
         }
         else{
             topPort.PassRequest(request);
         }
     }
 }
Ejemplo n.º 21
0
    protected void SendRequest(C2Request request)
    {
        foreach (C2Port port in this.tops){

            if (testConnectionMode){
                if (port.PassRequest(request)){
                        Debug.Log(name + " successfully sent request " + request.Type + " to " + port.TopBrick.name);
                }
                else{
                    if (testConnectionMode)
                        Debug.Log(name + " failed to sent request " + request.Type + " to " + port.TopBrick.name);
                }
            }
            else{
                port.PassRequest(request);
            }
        }
    }
Ejemplo n.º 22
0
    // Use this for GUI
    void OnGUI()
    {
        if (Network.peerType == NetworkPeerType.Disconnected){
            //We are currently disconnected: Not a client or host
            GUILayout.Label("Connection status: Disconnected");

            GUILayout.BeginVertical();
            if (GUILayout.Button ("Start Server"))
            {
                //Start a server for 32 clients using the "connectPort" given via the GUI
                //Ignore the nat for now
                C2Request request = new C2Request("StartServer");
                this.SendRequest(request);
                //Network.InitializeServer(32, connectPort , false);
            }
            GUILayout.EndVertical();

        }else{
            //We've got a connection(s)!

            if (Network.peerType == NetworkPeerType.Connecting){

                GUILayout.Label("Connection status: Connecting");

            } else if (Network.peerType == NetworkPeerType.Server){

                GUILayout.Label("Connection status: Server!");
                GUILayout.Label("Connections: "+Network.connections.Length);
                if(Network.connections.Length>=1){
                    GUILayout.Label("Ping to first player: "+Network.GetAveragePing(  Network.connections[0] ) );
                }
            }

            if (GUILayout.Button ("Close Server"))
            {
                C2Request request = new C2Request("CloseServer");
                this.SendRequest(request);
                //Network.Disconnect(200);
            }

        }
    }
Ejemplo n.º 23
0
    protected override void HandleRequest(C2Request request)
    {
        foreach(C2Port topPort in this.tops)
        {
            topPort.PassRequest(request);
        }

        string type = request.Type;
        switch(type){
        case C2MessageType.Request_Input:
            SendMovement((float)request.getData("VInput") , (float)request.getData("HInput"));
            break;
        case C2MessageType.Request_PlayerStatus:
            networkView.RPC("RequestPlayerStatus" , RPCMode.Server , Network.player);
            break;
        default:
            break;
        }
    }
Ejemplo n.º 24
0
 protected abstract void HandleRequest(C2Request request);
Ejemplo n.º 25
0
    // Update is called once per frame
    void Update()
    {
        if (currentPlayer.Alive == true){
            if (Network.isClient){
                transform.position += transform.forward * Time.deltaTime  * (currentPlayer.Speed)/3.0f;
                currentPlayer.Distance += (currentPlayer.Speed) * Time.deltaTime;
                float temp = Mathf.Log(currentPlayer.Distance , currentPlayer.Speed)/7.0f;
                temp = temp > 0 ? temp : 0;
                if (currentPlayer.Shield - Time.deltaTime > 0){
                    currentPlayer.Shield -= Time.deltaTime;
                }
                else{
                    currentPlayer.Shield = 0;
                    transform.FindChild("Circle").gameObject.SetActive(false);
                }
                if (currentPlayer.Energy > 0){

                    if (currentPlayer.Speed + temp < Player.MAX_SPEED){
                        currentPlayer.Speed +=  temp;
                    }
                    currentPlayer.Energy -= 0.8f;
                }
                else{
                    currentPlayer.Energy = 0;
                    if (currentPlayer.Speed - 0.2f > Mathf.Epsilon){
                        currentPlayer.Speed -= 0.2f;
                    }
                    else currentPlayer.Speed = 0;

                }
                currentPlayer.Score += (int)(100 +  50 * (temp) + 25 * currentPlayer.Coin);
                //send request to get the latest data
                C2Request request = new C2Request(C2MessageType.Request_PlayerStatus);
                this.SendRequest(request);
            }
            else if (Network.isServer){
                currentPlayer = ((Players)GameObject.Find("Players").GetComponent(typeof(Players))).playerList[owner];
                transform.position += transform.forward * Time.deltaTime  * (currentPlayer.Speed)/3.0f;

                currentPlayer.Distance += (currentPlayer.Speed) * Time.deltaTime;
                //currentPlayer.Shield -= Time.deltaTime;
                float temp = Mathf.Log(currentPlayer.Distance , currentPlayer.Speed)/7.0f;
                temp = temp > 0 ? temp : 0;

                if (currentPlayer.Shield - Time.deltaTime > 0){
                    currentPlayer.Shield -= Time.deltaTime;
                }
                else{
                    currentPlayer.Shield = 0;
                }
                if (currentPlayer.Energy > 0){

                    if (currentPlayer.Speed + temp < Player.MAX_SPEED){
                        currentPlayer.Speed +=  temp;
                    }
                    currentPlayer.Energy -= 0.8f;
                }
                else{
                    currentPlayer.Energy = 0;
                    if (currentPlayer.Speed - 0.2f > Mathf.Epsilon){
                        currentPlayer.Speed -= 0.2f;
                    }
                    else currentPlayer.Speed = 0;

                }
                currentPlayer.Score += (int)(100 +  50 * (temp) + 25 * currentPlayer.Coin);
            }
        }
    }
Ejemplo n.º 26
0
 protected override void HandleRequest(C2Request request)
 {
 }