Exemplo n.º 1
0
        public void DropThning(IStuff stuff, Box location, int count, IBagObject bagObject)
        {
            IStuff st = player.HaveStuffInBox(stuff, bagObject);

            player.RemoveStaff(st, bagObject);
            location.MoveStuff(stuff, 1);
        }
 public void OnBagRemoved(IBagObject bagObject, string key, string value)
 {
     if (_ignoreEvents)
     {
         return;
     }
     AddNewAction(StorageActionType.Remove, new StorageBag(bagObject.Id, key, value));
 }
Exemplo n.º 3
0
        public void RemoveStaff(IStuff Stuff, IBagObject bagObject)
        {
            IStuff obj = HaveStuff(Stuff);

            if (obj != null)
            {
                bagObject.Things.Remove(obj);
            }
        }
Exemplo n.º 4
0
        public void DropBag(IBagObject bagObj)
        {
            if (bagObj.GetType() == typeof(City) || bagObj.GetType() == typeof(Country) || bagObj.GetType() == typeof(District) || bagObj.GetType() == typeof(ObjectBuilding))
            {
                return;
            }
            var l = (Room)data.CurrentLocation;

            l.DropBag(GetPlayer(), bagObj);
        }
Exemplo n.º 5
0
        public IStuff HaveStuffInBox(IStuff Stuff, IBagObject bagObject)
        {
            IStuff o = bagObject.Things.FirstOrDefault(s => s == Stuff);

            if (o != null)
            {
                return(o);
            }
            return(null);
        }
Exemplo n.º 6
0
        public bool GetThningToBag(IStuff stuff, Box location, int count, IBagObject Bag)
        {
            IStuff st = location.GetStaff(stuff);

            if (player.AddStuffToBag(stuff, Bag))
            {
                location.RemoveStaff(stuff, 1);
                return(true);
            }
            return(false);
        }
Exemplo n.º 7
0
 public void DropBag(Player player, IBagObject bagObject)
 {
     LocationBags.Add(bagObject);
     if (bagObject.GetType() == typeof(Bag))
     {
         player.Bag = null;
     }
     if (bagObject.GetType() == typeof(SmallBag))
     {
         player.SmallBag = null;
     }
 }
Exemplo n.º 8
0
 public bool AddStuffToBag(IStuff Stuff, IBagObject bagObject)
 {
     if (bagObject.classname == "SmallBag" && Stuff.BagType == 2)
     {
         return(false);
     }
     if (bagObject != null &&
         bagObject.MaxWeight - GetBagWeight(bagObject) > Stuff.Weight)
     {
         AddToBag(Stuff, bagObject);
         return(true);
     }
     return(false);
 }
Exemplo n.º 9
0
 public void GetBag(Player player, IBagObject bagObject)
 {
     if (bagObject.GetType() == typeof(Bag))
     {
         if (player.Bag != null)
         {
             return;
         }
         player.Bag = (Bag)bagObject;
     }
     if (bagObject.GetType() == typeof(SmallBag))
     {
         if (player.SmallBag != null)
         {
             return;
         }
         player.SmallBag = (SmallBag)bagObject;
     }
     LocationBags.Remove(bagObject);
 }
Exemplo n.º 10
0
        public String DrawBagHtml(IBagObject bagObject)
        {
            String addHtml = "<br /><br /><a class='btn btn-success' href='close:help'>Закрыть сумку " + GetPlayer().Bag.Name + "</a>";
            String html    = "<b>Содержимое сумки " + bagObject.Name + "</b><br />";

            if (bagObject.Things.Count == 0)
            {
                html += bagObject.Name + " Пуста" + addHtml;
                return(html);
            }
            else
            {
                //var ls = stuff.GroupBy(x => new { x.Name, x.id, x.classname }).Select(grp => new { GroupID = grp.Key, Count = grp.ToList().Count }).ToList();
                var ls = bagObject.Things.GroupBy(x => new { x.Name, x.id, x.UseCount }).OrderBy(o => o.Key.Name).Select(obj => obj.ToList()).ToList();

                html += "<table class=\"tableview\">";
                foreach (var stfobj in ls)
                {
                    String Methods = "";
                    var    stf     = stfobj.FirstOrDefault();
                    String dropev  = RegisterInternalEvent(() =>
                    {
                        GetPlayer().RemoveStaff(stf, bagObject);
                    }, bagObject.classname);
                    if (stf.GetType() == typeof(Alcohol))
                    {
                        String drinkev = RegisterInternalEvent(() =>
                        {
                            if (!GetPlayer().DrinkAlcohol((Alcohol)stf, 0))
                            {
                                sc.InternalMesage = "Я не состоянии больше пить";
                            }
                            else
                            {
                                GetPlayer().RemoveStaff(stf, bagObject);
                            }
                        }, bagObject.classname);
                        Methods += "<a href='callback:" + drinkev + @"'>Выпить</a> ";
                    }
                    if (stf.GetType() == typeof(Parfume))
                    {
                        String drinkev = RegisterInternalEvent(() =>
                        {
                            if (!GetPlayer().UseParfume((Parfume)stf))
                            {
                                GetPlayer().RemoveStaff(stf, bagObject);
                            }
                            data.time.AddTime(1);
                        }, bagObject.classname);
                        Methods += "<a href='callback:" + drinkev + @"'>Надушиться</a> ";
                    }
                    if (stf.GetType() == typeof(Pomade))
                    {
                        String drinkev = RegisterInternalEvent(() =>
                        {
                            if (!GetPlayer().UsePomade((Pomade)stf))
                            {
                                GetPlayer().RemoveStaff(stf, bagObject);
                            }
                            data.time.AddTime(2);
                        }, bagObject.classname);
                        Methods += "<a href='callback:" + drinkev + @"'>Накрасить губы</a> ";
                    }
                    if (stf.GetType() == typeof(EyeShadow))
                    {
                        String eyecolor = RegisterInternalEvent(() =>
                        {
                            if (!GetPlayer().UseEyeShadow((EyeShadow)stf))
                            {
                                GetPlayer().RemoveStaff(stf, bagObject);
                            }
                            data.time.AddTime(5);
                        }, bagObject.classname);
                        Methods += "<a href='callback:" + eyecolor + @"'>Накрасить глаза</a> ";
                    }
                    if (stf.GetType() == typeof(HairBrush))
                    {
                        String drinkev = RegisterInternalEvent(() =>
                        {
                            GetPlayer().UseHairBrush((HairBrush)stf);
                            data.time.AddTime(1);
                        }, bagObject.classname);
                        Methods += "<a href='callback:" + drinkev + @"'>Причесаться</a> ";
                    }
                    if (stf.GetType() == typeof(HandMirror))
                    {
                        String mirrorEvent = RegisterHtmlEvent(() =>
                        {
                            data.time.AddTime(1);
                            return(DrawMirrorHtml());
                        }, bagObject.classname);
                        Methods += "<a href='htmlcallback:" + mirrorEvent + @"'>Посмотреться в зеркало</a> ";
                    }
                    html += @"<tr>
            <td>" + stf.Name + ((stf.UseCount > 0) ? " (" + stf.UseCount + " раз)" : "") + @"</td>
            <td>" + stfobj.Count + @"</td>
            <td>" + Methods + @"<a href='callback:" + dropev + @"' onclick=""ConfirmDelete(this)"">Выкинуть</a></td>
</tr>";
                }
                html += "</table>" + addHtml;
                return(html);
            }
        }
Exemplo n.º 11
0
 public void OnBagRemoved(IBagObject bagObject, string key, string value)
 {
     _storageSynchronizer?.OnBagRemoved(bagObject, key, value);
 }
Exemplo n.º 12
0
 public void AddToBag(IStuff Stuff, IBagObject bagObject)
 {
     bagObject.Things.Add(Stuff);
 }
Exemplo n.º 13
0
        public int GetBagWeight(IBagObject bagObject)
        {
            int x = Convert.ToInt32(bagObject.Things.Select(t => t.Weight).Sum());

            return(x);
        }