mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-01-08 00:39:30 +02:00
v1.1.1.4.2
This commit is contained in:
parent
e757c82661
commit
b068529190
@ -7,7 +7,7 @@ softmod_info_game_description_1=Game Description
|
||||
softmod_info_game_description_2=Set sail in this multiplayer scenario. Collect resources and fuel the ship in order to survive as many leagues as possible. The ship moves with code magic. Doubloons can be spent at docks and other markets, to upgrade players, upgrade the ship, and buy rare items. Each crew has a captain, who can perform actions such as deciding when the boat leaves.\n\nGame progression is significantly slowed down the smaller the crew.\n\n[font=default-bold]Win condition:[/font] Travel 1000 leagues.\n[font=default-bold]Lose condition:[/font] The ship runs out of fuel, or a cannon is destroyed.
|
||||
|
||||
softmod_info_bugs_1=Known issues
|
||||
softmod_info_bugs_2=• N/A
|
||||
softmod_info_bugs_2=• Very rarely (only observed once), the deck locomotive can disappear, and an admin needs to make a new one.
|
||||
|
||||
softmod_info_new_players_1=For New Players
|
||||
softmod_info_new_players_2=Mine coal and other resources and bring them to the ship to keep things going, or try asking the captain for more specific tasks.
|
||||
|
@ -28,7 +28,7 @@ Public.EEI_stages = { --multipliers
|
||||
|
||||
|
||||
function Public.scripted_biters_pollution_cost_multiplier()
|
||||
return 1.25 --tuned
|
||||
return 1.3 --tuned
|
||||
end
|
||||
|
||||
function Public.cost_to_leave_multiplier()
|
||||
@ -129,7 +129,7 @@ end
|
||||
|
||||
function Public.silo_total_pollution()
|
||||
return (
|
||||
350 * (Common.difficulty()^(1.2)) * Public.crew_scale()^(2/5) * (3.2 + 0.7 * (Common.overworldx()/40)^(1.6)) --shape of the curve with x is tuned
|
||||
365 * (Common.difficulty()^(1.2)) * Public.crew_scale()^(2/5) * (3.2 + 0.7 * (Common.overworldx()/40)^(1.6)) --shape of the curve with x is tuned
|
||||
)
|
||||
end
|
||||
|
||||
@ -157,7 +157,7 @@ function Public.boat_passive_pollution_per_minute(time)
|
||||
end
|
||||
|
||||
return boost * (
|
||||
5.0 * Common.difficulty() * (Common.overworldx()/40)^(1.6) * (Public.crew_scale())^(55/100)
|
||||
5.2 * Common.difficulty() * (Common.overworldx()/40)^(1.6) * (Public.crew_scale())^(55/100)
|
||||
) -- There is no _explicit_ T dependence, but it depends almost the same way on the crew_scale as T does.
|
||||
end
|
||||
|
||||
@ -520,7 +520,7 @@ Public.covered1_entry_price_data_raw = { --watch out that the raw_materials ches
|
||||
raw_materials = {{name = 'iron-plate', count = 552}, {name = 'copper-plate', count = 1518}}}, {}},
|
||||
|
||||
{1, 0.05, 1, false, {
|
||||
price = {name = 'stone-furnace', count = 350},
|
||||
price = {name = 'stone-furnace', count = 250},
|
||||
raw_materials = {}}, {}},
|
||||
{1, 0.4, 1.6, true, {
|
||||
price = {name = 'advanced-circuit', count = 180},
|
||||
|
@ -5,8 +5,8 @@ local inspect = require 'utils.inspect'.inspect
|
||||
local Public = {}
|
||||
|
||||
Public.scenario_id_name = 'pirates'
|
||||
Public.version_string = '1.1.1.4'
|
||||
Public.version_float = 1.114
|
||||
Public.version_string = '1.1.1.4.2'
|
||||
Public.version_float = 1.1142
|
||||
|
||||
Public.blueprint_library_allowed = true
|
||||
Public.blueprint_importing_allowed = true
|
||||
|
@ -381,13 +381,13 @@ function Public.join_crew(player, crewid, rejoin)
|
||||
memory.crew_disband_tick = nil --to prevent disbanding the crew after saving the game (booting everyone) and loading it again (joining the crew as the only member)
|
||||
end
|
||||
|
||||
local personal_str = 'You have joined the crew ' .. memory.name
|
||||
local personal_str = 'You have joined the crew \'' .. memory.name
|
||||
|
||||
if memory.overworldx > 0 then
|
||||
local color = CoreData.difficulty_options[memory.difficulty_option].associated_color
|
||||
personal_str = personal_str .. ' [Capacity ' .. CoreData.capacity_options[memory.capacity_option].text3 .. ', Difficulty [color=' .. color.r .. ',' .. color.g .. ',' .. color.b .. ']' .. CoreData.difficulty_options[memory.difficulty_option].text .. '[/color]].'
|
||||
personal_str = personal_str .. '\' [Capacity ' .. CoreData.capacity_options[memory.capacity_option].text3 .. ', Difficulty [color=' .. color.r .. ',' .. color.g .. ',' .. color.b .. ']' .. CoreData.difficulty_options[memory.difficulty_option].text .. '[/color]].'
|
||||
else
|
||||
personal_str = personal_str .. ' [Capacity ' .. CoreData.capacity_options[memory.capacity_option].text3 .. '].'
|
||||
personal_str = personal_str .. '\' [Capacity ' .. CoreData.capacity_options[memory.capacity_option].text3 .. '].'
|
||||
end
|
||||
|
||||
Common.notify_player_announce(player, personal_str)
|
||||
|
@ -223,7 +223,7 @@ function Public.full_update(player)
|
||||
if flow2.selected_tab_index == 1 then
|
||||
flow2.style.height = 400
|
||||
elseif flow2.selected_tab_index == 2 then
|
||||
flow2.style.height = 280
|
||||
flow2.style.height = 330
|
||||
elseif flow2.selected_tab_index == 3 then
|
||||
flow2.style.height = 660
|
||||
elseif flow2.selected_tab_index == 4 then
|
||||
|
@ -165,7 +165,11 @@ local function damage_to_enemyboat_spawners(event)
|
||||
local damage = event.final_damage_amount
|
||||
local adjusted_damage = damage
|
||||
|
||||
adjusted_damage = adjusted_damage / 5
|
||||
adjusted_damage = adjusted_damage / 3
|
||||
|
||||
if event.cause.name == 'artillery-turret' then
|
||||
adjusted_damage = adjusted_damage / 1.8
|
||||
end
|
||||
|
||||
if Common.entity_damage_healthbar(event.entity, adjusted_damage) < 0 then
|
||||
event.entity.die()
|
||||
@ -613,6 +617,11 @@ local function event_on_player_mined_entity(event)
|
||||
|
||||
local entity = event.entity
|
||||
if not entity.valid then return end
|
||||
|
||||
if player.surface.name == 'gulag' then
|
||||
event.buffer.clear()
|
||||
return
|
||||
end
|
||||
|
||||
if entity.type == 'tree' then
|
||||
if not event.buffer then return end
|
||||
|
@ -91,7 +91,7 @@ local function on_init()
|
||||
game.surfaces['nauvis'].clear()
|
||||
|
||||
game.create_surface('piratedev1', Common.default_map_gen_settings(100, 100))
|
||||
game.surfaces['nauvis'].clear()
|
||||
game.surfaces['piratedev1'].clear()
|
||||
|
||||
Common.init_game_settings(Balance.technology_price_multiplier)
|
||||
|
||||
|
@ -129,13 +129,36 @@ function Public.go_from_starting_dock_to_first_destination()
|
||||
local items = Balance.starting_items_crew_upstairs()
|
||||
-- Boats.deck_place_random_obstacle_boxes(boat, 6, items, 0)
|
||||
|
||||
-- Let's try just adding the items to nearby boxes
|
||||
local scope = Boats.get_scope(boat)
|
||||
local boatwidth, boatheight = scope.Data.width, scope.Data.height
|
||||
Common.surface_place_random_obstacle_boxes(game.surfaces[boat.surface_name], {x = boat.position.x - boatwidth*0.575, y = boat.position.y}, boatwidth*0.85, boatheight*0.8, 'oil-refinery', {[1] = 3, [2] = 3, [3] = 0, [4] = 0}, items)
|
||||
local surface = game.surfaces[boat.surface_name]
|
||||
local boxes = surface.find_entities_filtered{
|
||||
name = 'wooden-chest',
|
||||
area = {
|
||||
{x = boat.position.x - scope.Data.width/2, y = boat.position.y - scope.Data.height/2},
|
||||
{x = boat.position.x + scope.Data.width/2, y = boat.position.y + scope.Data.height/2}
|
||||
},
|
||||
}
|
||||
boxes = Math.shuffle(boxes)
|
||||
for i = 1, #items do
|
||||
if boxes[i] then
|
||||
local inventory = boxes[i].get_inventory(defines.inventory.chest)
|
||||
for name, count in pairs(items[i]) do
|
||||
inventory.insert{name = name, count = count}
|
||||
end
|
||||
else
|
||||
game.print('fail at ' .. boxes[i].position.x .. ' ' .. boxes[i].position.y)
|
||||
end
|
||||
end
|
||||
|
||||
-- go:
|
||||
Public.progress_to_destination(1) --index of first destination
|
||||
|
||||
-- local scope = Boats.get_scope(boat)
|
||||
-- local boatwidth, boatheight = scope.Data.width, scope.Data.height
|
||||
-- Common.surface_place_random_obstacle_boxes(game.surfaces[boat.surface_name], {x = boat.position.x - boatwidth*0.575, y = boat.position.y}, boatwidth*0.85, boatheight*0.8, 'oil-refinery', {[1] = 3, [2] = 3, [3] = 0, [4] = 0}, items)
|
||||
-- go:
|
||||
-- Public.progress_to_destination(1) --index of first destination
|
||||
|
||||
boat.EEI_stage = 1
|
||||
Boats.update_EEIs(boat)
|
||||
|
||||
|
@ -41,15 +41,15 @@ function Public.quest_reward()
|
||||
local rng = Math.random()
|
||||
|
||||
if rng <= 0.3 then
|
||||
ret = {name = 'iron-plate', count = Math.ceil(2000 * multiplier), display_sprite = '[item=iron-plate]', display_amount = string.format('%.1fk', 2 * multiplier)}
|
||||
ret = {name = 'iron-plate', count = Math.ceil(2000 * multiplier), display_sprite = '[item=iron-plate]', display_amount = string.format('%.1fk', 2 * multiplier), chat_name = '[item=iron-plate]'}
|
||||
elseif rng <= 0.5 then
|
||||
ret = {name = 'copper-plate', count = Math.ceil(2000 * multiplier), display_sprite = '[item=copper-plate]', display_amount = string.format('%.1fk', 2 * multiplier)}
|
||||
ret = {name = 'copper-plate', count = Math.ceil(2000 * multiplier), display_sprite = '[item=copper-plate]', display_amount = string.format('%.1fk', 2 * multiplier), chat_name = '[item=copper-plate]'}
|
||||
elseif rng <= 0.7 then
|
||||
ret = {name = 'solid-fuel', count = Math.ceil(450 * multiplier), display_sprite = '[item=solid-fuel]', display_amount = string.format('%.0f', Math.ceil(450 * multiplier))}
|
||||
ret = {name = 'solid-fuel', count = Math.ceil(450 * multiplier), display_sprite = '[item=solid-fuel]', display_amount = string.format('%.0f', Math.ceil(450 * multiplier)), chat_name = '[item=solid-fuel]'}
|
||||
elseif rng <= 0.9 then
|
||||
ret = {name = 'coin', count = Math.ceil(6000 * (multiplier^(1/2))), display_sprite = 'doubloons', display_amount = string.format('%.1fk', Math.ceil(6 * (multiplier^(1/2))))}
|
||||
ret = {name = 'coin', count = Math.ceil(6000 * (multiplier^(1/2))), display_sprite = '[item=coin]', display_amount = string.format('%.1fk', Math.ceil(6 * (multiplier^(1/2)))), chat_name = 'doubloons'}
|
||||
else
|
||||
ret = {name = 'piercing-rounds-magazine', count = Math.ceil(250 * multiplier), display_sprite = '[item=piercing-rounds-magazine]', display_amount = string.format('%.0f', Math.ceil(250 * multiplier))}
|
||||
ret = {name = 'piercing-rounds-magazine', count = Math.ceil(250 * multiplier), display_sprite = '[item=piercing-rounds-magazine]', display_amount = string.format('%.0f', Math.ceil(250 * multiplier)), chat_name = '[item=piercing-rounds-magazine]'}
|
||||
end
|
||||
|
||||
return ret
|
||||
@ -239,7 +239,7 @@ function Public.try_resolve_quest()
|
||||
|
||||
local force = memory.force
|
||||
if not (force and force.valid) then return end
|
||||
Common.notify_force_light(force,'Granted ' .. destination.dynamic_data.quest_reward.display_amount .. ' ' .. destination.dynamic_data.quest_reward.display_sprite)
|
||||
Common.notify_force_light(force,'Granted ' .. destination.dynamic_data.quest_reward.display_amount .. ' ' .. destination.dynamic_data.quest_reward.chat_name)
|
||||
|
||||
local name = destination.dynamic_data.quest_reward.name
|
||||
local count = destination.dynamic_data.quest_reward.count
|
||||
|
@ -161,7 +161,7 @@ function Public.create_hold_surface(nth)
|
||||
Common.build_small_loco(surface, Public.Data.loco_offset, memory.force, {255, 106, 52})
|
||||
|
||||
local items = subtype == enum.INITIAL and Balance.starting_items_crew_downstairs() or {}
|
||||
Common.surface_place_random_obstacle_boxes(Public.get_hold_surface(nth), {x=0,y=0}, Public.Data.width, Public.Data.height, 'rocket-silo', {[1] = 0, [2] = 8, [3] = 4, [4] = 1}, items)
|
||||
Common.surface_place_random_obstacle_boxes(Public.get_hold_surface(nth), {x=0,y=0}, Public.Data.width, Public.Data.height, 'rocket-silo', {[1] = 0, [2] = 5, [3] = 3, [4] = 2}, items)
|
||||
-- Public.hold_place_random_obstacle_boxes(nth, {[1] = 0, [2] = 9, [3] = 3, [4] = 1}, items)
|
||||
|
||||
if not boat.downstairs_poles then boat.downstairs_poles = {} end
|
||||
|
@ -388,7 +388,7 @@ function Public.spawn_enemy_boat(type)
|
||||
-- e.destructible = false
|
||||
boat.spawner = e
|
||||
|
||||
Common.new_healthbar(false, e, 400, nil, 400, 0.3)
|
||||
Common.new_healthbar(false, e, 350, nil, 350, 0.3)
|
||||
end
|
||||
|
||||
return enemyboats[#enemyboats]
|
||||
|
@ -285,7 +285,7 @@ local function radioactive_tick()
|
||||
local pollution = 0
|
||||
local timer = destination.dynamic_data.timer
|
||||
if timer and timer > 15 then
|
||||
pollution = 4.7 * (6 * Common.difficulty()^(1.1) * (memory.overworldx/40)^(14/10) * (Balance.crew_scale())^(0.6)) / 3600 * tickinterval * (1 + (Common.difficulty()-1)*0.2 + 0.001 * timer)
|
||||
pollution = 4.9 * (6 * Common.difficulty()^(1.1) * (memory.overworldx/40)^(14/10) * (Balance.crew_scale())^(0.6)) / 3600 * tickinterval * (1 + (Common.difficulty()-1)*0.2 + 0.001 * timer)
|
||||
end
|
||||
|
||||
if pollution > 0 then
|
||||
|
Loading…
Reference in New Issue
Block a user