Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- Reverse Martial Law Edict
- Changes Martial Law Edict to have opposite impact
- --]]
- local mcfg,ModT,ModCV,ModExp,ModSuccess = RegisterMod(
- "DarthPresidente", -- Author
- "ReverseMartialLaw", -- ModID
- 100, -- Mod Version
- 300, -- Required Mod Loader Version
- "Reverse Martial Law" -- Mod Description
- )
- -- Defines Config Variables
- ModCV("RequiredBuildings","number",3,0,1000)
- ModCV("ProductionBonus","number",40,0,1000)
- ModCV("MilitaristBonus","number",10,-100,100)
- if not ModSuccess() then return end
- OnMsg.DataLoaded = function()
- DataInstances.Edict.MartialLaw.SequenceOn = "NewMartialLawON"
- DataInstances.Edict.MartialLaw.SequenceOff = "NewMartialLawOFF"
- function MartialLawCheck(city)
- if city.labels["Military Buildings"]:GetObjects():Count() < mcfg.RequiredBuildings then
- return false, ModT("MartialLawReq","You need at least <arg1> military buildings to activate this edict.",mcfg.RequiredBuildings)
- else
- return true
- end
- end
- function MartialLawTurnOn(edict)
- local city = edict.city
- local issuetext = ModT("ISSUED_EDICT", "Issued <arg1> Edict", T({6601,"Martial Law"}))
- city:CreateModifier({
- id = "MyMartialLawStateCrime", apply_to = city,
- component = "General", property = "StateCrime",
- add = -20, text = T({issuetext})
- })
- city:CreateModifier({
- id = "MyMartialLawTourismRating", apply_to = city,
- component = "Tourism", property = "TourismRating",
- add = 10, text = T({issuetext})
- })
- city:CreateModifier({
- id = "MyMartialLawProduction", apply_to = city.labels["Production"],
- property = "InherentEffectiveness",
- add = mcfg.ProductionBonus, text = T({issuetext})
- })
- city:CreateModifier({
- id = "MyMartialLawProductionRaw", apply_to = city.labels["ProductionRaw"],
- property = "InherentEffectiveness",
- add = mcfg.ProductionBonus, text = T({issuetext})
- })
- city.FactionStanding:Add("militarists", mcfg.MilitaristBonus, false, T({issuetext}))
- city.NewMartialLawThread = CreateGameTimeThread(function()
- city:ChangeUnrest(-1)
- Sleep(const.MonthLength * 12)
- end)
- return
- end
- function MartialLawTurnOff(edict)
- local city = edict.city
- local repealtext = ModT("REPEALED_EDICT", "Repealed <arg1> Edict", T({6601,"Martial Law"}))
- city:RemoveModifier("MyMartialLawStateCrime")
- city:RemoveModifier("MyMartialLawTourismRating")
- city:RemoveModifier("MyMartialLawProduction")
- city:RemoveModifier("MyMartialLawProductionRaw")
- city.FactionStanding:Add("militarists", -mcfg.MilitaristBonus, false, T({repealtext}))
- DeleteThread(city.NewMartialLawThread)
- city.NewMartialLawThread = nil
- end
- DataInstances.Edict.MartialLaw.SequenceOn = MartialLawTurnOn
- DataInstances.Edict.MartialLaw.SequenceOff = MartialLawTurnOff
- DataInstances.Edict.MartialLaw.CondSeq = MartialLawCheck
- -- Remove PreExisting MartialLawEffect to eliminate Unrest impact
- for i = #DataInstances.Scenario.EdictEffects, 1, -1 do
- if DataInstances.Scenario.EdictEffects[i].name == "MartialLawEffect" then
- table.remove(DataInstances.Scenario.EdictEffects,i)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement