1; Modifying this file: 2; You should not modify this file except to make bugfixes or 3; for other "maintenance". If you want to make custom changes, 4; you should create a new datadir subdirectory and copy this file 5; into that directory, and then modify that copy. Then use the 6; command "rulesetdir <mysubdir>" in the server to have freeciv 7; use your new customized file. 8 9; Note that the freeciv AI may not cope well with anything more 10; than minor changes. 11 12[datafile] 13description="Civ1-style game rules for Freeciv" 14options="+Freeciv-2.6-ruleset" 15 16; This section contains meta information for freeciv-ruledit to recreate the ruleset 17; file in a form wanted. These have no in-game effect whatsoever 18[ruledit] 19 20; Which file to read description in from. 21;description_file = "" 22 23[about] 24; Ruleset name 25name = _("Civ1 ruleset") 26 27; There`s no separate versioning in rulesets part of main freeciv distribution 28;version = "" 29 30; Summary of the ruleset 31summary = _("\ 32You are playing with civ1 style rules. \ 33These rules are much simpler than the Freeciv default rules. \ 34If you know only the default rules, spend some time checking the \ 35differences.\ 36\n\n\ 37 * There are fewer technologies, buildings and units.\n\ 38 * Units have no hitpoints. If they win a battle, they remain in full health.\n\ 39") 40 41; Detailed description 42; When updating this, update also description_file in [ruledit] section to match 43; description = "" 44 45[options] 46global_init_techs="" 47global_init_buildings="Palace" 48 49[tileset] 50; If preferred tileset is set, clients that support the feature will suggest 51; using that tileset with the ruleset. 52; preferred = "" 53 54[soundset] 55; If preferred soundset is set, clients that support the feature will suggest 56; using that soundset with the ruleset. 57; preferred = "" 58 59[musicset] 60; If preferred musicset is set, clients that support the feature will suggest 61; using that musicset with the ruleset. 62; preferred = "" 63 64[civstyle] 65; Parameters used to generalize the calculation of city granary size: 66; if city_size <= num_inis: 67; city_granary_size = (granary_food_ini[city_size] * foodbox / 100) 68; if city_size > num_inis; 69; city_granary_size = (granary_food_ini[num_inis] + 70; granary_food_inc * (city_size - num_inis)) * foodbox / 100 71granary_food_ini = 20 72granary_food_inc = 10 73 74; City center minimum outputs 75min_city_center_food = 0 76min_city_center_shield = 0 77min_city_center_trade = 0 78 79; Square of initial city radius 80init_city_radius_sq = 5 81 82; Square of initially visible radius (true distance). 83init_vis_radius_sq = 2 84 85; Barbarian leader ransom in gold. The ransom is taken from 86; the victim (typically a barbarian player), and it`s possible 87; they cannot pay this in full. 88ransom_gold = 100 89 90; Number of veteran levels lost when upgrading a unit 91upgrade_veteran_loss = 10 92 93; Number of veteran levels lost when auto-upgrading a unit 94autoupgrade_veteran_loss = 10 95 96; Whether player gets to select which terrain improvement to pillage. 97pillage_select = FALSE 98 99; Whether one can steal a tech for which prereqs are not known 100tech_steal_allow_holes = FALSE 101; Whether one can get a tech for which prereqs are not known via 102; diplomatic trading 103tech_trade_allow_holes = FALSE 104; ...and whether one can lose a tech which is prereq for another known 105; tech via trade, if techlost_donor is nonzero 106tech_trade_loss_allow_holes = FALSE 107; Whether one can get a tech for which prereqs are not known via 108; parasite effect (Great Library) 109tech_parasite_allow_holes = FALSE 110; Whether one can lose a tech which is prereq for another known tech 111; due to negative bulbs, if techlossforgiveness allows loss 112tech_loss_allow_holes = FALSE 113 114; Whether civil war is possible at all 115civil_war_enabled = TRUE 116 117; Comma separated list of things to happen, in addition to death 118; of owner, when gameloss unit dies 119; "CivilWar" - Part of the empire remains, controlled by a new player 120; "Barbarians" - Depending on if there`s also "CivilWar", all or part 121; or half of the dead players empire gets under barbarian 122; control. 123; "Loot" - Player who killed the gameloss unit gets loot: 124; Partial map, gold, techs, cities 125gameloss_style = "" 126 127; Whether units may safely paradrop to transport on non-native terrain 128paradrop_to_transport = FALSE 129 130; Method of paying unit and improvement gold upkeep 131; "City" - The player`s total gold must be non-negative after paying upkeep 132; costs associated with each city. If for any city the player`s 133; gold is negative, random buildings in the city are sold off. If 134; the gold is still negative, then supported units with gold upkeep 135; are disbanded. 136; "Mixed" - In the first step, the player`s total gold must be non-negative 137; after paying upkeep for all buildings within a city. If for any 138; city the player`s gold is negative, random buildings in the city 139; are sold off. 140; In the second step, gold upkeep for all units is paid in a lump 141; sum. If the player does not have enough gold, random units with 142; gold upkeep are disbanded. 143; "Nation" - Gold upkeep for all buildings and units is paid in a lump sum 144; after all cities have been processed. If the player does not 145; have enough gold, random buildings from random cities are sold. 146; If still more gold is needed, then random units with gold 147; upkeep are disbanded. 148gold_upkeep_style = "City" 149 150[illness] 151; Whether plagues (illness) are possible 152illness_on = FALSE 153 154; the base factor for illness (of percent) 155illness_base_factor = 25 156 157; minimum city size for illness 158illness_min_size = 3 159 160; factor for how much trading with a plagued city increases our city`s 161; chance for plague (in percent) 162illness_trade_infection = 50 163 164; factor for how much pollution within a city increases its chance for 165; plague (in percent) 166illness_pollution_factor = 50 167 168[incite_cost] 169; city_incite_cost = total_factor * (city_size) * (base_incite_cost 170; + (units_cost) * unit_factor 171; + (improvements_cost) * improvement_factor) 172; / ((distance to capital) * 100) 173; See city_incite_cost() for more details 174improvement_factor = 1 175unit_factor = 2 176total_factor = 100 177 178[combat_rules] 179; If tired_attack is set to TRUE, units that attack with less than a single 180; move point (per move_fragments in terrain.ruleset) will have their attack 181; power reduced accordingly. For instance, if move_fragments=3, a unit with 182; 2/3 move points will have attack power 2/3 of normal. 183; If this is set to FALSE units will attack with full strength even if they 184; have only fractional moves left. 185tired_attack = TRUE 186 187[actions] 188; If force_trade_route is set to TRUE it is illegal for an actor unit to 189; enter the marketplace of a city if it can establish a trade route to it 190; in stead. 191force_trade_route = TRUE 192 193; What each action should be called when showing them to the player. 194; The first %s should be before the mnemonic of the action. A Freeciv client 195; that supports mnemonics will replace it with the in-band signal that marks 196; the following character as a mnemonic in its graphical toolkit. 197; The second %s marks where extra details should be inserted. 198 199; /* TRANS: _Bribe Enemy Unit (3% chance of success). */ 200ui_name_bribe_unit = _("%sBribe Enemy Unit%s") 201 202; /* TRANS: _Sabotage City (3% chance of success). */ 203ui_name_sabotage_city = _("%sSabotage City%s") 204 205; /* TRANS: Incite a _Revolt (3% chance of success). */ 206ui_name_incite_city = _("Incite a %sRevolt%s") 207 208; /* TRANS: Establish _Embassy (100% chance of success). */ 209ui_name_establish_embassy = _("Establish %sEmbassy%s") 210 211; /* TRANS: Steal _Technology (3% chance of success). */ 212ui_name_steal_tech = _("Steal %sTechnology%s") 213 214; /* TRANS: _Investigate City (100% chance of success). */ 215ui_name_investigate_city = _("%sInvestigate City%s") 216 217; /* TRANS: Establish Trade _Route (100% chance of success). */ 218ui_name_establish_trade_route = _("Establish Trade %sRoute%s") 219 220; /* TRANS: Enter _Marketplace (100% chance of success). */ 221ui_name_enter_marketplace = _("Enter %sMarketplace%s") 222 223; /* TRANS: Help _build Wonder (100% chance of success). */ 224ui_name_help_wonder = _("Help %sbuild Wonder%s") 225 226; Suppress automatic help text generation about what enables and/or 227; disables the following actions. 228; 229; Can make the help text less redundant when you document it your self. 230;quiet_actions = "Targeted Sabotage City", "Targeted Steal Tech" 231 232; /* <-- avoid gettext warnings 233; 234; Action enablers: 235; 236; action = the action to enable. 237; actor_reqs = requirements that apply to the actor. 238; target_reqs = requirements that apply to the target. 239; 240; README.actions lists the possible actions and their hard coded 241; requirements. 242; 243; An action enabler is active when its actor_reqs AND its target_reqs are 244; satisfied. 245; 246; */ <-- avoid gettext warnings 247[actionenabler_sabotage_city] 248action = "Sabotage City" 249actor_reqs = 250 { "type", "name", "range" 251 "UnitFlag", "Diplomat", "Local" 252 "DiplRel", "War", "Local" 253 "UnitState", "OnLivableTile", "Local" 254 "MinMoveFrags", "1", "Local" 255 } 256 257[actionenabler_establish_embassy] 258action = "Establish Embassy" 259actor_reqs = 260 { "type", "name", "range" 261 "UnitFlag", "Diplomat", "Local" 262 "UnitState", "OnLivableTile", "Local" 263 "MinMoveFrags", "1", "Local" 264 } 265target_reqs = 266 { "type", "name", "range", "present" 267 "NationGroup", "Barbarian", "Player", FALSE 268 } 269 270[actionenabler_investigate_city] 271action = "Investigate City" 272actor_reqs = 273 { "type", "name", "range" 274 "UnitFlag", "Diplomat", "Local" 275 "UnitState", "OnLivableTile", "Local" 276 "MinMoveFrags", "1", "Local" 277 } 278 279[actionenabler_steal_tech_random] 280action = "Steal Tech" 281actor_reqs = 282 { "type", "name", "range" 283 "UnitFlag", "Diplomat", "Local" 284 "UnitState", "OnLivableTile", "Local" 285 "MinMoveFrags", "1", "Local" 286 } 287target_reqs = 288 { "type", "name", "range", "present" 289 "NationGroup", "Barbarian", "Player", FALSE 290 } 291 292[actionenabler_incite_city] 293action = "Incite City" 294actor_reqs = 295 { "type", "name", "range", "present" 296 "UnitFlag", "Diplomat", "Local", TRUE 297 "DiplRel", "Alliance", "Local", FALSE 298 "DiplRel", "Team", "Local", FALSE 299 "UnitState", "OnLivableTile", "Local", TRUE 300 "MinMoveFrags", "1", "Local", TRUE 301 } 302target_reqs = 303 { "type", "name", "range", "present" 304 "Gov", "Democracy", "Player", FALSE 305 "Building", "Palace", "City", FALSE 306 } 307 308[actionenabler_bribe_unit] 309action = "Bribe Unit" 310actor_reqs = 311 { "type", "name", "range", "present" 312 "UnitFlag", "Diplomat", "Local", TRUE 313 "DiplRel", "Alliance", "Local", FALSE 314 "DiplRel", "Team", "Local", FALSE 315 "UnitState", "OnLivableTile", "Local", TRUE 316 "MinMoveFrags", "1", "Local", TRUE 317 } 318target_reqs = 319 { "type", "name", "range", "present" 320 "CityTile", "Center", "Local", FALSE 321 "Gov", "Democracy", "Player", FALSE 322 "MaxUnitsOnTile", "1", "Local", TRUE 323 } 324 325[actionenabler_traderoute] 326action = "Establish Trade Route" 327actor_reqs = 328 { "type", "name", "range", "present" 329 "UnitFlag", "TradeRoute", "Local", TRUE 330 } 331 332[actionenabler_marketplace] 333action = "Enter Marketplace" 334actor_reqs = 335 { "type", "name", "range", "present" 336 "UnitFlag", "TradeRoute", "Local", TRUE 337 } 338 339[actionenabler_help_build_wonder] 340action = "Help Wonder" 341actor_reqs = 342 { "type", "name", "range", "present" 343 "UnitFlag", "HelpWonder", "Local", TRUE 344 "DiplRel", "Is foreign", "Local", FALSE 345 } 346 347[borders] 348; Base border radius from city. 349radius_sq_city = 17 350 351; Border radius square increased by this amount / point of city size 352size_effect = 1 353 354; Difference between city workable area and area permanently claimed by 355; city (these tiles cannot be stolen by stronger border sources). 356; 0 means exactly city workable area is immune to border stealing. 357; Negative value means outer workable tiles can be stolen; highly negative 358; value (more than max city radius_sq) means any workable tile can be stolen. 359; If City_Radius_Sq is variable, so is the set of locked tiles; this is 360; a squared value, so the radius of the ring of tiles which are workable 361; but not locked (or vice versa) varies but the area is constant. 362radius_sq_city_permanent = 0 363 364[research] 365; Method of calculating technology costs 366; "Civ I|II" - Civ (I|II) style. Every new tech add base_tech_cost to 367; cost of next tech. 368; "Classic" - Cost of technology is: 369; base_tech_cost * (1 + reqs) * sqrt(1 + reqs) / 2 370; where reqs == number of requirement for tech, counted 371; recursively. 372; "Classic+" - Cost are read from tech.ruleset. Missing costs are 373; generated by style "Classic". 374; "Experimental" - Cost of technology is: 375; base_tech_cost * (reqs^2 / (1 + sqrt(sqrt(reqs + 1))) 376; - 0.5) 377; where reqs == number of requirement for tech, counted 378; recursively. Initial techs` cost will be base_tech_cost. 379; "Experimental+" - Cost are read from tech.ruleset. Missing costs are 380; generated by style "Experimental". 381tech_cost_style = "Civ I|II" 382 383; Base research cost. Used in tech cost styles where tech cost is generated. 384; In other words: used everywhere unless the cost of *all* techs are 385; specified and the tech cost style is "Experimental+" or "Classic+". 386base_tech_cost = 20 387 388; Technology leak from other civilizations 389; "None" - No reduction of the technology cost. 390; "Embassies" - Technology cost is reduced depending on the number of 391; players which already know the tech and you have an 392; embassy with. 393; "All Players" - Technology cost is reduced depending on the number of 394; all players (human, AI and barbarians) which already 395; know the tech. 396; "Normal Players" - Technology cost is reduced depending on the number of 397; normal players (human and AI) which already know the 398; tech. 399tech_leakage = "None" 400 401; Method of paying tech upkeep 402; "None" - no upkeep 403; "Basic" - upkeep is calculated as: 404; <Cost of technology> / tech_upkeep_divider - tech_upkeep_free 405; "Cities" - upkeep is calculated like "Basic", but multiplied by number of cities 406tech_upkeep_style = "None" 407 408; Method of selecting techs given for free 409; "Goal" - Towards player`s goal, random if no goal 410; "Random" - Random researchable tech 411; "Cheapest" - Cheapest researchable tech, random among equal cost ones 412free_tech_method = "Random" 413 414[culture] 415; Minimum culture points for cultural domination victory 416victory_min_points = 1000 417 418; How big lead relative to second best player is needed for victory 419victory_lead_pct = 200 420 421; How much each culture point affects the migration 422; from/to the city. Each culture point count as this many permilles 423; of a migration point. 424migration_pml = 50 425 426[calendar] 427; Year 1 instead of 0. 428skip_year_0 = TRUE 429 430; How many fragments each year has. In addition to this, "Turn_Fragments" effects are 431; needed to control fragment accumulation. 432; Value 0 here disables year advancement by fragment accumulation. 433fragments = 0 434 435; Calendar fragment names. If name is missing, only a fragment number +1 (so human readable 436; numbers begin from 1 and not 0) is shown. 437 438;fragment_name0 = _("Jan") 439;fragment_name1 = _("Feb") 440; ... 441 442; What labels are used for positive and negative years. 443; /* TRANS: year label (Anno Domini) */ 444positive_label = _("AD") 445; /* TRANS: year label (Before Christ) */ 446negative_label = _("BC") 447 448; /* <-- avoid gettext warnings 449; 450; Disaster types: 451; 452; name = translatable name as seen by user 453; reqs = requirements for disaster to happen (see effects.ruleset 454; and README.effects for help on requirements) 455; frequency = how likely disaster is to occur 456; effects 457; - "DestroyBuilding" = Random building is destroyed 458; - "ReducePopulation" = Reduce city size by one unless it's already 1 459; - "ReducePopDestroy" = Reduce city size by one, possibly destroying the city 460; - "EmptyFoodStock" = Remove all food from food stock 461; - "EmptyProdStock" = Destroy current production 462; - "Pollution" = One tile surrounding city polluted 463; - "Fallout" = One tile surrounding city polluted with fallout 464; 465; */ <-- avoid gettext warnings 466 467[disaster_earthquake] 468name = _("Earthquake") 469reqs = 470 { "type", "name", "range" 471 "Terrain", "Hills", "Adjacent" 472 } 473frequency = 10 474effects = "DestroyBuilding" 475 476[disaster_famine] 477name = _("Famine") 478reqs = 479 { "type", "name", "range", "present" 480 "Building", "Granary", "City", FALSE 481 } 482frequency = 10 483effects = "ReducePopulation", "EmptyFoodStock" 484 485[disaster_fire] 486name = _("Fire") 487reqs = 488 { "type", "name", "range", "present" 489 "Building", "Aqueduct", "City", FALSE 490 } 491frequency = 10 492effects = "DestroyBuilding" 493 494[disaster_flood] 495name = _("Flood") 496reqs = 497 { "type", "name", "range", "present" 498 "Extra", "River", "Adjacent", TRUE 499 "Building", "City Walls", "City", FALSE 500 } 501frequency = 10 502effects = "ReducePopulation" 503 504[disaster_piracy] 505name = _("Piracy") 506reqs = 507 { "type", "name", "range", "present" 508 "Terrain", "Ocean", "Adjacent", TRUE 509 "Building", "Barracks", "City", FALSE 510 "Building", "Barracks II", "City", FALSE 511 "Building", "Barracks III", "City", FALSE 512 } 513frequency = 10 514effects = "EmptyFoodStock", "EmptyProdStock" 515 516[disaster_plague] 517name = _("Plague") 518reqs = 519 { "type", "name", "range", "present" 520 "Tech", "Medicine", "Player", FALSE 521 "Building", "Aqueduct", "City", FALSE 522 } 523frequency = 10 524effects = "ReducePopulation" 525 526[disaster_volcano] 527name = _("Volcano") 528reqs = 529 { "type", "name", "range", "present" 530 "Terrain", "Mountains", "Adjacent", TRUE 531 "Building", "Temple", "City", FALSE 532 } 533frequency = 10 534effects = "ReducePopulation" 535 536; /* <-- avoid gettext warnings 537; 538; Achievement types: 539; 540; name = translatable name as seen by user 541; rule_name = (optional) internal name for savegames, rulesets 542; etc; if not present, "name" is used for this 543; purpose too. Since the name used in savegames must 544; not change, if you want to rename an item after a 545; ruleset has been released, you should set 546; "rule_name" to the original value of "name". 547; type = What event grants the achievement to player. 548; See README.achievements for list of these types. 549; unique = If TRUE, only first one reaching the achievement will 550; get it. Defaults to TRUE 551; value = Value to reach. Exact meaning of this depends on 552; achievement type. 553; culture = Amount of culture granted to player who gets achievement 554; granted. 555; first_msg = Message shown to first player gaining the achievement 556; cons_msg = Message shown to consecutive players gaining the achievement 557; 558; */ <-- avoid gettext warnings 559 560; No achievements in civ1 ruleset 561 562; 563; Trade settings 564; 565; IN = international, IC = intercontinental. 566; For each of the trade route types: 567; "pct" - Trade income %. If this is 0, trade route cannot be 568; established at all 569; "cancelling" - What to do to previously established traderoutes when they 570; turn illegal 571; "Active" - Keep them active (although they will only 572; provide nonzero income if illegal due to 573; trademindist rather than pct==0) 574; "Inactive" - Keep them inactive 575; "Cancel" - Cancel them altogether 576; 577; If you have established a traderoute with enemy city nearby, conquer it and 578; thus get traderoute between your cities with less than trademindist distance, 579; civ1 removes the traderoute completely. 580; 581; "bonus" - One-time bonuses granted when traderoute established 582; "None" - No one-time bonus 583; "Gold" - Bonus to gold 584; "Science" - Bonus to research 585; "Both" - Bonus to gold and research 586; 587[trade] 588settings = 589 { "type", "pct", "cancelling", "bonus" 590 "National", 100, "Cancel", "Gold" 591 "NationalIC", 200, "Cancel", "Gold" 592 "IN", 200, "Cancel", "Gold" 593 "INIC", 400, "Cancel", "Gold" 594 "Ally", 200, "Cancel", "Gold" 595 "AllyIC", 400, "Cancel", "Gold" 596 "Enemy", 200, "Cancel", "Gold" 597 "EnemyIC", 400, "Cancel", "Gold" 598 "Team", 200, "Cancel", "Gold" 599 "TeamIC", 400, "Cancel", "Gold" 600 } 601 602[playercolors] 603background.r = 86 604background.g = 86 605background.b = 86 606 607; Player colors for 32 players are defined below. 608; Avoid greens, blues, and white / very pale colors (too easy to confuse 609; with terrain). 610; Avoid dark colors. 611colorlist = 612 { "r", "g", "b" 613 255, 0, 0 614 255, 255, 0 615 0, 255, 255 616 138, 43, 226 617 255, 165, 0 618 255, 0, 255 619 173, 216, 230 620 0, 255, 127 621 250, 128, 114 622 124, 252, 0 623 139, 0, 0 624 255, 192, 203 625 211, 211, 211 626 218, 112, 214 627 255, 20, 147 628 100, 149, 237 629 255, 215, 0 630 245, 222, 179 631 255, 255, 128 632 192, 255, 128 633 204, 255, 0 634 255, 211, 140 635 255, 79, 0 636 240, 145, 169 637 255, 219, 88 638 153, 17, 153 639 184, 134, 11 640 255, 102, 0 641 102, 205, 170 642 195, 33, 72 643 168, 153, 230 644 255, 250, 205 645 } 646 647[teams] 648; freeciv optional team names definition. 649; 650; names = 651; _("Team 0"), 652; _("Team 1"), 653; _("Team 2"), 654; _("Team 3"), 655; etc... 656 657[settings] 658; freeciv game for the civ1 ruleset 659; 660; set = 661; { "name", "value", "lock" 662; "bool_set", TRUE, FALSE 663; "int_set", 123, FALSE 664; "str_set", "test", FALSE 665; } 666set = 667 { "name", "value", "lock" 668 "sciencebox", 50, FALSE 669 "startunits", "c", FALSE 670 "borders", "DISABLED", FALSE 671 "citymindist", 1, FALSE 672 ; Ruleset has no trait ranges, so player choosing EVEN would have 673 ; no effect anyway 674 "traitdistribution", "FIXED", TRUE 675 "plrcolormode", "NATION_ORDER", FALSE 676 } 677