public void ClickedFootball( object sender, PlayerClickedEventArgs e ) { //replace e.coords with player.Pos.toblock() (moving event) if ( e.Coords == _world.footballPos ) { double ksi = 2.0 * Math.PI * ( -e.Player.Position.L ) / 256.0; double r = Math.Cos( ksi ); double phi = 2.0 * Math.PI * ( e.Player.Position.R - 64 ) / 256.0; Vector3F dir = new Vector3F( ( float )( r * Math.Cos( phi ) ), ( float )( r * Math.Sin( phi ) ), ( float )( Math.Sin( ksi ) ) ); _world.AddPhysicsTask( new Particle( _world, e.Coords, dir, e.Player, Block.White, _footballBehavior ), 0 ); } }
//events public static void playerClicking(object sender, PlayerClickedEventArgs e) { if (e.Player.World.GameOn) { if (Games.MineChallenge.mode == Games.MineChallenge.GameMode.NULL) { if (platform.Values.Count > 0) { foreach (Vector3I block in platform.Values) { if (e.Coords == block) { Player.RaisePlayerPlacedBlockEvent(e.Player, world.Map, block, world.Map.GetBlock(e.Coords), world.Map.GetBlock(e.Coords), BlockChangeContext.Manual); world.Map.QueueUpdate(new BlockUpdate(null, block, Block.Pink)); } } } } } }
public static void PlayerClickedDoor(object sender, PlayerClickedEventArgs e) { Zone[] allowed, denied; if (e.Player.WorldMap.Zones.CheckDetailed(e.Coords, e.Player, out allowed, out denied)) { foreach (Zone zone in allowed) { if (zone.Name.EndsWith("door")) { lock (openDoorsLock) { if (!openDoors.Contains(zone)) { openDoor(zone, e.Player); openDoors.Add(zone); } } } } } }
public static void PlayerClickedDoor(object sender, PlayerClickedEventArgs e) { //after 10s, revert effects of /DoorCheck if ((DateTime.Now - e.Player.Info.doorCheckTime).TotalSeconds > 10 && e.Player.Info.doorCheckTime != DateTime.MaxValue) { e.Player.Info.doorCheckTime = DateTime.MaxValue; e.Player.Info.isDoorChecking = false; } Zone[] allowed, denied; if (e.Player.WorldMap.Zones.CheckDetailed(e.Coords, e.Player, out allowed, out denied)) { foreach (Zone zone in allowed) { if (zone.Name.StartsWith("Door_")) { Player.RaisePlayerPlacedBlockEvent(e.Player, e.Player.WorldMap, e.Coords, e.Block, e.Block, BlockChangeContext.Manual); //if player is checking a door, print the door info instead of opening it if (e.Player.Info.isDoorChecking) { e.Player.Message(zone.Name); e.Player.Message("Created by {0} on {1}", zone.CreatedBy, zone.CreatedDate); return; } lock (openDoorsLock) { if (!openDoors.Contains(zone)) { openDoor(zone, e.Player); openDoors.Add(zone); } } } } } }
public static void PlayerClickedPhysics(object sender, PlayerClickedEventArgs e) { World world = e.Player.World; if (world.Map.GetBlock(e.Coords) == Block.TNT) { if (!e.Player.GunMode) { lock (world.SyncRoot) { world.AddPhysicsTask(new TNTTask(world, e.Coords, e.Player, false, true), 0); } } } }
public static void PlayerClicked(object sender, PlayerClickedEventArgs e) { if (GameManager.GameIsOn) { if (e.Player.World.Equals(GameManager.GameWorld)) { Zone[] allowed, denied; if (e.Player.WorldMap.Zones.CheckDetailed(e.Coords, e.Player, out allowed, out denied)) { foreach (Zone zone in allowed) { if (zone.Name.EndsWith("redbase1")) { if (GameManager.BlueTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Red); e.Player.World.Map.QueueUpdate(update); Red1Click++; if (Red1Click > 29) { CaptureBase(zone, e.Player); Red1Click = 0; zone.Name = "bluecaptured1"; e.Player.World.Players.Message("The &9Blue Team &Scaptured &CRed Base 1"); GameManager.BlueBaseCount++; GameManager.RedBaseCount--; } } if (GameManager.RedTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Red); e.Player.World.Map.QueueUpdate(update); if (Red1Click > 0) Red1Click--; } } if (zone.Name.EndsWith("bluecaptured1")) { if (GameManager.RedTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Blue); e.Player.World.Map.QueueUpdate(update); BlueCapturedClick++; if (BlueCapturedClick > 29) { CaptureBase(zone, e.Player); BlueCapturedClick = 0; zone.Name = "redbase1"; e.Player.World.Players.Message("The &CRed Team &Stook back &CRed Base 1"); GameManager.BlueBaseCount--; GameManager.RedBaseCount++; } } if (GameManager.BlueTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Blue); e.Player.World.Map.QueueUpdate(update); if (BlueCapturedClick > 0) BlueCapturedClick--; } } //-------------------- if (zone.Name.EndsWith("redbase2")) { if (GameManager.BlueTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Red); e.Player.World.Map.QueueUpdate(update); Red2Click++; if (Red2Click > 29) { CaptureBase(zone, e.Player); Red2Click = 0; zone.Name = "bluecaptured2"; e.Player.World.Players.Message("The &9Blue Team &Scaptured &CRed Base 2"); GameManager.BlueBaseCount++; GameManager.RedBaseCount--; } } if (GameManager.RedTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Red); e.Player.World.Map.QueueUpdate(update); if (Red2Click > 0) Red2Click--; } } if (zone.Name.EndsWith("bluecaptured2")) { if (GameManager.RedTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Blue); e.Player.World.Map.QueueUpdate(update); BlueCapturedClick2++; if (BlueCapturedClick2 > 29) { CaptureBase(zone, e.Player); BlueCapturedClick2 = 0; zone.Name = "redbase2"; e.Player.World.Players.Message("The &CRed Team &Stook back &CRed Base 2"); GameManager.BlueBaseCount--; GameManager.RedBaseCount++; } } if (GameManager.BlueTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Blue); e.Player.World.Map.QueueUpdate(update); if (BlueCapturedClick2 > 0) BlueCapturedClick2--; } } //--------------- if (zone.Name.EndsWith("redbase3")) { if (GameManager.BlueTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Red); e.Player.World.Map.QueueUpdate(update); Red3Click++; if (Red3Click > 29) { CaptureBase(zone, e.Player); Red3Click = 0; zone.Name = "bluecaptured3"; e.Player.World.Players.Message("The &9Blue Team &Scaptured &CRed Base 3"); GameManager.BlueBaseCount++; GameManager.RedBaseCount--; } } if (GameManager.RedTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Red); e.Player.World.Map.QueueUpdate(update); if (Red3Click > 0) Red3Click--; } } if (zone.Name.EndsWith("bluecaptured3")) { if (GameManager.RedTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Blue); e.Player.World.Map.QueueUpdate(update); BlueCapturedClick3++; if (BlueCapturedClick3 > 29) { CaptureBase(zone, e.Player); BlueCapturedClick3 = 0; zone.Name = "redbase3"; e.Player.World.Players.Message("The &CRed Team &Stook back &CRed Base 2"); GameManager.BlueBaseCount--; GameManager.RedBaseCount++; } } if (GameManager.BlueTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Blue); e.Player.World.Map.QueueUpdate(update); if (BlueCapturedClick3 > 0) BlueCapturedClick3--; } } //----------blue---------- if (zone.Name.EndsWith("bluebase1")) { if (GameManager.RedTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Blue); e.Player.World.Map.QueueUpdate(update); Blue1Click++; if (Blue1Click > 29) { CaptureBase(zone, e.Player); Blue1Click = 0; zone.Name = "redcaptured1"; e.Player.World.Players.Message("The &CRed Team &Scaptured &9Blue Base 1"); GameManager.BlueBaseCount--; GameManager.RedBaseCount++; } } if (GameManager.BlueTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Blue); e.Player.World.Map.QueueUpdate(update); if (Blue1Click > 0) Blue1Click--; } } if (zone.Name.EndsWith("redcaptured1")) { if (GameManager.BlueTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Red); e.Player.World.Map.QueueUpdate(update); RedCapturedClick++; if (RedCapturedClick > 29) { CaptureBase(zone, e.Player); RedCapturedClick = 0; zone.Name = "bluebase1"; e.Player.World.Players.Message("The &9Blue Team &Stook back &9Blue Base 1"); GameManager.BlueBaseCount++; GameManager.RedBaseCount--; } } if (GameManager.RedTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Red); e.Player.World.Map.QueueUpdate(update); if (RedCapturedClick > 0) RedCapturedClick--; } } //-------------------- if (zone.Name.EndsWith("bluebase2")) { if (GameManager.RedTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Blue); e.Player.World.Map.QueueUpdate(update); Blue2Click++; if (Blue2Click > 29) { CaptureBase(zone, e.Player); Blue2Click = 0; zone.Name = "redcaptured2"; e.Player.World.Players.Message("The &CRed Team &Scaptured &9Blue Base 2"); GameManager.BlueBaseCount--; GameManager.RedBaseCount++; } } if (GameManager.BlueTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Blue); e.Player.World.Map.QueueUpdate(update); if (Blue2Click > 0) Blue2Click--; } } if (zone.Name.EndsWith("redcaptured2")) { if (GameManager.BlueTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Red); e.Player.World.Map.QueueUpdate(update); RedCapturedClick2++; if (RedCapturedClick2 > 29) { CaptureBase(zone, e.Player); RedCapturedClick2 = 0; zone.Name = "bluebase2"; e.Player.World.Players.Message("The &9Blue Team &Stook back &9Blue Base 2"); GameManager.BlueBaseCount++; GameManager.RedBaseCount--; } } if (GameManager.RedTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Red); e.Player.World.Map.QueueUpdate(update); if (RedCapturedClick2 > 0) RedCapturedClick2--; } } //--------------- if (zone.Name.EndsWith("bluebase3")) { if (GameManager.RedTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Blue); e.Player.World.Map.QueueUpdate(update); Blue3Click++; if (Blue3Click > 29) { CaptureBase(zone, e.Player); Blue3Click = 0; zone.Name = "redcaptured3"; e.Player.World.Players.Message("The &CRed Team &Scaptured &9Blue Base 3"); GameManager.BlueBaseCount--; GameManager.RedBaseCount++; } } if (GameManager.BlueTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Blue); e.Player.World.Map.QueueUpdate(update); if (Blue3Click > 0) Blue3Click--; } } if (zone.Name.EndsWith("redcaptured3")) { if (GameManager.BlueTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Red); e.Player.World.Map.QueueUpdate(update); RedCapturedClick3++; if (RedCapturedClick3 > 29) { CaptureBase(zone, e.Player); RedCapturedClick3 = 0; zone.Name = "bluebase3"; e.Player.World.Players.Message("The &9Blue Team &Stook back &9Blue Base 3"); GameManager.BlueBaseCount++; GameManager.RedBaseCount--; } } if (GameManager.RedTeam.Contains(e.Player)) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Red); e.Player.World.Map.QueueUpdate(update); if (RedCapturedClick3 > 0) RedCapturedClick3--; } } else return; } } } } if (!GameManager.GameIsOn) { Zone[] allowed, denied; if (e.Player.WorldMap.Zones.CheckDetailed(e.Coords, e.Player, out allowed, out denied)) { foreach (Zone zone in allowed) { if (zone.Name.Contains("redbase")) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Red); e.Player.World.Map.QueueUpdate(update); } if (zone.Name.Contains("bluebase")) { BlockUpdate update = new BlockUpdate(null, e.Coords, Block.Blue); e.Player.World.Map.QueueUpdate(update); } } } } }