
Posts: 3822
Joined: 16 Sep 2007, 22:00
KaM Skill Level: Skilled
ICQ: 269127056
Website: http://lewin.hodgman.id.au
Yahoo Messenger: lewinlewinhodgman
Location: Australia
Changes to market values in the RC
First of all, our market values work on the following principles: (this is how it has ALWAYS worked)
1. Renewable resources (wine, corn, tree trunks) are worth 1 divided by the number produced each time (so all of them are 1)
2. Non-renewable resources (ore, stone) are worth 2 divided by the number produced each time (so stone is 2/3)
3. Each time a resource is processed, the output is worth:
((value of each input resource)*(number of each input resource) + 1) / (number of resources output)
The +1 is to account for a value increase by processing it. So a sword is worth: ((value of coal)*1 + (value of iron)*1 + 1) / 1
4. When you trade at the market you lose some resource according to a trade off factor which is currently 2.5. So if I trade two equal resources like corn and wine, 1 corn will cost me 2.5 wine and 1 wine will cost me 2.5 corn.
Previous the values of food were:
Fish: 1
Sausages: 1.16666666
Bread: 1.5
Wine: 1
Now they are:
Fish: 1.5
Sausages:1.666666
Bread: 1.5
Wine: 1
This was achieved by the following changes:
1. Pigs/skins are more valuable by counting 4 processing steps, rather than just 1 like it did before. It takes him quite a while when he feeds/slaughters the pigs so I think that makes sense. So previously a pig/skin was worth 2.5: (1*4 + 1)/2 and now they are worth 4: (1*4 + 4)/2.
This also flows on to effect leather/leather armour of course. Previously leather armour was worth 2.75, now it's worth 3.5. IMO this makes more sense because wooden weapons are worth 3, and I think leather armour should be more valuable than wooden weapons. It also puts sausages at just the right place slightly above bread/fish.
Note: Horses were not changed, since he feeds them very quickly so the entire process of producing a horse costs 4 corn + 1 processing step.
2. I added +0.5 to fish because fishing is very slow business. This makes them equal to bread which is about right (fish is actually slightly better).
For those of you who want to check over it, here's the code:
- Code:
procedure TKMResourceCollection.CalculateCostsTable; const NonRenewableFactor = 2; ProcessingCost = 1; begin //Take advantage of the fact that we have both classes in same unit //and assign to private field directly Resources[rt_Trunk ].fMarketPrice := 1; Resources[rt_Stone ].fMarketPrice := (1/3)*NonRenewableFactor; Resources[rt_Wood ].fMarketPrice := (1/2)*(ProcessingCost + Resources[rt_Trunk].MarketPrice); Resources[rt_IronOre ].fMarketPrice := 1*NonRenewableFactor; Resources[rt_GoldOre ].fMarketPrice := 1*NonRenewableFactor; Resources[rt_Coal ].fMarketPrice := 1*NonRenewableFactor; Resources[rt_Steel ].fMarketPrice := ProcessingCost + Resources[rt_IronOre].MarketPrice + Resources[rt_Coal].MarketPrice; Resources[rt_Gold ].fMarketPrice := (1/2)*(ProcessingCost + Resources[rt_GoldOre].MarketPrice + Resources[rt_Coal].MarketPrice); Resources[rt_Wine ].fMarketPrice := 1; Resources[rt_Corn ].fMarketPrice := 1; Resources[rt_Flour ].fMarketPrice := ProcessingCost + Resources[rt_Corn].MarketPrice; Resources[rt_Bread ].fMarketPrice := (1/2)*(ProcessingCost + Resources[rt_Flour].MarketPrice); Resources[rt_Pig ].fMarketPrice := (1/2)*4*(ProcessingCost + Resources[rt_Corn].MarketPrice); //1/2 because two products are made simultaneously Resources[rt_Skin ].fMarketPrice := (1/2)*4*(ProcessingCost + Resources[rt_Corn].MarketPrice); //1/2 because two products are made simultaneously Resources[rt_Leather ].fMarketPrice := (1/2)*(ProcessingCost + Resources[rt_Skin].MarketPrice); Resources[rt_Sausages ].fMarketPrice := (1/3)*(ProcessingCost + Resources[rt_Pig].MarketPrice); Resources[rt_Shield ].fMarketPrice := ProcessingCost + Resources[rt_Wood].MarketPrice; Resources[rt_MetalShield].fMarketPrice := ProcessingCost + Resources[rt_Steel].MarketPrice + Resources[rt_Coal].MarketPrice; Resources[rt_Armor ].fMarketPrice := ProcessingCost + Resources[rt_Leather].MarketPrice; Resources[rt_MetalArmor ].fMarketPrice := ProcessingCost + Resources[rt_Steel].MarketPrice + Resources[rt_Coal].MarketPrice; Resources[rt_Axe ].fMarketPrice := ProcessingCost + 2*Resources[rt_Wood].MarketPrice; Resources[rt_Sword ].fMarketPrice := ProcessingCost + Resources[rt_Steel].MarketPrice + Resources[rt_Coal].MarketPrice; Resources[rt_Pike ].fMarketPrice := ProcessingCost + 2*Resources[rt_Wood].MarketPrice; Resources[rt_Hallebard ].fMarketPrice := ProcessingCost + Resources[rt_Steel].MarketPrice + Resources[rt_Coal].MarketPrice; Resources[rt_Bow ].fMarketPrice := ProcessingCost + 2*Resources[rt_Wood].MarketPrice; Resources[rt_Arbalet ].fMarketPrice := ProcessingCost + Resources[rt_Steel].MarketPrice + Resources[rt_Coal].MarketPrice; Resources[rt_Horse ].fMarketPrice := ProcessingCost + 4*Resources[rt_Corn].MarketPrice; Resources[rt_Fish ].fMarketPrice := (1/2)*NonRenewableFactor + 0.5; //+0.5 because Fishing is very slow end;