private void Initialize() { #region CreateView Func<FlashTowerDefenseSized> CreateView = delegate { var v = new FlashTowerDefenseSized(ReallyNarrowWidth, FlashTowerDefense.DefaultHeight); var v_mask = new Shape(); v_mask.graphics.beginFill(0xffffff); v_mask.graphics.drawRect(0, 0, ReallyNarrowWidth, FlashTowerDefense.DefaultHeight); v_mask.graphics.endFill(); v.mask = v_mask; v_mask.AttachTo(v); return v; }; #endregion // now we need a bridge and a server var server = new Game { AtInterval = (a, i) => i.AtIntervalDo(a).stop, AtDelay = (a, i) => i.AtDelayDo(a).stop, }; var left_to_server = new global::FlashTowerDefense.Shared.SharedClass1.Bridge(); var server_to_left = new global::FlashTowerDefense.Shared.SharedClass1.Bridge(); var right_to_server = new global::FlashTowerDefense.Shared.SharedClass1.Bridge(); var server_to_right = new global::FlashTowerDefense.Shared.SharedClass1.Bridge(); var player_left = new Player { FromPlayer = left_to_server, ToPlayer = server_to_left, ToOthers = server_to_right, UserId = 0, Username = "******", AddScore = delegate { } }; Action<SharedClass1.IEvents, SharedClass1.RemoteEvents.WithUserArgumentsRouter_Broadcast> AttachRouter = (from, _Router) => { from.TeleportTo += _Router.UserTeleportTo; from.WalkTo += _Router.UserWalkTo; from.TakeBox += _Router.UserTakeBox; from.FiredWeapon += _Router.UserFiredWeapon; from.EnterMachineGun += _Router.UserEnterMachineGun; from.ExitMachineGun += _Router.UserExitMachineGun; from.StartMachineGun += _Router.UserStartMachineGun; from.StopMachineGun += _Router.UserStopMachineGun; from.AddDamage += _Router.UserAddDamage; from.AddDamageFromDirection += _Router.UserAddDamageFromDirection; from.ShowBulletsFlying += _Router.UserShowBulletsFlying; from.PlayerResurrect += _Router.UserPlayerResurrect; from.UndeployExplosiveBarrel += _Router.UserUndeployExplosiveBarrel; from.DeployExplosiveBarrel += _Router.UserDeployExplosiveBarrel; }; AttachRouter( left_to_server, new SharedClass1.RemoteEvents.WithUserArgumentsRouter_Broadcast { user = player_left.UserId, Target = player_left.ToOthers } ); var player_right = new Player { FromPlayer = right_to_server, ToPlayer = server_to_right, ToOthers = server_to_left, UserId = 1, Username = "******", AddScore = delegate { } }; AttachRouter( right_to_server, new SharedClass1.RemoteEvents.WithUserArgumentsRouter_Broadcast { user = player_right.UserId, Target = player_right.ToOthers } ); var left = CreateView(); left.MovementArrows.Enabled = false; //left.ToggleMusic(); var left_client = new FlashTowerDefenseClient.Implementation { Map = left, NetworkEvents = server_to_left, NetworkMessages = left_to_server, }; left_client.InitializeEvents(); left_client.InitializeMap(); left.MoveTo(0, 0).AttachTo(this); var right = CreateView(); right.MovementWASD.Enabled = false; var right_client = new FlashTowerDefenseClient.Implementation { Map = right, NetworkEvents = server_to_right, NetworkMessages = right_to_server, }; right_client.InitializeEvents(); right_client.InitializeMap(); right.MoveTo(Padding + ReallyNarrowWidth, 0).AttachTo(this); //server_to_left.ServerPlayerHello += e => Console.WriteLine(e.ToString()); //server_to_right.ServerPlayerHello += e => Console.WriteLine(e.ToString()); //right_to_server.WalkTo += e => Console.WriteLine("server sees this: " + e.ToString()); //server_to_left.WalkTo += e => Console.WriteLine("left sees this: " + e.ToString()); server.GameStarted(); 100.AtDelayDo( delegate { server.Users.Add(player_left); server.UserJoined(player_left); } ); 300.AtDelayDo( delegate { server.Users.Add(player_right); server.UserJoined(player_right); } ); }
private void Initialize() { #region CreateView Func <FlashTowerDefenseSized> CreateView = delegate { var v = new FlashTowerDefenseSized(ReallyNarrowWidth, FlashTowerDefense.DefaultHeight); var v_mask = new Shape(); v_mask.graphics.beginFill(0xffffff); v_mask.graphics.drawRect(0, 0, ReallyNarrowWidth, FlashTowerDefense.DefaultHeight); v_mask.graphics.endFill(); v.mask = v_mask; v_mask.AttachTo(v); return(v); }; #endregion // now we need a bridge and a server var server = new Game { AtInterval = (a, i) => i.AtIntervalDo(a).stop, AtDelay = (a, i) => i.AtDelayDo(a).stop, }; var left_to_server = new global::FlashTowerDefense.Shared.SharedClass1.Bridge(); var server_to_left = new global::FlashTowerDefense.Shared.SharedClass1.Bridge(); var right_to_server = new global::FlashTowerDefense.Shared.SharedClass1.Bridge(); var server_to_right = new global::FlashTowerDefense.Shared.SharedClass1.Bridge(); var player_left = new Player { FromPlayer = left_to_server, ToPlayer = server_to_left, ToOthers = server_to_right, UserId = 0, Username = "******", AddScore = delegate { } }; Action <SharedClass1.IEvents, SharedClass1.RemoteEvents.WithUserArgumentsRouter_Broadcast> AttachRouter = (from, _Router) => { from.TeleportTo += _Router.UserTeleportTo; from.WalkTo += _Router.UserWalkTo; from.TakeBox += _Router.UserTakeBox; from.FiredWeapon += _Router.UserFiredWeapon; from.EnterMachineGun += _Router.UserEnterMachineGun; from.ExitMachineGun += _Router.UserExitMachineGun; from.StartMachineGun += _Router.UserStartMachineGun; from.StopMachineGun += _Router.UserStopMachineGun; from.AddDamage += _Router.UserAddDamage; from.AddDamageFromDirection += _Router.UserAddDamageFromDirection; from.ShowBulletsFlying += _Router.UserShowBulletsFlying; from.PlayerResurrect += _Router.UserPlayerResurrect; from.UndeployExplosiveBarrel += _Router.UserUndeployExplosiveBarrel; from.DeployExplosiveBarrel += _Router.UserDeployExplosiveBarrel; }; AttachRouter( left_to_server, new SharedClass1.RemoteEvents.WithUserArgumentsRouter_Broadcast { user = player_left.UserId, Target = player_left.ToOthers } ); var player_right = new Player { FromPlayer = right_to_server, ToPlayer = server_to_right, ToOthers = server_to_left, UserId = 1, Username = "******", AddScore = delegate { } }; AttachRouter( right_to_server, new SharedClass1.RemoteEvents.WithUserArgumentsRouter_Broadcast { user = player_right.UserId, Target = player_right.ToOthers } ); var left = CreateView(); left.MovementArrows.Enabled = false; //left.ToggleMusic(); var left_client = new FlashTowerDefenseClient.Implementation { Map = left, NetworkEvents = server_to_left, NetworkMessages = left_to_server, }; left_client.InitializeEvents(); left_client.InitializeMap(); left.MoveTo(0, 0).AttachTo(this); var right = CreateView(); right.MovementWASD.Enabled = false; var right_client = new FlashTowerDefenseClient.Implementation { Map = right, NetworkEvents = server_to_right, NetworkMessages = right_to_server, }; right_client.InitializeEvents(); right_client.InitializeMap(); right.MoveTo(Padding + ReallyNarrowWidth, 0).AttachTo(this); //server_to_left.ServerPlayerHello += e => Console.WriteLine(e.ToString()); //server_to_right.ServerPlayerHello += e => Console.WriteLine(e.ToString()); //right_to_server.WalkTo += e => Console.WriteLine("server sees this: " + e.ToString()); //server_to_left.WalkTo += e => Console.WriteLine("left sees this: " + e.ToString()); server.GameStarted(); 100.AtDelayDo( delegate { server.Users.Add(player_left); server.UserJoined(player_left); } ); 300.AtDelayDo( delegate { server.Users.Add(player_right); server.UserJoined(player_right); } ); }