home *** CD-ROM | disk | FTP | other *** search
/ GameStar Special 2004 January / GSSH0104TT.iso / Levels / Riseofnations / mp_scenarios.exe / Custom / italy_mp / italy_mp.bhs < prev    next >
Encoding:
Text File  |  2003-10-23  |  17.2 KB  |  465 lines

  1. //Designed and Scripted by Mark Sobota
  2.  
  3. scenario
  4. {
  5.  
  6. labels {
  7. }
  8.  
  9. static int age_rage_triggered = 0;
  10.  
  11. run_once {
  12.   disable_all_triggers();
  13.   popup_dialog("During the 14th and 15th centuries there was an intellectual revival in Italy. These ideas and styles spread and affected all of Europe. At this time Italy was comprised of city-states. The families that controlled the important cities in Italy were trying to expand their control and influence and this led to many wars between the city-states. You take control of one of the families in this age. Your goal is to be the first to enter the Enlightenment Age. To gain use of the libraries and universities you need you will have to take them.");
  14.   set_nation_name("Romans", "Italians");
  15.   disable_type("Small City");
  16.   disable_type("Library");
  17.   disable_type("University");
  18.   disable_type("Pyramids");
  19.   disable_type("Colossus");
  20.   disable_type("Terra Cotta Army");
  21.   disable_type("Colosseum");
  22.   disable_type("Temple of Tikal");
  23.   disable_type("Porcelain Tower");
  24.   disable_type("Angkor Wat");
  25.   disable_type("Versailles");
  26.   disable_type("Statue of Liberty");
  27.   disable_type("Taj Mahal");
  28.   disable_type("Kremlin");
  29.   disable_type("Eiffel Tower");
  30.   disable_type("Supercollider");
  31.   disable_type("Space Program");
  32.   disable_city_ai(2);
  33.   disable_city_ai(3);
  34.   disable_city_ai(4);
  35.   disable_city_ai(5);
  36.   disable_production_ai(7);
  37.   disable_city_ai(7);
  38.   disable_city_ai(6);
  39.   disable_production_ai(8);
  40.   disable_city_ai(8);
  41.   disable_city_defeat(2);
  42.   disable_city_defeat(3);
  43.   disable_city_defeat(4);
  44.   disable_city_defeat(5);
  45.   disable_city_defeat(6);
  46.   disable_city_defeat(7);
  47.   disable_city_defeat(8);
  48.   enable_trigger("University_Kill_2");
  49.   enable_trigger("University_Kill_3");
  50.   enable_trigger("University_Kill_4");
  51.   enable_trigger("University_Kill_5");
  52.   enable_trigger("University_Kill_6");
  53.   enable_trigger("No_More_Universities");
  54.   enable_trigger("No_More_Libraries");
  55.   enable_trigger("Condottieri_Tech");
  56.   //enable_trigger("Condottieri_Random_Raid");
  57.   enable_trigger("CAR_Setup");
  58.   enable_trigger("Black_Death");
  59.   enable_trigger("Fall_of_Constantinople");
  60.   enable_trigger("Gutenberg_Bible");
  61.   //enable_trigger("Pico_900_Treatises");
  62.   enable_trigger("Machiavelli");
  63.   enable_trigger("Naples_Library");
  64.   enable_trigger("Naples_Lost");
  65.   set_timer("MLib", rand_int(900, 1000));
  66.   set_timer("FLLib", rand_int(1200, 1350));
  67.   set_timer("FELib", rand_int(1500, 1700));
  68.   set_timer("RLib", rand_int(1600, 1800));
  69.   set_timer("NLib", rand_int(1950, 2250));
  70.   set_timer("Black_Death_Timer", rand_int(360, 420));
  71.   set_timer("CRR", 30);
  72.   set_timer("FOC", rand_int(900, 1100)); //15 mins
  73.   set_timer("GB", rand_int(1200, 1410));  //20 mins
  74.   set_timer("Pico", rand_int(1500, 1675)); //25 mins
  75.   set_timer("Prince", rand_int(1800, 2050)); //30 mins
  76.   set_timer("Luther", rand_int(2100, 2450)); //35 mins
  77.   set_timer("War", rand_int(600, 1200));
  78.   diplomacy_set_wait(2);
  79.   diplomacy_set_wait(3);
  80.   diplomacy_set_wait(4);
  81.   diplomacy_set_wait(5);
  82.   diplomacy_set_wait(6);
  83.   set_victory_message("You have dominated the Renaissance!");
  84.   set_defeat_message("You're family has fallen irrevocably behind.");
  85. }
  86.  
  87. build2 = find_inactive_build(2, "University");
  88. build3 = find_inactive_build(3, "University");
  89. build4 = find_inactive_build(4, "University");
  90. build5 = find_inactive_build(5, "University");
  91. build6 = find_inactive_build(6, "University");
  92.  
  93. trigger University_Kill_2(build2 > -1)
  94. {
  95.   destroy_building(2, build2);
  96.   enable_trigger("University_Kill_2");
  97. }
  98.  
  99. trigger University_Kill_3(build3 > -1)
  100. {
  101.   destroy_building(3, build3);
  102.   enable_trigger("University_Kill_3");
  103. }
  104.  
  105. trigger University_Kill_4(build4 > -1)
  106. {
  107.   destroy_building(4, build4);
  108.   enable_trigger("University_Kill_4");
  109. }
  110.  
  111. trigger University_Kill_5(build5 > -1)
  112. {
  113.   destroy_building(5, build5);
  114.   enable_trigger("University_Kill_5");
  115. }
  116.  
  117. trigger University_Kill_6(build6 > -1)
  118. {
  119.   destroy_building(6, build6);
  120.   enable_trigger("University_Kill_6");
  121. }
  122.  
  123. syracuse_owner = find_city_owner("Syracuse");
  124. tunis_owner = find_city_owner("Tunis");
  125.  
  126. trigger No_More_Universities((num_type(1, "University") < 1)&&(num_type(2, "University") < 1)&&(num_type(3, "University") < 1)&&(num_type(4, "University") < 1)&&(num_type(5, "University") < 1)&&(num_type(6, "University") < 1)&&(num_type(7, "University") < 1)&&(num_type(8, "University") < 1))
  127. {
  128.   popup_dialog("As a result of the petty wars waged by you and the other families of Italy, all of the Universities in Italy have been destroyed. It is now impossible to lead the way out of the Dark Age and into the Renaissance.");
  129.   defeat(1);
  130.   defeat(2);
  131.   defeat(3);
  132.   defeat(4);
  133.   defeat(5);
  134.   defeat(6);
  135. }
  136.  
  137. trigger No_More_Libraries((num_type(1, "Library") < 1)&&(num_type(2, "Library") < 1)&&(num_type(3, "Library") < 1)&&(num_type(4, "Library") < 1)&&(num_type(5, "Library") < 1)&&(num_type(6, "Library") < 1)&&(num_type(7, "Library") < 1)&&(num_type(8, "Library") < 1))
  138. {
  139.   popup_dialog("As a result of the petty wars waged by you and the other families of Italy, all of the Libraries in Italy have been destroyed. It is now impossible to lead the way out of the Dark Age and into the Renaissance.");
  140.   defeat(1);
  141.   defeat(2);
  142.   defeat(3);
  143.   defeat(4);
  144.   defeat(5);
  145.   defeat(6);
  146. }
  147.  
  148. trigger Condottieri_Tech ((age(8) < age(1))||(age(8) < age(2))||(age(8) < age(3))||(age(8) < age(4))||(age(8) < age(5))||(age(8) < age(6)))
  149. {
  150.   for (i = age(8); i < age(1); i++) {
  151.     gain_tech(8, "Military");
  152.     gain_tech(8, "Commerce");
  153.     gain_tech(8, "Civic");
  154.     gain_tech(8, "Science");
  155.   }
  156.   for (j = age(8); j < age(1); j++) {
  157.     gain_next_age(8);
  158.   }
  159.   switch(age(8)) {
  160.     case 3:
  161.       gain_upgrade(8, "Arquebusiers");
  162.       gain_upgrade(8, "Praetorian Guards");
  163.       gain_upgrade(8, "Elite Light Cavalry");
  164.       gain_upgrade(8, "Heavy Knight");
  165.       gain_upgrade(8, "Dragoon");
  166.       gain_upgrade(8, "Bombard");
  167.       break;
  168.     default:
  169.       break;
  170.   }
  171. }
  172.  
  173. trigger Condottieri_Random_Raid(timer_expired("CRR"))
  174. {
  175.   popup_dialog("Mercenaries hired by the a rival family have been spotted raiding the countryside!");
  176.   //pop in some units
  177.   set_timer("CRR", 180);
  178.   enable_trigger("Condottieri_Random_Raid");
  179. }
  180.  
  181. trigger CAR_reset(age_rage_triggered == 1)
  182. {
  183.   if (!researching_tech(1, "Gunpowder Age")&&!researching_tech(1, "Enlightenment Age")&&!researching_tech(2, "Gunpowder Age")&&!researching_tech(2, "Enlightenment Age")&&!researching_tech(3, "Gunpowder Age")&&!researching_tech(3, "Enlightenment Age")&&!researching_tech(4, "Gunpowder Age")&&!researching_tech(4, "Enlightenment Age")&&!researching_tech(5, "Gunpowder Age")&&!researching_tech(5, "Enlightenment Age")&&!researching_tech(6, "Gunpowder Age")&&!researching_tech(6, "Enlightenment Age")) {
  184.     age_rage_triggered = 0;
  185.     enable_trigger("CAR_Setup");
  186.   }
  187.   else {
  188.     enable_trigger("CAR_reset");
  189.   }
  190. }
  191.  
  192. trigger CAR_Setup(researching_tech(1, "Gunpowder Age")||researching_tech(1, "Enlightenment Age")||researching_tech(2, "Gunpowder Age")||researching_tech(2, "Enlightenment Age")||researching_tech(3, "Gunpowder Age")||researching_tech(3, "Enlightenment Age")||researching_tech(4, "Gunpowder Age")||researching_tech(4, "Enlightenment Age")||researching_tech(5, "Gunpowder Age")||researching_tech(5, "Enlightenment Age")||researching_tech(6, "Gunpowder Age")||researching_tech(6, "Enlightenment Age"))
  193. {
  194.   who = -1;
  195.  
  196.   if (researching_tech(1, "Gunpowder Age")||researching_tech(1, "Enlightenment Age")) {
  197.     who = 1;
  198.   }
  199.   else if (researching_tech(2, "Gunpowder Age")||researching_tech(2, "Enlightenment Age")) {
  200.     who = 2;
  201.   }
  202.   else if (researching_tech(3, "Gunpowder Age")||researching_tech(3, "Enlightenment Age")) {
  203.     who = 3;
  204.   }
  205.   else if (researching_tech(4, "Gunpowder Age")||researching_tech(4, "Enlightenment Age")) {
  206.     who = 4;
  207.   }
  208.   else if (researching_tech(5, "Gunpowder Age")||researching_tech(5, "Enlightenment Age")) {
  209.     who = 5;
  210.   }
  211.   else if (researching_tech(6, "Gunpowder Age")||researching_tech(6, "Enlightenment Age")) {
  212.     who = 6;
  213.   }
  214.   popup_dialog(parse("One of your spies has intercepted a message sent to the Condottieri by a rival faction. It reads: 'We wish to hire you to sabotage %s0's research. Attack as soon as you can.' An attack is imminent.", get_leader_name(who)));
  215.   enable_trigger("Condottieri_Age_Rage");
  216.   set_timer("CAR", 10);
  217.   see = 1;
  218. }
  219.  
  220. trigger Condottieri_Age_Rage(timer_expired("CAR"))
  221. {
  222.   player_id = -1;
  223.  
  224.   if (researching_tech(1, "Gunpowder Age")||researching_tech(1, "Enlightenment Age")) {
  225.     player_id = 1;
  226.   }
  227.   else if (researching_tech(2, "Gunpowder Age")||researching_tech(2, "Enlightenment Age")) {
  228.     player_id = 2;
  229.   }
  230.   else if (researching_tech(3, "Gunpowder Age")||researching_tech(3, "Enlightenment Age")) {
  231.     player_id = 3;
  232.   }
  233.   else if (researching_tech(4, "Gunpowder Age")||researching_tech(4, "Enlightenment Age")) {
  234.     player_id = 4;
  235.   }
  236.   else if (researching_tech(5, "Gunpowder Age")||researching_tech(5, "Enlightenment Age")) {
  237.     player_id = 5;
  238.   }
  239.   else {
  240.     player_id = 6;
  241.   }
  242.   //attacking Tunis
  243.   if (find_city_owner("Tunis") == player_id) {
  244.     create_unit_upgrade(8, 34, 266, "Elite Javelineers", 4);
  245.     create_unit_in_group(8, 34, 266, "Caesar's Legions", 6);
  246.     create_unit_in_group(8, 34, 266, "Crossbowmen", 4);
  247.     create_unit_in_group(8, 34, 266, "Light Cavalry", 4);
  248.     create_unit_in_group(8, 34, 266, "Knight", 3);
  249.     create_unit_in_group(8, 34, 266, "Trebuchet", 2);
  250.     group_attack_to_order(8, 46, 234);
  251.     //supply coords 35 250
  252.     clear_group(8);
  253.     create_unit_upgrade(8, 34, 266, "Supply Wagon", 4);
  254.     group_move_order(8, 35, 250);
  255.     clear_group(8);
  256.     create_unit_upgrade(8, 6, 190, "Elite Javelineers", 4);
  257.     create_unit_in_group(8, 6, 190, "Caesar's Legions", 5);
  258.     create_unit_in_group(8, 6, 190, "Crossbowmen", 4);
  259.     create_unit_in_group(8, 6, 190, "Light Cavalry", 3);
  260.     create_unit_in_group(8, 6, 190, "Knight", 3);
  261.     create_unit_in_group(8, 6, 190, "Trebuchet", 4);
  262.     group_attack_to_order(8, 46, 234);
  263.     //supply coords 32 218
  264.     clear_group(8);
  265.     create_unit_upgrade(8, 6, 190, "Supply Wagon", 4);
  266.     group_move_order(8, 32, 218);
  267.   }
  268.   
  269.   //attacking Syracuse
  270.   if (find_city_owner("Syracuse") == player_id) {
  271.     clear_group(8);
  272.     create_unit_upgrade(8, 158, 310, "Elite Javelineers", 4);
  273.     create_unit_in_group(8, 158, 310, "Caesar's Legions", 5);
  274.     create_unit_in_group(8, 158, 310, "Crossbowmen", 3);
  275.     create_unit_in_group(8, 158, 310, "Light Cavalry", 4);
  276.     create_unit_in_group(8, 158, 310, "Knight", 2);
  277.     create_unit_in_group(8, 158, 310, "Trebuchet", 3);
  278.     group_attack_to_order(8, 186, 330);
  279.     //supply coods 171 320
  280.     clear_group(8);
  281.     create_unit_upgrade(8, 158, 310, "Supply Wagon", 4);
  282.     group_move_order(8, 171, 320);
  283.     clear_group(8);
  284.     create_unit_upgrade(8, 242, 314, "Elite Javelineers", 2);
  285.     create_unit_in_group(8, 242, 314, "Caesar's Legions", 4);
  286.     create_unit_in_group(8, 242, 314, "Crossbowmen", 3);
  287.     create_unit_in_group(8, 242, 314, "Light Cavalry", 1);
  288.     create_unit_in_group(8, 242, 314, "Knight", 3);
  289.     create_unit_in_group(8, 242, 314, "Trebuchet", 2);
  290.     create_unit_in_group(8, 242, 314, "Supply Wagon", 4);
  291.     group_attack_to_order(8, 186, 330);
  292.   }
  293.  
  294.   //attacking Dubrovnik
  295.   if (find_city_owner("Dubrovnik") == player_id) {
  296.     clear_group(8);
  297.     create_unit_upgrade(8, 346, 326, "Elite Javelineers", 4);
  298.     create_unit_in_group(8, 346, 326, "Caesar's Legions", 5);
  299.     create_unit_in_group(8, 346, 326, "Crossbowmen", 2);
  300.     create_unit_in_group(8, 346, 326, "Light Cavalry", 4);
  301.     create_unit_in_group(8, 346, 326, "Knight", 2);
  302.     create_unit_in_group(8, 346, 326, "Trebuchet", 3);
  303.     group_attack_to_order(8, 344, 179);
  304.     //supply coods 171 320
  305.     clear_group(8);
  306.     create_unit_upgrade(8, 354, 230, "Supply Wagon", 4);
  307.     group_move_order(8, 344, 179);
  308.     clear_group(8);
  309.     create_unit_upgrade(8, 354, 230, "Elite Javelineers", 4);
  310.     create_unit_in_group(8, 354, 230, "Caesar's Legions", 3);
  311.     create_unit_in_group(8, 354, 230, "Crossbowmen", 3);
  312.     create_unit_in_group(8, 354, 230, "Light Cavalry", 1);
  313.     create_unit_in_group(8, 354, 230, "Knight", 3);
  314.     create_unit_in_group(8, 354, 230, "Trebuchet", 2);
  315.     create_unit_in_group(8, 354, 230, "Supply Wagon", 4);
  316.     group_attack_to_order(8, 344, 179);
  317.   }
  318.  
  319.   age_rage_triggered = 1;
  320.   enable_trigger("CAR_reset");
  321. }
  322.  
  323. trigger Black_Death(timer_expired("Black_Death_Timer"))
  324. {
  325.   nation_victim = rand_int(1, 7);
  326.   plague_city = rand_int(1, num_cities(nation_victim));
  327.   plague_victims = rand_int(2, 10);
  328.   for (i =0; i < plague_city && i < num_cities(nation_victim); i++) {
  329.     city_name = find_city_name(nation_victim);
  330.   }
  331.   city_id = find_city_id(city_name);
  332.  
  333.   for (victims = 0; victims < plague_victims; ) {
  334.     civ_id = find_all_unit(nation_victim, "Citizen");
  335.     if ( object_near_build(nation_victim, civ_id, nation_victim, city_id, 20) && !is_on_transport(nation_victim, civ_id) ){
  336.       kill_unit_anim(nation_victim, civ_id, 2);
  337.       victims++;
  338.       civilian_already_dead = 0;
  339.     }
  340.     else {
  341.       civilian_already_dead = 1;
  342.     }
  343.     mil_id = find_all_military(1);
  344.     if ( object_near_build(nation_victim, mil_id, nation_victim, city_id, 20) && !is_on_transport(nation_victim, mil_id) ){
  345.       kill_unit_anim(nation_victim, mil_id, 2);
  346.       victims++;
  347.       military_already_dead = 0;
  348.     }
  349.     else {
  350.       military_already_dead = 1;
  351.     }
  352.     if (military_already_dead && civilian_already_dead) {
  353.       break;
  354.     }
  355.   }
  356.   
  357.   if (victims > 0) {
  358.     message_1 = "The Black Death has been reported in ";
  359.     message_2 = ". There have been ";
  360.     message_3 = " reported deaths.";
  361.     message_total = message_1 + city_name + message_2 + victims + message_3;
  362.     popup_dialog(message_total);
  363.   }
  364.   
  365.   if (!have_tech(nation_victim, "Divine Right")) {
  366.     set_timer("Black_Death_Timer", rand_int(180, 300));
  367.     enable_trigger("Black_Death");
  368.   }
  369. }
  370.  
  371. trigger Fall_of_Constantinople(timer_expired("FOC"))
  372. {
  373.   message_1 = "In 1453 Constantinople finally falls to the Ottoman Turks. Afraid of the new Turkish rule many Greek residents "
  374.             "flee the city to the Italian peninsula. They bring with them many classic works of art and literature. All factions "
  375.             "gain 500 ";
  376.   message_2 = "#ICON4";
  377.   message_3 = " from this influx of culture.";
  378.   message_total = message_1 + message_2 + message_3;
  379.   popup_dialog(message_total);
  380.             
  381.   give_good(1, "Knowledge", 500);
  382.   give_good(2, "Knowledge", 500);
  383.   give_good(3, "Knowledge", 500);
  384.   give_good(4, "Knowledge", 500);
  385.   give_good(5, "Knowledge", 500);
  386.   give_good(6, "Knowledge", 500);
  387.  
  388. }
  389.  
  390. trigger Gutenberg_Bible(timer_expired("GB"))
  391. {
  392.   message_1 = "In 1455 Johann Gutenberg finishes his moveable type printing press. The first book he prints is the Bible. This new way of mass producing books makes literature more accessible to all Europeans. Every faction gains a science";
  393.   message_2 = "#ICON27";
  394.   message_3 = " tech.";
  395.   message_total = message_1 + message_2 + message_3;
  396.   popup_dialog(message_total);
  397.   gain_tech(1, "Science");
  398.   gain_tech(2, "Science");
  399.   gain_tech(3, "Science");
  400.   gain_tech(4, "Science");
  401.   gain_tech(5, "Science");
  402.   gain_tech(6, "Science");
  403. }
  404.  
  405. trigger Machiavelli(timer_expired("Prince"))
  406. {
  407.   message_1 = "Niccolo Machiavelli publishes The Prince in 1513. Considered one of the most influential political books of all time, The Prince outlines the argument that as a ruler, it is better to be feared than to be loved. All factions gain a military";
  408.   message_2 = "#ICON24";
  409.   message_3 = " tech.";
  410.   message_total = message_1 + message_2 + message_3;
  411.   popup_dialog(message_total);
  412.   gain_tech(1, "Military");
  413.   gain_tech(2, "Military");
  414.   gain_tech(3, "Military");
  415.   gain_tech(4, "Military");
  416.   gain_tech(5, "Military");
  417.   gain_tech(6, "Military");  
  418. }
  419.  
  420. trigger Naples_Library(timer_expired("NLib"))
  421. {
  422.   for ( i = 0; i < num_military_units(6); i++)
  423.   {
  424.     unit_id = find_all_military(6);
  425.     add_to_group(6, unit_id);
  426.   }
  427.   city_id = find_city_id("Syracuse");
  428.   city_owner = find_city_owner("Syracuse");
  429.   if (!have_war(6, city_owner)) {
  430.     declare_war(6, city_owner);
  431.   }
  432.   group_attack_to_order(6, 186, 326);
  433.   enable_trigger("Naples_Library");
  434.   set_timer("NLib", rand_int(360, 430));
  435. }
  436.  
  437. trigger Naples_Lost(find_city_owner("Naples") != 6)
  438. {
  439.   set_timer("NR", rand_int(540, 660));
  440.   enable_trigger("Naples_Reclaim");
  441. }
  442.  
  443. trigger Naples_Reclaim(timer_expired("NR"))
  444. {
  445.   //create units at 263, 237 and attack to 246, 219
  446.   popup_dialog("The King of Naples is trying to reclaim his city!");
  447.   create_unit_upgrade(6, 263, 237, "Elite Javelineers", 4);
  448.   create_unit_in_group(6, 263, 237, "Caesar's Legions", 4);
  449.   create_unit_in_group(6, 263, 237, "Crossbowmen", 4);
  450.   create_unit_in_group(6, 263, 237, "Light Cavalry", 2);
  451.   create_unit_in_group(6, 263, 237, "Knight", 2);
  452.   create_unit_in_group(6, 263, 237, "Trebuchet", 2);
  453.   create_unit_in_group(6, 263, 237, "Supply Wagon", 1);
  454.   group_attack_to_order(6, 246, 219);
  455.   enable_trigger("Naples_reset");
  456.   set_timer("N_reset", 200);
  457. }
  458.  
  459. trigger Naples_reset(timer_expired("N_reset"))
  460. {
  461.   enable_trigger("Naples_Lost");
  462. }
  463.  
  464. }
  465.