Skip to content

Commit

Permalink
bhoddos turd path 1
Browse files Browse the repository at this point in the history
  • Loading branch information
notnotmelon committed Nov 20, 2023
1 parent cea8f12 commit 6c088b7
Show file tree
Hide file tree
Showing 8 changed files with 104 additions and 48 deletions.
10 changes: 8 additions & 2 deletions changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,18 @@ Date: ???
- fixed nuclear caravans (https://github.com/pyanodon/pybugreports/issues/334)
- fixed reproductive complex sometimes eating your modules (https://github.com/pyanodon/pybugreports/issues/322)
- changed the item description for navens (https://github.com/pyanodon/pybugreports/issues/308)
- removed fuel rods from bhoddos recipes
- the bhoddos machine now consumes fuel rods directly. no longer requires electricity
- moved the arqad used comb recycling recipe from arqad stage 2 to arqad stage 1
- added new recipes for creating wax from sugar and honey
Bhoddos:
- bhoddos chain was completely reworked. previously this fungus suffered from 'lack of identity'. its changed to be a biological version of a fission reactor
- added nuclear reactor to bhoddos culture building recipe
- removed fuel rods from bhoddos recipes
- the bhoddos machine now consumes fuel rods directly. no longer requires electricity
- changed item & tech descriptions for bhoddos
- reworked bhoddos turd path 1 to cause nuclear explosions every 2 hrs. high risk high rewards
TURD:
- fixed crash when opening TURD when pyAE is not installed
- removed /view_turd_selections
- buffed moondrop turd path 1 speed increase from 10% to 20%
- reworked moondrop turd path 2
- added a 100% energy penalty to moondrop path 3
Expand Down
1 change: 1 addition & 0 deletions control.lua
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ script.on_nth_tick(121, Farming.events[121])
script.on_nth_tick(143, Biofluid.events[143])
script.on_nth_tick(221, Oculua.events[221])
script.on_nth_tick(397, Ulric.events[397])
script.on_nth_tick(432000, Turd.events[432000])

script.on_nth_tick(7, function()
for _, player in pairs(game.connected_players) do
Expand Down
8 changes: 4 additions & 4 deletions locale/en/items.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -1150,10 +1150,10 @@ phagnot-mk04=Alien hybrid animals. They have a big reservoir of gas on their hea
phagnot-food-01=Basic phagnot food.
phagnot-food-02=Spelt blini with moss-spiced yotoi fruit and bhoddos cheese.
gas-bladder=Special organ, lighter than air, which helps phagnots stand.
bhoddos=Hybrid plant-fungus creature.
bhoddos-mk02=Hybrid plant-fungus creature.
bhoddos-mk03=Hybrid plant-fungus creature.
bhoddos-mk04=Hybrid plant-fungus creature.
bhoddos=Hybrid nuclear fungus creature.
bhoddos-mk02=Hybrid nuclear fungus creature.
bhoddos-mk03=Hybrid nuclear fungus creature.
bhoddos-mk04=Hybrid nuclear fungus creature.
zymogens=Inactive precursor of an enzyme. Requires a biochemical cleave to activate it.
mmp=Enzymes are capable of degrading all kinds of extracellular matrix proteins.
peptidase-m58=Alien catalytic protein.
Expand Down
6 changes: 3 additions & 3 deletions locale/en/techs.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ d-core=Dimensional gastricorg hybridism
pentadimensional=Penta-dimensional enclosure
existential-hazard=Existential hazard
higgs-field=Quantum folding
extra-drones=Extra drones
extra-drones=Meltdown
exoenzymes=Exoenzymes
gills=Inter-dermal extra gills
high-viability=High-viability scaffolds
Expand Down Expand Up @@ -668,7 +668,7 @@ vonix=Unlock vonixes, artificial life based on native plant and animal DNA. Most
grod=Unlock grods, swamp plants that produce a very useful fiber for animal bedding.
anabolic-rna=Unlock recipes to allow you to use potent steroids to increase the meat quantity of your animals.
phagnot=Unlock phagnots, pacific creatures which have a big reservoir of gas on their heads to help them stand up. Research shows they use it as a defence.
bhoddos=Unlock bhoddos. These advanced hybrids have pseudo-chloroplasts which contain protein structures never seen before.
bhoddos=Unlock bhoddos. These advanced hybrids have pseudo-chloroplasts which contain protein structures able to replicate nuclear fission reactions as an energy source.
antiviral=Unlock antiviral drugs. These will help creatures be healthier and produce more.
immunosupressants=Drugs that inhibit or prevent activity of the immune system. Helps the artificial genesis of your creatures.
bio-implants=Devices to improve or replace a biological structure.
Expand Down Expand Up @@ -802,7 +802,7 @@ d-core=Use knowledge from the Schrödinger antelope research projects. Allows th
pentadimensional=Uses powerful raw energy to enclose the antelopes onto the 5th dimension or lower. They can still travel between planes, but will escape less.
existential-hazard=Forces antelopes to stay in this dimension more time than their dimensional gastricorg allows. It will increase the strangelets leakage around the area. This constraint will also decrease their breeding speed since the antelopes can only do that inside the "outside" dimensions.
higgs-field=L = -1/2 tr [Fμν F^(μν)] + ΨLiγ^μDμΨL + tr[(DμΦ)† DμΦ]+ μ2 Φ†Φ -1/2 λ(Φ†Φ)^2 + ( 1/2 ΨTL ChΦΨL + h.c. )
extra-drones=Install extra collecting drones to harvest bhoddos quickly.
extra-drones=Remove the key ingredients used by the bhoddos to regulate nuclear fission chain reactions. This action dramatically speeds up the production rate for the bhoddos fungus however the risk of nuclear explosion is now 100%. [font=default-semibold][color=255,60,60]☢ WARNING ☢: Picking this option will destablilize the nuclear fisson reactions and cause active bhoddos cultures to violently explode.[/color][/font] Explosions do not damage the bhoddos culture itself however they will destroy any other entities in the radius (including other bhoddos cultures). Expect 1 explosion per surface per 2 hours.
exoenzymes=Introduct the ability to secrete exoenzymes, this allows bhoddos to consume a larger variety of materials, and therefore are able to find more consumable material in an environment than other organisms.
gills=Develop surface gills and a better inter-cellular matrix allowing bhoddos to rotate themselves so they are always exactly parallel with gravity. This means that even if bhoddos moves or bends the gills will still be able to release spores successfully. Spore collectors are able to collect these released spores from the environment.
high-viability=Seeding high-viability (>85%) three-dimensional alginate-chondrocyte hydrogel scaffolds with photocrosslinking of methacrylate-modified alginate with the photoinitiator VA-086. Requires UV activation, so bioscaffolds will require lamps.
Expand Down
2 changes: 1 addition & 1 deletion prototypes/buildings/bhoddos-culture-mk01.lua
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ RECIPE {
energy_required = 1,
enabled = false,
ingredients = {
{"gasifier", 1},
{"nuclear-reactor", 1},
{"glass", 30},
{"nexelit-plate", 20},
{"duralumin", 35},
Expand Down
31 changes: 19 additions & 12 deletions prototypes/upgrades/bhoddos.lua
Original file line number Diff line number Diff line change
@@ -1,15 +1,23 @@
local FUN = require '__pycoalprocessing__/prototypes/functions/functions'

if data then
local bots = {'py-construction-robot-01', 'py-construction-robot-02', 'c-pynobot-mk03', 'construction-robot-ht'}
local biomass = {'nacl-biomass', 's-biomass', 'ni-biomass', 'ti-biomass'}
for i, recipe in pairs({
table.deepcopy(data.raw.recipe['bhoddos-culture-mk01']),
table.deepcopy(data.raw.recipe['bhoddos-culture-mk02']),
table.deepcopy(data.raw.recipe['bhoddos-culture-mk03']),
table.deepcopy(data.raw.recipe['bhoddos-culture-mk04']),
table.deepcopy(data.raw.recipe['bhoddos-1']),
table.deepcopy(data.raw.recipe['bhoddos-2']),
table.deepcopy(data.raw.recipe['bhoddos-3']),
table.deepcopy(data.raw.recipe['bhoddos-4']),
}) do
recipe.name = recipe.name .. '-with-pybot'
FUN.add_ingredient(recipe, {name = bots[i], amount = 2 * i, type = 'item'})
recipe.name = recipe.name .. '-meltdown'
recipe.energy_required = math.ceil(recipe.energy_required * 0.3333)
FUN.remove_ingredient(recipe, 'fungal-substrate')
FUN.remove_ingredient(recipe, 'fungal-substrate-02')
FUN.remove_ingredient(recipe, 'fungal-substrate-03')
FUN.remove_ingredient(recipe, 'biomass')
FUN.remove_ingredient(recipe, 'moss')
FUN.remove_ingredient(recipe, 'manure')
FUN.remove_ingredient(recipe, 'bacteria-1-barrel')
FUN.remove_result(recipe, 'empty-barrel')
data:extend{recipe}
end

Expand Down Expand Up @@ -75,11 +83,10 @@ return {
icon_size = 128,
order = 'c-a',
effects = { -- the effects the tech will have on the building. valid types: 'module-effects', 'unlock-recipe', 'lock-recipe', 'recipe-replacement'
{consumption = 0.5, speed = 0.45, type = 'module-effects'},
{old = 'bhoddos-culture-mk01', new = 'bhoddos-culture-mk01-with-pybot', type = 'recipe-replacement'},
{old = 'bhoddos-culture-mk02', new = 'bhoddos-culture-mk02-with-pybot', type = 'recipe-replacement'},
{old = 'bhoddos-culture-mk03', new = 'bhoddos-culture-mk03-with-pybot', type = 'recipe-replacement'},
{old = 'bhoddos-culture-mk04', new = 'bhoddos-culture-mk04-with-pybot', type = 'recipe-replacement'},
{old = 'bhoddos-1', new = 'bhoddos-1-meltdown', type = 'recipe-replacement'},
{old = 'bhoddos-2', new = 'bhoddos-2-meltdown', type = 'recipe-replacement'},
{old = 'bhoddos-3', new = 'bhoddos-3-meltdown', type = 'recipe-replacement'},
{old = 'bhoddos-4', new = 'bhoddos-4-meltdown', type = 'recipe-replacement'},
},
},
{
Expand Down
66 changes: 66 additions & 0 deletions scripts/turd/bhoddos.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
local cultures = {
'bhoddos-culture-mk01',
'bhoddos-culture-mk02',
'bhoddos-culture-mk03',
'bhoddos-culture-mk04',
}

Turd.events[432000] = function()
local forces_with_bhoddos_path_1 = {}
for _, force in pairs(game.forces) do
local bonuses = global.turd_bonuses[force.index]
if bonuses and bonuses['bhoddos-upgrade'] == 'extra-drones' then
table.insert(forces_with_bhoddos_path_1, force.index)
end
end

if #forces_with_bhoddos_path_1 == 0 then return end

local active_cultues_per_surface_per_force = {}
for _, surface in pairs(game.surfaces) do
local per_surface = {}
active_cultues_per_surface_per_force[surface.index] = per_surface
for _, entity in pairs(surface.find_entities_filtered{
type = 'assembling-machine',
name = cultures,
force = forces_with_bhoddos_path_1
}) do
if entity.active and entity.crafting_progress ~= 0 then
local per_force = per_surface[entity.force_index]
if not per_force then
per_force = {}
per_surface[entity.force_index] = per_force
end
per_force[#per_force + 1] = entity
end
end
end

local exploded_cultures = {}
for _, per_surface in pairs(active_cultues_per_surface_per_force) do
for _, per_force in pairs(per_surface) do
local entity = per_force[math.random(#per_force)]
entity.destructible = false
entity.surface.create_entity{
name = 'atomic-rocket',
position = entity.position,
target = entity,
speed = 1,
max_range = 0.1
}
exploded_cultures[#exploded_cultures + 1] = entity
end
end

if #exploded_cultures == 0 then return end

local future = game.tick + 120
script.on_nth_tick(future, function()
for _, entity in pairs(exploded_cultures) do
if entity.valid then
entity.destructible = true
end
end
script.on_nth_tick(future, nil)
end)
end
28 changes: 2 additions & 26 deletions scripts/turd/turd.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ Turd = {}
Turd.events = {}
local Table = require('__stdlib__/stdlib/utils/table')
local tech_upgrades, farm_building_tiers = table.unpack(require 'prototypes/upgrades/tech-upgrades')
require 'bhoddos'

local NOT_SELECTED = 333 -- enum

Expand Down Expand Up @@ -442,29 +443,4 @@ remote.add_interface('pywiki_turd_page', {
create_turd_page = create_turd_page,
on_search = on_search,
reapply_turd_bonuses = reapply_turd_bonuses
})

commands.add_command('view_turd_selections', nil, function(command)
if not command.player_index then game.print{'turd.font', {'turd.file-failure'}}; return end
local player = game.get_player(command.player_index)
local force = player.force
local selections = global.turd_bonuses[force.index] or {}

local data = {''}
local i = 1
for name, tech_upgrade in pairs(tech_upgrades) do
if i % 18 == 0 then data = {'', data} end
local row = {
'',
{tech_upgrade.master_tech.localised_name or ('technology-name.' .. name)},
': ',
(selections[name] == NOT_SELECTED and {'turd.not-selected'} or {'technology-name.' .. selections[name]}),
'\n'
}
table.insert(data, row)
i = i + 1
end

game.write_file('turd-selections-'..game.tick..'.txt', data, false, command.player_index)
player.print{'turd.font', {'turd.file-success'}}
end)
})

0 comments on commit 6c088b7

Please sign in to comment.