1
0
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:
danielmartin0 2022-03-16 15:01:50 +00:00
parent e757c82661
commit b068529190
12 changed files with 57 additions and 25 deletions

View File

@ -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.

View File

@ -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},

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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]

View File

@ -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