コード例 #1
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            WarehouseComponent warehouse = await context.WarehouseComponents.FindAsync(id);

            context.WarehouseComponents.Remove(warehouse);
            await context.SaveChangesAsync();

            TempData["SuccessMessage"] = "Запись удалена";
            return(RedirectToAction("Index"));
        }
コード例 #2
0
        private void Send_G2C_Warehouse(Player player)
        {
            G2C_Warehouse msg = new G2C_Warehouse();

            WarehouseComponent warehouseComponent = player.UserDB.GetComponent <WarehouseComponent>();

            msg.Tanks = new RepeatedField <int>();

            Utility.List2RepeatedField(warehouseComponent.Tanks, msg.Tanks);

            msg.TankId = warehouseComponent.UseTankId;

            msg.Bullets = new RepeatedField <int>();

            msg.BulletId = warehouseComponent.UseBulletId;

            Utility.List2RepeatedField(warehouseComponent.Bullets, msg.Bullets);

            msg.Props = new RepeatedField <PropInfo>();

            List <PropItem> propItems = warehouseComponent.UnUseProps;

            foreach (PropItem propItem in propItems)
            {
                PropInfo tmp = new PropInfo();

                tmp.TableId = propItem.TableId;

                tmp.PropState = PropState.WaitUse;

                tmp.TotalTimes = propItem.TotalTimes;

                tmp.Num = propItem.Num;

                msg.Props.Add(tmp);
            }
            propItems = warehouseComponent.InUseProps;

            foreach (PropItem propItem in propItems)
            {
                PropInfo tmp = new PropInfo();

                tmp.TableId = propItem.TableId;

                tmp.PropState = PropState.InUser;

                tmp.TotalTimes = propItem.TotalTimes;

                tmp.UseTimes = propItem.UseTimes;

                msg.Props.Add(tmp);
            }

            player.Session.Send(msg);
        }
コード例 #3
0
        public async Task <ActionResult> Edit([Bind(Include = "WarehouseComponentId,PurchaseId ,ArrivalDate ,Amount")] WarehouseComponent warehouse)
        {
            if (ModelState.IsValid)
            {
                context.Entry(warehouse).State = EntityState.Modified;
                await context.SaveChangesAsync();

                TempData["SuccessMessage"] = "Запись сохранена";
                return(RedirectToAction("Index"));
            }

            ViewBag.PurchaseId = new SelectList(context.WarehouseComponents, "PurchaseId", "PurchaseId", warehouse.PurchaseId);
            return(View(warehouse));
        }
コード例 #4
0
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            WarehouseComponent warehouse = await context.WarehouseComponents.FindAsync(id);

            if (warehouse == null)
            {
                return(HttpNotFound());
            }
            return(View(warehouse));
        }
コード例 #5
0
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            WarehouseComponent warehouse = await context.WarehouseComponents.FindAsync(id);

            if (warehouse == null)
            {
                return(HttpNotFound());
            }
            ViewBag.PurchaseId = new SelectList(context.WarehouseComponents, "PurchaseId", "PurchaseId");
            return(View(warehouse));
        }
コード例 #6
0
        protected override void Run(Session session, C2G_OptGood message)
        {
            Player player = session.GetComponent <SessionPlayerComponent>().Player;

            WarehouseComponent warehouse = player.UserDB.GetComponent <WarehouseComponent>();

            UserBaseComponent userBase = player.UserDB.GetComponent <UserBaseComponent>();

            switch (message.GoodType)
            {
            case GoodType.Tank:
                TankCfg tankInfo = Game.Scene.GetComponent <ConfigComponent>().Get(typeof(TankCfg), message.TableId) as TankCfg;

                if (message.GoodOpt == GoodOpt.Use && warehouse.UseTankId != message.TableId &&
                    warehouse.isExitTank(message.TableId))
                {
                    warehouse.UseTankId = message.TableId;
                    Send_G2C_Warehouse(player);
                    player.Send_PopMessage(1083);
                }

                if (message.GoodOpt == GoodOpt.Buy)
                {
                    if (warehouse.isExitTank(message.TableId))
                    {
                        player.Send_PopMessage(1084);
                    }
                    else if (userBase.Gold < tankInfo.Price)
                    {
                        player.Send_PopMessage(1086);
                    }
                    else
                    {
                        userBase.Gold -= tankInfo.Price;
                        player.Send_PopMessage(1087);
                        warehouse.Tanks.Add(message.TableId);
                    }
                }
                break;

            case GoodType.Bullet:
                BulletCfg bulletInfo = Game.Scene.GetComponent <ConfigComponent>().Get(typeof(BulletCfg), message.TableId) as BulletCfg;
                if (message.GoodOpt == GoodOpt.Use && warehouse.UseBulletId != message.TableId &&
                    warehouse.isExitBullet(message.TableId))
                {
                    warehouse.UseBulletId = message.TableId;
                    Send_G2C_Warehouse(player);
                    player.Send_PopMessage(1085);
                }

                if (message.GoodOpt == GoodOpt.Buy)
                {
                    if (warehouse.isExitBullet(message.TableId))
                    {
                        player.Send_PopMessage(1084);
                    }
                    else if (userBase.Gold < bulletInfo.Price)
                    {
                        player.Send_PopMessage(1086);
                    }
                    else
                    {
                        userBase.Gold -= bulletInfo.Price;
                        player.Send_PopMessage(1087);
                        warehouse.Bullets.Add(message.TableId);
                    }
                }

                break;

            case GoodType.Prop:
                Prop propInfo = Game.Scene.GetComponent <ConfigComponent>().Get(typeof(Prop), message.TableId) as Prop;

                if (message.GoodOpt == GoodOpt.Use && warehouse.GetUnUseProp(message.TableId) != null)
                {
                    PropItem unUseItem = warehouse.GetUnUseProp(message.TableId);

                    PropItem inUseItem = warehouse.GetInUseProp(message.TableId);


                    if (inUseItem != null)
                    {
                        inUseItem.TotalTimes += unUseItem.TotalTimes;

                        unUseItem.Num -= 1;

                        if (unUseItem.Num <= 0)
                        {
                            warehouse.UnUseProps.Remove(unUseItem);
                        }
                    }
                    else
                    {
                        inUseItem = new PropItem(unUseItem);

                        inUseItem.PropState = PropState.InUser;

                        inUseItem.Num = 1;

                        warehouse.InUseProps.Add(inUseItem);

                        unUseItem.Num -= 1;

                        if (unUseItem.Num <= 0)
                        {
                            warehouse.UnUseProps.Remove(unUseItem);
                        }
                    }

                    Send_G2C_Warehouse(player);
                    player.Send_PopMessage(1085);
                }

                if (message.GoodOpt == GoodOpt.Buy)
                {
                    if (userBase.Gold < propInfo.Price)
                    {
                        player.Send_PopMessage(1086);
                        break;
                    }

                    PropItem propItem = warehouse.GetUnUseProp(message.TableId);

                    if (propItem != null)
                    {
                        propItem.Num += 1;
                    }
                    else
                    {
                        propItem = new PropItem();

                        propItem.PropState = PropState.WaitUse;

                        propItem.TableId = message.TableId;

                        propItem.BuyTime = TimeHelper.NowSecond();

                        propItem.Num = 1;

                        propItem.TotalTimes = (Game.Scene.GetComponent <ConfigComponent>().Get(typeof(Prop), message.TableId) as Prop).TotleTimes;

                        warehouse.UnUseProps.Add(propItem);
                    }

                    userBase.Gold -= propInfo.Price;

                    player.Send_PopMessage(1087);


                    Send_G2C_Warehouse(player);
                }

                break;

            default:
                Log.Error($"不存在的GoodType:{message.GoodType}");
                break;
            }
        }
コード例 #7
0
        protected override void Run(Session session, C2G_Warehouse message, Action <G2C_Warehouse> reply)
        {
            G2C_Warehouse response = new G2C_Warehouse();

            try
            {
                Player player = session.GetComponent <SessionPlayerComponent>().Player;

                WarehouseComponent warehouseComponent = player.UserDB.GetComponent <WarehouseComponent>();


                response.Tanks = new RepeatedField <int>();

                Utility.List2RepeatedField(warehouseComponent.Tanks, response.Tanks);

                response.TankId = warehouseComponent.UseTankId;

                response.Bullets = new RepeatedField <int>();

                response.BulletId = warehouseComponent.UseBulletId;

                Utility.List2RepeatedField(warehouseComponent.Bullets, response.Bullets);

                response.Props = new RepeatedField <PropInfo>();

                List <PropItem> propItems = warehouseComponent.UnUseProps;

                foreach (PropItem propItem in propItems)
                {
                    PropInfo tmp = new PropInfo();

                    tmp.TableId = propItem.TableId;

                    tmp.PropState = PropState.WaitUse;

                    tmp.TotalTimes = propItem.TotalTimes;

                    tmp.Num = propItem.Num;

                    response.Props.Add(tmp);
                }
                propItems = warehouseComponent.InUseProps;

                foreach (PropItem propItem in propItems)
                {
                    PropInfo tmp = new PropInfo();

                    tmp.TableId = propItem.TableId;

                    tmp.PropState = PropState.InUser;

                    tmp.TotalTimes = propItem.TotalTimes;

                    tmp.UseTimes = propItem.UseTimes;

                    response.Props.Add(tmp);
                }


                reply(response);
            }
            catch (Exception e)
            {
                ReplyError(response, e, reply);
            }
        }