Pop-Engine/Pop Engine/Market.cpp
2019-08-22 23:56:53 +08:00

37 lines
1.0 KiB
C++

#include "Market.h"
#include "Production.h"
#include "SellProduction.h"
#include <assert.h>
#include <algorithm>
shared_ptr<SellProduction> Market::get_sell_production(shared_ptr<Production> p_pdt){
auto p_sl_pdt_i = sl_pdts.find(p_pdt);
return p_sl_pdt_i->second;
}
shared_ptr<Market> Market::get_parent_market(){
return pae_mkts;
}
shared_ptr<PermitManager> Market::ask_for_selling_right(shared_ptr<Population> p_pop, shared_ptr<Production> p_pdt) {
shared_ptr<PermitManager> p_pm(new PermitManager(p_pop, p_pdt, this));
pmt_mgrs_buying.push_back(p_pm);
return p_pm;
}
shared_ptr<PermitManager> Market::ask_for_buying_right(shared_ptr<Population> p_pop) {
shared_ptr<PermitManager> p_pm(new PermitManager(p_pop, this));
pmt_mgrs_buying.push_back(p_pm);
return p_pm;
}
shared_ptr<Request> Market::send_production_to_sell(shared_ptr<PermitManager> p_pm, float price, float amount) {
shared_ptr<Request> pn_req(new Request(p_pm, price, amount));
auto p_spt = get_sell_production(p_pm->p_dpt);
p_spt->new_request(pn_req);
return pn_req;
}