Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 7.97 KB | None | 0 0
  1. local civilisationID = GameInfoTypes["CIVILIZATION_MC_TUNIS"]
  2. local iChivalry = GameInfoTypes["TECH_CHIVALRY"]
  3. local iReligOrders = GameInfoTypes["TECH_JFD_RELIGIOUS_ORDERS"]
  4. local iX10GoldMod = GameInfoTypes["BUILDING_MC_TUNIS_FUNDOUQ_GOLD"] -- Multiply gold output by 10]
  5. local iFaithDummy = GameInfoTypes["BUILDING_MC_TUNIS_SUFI_FAITH"] -- Yields faith per trade route
  6. local iSufiismID = GameInfoTypes["POLICY_MC_TUNIS_SUFI_RIBAT"] -- Dummy policy that does w/e you want with the UTI
  7.  
  8. function GetPlayerMajorityReligion(pPlayer) -- Sukri
  9.     local iMajorityReligion = nil
  10.     for row in GameInfo.Religions() do
  11.         local iReligion = row.ID
  12.         if pPlayer:HasReligionInMostCities(iReligion) then
  13.             iMajorityReligion = iReligion
  14.             break
  15.         end
  16.     end
  17.     return iMajorityReligion
  18. end
  19.  
  20. function C15_GetPlayerReligion(pPlayer)
  21.     if HasStateReligion then
  22.         if pPlayer:HasStateReligion() then
  23.             return pPlayer:GetStateReligion()
  24.         end
  25.     end
  26.     if pPlayer:HasCreatedReligion() then
  27.         return pPlayer:GetReligionCreatedByPlayer() -- This will be different with the CP but I cbf to change it to use SaveUtils and stuff bc that's annoying
  28.     else
  29.         return GetPlayerMajorityReligion(pPlayer)
  30.     end
  31. end
  32.  
  33.  
  34. --[[function C15_GetEmbassies(playerID)
  35.     local pPlayer = Players[playerID]
  36.     if pPlayer:GetCivilizationType() == civilisationID and load(pPlayer, "Decisions_C15_Tunisia_Embassies") == true then
  37.         local iMod = 0
  38.         local iPlayerReligion = C15_GetPlayerReligion(pPlayer)
  39.         for i = 0, GameDefines.MAX_MAJOR_CIVS - 1, 1 do
  40.             if iPlayerReligion < 1 then break end
  41.             local pOtherPlayer = Players[i]
  42.             if (Teams[pPlayer:GetTeam()]:HasEmbassyAtTeam(pOtherPlayer:GetTeam())) then
  43.                 local iOtherReligion = C15_GetPlayerReligion(pOtherPlayer)
  44.                 if (iOtherReligion > 0) and (iOtherReligion ~= iPlayerReligion) then
  45.                     iMod = iMod + 1
  46.                 end
  47.             end
  48.         end
  49.         pPlayer:GetCapitalCity():SetNumRealBuilding(iX10GoldMod, iMod)
  50.     end
  51. end]]
  52.  
  53. function C15_GetEmbassies(pPlayer)
  54.     local iMod = 0
  55.     local iPlayerReligion = C15_GetPlayerReligion(pPlayer)
  56.     if (not iPlayerReligion) then return iMod end
  57.     for i = 0, GameDefines.MAX_MAJOR_CIVS - 1, 1 do
  58.         if iPlayerReligion < 1 then break end
  59.         local pOtherPlayer = Players[i]
  60.         if (Teams[pOtherPlayer:GetTeam()]:HasEmbassyAtTeam(pPlayer:GetTeam())) then
  61.             local iOtherReligion = C15_GetPlayerReligion(pOtherPlayer)
  62.             if (iOtherReligion > 0) and (iOtherReligion ~= iPlayerReligion) then
  63.                 iMod = iMod + 1
  64.             end
  65.         end
  66.     end
  67.     return iMod
  68. end
  69.                
  70. local Decisions_C15_Tunisia_Embassies = {}
  71.     Decisions_C15_Tunisia_Embassies.Name = "TXT_KEY_DECISIONS_TUNIS_EMBASSIES"
  72.     Decisions_C15_Tunisia_Embassies.Desc = "TXT_KEY_DECISIONS_TUNIS_EMBASSIES_DESC"
  73.     HookDecisionCivilizationIcon(Decisions_C15_Tunisia_Embassies, "CIVILIZATION_MC_TUNIS")
  74.     Decisions_C15_Tunisia_Embassies.CanFunc = (
  75.     function(pPlayer)
  76.         if pPlayer:GetCivilizationType() ~= civilisationID then return false end
  77.         if load(pPlayer, "Decisions_C15_Tunisia_Embassies") == true then
  78.             Decisions_C15_Tunisia_Embassies.Desc = Locale.ConvertTextKey("TXT_KEY_DECISIONS_TUNIS_EMBASSIES_ENACTED_DESC")
  79.             return false, false, true
  80.         end
  81.         local iTech = iChivalry
  82.         local iNum = C15_GetEmbassies(pPlayer) + 1
  83.         local iGold = iNum * 100 * iMod
  84.         if iReligOrders ~= nil then
  85.             Decisions_C15_Tunisia_Embassies.Desc = Locale.ConvertTextKey("TXT_KEY_DECISIONS_TUNIS_EMBASSIES_DESC_RTP", iGold)
  86.             iTech = iReligOrders
  87.         else
  88.             Decisions_C15_Tunisia_Embassies.Desc = Locale.ConvertTextKey("TXT_KEY_DECISIONS_TUNIS_EMBASSIES_DESC", iGold)
  89.         end
  90.        
  91.         if pPlayer:GetGold() < iGold then return true, false end
  92.         if pPlayer:GetNumResourceAvailable(iMagistrate, false) < 2 then return true, false end
  93.         if (not Teams[pPlayer:GetTeam()]:IsHasTech(iTech)) then return true, false  end
  94.         return true, true
  95.     end
  96.     )
  97.    
  98.     Decisions_C15_Tunisia_Embassies.DoFunc = (
  99.     function(pPlayer)
  100.         --C15_GetEmbassies(pPlayer:GetID())
  101.         local iNum = C15_GetEmbassies(pPlayer) + 1
  102.         pPlayer:ChangeGold(-iNum * 100 * iMod)
  103.         pPlayer:ChangeNumResourceTotal(iMagistrate, -2)
  104.         pPlayer:GetCapitalCity():SetNumRealBuilding(iX10GoldMod, iNum)
  105.         save(pPlayer, "Decisions_C15_Tunisia_Embassies", true)
  106.     end
  107.     )
  108.    
  109.     Decisions_C15_Tunisia_Embassies.Monitors = {}
  110.     --Decisions_C15_Tunisia_Embassies.Monitors[GameEvents.PlayerDoTurn] = (C15_GetEmbassies)
  111.     Decisions_C15_Tunisia_Embassies.Monitors[GameEvents.PlayerDoTurn] = (
  112.     function(playerID)
  113.         local pPlayer = Players[playerID]
  114.         if pPlayer:IsAlive() and pPlayer:GetCivilizationType() == civilisationID then
  115.             if load(pPlayer, "Decisions_C15_Tunisia_Embassies") == true then
  116.                 pPlayer:GetCapitalCity():SetNumRealBuilding(iX10GoldMod, C15_GetEmbassies(pPlayer))
  117.             end
  118.         end
  119.     end
  120.     )
  121.    
  122. Decisions_AddCivilisationSpecific(civilisationID, "Decisions_C15_Tunisia_Embassies", Decisions_C15_Tunisia_Embassies)
  123.  
  124. local Decisions_C15_Tunisia_Sufiism = {}
  125.     Decisions_C15_Tunisia_Sufiism.Name = "TXT_KEY_DECISIONS_TUNIS_SUFIISM"
  126.     Decisions_C15_Tunisia_Sufiism.Desc = "TXT_KEY_DECISIONS_TUNIS_SUFIISM_DESC"
  127.     HookDecisionCivilizationIcon(Decisions_C15_Tunisia_Sufiism, "CIVILIZATION_MC_TUNIS")
  128.     Decisions_C15_Tunisia_Sufiism.CanFunc = (
  129.     function(pPlayer)
  130.         if pPlayer:GetCivilizationType() ~= civilisationID then return false end
  131.         if pPlayer:HasPolicy(iSufiismID) then
  132.             Decisions_C15_Tunisia_Sufiism.Desc = Locale.ConvertTextKey("TXT_KEY_DECISIONS_TUNIS_SUFIISM_ENACTED_DESC")
  133.             return false, false, true
  134.         end
  135.        
  136.         local iGold = 200 * iMod
  137.         local iFaith = 100 * iMod
  138.        
  139.         Decisions_C15_Tunisia_Sufiism.Desc = Locale.ConvertTextKey("TXT_KEY_DECISIONS_TUNIS_SUFIISM_DESC", iGold, iFaith)
  140.         if C15_GetPlayerReligion(pPlayer) and C15_GetPlayerReligion(pPlayer) < 1 then return true, false end
  141.         if pPlayer:GetNumResourceAvailable(iMagistrate, false) < 1 then return true, false end
  142.         return true, true
  143.     end
  144.     )
  145.    
  146.     Decisions_C15_Tunisia_Sufiism.DoFunc = (
  147.     function(pPlayer)
  148.         pPlayer:ChangeGold(-200 * iMod)
  149.         pPlayer:ChangeFaith(-100 * iMod)
  150.         pPlayer:ChangeNumResourceTotal(iMagistrate, -1)
  151.         if GrantPolicy then
  152.             pPlayer:GrantPolicy(iSufiismID, true)
  153.         else
  154.             pPlayer:SetNumFreePolicies(1)
  155.             pPlayer:SetNumFreePolicies(0)
  156.             pPlayer:SetHasPolicy(iSufiismID, true)
  157.         end
  158.     end
  159.     )
  160.    
  161.     Decisions_C15_Tunisia_Sufiism.Monitors = {}
  162.     Decisions_C15_Tunisia_Sufiism.Monitors[GameEvents.PlayerDoTurn] = (
  163.     function(playerID)
  164.         local pPlayer = Players[playerID]
  165.         if pPlayer:IsAlive() and pPlayer:HasPolicy(iSufiismID) then
  166.             local tCities = {}
  167.             for k, v in ipairs(pPlayer:GetTradeRoutes()) do
  168.                 if v.FromID == playerID then
  169.                     if not tCities[v.FromCity] then
  170.                         tCities[v.FromCity] = 1
  171.                     else
  172.                         tCities[v.FromCity] = tCities[v.FromCity] + 1
  173.                     end
  174.                 end
  175.             end
  176.             for pCity in pPlayer:Cities() do
  177.                 if tCities[pCity] then
  178.                     pCity:SetNumRealBuilding(iFaithDummy, tCities[pCity])
  179.                 else
  180.                     pCity:SetNumRealBuilding(iFaithDummy, 0)
  181.                 end
  182.             end
  183.         end
  184.     end
  185.     )
  186.    
  187. Decisions_AddCivilisationSpecific(civilisationID, "Decisions_C15_Tunisia_Sufiism", Decisions_C15_Tunisia_Sufiism)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement