Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ------------------------------
- --Decisions_SamoEmpire
- ------------------------------
- Decisions_AddCivilisationSpecific(GameInfoTypes.CIVILIZATION_NIX_WENDS, "Decisions_ThaiAlphabet", Decisions_ThaiAlphabet)
- local Decisions_SamoEmpire = {}
- Decisions_SamoEmpire.Name = "TXT_KEY_DECISIONS_NIX_SAMOEMPIRE"
- Decisions_SamoEmpire.Desc = "TXT_KEY_DECISIONS_NIX_SAMOEMPIRE_DESC"
- HookDecisionCivilizationIcon(Decisions_SamoEmpire, "CIVILIZATION_NIX_WENDS")
- Decisions_ThaiAlphabet.CanFunc = (
- function(pPlayer)
- if (pPlayer:GetCivilizationType() ~= GameInfoTypes.CIVILIZATION_NIX_WENDS) then
- return false, false
- end
- if load(pPlayer, "Decisions_SamoEmpire") == true then
- Decisions_SamoEmpire.Desc = Locale.ConvertTextKey("TXT_KEY_DECISIONS_NIX_SAMOEMPIRE_ENACTED_DESC")
- return false, false, true
- end
- Decisions_SamoEmpire.Desc = Locale.ConvertTextKey("TXT_KEY_DECISIONS_NIX_SAMOEMPIRE_DESC", iCost)
- if (pPlayer:GetNumResourceAvailable(iMagistrate, false) < 2) then return true, false end
- local populationCapital = false
- local capturedCapital = false
- for city in player:Cities() do
- if (city:GetOriginalOwner() ~= pPlayer and city:IsOriginalCapital()) then
- capturedCapital = true
- end
- end
- for city in player:Cities() do
- if city:IsCapital() then
- if (city:GetPopulation>=10) then
- populationCapital = true
- end
- end
- end
- if populationCapital and capturedCapital then
- return true, true
- else
- return true, false
- end
- end
- )
- Decisions_SamoEmpire.DoFunc = (
- function(pPlayer)
- pPlayer:ChangeNumResourceTotal(iMagistrate, -2)
- for pCity in pPlayer:Cities() do
- pCity:SetNumRealBuilding(GameInfoTypes.BUILDING_DECISIONS_NIX_SAMOEMPIRE, 1)
- end
- PreGame.SetCivilizationDescription(pPlayer, Locale.ConvertTextKey("TXT_KEY_NIX_SAMOEMPIRE_DESC"))
- PreGame.SetCivilizationShortDescription(pPlayer, Locale.ConvertTextKey("TXT_KEY_NIX_SAMOEMPIRE_SHORT_DESC"))
- PreGame.SetCivilizationAdjective(pPlayer, Locale.ConvertTextKey("TXT_KEY_NIX_SAMOEMPIRE_ADJ"))
- save(pPlayer, "Decisions_SamoEmpire", true)
- end
- )
- ------------------------------
- --Decisions_WendsCS
- ------------------------------
- Decisions_AddCivilisationSpecific(GameInfoTypes.CIVILIZATION_NIX_WENDS, "Decisions_WendsCS", Decisions_WendsCS)
- local Decisions_WendsCS = {}
- Decisions_WendsCS.Name = "TXT_KEY_DECISIONS_THAIALPHABET"
- Decisions_WendsCS.Desc = "TXT_KEY_DECISIONS_THAIALPHABET_DESC"
- HookDecisionCivilizationIcon(Decisions_WendsCS, "CIVILIZATION_NIX_WENDS")
- Decisions_WendsCS.CanFunc = (
- function(pPlayer)
- if (pPlayer:GetCivilizationType() ~= GameInfoTypes.CIVILIZATION_NIX_WENDS) then
- return false, false
- end
- if load(pPlayer, "Decisions_WendsCS") == true then
- Decisions_WendsCS.Desc = Locale.ConvertTextKey("TXT_KEY_DECISIONS_NIX_WENDSCS_ENACTED_DESC")
- return false, false, true
- end
- Decisions_WendsCS.Desc = Locale.ConvertTextKey("TXT_KEY_DECISIONS_NIX_WENDSCS_DESC")
- if (pPlayer:GetNumResourceAvailable(iMagistrate, false) < 1) then return true, false end
- local goldCost = (Game.GetCurrentEra()+1)*175
- local isWar = false
- local isAllied = false
- local enactedWar = false
- local enactedEra = false
- function GPuz_AtPeace(playerID)
- local atPeace = false
- if Teams[Players[playerID]:GetTeam()]:GetAtWarCount(false) == 0 then atPeace = true end
- return atPeace
- end
- if GPuz_AtPeace(pPlayer) = false
- enactedWar = true
- end
- for minorPlayerID = 0, GameDefines.MAX_MINOR_CIVS - 1 do
- local minorCiv = Players[minorPlayerID]
- if (minorCiv:GetCapitalCity() and minorCiv:IsAlive()) then
- if minorCiv:GetMinorCivFriendshipLevelWithMajor(playerID) == 2 then
- isAllied = true
- end
- end
- if isWar and isAllied and enactedWar and enactedEra and (pPlayer:GetGold() >= goldCost) then
- return true, true
- else
- return true, false
- end
- end
- )
- Decisions_WendsCS.DoFunc = (
- function(pPlayer)
- pPlayer:ChangeNumResourceTotal(iMagistrate, -1)
- pPlayer:ChangeGold (-goldCost)
- local currentEra = Game.GetCurrentEra()
- function FakeMinorMarriage(iPlayerID, minorID)
- FakeUnit(minorID)
- FMocity = nil;
- for iCity in Players[minorID]:Cities() do
- if iCity:GetOriginalOwner() == minorID then
- FMocity = iCity;
- else
- Players[iPlayerID]:AcquireCity(iCity, false, true);
- end
- end
- if FMocity ~= nil then
- FakeBuildings(FMocity)
- FakePlots(FMocity, FMocity:GetX(), FMocity:GetY(), minorID, iPlayerID)
- FakeName = FMocity:GetName();
- FakeCitizens = FMocity:GetPopulation();
- FakeCityPlot = FMocity:Plot();
- FakeDMG = FMocity:GetDamage();
- FakeJCL = FMocity:GetJONSCultureLevel();
- Players[minorID]:Disband(FMocity);
- FakeNewCity(iPlayerID)
- end
- FakeNewUnits(iPlayerID)
- end
- function FakeUnit(minorID)
- FMunits = {}
- for iUnit in Players[minorID]:Units() do
- FMunits[iUnit] = {}
- FMunits[iUnit][1] = iUnit:GetUnitType();
- FMunits[iUnit][2] = iUnit:GetPlot();
- FMunits[iUnit][3] = iUnit:GetDamage();
- iUnit:Kill();
- end
- end
- function FakePlots(iCity, x, y, minorID, iPlayerID)
- FMplots = {}
- for i = 0, Map:GetNumPlots() - 1, 1 do
- local fPlot = Map.GetPlotByIndex( i );
- if fPlot:GetOwner() == minorID then
- FMplots[fPlot] = iPlayerID;
- elseif Map.PlotDistance(fPlot:GetX(), fPlot:GetY(), x, y) == 1 then
- if fPlot:GetOwner() == -1 then
- FMplots[fPlot] = -1;
- end
- end
- end
- end
- function FakeBuildings(iCity)
- FMbuildings = {}
- for iBuilding in GameInfo.Buildings() do
- if iCity:IsHasBuilding(iBuilding.ID) then
- if GameInfo.BuildingClasses[iBuilding.BuildingClass].MaxPlayerInstances ~= 1 then
- FMbuildings[iBuilding.ID] = 2;
- end
- end
- end
- end
- function FakeNewUnits(iPlayerID)
- for i, v in pairs(FMunits) do
- fmUnit = Players[iPlayerID]:InitUnit(v[1], v[2]:GetX(), v[2]:GetY());
- fmUnit:SetDamage(v[3]);
- end
- FMunits = nil;
- end
- function FakeNewCity(iPlayerID)
- Players[iPlayerID]:InitCity(FakeCityPlot:GetX(), FakeCityPlot:GetY());
- NewCity = FakeCityPlot:GetPlotCity();
- NewCity:SetName(FakeName, true);
- NewCity:SetDamage(FakeDMG);
- NewCity:SetPopulation(FakeCitizens, true);
- NewCityID = NewCity:GetID()
- for iPlot, owner in pairs(FMplots) do
- iPlot:SetOwner(owner, NewCityID, true, true);
- end
- FMplots = nil;
- NewCity:SetJONSCultureLevel(FakeJCL);
- for iBuilding, meh in pairs(FMbuildings) do
- NewCity:SetNumRealBuilding(iBuilding, 1);
- end
- FMbuildings = nil;
- end
- save(pPlayer, "Decisions_WendsCS", true)
- end
- )
- if Game.GetCurrentEra() ~= currentEra then save(pPlayer, "Decisions_WendsCS", nil)
- if GPuz_AtPeace(pPlayer) and isWar then save(pPlayer, "Decisons_WendsCS", nil)
- Decisions_AddCivilisationSpecific(GameInfoTypes.CIVILIZATION_NIX_WENDS, "Decisions_WendsCS", Decisions_WendsCS)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement