DEFENSE_INFRA was implemented in an odd way: sct_defense was used
regardless of the option, but forced to sct_effic when disabled. This screws up sct_defense when you disable DEFENSE_INFRA. Implement it more like FALLOUT: use sct_defense if enabled, else sct_effic. The change should be invisible except in xdump, which shows the real sct_defense. Closes #804641. (SCT_DEFENSE): New. (dump, sinfra, sector_strength): Use it. (eff_bomb, build_bridge, build_tower, new, buildeff, sect_damage) (put_combat, checksect, produce_sect): Don't force sct_defense to sct_effic when DEFENSE_INFRA is disabled.
This commit is contained in:
parent
499e19f97b
commit
d906fd6b99
11 changed files with 7 additions and 23 deletions
|
@ -349,8 +349,6 @@ put_combat(struct combat *com)
|
|||
sect.sct_defense = 0;
|
||||
}
|
||||
sect.sct_effic = com->eff;
|
||||
if (!opt_DEFENSE_INFRA)
|
||||
sect.sct_defense = sect.sct_effic;
|
||||
if (com->mobcost) {
|
||||
if (opt_MOB_ACCESS) {
|
||||
if ((com->mob - com->mobcost) < -127)
|
||||
|
@ -2606,7 +2604,7 @@ sector_strength(struct sctstr *sp)
|
|||
d = 2.0;
|
||||
|
||||
d = d + ((double)(dchr[sp->sct_type].d_dstr - d) *
|
||||
((double)sp->sct_defense / 100.0));
|
||||
((double)SCT_DEFENSE(sp) / 100.0));
|
||||
|
||||
if (d > dchr[sp->sct_type].d_dstr)
|
||||
d = dchr[sp->sct_type].d_dstr;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue