Advertisement
GPuzzle

WendsE&DLua

Oct 1st, 2015
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 8.98 KB | None | 0 0
  1. ------------------------------
  2. --Decisions_SamoEmpire
  3. ------------------------------
  4. Decisions_AddCivilisationSpecific(GameInfoTypes.CIVILIZATION_NIX_WENDS, "Decisions_ThaiAlphabet", Decisions_ThaiAlphabet)
  5.  
  6. local Decisions_SamoEmpire = {}
  7.         Decisions_SamoEmpire.Name = "TXT_KEY_DECISIONS_NIX_SAMOEMPIRE"
  8.         Decisions_SamoEmpire.Desc = "TXT_KEY_DECISIONS_NIX_SAMOEMPIRE_DESC"
  9.         HookDecisionCivilizationIcon(Decisions_SamoEmpire, "CIVILIZATION_NIX_WENDS")
  10.                
  11.         Decisions_ThaiAlphabet.CanFunc = (
  12.         function(pPlayer)
  13.                 if (pPlayer:GetCivilizationType() ~= GameInfoTypes.CIVILIZATION_NIX_WENDS) then
  14.                         return false, false
  15.                 end
  16.                 if load(pPlayer, "Decisions_SamoEmpire") == true then
  17.                         Decisions_SamoEmpire.Desc = Locale.ConvertTextKey("TXT_KEY_DECISIONS_NIX_SAMOEMPIRE_ENACTED_DESC")
  18.                         return false, false, true
  19.                 end
  20.                 Decisions_SamoEmpire.Desc = Locale.ConvertTextKey("TXT_KEY_DECISIONS_NIX_SAMOEMPIRE_DESC", iCost)
  21.                
  22.                 if (pPlayer:GetNumResourceAvailable(iMagistrate, false) < 2) then return true, false end
  23.  
  24.                 local populationCapital = false
  25.                 local capturedCapital = false
  26.                 for city in player:Cities() do
  27.                         if (city:GetOriginalOwner() ~= pPlayer and city:IsOriginalCapital()) then
  28.                                 capturedCapital = true
  29.                         end
  30.                 end
  31.                 for city in player:Cities() do
  32.                     if  city:IsCapital() then
  33.                         if (city:GetPopulation>=10) then
  34.                         populationCapital = true
  35.                         end
  36.                     end
  37.                 end
  38.                
  39.                 if populationCapital and capturedCapital then
  40.                         return true, true
  41.                 else
  42.                         return true, false
  43.                 end
  44.         end
  45.         )
  46.         Decisions_SamoEmpire.DoFunc = (
  47.         function(pPlayer)
  48.                 pPlayer:ChangeNumResourceTotal(iMagistrate, -2)
  49.                 for pCity in pPlayer:Cities() do
  50.                         pCity:SetNumRealBuilding(GameInfoTypes.BUILDING_DECISIONS_NIX_SAMOEMPIRE, 1)
  51.                 end
  52.                 PreGame.SetCivilizationDescription(pPlayer, Locale.ConvertTextKey("TXT_KEY_NIX_SAMOEMPIRE_DESC"))
  53.                 PreGame.SetCivilizationShortDescription(pPlayer, Locale.ConvertTextKey("TXT_KEY_NIX_SAMOEMPIRE_SHORT_DESC"))
  54.                 PreGame.SetCivilizationAdjective(pPlayer, Locale.ConvertTextKey("TXT_KEY_NIX_SAMOEMPIRE_ADJ"))
  55.                 save(pPlayer, "Decisions_SamoEmpire", true)
  56.         end
  57.         )
  58. ------------------------------
  59. --Decisions_WendsCS
  60. ------------------------------
  61. Decisions_AddCivilisationSpecific(GameInfoTypes.CIVILIZATION_NIX_WENDS, "Decisions_WendsCS", Decisions_WendsCS)
  62.  
  63. local Decisions_WendsCS = {}
  64.         Decisions_WendsCS.Name = "TXT_KEY_DECISIONS_THAIALPHABET"
  65.         Decisions_WendsCS.Desc = "TXT_KEY_DECISIONS_THAIALPHABET_DESC"
  66.         HookDecisionCivilizationIcon(Decisions_WendsCS, "CIVILIZATION_NIX_WENDS")
  67.         Decisions_WendsCS.CanFunc = (
  68.         function(pPlayer)
  69.                 if (pPlayer:GetCivilizationType() ~= GameInfoTypes.CIVILIZATION_NIX_WENDS) then
  70.                         return false, false
  71.                 end
  72.                 if load(pPlayer, "Decisions_WendsCS") == true then
  73.                         Decisions_WendsCS.Desc = Locale.ConvertTextKey("TXT_KEY_DECISIONS_NIX_WENDSCS_ENACTED_DESC")
  74.                         return false, false, true
  75.                 end
  76.                 Decisions_WendsCS.Desc = Locale.ConvertTextKey("TXT_KEY_DECISIONS_NIX_WENDSCS_DESC")
  77.                
  78.                 if (pPlayer:GetNumResourceAvailable(iMagistrate, false) < 1) then return true, false end
  79.                 local goldCost = (Game.GetCurrentEra()+1)*175
  80.                 local isWar = false
  81.                 local isAllied = false
  82.                 local enactedWar = false
  83.                 local enactedEra = false
  84.                 function GPuz_AtPeace(playerID)
  85.                 local atPeace = false
  86.                 if Teams[Players[playerID]:GetTeam()]:GetAtWarCount(false) == 0 then atPeace = true end
  87.                 return atPeace
  88.                 end
  89.                 if GPuz_AtPeace(pPlayer) = false
  90.                         enactedWar = true
  91.                 end
  92.                 for minorPlayerID = 0, GameDefines.MAX_MINOR_CIVS - 1 do
  93.                 local minorCiv = Players[minorPlayerID]
  94.                 if (minorCiv:GetCapitalCity() and minorCiv:IsAlive()) then
  95.                         if minorCiv:GetMinorCivFriendshipLevelWithMajor(playerID) == 2 then
  96.                                 isAllied = true
  97.                         end
  98.                 end
  99.  
  100.                 if isWar and isAllied and enactedWar and enactedEra and (pPlayer:GetGold() >= goldCost) then
  101.                         return true, true
  102.                 else
  103.                         return true, false
  104.                 end
  105.         end
  106.         )
  107.        
  108.         Decisions_WendsCS.DoFunc = (
  109.         function(pPlayer)
  110.         pPlayer:ChangeNumResourceTotal(iMagistrate, -1)
  111.         pPlayer:ChangeGold (-goldCost)
  112.         local currentEra = Game.GetCurrentEra()
  113.         function FakeMinorMarriage(iPlayerID, minorID)
  114.         FakeUnit(minorID)
  115.         FMocity = nil;
  116.         for iCity in Players[minorID]:Cities() do
  117.                 if iCity:GetOriginalOwner() == minorID then
  118.                         FMocity = iCity;
  119.                 else
  120.                         Players[iPlayerID]:AcquireCity(iCity, false, true);
  121.                 end
  122.         end
  123.         if FMocity ~= nil then
  124.                         FakeBuildings(FMocity)
  125.                         FakePlots(FMocity, FMocity:GetX(), FMocity:GetY(), minorID, iPlayerID)
  126.                         FakeName = FMocity:GetName();
  127.                         FakeCitizens = FMocity:GetPopulation();
  128.                         FakeCityPlot = FMocity:Plot();
  129.                         FakeDMG = FMocity:GetDamage();
  130.                         FakeJCL = FMocity:GetJONSCultureLevel();
  131.                         Players[minorID]:Disband(FMocity);
  132.                         FakeNewCity(iPlayerID)
  133.         end
  134.         FakeNewUnits(iPlayerID)
  135.         end
  136.  
  137.         function FakeUnit(minorID)
  138.         FMunits = {}
  139.         for iUnit in Players[minorID]:Units() do
  140.                 FMunits[iUnit] = {}
  141.                 FMunits[iUnit][1] = iUnit:GetUnitType();
  142.                 FMunits[iUnit][2] = iUnit:GetPlot();
  143.                 FMunits[iUnit][3] = iUnit:GetDamage();
  144.                 iUnit:Kill();
  145.         end
  146.         end
  147.  
  148.         function FakePlots(iCity, x, y, minorID, iPlayerID)
  149.         FMplots = {}
  150.         for i = 0, Map:GetNumPlots() - 1, 1 do
  151.                 local fPlot = Map.GetPlotByIndex( i );
  152.                 if fPlot:GetOwner() == minorID then
  153.                         FMplots[fPlot] = iPlayerID;
  154.                 elseif Map.PlotDistance(fPlot:GetX(), fPlot:GetY(), x, y) == 1 then
  155.                         if fPlot:GetOwner() == -1 then
  156.                                 FMplots[fPlot] = -1;
  157.                         end
  158.                 end
  159.         end
  160.         end
  161.  
  162.         function FakeBuildings(iCity)
  163.                 FMbuildings = {}
  164.                         for iBuilding in GameInfo.Buildings() do
  165.                                 if iCity:IsHasBuilding(iBuilding.ID) then
  166.                                         if GameInfo.BuildingClasses[iBuilding.BuildingClass].MaxPlayerInstances ~= 1 then
  167.                                 FMbuildings[iBuilding.ID] = 2;
  168.                         end
  169.                 end
  170.         end
  171.         end
  172.  
  173.         function FakeNewUnits(iPlayerID)
  174.         for i, v in pairs(FMunits) do
  175.                 fmUnit = Players[iPlayerID]:InitUnit(v[1], v[2]:GetX(), v[2]:GetY());
  176.                 fmUnit:SetDamage(v[3]);
  177.         end
  178.         FMunits = nil;
  179.         end
  180.  
  181.         function FakeNewCity(iPlayerID)
  182.         Players[iPlayerID]:InitCity(FakeCityPlot:GetX(), FakeCityPlot:GetY());
  183.         NewCity = FakeCityPlot:GetPlotCity();
  184.         NewCity:SetName(FakeName, true);
  185.         NewCity:SetDamage(FakeDMG);
  186.         NewCity:SetPopulation(FakeCitizens, true);
  187.         NewCityID = NewCity:GetID()
  188.         for iPlot, owner in pairs(FMplots) do
  189.                 iPlot:SetOwner(owner, NewCityID, true, true);
  190.         end
  191.         FMplots = nil;
  192.         NewCity:SetJONSCultureLevel(FakeJCL);
  193.         for iBuilding, meh in pairs(FMbuildings) do
  194.                 NewCity:SetNumRealBuilding(iBuilding, 1);
  195.         end
  196.         FMbuildings = nil;
  197.         end
  198.        
  199.         save(pPlayer, "Decisions_WendsCS", true)
  200.         end
  201.         )
  202.         if Game.GetCurrentEra() ~= currentEra then save(pPlayer, "Decisions_WendsCS", nil)
  203.         if GPuz_AtPeace(pPlayer) and isWar then save(pPlayer, "Decisons_WendsCS", nil)
  204.  
  205. Decisions_AddCivilisationSpecific(GameInfoTypes.CIVILIZATION_NIX_WENDS, "Decisions_WendsCS", Decisions_WendsCS)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement