Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 32.59 KB | None | 0 0
  1. -------------------------------------------------------------------------------
  2. ------------------------------ SCRIPT SETUP -----------------------------------
  3. -------------------------------------------------------------------------------
  4.  
  5. local advice = require "export_advice"
  6. local historic_events = require "export_historic_events"
  7. local scripting = require "EpisodicScripting"
  8. local camera_pan = 0
  9. local new_game = false
  10.  
  11. scripting.SetCampaign("mp_eur_napoleon")
  12. out.ting("MP Europe Script!")
  13.  
  14. UA = assert(loadfile("lua_bits.traits_ancs.lua"))
  15. setfenv(UA, getfenv())
  16. UA()
  17.  
  18.  
  19.  
  20. local function OnNewCampaignStarted(context)
  21.     new_game = true
  22. end
  23.  
  24.  
  25.  
  26. local function OnUICreated(context)
  27.     -- Re-enabling the generic campaign won message
  28.     scripting.OverrideMessageAutoShow("campaign_won", true)
  29. end
  30.  
  31.  
  32. -------------------------------------------------------------------------------------------------------------------------
  33. --
  34. -- SETTING UP MISSIONS AND BOOLEAN CONDITIONS
  35. --
  36.  
  37. -- PRUSSIAN MISSIONS
  38.  
  39. local function prussia_alliance_austria()
  40.     out.ting ("Prussian-Austrian Alliance")
  41.     scripting.game_interface:trigger_custom_mission("eur_prussia_alliance_austria",
  42.                                                     "prussia", "forge_alliance", 0, "austria",
  43.                                                     "mission_text_text_eur_prussia_alliance_austria_heading",
  44.                                                     "mission_text_text_eur_prussia_alliance_austria_text",
  45.                                                     "", 0, "", context,
  46.                                                     false,"money:1000")
  47. end
  48.  
  49. local VAR_austria_fought_france = 0
  50.  
  51.  
  52. local function prussia_alliance_russia()
  53.     out.ting ("Prussian-Russian Alliance")
  54.     scripting.game_interface:trigger_custom_mission("eur_prussia_alliance_russia",
  55.                                                     "prussia", "forge_alliance", 0, "russia",
  56.                                                     "mission_text_text_eur_prussia_alliance_russia_heading",
  57.                                                     "mission_text_text_eur_prussia_alliance_russia_text",
  58.                                                     "", 0, "", context,
  59.                                                     false,"money:1000")
  60. end
  61.  
  62.  
  63. local function prussia_build_military()
  64.     out.ting ("Prussia: Reformation of the Army")
  65.     scripting.game_interface:trigger_custom_mission("eur_prussia_build_military",
  66.                                                     "prussia", "build_building", 0, "sArmy3_drill_school",
  67.                                                     "mission_text_text_eur_prussia_build_military_heading",
  68.                                                     "mission_text_text_eur_prussia_build_military_text",
  69.                                                     "", 0, "", context,
  70.                                                     false,"grant_experience_army:1") -- NEED TO ADD NEW UNIT?
  71. end
  72.  
  73. local BOOL_prussia_fought_france = false
  74.  
  75.  
  76. local function prussia_research_economics()
  77.     out.ting ("Prussia: Restructuring the State")
  78.     scripting.game_interface:trigger_custom_mission("eur_prussia_research_economics",
  79.                                                     "prussia", "research_technology", 0, "admin1_classical_economics",
  80.                                                     "mission_text_text_eur_prussia_research_economics_heading",
  81.                                                     "mission_text_text_eur_prussia_research_economics_text",
  82.                                                     "", 0, "", context,
  83.                                                     false,"money:2000")
  84. end
  85.  
  86.  
  87. -- AUSTRIAN MISSIONS
  88.  
  89. local function austria_alliance_prussia()
  90.     out.ting ("Austrian-Prussian Alliance")
  91.     scripting.game_interface:trigger_custom_mission("eur_austria_alliance_prussia",
  92.                                                     "austria", "forge_alliance", 0, "prussia",
  93.                                                     "mission_text_text_eur_austria_alliance_prussia_heading",
  94.                                                     "mission_text_text_eur_austria_alliance_prussia_text",
  95.                                                     "", 0, "", context,
  96.                                                     false,"money:1000")
  97. end
  98.  
  99.  
  100. local function austria_capture_stuttgart()
  101.     out.ting ("Austria: Punishing the Collaborators")
  102.     scripting.game_interface:trigger_custom_mission("eur_austria_capture_stuttgart",
  103.                                                     "austria", "capture_city", 0, "eur_baden_wurttemberg",
  104.                                                     "mission_text_text_eur_austria_capture_stuttgart_heading",
  105.                                                     "mission_text_text_eur_austria_capture_stuttgart_text",
  106.                                                     "", 0, "", context,
  107.                                                     false,"money:1000,grant_unit:Inf_Line_Austrian_German_Fusiliers#settlement:eur_baden_wurttemberg:stuttgart")
  108. end
  109.  
  110. local BOOL_stuttgart_austrian = false
  111.  
  112. local function austria_research_poverty_laws()
  113.     out.ting ("Austria: Further the Restoration")
  114.     scripting.game_interface:trigger_custom_mission("eur_austria_research_poverty_laws",
  115.                                                     "austria", "research_technology", 0, "economy1_poverty_control_laws",
  116.                                                     "mission_text_text_eur_austria_research_poverty_laws_heading",
  117.                                                     "mission_text_text_eur_austria_research_poverty_laws_text",
  118.                                                     "", 0, "", context,
  119.                                                     false,"money:2000")
  120. end
  121.  
  122.  
  123. -- RUSSIAN MISSIONS
  124.  
  125. local function russia_alliance_prussia()
  126.     out.ting ("Russia-Prussian Alliance")
  127.     scripting.game_interface:trigger_custom_mission("eur_russia_alliance_prussia",
  128.                                                     "russia", "forge_alliance", 0, "prussia",
  129.                                                     "mission_text_text_eur_russia_alliance_prussia_heading",
  130.                                                     "mission_text_text_eur_russia_alliance_prussia_text",
  131.                                                     "", 0, "", context,
  132.                                                     false,"money:1000")
  133. end
  134.  
  135.  
  136. local function russia_capture_finland()
  137.     out.ting ("Russia: Settling Old Scores: Finland")
  138.     scripting.game_interface:trigger_custom_mission("eur_russia_capture_finland",
  139.                                                     "russia", "capture_city", 0, "eur_finland",
  140.                                                     "mission_text_text_eur_russia_capture_finland_heading",
  141.                                                     "mission_text_text_eur_russia_capture_finland_text",
  142.                                                     "", 0, "", context,
  143.                                                     false,"money:2000")
  144. end
  145.  
  146. local BOOL_russia_captured_finland = false
  147.  
  148. local function russia_capture_bessarabia()
  149.     out.ting ("Russia: Settling Old Scores: The Turks")
  150.     scripting.game_interface:trigger_custom_mission("eur_russia_capture_bessarabia",
  151.                                                     "russia", "capture_city", 0, "eur_moldova_bessarabia",
  152.                                                     "mission_text_text_eur_russia_capture_bessarabia_heading",
  153.                                                     "mission_text_text_eur_russia_capture_bessarabia_text",
  154.                                                     "", 0, "", context,
  155.                                                     false,"money:2000")
  156. end
  157.  
  158. local BOOL_russia_captured_bessarabia = false
  159. local BOOL_russia_bessarabia_issued = false
  160.  
  161.  
  162. -- BRITISH MISSIONS
  163.  
  164. local function britain_blockade_france()
  165.     out.ting ("Britain: Cutting off French Trade")
  166.     scripting.game_interface:trigger_custom_mission("eur_britain_blockade_france",
  167.                                                     "britain", "blockade_port", 0, "port:eur_provence:toulon",
  168.                                                     "mission_text_text_eur_britain_blockade_france_heading",
  169.                                                     "mission_text_text_eur_britain_blockade_france_text",
  170.                                                     "", 0, "", context,
  171.                                                     false,"money:2000")
  172. end
  173.  
  174. local BOOL_britain_blockade_issued = false
  175.  
  176. -- PLEASE NOTE!!! THE FOLLOWING MISSION, WHILE REFERING TO britain_alliance_portugal ACTUALLY INVOLVES THE CONQUEST OF BRITTANY!!!
  177. local function britain_take_brittany()
  178.     out.ting ("Britain: Supporting Our Allies")
  179.     scripting.game_interface:trigger_custom_mission("eur_britain_alliance_portugal",
  180.                                                     "britain", "capture_city", 0, "eur_bretagne",
  181.                                                     "mission_text_text_eur_britain_alliance_portugal_heading",
  182.                                                     "mission_text_text_eur_britain_alliance_portugal_text",
  183.                                                     "", 0, "", context,
  184.                                                     false,"money:2000")
  185. end
  186.  
  187. VAR_france_fought_russia = 0
  188. BOOL_brittany_issued = false
  189. BOOL_brittany_exists = false
  190. BOOL_brittany_british = false
  191.  
  192. -- OTHER
  193.  
  194. BOOL_france_is_AI = false
  195. BOOL_france_region_handover = false
  196.  
  197.  
  198. -------------------------------------------------------------------------------------------------------------------------
  199. --
  200. -- BATTLE-TRIGGERED MISSIONS
  201. --
  202.  
  203. local function OnBattleCompleted(context)
  204.     out.ting("OnBattleCompleted called")
  205.    
  206.     if conditions.FactionParticipatedInBattle("france", context) and conditions.FactionParticipatedInBattle("austria", context) and not CampaignUI.IsMultiplayer() then
  207.         out.ting("France fought Austria...")
  208.         if VAR_austria_fought_france == 0 then
  209.             out.ting("...once!")
  210.             VAR_austria_fought_france = 1
  211.            
  212.         elseif VAR_austria_fought_france == 1 then
  213.             out.ting("...twice!")
  214.             VAR_austria_fought_france = 2
  215.  
  216.         elseif VAR_austria_fought_france == 2 then
  217.             out.ting("...thrice!")
  218.             prussia_alliance_austria()
  219.             VAR_austria_fought_france = 3
  220.         end
  221.        
  222.     --[[elseif conditions.FactionParticipatedInBattle("france", context) and conditions.FactionParticipatedInBattle("britain", context) and not BOOL_britain_fought_france and not CampaignUI.IsMultiplayer() then
  223.         out.ting("France fought Britain, telling the british to blockade Toulon.")
  224.         BOOL_britain_fought_france = true
  225.         britain_blockade_france()]]
  226.     end
  227.    
  228.     if conditions.FactionParticipatedInBattle("france", context) and conditions.FactionParticipatedInBattle("russia", context) and not CampaignUI.IsMultiplayer() then
  229.         out.ting("France fought Russia: "..tostring(VAR_france_fought_russia))
  230.         VAR_france_fought_russia = VAR_france_fought_russia +1
  231.  
  232.     end
  233.    
  234. end
  235.  
  236.  
  237. -------------------------------------------------------------------------------------------------------------------------
  238. --
  239. -- OCCUPATION-TRIGGERED MISSIONS AND GUBBINS
  240. --
  241.  
  242. local function OnSettlementOccupied(context)
  243.    
  244.    
  245.     if conditions.SettlementIsLocal(context) and conditions.SettlementName("settlement:eur_moldova_bessarabia:iasi", context) then
  246.         out.ting("Bessarabia taken by player.")
  247.         BOOL_russia_captured_bessarabia = true
  248.     end
  249.    
  250.     if conditions.SettlementIsLocal(context) and conditions.SettlementName("settlement:eur_bretagne:rennes", context) then
  251.         out.ting("Rennes taken by player.")
  252.         BOOL_brittany_british = true
  253.     end
  254.    
  255.     if conditions.SettlementName("settlement:eur_baden_wurttemberg:stuttgart", context) and conditions.SettlementOwnedBy("austria", context) then
  256.         out.ting("Stuttgart taken by player.")
  257.         BOOL_stuttgart_austrian = true
  258.     end
  259.  
  260. end
  261.  
  262. -------------------------------------------------------------------------------------------------------------------------
  263. --
  264. -- MISSION SUCCESS EVENTS AND EFFECTS
  265. --
  266.  
  267. local function OnMissionSucceeded(context)
  268.  
  269.     out.ting("Mission Success:")
  270.    
  271.     -- PRUSSIAN MISSIONS
  272.    
  273.     if conditions.MissionName("eur_prussia_alliance_austria", context) then
  274.         out.ting("Prussia and Austria are allied!")
  275.         scripting.game_interface:show_message_event("mission_eur_prussia_alliance_austria_success", -26.0, -19.0)
  276.        
  277.     elseif conditions.MissionName("eur_prussia_alliance_russia", context) then
  278.         out.ting("Prussia and Russia are allied!")
  279.         scripting.game_interface:show_message_event("mission_eur_prussia_alliance_russia_success", 157.0, 134.0)
  280.    
  281.     elseif conditions.MissionName("eur_prussia_build_military", context) then
  282.         out.ting("Army Reformed!")
  283.         scripting.game_interface:show_message_event("mission_eur_prussia_build_military_success", -68.0, 46.0)
  284.    
  285.     elseif conditions.MissionName("eur_prussia_research_economics", context) then
  286.         out.ting("State Restructured!")
  287.         scripting.game_interface:show_message_event("mission_eur_prussia_research_economics_success", -68.0, 46.0)
  288.        
  289.        
  290.     -- AUSTRIAN MISSIONS
  291.    
  292.     elseif conditions.MissionName("eur_austria_alliance_prussia", context) then
  293.         out.ting("Austria and Prussia are allied!")
  294.         scripting.game_interface:show_message_event("mission_eur_austria_alliance_prussia_success", -68.0, 43.0)
  295.    
  296.     elseif conditions.MissionName("eur_austria_capture_stuttgart", context) then
  297.         out.ting("Collaborators Punished!")
  298.         scripting.game_interface:add_time_trigger("austria_take_stuttgart_timer", 0.1)
  299.    
  300.     elseif conditions.MissionName("eur_austria_research_poverty_laws", context) then
  301.         out.ting("Poverty Laws Researched!")
  302.         scripting.game_interface:show_message_event("mission_eur_austria_research_poverty_laws_success", -26.0, -19.0)
  303.        
  304.    
  305.     -- RUSSIAN MISSIONS
  306.    
  307.     elseif conditions.MissionName("eur_russia_alliance_prussia", context) then
  308.         out.ting("Russia and Prussia are allied!")
  309.         scripting.game_interface:show_message_event("mission_eur_russia_alliance_prussia_success", -68.0, 43.0)
  310.    
  311.     elseif conditions.MissionName("eur_russia_capture_finland", context) then
  312.         out.ting("Score Settled: Finland!")
  313.         scripting.game_interface:add_time_trigger("russia_take_finland_timer", 0.1)
  314.    
  315.     elseif conditions.MissionName("eur_russia_capture_bessarabia", context) then
  316.         out.ting("Score Settled: The Turks!")
  317.         scripting.game_interface:add_time_trigger("russia_take_bessarabia_timer", 0.1)
  318.    
  319.     -- BRITISH MISSIONS
  320.    
  321.     elseif conditions.MissionName("eur_britain_blockade_france", context) then
  322.         out.ting("Toulon Blockaded!")
  323.         scripting.game_interface:show_message_event("mission_eur_britain_blockade_france_success", -165.0, -78.0)
  324.    
  325.     elseif conditions.MissionName("eur_britain_alliance_portugal", context) then
  326.         out.ting("Toulon Blockaded!")
  327.         scripting.game_interface:show_message_event("mission_eur_britain_alliance_portugal_success", -68.0, 43.0)
  328.    
  329.     end        
  330. end
  331.  
  332.  
  333.  
  334. -------------------------------------------------------------------------------------------------------------------------
  335. --
  336. -- TIME TRIGGERS
  337. --
  338.  
  339. local function trigger_russia_prussia()
  340.     out.ting("Triggering Russia-Alliance-Prussia!!!")
  341.     russia_alliance_prussia()
  342. end
  343.  
  344. local function trigger_britain_blockade()
  345.     out.ting("Triggering Britain Alliance Portugal!!!")
  346.     britain_blockade_france()
  347. end
  348.  
  349. local function trigger_prussia_research()
  350.     out.ting("Triggering Prussia Classical Economics!!!")
  351.     prussia_research_economics()
  352. end
  353.  
  354. local function trigger_austria_research()
  355.     out.ting("Triggering Austria Research Poverty Control!!!")
  356.     austria_research_poverty_laws()
  357. end
  358.  
  359. local function trigger_prussia_build_military()
  360.     out.ting("Triggering Prussia Build Military!!!")
  361.     prussia_build_military()
  362. end
  363.  
  364. -- Display the Take Finland Mission success message
  365. local function russia_take_finland_timer()
  366.     scripting.game_interface:show_message_event("mission_eur_russia_capture_finland_success", 52.0, 149.0)
  367.     BOOL_russia_captured_finland = true
  368. end
  369.  
  370. -- Display the Take Bessarabia Mission success message 
  371. local function russia_take_bessarabia_timer()
  372.     scripting.game_interface:show_message_event("mission_eur_russia_capture_bessarabia_success", 122.0, -26.0)
  373.     BOOL_russia_captured_bessarabia = true
  374. end
  375.    
  376. -- Display the Take Stuttgart Mission success message
  377. local function austria_take_stuttgart_timer()
  378.     scripting.game_interface:show_message_event("mission_eur_austria_capture_stuttgart_success", -116.0, -2.0)
  379. end
  380.    
  381.  
  382.  
  383. -------------------------------------------------------------------------------------------------------------------------
  384. --
  385. -- SETTING UP TIMERS
  386. -- 
  387.  
  388. local function OnTimeTrigger(context)
  389.        
  390.     if context.string == "trigger_russia_prussia" then
  391.         trigger_russia_prussia()
  392.        
  393.     elseif context.string == "trigger_britain_blockade" then
  394.         trigger_britain_blockade()
  395.    
  396.     elseif context.string == "trigger_prussia_research" then
  397.         trigger_prussia_research()
  398.    
  399.     elseif context.string == "trigger_prussia_build_military" then
  400.         trigger_prussia_build_military()
  401.        
  402.     elseif context.string == "trigger_austria_research" then
  403.         trigger_austria_research()
  404.  
  405.     -- Display the Take Finland Mission success message
  406.     elseif context.string == "russia_take_finland_timer" then
  407.         russia_take_finland_timer()
  408.  
  409.     -- Display the Take Bessarabia Mission success message 
  410.     elseif context.string == "russia_take_bessarabia_timer" then
  411.         russia_take_bessarabia_timer()
  412.    
  413.     -- Display the Take Stuttgart Mission success message
  414.     elseif context.string == "austria_take_stuttgart_timer" then
  415.         austria_take_stuttgart_timer()
  416.    
  417.    
  418.     end
  419. end
  420.    
  421.    
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430. -------------------------------------------------------------------------------------------------------------------------
  431. --
  432. -- SAVE AND LOAD BOOLS, PREVENT MISSIONS BEING RE-ISSUED AFTER LOADING A SAVEGAME
  433. --
  434.  
  435. local function OnSavingGame(context)
  436.     scripting.game_interface:save_value(VAR_austria_fought_france, context)
  437.     scripting.game_interface:save_value(BOOL_britain_blockade_issued, context)
  438.     scripting.game_interface:save_value(BOOL_prussia_fought_france, context)
  439.     scripting.game_interface:save_value(BOOL_russia_captured_bessarabia, context)
  440.     scripting.game_interface:save_value(BOOL_russia_captured_finland, context)
  441.     scripting.game_interface:save_value(VAR_france_fought_russia, context)
  442.     scripting.game_interface:save_value(BOOL_brittany_issued, context)
  443.     scripting.game_interface:save_value(BOOL_brittany_exists, context)
  444.     scripting.game_interface:save_value(BOOL_france_is_AI, context)
  445.     scripting.game_interface:save_value(BOOL_france_region_handover, context)
  446.     scripting.game_interface:save_value(BOOL_russia_bessarabia_issued, context)
  447.     scripting.game_interface:save_value(BOOL_brittany_british, context)
  448.     scripting.game_interface:save_value(BOOL_stuttgart_austrian, context)
  449. end
  450.  
  451. local function OnLoadingGame(context)
  452.     VAR_austria_fought_france =                 scripting.game_interface:load_value(0, context)
  453.     BOOL_britain_blockade_issued =              scripting.game_interface:load_value(false, context)
  454.     BOOL_prussia_fought_france =                scripting.game_interface:load_value(false, context)
  455.     BOOL_russia_captured_bessarabia =           scripting.game_interface:load_value(false, context)
  456.     BOOL_russia_captured_finland =              scripting.game_interface:load_value(false, context)
  457.     VAR_france_fought_russia =                  scripting.game_interface:load_value(0, context)
  458.     BOOL_brittany_issued =                      scripting.game_interface:load_value(false, context)
  459.     BOOL_brittany_exists =                      scripting.game_interface:load_value(false, context)
  460.     BOOL_france_is_AI =                         scripting.game_interface:load_value(false, context)
  461.     BOOL_france_region_handover =               scripting.game_interface:load_value(false, context)
  462.     BOOL_russia_bessarabia_issued =             scripting.game_interface:load_value(false, context)
  463.     BOOL_brittany_british =                     scripting.game_interface:load_value(false, context)
  464.     BOOL_stuttgart_austrian =                   scripting.game_interface:load_value(false, context)
  465. end
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.    
  477. -------------------------------------------------------------------------------------------------------------------------
  478. --
  479. -- TRIGGERS THE INITIAL TURN CAMERA PANS, TIED INTO ADVICE
  480. --
  481.  
  482. local function OnAdviceIssued(context)
  483.    
  484.     -- 1009a_Campaign_Advice_Austria_Initial_Turns_Thread
  485.     if conditions.AdviceJustDisplayed("773515340", context) and not CampaignUI.IsMultiplayer() then
  486.         scripting.game_interface:steal_user_input(true)
  487.         scripting.game_interface:show_shroud(false)
  488.         scripting.game_interface:set_zoom_limit(1.00, 0.2)
  489.         CampaignUI.ScrollCamera(30,
  490.                                 {-25.000, -21.000, 0.9},
  491.                                 {-177.000, -81.000, 0.8},
  492.                                 {-258.000, -3.000, 0.7},
  493.                                 {-93.000, -19.000, 0.8})
  494.         camera_pan = 10
  495.  
  496.        
  497.     -- 1001a_Campaign_Advice_Britain_Initial_Turns_Thread
  498.     elseif conditions.AdviceJustDisplayed("-1065946002", context) and not CampaignUI.IsMultiplayer() then
  499.         scripting.game_interface:steal_user_input(true)
  500.         scripting.game_interface:show_shroud(false)
  501.         scripting.game_interface:set_zoom_limit(1.00, 0.2)
  502.         CampaignUI.ScrollCamera(33,
  503.                                 {-242.000, 36.000, 0.9},
  504.                                 {-210.000, -0.000, 0.7},
  505.                                 {-114.000, -56.000, 0.75},
  506.                                 {-26.000, -25.000, 0.8},
  507.                                 {-91.000, 12.000, 0.65},
  508.                                 {-153.000, -2.000, 0.95})
  509.         camera_pan = 20
  510.  
  511.        
  512.     -- 1005a_Campaign_Advice_Russia_Initial_Turns_Thread
  513.     elseif conditions.AdviceJustDisplayed("704891735", context) and not CampaignUI.IsMultiplayer() then
  514.         scripting.game_interface:steal_user_input(true)
  515.         scripting.game_interface:show_shroud(false)
  516.         scripting.game_interface:set_zoom_limit(1.00, 0.2)
  517.         CampaignUI.ScrollCamera(28,
  518.                                 {260.000, 83.000, 0.95},
  519.                                 {-27.000, -60.000, 0.5},
  520.                                 {-107.000, -18.000, 0.75})
  521.         camera_pan = 30
  522.        
  523.  
  524.     -- 1006a_Campaign_Advice_Prussia_Initial_Turns_Thread
  525.     elseif conditions.AdviceJustDisplayed("1248357663", context) and not CampaignUI.IsMultiplayer() then
  526.         scripting.game_interface:steal_user_input(true)
  527.         scripting.game_interface:show_shroud(false)
  528.         scripting.game_interface:set_zoom_limit(1.00, 0.2)
  529.         CampaignUI.ScrollCamera(49,
  530.                                 {-68.000, 46.000, 0.9},
  531.                                 {-200.000, 0.000, 0.7},
  532.                                 {-120.000, -40.000, 0.6},
  533.                                 {-25.000,-26.000, 0.7},
  534.                                 {-106.000, -24.000, 0.7})
  535.         camera_pan = 40
  536.        
  537.     end
  538. end
  539.  
  540.  
  541. local function OnCameraMoverFinished(context)
  542.  
  543.     -- 1009a_Campaign_Advice_Austria_Initial_Turns_Thread
  544.     if camera_pan == 10 then
  545.         scripting.game_interface:set_zoom_limit(1.0, 0.5)
  546.         CampaignUI.ScrollCamera(2, 
  547.                                 {-93.000, -19.000, 0.8},
  548.                                 {-93.000, -19.000, 0.801})
  549.         camera_pan = 11
  550.  
  551.     elseif camera_pan == 11 then   
  552.         CampaignUI.ScrollCamera(27,
  553.                                 {120.000, 10.000, 0.9},
  554.                                 {30.000, 63.000, 0.7},
  555.                                 {-20.000, 24.000, 0.85},
  556.                                 {-25.000, -21.000, 0.9})
  557.         camera_pan = 12
  558.        
  559.     elseif camera_pan == 12 then   
  560.         scripting.game_interface:show_shroud(true)
  561.         scripting.game_interface:steal_user_input(false)
  562.         scripting.game_interface:set_zoom_limit(1.0, 0.61)
  563.         CampaignUI.SetCameraZoom(0.85)
  564.         CampaignUI.SetCameraTargetInstant(-25.000, -21.000)
  565.         camera_pan = 0
  566.         scripting.game_interface:add_time_trigger("trigger_austria_research", 0.25)
  567.  
  568.                
  569.     -- 1001a_Campaign_Advice_Britain_Initial_Turns_Thread
  570.     elseif camera_pan == 20 then
  571.         scripting.game_interface:set_zoom_limit(1.0, 0.5)
  572.         CampaignUI.ScrollCamera(2, 
  573.                                 {-153.000, -2.000, 0.95},
  574.                                 {-153.000, -2.000, 0.951})
  575.         camera_pan = 21
  576.    
  577.     elseif camera_pan == 21 then
  578.         scripting.game_interface:set_zoom_limit(1.0, 0.5)
  579.         CampaignUI.ScrollCamera(18,
  580.                                 {-153.000, -2.000, 0.951},
  581.                                 {-250.000, 0.000, 0.7},
  582.                                 {-367.000, -154.000, 0.95})
  583.                                
  584.         camera_pan = 22
  585.        
  586.     elseif camera_pan == 22 then
  587.         scripting.game_interface:set_zoom_limit(1.0, 0.5)
  588.         CampaignUI.ScrollCamera(4,
  589.                                 {-367.000, -154.000, 0.95},
  590.                                 {-367.000, -154.000, 0.951})
  591.                                
  592.         camera_pan = 23
  593.        
  594.     elseif camera_pan == 23 then
  595.         scripting.game_interface:set_zoom_limit(1.0, 0.5)
  596.         CampaignUI.ScrollCamera(11,
  597.                                 {-367.000, -154.000, 0.951},
  598.                                 {-239.000, -85.000, 0.7},
  599.                                 {-239.000, 30.000, 0.95})
  600.         camera_pan = 24    
  601.  
  602.        
  603.     elseif camera_pan == 24 then
  604.         scripting.game_interface:show_shroud(true)
  605.         scripting.game_interface:steal_user_input(false)
  606.         scripting.game_interface:set_zoom_limit(1.0, 0.61)
  607.         CampaignUI.SetCameraZoom(0.85)
  608.         CampaignUI.SetCameraTargetInstant(-239.000, 30.000)
  609.         camera_pan = 0
  610.        
  611.    
  612.     -- 1005a_Campaign_Advice_Russia_Initial_Turns_Thread
  613.     elseif camera_pan == 30 then
  614.         scripting.game_interface:set_zoom_limit(1.0, 0.5)
  615.         CampaignUI.ScrollCamera(3,
  616.                                 {-107.000, -18.000, 0.75},
  617.                                 {-107.000, -18.000, 0.751})
  618.         camera_pan = 31    
  619.  
  620.     elseif camera_pan == 31 then
  621.         scripting.game_interface:set_zoom_limit(1.0, 0.5)
  622.         CampaignUI.ScrollCamera(19,
  623.                                 {-107.000, -18.000, 0.751},
  624.                                 {32.000, 32.000, 0.9},
  625.                                 {256.000, 83.000, 0.7})
  626.         camera_pan = 32
  627.        
  628.     elseif camera_pan == 32 then
  629.         scripting.game_interface:show_shroud(true)
  630.         scripting.game_interface:steal_user_input(false)
  631.         scripting.game_interface:set_zoom_limit(1.0, 0.61)
  632.         CampaignUI.SetCameraZoom(0.7)
  633.         CampaignUI.SetCameraTargetInstant(256.000, 83.000)
  634.         camera_pan = 0
  635.         scripting.game_interface:add_time_trigger("trigger_russia_prussia", 0.25)
  636.    
  637.        
  638.     -- 1006a_Campaign_Advice_Prussia_Initial_Turns_Thread
  639.     elseif camera_pan == 40 then
  640.         scripting.game_interface:set_zoom_limit(1.0, 0.5)
  641.         CampaignUI.ScrollCamera(5, 
  642.                                 {-106.000, -24.000, 0.7},
  643.                                 {-106.000, -24.000, 0.701})
  644.         camera_pan = 41
  645.    
  646.     elseif camera_pan == 41 then
  647.         scripting.game_interface:set_zoom_limit(1.0, 0.5)
  648.         CampaignUI.ScrollCamera(18,
  649.                                 {129.000, 77.000, 0.9},
  650.                                 {32.000, 33.000, 0.7},
  651.                                 {-70.000, 46.000, 0.9})
  652.         camera_pan = 42
  653.    
  654.     elseif camera_pan == 42 then
  655.         scripting.game_interface:show_shroud(true)
  656.         scripting.game_interface:steal_user_input(false)
  657.         scripting.game_interface:set_zoom_limit(1.0, 0.61)
  658.         CampaignUI.SetCameraZoom(0.85)
  659.         CampaignUI.SetCameraTargetInstant(-70.000, 46.000)
  660.         camera_pan = 0
  661.         scripting.game_interface:add_time_trigger("trigger_prussia_build_military", 0.25)
  662.    
  663.     end
  664. end
  665.  
  666.  
  667.  
  668. local function OnCameraMoverCancelled(context)
  669.  
  670.     if (camera_pan == 10) or (camera_pan == 11) then
  671.         camera_pan = 12
  672.         CampaignUI.StopCamera()
  673.    
  674.     elseif (camera_pan == 20) or (camera_pan == 21) or (camera_pan == 22) or (camera_pan == 23) then
  675.         camera_pan = 32
  676.         CampaignUI.StopCamera()
  677.    
  678.     elseif (camera_pan == 30) or (camera_pan == 31) then
  679.         camera_pan = 32
  680.         CampaignUI.StopCamera()
  681.    
  682.     elseif (camera_pan == 40) or (camera_pan == 41) then
  683.         camera_pan = 42
  684.         CampaignUI.StopCamera()
  685.     end
  686.  
  687.     OnCameraMoverFinished(context)
  688. end
  689.  
  690.  
  691.  
  692. local function OnAdviceDismissed(context)
  693.    
  694.     if camera_pan ~= 0 then
  695.    
  696.         -- 1009a_Campaign_Advice_Austria_Initial_Turns_Thread
  697.         if conditions.AdviceJustDisplayed("773515340", context) then
  698.             camera_pan = 12
  699.             CampaignUI.StopCamera()
  700.            
  701.         -- 1001a_Campaign_Advice_Britain_Initial_Turns_Thread  
  702.         elseif conditions.AdviceJustDisplayed("-1065946002", context) then
  703.             camera_pan = 24
  704.             CampaignUI.StopCamera()
  705.        
  706.        
  707.         -- 1005a_Campaign_Advice_Russia_Initial_Turns_Thread
  708.         elseif conditions.AdviceJustDisplayed("704891735", context) then
  709.             camera_pan = 32
  710.             CampaignUI.StopCamera()
  711.        
  712.        
  713.         -- 1006a_Campaign_Advice_Prussia_Initial_Turns_Thread
  714.         elseif conditions.AdviceJustDisplayed("1248357663", context) then
  715.             camera_pan = 42
  716.             CampaignUI.StopCamera()
  717.            
  718.         end
  719.     end
  720. end
  721.  
  722.  
  723. -------------------------------------------------------------------------------------------------------------------------
  724. --
  725. -- POSITIONS THE STARTING CAMERA APPROPRIATELY IN MP CAMPAIGNS DEPENDING ON THE CURRENT FACTION
  726. --
  727.  
  728.  
  729. local function OnFactionTurnStart(context)
  730.  
  731.     if conditions.TurnNumber(context) == 1 then
  732.         out.ting ("Turn 1")
  733.        
  734.         if conditions.FactionIsLocal(context) then
  735.             if conditions.FactionName("france", context) and conditions.FactionIsHuman("france", context) and CampaignUI.IsMultiplayer() then
  736.                 out.ting("Player is France")
  737.                 scripting.game_interface:set_zoom_limit(1.00, 0.61)
  738.                 CampaignUI.SetCameraZoom(0.75)
  739.                 CampaignUI.SetCameraTargetInstant(-208.0, -2.0)
  740.                
  741.            
  742.             elseif conditions.FactionName("austria", context) and conditions.FactionIsHuman("austria", context) and CampaignUI.IsMultiplayer() then
  743.                 out.ting("Player is Austria")
  744.                 scripting.game_interface:set_zoom_limit(1.00, 0.61)
  745.                 CampaignUI.SetCameraZoom(0.75)
  746.                 CampaignUI.SetCameraTargetInstant(-26.0, -18.0)
  747.        
  748.             elseif conditions.FactionName("prussia", context) and conditions.FactionIsHuman("prussia", context) and CampaignUI.IsMultiplayer() then
  749.                 out.ting("Player is Prussia")
  750.                 scripting.game_interface:set_zoom_limit(1.00, 0.61)
  751.                 CampaignUI.SetCameraZoom(0.75)
  752.                 CampaignUI.SetCameraTargetInstant(-68.000, 46.000)
  753.            
  754.             elseif conditions.FactionName("russia", context) and conditions.FactionIsHuman("russia", context) and CampaignUI.IsMultiplayer() then
  755.                 out.ting("Player is Russia")
  756.                 scripting.game_interface:set_zoom_limit(1.00, 0.61)
  757.                 CampaignUI.SetCameraZoom(0.75)
  758.                 CampaignUI.SetCameraTargetInstant(256.000, 83.000)
  759.            
  760.             elseif conditions.FactionName("britain", context) and conditions.FactionIsHuman("britain", context) and CampaignUI.IsMultiplayer() then
  761.                 out.ting("Player is Britain")
  762.                 scripting.game_interface:set_zoom_limit(1.00, 0.61)
  763.                 CampaignUI.SetCameraZoom(0.75)
  764.                 CampaignUI.SetCameraTargetInstant(-239.000, 30.000)
  765.             end
  766.         end
  767.     end
  768.    
  769.     -- If no player is France, inform the other players that the Rhineland states have been given to France
  770.     if conditions.TurnNumber(context) == 2 then
  771.         if conditions.FactionName("austria", context) and conditions.FactionIsHuman("austria", context) and BOOL_france_is_AI then
  772.             scripting.game_interface:show_message_event("campmap_europe_rhineland", -103.0, -21.0)
  773.             if not CampaignUI.IsMultiplayer() then
  774.                 austria_alliance_prussia()
  775.             end        
  776.                        
  777.         elseif conditions.FactionName("prussia", context) and conditions.FactionIsHuman("prussia", context) and BOOL_france_is_AI then                 
  778.             scripting.game_interface:show_message_event("campmap_europe_rhineland", -103.0, -21.0)
  779.             if not CampaignUI.IsMultiplayer() then
  780.                 prussia_alliance_russia()
  781.             end
  782.            
  783.         elseif conditions.FactionName("russia", context) and conditions.FactionIsHuman("russia", context) and BOOL_france_is_AI then                   
  784.             scripting.game_interface:show_message_event("campmap_europe_rhineland", -103.0, -21.0)
  785.            
  786.         elseif conditions.FactionName("britain", context) and conditions.FactionIsHuman("britain", context) and BOOL_france_is_AI then                 
  787.             scripting.game_interface:show_message_event("campmap_europe_rhineland", -103.0, -21.0)
  788.            
  789.         end
  790.    
  791.     -- Trigger Russia Capture Finland
  792.     elseif conditions.TurnNumber(context) == 3 then
  793.         if conditions.FactionName("russia", context) and conditions.FactionIsHuman("russia", context) and not CampaignUI.IsMultiplayer() then
  794.             russia_capture_finland()
  795.         end
  796.    
  797.     -- Trigger the Austrian Mission to capture Stuttgart
  798.     elseif conditions.TurnNumber(context) == 4 then
  799.         if conditions.FactionName("austria", context) and conditions.FactionIsHuman("austria", context) and not BOOL_stuttgart_austrian and not CampaignUI.IsMultiplayer() then
  800.             austria_capture_stuttgart()
  801.            
  802.         -- Trigger the Prussian mission to research tech
  803.         elseif conditions.FactionName("prussia", context) and conditions.FactionIsHuman("prussia", context) and not CampaignUI.IsMultiplayer() then
  804.             prussia_research_economics()
  805.         end
  806.        
  807.     end
  808.    
  809.     -- If no player is France, give France the Rhineland states
  810.     if conditions.FactionName("france", context) and not conditions.FactionIsHuman("france", context) and not BOOL_france_region_handover then
  811.         out.ting("Handing regions to the French!")
  812.         scripting.game_interface:grant_faction_handover("france", "bavaria", 0, 0, context)
  813.         scripting.game_interface:grant_faction_handover("france", "wurttemberg", 0, 0, context)
  814.         BOOL_france_is_AI = true
  815.         BOOL_france_region_handover = true
  816.     end
  817.    
  818.     -- If Finland is taken, tell Russia to take on the Turks as well
  819.     if conditions.FactionName("russia", context) and conditions.FactionIsHuman("russia", context) and BOOL_russia_captured_finland and not BOOL_russia_captured_bessarabia and not BOOL_russia_bessarabia_issued and not CampaignUI.IsMultiplayer() then
  820.         russia_capture_bessarabia()
  821.         BOOL_russia_bessarabia_issued = true
  822.     end
  823.    
  824.     -- Has Brittany had a turn (does Brittany exist?)
  825.     if conditions.FactionName("brittany", context) then
  826.         BOOL_brittany_exists = true
  827.     end
  828.    
  829.     -- If the player is Britain and France has engaged Russia, then trigger 'Take Brittany'
  830.     if conditions.FactionName("britain", context) and conditions.FactionIsHuman("britain", context) then
  831.         if not BOOL_brittany_issued and not BOOL_brittany_british and VAR_france_fought_russia ~= 0 and not BOOL_brittany_exists and not CampaignUI.IsMultiplayer() then
  832.             britain_take_brittany()
  833.             BOOL_brittany_issued = true
  834.         end
  835.        
  836.         if not BOOL_britain_blockade_issued then
  837.             britain_blockade_france()
  838.             BOOL_britain_blockade_issued = true
  839.        
  840.         end
  841.     end
  842.  
  843.     local Interfacer = require "EiC_Mod_Tools.Tool Framework.Scripting_Interfacer"
  844.     Interfacer.pre_turn_interface ()
  845.     if CampaignUI.IsPlayersTurn() == true then
  846.     Interfacer.On_Turn_Interfacer ()
  847.     end
  848.    
  849. end
  850.  
  851.  
  852. -------------------------------------------------------------------------------------------------------------------------
  853. --
  854. -- SET UP THE ESCAPE KEY TO CIRCUMVENT PLAYER INTERACTION LOCKING
  855. --
  856.  
  857. function OnKeyPressed(key, is_key_up)
  858.     if is_key_up == true then
  859.         if key == "ESCAPE" then
  860.             local local_current_advice = current_advice
  861.             if camera_pan ~= "" then
  862.                 CampaignUI.StopCamera()
  863.             end
  864.             if local_current_advice ~= "" and local_current_advice == current_advice then
  865.                 CampaignUI.DismissAdvice()
  866.             end
  867.         end
  868.     end
  869. end
  870.    
  871. --------------------------------------------------------------------------------------------------------------------
  872. -- Add event callbacks
  873. -- For a list of all events supported create a "documentation" directory in your empire directory, run a debug build of the game and see
  874. -- the events.txt file
  875. --------------------------------------------------------------------------------------------------------------------
  876.  
  877.  
  878. scripting.AddEventCallBack("FactionTurnStart", OnFactionTurnStart)
  879. scripting.AddEventCallBack("AdviceIssued", OnAdviceIssued)
  880. scripting.AddEventCallBack("AdviceDismissed", OnAdviceDismissed)
  881. scripting.AddEventCallBack("CameraMoverCancelled", OnCameraMoverCancelled)
  882. scripting.AddEventCallBack("CameraMoverFinished", OnCameraMoverFinished)
  883. scripting.AddEventCallBack("UICreated", OnUICreated)
  884. scripting.AddEventCallBack("TimeTrigger", OnTimeTrigger)
  885. scripting.AddEventCallBack("SavingGame", OnSavingGame)
  886. scripting.AddEventCallBack("LoadingGame", OnLoadingGame)
  887. scripting.AddEventCallBack("MissionSucceeded", OnMissionSucceeded)
  888. scripting.AddEventCallBack("BattleCompleted", OnBattleCompleted)
  889. scripting.AddEventCallBack("NewCampaignStarted", OnNewCampaignStarted)
  890. scripting.AddEventCallBack("SettlementOccupied", OnSettlementOccupied)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement