mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2024-12-26 22:56:43 +02:00
update
This commit is contained in:
parent
04c56edba7
commit
c08bf9ee6e
@ -42,6 +42,34 @@ local function create_spectate_confirmation(player)
|
||||
frame.add({type = "button", name = "cancel_spectate", caption = "Cancel"})
|
||||
end
|
||||
|
||||
local button_colors = {
|
||||
[1] = {r = 0.0, g = 0.0, b = 0.38},
|
||||
[2] = {r = 0.38, g = 0.0, b = 0.0},
|
||||
[3] = {r = 0.0, g = 0.38, b = 0.0},
|
||||
[4] = {r = 0.25, g = 0.0, b = 0.35}
|
||||
}
|
||||
|
||||
function create_lane_buttons(player)
|
||||
for i = 1, 4, 1 do
|
||||
if player.gui.top["button_lane_" .. i] then player.gui.top["button_lane_" .. i].destroy() end
|
||||
local caption = "Wave #" .. global.wod_lane[i].current_wave - 1
|
||||
if global.wod_lane[i].game_lost == true then caption = "Out" end
|
||||
local button = player.gui.top.add({type = "button", name = "button_lane_" .. i, caption = caption, tooltip = "Lane " .. i .. " stats"})
|
||||
button.style.font = "default-bold"
|
||||
button.style.font_color = button_colors[i]
|
||||
button.style.minimal_height = 38
|
||||
button.style.minimal_width = 70
|
||||
button.style.top_padding = 2
|
||||
button.style.left_padding = 4
|
||||
button.style.right_padding = 4
|
||||
button.style.bottom_padding = 2
|
||||
end
|
||||
end
|
||||
|
||||
local function create_lane_info_frame(player, lane_number)
|
||||
|
||||
end
|
||||
|
||||
local function autojoin_lane(player)
|
||||
local lowest_player_count = 256
|
||||
local lane_number
|
||||
@ -68,6 +96,8 @@ local function on_player_joined_game(event)
|
||||
|
||||
local player = game.players[event.player_index]
|
||||
spectate_button(player)
|
||||
create_lane_buttons(player)
|
||||
|
||||
if player.online_time == 0 then autojoin_lane(player) return end
|
||||
|
||||
if global.wod_lane[tonumber(player.force.name)].game_lost == true then
|
||||
@ -123,6 +153,25 @@ local function on_gui_click(event)
|
||||
end
|
||||
end
|
||||
|
||||
--Flamethrower Turret Nerf
|
||||
local function on_research_finished(event)
|
||||
local research = event.research
|
||||
local force_name = research.force.name
|
||||
if research.name == "flamethrower" then
|
||||
if not global.flamethrower_damage then global.flamethrower_damage = {} end
|
||||
global.flamethrower_damage[force_name] = -0.25
|
||||
game.forces[force_name].set_turret_attack_modifier("flamethrower-turret", global.flamethrower_damage[force_name])
|
||||
game.forces[force_name].set_ammo_damage_modifier("flamethrower", global.flamethrower_damage[force_name])
|
||||
end
|
||||
|
||||
if string.sub(research.name, 0, 18) == "refined-flammables" then
|
||||
global.flamethrower_damage[force_name] = global.flamethrower_damage[force_name] + 0.05
|
||||
game.forces[force_name].set_turret_attack_modifier("flamethrower-turret", global.flamethrower_damage[force_name])
|
||||
game.forces[force_name].set_ammo_damage_modifier("flamethrower", global.flamethrower_damage[force_name])
|
||||
end
|
||||
end
|
||||
|
||||
event.add(defines.events.on_research_finished, on_research_finished)
|
||||
event.add(defines.events.on_gui_click, on_gui_click)
|
||||
event.add(defines.events.on_tick, on_tick)
|
||||
event.add(defines.events.on_chunk_generated, on_chunk_generated)
|
||||
|
@ -45,7 +45,16 @@ ai.spawn_wave = function(surface, lane_number, wave_number, amount_modifier)
|
||||
|
||||
if is_spread_wave then return end
|
||||
global.wod_lane[lane_number].current_wave = global.wod_lane[lane_number].current_wave + 1
|
||||
global.biter_evasion_health_increase_factor = global.biter_evasion_health_increase_factor + 0.005
|
||||
|
||||
local m = 0.005
|
||||
if global.wod_lane[lane_number].current_wave > #biter_waves then
|
||||
m = 0.25
|
||||
end
|
||||
global.biter_evasion_health_increase_factor = global.biter_evasion_health_increase_factor + m
|
||||
|
||||
for _, player in pairs(game.connected_players) do
|
||||
create_lane_buttons(player)
|
||||
end
|
||||
end
|
||||
|
||||
--on_entity_died event
|
||||
|
@ -1,35 +1,44 @@
|
||||
local waves = {
|
||||
[1] = {{name = "small-biter", amount = 10}},
|
||||
[2] = {{name = "small-biter", amount = 20}},
|
||||
[3] = {{name = "small-biter", amount = 40}},
|
||||
[4] = {{name = "small-biter", amount = 80}, {name = "small-spitter", amount = 10}},
|
||||
[5] = {{name = "small-biter", amount = 80}, {name = "small-spitter", amount = 20}},
|
||||
[6] = {{name = "small-biter", amount = 80}, {name = "small-spitter", amount = 40}},
|
||||
[7] = {{name = "small-biter", amount = 80}, {name = "small-spitter", amount = 80}},
|
||||
[8] = {{name = "medium-biter", amount = 10}, {name = "small-spitter", amount = 80}},
|
||||
[9] = {{name = "medium-biter", amount = 20}, {name = "small-spitter", amount = 80}},
|
||||
[10] = {{name = "medium-biter", amount = 40}, {name = "small-spitter", amount = 80}},
|
||||
[11] = {{name = "medium-biter", amount = 80}, {name = "small-spitter", amount = 80}},
|
||||
[12] = {{name = "medium-biter", amount = 80}, {name = "medium-spitter", amount = 10}},
|
||||
[13] = {{name = "medium-biter", amount = 80}, {name = "medium-spitter", amount = 20}},
|
||||
[14] = {{name = "medium-biter", amount = 80}, {name = "medium-spitter", amount = 40}},
|
||||
[15] = {{name = "medium-biter", amount = 80}, {name = "medium-spitter", amount = 80}},
|
||||
[16] = {{name = "big-biter", amount = 10}, {name = "medium-spitter", amount = 80}},
|
||||
[17] = {{name = "big-biter", amount = 20}, {name = "medium-spitter", amount = 80}},
|
||||
[18] = {{name = "big-biter", amount = 40}, {name = "medium-spitter", amount = 80}},
|
||||
[19] = {{name = "big-biter", amount = 80}, {name = "medium-spitter", amount = 80}},
|
||||
[20] = {{name = "big-biter", amount = 80}, {name = "big-spitter", amount = 10}},
|
||||
[21] = {{name = "big-biter", amount = 80}, {name = "big-spitter", amount = 20}},
|
||||
[22] = {{name = "big-biter", amount = 80}, {name = "big-spitter", amount = 40}},
|
||||
[23] = {{name = "big-biter", amount = 80}, {name = "big-spitter", amount = 80}},
|
||||
[24] = {{name = "behemoth-biter", amount = 10}, {name = "big-spitter", amount = 80}},
|
||||
[25] = {{name = "behemoth-biter", amount = 20}, {name = "big-spitter", amount = 80}},
|
||||
[26] = {{name = "behemoth-biter", amount = 40}, {name = "big-spitter", amount = 80}},
|
||||
[27] = {{name = "behemoth-biter", amount = 80}, {name = "big-spitter", amount = 80}},
|
||||
[28] = {{name = "behemoth-biter", amount = 80}, {name = "behemoth-spitter", amount = 10}},
|
||||
[29] = {{name = "behemoth-biter", amount = 80}, {name = "behemoth-spitter", amount = 20}},
|
||||
[30] = {{name = "behemoth-biter", amount = 80}, {name = "behemoth-spitter", amount = 40}},
|
||||
[31] = {{name = "behemoth-biter", amount = 80}, {name = "behemoth-spitter", amount = 80}}
|
||||
{{name = "small-biter", amount = 10}},
|
||||
{{name = "small-biter", amount = 20}},
|
||||
{{name = "small-biter", amount = 40}},
|
||||
{{name = "small-biter", amount = 80}, {name = "small-spitter", amount = 10}},
|
||||
{{name = "small-biter", amount = 80}, {name = "small-spitter", amount = 20}},
|
||||
{{name = "small-biter", amount = 80}, {name = "small-spitter", amount = 40}},
|
||||
{{name = "medium-biter", amount = 1}, {name = "small-biter", amount = 80}, {name = "small-spitter", amount = 80}},
|
||||
{{name = "medium-biter", amount = 10}, {name = "small-spitter", amount = 80}},
|
||||
{{name = "medium-biter", amount = 20}, {name = "small-spitter", amount = 80}},
|
||||
{{name = "medium-biter", amount = 40}, {name = "small-spitter", amount = 80}},
|
||||
{{name = "medium-biter", amount = 80}, {name = "small-spitter", amount = 80}},
|
||||
{{name = "medium-biter", amount = 80}, {name = "medium-spitter", amount = 10}},
|
||||
{{name = "medium-biter", amount = 80}, {name = "medium-spitter", amount = 20}},
|
||||
{{name = "medium-biter", amount = 80}, {name = "medium-spitter", amount = 40}},
|
||||
{{name = "big-biter", amount = 1},{name = "medium-biter", amount = 80}, {name = "medium-spitter", amount = 80}},
|
||||
{{name = "big-biter", amount = 10}, {name = "medium-spitter", amount = 80}},
|
||||
{{name = "big-biter", amount = 20}, {name = "medium-spitter", amount = 80}},
|
||||
{{name = "big-biter", amount = 40}, {name = "medium-spitter", amount = 80}},
|
||||
{{name = "big-biter", amount = 80}, {name = "medium-spitter", amount = 80}},
|
||||
{{name = "big-biter", amount = 80}, {name = "big-spitter", amount = 10}},
|
||||
{{name = "big-biter", amount = 80}, {name = "big-spitter", amount = 20}},
|
||||
{{name = "big-biter", amount = 80}, {name = "big-spitter", amount = 40}},
|
||||
{{name = "behemoth-biter", amount = 1},{name = "big-biter", amount = 80}, {name = "big-spitter", amount = 80}},
|
||||
{{name = "behemoth-biter", amount = 10}, {name = "big-spitter", amount = 80}},
|
||||
{{name = "behemoth-biter", amount = 20}, {name = "big-spitter", amount = 80}},
|
||||
{{name = "behemoth-biter", amount = 40}, {name = "big-spitter", amount = 80}},
|
||||
{{name = "behemoth-biter", amount = 80}, {name = "big-spitter", amount = 80}},
|
||||
{{name = "behemoth-biter", amount = 80}, {name = "behemoth-spitter", amount = 10}},
|
||||
{{name = "behemoth-biter", amount = 80}, {name = "behemoth-spitter", amount = 20}},
|
||||
{{name = "behemoth-biter", amount = 80}, {name = "behemoth-spitter", amount = 40}},
|
||||
{{name = "behemoth-biter", amount = 80}, {name = "behemoth-spitter", amount = 60}},
|
||||
{{name = "behemoth-biter", amount = 100}, {name = "behemoth-spitter", amount = 70}},
|
||||
{{name = "behemoth-biter", amount = 125}, {name = "behemoth-spitter", amount = 80}},
|
||||
{{name = "behemoth-biter", amount = 150}, {name = "behemoth-spitter", amount = 90}},
|
||||
{{name = "behemoth-biter", amount = 175}, {name = "behemoth-spitter", amount = 95}},
|
||||
{{name = "behemoth-biter", amount = 200}, {name = "behemoth-spitter", amount = 100}},
|
||||
{{name = "behemoth-biter", amount = 225}, {name = "behemoth-spitter", amount = 110}},
|
||||
{{name = "behemoth-biter", amount = 250}, {name = "behemoth-spitter", amount = 125}},
|
||||
{{name = "behemoth-biter", amount = 275}, {name = "behemoth-spitter", amount = 135}},
|
||||
{{name = "behemoth-biter", amount = 300}, {name = "behemoth-spitter", amount = 150}}
|
||||
}
|
||||
|
||||
return waves
|
||||
|
@ -49,7 +49,7 @@ game_status.has_lane_lost = function(event)
|
||||
end
|
||||
end
|
||||
game.print(">> Lane " .. lane_number .. " has been defeated!", {r = 120, g = 60, b = 0})
|
||||
|
||||
|
||||
--determine winner and restart the server
|
||||
local lanes_alive = 0
|
||||
for i = 1, 4, 1 do
|
||||
@ -57,7 +57,13 @@ game_status.has_lane_lost = function(event)
|
||||
lanes_alive = lanes_alive + 1
|
||||
end
|
||||
end
|
||||
if lanes_alive ~= 1 then return end
|
||||
if lanes_alive ~= 1 then
|
||||
for _, player in pairs(game.connected_players) do
|
||||
create_lane_buttons(player)
|
||||
player.play_sound{path="utility/game_lost", volume_modifier=0.5}
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
for i = 1, 4, 1 do
|
||||
if global.wod_lane[i].game_lost == false then
|
||||
|
Loading…
Reference in New Issue
Block a user