public bool WantTrade(ResourcesType sellType, float wesell, ResourcesType buyType, float webuy) { return(!stateAI.autoTrader.DealsOverflow && Income[sellType] * GlobalTrade.MaxSellPercent >= wesell && GlobalTrade.WantToBuy(this, buyType) && !GlobalTrade.WantToBuy(this, sellType)); return(Mathf.Min(GlobalTrade.GetCource(ResourcesType.Gold, sellType) * treasury[sellType], GlobalTrade.GetCource(ResourcesType.Gold, buyType) * treasury[buyType]) < Mathf.Min(GlobalTrade.GetCource(ResourcesType.Gold, sellType) * (treasury[sellType] - wesell), GlobalTrade.GetCource(ResourcesType.Gold, buyType) * (treasury[buyType] + webuy))); }
public void Yes() { switch (dipstate) { case 0: Diplomacy.DeclareWar(player, select, true); War(); return; case 1: GlobalTrade.MakeDeal(deal); /*if (player.haveDeal(select)) * player.BreakTradeDeal(select); * else * player.SendOfferTradeDeal(select, new TradeDeal(player.state, sellT, sellR, select.state, buyT, buyR)); */ UpdateTradePanel(); return; break; case 2: if (player.haveAccess(select)) { player.ForceAccess(select, false); } else { player.SendOfferForceAccess(select); } break; case 3: player.FabricateCasusBelli(select, !player.fabricatingCasus(select), actionSlider.value); break; case 4: player.Insult(select); break; case 5: player.BeginPatronage(select, !player.havePatronage(select)); break; case 6: player.Uniate(select); break; } that.RecalculArmyPath(); other.RecalculArmyPath(); SchowDiplomacy(); }
private void UpdateInfo() { float maxsell = Mathf.Min(CurState.treasury[SellT] * GlobalTrade.MaxSellPercent, GlobalTrade.BufferRes(BuyT) * GlobalTrade.GetCource(SellT, BuyT)); SellCount.maxValue = maxsell; if (SellR > maxsell) { SellR = maxsell; } MaxSell.text = maxsell.ToString(); CurSell.text = $"продаем {SellR.ToString()} {SellT}"; CurBuy.text = $"покупаем {SellR * GlobalTrade.GetCource(BuyT, SellT)} {BuyT}"; }
public static void Start() { time = 0; foreach (var x in Main.states) { x.CalculateIncome(); GlobalTrade.AddInformation(x.Income, x.treasury); } GlobalTrade.DiscardCource(); foreach (var x in Main.states) { x.statistica.Add(new ResourceData(x.Income, x.treasury, time)); } GlobalTrade.StartGlobalTrade(); }
void UpdateTradePanel() { sellT = (ResourcesType)selldrop.value; buyT = (ResourcesType)buydrop.value; sellres.maxValue = player.state.treasury[sellT] * 0.2f; sellR = sellres.value; buyR = GlobalTrade.GetCource(buyT, sellT) * sellR; deal = new Deal(player.state, sellT, sellR, buyT, buyR); bool want = GlobalTrade.TryMakeDeal(deal);//select.state.WantTrade(buyT, buyR, sellT, sellR); selltext.text = $"Продаете\n{sellT.ToString()}: {sellR:N1}"; buytext.text = $"Покупаете\n{buyT.ToString()}: {buyR:N1}"; YesButton.interactable = want; descr.text = want ? $"{stateName.text} готова торговать с вами." : $"{stateName.text} не интересует ваше предложение."; }
public void StateDecaSecondUpdate() { allRegimentsUpkeep = CountingUpkeep(); SpendTreasure(allRegimentsUpkeep); stateAI.ProcessOrders(); stateAI.autoTrader.DealsUpdate(); CalculateIncome(); stateAI.IncomeResources(Income); diplomacy.DiplomacyUpdate(); GlobalTrade.AddInformation(Income, treasury); statistica.Add(new ResourceData(Income, treasury, GameTimer.time)); TreasureChange?.Invoke(); }
void AcceptDeal() { CurDeal = new Deal(CurState, SellT, SellR, BuyT, SellR * GlobalTrade.GetCource(BuyT, SellT)); GlobalTrade.MakeDeal(CurDeal); }