public void When_user_is_friend_with_loggedUser_return_user_trip()
        {
            // ARRANGE
            User.User originalLoggedUser = new User.User();

            _target.SetLoggerUser(originalLoggedUser);

            List<Trip.Trip> originaltripList
                = new List<Trip.Trip>() { new Trip.Trip() };

            _mockDaoWrapper.Setup(m =>
                m.FindTripsByUser(It.IsAny<User.User>()))
                .Returns(originaltripList);

            //_target.SetTripList(originaltripList);

            User.User original = new User.User();
            original.AddFriend(originalLoggedUser);

            // ACT
            List<Trip.Trip> actual = _target.GetTripsByUser(original);

            // ASSERT
            Check.That(actual).IsOnlyMadeOf(originaltripList);
        }
Esempio n. 2
0
 internal Permissions(User.User CurrentUser, Content.Folder CurrentFolder)
 {
     _user = CurrentUser;
     _folder = CurrentFolder;
     string SystemMessage = string.Empty;
     Load();
 }
 public void SetUp()
 {
     loggedUser = new User.User();
     anyUser = new User.User();
     _sessionService = Substitute.For<SessionService>();
     tripRepo = Substitute.For<TripRepository>();
 }
        public void Returns_no_trips()
        {
            var tripService = new TripService(this, null);
            var user = new User.User();

            var tripsByUser = tripService.GetTripsByUser(user);

            Assert.That(tripsByUser, Is.Empty);
        }
 public ModificacionProveedor(String username)
 {
     InitializeComponent();
     Login login = new Login();
     login.UserName = username;
     this.proveedorSeleccionado = homeUsr.getProveedor(login);
     this.comboBox1.DataSource = this.homeRol.getRolesParaTipo(this.proveedorSeleccionado.Rol.TipoUsuario);
     this.fill();
 }
        public void ShouldReturnFriendsTrips()
        {
            var userWithLoggedUserAsFriend = new User.User();
            userWithLoggedUserAsFriend.AddFriend(_loggedInUser);
            var tripService = new TripService(this, this);
            var trips = tripService.GetTripsByUser(userWithLoggedUserAsFriend);

            Assert.That(trips.Count, Is.EqualTo(1));
        }
Esempio n. 7
0
        public string ExecuteScript(string userId)
        {
            string message = null;
             UserScript specificUser = usersLoggingIn.Where(u => u.user.UserID == userId).SingleOrDefault();
             if (specificUser != null && specificUser.lastStep != specificUser.currentStep) {
                 switch (specificUser.currentStep) {
                     case Steps.SPLASH:
                         message = SplashScreen();
                         usersLoggingIn.Where(u => u.user.UserID == userId).SingleOrDefault().currentStep = Steps.NAME;
                         usersLoggingIn.Where(u => u.user.UserID == userId).SingleOrDefault().lastStep = Steps.NONE;
                         break;
                     case Steps.NAME:
                         message = AskForFirstName();
                         usersLoggingIn.Where(u => u.user.UserID == userId).SingleOrDefault().currentStep = Steps.AWAITINGRESPONSE;
                         usersLoggingIn.Where(u => u.user.UserID == userId).SingleOrDefault().lastStep = Steps.NAME;
                         break;
                     case Steps.PASSWORD:
                         message = AskForPassword();
                         usersLoggingIn.Where(u => u.user.UserID == userId).SingleOrDefault().currentStep = Steps.AWAITINGRESPONSE;
                         usersLoggingIn.Where(u => u.user.UserID == userId).SingleOrDefault().lastStep = Steps.PASSWORD;
                         break;
                     case Steps.SUCCEEDED:
                         //let's see if they are connecting back to a limbo character first and set things right
                         User.User user = new User.User();
                         user = MySockets.Server.GetAUserPlusState(specificUser.user.UserID, User.User.UserState.LIMBO);
                         if (user != null) {
                             MySockets.Server.UpdateUserSocket(specificUser.user.UserID);
                             specificUser.user = user;
                         }
                         else {
                             specificUser.user.Player.Load(specificUser.user.Player.ID);
                         }
                         message = "Welcome " + specificUser.user.Player.FirstName + " " + specificUser.user.Player.LastName + "!";
                         specificUser.user.CurrentState = User.User.UserState.TALKING;
                         specificUser.user.InBuffer = "look\r\n";
                         usersLoggingIn.Remove(specificUser);
                         break;
                     case Steps.AWAITINGRESPONSE:
                     default:
                         break;
                 }
             }
             else {
                 if (specificUser != null && specificUser.currentStep == Steps.NAME) {
                     message = "No character with that name exists!\n\rDo you want to create a new character? (Y/N)";
                     specificUser.currentStep = Steps.AWAITINGRESPONSE;
                     specificUser.lastStep = Steps.CREATECHAR;
                 }
                 else if (specificUser != null && specificUser.currentStep == Steps.PASSWORD) {
                     message = "Incorrect Password!";
                     specificUser.lastStep = Steps.NONE;
                 }
             }

             return message;
        }
Esempio n. 8
0
 public ModificacionCliente(String username)
 {
     InitializeComponent();
     Login l = new Login();
     l.UserName = username;
     this.clienteSeleccionado = homeUsr.getUsuario(l);
     homeUsr.setInformacionAlUsuario(this.clienteSeleccionado);
     this.comboBox1.DataSource = this.homeRol.getRolesParaTipo(this.clienteSeleccionado.Rol.TipoUsuario);
     this.fill();
 }
        public void WhenUserHasOneFriendButNoTrips()
        {
            var loggedInUser = new UserQueJeTest();
            var friend = new UserQueJeTest();
            friend.AddFriend(loggedInUser);

            TripService ts = new TripService(new DummyTripWrapper(), new DummyUserSessionWrapper(loggedInUser));
            var result = ts.GetTripsByUser(friend);
            Assert.IsNotNull(result);
            Assert.AreEqual(0, result.Count);
        }
        public void Returns_no_trips()
        {
            var tripService = new TripService(this, this);
            var user = new User.User();
            user.AddFriend(new User.User());
            user.AddFriend(_loggedInUser);

            var tripsByUser = tripService.GetTripsByUser(user);

            Assert.That(tripsByUser, Is.EqualTo(_expectedTrips));
        }
        public void When_logged_in_user_is_a_friend_then_returns_trips_from_service()
        {
            var loggedInUser = new User.User();
            var tripsFromService = new List<Trip.Trip>{new Trip.Trip()};
            var tripService = new TripService(new MockUserSession(loggedInUser), new MockTripDAOWrapper(tripsFromService));
            var userToQuery = new User.User();
            userToQuery.AddFriend(loggedInUser);

            var actual = tripService.GetTripsByUser(userToQuery);
            Assert.That(actual, Is.EqualTo(tripsFromService));
        }
        public void When_user_has_no_friend_return_empty_list()
        {
            // ARRANGE
            _target.SetLoggerUser(new User.User());

            User.User original = new User.User();

            // ACT
            List<Trip.Trip> actual = _target.GetTripsByUser(original);

            // ASSERT
            Check.That(actual).IsEmpty();
        }
Esempio n. 13
0
 public virtual bool OnLeave(User.User user)
 {
     UpdateCounter("rooms_leave", 1);
     return(true);
 }
 public List<TripQueJeTest> FindTripsByUser(UserQueJeTest user)
 {
     return user.Trips();
 }
Esempio n. 15
0
 public void Init()
 {
     user = new User.User();
 }
Esempio n. 16
0
 public static List <Trip> FindTripsByUser(User.User user)
 {
     throw new DependendClassCallDuringUnitTestException(
               "TripDAO should not be invoked on an unit test.");
 }
Esempio n. 17
0
 private void ConfirmRestart(User.User user, RecivedMessage message)
 {
     HandleButtonAlways(user, message);
 }
 public static UserSubscriptionInfo FindOrCreate(User.User user) => Find(user) ?? Find(Create(user));
Esempio n. 19
0
 public VariableContainer GetRoomVariables(User.User user)
 {
     return(user.VariableManager.GetRoomVariables(Identifier));
 }
Esempio n. 20
0
 public void SendMessage(User.User user, string message, string intent)
 {
     SendMessage(user, message, null, intent);
 }
Esempio n. 21
0
 public virtual User.User RegisterUser(string invitationIdentifier, string userName, string password,
     Enablement enablement, Person person)
 {
     AssertionConcern.True(this.Active, "Tenant is not active.");
     User.User user = null;
     if(this.IsRegistrationAvailableThrough(invitationIdentifier)) {
         person.TenantId = this.TenantId;
         user = new User.User(this.TenantId, userName, password, enablement, person);
     }
     return user;
 }
Esempio n. 22
0
 public abstract void OnMessage(User.User user, ReceivedMessage message);
Esempio n. 23
0
 public void SendMessage(User.User user, string message, string[][] buttons)
 {
     SendMessage(user, message, buttons, null);
 }
Esempio n. 24
0
 public void SendMessage(User.User user, string message)
 {
     SendMessage(user, message, null, null);
 }
Esempio n. 25
0
 public static IEnumerable <string> GetItems(User.User user)
 {
     return(user.ItemManager.Items
            .Where(i => i.CanUse(user))
            .Select(i => $"{i.Item.Name} (x{i.Count})"));
 }
Esempio n. 26
0
 public void SwitchAndHandle(User.User user, MessageReceived handler, ReceivedMessage message)
 {
     SwitchAction(user, handler);
     handler?.Invoke(user, message);
 }
Esempio n. 27
0
        public static User.User GetUserAsNPCFromList(List<string> id)
        {
            if (id.Count > 0) {
                User.User result = new User.User();
                result.Player = GetAnNPCByID(id[0]);
                result.CurrentState = User.User.UserState.TALKING;
                return result;
            }

            return null;
        }
Esempio n. 28
0
 public virtual void OnReturn(User.User user)
 {
     UpdateCounter("rooms_leave", -1);
     user.RoomManager.Leave();
 }
Esempio n. 29
0
 public UpdateUser(User.User user)
 {
     _user = user;
 }
Esempio n. 30
0
        public MessageReceived GetCurrentRoute(User.User user)
        {
            var route = GetRouteIdx(user);

            return(route == null ? null : Routes[(int)route]);
        }
Esempio n. 31
0
 public virtual void OnRemove(User.User user, ItemInfo info, int count)
 {
 }
Esempio n. 32
0
        private int?GetRouteIdx(User.User user)
        {
            var action = GetRoomVariables(user).Get("action");

            return((Serializable.Int)action);
        }
Esempio n. 33
0
 public override void OnMessage(User.User user, RecivedMessage message)
 {
     HandleAction(user, message);
 }
Esempio n. 34
0
 private static void Go(User.User user, string identificator)
 {
     Log("{roomId}", "go", user, identificator);
 }
Esempio n. 35
0
 public override bool CanUse(User.User user, ItemInfo info)
 {
     return(user.RoomManager.GetRoom() is IMonster);
 }
Esempio n. 36
0
 private static void Reset(User.User user)
 {
     Log("", "reset", user);
 }
Esempio n. 37
0
 IList <Trip> ITripRepository.FindTripsByUser(User.User user)
 {
     return(TripDAO.FindTripsByUser(user));
 }
Esempio n. 38
0
 private static void Dead(User.User user)
 {
     Log("", "dead", user);
 }
Esempio n. 39
0
        //this shouldn't be a static class eventually.
        public static void Main(string[] args)
        {
            Console.Title = "Novus MUD Server 0.7";
            string databasePath;
            //start the Mongodatabase if the server is running
            try {
                databasePath = ParseConfigFile();
            }
            catch (FileNotFoundException) {
                Console.WriteLine("Settings.cfg file not found in current directory.  Server shutting down.");
                return;
            }

            System.Diagnostics.Process.Start(databasePath);

            Console.WriteLine(">>> MongoDB initialized <<<");

            ClientHandling.MessageBuffer messageHandler = new ClientHandling.MessageBuffer("Server");

            MySockets.Server server = MySockets.Server.GetServer();

            //get script singletons
            Scripts.Login loginScript = Scripts.Login.GetScript();
            Scripts.CreateCharacter CreationScript = Scripts.CreateCharacter.GetScript();
            Scripts.LevelUpScript levelUpScript = Scripts.LevelUpScript.GetScript();

            Commands.CommandParser.LoadUpCommandDictionary();
            Character.NPCUtils npcUtils = Character.NPCUtils.GetInstance();
            npcUtils.LoadNPCs();

            MudTimer.StartUpTimers();

            server.IPAddress = "192.168.1.112";
            server.Port = 1301;

            try {
                server.StartServer();

                Console.WriteLine(">>> Listening at IP: " + server.IPAddress + " <<<");
                Console.WriteLine(">>> Port: " + server.Port + " <<<");

                StringBuilder sb = new StringBuilder();
                double speed = 0.0D;

                while (true) {
                    if (Console.KeyAvailable) {
                        ConsoleKeyInfo key = Console.ReadKey();

                        if (key.Key == ConsoleKey.Backspace && sb.Length > 0) {
                            sb.Remove(sb.Length - 1, 1);
                        }
                        else if (key.Key != ConsoleKey.Enter) {
                            sb.Append(key.KeyChar);
                        }

                        if (key.Key == ConsoleKey.Enter) {
                            Console.WriteLine(">>> " + sb.ToString());
                            if (sb.ToString().Contains("-exit")) {
                                break;
                            }
                            else {
                                server.SendToAllClients(sb.ToString());
                            }
                            sb.Clear();
                        }
                    }
                    try {
                        //run NPC AI on separate thread, yes even if no players are playing.
                        ThreadPool.QueueUserWorkItem(delegate {
                            npcUtils.ProcessAIForNPCs();
                        });

                        if (MySockets.Server.GetCurrentUserList().Count > 0) {
                            int index = 0;
                            System.Diagnostics.Stopwatch stopWatch = System.Diagnostics.Stopwatch.StartNew();

                            foreach (User.User user in MySockets.Server.GetCurrentUserList()) {
                                if (user.CurrentState == User.User.UserState.TALKING || user.CurrentState == User.User.UserState.LIMBO) {
                                    CommandParser.ParseCommands(user);
                                }

                                else if (user.CurrentState == User.User.UserState.JUST_CONNECTED) {
                                    //just connected let's make them login
                                    loginScript.AddUserToScript(MySockets.Server.GetCurrentUserList().ElementAt(index));
                                    user.CurrentState = User.User.UserState.LOGGING_IN;
                                }

                                 //the player should not receive any messages while in the level up script
                                else if (user.CurrentState == User.User.UserState.LEVEL_UP) {
                                    if (user.CurrentState == User.User.UserState.LEVEL_UP) {
                                        levelUpScript.AddUserToScript(MySockets.Server.GetCurrentUserList().ElementAt(index));
                                    }

                                    string temp = levelUpScript.ExecuteScript(user.UserID);

                                    user.MessageHandler(temp);

                                    if (user.InBufferReady && user.CurrentState != User.User.UserState.TALKING) {
                                        user.CurrentState = levelUpScript.InsertResponse(user.InBuffer, user.UserID);
                                    }

                                }

                                else if (user.CurrentState == User.User.UserState.LOGGING_IN) {
                                    //they are in the middle of the login process
                                    string temp = loginScript.ExecuteScript(user.UserID);
                                    if (!string.IsNullOrEmpty(temp)) {
                                        if (temp.Contains("Welcome"))
                                            temp += "\n\n\r";
                                        user.MessageHandler(temp);
                                    }

                                    if (user.InBufferReady && user.CurrentState != User.User.UserState.TALKING) {
                                        user.CurrentState = loginScript.InsertResponse(user.InBuffer, user.UserID);
                                    }

                                    if (user.CurrentState == User.User.UserState.CREATING_CHARACTER) {
                                        CreationScript.AddUserToScript(MySockets.Server.GetCurrentUserList().ElementAt(index));
                                    }
                                }

                                else if (user.CurrentState == User.User.UserState.CREATING_CHARACTER) {
                                    string temp = CreationScript.ExecuteScript(user.UserID);
                                    if (!string.IsNullOrEmpty(temp)) {
                                        if (temp.Contains("Welcome"))
                                            temp += "\n\n\r";
                                        user.MessageHandler(temp);
                                    }

                                    if (user.InBufferReady && user.CurrentState != User.User.UserState.TALKING) {
                                        user.CurrentState = CreationScript.InsertResponse(user.InBuffer, user.UserID);
                                    }
                                }
                                //on this method not sure if I want to display one line per each call of this or display everything to the user
                                //until their outbuffer is empty.  It works this way as of now.
                                server.SendToAllClients();
                                index++;
                                stopWatch.Stop();
                                if ((double)stopWatch.Elapsed.TotalSeconds > speed) {
                                    speed = (double)stopWatch.Elapsed.TotalSeconds;
                                    Console.WriteLine(String.Format("Slowest: {0}", stopWatch.Elapsed));
                                }

                            }
                        }
                    }
                    catch (Exception ex) {
                        User.User temp = new User.User(true);
                        temp.UserID = "Internal";
                        // CommandParser.ReportBug(temp, new List<string>(new string[] { "Bug Internal Error: " + ex.Message + "\n" + ex.StackTrace }));
                    }
                }

                Console.WriteLine(">>> Server shutting down <<<");
                server.ShutdownServer();
            }
            catch (SocketException se) {
                Console.WriteLine(se.Message);
            }
            catch (Exception ex) {
                Console.WriteLine("Whoa! : " + ex.Message + "\n\n" + ex.StackTrace);
            }
            Console.ReadLine();
        }
Esempio n. 40
0
 private static void Received(User.User user, ReceivedMessage message)
 {
     Log("id<{id}> '{message}'", "messageReceived", user, message.MessageId, message.Text);
 }
Esempio n. 41
0
 private static void Sent(User.User user, Tuple <SentMessage, ReceivedMessage> message)
 {
     Log("in reply to '{reply}': {message}", "messageSent", user,
         message.Item2?.MessageId,
         message.Item1.Text);
 }
Esempio n. 42
0
 protected virtual List <Trip> GetTripsBy(User.User user)
 {
     return(_tripDAO.FindTripsByUser(user));
 }
 public DummyUserSessionWrapper(UserQueJeTest loggedInUser)
 {
     this.loggedInUser = loggedInUser;
 }
Esempio n. 44
0
 public void Open(User.User user) => State.Open(this, user);
 public MockUserSession(User.User loggedUser)
 {
     _loggedUser = loggedUser;
 }
Esempio n. 46
0
 public void Close(User.User user) => State.Close(this, user);
Esempio n. 47
0
 private SaveGame()
 {
     _user = User.User.Instance;
     _gameboard = Gameboard.Instance;
 }
Esempio n. 48
0
 public UserScript(User.User user)
 {
     this.user = user;
     currentStep = Steps.SPLASH;
     lastStep = Steps.NONE;
 }
Esempio n. 49
0
 public ScriptUsers(User.User user)
 {
     this.user = user;
     currentStep = "NONE";
     lastStep = "NONE";
 }
 //protected override List<Trip.Trip> GetTripListByUser(User.User user)
 //{
 //    return _tripList;
 //}
 internal void SetLoggerUser(User.User user)
 {
     _loggerUser = user;
 }
Esempio n. 51
0
        private User.User nuevoProveedor()
        {
            User.User prov = new User.User();
            prov.DatosLogin = new Login();
            prov.DatosProveedor = new DatosProveedor();
            prov.Direccion = new Direccion();
            prov.DatosLogin.Habilitado = this.checkBox1.Checked;
            prov.DatosLogin.UserName = this.proveedorSeleccionado.DatosLogin.UserName;

            prov.DatosProveedor.Cuit = this.textBox4.Text;
            prov.DatosProveedor.Mail = this.textBox2.Text;
            prov.DatosProveedor.NombreContacto = this.textBox12.Text;
            prov.DatosProveedor.RazonSocial = this.textBox1.Text;
            prov.DatosProveedor.Rubro = this.textBox13.Text;
            prov.DatosProveedor.Telefono = this.textBox3.Text;

            prov.Direccion.Calle = this.textBox6.Text;
            prov.Direccion.Depto = this.textBox9.Text;
            prov.Direccion.Localidad = this.textBox10.Text;

            String campo = "";
            try
            {
                campo = "piso";
                if (!this.textBox8.Text.Equals("")) prov.Direccion.Piso = Convert.ToInt32(this.textBox8.Text);
                campo = "codigo postal";
                prov.Direccion.CodigoPostal = Convert.ToInt32(this.textBox11.Text);

            }
            catch (Exception)
            {
                String error = "El campo " + campo + " tiene un formato incorrecto.";
                throw new Exception(error);
            }

            return prov;
        }
Esempio n. 52
0
 private PublicUserResponseMessage CreatePublicUserResponseMessage(User.User u)
 {
     return(new PublicUserResponseMessage {
         user = new PublicUser(u.Id, u.UserName)
     });
 }
Esempio n. 53
0
        private User.User nuevoCliente()
        {
            User.User nuevoCliente = new User.User();
            nuevoCliente.DatosCliente = new DatosCliente();
            nuevoCliente.DatosLogin = new Login();
            nuevoCliente.DatosLogin.UserName = this.clienteSeleccionado.DatosLogin.UserName;
            nuevoCliente.DatosLogin.Habilitado = this.checkBox1.Checked;
            nuevoCliente.DatosCliente.Nombre = textBox1.Text;
            nuevoCliente.DatosCliente.Apellido = this.textBox2.Text;
            nuevoCliente.DatosCliente.Dni = textBox3.Text;
            nuevoCliente.DatosCliente.Mail = this.textBox4.Text;
            nuevoCliente.DatosCliente.Telefono = textBox5.Text;
            nuevoCliente.DatosCliente.FechaNac = this.getFechaToAAAAMMDD();
            nuevoCliente.Direccion = new Direccion();
            nuevoCliente.Direccion.Calle = this.textBox6.Text;
            nuevoCliente.Direccion.Depto = this.textBox9.Text;
            nuevoCliente.Direccion.Localidad = this.textBox10.Text;

            String campo = "";
            try
            {
                campo = "piso";
                if (!this.textBox8.Text.Equals("")) nuevoCliente.Direccion.Piso = Convert.ToInt32(this.textBox8.Text);
                campo = "codigo postal";
                nuevoCliente.Direccion.CodigoPostal = Convert.ToInt32(this.textBox11.Text);

            }
            catch (Exception)
            {
                String error = "El campo " + campo + " tiene un formato incorrecto.";
                throw new Exception(error);
            }

            return nuevoCliente;
        }
 public static UserSubscriptionInfo Find(User.User user)
 => Connection().Query <UserSubscriptionInfo>(
     "SELECT * FROM user_subscription_info WHERE user_id = @user_id LIMIT 1",
     new { user_id = user.id }
     ).FirstOrDefault();
Esempio n. 55
0
 public void Reopen(User.User user) => State.Reopen(this, user);
Esempio n. 56
0
        public object GetTarget(string type) {
            User.User user = new User.User();
            Character.Iactor character = CharacterFactory.Factory.CreateCharacter(CharacterEnums.CharacterType.PLAYER);
            user.Player = character;
            object o = null;
            if (string.Equals(type, "Character", StringComparison.CurrentCultureIgnoreCase)) {
                o = character;
            }
            else {
                o = user;
            }

            return o;
        }
Esempio n. 57
0
File: NPC.cs Progetto: vadian/Novus
        public bool Loot(User.User looter, List <string> commands, bool byPassCheck = false)
        {
            bool looted = false;

            if (IsDead())
            {
                List <Items.Iitem> result = new List <Items.Iitem>();
                StringBuilder      sb     = new StringBuilder();

                if (!byPassCheck)
                {
                    //Let's see if who's looting was the killer otherwise we check the time of death
                    //also check if looter is part of a group if so then the group will provide the loot logic.
                    if (!string.Equals(looter.UserID, ((Iactor)this).KillerID, StringComparison.InvariantCultureIgnoreCase))
                    {
                        if (!CanLoot(looter.UserID))
                        {
                            //looter not the killer not in group and time to loot has not expired
                            looter.MessageHandler("You did not deal the killing blow and can not loot this corpse at this time.");
                            return(false);
                        }
                    }


                    //let's check if looter is in a group
                    if (!string.IsNullOrEmpty(looter.GroupName))
                    {
                        //looter is part of a group, let's see if the group loot rule is free for all first
                        Groups.Group group = Groups.Groups.GetInstance().GetGroup(looter.GroupName);
                        if (group.GroupRuleForLooting != Groups.GroupLootRule.First_to_loot)
                        {
                            group.Loot(looter, commands, this);
                            return(false);
                        }
                    }
                }

                if (commands.Contains("all"))
                {
                    sb.AppendLine("You loot the following items from " + FirstName + ":");
                    Inventory.GetInventoryAsItemList().ForEach(i => {
                        sb.AppendLine(i.Name);
                        looter.Player.Inventory.AddItemToInventory(Inventory.RemoveInventoryItem(i, this.Equipment));
                    });

                    looted = true;
                }
                else if (commands.Count > 2)                   //the big one, should allow to loot individual item from the inventory
                {
                    string   itemName       = Items.Items.ParseItemName(commands);
                    int      index          = 1;
                    int      position       = 1;
                    string[] positionString = commands[0].Split('.');                     //we are separating based on using the decimal operator after the name of the npc/item
                    if (positionString.Count() > 1)
                    {
                        int.TryParse(positionString[positionString.Count() - 1], out position);
                    }

                    Inventory.GetInventoryAsItemList().ForEach(i => {
                        if (string.Equals(i.Name, itemName, StringComparison.InvariantCultureIgnoreCase) && index == position)
                        {
                            looter.Player.Inventory.AddItemToInventory(Inventory.RemoveInventoryItem(i, this.Equipment));

                            sb.AppendLine("You loot " + i.Name + " from " + FirstName);
                            Rooms.Room.GetRoom(looter.Player.Location).InformPlayersInRoom(string.Format("{0} loots {1} from {3}'s lifeless body.", looter.Player.FirstName, i.Name, FirstName), new List <string>()
                            {
                                ID
                            });
                            index  = -1;                            //we found it and don't need this to match anymore
                            looted = true;
                        }
                        else
                        {
                            index++;
                        }
                    });
                }
                else
                {
                    sb.AppendLine(FirstName + " was carrying: ");
                    Inventory.GetInventoryAsItemList().ForEach(i => sb.AppendLine(i.Name));
                }

                looter.MessageHandler(sb.ToString());
            }
            return(looted);
        }
Esempio n. 58
0
 public TempLvlChar(User.User player)
 {
     user = player;
     currentStep = ScriptSteps.None;
     lastStep = ScriptSteps.Step1;
     maxOptions = player.Player.GetAttributes().Count;
 }