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(); } } }
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); }
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); }
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); } }
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); } }
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); } }
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; }
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); } } }
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); } }
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); } }