Index: ai/advmilitary.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/ai/advmilitary.c,v retrieving revision 1.162 diff -u -r1.162 advmilitary.c --- ai/advmilitary.c 25 Feb 2004 20:23:49 -0000 1.162 +++ ai/advmilitary.c 10 Apr 2004 22:57:49 -0000 @@ -589,6 +589,9 @@ if (unit_type_flag(i, F_GAMELOSS)) { desire /= 10; /* but might actually be worth it */ } + if (unit_type_flag(i, F_CITYBUSTER)) { + desire += desire / 2; + } if (unit_type_flag(i, F_IGTIRED)) { desire += desire / 4; } Index: common/combat.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/common/combat.c,v retrieving revision 1.37 diff -u -r1.37 combat.c --- common/combat.c 25 Feb 2004 20:23:49 -0000 1.37 +++ common/combat.c 10 Apr 2004 22:57:53 -0000 @@ -239,6 +239,12 @@ *att_fp = unit_type(attacker)->firepower; *def_fp = unit_type(defender)->firepower; + /* Check CityBuster flag */ + if (unit_flag(attacker, F_CITYBUSTER) + && map_get_city(defender->x, defender->y)) { + *att_fp *= 2; + } + /* pearl harbour - defender's firepower is reduced to one, * attacker's is multiplied by two */ if (is_sailing_unit(defender) && map_get_city(defender->x, defender->y)) { Index: common/unittype.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/common/unittype.c,v retrieving revision 1.30 diff -u -r1.30 unittype.c --- common/unittype.c 25 Feb 2004 20:23:49 -0000 1.30 +++ common/unittype.c 10 Apr 2004 22:57:53 -0000 @@ -46,7 +46,7 @@ "Trireme", "Nuclear", "Spy", "Transform", "Paratroopers", "Airbase", "Cities", "IgTired", "Missile_Carrier", "No_Land_Attack", "AddToCity", "Fanatic", "GameLoss", "Unique", "Unbribable", - "Undisbandable", "SuperSpy", "NoHome", "NoVeteran" + "Undisbandable", "SuperSpy", "NoHome", "NoVeteran", "CityBuster" }; static const char *role_names[] = { "FirstBuild", "Explorer", "Hut", "HutTech", "Partisan", Index: common/unittype.h =================================================================== RCS file: /home/freeciv/CVS/freeciv/common/unittype.h,v retrieving revision 1.24 diff -u -r1.24 unittype.h --- common/unittype.h 25 Feb 2004 20:23:49 -0000 1.24 +++ common/unittype.h 10 Apr 2004 22:57:53 -0000 @@ -116,6 +116,7 @@ F_SUPERSPY, /* Always wins diplomatic contests */ F_NOHOME, /* Has no homecity */ F_NO_VETERAN, /* Cannot increase veteran level */ + F_CITYBUSTER, /* Double firepower against cities */ F_LAST }; #define F_MAX 64 Index: data/default/units.ruleset =================================================================== RCS file: /home/freeciv/CVS/freeciv/data/default/units.ruleset,v retrieving revision 1.55 diff -u -r1.55 units.ruleset --- data/default/units.ruleset 2 Apr 2004 11:19:19 -0000 1.55 +++ data/default/units.ruleset 10 Apr 2004 22:57:55 -0000 @@ -146,6 +146,8 @@ ; "NoHome" = this unit has no homecity and will be free of all upkeep, and ; therefore will not revolt along with its city of origin should ; it be incited +; "NoVeteran" = this unit cannot become veteran +; "CityBuster" = this unit has double firepower against cities ; ; Following flag strings require extra fields: ; "Paratroopers"