I continue to go through payments-related code, trying to make it more consistent. And the crew hiring cost is anything but.
The cost of hiring new crew is currently calculated like this:
The problems I see with this formula:
The cost of hiring new crew is currently calculated like this:
Code:
int GetCrewHireCost(ref ch)
{
int cost = 18 - (GetShipSkill(&ch,SKILL_LEADERSHIP) + 3*GetOfficersPerkUsing(&ch, "IronWill")); // was 16 and no perk
cost = cost * iretMax(1, makeint(SALARY_MULTIPLIER/3.0+0.5)); // LDH 16Apr09
return cost;
}
The problems I see with this formula:
- the base cost of 18 is pretty arbitrary and has no relation to BASE_CREW_PAY
- leadership and Iron Will modifiers work differently comparing to other payments
- SALARY_MULTIPLIER (which is 3 by default, 5+ being recommended for more challenging play) is applied rather timidly
- the difficulty level is not taken into account at all
Last edited: