Thu 12 Jul 2012 10:57:00 PM UTC, comment #5:
How about this patch? It has the "simple power_fact based" behaviour, and also takes into account move_bonus, as a fraction of the unit's base move rate (with a special case if that is zero). So a veteran unit with a base move rate of 3 and a move_bonus of 1 costs ~1.33x what the non-veteran unit would.
Will commit soon for 2.4.0 if no-one objects.
(file #16070)
|
Sun 24 Jun 2012 07:32:54 PM UTC, comment #3:
> Without investigating version history more, I'm not sure if
> this has been written with multiple veteran levels in mind at
> all.
Using the power of "git log -S" I find this code apparently came in in r12297, RT #20368, in Sep 2006 (possibly as an afterthought). I dunno when multiple veteran levels came in. With RT still down I can't easily check the history further.
Some examples. ("tenlevels" is a hypothetical ruleset with ten veteran levels with nonlinear power_fact=100,120,...,250.)
For the last, we could arbitrarily scale power_fact to give the same cost for veterans, but the costs for hardened/elite in classic/default ruleset would end up wrong.
I don't think there's a simple answer that gives exactly the same results as before on existing rulesets. So, I'm leaning toward fixing this on S2_4 and living with the current S2_3 behaviour, so as not to disrupt running games by changing bribe costs.
I'm leaning toward a formula involving semi-arbitrary valuations of power_fact and move_bonus. Any opinion on the values of the factors, or shall I just make them up?
|
Wed 23 May 2012 11:41:38 PM UTC, comment #2:
> ./diplomats.c:1449: cost += cost * punit->veteran / 3; /* Extra cost for veterans */
Without investigating version history more, I'm not sure if this has been written with multiple veteran levels in mind at all. It might come from times when veterancy was just boolean thing (meaning that veterans had 1.33x cost compared to green ones)
Which leads to discovery that actually patch is worse than current code. Just because classic ruleset has veterancy levels beyond veteran should not make veterans less valuable than in civ/2 (or rather, as the change to current behavior would be: cost for veterans should not be so high in civ/2 (old code: 1.33x, new code 2x))
|
Wed 25 Jan 2012 12:29:31 AM UTC, comment #1:
Hm. The current code is clearly wrong (or at least arbitrary), but it's not obvious that uniformly scaling cost by veteran level between 1.0x and 2.0x is the right answer (clearly it's a better answer).
Perhaps the bribe cost should take into account the veteran level's power_fact and move_bonus, so that (say) a unit that's 3x as powerful as the base level costs 3x as much (or some less steep function)?
|