Open adoa opened 3 years ago
Library issues
[ ] Angel's mods appear to add dependency on science pack techs to pure upgrade technologies. In vanilla, all the pure upgrade techs that don't unlock any recipe nor new bonuses also do not have explicit dependencies on science packs. It feels not intended that this should change by activating angel's mods. Affected techs:
weapon-shooting-speed-2
through-6
physical-projectile-damage-2
through-6
research-speed-2
through-6
stronger-explosives-2
through-6
mining-productivity-2
&-3
inserter-capacity-bonus-3
&-4
This is due to the requirement of unit-test-006: https://github.com/Arch666Angel/mods/blob/38675ef0c0f2faf2d962de382ae828b543c65c32/angelsrefining/prototypes/override/refining-override-base.lua#L3-L43
Either we ignore these in the unit test, or we keep explicit dependencies... I let someone else decide, I can do the corresponding changes if need be.
Can you change the unit test so that it checks if the tech adds new recipes or new bonuses? These techs do neither, they just give a boost to a previously unlocked bonus.
I would not do it conditionally, I rather just code an exception for certain techs... And then we can create the exceptions still dynamically if we want afterwards...
Do I understand correctly that this only affects techs from vanilla and angel's? Bob's mods introduce many such upgrade techs, which should stay untouched as well.
It could dynamically add the upgrade techs from bobs mods as well, I think I did not fix the upgrades from bobs mods yet.
Moreover, we could create another part of the unit test that verifies it does not have additional prerequisites other than a previous tier...
I implemented this in https://github.com/Arch666Angel/mods/commit/26c443cbe1748ee47abe8ba33b987f44c483bd21:
The clue of the change from https://github.com/Arch666Angel/mods/blob/d81799b46564fa0f5e1340c43f8ab15a68adb46c/angelsdev-unit-test/unit-tests/unit-test-006.lua#L197 to https://github.com/Arch666Angel/mods/blob/26c443cbe1748ee47abe8ba33b987f44c483bd21/angelsdev-unit-test/unit-tests/unit-test-006.lua#L286
In general, when the technology is a pure bonus tech (only unlocks bonusses, no recipes) then it will not check if it has sufficient prerequisites.
"physical-projectile-damage-2"
which require "logistic-science-pack"
, but there are no prerequisites that also require "logistic-science-pack"
or any prerequisites that unlock a recipe that produces "logistic-science-pack"
."physical-projectile-damage-2"
in case it depended on "physical-projectile-damage-1"
, if "physical-projectile-damage-1"
required "chemical-science-pack"
to be researched.There is one exception to this general rule: the first pure bonus technology (=the one that does not has another pure bonus technology as prerequisite, e.g. "physical-projectile-damage-1"
or "artillery-shooting-speed-1"
) must still depend on a correct prerequisite.
"laser-shooting-speed-1"
depends on "laser"
. Both techs require "chemical-science-pack"
as ingredient. If however the dependency on "laser"
would be omitted, an error would be thrown that "laser-shooting-speed-1"
requires higher science packs than its prerequisites provide."laser-shooting-speed-1"
(see explanation of the general case above).https://github.com/Arch666Angel/mods/commit/26c443cbe1748ee47abe8ba33b987f44c483bd21 also removes the prerequisites of the bonus technologies mentioned in https://github.com/Arch666Angel/mods/issues/691#issuecomment-928078254. Due to the change of the unit test 006 behavior, no additional errors occur in the test log.
@adoa, if you agree with this change, please check this one off the list.
This sounds exactly as it should be.
Unused items & fluids
- [ ] paper
- [ ] ferric chloride solution, cupric chloride solution
- [ ] resin & liquid resin
- [ ] liquid rubber
- [ ]
solid-lithium
- [ ]
crystal-full-red
,-blue
,-harmonic
These unused items / fluids and more are detected by unit test 007 (#709)
As from the unit tests added in #709, https://github.com/Arch666Angel/mods/commit/a0ea5cbaedc28fa5287fefa0124ea8d0f6fbe3c2 fixes the milling drum and electro whinning cell not being used in some cases.
Some more things to check off the list:
Unused items & fluids
- [ ] resin & liquid resin
- [ ] liquid rubber
Logistic Science tier
- [ ] Tech:
resins
Requires: automation & logistic science packs Depends on:basic-chemistry-3
Building unlocks: none Recipe unlocks: none Action: Resin & liquid resin have no use. Tech is empty, needs to be removed. All subsequent techs need to be removed, too.- [ ] Tech:
rubbers
Requires: automation & logistic science packs Depends on:angels-oil-processing
Building unlocks: none Recipe unlocks: none Action: rubber has no use and is already hidden. This tech is empty, useless, and should be removed.- [ ] Tech:
resin-1
Requires: automation & logistic science packs Depends on:angels-nitrogen-processing-2
,angels-advanced-chemistry-1
,resins
Building unlocks: none Recipe unlocks: none Action: empty tech with no use, same for subsequent tiers-2
and-3
- [ ] Tech:
rubber
Requires: automation & logistic science packs Depends on:angels-advanced-chemistry-2
,rubbers
Building unlocks: none Recipe unlocks: none Action: empty tech with no use
https://github.com/Arch666Angel/mods/commit/2607345fe046f953d596cd75fd90029ca88471d8 introduces 3 new petrochem triggers: https://github.com/Arch666Angel/mods/blob/2607345fe046f953d596cd75fd90029ca88471d8/angelspetrochem/data.lua#L12-L15 When these triggers are set to false, the corresponding solid and liquid item are hidden together with their corresponding recipes (petrochem only). Also handles the corresponding technologies. Note: These triggers are not configured exactly correct; they are still too permissive in some overhaul cases, but they are restrictive enough to handle all special vanilla cases. Calling it good enough for this issue.
Technology issues at Automation Science tier
- [ ] Tech:
bio-wood-processing
Requires: automation science packs Depends on: none Building unlocks: none Recipe unlocks:bio-resin-wood-processing
Action: resin has no use- [ ] Tech:
bio-arboretum-desert-1
Requires: automation & logistic science packs Depends on:bio-arboretum-1
,bio-nutrient-paste
,rubbers
Building unlocks: none Recipe unlocks: 3 recipes Action: Liquid rubber has no use, this tech and all its recipes are entirely pointless. Same is true for subsequent tier-2
- [ ] Tech:
bio-arboretum-temperate-1
Requires: automation & logistic science packs Depends on:resins
,bio-fermentation
,bio-arboretum-1
Building unlocks: none Recipe unlocks: 4 recipes Action: Liquid resin has no use, this tech and all its recipes are entirely pointless. Same is true for subsequent tier-2
https://github.com/Arch666Angel/mods/commit/2607345fe046f953d596cd75fd90029ca88471d8 introduces 3 new bioprocessing triggers depending on the aforementioned petrochem triggers: https://github.com/Arch666Angel/mods/blob/2607345fe046f953d596cd75fd90029ca88471d8/angelsbioprocessing/data.lua#L52-L55 When these triggers are set to false, the corresponding liquid tree generation items are hidden together with their corresponding recipes (bioprocessing only). Also handles the corresponding technologies and early game recipes.
Some more things to (partially) check off the list with https://github.com/Arch666Angel/mods/commit/2d263e2e61c5fd9fd4073256352db4380d0d9a60. See comment below why it's not checked off yet.
Crafting machines with no compatible recipes
- [ ] Sintering oven
@KiwiHawk can you extend unit test 009 such that it verifies that each (visible) recipe can be crafted in a machine (or character)?
I believe I did hide too many sintering ovens is this Special vanilla (BA)
case:
The test should say something like
There is no suitable machine or character that can craft recipe "recipe_name" (crafting category "crafting_category_name").
In this example case I would expect something to be craftable in sintering oven 3 & 4:
https://github.com/Arch666Angel/mods/blob/2d263e2e61c5fd9fd4073256352db4380d0d9a60/angelssmelting/prototypes/override/smelting-override-support.lua#L23-L33
@KiwiHawk can you also extend unit test 008 to dynamically add items that can be looted from enemies to the items_to_ignore
list:
https://github.com/Arch666Angel/mods/blob/25b1c093ee1a64b3a6ea7c521c446a09962b313a/angelsdev-unit-test/unit-tests/unit-test-008.lua#L4
This will prevent these items from throwing the following errors in this Special vanilla (BA)
case:
angelsdev-unit-test: No recipe is creating item "small-alien-artifact" as a product.
angelsdev-unit-test: No recipe is creating item "small-alien-artifact-red" as a product.
angelsdev-unit-test: No recipe is creating item "small-alien-artifact-orange" as a product.
angelsdev-unit-test: No recipe is creating item "small-alien-artifact-yellow" as a product.
angelsdev-unit-test: No recipe is creating item "small-alien-artifact-green" as a product.
angelsdev-unit-test: No recipe is creating item "small-alien-artifact-blue" as a product.
angelsdev-unit-test: No recipe is creating item "small-alien-artifact-purple" as a product.
You can use LuaEntityPrototype.loot
, but make sure count_max > 0
and probability > 0
(i think they can also be set to nil
)
@KiwiHawk can you also extend unit test 008 to dynamically add fluids that can be pumped from the sea to the fluids_to_ignore
list:
https://github.com/Arch666Angel/mods/blob/25b1c093ee1a64b3a6ea7c521c446a09962b313a/angelsdev-unit-test/unit-tests/unit-test-008.lua#L5
This will prevent this fluid from throwing the following error in this Special vanilla (BA)
case:
No recipe is creating fluid "water-viscous-mud" as a product.
You can use LuaEntityPrototype.fluid
, but make sure the pump is not hidden.
I fixed this issue with the puffer nests. I'm still not sure why the puffer nest entity has placeable_by
set though.
these observations are on the current
dev
branch, commit 38675ef0cUnused items & fluids
solid-lithium
crystal-full-red
,-blue
,-harmonic
Crafting machines with no compatible recipes
Library issues
weapon-shooting-speed-2
through-6
physical-projectile-damage-2
through-6
research-speed-2
through-6
stronger-explosives-2
through-6
mining-productivity-2
&-3
inserter-capacity-bonus-3
&-4
Technology issues at Automation Science tier
[x] Tech:
bio-wood-processing
\ Requires: automation science packs\ Depends on: none\ Building unlocks: none\ Recipe unlocks:bio-resin-wood-processing
\ Action: resin has no use[ ] Tech:
angels-sulfur-processing-1
\ Requires: automation science packs\ Depends on:basic-chemistry-2
\ Building unlocks: none\ Recipe unlocks:liquid-sulfuric-acid
\ Action: At this point in the game, the only unlocked recipe is not craftable. There is no source for sulfur dioxide gase yet. I recommend moving this recipe to the logistic science techangels-sulfur-processing-2
, removing this tech, and re-numbering. Note: with industry overhaul, this tech depends on lead processing, which is the earliest possible source for sulfur dioxide.[ ] Tech:
bio-paper-1
\ Requires: automation & logistic science packs\ Depends on:bio-processing-brown
\ Building unlocks: none\ Recipe unlocks:solid-wood-pulp
,paper-bleaching-1
\ Action: paper has no use, but pulp is required for other stuff later onLogistic Science tier
[ ] Tech:
advanced-ore-refining-1
\ Requires: automation & logistic science packs\ Depends on:slag-processing-1
,ore-crushing
\ Building unlocks: 2 buildings\ Recipe unlocks:angelsore-crushed-mix1-processing
,angelsore-crushed-mix3-processing
\ Action: Recipe iconangelsore-crushed-mix3-processing
is wrong, it does not show copper as result, neither does it show the nugget ingredient as-mix1-processing
recipe does.[ ] Tech:
advanced-ore-refining-2
\ Requires: automation & logistic science packs\ Depends on:geode-processing-2
,advanced-ore-refining-1
\ Building unlocks: 3 buildings\ Recipe unlocks:angelsore-chunk-mix1-processing
,angelsore-chunk-mix2-processing
\ Action: Recipe icons for both recipes is wrong, it does not show correct ore as result, neither does it show the slag ingredient ascrushed-mix1-processing
recipe does.[ ] Tech:
chlorine-processing-1
\ Requires: automation & logistic science packs\ Depends on:gas-processing
,ore-crushing
\ Building unlocks: none\ Recipe unlocks: 3 recipes +liquid-ferric-chloride-solution
,liquid-cupric-chloride-solution
\ Action: ferric & cupric chloride solutions have no use, recipes should be removed.[ ] Tech:
chlorine-processing-2
\ Requires: automation & logistic science packs\ Depends on:gas-steam-cracking
,chlorine-processing-1
\ Building unlocks: none\ Recipe unlocks:liquid-glycerol
\ Action: Recipe is not craftable because epichlorhydrin ingredient is not craftable. Furthermore, glycerol liquid has only one use:solid-nitroglycerin
, which only makes explosives. Not sure what is to happen with this tech in special-vanilla mode.[x] Tech:
resins
\ Requires: automation & logistic science packs\ Depends on:basic-chemistry-3
\ Building unlocks: none\ Recipe unlocks: none\ Action: Resin & liquid resin have no use. Tech is empty, needs to be removed. All subsequent techs need to be removed, too.[x] Tech:
rubbers
\ Requires: automation & logistic science packs\ Depends on:angels-oil-processing
\ Building unlocks: none\ Recipe unlocks: none\ Action: rubber has no use and is already hidden. This tech is empty, useless, and should be removed.[x] Tech:
resin-1
\ Requires: automation & logistic science packs\ Depends on:angels-nitrogen-processing-2
,angels-advanced-chemistry-1
,resins
\ Building unlocks: none\ Recipe unlocks: none\ Action: empty tech with no use, same for subsequent tiers-2
and-3
[ ] Tech:
plastics
\ Requires: automation & logistic science packs\ Depends on:angels-advanced-chemistry-1
\ Building unlocks: none\ Recipe unlocks: none\ Action: This tech is currently empty. I suggest moving recipesolid-plastic
into this tech, and removing it from the three subsequent techsplastic-1
,bio-plastic-1
,bio-arboretum-swamp-1
[ ] Tech:
lubricant
\ Requires: automation & logistic science packs\ Depends on:oil-steam-cracking-1
\ Building unlocks: none\ Recipe unlocks:mineral-oil-lubricant
\ Action: In special vanilla,gas-residual
is not unlocked byoil-steam-cracking-1
, maybe make this tech depend ongas-steam-cracking-1
instead, otherwise the only recipe is not craftable at time of research.[x] Tech:
rubber
\ Requires: automation & logistic science packs\ Depends on:angels-advanced-chemistry-2
,rubbers
\ Building unlocks: none\ Recipe unlocks: none\ Action: empty tech with no use[ ] Tech:
water-treatment-3
\ Requires: automation & logistic science packs\ Depends on:water-treatment-2
,advanced-electronics
\ Building unlocks: 2 buildings\ Recipe unlocks: 2 recipes +solid-lithium
\ Action: Lithium has no use[ ] Tech:
powder-metallurgy-1
\ Requires: automation & logistic science packs\ Depends on:angels-metallurgy-2
\ Building unlocks:sintering-oven
,powder-mixer
\ Recipe unlocks: none\ Action: sintering oven has no compatible recipes[ ] Tech:
bio-paper-2
\ Requires: automation & logistic science packs\ Depends on:bio-paper-1
\ Building unlocks: none\ Recipe unlocks: 4 recipes\ Action: paper has no use, but pulp is required for other stuff later on. To this day the purpose of this tech and its recipes is not clear to me: it adds unreasonable complexity for minimal boos in yield of pulp.[x] Tech:
bio-arboretum-desert-1
\ Requires: automation & logistic science packs\ Depends on:bio-arboretum-1
,bio-nutrient-paste
,rubbers
\ Building unlocks: none\ Recipe unlocks: 3 recipes\ Action: Liquid rubber has no use, this tech and all its recipes are entirely pointless. Same is true for subsequent tier-2
[x] Tech:
bio-arboretum-temperate-1
\ Requires: automation & logistic science packs\ Depends on:resins
,bio-fermentation
,bio-arboretum-1
\ Building unlocks: none\ Recipe unlocks: 4 recipes\ Action: Liquid resin has no use, this tech and all its recipes are entirely pointless. Same is true for subsequent tier-2
[ ] Tech:
angels-bio-yield-module
\ Requires: automation & logistic science packs\ Depends on:gardens-2
,effectivity-module
,productivity-module
\ Building unlocks: none\ Recipe unlocks:angels-bio-yield-module
\ Action: This is the only module that has crystals as ingredients. Either make all modules use crystals, or none. This is very inconsistent.[ ] Tech:
angels-construction-robots-2
\ Requires: automation & logistic science packs\ Depends on:cargo-robots
,angels-construction-robots
\ Building unlocks: 2 buildings\ Recipe unlocks: none\ Action: Both recipes require red circuits, this tech should depend onadvanced-electronics
[ ] Tech:
angels-vequipment
\ Requires: automation & logistic science packs\ Depends on:logistic-science-pack
\ Building unlocks: none\ Recipe unlocks:angels-burner-generator-vequip
,angels-repair-roboport-vequip
\ Action:engine
orautomobilism
and it should depend on that instead of on the science pack directly. This was previously reported for Industry overhaul (#428).angels-repair-roboport-vequip
requires red circuits, but it is worse than theangels-construction-roboport-vequip
unlocked by a subsequent tech, and the better one only requires green circuits. Please take a look and adjust ingrendiets.