diff --git a/locale/en/pirates.cfg b/locale/en/pirates.cfg index d83d8dac..d11e63e3 100644 --- a/locale/en/pirates.cfg +++ b/locale/en/pirates.cfg @@ -15,8 +15,8 @@ softmod_info_new_players_2=Mine coal and other resources and bring them to the s softmod_info_tips_1=Features of the game that are hard to work out alone softmod_info_tips_2=• You can steer the boat from the crow's nest by placing 100 rail signals in one of the blue boxes.\n• Resources granted to the ship appear in the captain's cabin.\n• Charging a silo launches a rocket. This causes pollution and evo, but gives a reward of fuel and doubloons.\n• Charging a silo drains power from everything else on its network.\n• The quantity of ore available on an island is independent of the order in which you break rocks.\n• Passive pollution ramps up over time on each island.\n• The strength of attacks is proportional to the number of remaining nests. (The time-based rate of evolution is proportional to nests too, but destroying a nest will immediately jump evolution by most of the amount it 'would have' made had it survived.)\n• Covered markets give back any plates spent to unlock them.\n• Lab productivity increases with each league.\n• The player who spent the longest as captain between leagues 0 and 1000 (exclusive) is written into the highscores table.\n• Logged-out players keep their items with them for a while — except 'important' items that are returned to the crew immediately.\n• Commands: /ccolor gives you a fun color. /classinfo {classname} gives the description of the named class. To manage your class, use /take {classname} or /giveup. Captains also have /undock, /req, /officer, /plank. -softmod_info_updates_1=Recent Changelog -softmod_info_updates_2=v1.1.2.1.3\n- Coin requisitioning replaced by a 'tax' that takes only 10% of each player's coins.\n- Scaled up coin economy; every biter kill now provides at least one coin; rocket coin rewards now default to the second reward chest.\n- Deckhand nerfed.\n\nv1.1.2.1.2\n- Biters now deal bonus damage at night (up to a maximum of 10%).\n- Uranium ammo and automation 3 now properly researchable.\n- Modular armor/equipment now slightly less rare.\n- Cannon resistance buffed\n- Small adjustments to wave spawning. +softmod_info_updates_1=Recent changes +softmod_info_updates_2=v1.1.2.2.0\n- Coin requisitioning replaced by a 'tax' that takes only 10% of each player's coins.\n- Scaled up coin economy; rocket coin rewards now default to the second reward chest.\n- Deckhand nerfed.\n\nv1.1.2.1.2\n- Biters now deal bonus damage at night (up to a maximum of 10%).\n- Uranium ammo and automation 3 now properly researchable.\n- Modular armor/equipment now slightly less rare.\n- Cannon resistance buffed\n- Small adjustments to wave spawning. softmod_info_credits_1=Credits softmod_info_credits_2=Pirate Ship designed and coded by thesixthroc. Comfy codebase and help from Gerkiz, Hanakocz and Mew @ Comfy Industries (https://getcomfy.eu). Some island structure blueprints contributed by Mattisso.\n\nContact us via Discord: https://getcomfy.eu/discord\n\n"Those white gloves. I'll never forget them 'till the day I die." - Dr. John diff --git a/maps/pirates/ai.lua b/maps/pirates/ai.lua index 386b9dcb..24d0a9b8 100644 --- a/maps/pirates/ai.lua +++ b/maps/pirates/ai.lua @@ -126,23 +126,21 @@ end function Public.wave_size_rng() -- random variance in attack sizes local wave_size_multiplier = 1 local memory = Memory.get_crew_memory() - if memory.overworldx > 0 then - local rng1 = Math.random(100) - if rng1 <= 65 then - wave_size_multiplier = 0 + local rng1 = Math.random(100) + if rng1 <= 65 then + wave_size_multiplier = 0 + elseif memory.overworldx > 0 then + local rng2 = Math.random(1000) + if rng2 <= 900 then + wave_size_multiplier = 1 + elseif rng2 <= 975 then + wave_size_multiplier = 1.5 + elseif rng2 <= 985 then + wave_size_multiplier = 2 + elseif rng2 <= 995 then + wave_size_multiplier = 2.5 else - local rng2 = Math.random(1000) - if rng2 <= 900 then - wave_size_multiplier = 1 - elseif rng2 <= 975 then - wave_size_multiplier = 1.5 - elseif rng2 <= 985 then - wave_size_multiplier = 2 - elseif rng2 <= 995 then - wave_size_multiplier = 2.5 - else - wave_size_multiplier = 3 - end + wave_size_multiplier = 3 end end diff --git a/maps/pirates/boat_upgrades.lua b/maps/pirates/boat_upgrades.lua index 3987cebf..941956c9 100644 --- a/maps/pirates/boat_upgrades.lua +++ b/maps/pirates/boat_upgrades.lua @@ -46,10 +46,10 @@ Public.crowsnest_display_form = { -- WARNING: The dock market pulls from these values, but the Crowsnest caption pulls data from main_shop_data_1. So don't change one without the other Public.market_offer_form = { - [enum.MORE_POWER] = {price = {{'coin', 7000}, {'coal', 1000}}, offer = {type='nothing', effect_description='Upgrade the ship\'s passive power generators.'}}, - [enum.EXTRA_HOLD] = {price = {{'coin', 7000}, {'coal', 1000}}, offer = {type='nothing', effect_description='Purchase an extra hold.'}}, - [enum.UNLOCK_MERCHANTS] = {price = {{'coin', 14000}, {'coal', 1500}}, offer = {type='nothing', effect_description='Unlock merchant ships on future islands.'}}, - [enum.ROCKETS_FOR_SALE] = {price = {{'coin', 21000}, {'coal', 1500}}, offer = {type='nothing', effect_description='Unlock the sale of rockets at covered markets.'}}, + [enum.MORE_POWER] = {price = {{'coin', 7000}, {'coal', 500}}, offer = {type='nothing', effect_description='Upgrade the ship\'s passive power generators.'}}, + [enum.EXTRA_HOLD] = {price = {{'coin', 7000}, {'coal', 500}}, offer = {type='nothing', effect_description='Purchase an extra hold.'}}, + [enum.UNLOCK_MERCHANTS] = {price = {{'coin', 14000}, {'coal', 1000}}, offer = {type='nothing', effect_description='Unlock merchant ships on future islands.'}}, + [enum.ROCKETS_FOR_SALE] = {price = {{'coin', 21000}, {'coal', 1000}}, offer = {type='nothing', effect_description='Unlock the sale of rockets at covered markets.'}}, } function Public.execute_upgade(upgrade_type, player) diff --git a/maps/pirates/coredata.lua b/maps/pirates/coredata.lua index 41471b64..00dc5fdd 100644 --- a/maps/pirates/coredata.lua +++ b/maps/pirates/coredata.lua @@ -5,8 +5,8 @@ local _inspect = require 'utils.inspect'.inspect local Public = {} Public.scenario_id_name = 'pirates' -Public.version_string = '1.1.2.1.4' -Public.version_float = 1.1214 +Public.version_string = '1.1.2.2.0' +Public.version_float = 1.1220 Public.blueprint_library_allowed = true Public.blueprint_importing_allowed = true diff --git a/maps/pirates/shop/captains.lua b/maps/pirates/shop/captains.lua index feebce53..1e804c7b 100644 --- a/maps/pirates/shop/captains.lua +++ b/maps/pirates/shop/captains.lua @@ -70,22 +70,22 @@ Public.main_shop_data_1 = { [Upgrades.enum.MORE_POWER] = { tooltip = 'Upgrade the ship\'s power.', what_you_get_sprite_buttons = {['utility/status_working'] = false}, - base_cost = {coins = 7000, fuel = 1000}, + base_cost = {coins = 7000, fuel = 500}, }, [Upgrades.enum.EXTRA_HOLD] = { tooltip = 'Upgrade the ship\'s hold.', what_you_get_sprite_buttons = {['item/steel-chest'] = false}, - base_cost = {coins = 7000, fuel = 1000}, + base_cost = {coins = 7000, fuel = 500}, }, [Upgrades.enum.UNLOCK_MERCHANTS] = { tooltip = 'Unlock merchant ships.', what_you_get_sprite_buttons = {['entity/market'] = false}, - base_cost = {coins = 14000, fuel = 1500}, + base_cost = {coins = 14000, fuel = 1000}, }, [Upgrades.enum.ROCKETS_FOR_SALE] = { tooltip = 'Unlock rockets for sale at covered-up markets.', what_you_get_sprite_buttons = {['item/rocket-launcher'] = false}, - base_cost = {coins = 21000, fuel = 1500}, + base_cost = {coins = 21000, fuel = 1000}, }, } diff --git a/maps/pirates/shop/dock.lua b/maps/pirates/shop/dock.lua index 1ac5db62..f8cbf343 100644 --- a/maps/pirates/shop/dock.lua +++ b/maps/pirates/shop/dock.lua @@ -123,7 +123,7 @@ function Public.create_dock_markets(surface, p) e.rotatable = false e.destructible = false - e.add_market_item{price = {{'repair-pack', 40}, {'coin', 1000}}, offer = {type = 'give-item', item = 'artillery-turret', count = 1}} + e.add_market_item{price = {{'repair-pack', 20}, {'coin', 1000}}, offer = {type = 'give-item', item = 'artillery-turret', count = 1}} local upgrade_for_sale = Common.current_destination().static_params.upgrade_for_sale if upgrade_for_sale then diff --git a/maps/pirates/shop/shop.lua b/maps/pirates/shop/shop.lua index 00ade061..c800d5a8 100644 --- a/maps/pirates/shop/shop.lua +++ b/maps/pirates/shop/shop.lua @@ -23,6 +23,37 @@ Public.Minimarket = require 'maps.pirates.shop.dock' +function Public.print_transaction(player, offer, price) + local s1 = ' traded away ' + local s2 = '' + local s3 = offer.count .. ' ' .. offer.item + if offer.item == 'coin' then s1 = ' sold ' end + for i, p in pairs(price) do + local p2 = {name = p.name, amount = p.amount} + if p2.name == 'raw-fish' then p2.name = 'fish' end + if p2.name == 'coin' then + s1 = ' bought ' + p2.name = 'doubloons' + end + if i > 1 then + if i == #price then + s2 = s2 .. ' and ' + else + s2 = s2 .. ', ' + end + end + s2 = s2 .. p2.amount .. ' ' .. p2.name + end + if s1 == ' sold ' or s1 == ' traded away ' then + Common.notify_force_light(player.force, player.name .. s1 .. s2 .. ' for ' .. s3 .. '.') + else + Common.notify_force_light(player.force, player.name .. s1 .. s3 .. ' for ' .. s2 .. '.') + end +end + + + + function Public.event_on_market_item_purchased(event) local player_index, market, offer_index, trade_count = event.player_index, event.market, event.offer_index, event.count local player = game.players[player_index] @@ -67,7 +98,7 @@ function Public.event_on_market_item_purchased(event) if in_captains_cabin then decay_type = 'static' - elseif offer_type == 'nothing' then + elseif offer_type == 'nothing' or dock_upgrades_market then decay_type = 'one-off' elseif simple_efficiency_trade_bool or special_purchase_bool then decay_type = 'static' @@ -223,23 +254,7 @@ function Public.event_on_market_item_purchased(event) local price_name = price[1].name Common.notify_force_light(player.force, player.name .. ' bought extra time at sea for ' .. price[1].amount .. ' ' .. price_name .. '.') else - if price[2] then - local price_name = price[2].name - if price_name == 'raw-fish' then price_name = 'fish' end - Common.notify_force_light(player.force, player.name .. ' traded away ' .. price[1].amount .. ' ' .. price[1].name .. ' and ' .. price_name .. ' for ' .. this_offer.offer.count .. ' ' .. this_offer.offer.item .. '.') - else - local price_name = price[1].name - if price_name == 'raw-fish' then price_name = 'fish' end - if price_name == 'coin' then - Common.notify_force_light(player.force, player.name .. ' bought ' ..this_offer.offer.count .. ' ' .. this_offer.offer.item .. ' for ' .. price[1].amount .. ' ' .. price_name .. '.') - elseif this_offer.offer.item == 'coin' then - local sold_amount = price[1].amount - if sold_amount == 1 then sold_amount = 'a' end - Common.notify_force_light(player.force, player.name .. ' sold ' .. sold_amount .. ' ' .. price_name .. ' for ' .. this_offer.offer.count .. ' ' .. this_offer.offer.item .. '.') - else - Common.notify_force_light(player.force, player.name .. ' traded away ' .. price[1].amount .. ' ' .. price_name .. ' for ' .. this_offer.offer.count .. ' ' .. this_offer.offer.item .. '.') - end - end + Public.print_transaction(player, this_offer.offer, price) end end end diff --git a/maps/pirates/surfaces/cabin.lua b/maps/pirates/surfaces/cabin.lua index 9b045ad8..51f416fc 100644 --- a/maps/pirates/surfaces/cabin.lua +++ b/maps/pirates/surfaces/cabin.lua @@ -97,15 +97,15 @@ Public.Data.surfacename_rendering_pos = {x = -0.5, y = -15} Public.cabin_shop_data = { { - price = {{'coal', 25}, {'coin', 300}}, + price = {{'coin', 300}, {'coal', 25}}, offer = {type='give-item', item = 'artillery-shell', count = 5}, }, { - price = {{'electronic-circuit', 30}, {'coin', 1000}}, + price = {{'coin', 1000}, {'electronic-circuit', 30}}, offer = {type='give-item', item = 'rail-signal', count = 100}, }, { - price = {{'stone-brick', 30}, {'coin', 2000}}, + price = {{'coin', 2000}, {'stone-brick', 30}}, offer = {type='give-item', item = 'uranium-238', count = 10}, }, {