Esempio n. 1
0
    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)));
    }
Esempio n. 2
0
    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();
    }
Esempio n. 3
0
    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}";
    }
Esempio n. 4
0
 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();
 }
Esempio n. 5
0
    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} не интересует ваше предложение.";
    }
Esempio n. 6
0
    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();
    }
Esempio n. 7
0
 void AcceptDeal()
 {
     CurDeal = new Deal(CurState, SellT, SellR, BuyT, SellR * GlobalTrade.GetCource(BuyT, SellT));
     GlobalTrade.MakeDeal(CurDeal);
 }