mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-01-26 03:52:22 +02:00
Fixes to scenario and modules
This commit is contained in:
parent
25728dc278
commit
65944ecc31
@ -903,6 +903,8 @@ function Public.set_difficulty()
|
||||
amount = difficulty.highest -- lowered from 20 to 10
|
||||
end
|
||||
|
||||
local wave = WD.get('wave_number')
|
||||
|
||||
local threat_check = nil
|
||||
|
||||
if check_if_threat_below_zero then
|
||||
@ -910,26 +912,27 @@ function Public.set_difficulty()
|
||||
end
|
||||
|
||||
if Diff.index == 1 then
|
||||
if player_count < 10 then
|
||||
if wave < 1000 then
|
||||
wave_defense_table.wave_interval = 4500
|
||||
else
|
||||
wave_defense_table.wave_interval = 3600 - player_count * 60
|
||||
end
|
||||
if wave_defense_table.wave_interval < 2200 or threat_check then
|
||||
wave_defense_table.wave_interval = 2200
|
||||
|
||||
if wave_defense_table.wave_interval < 2000 or threat_check then
|
||||
wave_defense_table.wave_interval = 2000
|
||||
end
|
||||
elseif Diff.index == 2 then
|
||||
if player_count < 10 then
|
||||
if wave < 1000 then
|
||||
wave_defense_table.wave_interval = 3000
|
||||
else
|
||||
wave_defense_table.wave_interval = 2600 - player_count * 60
|
||||
end
|
||||
if wave_defense_table.wave_interval < 1900 or threat_check then
|
||||
wave_defense_table.wave_interval = 1900
|
||||
if wave_defense_table.wave_interval < 1800 or threat_check then
|
||||
wave_defense_table.wave_interval = 1800
|
||||
end
|
||||
elseif Diff.index == 3 then
|
||||
if player_count < 10 then
|
||||
wave_defense_table.wave_interval = 2000
|
||||
if wave < 1000 then
|
||||
wave_defense_table.wave_interval = 3000
|
||||
else
|
||||
wave_defense_table.wave_interval = 1600 - player_count * 60
|
||||
end
|
||||
|
@ -273,6 +273,7 @@ function Public.reset_map()
|
||||
end
|
||||
|
||||
game.forces.player.set_spawn_position({-27, 25}, surface)
|
||||
game.speed = 1
|
||||
|
||||
Task.set_queue_speed(16)
|
||||
|
||||
|
@ -158,12 +158,15 @@ local function is_position_near(area, table_to_check)
|
||||
end
|
||||
|
||||
local function place_wagon(data, adjusted_zones)
|
||||
local x_min = (-zone_settings.zone_width / 2) + 10
|
||||
local x_max = (zone_settings.zone_width / 2) - 10
|
||||
|
||||
local x_min = -zone_settings.zone_width / 2
|
||||
local x_max = zone_settings.zone_width / 2
|
||||
|
||||
if data.x < x_min then return end
|
||||
if data.x > x_max then return end
|
||||
if data.x < x_min then
|
||||
return
|
||||
end
|
||||
if data.x > x_max then
|
||||
return
|
||||
end
|
||||
|
||||
local placed_trains_in_zone = Public.get('placed_trains_in_zone')
|
||||
if not placed_trains_in_zone.randomized then
|
||||
|
@ -606,6 +606,30 @@ spells[#spells + 1] = {
|
||||
return create_projectiles(data)
|
||||
end
|
||||
}
|
||||
if _DEBUG then
|
||||
spells[#spells + 1] = {
|
||||
name = 'Kewl Nade',
|
||||
entityName = 'cluster-grenade',
|
||||
target = true,
|
||||
amount = 20,
|
||||
damage = true,
|
||||
aoe = true,
|
||||
force = 'player',
|
||||
level = 1,
|
||||
type = 'item',
|
||||
mana_cost = -1,
|
||||
cooldown = 0,
|
||||
enabled = true,
|
||||
log_spell = false,
|
||||
sprite = 'recipe/cluster-grenade',
|
||||
tooltip = 'Spawns a cluster nade where the mouse cursor is at',
|
||||
callback = function(data)
|
||||
local player = data.player
|
||||
player.insert({name = 'raw-fish'})
|
||||
return create_projectiles(data)
|
||||
end
|
||||
}
|
||||
end
|
||||
spells[#spells + 1] = {
|
||||
name = {'item-name.cluster-grenade'},
|
||||
entityName = 'cluster-grenade',
|
||||
|
@ -149,8 +149,9 @@ function Public.toggle_pause_wave_without_votes()
|
||||
end
|
||||
|
||||
Public.set('pause_waves', {index = 0})
|
||||
local pause_wave_in_ticks = Public.get('pause_wave_in_ticks')
|
||||
pause_waves_state(true)
|
||||
Task.set_timeout_in_ticks(18000, pause_waves_state_token, false) -- 5 minutes
|
||||
Task.set_timeout_in_ticks(pause_wave_in_ticks, pause_waves_state_token, false) -- 5 minutes
|
||||
end
|
||||
|
||||
Gui.on_click(
|
||||
|
@ -54,6 +54,7 @@ function Public.reset_wave_defense()
|
||||
this.log_wave_to_discord = true
|
||||
this.paused = false
|
||||
this.pause_without_votes = true
|
||||
this.pause_wave_in_ticks = 18000 -- 5 minutes
|
||||
this.game_lost = false
|
||||
this.get_random_close_spawner_attempts = 5
|
||||
this.group_size = 2
|
||||
@ -377,6 +378,12 @@ function Public.set_tick_to_spawn_unit_groups(int)
|
||||
this.tick_to_spawn_unit_groups = int or 200
|
||||
end
|
||||
|
||||
--- Sets the pause length in ticks.
|
||||
-- @param <int> in ticks
|
||||
function Public.set_pause_wave_in_ticks(int)
|
||||
this.pause_wave_in_ticks = int or 18000
|
||||
end
|
||||
|
||||
--- Pauses the wave defense module
|
||||
-- @param null
|
||||
function Public.pause(boolean)
|
||||
|
@ -200,7 +200,7 @@ local functions = {
|
||||
['vacant_toggle'] = function(event)
|
||||
local vacant = is_loaded('modules.clear_vacant_players')
|
||||
if not vacant then
|
||||
log("Error: toggle related to clear_vacant_players was activated, but the module does not seem to be loaded.")
|
||||
log('Error: toggle related to clear_vacant_players was activated, but the module does not seem to be loaded.')
|
||||
return
|
||||
end
|
||||
|
||||
@ -844,11 +844,11 @@ local function on_gui_switch_state_changed(event)
|
||||
pirates_functions[event.element.name](event)
|
||||
return
|
||||
elseif is_loaded('utils.gui.poll') then
|
||||
local is_spamming = SpamProtection.is_spamming(player, nil, 'Config Poll Elem')
|
||||
if is_spamming then
|
||||
return
|
||||
end
|
||||
if poll_function[event.element.name] then
|
||||
local is_spamming = SpamProtection.is_spamming(player, nil, 'Config Poll Elem')
|
||||
if is_spamming then
|
||||
return
|
||||
end
|
||||
poll_function[event.element.name](event)
|
||||
return
|
||||
end
|
||||
|
@ -22,14 +22,14 @@ local function debug_text(str)
|
||||
if not this.debug_text then
|
||||
return
|
||||
end
|
||||
print(main_text .. str)
|
||||
log(main_text .. str)
|
||||
end
|
||||
|
||||
local function debug_spam(str)
|
||||
if not this.debug_spam then
|
||||
return
|
||||
end
|
||||
print(main_text .. str)
|
||||
log(main_text .. str)
|
||||
end
|
||||
|
||||
function Public.reset_spam_table()
|
||||
@ -64,6 +64,10 @@ function Public.is_spamming(player, value_to_compare, text)
|
||||
return false -- game is paused - shoo
|
||||
end
|
||||
|
||||
if this.debug_spam then
|
||||
log(serpent.block(debug.traceback()))
|
||||
end
|
||||
|
||||
local tick = game.tick
|
||||
local value = value_to_compare or this.default_tick
|
||||
if this.prevent_spam[player.index] then
|
||||
@ -105,6 +109,9 @@ Event.add(
|
||||
defines.events.on_player_joined_game,
|
||||
function(event)
|
||||
local player = game.get_player(event.player_index)
|
||||
if not player then
|
||||
return
|
||||
end
|
||||
|
||||
if not this.prevent_spam[player.index] then
|
||||
this.prevent_spam[player.index] = game.tick
|
||||
|
Loading…
x
Reference in New Issue
Block a user