Esempio n. 1
0
    public void OnDataReceived(DataPackage dp)
    {
        //print(dp.Id);

        if (dp is FlagPackage)
        {
            FlagPackage fp = (FlagPackage)dp;
            if (fp.Event == FlagPackage.FlagEvent.Spawn)
            {
                GameObject b = (GameObject)Instantiate(flagPrefab);
                b.transform.position = fp.Position;

                Flag f = b.GetComponent <Flag>();
                flags.Add(f);
                f.FlagId = fp.FlagId;
            }
            else if (fp.Event == FlagPackage.FlagEvent.Capture)
            {
                Flag f = GetFlag(fp.FlagId);
                if (f != null)
                {
                    Destroy(f.transform.root.gameObject);
                    flags.Remove(f);
                }

                spawnFlag();
            }
        }
    }
Esempio n. 2
0
    public void spawnFlag()
    {
        FlagPackage fp = new FlagPackage();

        fp.FlagId   = System.Guid.NewGuid();
        fp.Event    = FlagPackage.FlagEvent.Spawn;
        fp.Position = getRandomPositionOnTerrain(Flag.TerrainOffset);
        NetworkManager.Instance.Client.SendData(fp);
    }
Esempio n. 3
0
        public override DataPackage CreateFromBody(string b)
        {
            string[] split = b.Split('|');

            FlagPackage fp = new FlagPackage();

            fp.FlagId = new Guid(split[0]);
            fp.Event  = (FlagEvent)int.Parse(split[1]);

            if (fp.Event == FlagEvent.Drop || fp.Event == FlagEvent.Spawn)
            {
                fp.Position = new Vector3(float.Parse(split[2]), float.Parse(split[3]), float.Parse(split[4]));
            }

            return(fp);
        }
Esempio n. 4
0
    void OnTriggerEnter(Collider col)
    {
        if (!IsControlled)
        {
            return;
        }

        if (col.transform.root.name.Contains("Base"))
        {
            Base b = col.transform.root.gameObject.GetComponentInChildren <Base>();
            Flag f = GameManager.Instance.GetFlag(this);
            if (b == null || f == null || (b.Owner == null && GameManager.Instance.GetPlayerBase(this) != null) ||
                (b.Owner != null && b.Owner != this))
            {
                return;
            }

            if (b.Owner == null)
            {
                //capture base

                BaseCapturePackage bcp = new BaseCapturePackage();
                bcp.PlayerIP = Client.GetLocalIPAddress();
                bcp.BaseId   = b.BaseId;
                NetworkManager.Instance.Client.SendData(bcp);
            }

            FlagPackage fp = new FlagPackage();
            fp.Event  = FlagPackage.FlagEvent.Capture;
            fp.FlagId = f.FlagId;
            NetworkManager.Instance.Client.SendData(fp);
        }
        else if (col.gameObject.name.Contains("Flag"))
        {
            Flag f = col.GetComponentInChildren <Flag>();
            if (GameManager.Instance.GetFlag(this) != null || f == null || f.Owner != null)
            {
                return;
            }

            FlagPackage fp = new FlagPackage();
            fp.Event  = FlagPackage.FlagEvent.PickUp;
            fp.FlagId = f.FlagId;
            NetworkManager.Instance.Client.SendData(fp);
        }
    }
Esempio n. 5
0
    public void OnDataReceived(DataPackage dp)
    {
        FlagPackage fp = dp as FlagPackage;

        if (fp == null || fp.FlagId != FlagId)
        {
            return;
        }

        if (fp.Event == FlagPackage.FlagEvent.PickUp)
        {
            Owner = GameManager.Instance.GetPlayer(fp.SenderRemoteIPEndpoint.Address);
        }
        else if (fp.Event == FlagPackage.FlagEvent.Drop)
        {
            Owner = null;
            transform.root.position = GameManager.Instance.getPositionOnTerrain(transform.root.position, TerrainOffset);
        }
    }
Esempio n. 6
0
    void Die()
    {
        setRobotVisible(false);
        setGangnamVisible(false);

        if (!IsControlled)
        {
            return;
        }

        respawnTimer = Options.RespawnTimer;

        Flag f = GameManager.Instance.GetFlag(this);

        if (f != null)
        {
            FlagPackage fp = new FlagPackage();
            fp.Event  = FlagPackage.FlagEvent.Drop;
            fp.FlagId = f.FlagId;
            NetworkManager.Instance.Client.SendData(fp);
        }
    }
Esempio n. 7
0
        public override DataPackage CreateFromBody(string b)
        {
            string[] split = b.Split('|');

            FlagPackage fp = new FlagPackage();
            fp.FlagId = new Guid(split[0]);
            fp.Event = (FlagEvent)int.Parse(split[1]);

            if (fp.Event == FlagEvent.Drop || fp.Event == FlagEvent.Spawn)
                fp.Position = new Vector3(float.Parse(split[2]), float.Parse(split[3]), float.Parse(split[4]));

            return fp;
        }
Esempio n. 8
0
    public void OnDataReceived(DataPackage dp)
    {
        if (dp is TokenChangePackage)
        {
            if (sendCounter == 1)
            {
                resend      = true;
                sendCounter = 0;
            }
            else
            {
                sendCounter++;
            }
        }
        else if (dp is PlayerMovePackage && dp.SenderRemoteIPEndpoint.Address.Equals(PlayerIP))
        {
            PlayerMovePackage pmp = (PlayerMovePackage)dp;

            if (!pmp.RotationOnly)
            {
                //set position
                transform.root.position = pmp.Position;

                //set rotation
                float newRotX = pmp.Rotation.x - transform.root.rotation.eulerAngles.x;
                float newRotY = pmp.Rotation.y - transform.root.rotation.eulerAngles.y;
                float newRotZ = pmp.Rotation.z - transform.root.rotation.eulerAngles.z;
                transform.root.Rotate(newRotX, newRotY, newRotZ);

                //set direction
                if (pmp.Dir.Has(PlayerMovePackage.Direction.Stop))
                {
                    anim.SetFloat("Speed", 0);
                }
                if (pmp.Dir.Has(PlayerMovePackage.Direction.Up))
                {
                    anim.SetFloat("Speed", 1);
                }
                if (pmp.Dir.Has(PlayerMovePackage.Direction.Back))
                {
                    anim.SetFloat("Speed", -1);
                }

                if (pmp.Dir == PlayerMovePackage.Direction.Stop)
                {
                    setGangnamVisible(true);
                }
                else
                {
                    setGangnamVisible(false);
                }

                anim.speed = animSpeed;

                //float h = Input.GetAxis("Horizontal");				// setup h variable as our horizontal input axis
                //float v = Input.GetAxis("Vertical");				// setup v variables as our vertical input axis
                //print(h + " | " + v);
                //anim.SetFloat("Speed", v);							// set our animator's float parameter 'Speed' equal to the vertical input axis
                //anim.SetFloat("Direction", h);                        // set our animator's float parameter 'Direction' equal to the horizontal input axis
                //anim.speed = animSpeed;								// set the speed of our animator to the public variable 'animSpeed'
                //anim.SetLookAtWeight(lookWeight);					// set the Look At Weight - amount to use look at IK vs using the head's animation	}
            }
            else if (!IsControlled)
            {
                //set rotation
                float newRotX = pmp.Rotation.x - transform.root.rotation.eulerAngles.x;
                float newRotY = pmp.Rotation.y - transform.root.rotation.eulerAngles.y;
                float newRotZ = pmp.Rotation.z - transform.root.rotation.eulerAngles.z;
                transform.root.Rotate(newRotX, newRotY, newRotZ);
            }
        }
        else if (dp is FlagPackage && dp.SenderRemoteIPEndpoint.Address.Equals(PlayerIP))
        {
            FlagPackage fp = (FlagPackage)dp;
            if (fp.Event == FlagPackage.FlagEvent.Capture)
            {
                Score += 3;
            }
            else if (fp.Event == FlagPackage.FlagEvent.Drop)
            {
                Score--;
            }
        }
        else if (dp is FireWeaponPackage && dp.SenderRemoteIPEndpoint.Address.Equals(PlayerIP))
        {
            FireWeaponPackage fwp = (FireWeaponPackage)dp;

            //Set laser target
            Camera c       = GetComponentInChildren <Camera>();
            float  newRotX = fwp.Target - c.transform.rotation.eulerAngles.x;
            c.transform.Rotate(newRotX, 0, 0);

            startFiringPackageSent = false;
            stopFiringPackageSent  = false;
            firing    = fwp.Enabled;
            fireTimer = 0;
        }
        else if (dp is PlayerHealthPackage)
        {
            PlayerHealthPackage php = (PlayerHealthPackage)dp;
            if (!php.PlayerIP.Equals(PlayerIP))
            {
                return;
            }

            Health -= php.Value;

            if (IsDead)
            {
                Health = 0;
                Die();
            }
        }
        else if (dp is PlayerSpawnPackage && dp.SenderRemoteIPEndpoint.Address.Equals(PlayerIP))
        {
            setRobotVisible(true);
            setGangnamVisible(true);

            Health = 100;

            if (IsControlled)
            {
                GameManager.Instance.spawnRobot(PlayerIP);
            }
        }
    }
Esempio n. 9
0
    void OnTriggerEnter(Collider col)
    {
        if (!IsControlled)
            return;

        if (col.transform.root.name.Contains("Base"))
        {
            Base b = col.transform.root.gameObject.GetComponentInChildren<Base>();
            Flag f = GameManager.Instance.GetFlag(this);
            if (b == null || f == null || (b.Owner == null && GameManager.Instance.GetPlayerBase(this) != null) ||
                (b.Owner != null && b.Owner != this))
                return;

            if (b.Owner == null)
            {
                //capture base

                BaseCapturePackage bcp = new BaseCapturePackage();
                bcp.PlayerIP = Client.GetLocalIPAddress();
                bcp.BaseId = b.BaseId;
                NetworkManager.Instance.Client.SendData(bcp);
            }

            FlagPackage fp = new FlagPackage();
            fp.Event = FlagPackage.FlagEvent.Capture;
            fp.FlagId = f.FlagId;
            NetworkManager.Instance.Client.SendData(fp);
        }
        else if (col.gameObject.name.Contains("Flag"))
        {
            Flag f = col.GetComponentInChildren<Flag>();
            if (GameManager.Instance.GetFlag(this) != null || f == null || f.Owner != null)
                return;

            FlagPackage fp = new FlagPackage();
            fp.Event = FlagPackage.FlagEvent.PickUp;
            fp.FlagId = f.FlagId;
            NetworkManager.Instance.Client.SendData(fp);
        }
    }
Esempio n. 10
0
    void Die()
    {
        setRobotVisible(false);
        setGangnamVisible(false);

        if (!IsControlled)
            return;

        respawnTimer = Options.RespawnTimer;

        Flag f = GameManager.Instance.GetFlag(this);
        if (f != null)
        {
            FlagPackage fp = new FlagPackage();
            fp.Event = FlagPackage.FlagEvent.Drop;
            fp.FlagId = f.FlagId;
            NetworkManager.Instance.Client.SendData(fp);
        }
    }
Esempio n. 11
0
 public void spawnFlag()
 {
     FlagPackage fp = new FlagPackage();
     fp.FlagId = System.Guid.NewGuid();
     fp.Event = FlagPackage.FlagEvent.Spawn;
     fp.Position = getRandomPositionOnTerrain(Flag.TerrainOffset);
     NetworkManager.Instance.Client.SendData(fp);
 }