예제 #1
0
        public BasePlayer TryRecruit(string playerPartialName)
        {
            if (BasePlayer.activePlayerList.Count(p => p.displayName.IndexOf(playerPartialName, StringComparison.InvariantCultureIgnoreCase) != -1) != 1)
            {
                return(null);
            }

            BasePlayer recruit = BasePlayer.activePlayerList.Single(p => p.displayName.IndexOf(playerPartialName, StringComparison.InvariantCultureIgnoreCase) != -1);

            if (recruit == Boss || PendingRequest.Contains(recruit) || Henchmen.Contains(recruit))
            {
                return(null);
            }

            PendingRequest.Add(recruit);
            return(recruit);
        }
예제 #2
0
        public bool TryPromote(BasePlayer player)
        {
            if (PendingRequest.Contains(player))
            {
                PendingRequest.Remove(player);
            }

            if (Outlaws.Contains(player))
            {
                Outlaws.Remove(player);
            }

            if (!Henchmen.Contains(player))
            {
                Henchmen.Add(player);
                return(true);
            }
            return(false);
        }
예제 #3
0
        public void SetBoss(BasePlayer newBoss)
        {
            if (currentBoss != newBoss)
            {
                currentBoss = newBoss;
                if (currentBoss == null)
                {
                    noBossSince = DateTime.Now;
                }
                Outlaws.Clear();

                PendingRequest.Clear();

                foreach (Henchman hench in Henchmen.All())
                {
                    hench.Player.inventory.Strip();
                }

                Henchmen.Clear();
                LootContainer = null;
            }
        }
예제 #4
0
 public DevilsIslandState()
 {
     Outlaws        = new Outlaws();
     Henchmen       = new Henchmen();
     PendingRequest = new List <BasePlayer>();
 }