Feature #1186 ยป 0045-Unhardcode-Shield2Gold-unit-type-flag.patch
| common/unittype.c | ||
|---|---|---|
|
/* Switch shield upkeep to gold upkeep if
|
||
|
- the effect 'EFT_SHIELD2GOLD_FACTOR' is non-zero (it gives the
|
||
|
conversion factor in percent) and
|
||
|
- the unit has the corresponding flag set (UTYF_SHIELD2GOLD)
|
||
|
FIXME: Should the ai know about this? */
|
||
|
if (utype_has_flag(ut, UTYF_SHIELD2GOLD)
|
||
|
&& (otype == O_GOLD || otype == O_SHIELD)) {
|
||
|
if (otype == O_GOLD || otype == O_SHIELD) {
|
||
|
gold_upkeep_factor = get_target_bonus_effects(NULL,
|
||
|
&(const struct req_context) {
|
||
|
.player = pplayer,
|
||
| data/goldkeep/effects.ruleset | ||
|---|---|---|
|
type = "Shield2Gold_Factor"
|
||
|
value = 100
|
||
|
reqs =
|
||
|
{ "type", "name", "range"
|
||
|
"Tech", "The Corporation", "Player"
|
||
|
{ "type", "name", "range"
|
||
|
"Tech", "The Corporation", "Player"
|
||
|
"UnitTypeFlag", "Shield2Gold", "Local"
|
||
|
}
|
||
|
[effect_calendar_base]
|
||
| doc/README.effects | ||
|---|---|---|
|
Factor in percent for the conversion of unit shield upkeep to gold upkeep.
|
||
|
A value of 200 would transfer 1 shield upkeep to 2 gold upkeep.
|
||
|
This works on unit type granularity, properties of individual units
|
||
|
do not count. Note that only units with the "Shield2Gold" flag will
|
||
|
be affected by this.
|
||
|
do not count.
|
||
|
Shrink_Food
|
||
|
Food left after cities shrink is amount percent of the capacity of
|
||
| server/ruleset/rscompat.c | ||
|---|---|---|
|
**************************************************************************/
|
||
|
static bool effect_list_compat_cb(struct effect *peffect, void *data)
|
||
|
{
|
||
|
struct rscompat_info *info = (struct rscompat_info *)data;
|
||
|
if (info->version < RSFORMAT_3_3) {
|
||
|
if (peffect->type == EFT_SHIELD2GOLD_FACTOR) {
|
||
|
requirement_vector_append(&(peffect->reqs),
|
||
|
req_from_str("UnitTypeFlag", "Local",
|
||
|
FALSE, FALSE, FALSE,
|
||
|
"Shield2Gold"));
|
||
|
}
|
||
|
}
|
||
|
/* Go to the next effect. */
|
||
|
return TRUE;
|
||
|
}
|
||