Ejemplo n.º 1
0
 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 );
     }
 }
Ejemplo n.º 2
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));
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 3
0
 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);
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 4
0
        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);
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 5
0
 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);
             }
         }
     }
 }
Ejemplo n.º 6
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);
                        }
                    }
                }
            }
        }