Author: jtn Date: Sat Dec 19 11:09:31 2015 New Revision: 31095 URL: http://svn.gna.org/viewcvs/freeciv?rev=31095&view=rev Log: Allow Nuke_Proof effect to depend on diplomatic relationship between unit and city owner (and also on properties of the specific tile it attacks). Remove the hardcoded behaviour that it doesn't affect allies/teammates/self.
In all supplied rulesets, use this ability to change the rules so that SDI Defense now works against allies. See gna patch #6693. Modified: branches/S2_6/common/combat.c branches/S2_6/data/civ1/effects.ruleset branches/S2_6/data/civ2/effects.ruleset branches/S2_6/data/civ2civ3/effects.ruleset branches/S2_6/data/classic/effects.ruleset branches/S2_6/data/experimental/effects.ruleset branches/S2_6/data/multiplayer/effects.ruleset branches/S2_6/data/sandbox/effects.ruleset Modified: branches/S2_6/common/combat.c URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/common/combat.c?rev=31095&r1=31094&r2=31095&view=diff ============================================================================== --- branches/S2_6/common/combat.c (original) +++ branches/S2_6/common/combat.c Sat Dec 19 11:09:31 2015 @@ -387,19 +387,23 @@ } /************************************************************************** - Try defending against nuclear attack, if succed return a city which + Try defending against nuclear attack; if successful, return a city which had enough luck and EFT_NUKE_PROOF. - If the attack was succesful return NULL. + If the attack was successful return NULL. **************************************************************************/ struct city *sdi_try_defend(const struct player *owner, - const struct tile *ptile) + const struct tile *ptile) { square_iterate(ptile, 2, ptile1) { struct city *pcity = tile_city(ptile1); if (pcity - && !pplayers_allied(city_owner(pcity), owner) - && fc_rand(100) < get_city_bonus(pcity, EFT_NUKE_PROOF)) { + && fc_rand(100) < get_target_bonus_effects(NULL, + city_owner(pcity), owner, + pcity, NULL, ptile, + NULL, NULL, + NULL, NULL, + EFT_NUKE_PROOF)) { return pcity; } } square_iterate_end; Modified: branches/S2_6/data/civ1/effects.ruleset URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/civ1/effects.ruleset?rev=31095&r1=31094&r2=31095&view=diff ============================================================================== --- branches/S2_6/data/civ1/effects.ruleset (original) +++ branches/S2_6/data/civ1/effects.ruleset Sat Dec 19 11:09:31 2015 @@ -880,10 +880,12 @@ [effect_sdi_defense] type = "Nuke_Proof" -value = 100 -reqs = - { "type", "name", "range" - "Building", "SDI Defense", "City" +value = 100 +reqs = + { "type", "name", "range", "present" + "Building", "SDI Defense", "City", TRUE + "DiplRel", "Is foreign", "Local", TRUE + "DiplRel", "Team", "Local", FALSE } [effect_space_component] Modified: branches/S2_6/data/civ2/effects.ruleset URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/civ2/effects.ruleset?rev=31095&r1=31094&r2=31095&view=diff ============================================================================== --- branches/S2_6/data/civ2/effects.ruleset (original) +++ branches/S2_6/data/civ2/effects.ruleset Sat Dec 19 11:09:31 2015 @@ -1515,10 +1515,12 @@ [effect_sdi_defense] type = "Nuke_Proof" -value = 100 -reqs = - { "type", "name", "range" - "Building", "SDI Defense", "City" +value = 100 +reqs = + { "type", "name", "range", "present" + "Building", "SDI Defense", "City", TRUE + "DiplRel", "Is foreign", "Local", TRUE + "DiplRel", "Team", "Local", FALSE } [effect_sdi_defense_1] Modified: branches/S2_6/data/civ2civ3/effects.ruleset URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/civ2civ3/effects.ruleset?rev=31095&r1=31094&r2=31095&view=diff ============================================================================== --- branches/S2_6/data/civ2civ3/effects.ruleset (original) +++ branches/S2_6/data/civ2civ3/effects.ruleset Sat Dec 19 11:09:31 2015 @@ -2587,8 +2587,10 @@ type = "Nuke_Proof" value = 100 reqs = - { "type", "name", "range" - "Building", "SDI Defense", "City" + { "type", "name", "range", "present" + "Building", "SDI Defense", "City", TRUE + "DiplRel", "Is foreign", "Local", TRUE + "DiplRel", "Team", "Local", FALSE } [effect_sdi_defense_1] Modified: branches/S2_6/data/classic/effects.ruleset URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/classic/effects.ruleset?rev=31095&r1=31094&r2=31095&view=diff ============================================================================== --- branches/S2_6/data/classic/effects.ruleset (original) +++ branches/S2_6/data/classic/effects.ruleset Sat Dec 19 11:09:31 2015 @@ -1488,10 +1488,12 @@ [effect_sdi_defense] type = "Nuke_Proof" -value = 100 -reqs = - { "type", "name", "range" - "Building", "SDI Defense", "City" +value = 100 +reqs = + { "type", "name", "range", "present" + "Building", "SDI Defense", "City", TRUE + "DiplRel", "Is foreign", "Local", TRUE + "DiplRel", "Team", "Local", FALSE } [effect_sdi_defense_1] Modified: branches/S2_6/data/experimental/effects.ruleset URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/experimental/effects.ruleset?rev=31095&r1=31094&r2=31095&view=diff ============================================================================== --- branches/S2_6/data/experimental/effects.ruleset (original) +++ branches/S2_6/data/experimental/effects.ruleset Sat Dec 19 11:09:31 2015 @@ -1695,10 +1695,12 @@ [effect_sdi_defense] type = "Nuke_Proof" -value = 100 -reqs = - { "type", "name", "range" - "Building", "SDI Defense", "City" +value = 100 +reqs = + { "type", "name", "range", "present" + "Building", "SDI Defense", "City", TRUE + "DiplRel", "Is foreign", "Local", TRUE + "DiplRel", "Team", "Local", FALSE } [effect_sdi_defense_1] Modified: branches/S2_6/data/multiplayer/effects.ruleset URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/multiplayer/effects.ruleset?rev=31095&r1=31094&r2=31095&view=diff ============================================================================== --- branches/S2_6/data/multiplayer/effects.ruleset (original) +++ branches/S2_6/data/multiplayer/effects.ruleset Sat Dec 19 11:09:31 2015 @@ -1495,10 +1495,12 @@ [effect_sdi_defense] type = "Nuke_Proof" -value = 100 -reqs = - { "type", "name", "range" - "Building", "SDI Defense", "City" +value = 100 +reqs = + { "type", "name", "range", "present" + "Building", "SDI Defense", "City", TRUE + "DiplRel", "Is foreign", "Local", TRUE + "DiplRel", "Team", "Local", FALSE } [effect_sdi_defense_1] Modified: branches/S2_6/data/sandbox/effects.ruleset URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/data/sandbox/effects.ruleset?rev=31095&r1=31094&r2=31095&view=diff ============================================================================== --- branches/S2_6/data/sandbox/effects.ruleset (original) +++ branches/S2_6/data/sandbox/effects.ruleset Sat Dec 19 11:09:31 2015 @@ -2587,8 +2587,10 @@ type = "Nuke_Proof" value = 100 reqs = - { "type", "name", "range" - "Building", "SDI Defense", "City" + { "type", "name", "range", "present" + "Building", "SDI Defense", "City", TRUE + "DiplRel", "Is foreign", "Local", TRUE + "DiplRel", "Team", "Local", FALSE } [effect_sdi_defense_1] _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits