예제 #1
0
        // GET: TradeGoods/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var       fixture   = new Fixture();
            TradeGood tradeGood = db.TradeGoods.Find(id);

            if (tradeGood == null)
            {
                return(HttpNotFound());
            }

            var tradeRecords = db.Database.SqlQuery <TradeRecord>($"SELECT * FROM RecentTradeRecords WHERE TradeGood_Id = {id}");

            var stationIds   = tradeRecords.Select(r => r.Station_Id);
            var tradeGoodIds = tradeRecords.Select(r => r.TradeGood_Id);

            ViewBag.Buyable    = tradeRecords.Where(r => r.IsBuyable == true).ToList();
            ViewBag.Sellable   = tradeRecords.Where(r => r.IsBuyable == false).ToList();
            ViewBag.Stations   = db.Stations.Where(s => stationIds.Contains(s.Id)).ToList();
            ViewBag.TradeGoods = db.TradeGoods.Where(tg => tradeGoodIds.Contains(tg.Id)).ToList();

            return(View(tradeGood));
        }
        public Trade TradeGoods()
        {
            var rng = new Random();

            var trade = _db.Trades
                        .Include(e => e.Goods)
                        .Where(e => string.IsNullOrEmpty(e.ShipName)).FirstOrDefault();

            if (trade == null)
            {
                trade = new Trade();
                _db.Trades.Add(trade);
                _db.SaveChanges();

                for (var i = 0; i < Enum.GetNames(typeof(Symbol)).Length; i++)
                {
                    var tradeGood = new TradeGood
                    {
                        Name           = Goods[rng.Next(0, 5)],
                        Cost           = Math.Round(rng.NextDouble() * 100, 2),
                        Instrument     = (Symbol)rng.Next(0, 3),
                        Recommendation = Recommend[rng.Next(0, 3)],
                        TradeId        = trade.TradeId,
                        Trade          = trade
                    };
                    _db.TradeGoods.Add(tradeGood);
                    _db.SaveChanges();
                }
            }

            return(trade);
        }
예제 #3
0
        public ActionResult DeleteConfirmed(int id)
        {
            TradeGood tradeGood = db.TradeGoods.Find(id);

            db.TradeGoods.Remove(tradeGood);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #4
0
    public int CalculatePriceTownPaysForGood(TradeGood tradeGood)
    {
        if (tradeGood.locationPurchased == town)
        {
            return(CostOfTradeGood);
        }

        return(PaymentForForeignTradeGood);
    }
예제 #5
0
    void AddXPForSoldGood(int amount, TradeGood good)
    {
        AddXP(amount);
        if (townsWhoseGoodsHaveBeenSoldHere.Contains(good.locationPurchased))
        {
            return;
        }

        townsWhoseGoodsHaveBeenSoldHere.Add(good.locationPurchased);
    }
예제 #6
0
 public ActionResult Edit([Bind(Include = "Id,Name,Price,Volume,IsIllegal,IsDangerous")] TradeGood tradeGood)
 {
     if (ModelState.IsValid)
     {
         db.Entry(tradeGood).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(tradeGood));
 }
예제 #7
0
    void SetupGoods(TradeGood g)
    {
        var goodsGO = GameObject.Instantiate(goodsDisplayPrefab);

        goodsGO.transform.SetParent(goodsDisplayParent, false);
        var goodsDisplay = goodsGO.GetComponent <MarketSellTradeGoodDisplay>();

        goodsDisplay.tradeGood  = g;
        goodsDisplay.inventory  = inventory;
        goodsDisplay.activeTown = myTown;
    }
예제 #8
0
        public ActionResult Create([Bind(Include = "Id,Name,Price,Volume,IsIllegal,IsDangerous")] TradeGood tradeGood)
        {
            if (ModelState.IsValid)
            {
                db.TradeGoods.Add(tradeGood);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(tradeGood));
        }
 void TradeGoodsChanged()
 {
     tradeGood = inventory.PeekAtGoods().Find(g => g == tradeGood);
     if (tradeGood == null)
     {
         GameObject.Destroy(gameObject);
     }
     else
     {
         SetupTextStrings();
     }
 }
예제 #10
0
    void PlayerSoldGoods(int amount, TradeGood goods, Town locationSold)
    {
        if (goods.locationPurchased == locationSold || locationSold != town)
        {
            return;
        }

        var value = amount * CalculatePriceTownPaysForGood(goods);

        AddXPForSoldGood(amount, goods);

        PlayerSoldForeignGoods(value);
    }
예제 #11
0
        // GET: TradeGoods/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TradeGood tradeGood = db.TradeGoods.Find(id);

            if (tradeGood == null)
            {
                return(HttpNotFound());
            }
            return(View(tradeGood));
        }
예제 #12
0
    public void GainTradeGood(Town locationPurchased, int quantity, int purchasePrice)
    {
        var good = goods.Find(g => g.locationPurchased == locationPurchased);

        if (good == null)
        {
            good = new TradeGood();
            good.locationPurchased = locationPurchased;
            goods.Add(good);
        }

        good.quantity     += quantity;
        good.purchasePrice = purchasePrice;

        GoodsChangedEvent();
    }