public static void SendMessage(Connection c, SharedClass1.Messages m, params object[] e) { var i = new Message(((int)m).ToString()); foreach (var z in e) { i.Add(z); } c.Send(i); }
void UserWalkTo(SharedClass1.RemoteEvents.UserWalkToArguments e) { var MemoryStream_UInt8 = e.bytestream.Select(i => (byte)i).ToArray(); var ms = new MemoryStream(MemoryStream_UInt8); var mr = new BinaryReader(ms); var x = mr.ReadDouble(); var y = mr.ReadDouble(); this.CoPlayers.Where(k => k.Identity.user == e.user).ForEach(k => k.Guard.WalkTo(x, y)); }
void UserGuardLookAt(SharedClass1.RemoteEvents.UserGuardLookAtArguments e) { this.Map.GuardSprites.Where(k => k.ConstructorIndexForSync == e.index).ForEach(k => k.Direction = e.arc); }
void UserGuardWalkTo(SharedClass1.RemoteEvents.UserGuardWalkToArguments e) { var MemoryStream_UInt8 = e.bytestream.Select(i => (byte)i).ToArray(); var ms = new MemoryStream(MemoryStream_UInt8); var mr = new BinaryReader(ms); var index = mr.ReadInt32(); var x = mr.ReadDouble(); var y = mr.ReadDouble(); var Targets = this.Map.GuardSprites.Where(k => k.ConstructorIndexForSync == index).ToArray(); //Map.WriteLine("got UserGuardWalkTo " + MemoryStream_UInt8.Length + " " + new { index, Targets.Length }); Targets.ForEach(k => k.WalkTo(x, y)); }
void UserLookAt(SharedClass1.RemoteEvents.UserLookAtArguments e) { this.CoPlayers.Where(k => k.Identity.user == e.user).ForEach(k => k.Guard.Direction = e.arc); }
private void PlayerAdvertise(SharedClass1.RemoteEvents.UserPlayerAdvertiseArguments e) { CoPlayer c = CoPlayers.SingleOrDefault(k => k.Identity.user == e.user); #region does that coplayer already exist? if (c == null) { // the player has just joined c = new CoPlayer { Identity = e }.AddTo(CoPlayers); //c.WalkToTeleported += // delegate // { // this.Map.WriteLine(c.Identity.name + " has teleported"); // }; //c.WalkToDone += // delegate // { // this.Map.WriteLine(c.Identity.name + " has stopped"); // }; //c.WalkToStart += // delegate // { // this.Map.WriteLine(c.Identity.name + " started walking"); // }; } #endregion if (c.Guard == null) { Map.WriteLine("coplayer " + e.name + " spawned as a new guard"); c.Guard = this.Map.CreateGuard().AddTo(this.Map.EgoView.BlockingSprites); c.Guard.MinimapZIndex = SpriteInfoExtended.MinimapZIndex_OnTop; c.Guard.MinimapColor = 0xff0000ff; c.Guard.MinimapInactiveColor = 0x80000080; c.Guard.TakeDamage += (damage, DamageOwner) => { // we will broadcast damage by our weapons if (DamageOwner != Map.EgoWeaponIdentity) return; // we should not mirror remoted damage if (DisableAddDamageToCoPlayer) return; // we have been shot Messages.AddDamageToCoPlayer(c.Identity.user, damage); }; c.Guard.TakeDamageDone += (damage, DamageOwner) => { if (c.Guard.Health <= 0) { c.Guard.MinimapColor = 0xff00007f; c.Guard = null; Map.WriteLine("coplayer " + e.name + " died and left a corpse"); if (DamageOwner == Map.EgoWeaponIdentity) { // ego killed a coplayer // killing a coplayer will result in revealing end level if (this.Map.HalfOfTheTreasureCollected != null) this.Map.HalfOfTheTreasureCollected(); } else { // coplayer killed a coplayer } } }; this.Map.EgoView.UpdatePOV(true); } var MemoryStream_UInt8 = e.vector.Select(i => (byte)i).ToArray(); var ms = new MemoryStream(MemoryStream_UInt8); var mr = new BinaryReader(ms); c.Guard.Health = mr.ReadDouble(); c.Kills = mr.ReadInt32(); c.Score = mr.ReadInt32(); c.Guard.Direction = mr.ReadDouble(); c.Guard.Position = new Point(mr.ReadDouble(), mr.ReadDouble()); //this.Map.WriteLine("present: " + e.name); }