Пример #1
0
 public static void AddGuildToList( Guild g )
 {
     if ( g == null ) {
         throw new ArgumentNullException( "guild" );
     }
     List<Guild> gs = Cache.Guilds.ToList();
     gs.Add( g );
     Cache.Guilds = gs.ToArray();
 }
Пример #2
0
 public ExplodingBug( Player p )
 {
     player = p;
     world = player.World;
     guild = GuildManager.PlayersGuild( player.Info );
     end = player.Position.ToBlockCoords();
     block = new Vector3I( end.X, end.Y, end.Z - 1 );
     Started = true;
     task = Scheduler.NewBackgroundTask( t => StartAI() ).RunForever( TimeSpan.FromMilliseconds( 230 ) );
     endTask = Scheduler.NewTask( t => Stop() ).RunOnce( TimeSpan.FromSeconds( 25 ) );
     player.PublicAuxStateObjects.Add( "bug", this );
 }
Пример #3
0
 /// <summary>
 /// returns the kill score of an entire guild
 /// </summary>
 /// <param name="g">Guild in question</param>
 /// <returns>number of kills</returns>
 public static int GetGuildKillsTotal( Guild g )
 {
     int Score = 0;
     foreach ( String s in PlayerKillScores ) {
         string p = s.Split( '$' )[0];
         if ( g.Members.Contains( p ) ) {
             PlayerInfo temp = PlayerDB.FindPlayerInfoExact( p );
             if ( temp != null ) {
                 string t = GetPlayerScoreEntry( temp );
                 if ( t != null ) {
                     Score += int.Parse( t.Split( '$' )[1] );
                 }
             }
         }
     }
     return Score;
 }
Пример #4
0
 /// <summary>
 /// Creates a guild
 /// </summary>
 /// <param name="Name">Name of the guild</param>
 /// <param name="Tag">Tag of the guild</param>
 /// <param name="GuildMaster">Creator of the guild (player)</param>
 public static void CreateGuild( String Name, Player GuildMaster )
 {
     //Run some checks
     //==========================================================================
     foreach ( Guild g1 in Cache.Guilds ) {
         if ( g1.Name.Equals( Name, StringComparison.OrdinalIgnoreCase ) ) {
             GuildMaster.Message( "&WError: Selected guild name already exists" );
             return;
         }
         if ( CheckStringSimilarities( g1.Name, Name ) >= 80 ) {
             GuildMaster.Message( "&WError: Selected name is over 80% similar to another guild name \"{0}\"", g1.Name );
             return;
         }
     }
     if ( PlayerHasGuild( GuildMaster.Info ) ) {
         GuildMaster.Message( "&WError: You are already in a guild. You can leave your guild by using /Guild Quit" );
         return;
     }
     if ( Name.Length > 20 ) {
         GuildMaster.Message( "&WError: Guild name cannot exceed 20 characters" );
         return;
     }
     int i = 0;
     foreach ( Char c in Name.ToCharArray() ) {
         if ( c == ' ' )
             i++;
     }
     if ( i > 2 ) {
         GuildMaster.Message( "&WError: Guild name contains too many spaces (More than 2)" );
         return;
     }
     Name = Color.StripColors( Name );
     //==========================================================================
     Guild g = new Guild( Name, null, GuildMaster.Name );
     g.Level = 0;
     g.XP = 0;
     g.PvP = false;
     AddGuildToList( g );
     GuildMaster.Message( "Your guild \"{0}\" has been created, but is provisional. " +
     "You need to add 3 more members before your guild becomes active.\nAs the guild creator, " +
     "you are now the guild master and have full control of the guild", Name );
 }
Пример #5
0
 public Turret( Player p )
 {
     player = p;
     world = p.World;
     guild = GuildManager.PlayersGuild( p.Info );
     end = player.Position.ToBlockCoords();
     Vector3I checkPos = new Vector3I( end.X, end.Y, end.Z - 2 );
     Block b = world.Map.GetBlock( checkPos );
     if ( Physics.BlockThrough( b ) ) {
         player.Message( "&WYou can only place a turret on the ground, not in the air" );
         return;
     }
     blocks = new Vector3I[] { new Vector3I( end ),
         new Vector3I( end.X, end.Y, end.Z - 1 ),
         new Vector3I( end.X, end.Y, end.Z + 1 ) };
     start = blocks[0];
     BuildTurret();
     task = Scheduler.NewBackgroundTask( t => StartAI() ).RunForever( TimeSpan.FromMilliseconds( 250 ) );
     AddTurretToList();
     lastTimeShot = DateTime.UtcNow;
 }
Пример #6
0
 public static bool GuildHasPerk( Guild guild, Perk perk )
 {
     return guild.AvailablePerks().Contains( perk );
 }
Пример #7
0
 /// <summary>
 /// Stops all running perks on the guild instance
 /// </summary>
 /// <param name="guild">Guild in question</param>
 public static void StopAllGuildPerks( Guild guild )
 {
     Perk[] perks = guild.AvailablePerks().ToArray();
     foreach ( Perk p in perks ) {
         p.StopPerk();
     }
 }
Пример #8
0
 public ExplodingBugPerk( Guild guild )
     : base(guild)
 {
 }
Пример #9
0
 protected Perk( Guild Guild )
 {
     guild = Guild;
     Started = false;
 }
Пример #10
0
 /// <summary>
 /// Construct this class, let the class know what guild it is working with
 /// </summary>
 /// <param name="g">The guild this perk is for</param>
 public TestPerk( Guild guild )
     : base(guild)
 {
 }
Пример #11
0
 public PvP_Perk( Guild guild )
     : base(guild)
 {
 }
Пример #12
0
        private TimeSpan start = new TimeSpan( 19, 0, 0 ); //7 o'clock

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Construct this class, let the class know what guild it is working with
        /// </summary>
        /// <param name="g">The guild this perk is for</param>
        public DoubleXpPerk( Guild guild )
            : base(guild)
        {
        }
Пример #13
0
 public TurretPerk( Guild guild )
     : base(guild)
 {
 }
Пример #14
0
 /// <summary>
 /// Construct this class, let the class know what guild it is working with
 /// </summary>
 /// <param name="g">The guild this perk is for</param>
 public SlapAllPerk( Guild guild )
     : base(guild)
 {
     start = new DateTime();
 }
Пример #15
0
 public static void RemoveGuildFile( Guild guild )
 {
     try {
         string FileName = String.Format( "{0}/{1}.txt", Dir, guild.Name );
         if ( File.Exists( FileName ) ) {
             File.Delete( FileName );
         }
     } catch ( Exception e ) {
         Logger.Log( LogType.Error, "Could not delete guild file name: " + e.Message );
     }
 }
Пример #16
0
 /// <summary>
 /// Starts all running perks on the guild instance
 /// </summary>
 /// <param name="guild">Guild in question</param>
 public static void StartAllGuildPerks( Guild guild )
 {
     lock ( guild.Perks ) {
         foreach ( Perk p in guild.AvailablePerks() ) {
             if ( !p.Started )
                 p.StartPerk();
         }
     }
 }
Пример #17
0
 public static bool IsPlayerAnAdmin( String Name, Guild g )
 {
     if ( g.GuildMaster == Name )
         return true;
     if ( g.Admins == null )
         return false;
     if ( g.Admins.Contains( Name ) )
         return true;
     return false;
 }
Пример #18
0
 public static bool IsPlayerAnAdmin( Player player, Guild g )
 {
     return IsPlayerAnAdmin( player.Name, g );
 }
Пример #19
0
 public static string GetGuildPvPTagColor( Guild guild )
 {
     if ( guild.PvP )
         return Color.Red;
     else
         return Color.Green;
 }
Пример #20
0
 public static void LoadAllGuilds()
 {
     foreach ( string f in Directory.GetFiles( Dir ) ) {
         Guild g = new Guild();
         try {
             String[] lines = File.ReadAllLines( f );
             foreach ( String set in lines ) {
                 String[] setting = set.Split( ':' );
                 if ( setting[0].Equals( "name" ) ) {
                     g.Name = setting[1];
                 }
                 if ( setting[0].Equals( "tag" ) ) {
                     g.Tag = setting[1];
                 }
                 if ( setting[0].Equals( "members" ) ) {
                     string[] names = setting[1].Split( ',' );
                     List<String> l = new List<String>();
                     foreach ( string n in names ) {
                         string nn = n;
                         nn = n.Replace( ",", "" ).Trim();
                         if ( !string.IsNullOrWhiteSpace( nn ) || !string.IsNullOrEmpty( nn ) ) {
                             l.Add( nn );
                         }
                     }
                     g.Members = l.ToArray();
                 }
                 if ( setting[0].Equals( "admins" ) ) {
                     string[] names = setting[1].Split( ',' );
                     List<String> l = new List<String>();
                     foreach ( string n in names ) {
                         string nn = n;
                         nn = n.Replace( ",", "" ).Trim();
                         if (!string.IsNullOrWhiteSpace(nn) || !string.IsNullOrEmpty( nn ) ) {
                             l.Add( nn );
                         }
                     }
                     g.Admins = l.ToArray();
                 }
                 if ( setting[0].Equals( "invitedmembers" ) ) {
                     string[] names = setting[1].Split( ',' );
                     List<String> l = new List<String>();
                     foreach ( string n in names ) {
                         string nn = n;
                         nn = n.Replace( ",", "" ).Trim();
                         if ( !string.IsNullOrWhiteSpace( nn ) || !string.IsNullOrEmpty( nn ) ) {
                             l.Add( nn );
                         }
                     }
                     g.PlayersInvited = l.ToArray();
                 }
                 if ( setting[0].Equals( "guildmaster" ) ) {
                     g.GuildMaster = setting[1];
                 }
                 if ( setting[0].Equals( "open" ) ) {
                     g.Open = bool.Parse( setting[1] );
                 }
                 if ( setting[0].Equals( "level" ) ) {
                     g.Level = int.Parse( setting[1] );
                 }
                 if ( setting[0].Equals( "currentexp" ) ) {
                     g.XP = float.Parse( setting[1] );
                 }
                 if ( setting[0].Equals( "pvp" ) ) {
                     g.PvP = Boolean.Parse( setting[1] );
                 }
                 if ( g.Members == null )
                     g.Members = new string[] { };
                 if ( g.PlayersInvited == null )
                     g.PlayersInvited = new string[] { };
                 if ( g.Level == -1 )
                     g.Level = 0;
                 if ( g.XP == -1 )
                     g.XP = 0;
             }
         } catch ( Exception e ) {
             Logger.LogToConsole( "Failed to load guild options!: " + e.Message );
         }
         GuildManager.AddGuildToList( g );
     }
     String path = "plugins/PlayerScores.txt";
     try {
         if ( File.Exists( path ) ) {
             Cache.PlayerKillScores = File.ReadAllLines( path );
         }
         Logger.LogToConsole( "Loaded player kill scores" );
     } catch ( Exception e ) {
         Logger.LogToConsole( "Failed to load playerscores!: " + e.Message );
     }
 }