135 lines
4.4 KiB
Lua
135 lines
4.4 KiB
Lua
if (testsG) then
|
|
return testsG
|
|
end
|
|
local tests = {}
|
|
|
|
local debug_players_list = {}
|
|
debug_players_list["Dimm2101"] = true
|
|
|
|
function tests.in_debug_list(player)
|
|
if player and player.valid and debug_players_list[player.name] then
|
|
return true
|
|
end
|
|
return false
|
|
end
|
|
|
|
function tests.addDebugButton(player, root)
|
|
if tests.in_debug_list(player) then
|
|
root.add{type = "button", name = "rampantFixed_DebugMenu", caption = "DEBUG", style = "rampantFixed_menu_button"}
|
|
end
|
|
end
|
|
|
|
local function createDebugMenu(player, universeDebugSettings)
|
|
if not universeDebugSettings[player.name] then
|
|
universeDebugSettings[player.name] = {}
|
|
end
|
|
local debugSettings = universeDebugSettings[player.name]
|
|
|
|
local gui = player.gui.screen
|
|
|
|
for i, children in pairs(gui.children) do
|
|
if children.name == "rampantFixed_DebugMenu_frame" then
|
|
children.destroy()
|
|
return
|
|
end
|
|
end
|
|
|
|
local root = gui.add{name = "rampantFixed_DebugMenu_frame", type = "frame", direction = "vertical"}
|
|
root.force_auto_center()
|
|
player.opened = root
|
|
if not (root and root.valid) then return end -- setting player.opened can cause other scripts to delete UIs
|
|
|
|
-- Titlebar
|
|
local titlebar = root.add {
|
|
type = "flow",
|
|
name = "rampantFixed_DebugMenuTitle",
|
|
alignment = "right",
|
|
direction = "horizontal"
|
|
}
|
|
titlebar.drag_target = root
|
|
titlebar.add { -- Title
|
|
type = "label",
|
|
caption = "DEBUG",
|
|
ignored_by_interaction = true,
|
|
style = "rampantFixed_menu_label" --"frame_title"
|
|
}
|
|
titlebar.add {
|
|
type = "empty-widget",
|
|
ignored_by_interaction = true,
|
|
}
|
|
|
|
titlebar.add { -- Close button
|
|
type = "sprite-button",
|
|
name= "rampantFixed_DebugMenuClose",
|
|
sprite = "utility/close_white",
|
|
hovered_sprite = "utility/close_black",
|
|
clicked_sprite = "utility/close_black",
|
|
style = "close_button"
|
|
}
|
|
local buttonCaption = "oneshot biters:"
|
|
if debugSettings.oneshotBiters then
|
|
buttonCaption = buttonCaption .. " ON"
|
|
else
|
|
buttonCaption = buttonCaption .. " OFF"
|
|
end
|
|
root.add{type = "button", name = "rampantFixed_Debug_OneshotBitersSwitch", caption = buttonCaption, style = "rampantFixed_menu_button"}
|
|
|
|
local pointButtons = root.add {
|
|
type = "flow",
|
|
name = "rampantFixed_pointButtons",
|
|
alignment = "right",
|
|
direction = "horizontal"
|
|
}
|
|
pointButtons.add({type = "label", caption = "AI Points:"})
|
|
pointButtons.add{type = "button", name = "rampantFixed_Debug_SetPointsTo0", caption = "-> 0"}
|
|
pointButtons.add{type = "button", name = "rampantFixed_Debug_Add100Points", caption = "+100"}
|
|
pointButtons.add{type = "button", name = "rampantFixed_Debug_Add1000Points", caption = "+1000"}
|
|
|
|
root.add{type = "button", name = "rampantFixed_Debug_BasesManagment", caption = "Bases managment", style = "rampantFixed_menu_button"}
|
|
root.add{type = "button", name = "rampantFixed_Debug_SquadsManagment", caption = "Squads managment", style = "rampantFixed_menu_button"}
|
|
|
|
|
|
-- root.add{type = "button", name = "rampantFixed_showSurfaceIteractionFrame", caption = {"description.rampantFixed--surfaceIteraction_frame"}, style = "rampantFixed_menu_button"}
|
|
end
|
|
|
|
function tests.onDebugElementClick(event, universe)
|
|
local guiElement = event.element
|
|
if guiElement.name == "rampantFixed_DebugMenu" then
|
|
createDebugMenu(game.players[event.player_index], universe.debugSettings)
|
|
elseif guiElement.name == "rampantFixed_DebugMenuClose" then
|
|
guiElement.parent.parent.destroy()
|
|
elseif guiElement.name == "rampantFixed_Debug_OneshotBitersSwitch" then
|
|
local player = game.players[event.player_index]
|
|
if not universe.debugSettings[player.name] then
|
|
universe.debugSettings[player.name] = {oneshotBiters = true}
|
|
else
|
|
universe.debugSettings[player.name].oneshotBiters = not universe.debugSettings[player.name].oneshotBiters
|
|
end
|
|
|
|
local buttonCaption = "oneshot biters:"
|
|
if universe.debugSettings[player.name].oneshotBiters then
|
|
buttonCaption = buttonCaption .. " ON"
|
|
else
|
|
buttonCaption = buttonCaption .. " OFF"
|
|
end
|
|
guiElement.caption = buttonCaption
|
|
end
|
|
end
|
|
|
|
function tests.debug_onUnitDamaged(event, universeDebugSettings)
|
|
if not event.cause.player then
|
|
return false
|
|
end
|
|
if (not universeDebugSettings[event.cause.player.name]) or (not universeDebugSettings[event.cause.player.name].oneshotBiters) then
|
|
return false
|
|
end
|
|
event.entity.health = 0
|
|
event.final_health = event.entity.health
|
|
return true
|
|
end
|
|
|
|
|
|
|
|
testsG = tests
|
|
return tests
|