Code: Select all
[00:51:56][8596]game/game_events.lua:6393(global RussiaSupplyCrisis) game/game_events.lua:6393: attempt to index field 'originalFaction' (a nil value)Code: Select all
----- CONQUER BONUS ---------
for hex in russia.hexes do
if hex.originalFaction.id == 2 or hex.originalFaction.id == 3 then
russia.luaData.crisis = russia.luaData.crisis +5
--LogUi("ADDED!")
end --6393 line
end Code: Select all
function RussiaSupplyCrisis()
local russia = game:GetFactionById(4)
local germany = game:GetFactionById(2)
local turkey = game:GetFactionById(5)
local austria = game:GetFactionById(3)
local impassable = game:GetFactionById(24)
local warsaw = game:GetHex(112, 23)
local krakow = game:GetHex(110, 27)
local danzig = game:GetHex(110, 19)
local koenigs = game:GetHex(112, 17)
local lodz = game:GetHex(110, 24)
local radom = game:GetHex(112, 25)
local lemberg = game:GetHex(115, 28)
local tarnopol = game:GetHex(118, 28)
local chance = math.random(1,100)
local bonus = 0
local duration = 5
if (player.alliance.id == 1 and game.type == Game.TYPE_SINGLE) then
duration = math.random(6,7)
end
if warsaw.alliance.id == 2 then
duration = duration + 1
end
if GetEvent("RussiaSurprise") >0 then
duration = duration + 1
end
if GetEvent("RussiaSupplyCrisis") == 0
and russia.alliance.id == 1
and game.date.year >= 1915
and impassable.luaData.winter == 0
and russia.luaData.crisis <= 0 then
if (player.alliance.id == 2
and game.type == Game.TYPE_SINGLE
and warsaw.alliance.id == 2)
or russia.luaData.crisis <= 500
or GetEvent("Rasputin") >0
or GetEvent("Gorlice") >0
or (player.alliance.id == 1 and game.type == Game.TYPE_SINGLE)
or game.type == Game.TYPE_PBEM then
SetEvent("RussiaSupplyCrisis", game.turn)
if russia.morale >= 100 then
ChangeFactionMorale(russia, - 25)
end
russia.luaData.steamroller = -1
russia.luaData.collaps = russia.luaData.collaps +1
end
end
if GetEvent("RussiaSupplyCrisis") == 0
and russia.alliance.id == 1 then
--- FACTORY BONUS ----
if russia.luaData.factories >0 then
russia.luaData.crisis = russia.luaData.crisis + (russia.luaData.factories * 5)
end
---- ALL EAST BONUS ----"DEFEND MOTHER RUSSIA"
if GetEvent("AllEast") <= 0 then
russia.luaData.crisis = russia.luaData.crisis - math.random(1, game.turn)
else
russia.luaData.crisis = russia.luaData.crisis + math.random(game.turn /2, game.turn)
end
--- CITY BONUS -----
if lodz.alliance.id == 1 then
russia.luaData.crisis = russia.luaData.crisis + math.random(1,6) + math.random(1,6) + math.random(1,6)
end
if radom.alliance.id == 1 then
russia.luaData.crisis = russia.luaData.crisis + math.random(1,6) + math.random(1,6) + math.random(1,6)
end
if warsaw.alliance.id == 1 then
russia.luaData.crisis = russia.luaData.crisis + math.random(1,6) + math.random(1,6) + math.random(1,6) + math.random(1,6) + math.random(1,6) + math.random(1,6)
elseif warsaw.alliance.id == 2 or GetEvent("WarsawCaptured") >0 then
russia.luaData.crisis = russia.luaData.crisis - (math.random(1,6) + math.random(1,6) + math.random(1,6) + math.random(1,6) + math.random(1,6) + math.random(1,6))
end
if krakow.alliance.id == 1 then
russia.luaData.crisis = russia.luaData.crisis + math.random(1,6) + math.random(1,6)
end
if danzig.alliance.id == 1 then
russia.luaData.crisis = russia.luaData.crisis + math.random(1,6) + math.random(1,6)
end
if koenigs.alliance.id == 1 then
russia.luaData.crisis = russia.luaData.crisis + math.random(1,6) + math.random(1,6)
end
if lemberg.alliance.id == 1 then
russia.luaData.crisis = russia.luaData.crisis + math.random(1,6) + math.random(1,6)
end
---- ARMY SIZE DRAIN ----
for unit in russia.units do
if unit.alive
and unit.hex ~= nil
and unit.prototype.name ~= "smallgarrison" then
if unit.hex.originalFaction ~= nil
and unit.hex.terrain.type == Terrain.LAND then
if game.date.year == 1914 then
-- russia.luaData.crisis = russia.luaData.crisis -1
else
---player.alliance.id == 2 and game.type == Game.TYPE_SINGLE
russia.luaData.crisis = russia.luaData.crisis - (game.date.year - 1914)
end
end
end
end
----- CONQUER BONUS ---------
for hex in russia.hexes do
if hex.originalFaction.id == 2 or hex.originalFaction.id == 3 then
russia.luaData.crisis = russia.luaData.crisis +5
--LogUi("ADDED!")
end
end
----- TERRITORY LOST ----------
for hex in germany.hexes do
if hex.originalFaction.id == 4 and game.turn >= 17 then
russia.luaData.crisis = russia.luaData.crisis -5
end
end
for hex in austria.hexes do
if hex.originalFaction.id == 4 and game.turn >= 17 then
russia.luaData.crisis = russia.luaData.crisis -5
end
end
--- SERBIA HELP DRAIN-----
if GetEvent("SerbiaHelp") >0 then
russia.luaData.crisis = russia.luaData.crisis - game.turn
end
--- OBSTINACY------
if (player.alliance.id == 1 and game.type == Game.TYPE_SINGLE)
or game.type == Game.TYPE_PBEM then
if russia.luaData.obstinacy < game.turn then
russia.luaData.crisis = russia.luaData.crisis - ((game.turn - russia.luaData.obstinacy) *2)
end
end
end
---- END CONDITIONS AND RECOVERY ------
if GetEvent("RussiaSupplyCrisis") > 0
and GetEvent("RussiaSupplyCrisis") + duration <= game.turn
and player.alliance.id == 1
and game.type == Game.TYPE_SINGLE
and impassable.luaData.winter == 0
and GetEvent("RussiaSupplyCrisisEnd") == 0
and ((russia.luaData.warEffort <= 75 and GetEvent("RussiaSupplyCrisis") + duration <= game.turn)
or (GetEvent("Polivanov") >0
and GetEvent("PolivanovDismissed") == 0
and GetEvent("Polivanov") + math.random(2,4) <= game.turn
and math.random(1,10) < russia.luaData.collaps)) then
SetEvent("RussiaSupplyCrisisEnd", game.turn)
if russia.morale <= 65 and russia.morale >45 then
ChangeFactionMorale(russia, game.turn)
elseif russia.morale <= 45 then
ChangeFactionMorale(russia, game.turn*2)
end
ui.resourcesPanel:Refresh()
elseif ((GetEvent("RussiaSupplyCrisis") > 0
and GetEvent("RussiaSupplyCrisisEnd") == 0
and GetEvent("RussiaSupplyCrisis") + duration <= game.turn
and impassable.luaData.winter == 0 )
or (GetEvent("RussiaSupplyCrisis") > 0
and GetEvent("RussiaSupplyCrisisEnd") == 0
and GetEvent("Polivanov") >0
and GetEvent("PolivanovDismissed") == 0
and math.random(1,10) < russia.luaData.collaps)) then
SetEvent("RussiaSupplyCrisisEnd", game.turn)
if russia.morale <= 40 then
ChangeFactionMorale(russia, 20)
elseif russia.morale <= 50 then
ChangeFactionMorale(russia, 15)
end
ui.resourcesPanel:Refresh()
end
if GetEvent("RussiaSupplyCrisisEnd") > 0 then
if GetEvent("PolivanovDismissed") >0 and russia.luaData.warEffort < 85 then
russia.luaData.warEffort = russia.luaData.warEffort + math.random(0,2)
elseif russia.luaData.warEffort < 85 then
russia.luaData.warEffort = russia.luaData.warEffort + math.random(1,2) + math.random(1,2)
end
end
if GetEvent("RussiaSupplyCrisisEnd") > 0
and GetEvent("RussiaSupplyCrisisEnd") +2 <= game.turn then
Discard("MurmanRailway")
Discard("MurmanConvoys")
end
if GetEvent("RussiaSupplyCrisisEnd") > 0
and GetEvent("RussiaSupplyCrisisEnd") +4 <= game.turn then
Discard("Polivanov")
Discard("PolivamovDismissed")
end
end


