From 87e7d644d7e21c9150cd28f39c793b3d389b9e88 Mon Sep 17 00:00:00 2001 From: kingarthur91 Date: Sun, 6 Dec 2020 21:21:29 -0500 Subject: [PATCH 01/17] updated to 1.1 and fix angel bio module bug --- info.json | 8 ++++---- tweaks/productivity-limitations.lua | 10 ++++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/info.json b/info.json index 2d5279b..54610e7 100644 --- a/info.json +++ b/info.json @@ -1,11 +1,11 @@ { "name": "ScienceCostTweakerM", - "version": "0.18.2", - "factorio_version":"0.18", + "version": "0.18.3", + "factorio_version":"1.1", "title": "ScienceCostTweaker Mod (mexmer)", "author": "mexmer", - "dependencies": ["base >= 0.18.0", "? omnimatter_science >= 3.0.3", "? pycoalprocessing >= 1.2.0", "? bobtech" ], + "dependencies": ["base >= 1.1.0", "? omnimatter_science >= 3.0.3", "? pycoalprocessing >= 1.2.0", "? bobtech" ], "contact": "mexmer@github.com", "homepage": "https://github.com/mexmer/ScienceCostTweakerM", - "description": "Allows the cost of research to be tweaked, in terms of count, science packs and time. Edit its configs costs *.lua to tweak the multipliers. - Original mod made by UberWafe, this is adopted 0.18 version" + "description": "Allows the cost of research to be tweaked, in terms of count, science packs and time. Edit its configs costs *.lua to tweak the multipliers. - Original mod made by UberWafe, this is adopted 0.18+ version" } diff --git a/tweaks/productivity-limitations.lua b/tweaks/productivity-limitations.lua index e28773a..0c93f7c 100644 --- a/tweaks/productivity-limitations.lua +++ b/tweaks/productivity-limitations.lua @@ -1,5 +1,5 @@ if mods["boblibrary"] then - local science_packs_and_intermediates = + local science_packs_and_intermediates = { "automation-science-pack", "logistic-science-pack", @@ -22,5 +22,11 @@ if mods["boblibrary"] then table.insert(finallist, recipeName) end end - bobmods.lib.module.add_productivity_limitations(finallist) + if mods["angelsrefining"] then + for _, recipe_name in pairs(finallist) do + angelsmods.functions.allow_productivity(recipe_name) + end + else + bobmods.lib.module.add_productivity_limitations(finallist) + end end From af0ed73400648a735d5a9af6b547810a787bc2b0 Mon Sep 17 00:00:00 2001 From: kingarthur91 Date: Sun, 6 Dec 2020 21:25:26 -0500 Subject: [PATCH 02/17] testing tags --- tweaks/productivity-limitations.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/tweaks/productivity-limitations.lua b/tweaks/productivity-limitations.lua index 0c93f7c..ac17fcf 100644 --- a/tweaks/productivity-limitations.lua +++ b/tweaks/productivity-limitations.lua @@ -30,3 +30,4 @@ if mods["boblibrary"] then bobmods.lib.module.add_productivity_limitations(finallist) end end +--test From 34cbcb35af110c9285f6ca091321094001bbff01 Mon Sep 17 00:00:00 2001 From: kingarthur91 Date: Sun, 6 Dec 2020 21:29:23 -0500 Subject: [PATCH 03/17] Revert "testing tags" This reverts commit af0ed73400648a735d5a9af6b547810a787bc2b0. --- tweaks/productivity-limitations.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/tweaks/productivity-limitations.lua b/tweaks/productivity-limitations.lua index ac17fcf..0c93f7c 100644 --- a/tweaks/productivity-limitations.lua +++ b/tweaks/productivity-limitations.lua @@ -30,4 +30,3 @@ if mods["boblibrary"] then bobmods.lib.module.add_productivity_limitations(finallist) end end ---test From bc1295fa05398c68b82e8b4559d0f16317c00b0a Mon Sep 17 00:00:00 2001 From: kingarthur91 Date: Sun, 6 Dec 2020 21:41:14 -0500 Subject: [PATCH 04/17] Revert "updated to 1.1 and fix angel bio module bug" This reverts commit 87e7d644d7e21c9150cd28f39c793b3d389b9e88. --- info.json | 8 ++++---- tweaks/productivity-limitations.lua | 10 ++-------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/info.json b/info.json index 54610e7..2d5279b 100644 --- a/info.json +++ b/info.json @@ -1,11 +1,11 @@ { "name": "ScienceCostTweakerM", - "version": "0.18.3", - "factorio_version":"1.1", + "version": "0.18.2", + "factorio_version":"0.18", "title": "ScienceCostTweaker Mod (mexmer)", "author": "mexmer", - "dependencies": ["base >= 1.1.0", "? omnimatter_science >= 3.0.3", "? pycoalprocessing >= 1.2.0", "? bobtech" ], + "dependencies": ["base >= 0.18.0", "? omnimatter_science >= 3.0.3", "? pycoalprocessing >= 1.2.0", "? bobtech" ], "contact": "mexmer@github.com", "homepage": "https://github.com/mexmer/ScienceCostTweakerM", - "description": "Allows the cost of research to be tweaked, in terms of count, science packs and time. Edit its configs costs *.lua to tweak the multipliers. - Original mod made by UberWafe, this is adopted 0.18+ version" + "description": "Allows the cost of research to be tweaked, in terms of count, science packs and time. Edit its configs costs *.lua to tweak the multipliers. - Original mod made by UberWafe, this is adopted 0.18 version" } diff --git a/tweaks/productivity-limitations.lua b/tweaks/productivity-limitations.lua index 0c93f7c..e28773a 100644 --- a/tweaks/productivity-limitations.lua +++ b/tweaks/productivity-limitations.lua @@ -1,5 +1,5 @@ if mods["boblibrary"] then - local science_packs_and_intermediates = + local science_packs_and_intermediates = { "automation-science-pack", "logistic-science-pack", @@ -22,11 +22,5 @@ if mods["boblibrary"] then table.insert(finallist, recipeName) end end - if mods["angelsrefining"] then - for _, recipe_name in pairs(finallist) do - angelsmods.functions.allow_productivity(recipe_name) - end - else - bobmods.lib.module.add_productivity_limitations(finallist) - end + bobmods.lib.module.add_productivity_limitations(finallist) end From e8473e1d5aba88ebc986b3e55d5b4b30a9bb9f7c Mon Sep 17 00:00:00 2001 From: kingarthur91 Date: Sun, 6 Dec 2020 21:41:19 -0500 Subject: [PATCH 05/17] Revert "Revert "updated to 1.1 and fix angel bio module bug"" This reverts commit bc1295fa05398c68b82e8b4559d0f16317c00b0a. --- info.json | 8 ++++---- tweaks/productivity-limitations.lua | 10 ++++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/info.json b/info.json index 2d5279b..54610e7 100644 --- a/info.json +++ b/info.json @@ -1,11 +1,11 @@ { "name": "ScienceCostTweakerM", - "version": "0.18.2", - "factorio_version":"0.18", + "version": "0.18.3", + "factorio_version":"1.1", "title": "ScienceCostTweaker Mod (mexmer)", "author": "mexmer", - "dependencies": ["base >= 0.18.0", "? omnimatter_science >= 3.0.3", "? pycoalprocessing >= 1.2.0", "? bobtech" ], + "dependencies": ["base >= 1.1.0", "? omnimatter_science >= 3.0.3", "? pycoalprocessing >= 1.2.0", "? bobtech" ], "contact": "mexmer@github.com", "homepage": "https://github.com/mexmer/ScienceCostTweakerM", - "description": "Allows the cost of research to be tweaked, in terms of count, science packs and time. Edit its configs costs *.lua to tweak the multipliers. - Original mod made by UberWafe, this is adopted 0.18 version" + "description": "Allows the cost of research to be tweaked, in terms of count, science packs and time. Edit its configs costs *.lua to tweak the multipliers. - Original mod made by UberWafe, this is adopted 0.18+ version" } diff --git a/tweaks/productivity-limitations.lua b/tweaks/productivity-limitations.lua index e28773a..0c93f7c 100644 --- a/tweaks/productivity-limitations.lua +++ b/tweaks/productivity-limitations.lua @@ -1,5 +1,5 @@ if mods["boblibrary"] then - local science_packs_and_intermediates = + local science_packs_and_intermediates = { "automation-science-pack", "logistic-science-pack", @@ -22,5 +22,11 @@ if mods["boblibrary"] then table.insert(finallist, recipeName) end end - bobmods.lib.module.add_productivity_limitations(finallist) + if mods["angelsrefining"] then + for _, recipe_name in pairs(finallist) do + angelsmods.functions.allow_productivity(recipe_name) + end + else + bobmods.lib.module.add_productivity_limitations(finallist) + end end From 808b3979cc4ae56daadab046efe82abab7a40ba4 Mon Sep 17 00:00:00 2001 From: Josef Micka Date: Mon, 7 Dec 2020 15:03:45 +0100 Subject: [PATCH 06/17] 1.1 info and changelog --- changelog.txt | 7 +++++++ info.json | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 8859edd..575035b 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,11 @@ --------------------------------------------------------------------------------------------------- +Version: 1.1.0 +Date: 7. 12. 2020 + Changes: + - Factorio 1.1 update (@kingarthur) + Bugfixes: + - fix for productivity limits for angel bio (@kingarthur) +--------------------------------------------------------------------------------------------------- Version: 0.18.2 Date: 2. 6. 2020 Changes: diff --git a/info.json b/info.json index 54610e7..e8640f9 100644 --- a/info.json +++ b/info.json @@ -1,9 +1,9 @@ { "name": "ScienceCostTweakerM", - "version": "0.18.3", + "version": "1.1.0", "factorio_version":"1.1", "title": "ScienceCostTweaker Mod (mexmer)", - "author": "mexmer", + "author": "mexmer, kingarthur", "dependencies": ["base >= 1.1.0", "? omnimatter_science >= 3.0.3", "? pycoalprocessing >= 1.2.0", "? bobtech" ], "contact": "mexmer@github.com", "homepage": "https://github.com/mexmer/ScienceCostTweakerM", From 2d23af3374475d73afc1c9dd6eea149af36c9ea4 Mon Sep 17 00:00:00 2001 From: Josef Micka Date: Wed, 9 Dec 2020 07:50:58 +0100 Subject: [PATCH 07/17] changed all removal functions to use element = nil, to handle tables that use nonnumeric indexes --- sctmlib.lua | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/sctmlib.lua b/sctmlib.lua index 11196ad..0c62b99 100644 --- a/sctmlib.lua +++ b/sctmlib.lua @@ -1,7 +1,7 @@ -- sctm helper functions if not sctm then sctm = {} end -- uncomment this to enable debug output ---sctm.enabledebug = true +-- sctm.enabledebug = true function sctm.debug(logtext) if (sctm.enabledebug) then @@ -16,15 +16,20 @@ end -- lab functions function sctm.lab_input_remove(labname, packname) local removed = false + sctm.debug("removing " .. packname .. " from " .. labname) if data.raw.lab[labname] and data.raw.lab[labname].inputs then local labinputs = data.raw.lab[labname].inputs for _i, inputpack in pairs(labinputs) do if inputpack and inputpack == packname then - table.remove(labinputs, _i) +-- table.remove(labinputs, _i) + labinputs[_i] = nil removed = true break end end + if removed then + sctm.debug("removed " .. packname .. " from " .. labname) + end end if not data.raw.lab[labname] then sctm.debug("attempting to modify nonexistent lab " .. labname) @@ -66,7 +71,8 @@ local function removeprereq(prereqtable, depname) local removed = false for _i, dep in pairs(prereqtable) do if dep and dep == depname then - table.remove(prereqtable, _i) +-- table.remove(prereqtable, _i) + prereqtable[_i] = nil removed = true break end @@ -159,7 +165,8 @@ local function rempack(ingredientstable, packname) local removed = false for _i, pack in pairs(ingredientstable) do if pack and (pack[1] == packname or (pack.name and pack.name == packname))then - table.remove(ingredientstable) +-- table.remove(ingredientstable) + ingredientstable[_i] = nil removed = true break end @@ -364,7 +371,8 @@ local function removeunlock(effectstable, recipename) local removed = false for _i, effect in pairs(effectstable) do if effect and effect.type == "unlock-recipe" and effect.recipe == recipename then - table.remove(effectstable, _i) +-- table.remove(effectstable, _i) + effectstable[_i] = nil removed = true break end @@ -412,7 +420,8 @@ local function removeknownpacks(effectstable, packtable, techname) for _p, pack in pairs(packtable) do if (pack.partial and name.find(pack.name, 1, true) ~= nil) or (not pack.partial and name == pack.name) then sctm.debug("Moved science pack '" .. name .. "', unlocked by '" .. techname .. "' to research tree.") - table.remove(effectstable, _j) +-- table.remove(effectstable, _j) + effectstable[_j] = nil removedone = true end end @@ -502,7 +511,8 @@ local function removeingredient(ingredientstable, ingredientname) local removed = false for _i, ingredient in pairs(ingredientstable) do if ingredient and (ingredient[1] == ingredientname or (ingredient.name and ingredient.name == ingredientname)) then - table.remove(ingredientstable, _i) +-- table.remove(ingredientstable, _i) + ingredientstable[_i] = nil removed = true break end From b2423f39c0a6a0329fcc8092678aae9898640087 Mon Sep 17 00:00:00 2001 From: Josef Micka Date: Wed, 9 Dec 2020 08:34:39 +0100 Subject: [PATCH 08/17] angels productivity fix should work without boblibray now --- tweaks/productivity-limitations.lua | 57 +++++++++++++++-------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/tweaks/productivity-limitations.lua b/tweaks/productivity-limitations.lua index 0c93f7c..01eff84 100644 --- a/tweaks/productivity-limitations.lua +++ b/tweaks/productivity-limitations.lua @@ -1,32 +1,33 @@ -if mods["boblibrary"] then - local science_packs_and_intermediates = - { - "automation-science-pack", - "logistic-science-pack", - "chemical-science-pack", - "military-science-pack", - "production-science-pack", - "utility-science-pack", - "advanced-logistic-science-pack", - "alien-science-pack", - "science-pack-gold", - "omni-pack", - } +local science_packs_and_intermediates = +{ + "automation-science-pack", + "logistic-science-pack", + "chemical-science-pack", + "military-science-pack", + "production-science-pack", + "utility-science-pack", + "advanced-logistic-science-pack", + "alien-science-pack", + "science-pack-gold", + "omni-pack", +} - local finallist = {} +local finallist = {} - -- Go through all the recipes defined in the science pack and intermidate list. - -- For any of them that exist, add them to the final list of things to limit. - for j, recipeName in pairs(science_packs_and_intermediates) do - if data.raw.recipe[recipeName] then - table.insert(finallist, recipeName) - end - end - if mods["angelsrefining"] then - for _, recipe_name in pairs(finallist) do - angelsmods.functions.allow_productivity(recipe_name) - end - else - bobmods.lib.module.add_productivity_limitations(finallist) +-- Go through all the recipes defined in the science pack and intermidate list. +-- For any of them that exist, add them to the final list of things to limit. +for j, recipeName in pairs(science_packs_and_intermediates) do + if data.raw.recipe[recipeName] then + table.insert(finallist, recipeName) end end + +-- if angelsmod with productivity limit function exists, add it to list +if mods["angelsrefining"] and angelsmods and angelsmods.functions and angelsmods.functions.allow_productivity then +-- sctm.log("angelprodlimit") + angelsmods.functions.allow_productivity(finallist) +-- if bobsmod with productivity limit function exists, add it to list +elseif mods["boblibrary"] and bobmods and bobmods.lib and bobmods.lib.module and bobmods.lib.module.add_productivity_limitations then +-- sctm.log("bobprodlimit") + bobmods.lib.module.add_productivity_limitations(finallist) +end From 28e72f1a85f123fd895dd9786637c636265dc952 Mon Sep 17 00:00:00 2001 From: Josef Micka Date: Wed, 9 Dec 2020 08:35:40 +0100 Subject: [PATCH 09/17] changelog and info --- changelog.txt | 7 +++++++ info.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 575035b..5506e35 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,11 @@ --------------------------------------------------------------------------------------------------- +Version: 1.1.1 +Date: 9. 12. 2020 + Changes: + - maintenance release + Bugfixes: + - fix for handling removals from tables with nonnumeric index (@honktown) +--------------------------------------------------------------------------------------------------- Version: 1.1.0 Date: 7. 12. 2020 Changes: diff --git a/info.json b/info.json index e8640f9..7c78876 100644 --- a/info.json +++ b/info.json @@ -1,6 +1,6 @@ { "name": "ScienceCostTweakerM", - "version": "1.1.0", + "version": "1.1.1", "factorio_version":"1.1", "title": "ScienceCostTweaker Mod (mexmer)", "author": "mexmer, kingarthur", From d29267cc838a39700da00df2a4c754facc4f6cc6 Mon Sep 17 00:00:00 2001 From: Josef Micka Date: Sun, 20 Dec 2020 10:05:52 +0100 Subject: [PATCH 10/17] change to t2 and t3 lab recipe splitter instead of green chips for t2 new intermediate instead of red chips for t3 t3 now requires sulfur to make it more in line with vanilla chemical pack --- .../sct-lab-t3-sulfur-lightsource-128.png | Bin 0 -> 34966 bytes .../sct-lab-t3-sulfur-lightsource-64.png | Bin 0 -> 9363 bytes .../icons/sct-lab-t3-sulfur-lightsource.png | Bin 0 -> 2693 bytes locale/en/sciencecosttweaker.cfg | 2 + prototypes/entities/intermediates.lua | 20 ++++++++++ prototypes/recipes/labs-intermediates.lua | 37 ++++++++++++++++-- prototypes/technologies/labs.lua | 9 ++++- 7 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 graphics/icons/sct-lab-t3-sulfur-lightsource-128.png create mode 100644 graphics/icons/sct-lab-t3-sulfur-lightsource-64.png create mode 100644 graphics/icons/sct-lab-t3-sulfur-lightsource.png diff --git a/graphics/icons/sct-lab-t3-sulfur-lightsource-128.png b/graphics/icons/sct-lab-t3-sulfur-lightsource-128.png new file mode 100644 index 0000000000000000000000000000000000000000..12194b34d9c838db45a43ba725f95422f8592c54 GIT binary patch literal 34966 zcmV*SKwZCyP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;VI^GGzb&hzChTK~#8N?Y#wf8(FqB+5t1hVdhTK;dBQ( z%*;#%GbibJrzCfGdZuUY+<#{7egFI3$xgXc zs#2BKI(zNCPl3Ms*V`Cv8+|d_#{QQ!X3V%hwXx&${>sLT9S>}*)<)O)X8s@Bue&m5 z0pHI5t^K;w-`k&cm;amFUlE{1AGE(FVCe!Pj+jK+-vFTpwn&|A>E+LghY-|6W-Vayn4cThKn_N51G+!%de z-yXx5@5Y1W&{ksro!@W_x(G1c{CD4))=dU}8WJ$*xc z17l!g^^C^o8O@xtV4NO+8!~`3nCk1B8W@-x=$ir4(=*Z6GX(}_^z@8?85o!t8G)CE zV1E2~u)d*@v5BFfk%6J1fuWI!v9Y0nzJb0TFg<;+F9V&81H0A(OAW@3*TofmosAo- zHx3*y@Xj&g#{&aAfvy6X7W**}ssFDdK?nA?^SY*k{x<@~jne}*9(;8ufQ|>R$BhS5 z@SXL?gXuVZ0Eyn%@%#7e(;Ex*W#A&?M$HJ!j|F}(#y~rT90Hhjxprn8G!NN0W9>qN zalpnIjvHs7H_l-ESUq3>S#6isdKfg-`_;hV>0Uyv1NZ<(3fb7PS|)%GK?aclcmivK z9tF172b+x5)6*M2ems~$;`OV1{WkMI*K}~}=E3gu#_Jgy8=HWC#%AW`6ATPZ^bJf5 zjZBSA%=Pq*OiV5G49(50<{6pKu$=P!#2L$`&095R$@=ftY+t_qz~S z*PmRx`SQ{&n-}jqU%m5s_|nlUFvce&;f+&3M0{RUa*>;VY-%1VqX-k7Tnc6itLice zF=_cV#c*m-6(uzfUQxp+MbaYT3UW$u*(F&2(2S&<>e$rMcP^m;5gC3ViBDg-*}nC8 z>lkqL?yD>JY%kw=x$E%7Jx4AdIdfy-@}Ga)a(LP5owFDIIDg3|Gphv_Qx=aio-*Fh zVw|1<@EG7)z;TUD%uGzp3=9l`L45t%bWr?f8|Wa=f2eza8KA;Ij)96;OrE}A`I;@e z_MbR?;l}NUFCW`DIJt*J#^nV?XO|)=DS6fPB6TgE*4*0Dpl)ky?riJq>FnuOH?<6X z{;F1}M+S$xyL#He((c}&!C{qB-PhMY*gx2yXz1(h>*?z5YVT-NszwHf zrn{@Fv%O+S97>XJ#NV5YOZy}41-s%h$KYgacY!L+lplgDBW^!2G_ z4egE1T`lcHJ^doSaANu_DlG5J>7j>U40F5b#rGIi!TvM zn`&yA1!dTz%*ybX94C)R2bbV$cWusJf3)|=h2^VvO_{dD$YdgvD397$AX?uj*1wUP zv7j?s&R)2D*TFNdY(FL>=Av0mNWl zBoG3K)hcyoTYFn`%V1x>fWz(Y?Q3mr0idgus-Etij<$BNG9UwNsA^DlcXol7QlY4$ zr4?`><_qLvNpEj2ol@7^)!m|MY}YiaWs2dx0U02mf1p*_*wfn4-r7Di0CwF5rkyRV zL*2b21A}eq#*yKH&i2+XpGUwkj|>g<_x29<_YL;<_w{rR4fc0;g6U9qXGc$8zow;= zNaMsMHKY?mNA2N%&WrR&T~$yZ_SH%g5RA}@WGV(p ztgTi`xdL`wXG=q~Qa;er(cRHJGSoZJ-~G#10RO;Wei``+$oc&F7r@QX@YgTDj0}GP z-EC-aWO#5G5D3=lY-;^HGz>5W5Q8uLd3XdsJTg22_y7z64uA*rc6I?`dV6|%yL$kg zV1A&lzpJAYtTs3>2xh=S01D{!!vlk06EHK>2X-^0k}JT6>xcyY1U^b5Z}>bo+~3wY z(ACq|(=$9c*wxtqum&Fj)&zSW>KphB`qc2y@F3`3L%kjCUq^;p)aoyT18SLUpu0mM z<}^sTd@8;ki{#)jgo@I#tfY*%i0I&eaDTshckTg!`c0+()utt2%)JLsDswVi-@W&9 za|!hF2=wxd2nvh}4)Sqv`V{0B=;@Xc^C>6E7(hK zR~K0R3-qyrz)!z?9`5Z1L=I>gguU&JEh@26#BP-ES!4o_N*2}A5XE_PEUF|krKYSf zCn>tNvN$g}t}s10%*Qn**e5n5AUeQ5J~AvUz&FIlC)_XK-rd_;^nv|5BuGcV`HPo> zJ-lw6KYR1?wX3I3UcY$m^x-3(?`(Zs-o1Qq&+*lhPho+tA3rM0Om=_&7FLuM6B<-q zS&|kXS5aP+lbMm7o{p$0OHE9~AmPZW(uBA;Obw#Ctf(|UyB1MdRZ>XD)ry$(dLq6- z$Wu4SeEkZP4!rec z1iU-Y)ARK!^d684uobY*)@Gm}{asy}21#d&s#UFKk#JHGpGPC2D@&<(ETX)mATu3a zRvaJusiLe1R$82vm;kRROG`+CSCnGl)j7$rwaCi2P+xdyZlK49jMT)aU~g|1#}IF4 z7yFmj&K!Ag?b4ek_ujpHX8+`Y>$`Wit*?P_336C%J@M~pV@{m8oRO6A?B3mTXD*&N ze&XltJFO;8-L+%eg-d6rO`Cgc@3s@iPff9$@aX=%DOM9~UfNh%O?vg>#l(qLZ|z=w zKX;DJlP5d3{PgtR{ioJfUq8O@>E!I=;gy}18Xg!>l9wA39$r>hOsK`>WMt9Eb+o#= ziqax3o2`&ZnRL2F1%hoWpUYJ%8h|1-HYi&fHNBnPAfmRan+Cf3`n!9YRqDR39xx;0 z@_X7lfSL;!^`P&!H8;~JbsDu=C6i%M2r-W>;;_q$@@Nzyy1G0yAqI;=W+WwLr>2Gn z1^T;u^!eyu`{a(@i+jiRZU6A<)taS?+#TM`nl$0X)5i;EPk(Ut)=w*z?%c8C)|CrZ z=BAe~p4+i)o0X--mJOSaA31XM;-!by*MdDf{XD$JjW>V<=-(tlpp7|l@=SSQNnBXC zk7t0tueYP)N1GSV{XJcMynL=%-?n@C>bc#Uy?YM1y15@Xcr+k5^yI0tVL?GBPacnt z4!?fsVnlF=oy}8+*Y@E)-tS)7#03TVx_pce35@jhN(u`Oba9IC_9#e>ceZ_z6c!Zc z=jrhHK~7X?ppyewJ2})p*zH54w~L4U%Mf?R+=NelPWGu$AxRMdzE1Y#IjP|u9|JzT zsmx9d`sfhs@;1`n#pmPe)G%K^NBeM3=K#kyUTVAs+TN zZyw%?5Akz$2LzMg!uU0xO6ThHtOv0qandTm(QQ^ zba%UP?aGyFH|=a~ckb8;rq7=|J$3w;{i`=#?(RYU0db+hSqTZRox<_P?>oF>^TwyQt!6?JixT`lFKeu(f|IGg2nVavNeGZ(wvgg=&>xVCQ96WjP)}viV&TKz$@~NHUuEVFV z-FbZT!SfyakH7usx$p2+M{X?Vn9Y5tA=zr$gjY~Ig`3HwzwZ7x!7xduq^Vjz8+&nx#I=h60hIzO; zrzEEMczK`^2rp;HS`<9Y&!f5|KQY`l$j>t^I{5ze3vLc}FYeztykqNyBS)X!zW(mz zQ`a}ILcG21-na?sXKnBQS6u+akWt&Q?^J1FS-7|J%^O$FojS2;)AkvYChyySVBem- zhK6QmjvUy$W&47ev#wpbHg(GMOP4QCnmGB&rHd0Rt*%|ZVqt1|?b6jL6Rfsw*|B5O zk1LlgeSGW2hBfOx*u6fnZ@>L38&`X~=TDy%=jS@UeUq7<0V^*_h>oS#0e!~6%F1|5 zCWpnMl1LJv2xRvlLzRle9qsK+8kJNmg=QKXd2CKcYa7UO>S@##O`}Sopb!aCkx0nn zqfsb&T^*y2l%1YZSz3&(K?Hbu6z637xx2l5_#iyM*ZRU)`xj3S?AUtZ@cw-}x2;*e zbpNjHlP%0Io;q)$rw3$ns-@+fo3~ajnt%N8kt=6TEMBnak@YnTQ`6l$ckbA>)yl$r z)A~(kPoBDYKM*zrh^U^YNV#B=ModUf*92^{N9zXQ) z_V#dfd+^|ilby}GcTQI?T>9|A<;3ap@12~FpT6kg>UrwyWxs&nTlem{dwSTvee>w~ zi}283XBW4yz#uOV-?+$#aQ}exl;pVZkf_ig5~@1b^CL*0aEQ`qA1?ueoR=Jv5*|dw zA#>tCA&PU$v(t)F6NuI2d5JOTvJ!MzURG>$T@5@ZE-ED=n2JFF5zCH^sLajCO^7Z{ zPs~k-EKG^chz?GT2&l}>3r3r|B8Z?dtThWcKPhtBilE>e0YEV&TY;Pb{Ef_jtKC3a{pdhT(tW~ zr?`mFs9^uNsHl|q=;WkC0DX2wR#|aza$I6@aY=r5R(f_Wi9$(DPpz)O;7R!8%seKO znU$ZPkeZ6a6XVm;(zA1-6H>yW;?r{q142JV$EU?5r+NB@re)=O2ZXwK_+{i4fvLN9 zU_fZJi-*5YV7QA{pu1nFXJ7=F#wMn^xO)c#hiB&%dHMRMWoCbhiS_XhC@L!p4v$Dq zOOK9=kBSV>%g&68j?B(T4Gr?i$w>A0b}cW?efRQFW^%&o`!~FuKfHN-zAJ1x^i&)rfa89J-vVL{VSUfub%t4JAZul9vbO`2KYvYzDF_rZ#C_PzZ0-+ z?{RnqA}=w~>AmyoXU{io-L-t#4@Zw2-??+2iK)ezlc$!iT)TAf(tZ05&zQa7;F052 zQ)eGJe%gHE^rOd58<|bov;U}t<&^nLRxe)mgT>?-d-okOoiOdlu`|=A%v-T$+~u3le?q4hm*%^+c&nhZ=O7PZf$+b$>II6 zg9ncvI`r&6tgI&O+_h)d?p>Ca78}=ZIeX^Z z?JL%AZC=Ghge6ADj2&+<78(Hm7YG1N2fc1|bJNfJ3p27(qC$O~KYD!p@a);kk8j@u z1qS*11~@x8`+EC%_ys+G@+>GQ`0=BcVWHvIZ{GLu3A%CXVQ^6R3mbc9S3g$|FWc8n zpJHSELZSkLBNI}y;uDjTQ`1W;Dih)pDqvM)0y!-)l|UdfXq3#fOge>v$Dk{U3j|C$ z4PQ%uSCcU)Dh@*@V6pH@CK=Bp;V_luQcgVyjjS#%lyK_FXe6?vh)KYakZ>%l0*|aB z)WFO0vk_%QU=xtfR21gbR#$p`{0J{E%Fjsmb#uwf%Z^Wo4UY&74GRYUg93xY!y;T< z+(0xA4vBne`zkIm3HW?q$fw5-9(j8QI=*voc69c0_jvRAt)EXocmTA-)yeHspr5~s zo0rr3Fn6zyub${eSjUYSKW?1fZ=LwR9h1K$VCA|U{$9SGE+3vhczFBv-TjA7Ts?Q@ z#nWe?2c0@}=-I=2=T99!xP9yGYgc|+vHF4awPj0xczE|N=wn)Kz@SNZEFA>aIue11W3d=?It7hJ(m-xc#Fm#9lL zvY0$?@w%le)|y()-m~|(k@>W3yN_BvMT%0*? z?Y$@Vi|>dNlD z$J{)EcI-NG?D)kSHy&--viJ7wXY1DQTDN}p>GQXiEZ=zH%8g|!*3MtF?8yt;+4B~k zICE~^!XM@?Tyo>)ZL5h>Zr!?TVPUoI#|=xCu9!7z-p*b7EG#Bmx@c`;Vs`h=gQ=6J zoIQVOOl$l>zR*lImD6Jt-=qw(r3dNTyWDRlxiKbAgn?OM;5O=kAs}*Xs zT-DpvHPF}F+SJt1+S=dO+uq)$R5pN_zTO_0Osbvf7VvoeeLelX-9o;gtFyDct(`$< zXw;1gc>@Yr!{zWrLP=3^8NI%qK%gchrGkiGQc<0rou8Ron3R~3k)D;Dlo}EKDKsQ3 zF)q!|$3H)}=)=1Y1%>6VADl8XawCF+>Ee|O$BsUJ_;ADepB~-0vtq^S`*-fmnLY2$&D&F_%sPGI z{DQgjH*eZ;aObYotA4s|eP_$2t@rLdJaX{Z7UY>awso`Pau~CtU(cy8ik;S>GS!oGHxtY}^xmoGS=<2fKyo}70I5fO0 zKQlQqDYmpICoLs5BPli+WL(joa#NC`!h*BX5`%m_{Jq_a^RgV@+QmnQI=_GS{NdfC zn8|J$-ca;J(KX9zK73|H=J_ATjwMI7WsY^E|OrL+^!Zl;7x!d=iwU{z*?y`-m)@?SPJb&B% zQ$`c#Y}#{d(yV1Om;HF)#H9&yR$sXBZ05o>%YNE>{M?Oci?>|0emZ^Onz_q1U%vTl z&JSC5AGx$?+u`q5Z@>4@Zr!E>Tlb#5b^q0h_4^(?|FCiU(Um{#dGW?$>FVt}_ntX+ z?$-Qe8!lTvUASV?_bWDExcYGBqBSSaUH@U###!^0J$?CZ?t+!aPG4NKWZk?)D{tO? zW;JE*jXO`xC(PXR^Y$ex*Ug>3@aG-7Ev%-Tzj(vk+|v5igV{4?ojQAI<4^1N>^X4d z;>9J4mpr_8Z{vndS8v~a{N(Y8lPB%%Ke#!&xH!57dU+LR=43=ijvZ(49RxJw2EhJ` z17QCo0U&N@uO}F*2gDaySq&;9I~&`F_wWDs)6aXiZMt>i*7>uS5ANFI@Ycb`*51Y5 zE;%8=`J-cbQ9)o}5Td#|B0Lfaug=cR%gZk;uPDtgDyc=GD&d&Cf?^aJSBaT59T@3s>uhiD9vB+w z?dfT3Y8xCH9vB!=t6K*LKKJ*J$fe5uf#L4neu+@l-qYXS)yLsURLvc7r5cMTaQFhg zP+ShHrZX9MVqIo-9+5&RDJw6lfR$HPWoKnq!_g&$#kslpMFj3Mpjp+C&Xl?Bqc?Ke|-1W+u7-(&6A`1cHFyZea9Loz=eA^uEm6g2fKa*9sgSb zbcu`(dfohgp+b=NKwE=qLVx@?L%s1v>$dDmh>8#Oa<_f)`ss6<<7ciuym#l#8;9Gs z9$H_x@aE0?D_5=WTU*<_wAp{~pq##3z4>{PfPzEzs8^JUr4rDBR)Q zyWr4h2WPLh_V2ud!mr$Yokw=dHtt*T)1LcJ9p=`HZUM0CMwq7(>Eq06joGPR!}~6oT2vGBmg4>`nUF9 z5ddwY51`kfucvPe&^I(P+kW6A7F|=6k>v2k?#{jY>o)8-v~&B-D>ruUJG^x1((5mJ96^LgL`L>9eH-=R!nF_QFaj& zdjSDZKOR+~{{{gdfB@+KXvXWe9f^-l_~h^Z#>VdP!{;YYUwiuS!Rt5gA3c2X;Pwqi z2ghsHx86K^{@&rk`EwUPynVlY*WowzPOH~#d2RQ8<*J|W-?Q1Ue&>!|$IqU*x@z^# z`}be0TDR-k&8Pbgo!`3u)RQM~w(mLvM0Mwm(j_&&poH=m#!bc~s zy$8?dIZr{p#%t=dOPWi9B@h)U8{O-r9cH zv-|ja2bW_> z9PHnJzhvdb3s*L7+PP!L?$f6(tXaAG$%BW>mwXTMvF)2SzIyud%9&HvSFSqSL*f(U z>3ZqRDZ7_1J)GVH-M4#X>-N#Z?uFfZo7WM6A!!NeP!Ika0(8TgIu5kq;ZJJ5-J29vBuC5*Qehl={}u8RXN??VM6F z3toS4k59>Z=k6a68TZjUz|kkvCpg-{BiPk1(#|E&BPh=1gP)B{kXKOrllQ)U(dkd# zx!bq~`9`MPwRH)IN_%AQcH8!&S485iS57aTeP4d`xoPX{5ti`4-tC#AZ)jZVLkBOP zPf5=|c!TvL5_7DdeR%xF{k>1bxrg>|-GZ+?b-41-&e13G9Ox=;0k@vnUwQaCFe=IV zp`EK&*kfDA+mG$SVv?>uvJD7}x$(&6)mz6GZ=7De{qWJ<$Hwk`P-xU^`}fJIxpww% zW8+htot?rXqkvoc`UNH>B)NNdCnqFlBqRj;_{K!W#C(d12@g+=jxH-GN{vqiU3UCf z1FZ!8H32#f{+s~FFQ7{&Ar<<~bd>BlbPkUt7Gx&dzI=W4`mGhKHXPW!Ls+++9r*|pmb_U}LZ_=(NxO*`*Dez{`fE*pEN14qt0d-(?BZ1*$gCpHtz3r`?g9F3;z5UIaX6;oG!;La!Kd8gHdc8I83D|Tdl>&+hc70uSWmz?>w6rJ>6dZZ!shLR$aS@@R{yv{V zLTsNuOpc4WeDQ*-i|h5Pmv7y=^XB#IUAy+$y?nK8^Y(KWt~|JNZ~2mChYlROa_Rc5 z%a?5)K8g$sD$FSwJI-{>811F5zoP#w0a^~AtE@o#0}cOxfKA(urKjX3ev0&P_4(-H z`{4dd4;PP*PM&rSPVe8m_VDs~^3p!o!`;Qr>*eE@?k=7u&t7qJb>F%Fn47!zw!KGR z*nK#9>f+%uSMNW1v3viy*S0SE51xPUt}Fe7JM}Wk`6!h zPhV%I;bfuHSfc;qq;FuaGn6tnJ=>ym{*pP@#y3gwv<5d~kHT zeEHt#GgsU_{0|;H;o{=GdGpT4kDu?^v;XADGnX!1-LrG|+t=?ltzYly>alO<-nVuR zcdT#Szx&9=>HWF0r~SR$?^s{AfAcQT+xywQ`;PCN{Jeugd;-FJ1JdFW%L>cK>stWO z#z5ks%laV#bn5>rA5e7w8icv7fkhA-TDWyV7|iI%0P_cqU7}MN)n)m9K7MX)ZqFV* z^7nL&i;4~ki45>?&&kRQ4vS6r^eHp1)YmJhu&CVKH>9c>5fl+$2}eaIrX*)(r(|R$ zXM@5XgeX{MR$+cgb#Y})W?o526}qenT?ns566^9Ss>{&?G^sAHx)w{M!!Y=K7^;R; zSB@l)sPwd(ke`GISO7&&MSlGm%za^ zySSag!F7!4XUuBDmg0`L!hK)=2anT)3XaRGII)xNCpCVwDRsR0|C8cGdp`jVsIcaIh5fS0}*_i>pzKID**{LZ$uC9@xk#QhE z1_i~0g=8lu)Pmxzem8)D-wHqHivtO}(&rR!F=d2&>+H=Y~Q*3 zwEgI{dp3tpSs%S{@9ArY6PND3bMm!*VB_HG`{4PTx6VF(p)pP#{^{BIuAV+INg3tk zuuqYRNCc*;5|NdeL#ty_>uA_o0-ajVX7Ly_ARcs)Kr9l7Xm#`kxsuQ0)nd>}g#yfA z5J-twOsCP%2n3x*B@>D8>S`1ciN_F<<5Not%D_yZUr>2zX-Z<6>qpm;;u22}&$QH3 z4|n&(gv8*$AP+Z>*RNjRzjxo|qua#`=ly*Aj~zc_^V-4s#+{pY9)Ec6xNFzGkMA9K zZrgqS;^;2Gq8jJ{HF={Ei#PzmH@!vn6bc# zKt5{x^Uh;=IYl{X8Bvk(krDBs!4Wx`>B&jyF|i3*8CglmSt-d`@v*U)S$Y0`{s}25 zZyemy(zBnubVx|aeDT`RFCfD4qnDk7dqDW7SN2YR!7=Zgy*&NHJ~;b+bPo*u6z}dC zoSt6j?BW*^8kd<-;N=sMlT{oT6zu{0DYrZ%G$uASEjb}8GAzEdusS*-F(EFcvJ93G zpIQw=#Koir2SuZh1b@Hqu+X@Sj9d@*z_{2{FV7%%cmL$1Y>)`W#w5AA_`16I6&9Ai zw*L?to8ayh_}0NGFE=;9FEA%ND>x`9BK(t!yN|n@`#{=wmWd{m4tIO5>Yw3L*{kg(Y3xU96Sy!5P`l#IOe%<3|Pp3#(X zAP$d*kks{K2-rW;pu-%@|1$)b96WJ{O5v2|<-WInbN~MHJ^PM5x_8IX+55)*XP3^N z3k!|9e)Dm3a6~|0#ETa;AYHzH-zF(3?fJ|1>6y8&9h_qmQoQ|w0wZFRQ_@2|rDkUq zCMM^Umcui%ib~6oC^W7dhODEptKb*{33O{35=&q(>j`z#8Z@b%$|H~%1U#Jr`hGo! z&f-z%EEb0^7K%AMu~e!Mh@|x_o>Z<9h-6ec2fSplMFbL^#pW}>`gAsf!J#qg(X|8; zh0Yg>fhyAJOf-&MT3*FsvP+6#L;|U_q`a`OG`FxUCnv9{q&z-8skFExG&H=j0_NxI zmzSFt77`K>5tWsh=J5V~Zbs@GTRT5*&&23YH?Ll?e`(|C?BZf?@8#&26d7KNK#n)E z9ItPrHy+C1bsRu8dU5>kegI}bgaD2Jy%;rZ;03wAmWJOw;K*@nI)z=7n``sR?wa-e z)$6uiID6*d(>J@1UEI87JLuYLHXnTa$mZIE7u)wAeQN8lZp)Du_Abje9(d*Cy?Xn} zThE;KpSpeM;^TX--tWEe@SRK03F~LJu7Ot{y}57a8W@-16`CBCQf%uO;1imhlv{4= z9FUd|3yeg}Bly{ykI^Yv z_g}mXj*h>2=dq)U&#i|xFKyr6d-Cd%^}P>H?x!wX_wf%oe)^K_JLj9XA6&il(BXsg z_C1F|^{{Ktk;~S%ZSCHzUH|jhvsWKJeEtk16*g}of)sZO@k$}Zu60o>>DxE?g6R`wbO)Z%~D#|ZKRH0Z5R&H(q0b5%E zt4>W#$JXNVa*N^Bh^(xf;=-bwoc!{VlJqnXgR_bY3zL#kPzXe9OdJA%N{oxIsHiF_ z$}cM^tS&7^!YYtem9?m9M0qK^q8wgPi7JPc=M`1t7s4x$#^y8i4bAlRjlU%TV6C%n z0fz|CDb#o0jn|?78wX?b48I#|@ZC7$v3lkQPTZi8*ai6o_OBgo-FgB_${W{izJBX` zBhs`Pu@Ga zc%8rdIxI5T*1{5tkROQs<4<01RR%=ksleGRaS)w z{*<1QS(27j8k>|;g~TVN6{TjCk?@4lG6W7w&M7L-$SxyN=*byH`9+mT6fQZvpro`q zIioNkHLt7^6A_!5Ur-(yofH%ni$)W@{UdVoO2Z=J{QSep%3&Yfy+KU21%V+d&cVUS z#l;iYy@yZy{ev!FyB-^xc=f8ar>Fn3r!Ve5d>-iUyZ`XvkYN9l$4}k6|J2XJd)t;R zH?H5ZeP#E~*3R9@Ej2oUMq%lhOwl(qA8%l$XJ7*4MAxBpG(fKKYki=TqkoEk{l~2- zSVm5EE+F9cofmue9((ZMxwD(kjayGIT)gJ(6LIC{(+}_7+rIYzsX9o#_Z+?c*2#bM z_ET@&Lf7rO@aT=#+3U|Q+;RBe7IN_NOBe5G>xYi60kIEWdAxRw2#!j>W#=88UUJXg z*WNoSA+zLxLugudg-cMvTc4Pm67PUUE61NA8$Q=bK&|EkVl-paLXqk^5pqzuN+)% zJ$QQM&SN)spS_1qdwKgGKXK{Cz2|Puo?Ex=yk>px`SUk+&+R@sIHktKFzH-<(1bmA-cpG?)zJUqY;Jb19W5yee(>F6TnY8QR<(%aFoXqTmPYJP+ z@t=Yt3bS(xa`W=D@(Xja%Zn<@N~=n8va69;kQ&vZ39)g>RB~Nxat4812NI8(8Z-)p zDz8G*s5AnR3W6%Lp2uTxX-t7oqU5o8QiZxjt>W@Ujg3vsO^qO&wzsymwYRF|itg6# zzOK#|m8QF+v%jyay{)OMqoc2XaImYpzo&hqzi(i0psT%acwk^~aHOTBb$FnszrSCt zYUu0j>g;G!$fd0bB-4E|;fKtCR{kgGy;sDL5Ril+WS|1Z*mu%dF?t zb0|bI1xP2EjK!k)Tt2+2g2iH1!^$WW3J#4#)nbTvbPY%yFnB7Sh^nqeR3m{#RhPj^ z@=FjUl~^>XV^S=>bWIFlurAJI6 zyP~Ab?Y-NR$FC0`KKu0H6A!Pz%Qv20Jby7LFly88Q{EoFcV4^$_2+8`_nn6?y?60k zvE`Vvf5g%aM_xJwZ#jHv=eb9Z>^xT;yzAnhyng=;`;TEKZ@fNn}y-l1tp zndR>O@vdHRFa*igA=ob>Ju^s>iq{U6$TM5mP9c;@OGk@mvD&-#f|Mj`UX z(~n@an@>JGc=^#gG~wj6$I*#dyN+M;@Q*xj@|yJn+l#lJ?LT?V{-gJnJxBe+;tw7< z{rc_4$4_i7Ti*{4i`c&RU}#9_u_LGN+AM+pfiBGfuSkb0Ia8tz$Rn#%=JyC>^gECkHF_sCW;Yxe*i?{MgR<(bL!OoqdmAe&FQpzvI*m*Py7~=kC7p z2s?ep=Jfp!_U<9a?!9*nNj!Sj!NE7?)@#pu4uOF&S$E!sgr^ig{19yC6&IHYd*TwA zkPUn1pJMNqlvPsW7@8HDQW~06>=d4p55u}fWCtdeB2eU*G+1dhF)Fn@G`6sY#P*BK z|CCgeR)BF0%}vRvatqCJ2}(`MD6{iUjLj%{?-^z17F|$Y^WsBLOltA-_x^T{0N$Ki z&p*Z`=U=*O=N}S#>Au~o4<2`(zPtM1^#?cKv)AthN5`GNde_0(=h@454`0}ahJ>HJ zXdN9MdFjISryzau4Lo}2`2D+29UNSo-Z{ECxnw1zQgApUb1P$0OG6_oJwvnc2Bzcm zO~!(*{Hqp0O7krNqcK2h-^$Uq1Z>@Zu_UWFD=j@dI5H?8(%-``EhW7mw;(PyB`G$s zxD*i^pMk0X2{b$-CAA7x9Tpsotga0R2uIc6KgFaLmB7+7@>A2xs^IvXg6bMHv7{V@ z#Skmucr=bqCDYLaDxW7t;Xs|s6^mqe5?vxyv3L?Pl`U7OLHYwyexX>w7s?tGYOq`+ zRW+$wNkzB1*3xx_GZG3@*&65CqW3q+v1{Imipi-Gqg#v*l za(O%gg;9gVaDl?qU^z@?B?5!T5i1cWL@mCwyt<&Mq8g6M$<2cdhw4H8GoHVm!gX$XwsZ z91s9$$!K!__XzkV2!r*s2Iw*cRW%4Hdye0%Col?fbDbQV@7#T{d+*67PoBB^gq^1&mVNMJ=eWci ze8cSLSxG1@aM%PTY!hNZuDj`@^a8j(`@z~NJB zKJxzi$R{5nlX4JOUIm9Hm%MU|x$@FKtq677&Oa!=@WMl<7av00!!l0ac?W!M_nC(w zkr_v?*}Qi0zy9FenHx6mT>}oCy%8RlcJji_53YXCUwyd!*fuIA@#yJm3GpcxFW-6k z>O(?Y;^8AF?>&6(>gMPE(cRa>r#K^DE@?5IxWL$aiiybtLt_gAV++UwKt-nY03E`= zrKEqJhW;%9oA#W?!Lh~p`JsW~E-t<=p4bKW2PP(_eRT8lbn{3~1LdxJT4FpXdHno? z;u6z=fTm^^JhgXD%`LHY_76|Wb_r{ zlOwGmFyJVvK&&i-lMxsymdMI2#UnA4%o0p`5vB@7j?Szquc1Vz6i23%AaJyRn4D4s z!9OY^GCn)I1mPAGUtW!M_KV5MEqC>cicZY-35<33jf#p%b9C{|%qe>By4@G7btUXYm+8yOSg z7vk~ZV_Z~BN@9wan_sAJV0vn0rqG|(IOBBuMhzhkvE9MiUye+$V-C?BumXQg}S4oOQ}?ggwn3APPtqq5{T4|O+t}UC;&~) z_hyhBf2f8iMzwfWF>zfb8u z?!W#nFyZL+S10Z`+I|dQfAYC+bpFOO&t7}QU3u<%?vYn$N*S1m%!I#mj%l`?ySJ{nIYri2?>u^H8x|ht>Fx(QUqNP3v!)v&z!DHJ*~rw&$P}bQARh%qnW_G- zH2i@89rQZc(V?#k8rpf&@dlQFfOR|0kkNQ_6%z2A5R)7o`l+m}s;Ux^lA4o~mQ@YM zCZ*<8Rg{%hV{)>JYH(!ml7Op=Ps_yv;B99~jYOC-?|wUin>1!xJOj)|tw ziA-)CgF~hZ#4-hy%Hs$XQiX=W;>nfGAkwmVVr4^%xIrb8YgDQxrMgX{ZfQ_9HMX_4 zb+)V8+B*CCnp!)RjjdgMz3Qg+#>UphmNu}hSkfR-X+&}jPpoE&WCCdep2DKCB?7Sm zi6w)mUPGWEF(f*R3si|(FDR|XVQ_VoRd_g>R9KEKh9Qf}YSMCwD^b{_xR5d`vSm3{7M)yyP&!nuu@f9g(Bgw z#M)Y_fXhcC@JyyaE>mC$#70%4R3>M#I4znMrCOsPiJSN zrlr4sptYr4CR6tH^{SK_r9#u%-l|YGN<=cL3>0Av0-lJ=6G|ivI0B7A7YGH?Y6MQe zlcKSd%IaDYg;89AA`|N}b1PABbW(C*RV6YeE+Z);H#NN=C_J_jUgIASR#aRb6&ahB zo>P!t5E>B;D=UkSj*pK`Ce`AiLnDDk<>wZsCugQ5q#?@@a;e5@<`R>M(@iXA zF`o#82ykEkoIoEG#(y9Hs<*x+Kr1^&Itc>kgB)~>p_QKL)NKc^OE~@bPw7I!^;;iK+6XzIBm}Y1>&Cp`1fvFXU1dtzSYXV>ZcU?e+ z2>6YSzem7$)2XXBpJEUx1T+p=g)A>BFD)oR!{HP%wE_l*m6Z@FRM6A$m>LYBuB51x zP)EtgDWcNZDQP(jIy)=B9F3!vlp%`BF?c*RryNVEt1p1zfF@L;Nk{@n{dpK7T_lx* z{z&JDx3aiWj<7+cZl%`q6b)(`i%+ZP zNM#MgI+jePATs!Du9!e)0y^~H6yWWbk(5|gQWoSN z9{=f6US3IX(5Kw=?4-1Opow`!Wlmlpr6m;(uEAv$NZ+v7lvAM0gtN$;*{PLGy{_>ZtMdYHDm98XRnCZd0mSI@`O|nogy%SxZ2pNGumh z)e5DCLSwOo3WY*di>FDYN@5)wjU@xZtC2(|gIiLG!{I2|AU8wQCZ^`+=EL&xV6jO# zC?qa8BB7)bnUI*4n_mpCL?$O^;A(JrS$WARnM^t@Eio}6A+fBeyfC*QKP3xWh3aVQ znZ95xAi!keOk-dZrW=`0GBlm=TRQX`0l@y8fM3lF6ahK{Ht)UCtWYv2b!kbd9&SD_ zpWB57g_M@VU%&J4_6^D_N4<0QFD)qxk4sNV%FHS(35rUns6zUM$Jby<{!u_)unCz( zQE8=RRk)b6as-y1m;(nndjKXu*}fT)QeH!*vw0{2T_kIu(Af;0M5fVDxFU6H8&|5} zN!1|63gnH7#-dFa>_l)!jchGz>fdPy+(9w4n*C!jm;} z#Y%BQ6O|(sHE7689-hJDN#qC|oyC`xAxS7a0~|?4F`7gdgr}6^DV)Igg2GZ%NPJ#w zYJOHhwRcD?41x3XkIpWFe~L+qj?X}&@jd|&=$hK_&=~)q7*Jh%c?7t71!iUzq$Fo1 zM<-X6!n?Z$W-j{4eCh(zNwZ8Q&o;4|X=Fb6R{|g>7_0X?0s00efB>LBqc&zdC>cQM z42n04@%j_S8%`W&JZZeyl;xX_GVACJ3YCH<;82+A@@iC7HK^>13d;+#^GM|SgoJcF z29r}zk)E1aSW@j199>?Ha&iknp$M-*x(6z+fN1Byl%&kkS1yr2n(aNK(+l9SiAB+A zCACC)RAw2O!Obs679fZWt~d`#;R>ZN45gC57ARV(aSR$)MrBFRgnCs|7e^oipo7k@ zYe0v-eEvGnKg{PUj5+%NDATL=H!yL=l*90^nCwiXgH1(qb4M zRa;j}WTY2V)w4w)6Q$Dm3E9PPBrz?wBCn{j8i7yEDWlf0GjofHWO_wKbq%_fLL~v| zVKEs zr`I={0P-4bG#=&PZwY|V2c~B*QO{_Sp6L`l^Ql|*UhHXZlW+x?%IeId)K8(GvQpAu zFjP=rWMWK0Q3*UWG!|J=o|9VwDwO>EGB^K-l2W*{cSJ>1O;9B8URYLM@u$S1YBV7^ z8wRhfD}oa+M34y9VX167i$!9vf#3iRI3l3%tyHc=)6ye{?gXk16Jth?on&nK@3o9I@Ib`kiSZm9gR(GY_3!wQ#Cd= zlj*z$rLvwSrcqgZz7&LR9$yNpsiQG?g;iKAfss{&D5=Dhz-m(SVMKC$a#kS_t=%&#acDC2VkIq5l>>DlONbX6ImBEN)!C3Up+%wDo-;`Aku6HK0G zHf1gpiXj3fX$i2>5didNlz=hXrxA{Fpl7Z#K!CpCBz@z_Is(@3Ip5dSB^8Mgm6fUS zNs%Fug*ka-a(zr}N?vw8fx^nlDWwsKm2eEQ3Q>!tfION(XXO>cIUGR+yq3Y>6UkIG zjwuibaby-xAfj@_60uw$PzdF!X6ObaO?y|jOx*&q_^zH_klXYP477FjG_`dN^bd4) z_4f7j_74n=jC}qDlK!tc;J%di$P`V= zrZ!MH3&3vLT7(jnNF-A#H4LUut!xA;B$YPQ5bBvMJ_18Q*??xFe1w@#k!6{iK*B;vEmm-f^ z+a?zw@7nu4c8rKjEjj(vzZgNi?-Z3>fCx=3_DaaX(Yaxnm3XE&ubPkvuVV@o1!y|x ztuQPNPGAD{r}Lz(oxMX}zJ3{1p5OK7j}20$uV26P_YL;-^#REO=_yyNfnn-FJg6bE zt8jFVSXG1~GbQqzatx9{hvS(Ec_0c)JtDJ-^&;n>w45@OcSL$F zMO2`OG09m)6-aa~K0CLhj!XmETUm(^^7s{HWf)XVeI31?%3xFKlwv8UMHa5wF?IF| ztC`IYzUj10yDtn6 z54WnC=tKg%xHLUJwJ0MWTSEv5jY^D9DlS7rL?xFNlqRO;B*Z0W<`((~$5y~~fo5Sc+n+t$%35UHff7G-m1JrC$xD_bOI z^TlFCLmizjmC8Xf%oj+ocnXEa1OX0-!B-*hARyz2^t7xJ43?6aU4TMj5lA$sC5d=S zWd*#vyjm)fl^2)f<`ke2C{V|tDk_;&2FM4N{J3w@+%*<6mzqsqY(8zFk<~1aj2f9v zH87rJU~Hue#kzC|r2Bs)KwAocI6U59f}ZgdJ(H;beM9pZn|EIv9vNv@HSrj93>*O~ zt0vVFd0b(6d1W1u$mL5gwInfDSV!kj$utIwi>@W{_`(txN+MSjS6~<{AsR!itRXYm zf-)qLFH%(1Qdt5yoyjA!Bmig{SE_F7;)>)vg{GsYPbAm$_4fY)GJSyJuWc0Cf7rnK zx=nuF@GoD!d>tGd>gnxPDqEF}t*xDXAg5~U>gCDQ5@nOBse{LtwX`;~`HJS|R^Vz9 znUcYk*7L+b9_tt!xk5pztCvYtL}HzgE97vYYmI~gF|CeHAW$@F4FQ7zB?1vgAmJ&5 z8Vr}o85kN~y8giAdFw1^FEgLVY4N#J=Uxo$-20nj=bRYQND8~Op1L%*8jC}nH(1#u< z2x#aZ{=yQdNldYzp#@0+4%SkFrV!Z@1Vxx#L9FA;f)YyV`6|!I?4n9SKulpoLTOPc z(akrhjv;XIi$UR;(Mh?*Whgijo1I-;M`q;b6zAuaiujVetlYx%)nDu>r%K}@TwMB;=(38{_=>d$(vxIx`4S2jx2t?iv%s^+%d zfuWYR_Lk0`&tHbS`UXIGH8e8V)7t|G_yW2yfb+l8z$O59u+iY)u=W9Q!(H8jpn7QU z?w2++c6Iki8X6UMuf22U)JH-gR$(l7#@MQ5`}WICQiqt~+l=yV#hq6|jC zlhK%3@MTFv3K|8p2(DJD;T09dMWwYhm|8RrhpZ8D`Tc_<%QqgHws5`GoaL6YmRZjD z-sBGifMoQK1dJA6dd3Du76vAhO)O@ZTFx{!pKf42)o22!<>nYop1--WSl85`B2pM2HLj~;BH?(D1tq8EOC<8}=nN8_mt9nm zm;1fy#t~K4)`R+>p3MhU zm`d4HjlwAvY66KW5z0WE;PIp~sX{Ciu~@v8mJVJ$n@p->F<2}*tDZ(xNn|~}Lrd51 zpYi?r3G-K3&R%XdV~NqExrP&F8dyxzH=P0!O9LYyM9}b@E)0wk0N5}xwK6uJ2GG|L z0OAG^FO$jhjHfJExATldB5ROIxpX!jfhft&FUiRhum#~^aakF;Y=JB|I94K*N5rP1 z(YWmVip;DEST)Ao_Y<2ddHK!{ltNL-dH!()_&SzrM3z|D9GwLtF+~I_r@WS~Zs|mj zIUoqPw|77fV(kGLZ_mKM&}V3{2Wq2O{vS2nCxDOAJ=_!&%o1fwOV>axNRT8-G@W0J zqH*O-u{j8dswpVByoSh#&Ojy=A}ea@yd(0&vPQ3<)cSf+Tyg;tfkUFO#l=-5BCQGr zFDfjR$`qw}1$nvoH3$@<5{^b9WITaf(YS2Gff+Tt2HB5z{zg)E*-E>TkJIdZX_ zOr;CCA_jvEte(N7)=_FuwHi$ez6MiL3^GwP0fWb)Yk&s~434bcdTiFxjT0BGowQ)h zggMJcJ-~9hzWG!GC=~yF0t`*30@D#-JYfbXqs>4$H*L|+hpr9{4UY^B_IC8Ps8!l) zH2LkVoj44ULL>q;FDxhr)l_C)DTPESDy=RmtOj`zC9?;bX_5+}T6#rlA`hVSYF&PjI2ms>76)8Yf zOy!EuB#uvgmm>u{34_65FnFMZ z6br>%t^i1-Odw*jI3k`_2|HNu_C&$|OtyjYvY4!zxRPB?5VB zLS|`xsaT?li%QkVRdESfR8n1DL0NGrqNbMoDLS1ikOxO3GB}dbDpXb}QYdZ6DX(ei z=!WB|QdN^&u4ap6J$-}SJ^k(Noxu7B2LDCP`3DVrGRTew2S)$_>c-~Q)()0fL12K? zx2+IPY-#UIE2*Keg&D<|yb3@7KP0hGrRfNX&QUa|)3YlWbS4lV44TMhatXD#>Pm!4 zu7a0UlopraL1ac^YpW0qLXle4ykhf_=}R|FUbtq;qP13YSC~wm4i= zb#*p3HFfoL_jGo)cXbX84gk^b?Cb{9f3NcVRRaV783JVilwb`G0}<@$?`vso9RSnz zo}S*mrdDuhJ&lcRpk8Qf?2tAzx3_kH&fU`3!sd!J4NX!|*T|I(a+ypl;IMhEnpO_I z9tB4MJ}9;LIy|9OqX8bUZu_YjKWv%0cLt3{0L*4M8YZN~8*wPz-X; z&d#2`z5#&Cf2{Y9HjvH&0Rrgv_YZb=_ksk7P|pMLA9w&rhto@IXe>cy88#1w(|Lfp zxjQ&2N7K}jnpGhZiEvmlwT{JO^SMlR9huhC*$X-ylg^ZiBx)R)HMs@07um1=Ns5a<#}&%w+nNdMuc4Ff|xJs{H^Xlw71H8g_iOr+3sw08nm zZftB4N#ruATr5>_`4Ww$nOV>2Y;IxKb6VAnTnBA2#i~*xK4Q+%qt&B|ykw*ON$qfRa2QLCA)N=B$+b zMnz+MQU--YD<~|js;ogFv2ihJJgz7>IGV+k!4T+zQlvyCE2yYcx3r>3RM1sAJ3E0U zbc1}buMcGDqX_+n8wdj+2!Ne}X6Wt9Gk{tP?1({7mDDVtPMxr{3S0RWU^4RS?MUQrFaTCPx+Si{9Se|6KC(w+%P} z*dv&J`TV)9t-XI>NZs5v(AO_hsM^}v1QH1!baS~HgQs+Nc9m4Xd%AjyODdIe6{d#3 zp>ybUR2G#%!eAR4RD_xuG!jj$#noZ)6fB`dsaC0)SO0t*c)-MY>n6-uX)${l2*Re5 z=K>D^9GFg=4a{ufEMp50ioYRXte&ZXv6YShh$5@mAPWLP*mUv&v*}AV9=P=7FTV`+ z4i5DX41kQKwWUp|Y;SGjQ0uugs#GMUU`c}ddg!`=S}cW3M!=C&Dy^`fl*i-cWEZg6 zLJS^PQH=poR9p#HYBW_CyjUU`9v%iB0J{JGnErqUm7dcr zt(qnpwO%5W&}giB8k55o;t6#?iQq_rO0Iyzu?n%6M50Rh5&@Sh1q}c#{%gJ-itw18At;L`q{0#xnNQKE1PzvbA zfB4pj^Ej&q0ty1Itc{=sYIe| zXy9>$?QLzKeralH5lTc%F27NuA<@|#ZS8a>N2S($fqr!X!s36P0MH;;_{%SSAQkKB zmdlkO6ObrW&8=;6b(2Kapi;F`+5C?7u3BOp$P!RBc#Wz7kEeighe4sSX>=S0tB}eG zXaojXL&D;ykObj13MnYCS8f4?*yc&|*ILb61yUGjIA_uvBhc%uW&(B54z*4CeKhos z1VHD30SCbJ&89%rz{EMG(-v($aPjk(uYH}}1JJL7^z^i~HtHzB5s#_iv3WIB za5kA%RaH}qz@QLlcqJTPi_gg@WYSqFN!dVx;7CkK1&Yb$W){O03VC^T4PPJ}`8+r> z0zMcz@iL0a|7-&u(AC-Aq)}5S4A70Rcq)e@#1UvH5QAx)A{a&_loS?Mi6x4{e3+0c z1a8f%XVA%Yym}^=#ctMU6k?u4Ae0IP5>SpZnceNpAfl|^dTjc#&65|b1t}1ygn57LJSnY{}cgc(-;4^{bW;Pi$)>`X;yDn7j#1%iPqWDSyciIOBbwzj4kcmRP?OCV$L-L0)1ojuDp9h$ae)5Q5}CeB|42mo0S z=>8A^zzHm8XvgD5D`CLFXd$L0z|6oH6bR4-6u>~m3=Il_L}=>5t@|#30;Wygpq7IA zRU#Mh=~!&DQUi)_A)D9K)WT=7J2dKgCQB}oaM)}fhsR-YYLIvk;?gto`C>s?IU=W| zlEG%j=axwo4Y?Iau~Y_dhfrz12KWg+U%*K5Y@?0TxghYy^@_2wtcP)7c+}BJ_+EcAR&(p>T2vYw3W-6WSWI?x8H`)UfK?!M5>#CQqY#J%*@bj6B{n7r zlqzMVu!!Am_j7YFQ||UL`Y;Uhfz-^5U2zal|)iXGT^ z!9~K!PMfAt-tU9F9UP zqhfKy8XTyHskK-f9M#;Q05Jd%0MgK@i+`HD5E_mK5;95vP=82WfXs{%0AwFJDX%j< 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 N002ovPDHLkV1h8B2l)U1 literal 0 HcmV?d00001 diff --git a/graphics/icons/sct-lab-t3-sulfur-lightsource.png b/graphics/icons/sct-lab-t3-sulfur-lightsource.png new file mode 100644 index 0000000000000000000000000000000000000000..2742e157c400ad3d572d72e689257362d078068e GIT binary patch literal 2693 zcmV;03VQX4P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;VI^GGzb&3HC`uK~zXfm6i!qlUEkUg{%Yu2#Nz@YptTK zwQAc_TRWZUa=N%ztJu1MMZjXEf+9N@K-L&!S5{>w5R#AtLJ|TA*+}wbC2Ro%SrjqI zzPii{(7m0`{Ljlf-$~AQfA8M=?!8&@JDHf6Ebg%1EK|5~nZQgJ_n($gOK<%jG6go^ zNU#t{493D{js1Fi$5%IOd}Gt*9b4agciWElw(s2a#8gtz-D%(B#DA^!Vh|#N@=-_?Te??8b-D(UC{PPYj0f zkx}p^_;vL0vn)_KdEY@<_=&xjQ+1uyzx8Gbm@8R!z={hbfIs%uL zbTcnAv$UYFyrh&&B2|&ez(fs=P9s;6h(s!>Jo{E!R$5v@bR;1*Iw~yqM=uZ86W@gU z`>k_aw`}!iftZE`1%GqQ`Ktp55AHvB^r*A*vE%M;=RyO5@bL*n`FG1piYXN&R&@=v zf>csan0-6*R%%K}p#N20UpE(*b1p6?ot=*y*mr2(p0I$cn>IQv+x=Mp5D|9m!uMVm zyngUFcmAxKr>m>SWxv3fSp2Qb+|p7aiAbVX(Ksx2HG@H^s4OimDY%<|BLPn!5JH1P z{IB?Vp7Zc@`_B8kSJ+iQr%js|ufwnMVPXQuh2cEhJ-<8ae%{0L)akPa4mmp?KjY@% z?d=;Bj*Gb-b0aY^B_}&CBRw-YIXxyiAv!wN+uP^TkG`&FTwG6|IeY5V`R`o3+}*8f9V@8zq3fg!$r!51zCT=EMK2#*iK;jhIehejn{i%G&K zWk$s%;i41$f}=wt;(f1#28TuZ`1%C~1_$~F0Mo(#0fgB2ZCiJkm@Z#sA)ief&#o-HuQXWspWY&?X3{nL(D=QZ) z0{%uM4(IE8OpVb89>Cycgd3^h;Zc#-6OxnDqT`bzVs0j- z=jP;>5lIYM4X3)Mp2HPL#Bx4gQp;+fRxv4*>YTg9g~es5X}6PZro_c201`evJ}Wij zop*M_;OM0&fyzRH_?RNhlM-)Txf}$%j)+R|4UF=-g1Z)%k(yPSai^lFqPm#GDzD;l z8YB#spo+;WEN7HdRHtVbWn>q`<5RE45kjv;;Uc1fgThh?$?t#gDX3F$ZX*B$$Cv}8 zB>|rn5)v649-Eky9uk%46Gp%#=H1L9rre?AS8@u;^`$f(t3gg@ODHwM+%i^SB`YPH zn37$Zkem~jm=PIEz~hr5BV%r*WPJGVFAyjT-~T3%IG%@&EI8kw?1t?TIQ>1);ZXj=3lsg@^FQmY$?RCay|C8vORJ1hTA zUP0FFywZZQk3Tzz!dN4a=73?mLZ%1|3~f_zw=Da1PFhA@aVaUcusl7lqL9R*bHqHc zLe;8o>Fm|_4vbAq4m~pT^bM(7?#VUnT!Dhl7L`%hg+zL8KCzrgE+{A^mr*|7?`&pe z2S;H+@BsjAim*grR+B2K=oETU5s5-!fJ3FG|{Lvvc!h&y8?VLmiFeWUg9@4wWu_LMv+(~t8W0AyHAVmoX@SPB z!P;#Q3S_NnEuY&cmB>Y6s8I~Hb@dDl8zv{Gmredwz>le^nf9Imb!&H%vRx!ms+Ah0 zT+yObA35!{a@`iRwLQ|zas{XW0I*p7iddrPzjseAmO?T}CWD$}inh+KvGMVRg{R9V z|Df5~x&FaN;BIM}JCq7-v%0xM*Q(dG9&_=wTD#fY#?j2eb_EOoEY_IWuH*5Me+L*E8rC+qOJrJ^Or=q()iOw@P<{;nYd3=& zpfFY|;0O!?y%I!;%jOMqb&L3oLSCbgFJf^TAhqsqJ?QTrgj8*OkwPQ_$C9YzkiNO) z=qWF22PZVv&X@yZS2Cu-j?3Zoc65qBh=dZ6z}V5`kQNNvr%(Sf2MhBHy0&hyOvh=E zffPbAh05rG>doifl$`m(lIwTyKL_d z8X7XFo4W*J6^$vRGx?1?A=D&oQ)|Ec+7)Z}3dYI~1ptf94h?z{15_BLs<^0(POo9s zuq(+7G6PhyRHf_uQzu5pr=*HDv0Nt*sp=XeOtzo_q^(h?fmELzIBBu!WiyM_C{PDK z0j!JjiKLRUYmsqxz=Wxw*3__AT!BcYR_pW+h78lwv*6+{nFhSaBV#@HA1c)Cs^)f? zTmxniiNd5(7-GHvRO=^S9L3r?Vz9R8B@aLv0Dwwi(ksb{gp`VM3bm@btb$fa12YU# zsC3;u{XM+{j}4>Go;{nHne87KYVYi8)AtIR)Qu7~moH^=g|+Mkb}dI(-=LI2AANqr ze5C^hYlB2vEKf8z%A$tOk%>hNMvX?L?!DJN_~60FlPBZj9UErmesj2(DeNNln1@{LGH6vj0KMVMKi+u0>kKTOi!xL`a5%Hyj}Fg-IrHaYWXWPISEp>JS_*QBkiZpbUF^a+Z7|I;I% z?>(~AM}H4MBC#-}72JF^+U6y+os-2&J8fS3B=TnNiA&KRoDAJ_0e|dD`pLlT69L(W zebPSjNZ9pl=phdrKBIX3?qd#beYs=z7kl^aw|3ZwvRn;1#L_r3H9;-|7NZ0*VTH6< zg|>7+*#gE!jN^8!(}$MZ_c{FY%*HQ&*m~G+=keg3&cRy`U){9lqQk#j?RFjg$J+<2 zU;Ef{!#n0{U$ Date: Sun, 20 Dec 2020 10:06:14 +0100 Subject: [PATCH 11/17] removed debug code --- tweaks/bobsmods/science_bobmods_logistic.lua | 47 -------------------- 1 file changed, 47 deletions(-) diff --git a/tweaks/bobsmods/science_bobmods_logistic.lua b/tweaks/bobsmods/science_bobmods_logistic.lua index 7490f40..e906694 100644 --- a/tweaks/bobsmods/science_bobmods_logistic.lua +++ b/tweaks/bobsmods/science_bobmods_logistic.lua @@ -452,51 +452,4 @@ if mods["bobtech"] then order = "sct-pack-d[logistic]", }, }) - - if sctm.enabledebug then - data:extend({ - { - type = "recipe", - name = "sct-logistic-temporary-component", - subgroup = "sct-advanced-logistic-science-pack", - order = "h_a[logistic]-c[unimover]", - category = "crafting-with-fluid", - expensive = - { - enabled = false, - energy_required = 4, - ingredients = - { - {"advanced-circuit", 8}, - {"titanium-bearing-ball", 12}, - {"cobalt-steel-gear-wheel", 12}, - {"aluminium-plate",15}, - {type="fluid", name="lubricant",amount=50} - }, - results = - { - {type="item", name="sct-logistic-unimover", amount=1}, - }, - }, - normal = - { - enabled = false, - energy_required = 2, - ingredients = - { - {"advanced-circuit", 4}, - {"titanium-bearing-ball", 6}, - {"cobalt-steel-gear-wheel", 6}, - {"aluminium-plate",8}, - {type="fluid", name="lubricant",amount=20} - }, - results = - { - {type="item", name="sct-logistic-unimover", amount=1}, - }, - }, - }, - }) - sctm.tech_unlock_add("sct-advanced-logistic-science-pack", "sct-logistic-temporary-component") - end end From 7ca208a031c8138dd302c2a54c125fc400b50e8f Mon Sep 17 00:00:00 2001 From: Josef Micka Date: Mon, 21 Dec 2020 16:34:53 +0100 Subject: [PATCH 12/17] t3 lab sulphur light also as science pack part --- ....png => sct-t3-sulfur-lightsource-128.png} | Bin ...4.png => sct-t3-sulfur-lightsource-64.png} | Bin ...urce.png => sct-t3-sulfur-lightsource.png} | Bin locale/en/sciencecosttweaker.cfg | 4 +- prototypes/entities/intermediates.lua | 39 +++++++++--------- prototypes/entities/labs.lua | 3 ++ prototypes/recipes/labs-intermediates.lua | 33 +-------------- .../recipes/sciencepacks-intermediates.lua | 32 ++++++++++++++ prototypes/recipes/sciencepacks.lua | 1 + prototypes/technologies/labs.lua | 2 +- 10 files changed, 60 insertions(+), 54 deletions(-) rename graphics/icons/{sct-lab-t3-sulfur-lightsource-128.png => sct-t3-sulfur-lightsource-128.png} (100%) rename graphics/icons/{sct-lab-t3-sulfur-lightsource-64.png => sct-t3-sulfur-lightsource-64.png} (100%) rename graphics/icons/{sct-lab-t3-sulfur-lightsource.png => sct-t3-sulfur-lightsource.png} (100%) diff --git a/graphics/icons/sct-lab-t3-sulfur-lightsource-128.png b/graphics/icons/sct-t3-sulfur-lightsource-128.png similarity index 100% rename from graphics/icons/sct-lab-t3-sulfur-lightsource-128.png rename to graphics/icons/sct-t3-sulfur-lightsource-128.png diff --git a/graphics/icons/sct-lab-t3-sulfur-lightsource-64.png b/graphics/icons/sct-t3-sulfur-lightsource-64.png similarity index 100% rename from graphics/icons/sct-lab-t3-sulfur-lightsource-64.png rename to graphics/icons/sct-t3-sulfur-lightsource-64.png diff --git a/graphics/icons/sct-lab-t3-sulfur-lightsource.png b/graphics/icons/sct-t3-sulfur-lightsource.png similarity index 100% rename from graphics/icons/sct-lab-t3-sulfur-lightsource.png rename to graphics/icons/sct-t3-sulfur-lightsource.png diff --git a/locale/en/sciencecosttweaker.cfg b/locale/en/sciencecosttweaker.cfg index 7bf4a12..504f7cc 100644 --- a/locale/en/sciencecosttweaker.cfg +++ b/locale/en/sciencecosttweaker.cfg @@ -67,6 +67,7 @@ sct-t3-laser-foci=Femto Laser Foci sct-t3-laser-emitter=Femto Laser Emitter sct-t3-femto-lasers=Femto Laser Array sct-t3-atomic-sensors=Atomic Sensors Array +sct-t3-sulfur-lightsource=Sulfur lightsource sct-mil-subplating=Weapon testing sub-plate sct-mil-plating=Kinetic test-target plating sct-mil-circuit1=Weapons testing circuit board @@ -114,7 +115,6 @@ sct-lab2-construction=Advanced lab construction core sct-lab2-automatization=Lab automatization sct-lab3-construction=Spectrum lab construction core sct-lab3-optics=Lab optics and analyzers -sct-lab3-sulfur-lightsource=Sulfur lightsource sct-lab4-construction=Quantum lab construction core sct-lab4-manipulators=Lab micromanipulators and quantum computers ;angelmods @@ -157,6 +157,7 @@ sct-t3-laser-foci=__ITEM__sct-t3-laser-foci__ sct-t3-femto-lasers=__ITEM__sct-t3-femto-lasers__ sct-t3-laser-emitter=__ITEM__sct-t3-laser-emitter__ sct-t3-atomic-sensors=__ITEM__sct-t3-atomic-sensors__ +sct-t3-sulfur-lightsource=__ITEM__sct-t3-sulfur-lightsource sct-mil-subplating=__ITEM__sct-mil-subplating__ sct-mil-plating=__ITEM__sct-mil-plating__ sct-mil-circuit1=__ITEM__sct-mil-circuit1__ @@ -193,7 +194,6 @@ sct-lab2-construction=__ITEM__sct-lab2-construction__ sct-lab2-automatization=__ITEM__sct-lab2-automatization__ sct-lab3-construction=__ITEM__sct-lab3-construction__ sct-lab3-optics=__ITEM__sct-lab3-optics__ -sct-lab3-sulfur-lightsource=__ITEM__sct-lab3-sulfur-lightsource sct-lab4-construction=__ITEM__sct-lab4-construction__ sct-lab4-manipulators=__ITEM__sct-lab4-manipulators__ ;angelmods diff --git a/prototypes/entities/intermediates.lua b/prototypes/entities/intermediates.lua index b74043f..bd4e65d 100644 --- a/prototypes/entities/intermediates.lua +++ b/prototypes/entities/intermediates.lua @@ -96,7 +96,7 @@ data:extend({ }, - -- Tier 3 Intermediary products. + -- Tier 3 (optics) Intermediary products. -- ============================= { type = "item", @@ -148,6 +148,24 @@ data:extend({ stack_size = 200 }, + { + type = "item", + name = "sct-t3-sulfur-lightsource", + icons = + { + { + icon_size = 64, + icon = "__ScienceCostTweakerM__/graphics/icons/sct-t3-sulfur-lightsource-64.png", + }, + { + icon_size = 64, + icon = "__ScienceCostTweakerM__/graphics/overlays/3-64.png", + }, + }, subgroup = "sct-labparts", + order = "b[labparts]-c[lab3]-c[sle]", + stack_size = 10, + }, + -- Military Intermediary products. -- ============================= { @@ -455,25 +473,6 @@ data:extend({ stack_size = 10, }, - -- Spectrum lab sulfur light emiter - { - type = "item", - name = "sct-lab3-sulfur-lightsource", - icons = - { - { - icon_size = 64, - icon = "__ScienceCostTweakerM__/graphics/icons/sct-lab-t3-sulfur-lightsource-64.png", - }, - { - icon_size = 64, - icon = "__ScienceCostTweakerM__/graphics/overlays/3-64.png", - }, - }, subgroup = "sct-labparts", - order = "b[labparts]-c[lab3]-c[sle]", - stack_size = 10, - }, - -- Spectrum lab optics { type = "item", diff --git a/prototypes/entities/labs.lua b/prototypes/entities/labs.lua index ae85efb..80982a0 100644 --- a/prototypes/entities/labs.lua +++ b/prototypes/entities/labs.lua @@ -165,6 +165,7 @@ data:extend({ module_info_icon_shift = {0, 0.9}, }, fast_replaceable_group = "lab", + next_upgrade = "sct-lab-t3", }, -- == Tier 3 == { @@ -259,6 +260,7 @@ data:extend({ module_info_icon_shift = {0, 0.9} }, fast_replaceable_group = "lab", + next_upgrade = "sct-lab-t4" }, -- == Tier 4 == @@ -418,6 +420,7 @@ data.raw["lab"]["lab"].module_specification = module_info_icon_shift = {0, 0.9} } data.raw["lab"]["lab"].fast_replaceable_group = "lab" +data.raw["lab"]["lab"].next_upgrade = "sct-lab-t2" if settings.startup["sct-lab-modules"].value == "tier3" then data.raw["lab"]["sct-lab-t3"].module_specification.module_slots = 1 diff --git a/prototypes/recipes/labs-intermediates.lua b/prototypes/recipes/labs-intermediates.lua index 3ddd528..972e524 100644 --- a/prototypes/recipes/labs-intermediates.lua +++ b/prototypes/recipes/labs-intermediates.lua @@ -139,35 +139,6 @@ data:extend({ }, }, - { - type = "recipe", - name = "sct-lab3-sulfur-lightsource", - expensive = - { - energy_required = 5, - enabled = false, - ingredients = { - { "sulfur", 5 }, - { "plastic-bar", 5 }, - { "sct-t2-reaction-nodes", 3}, - { "sct-t2-microcircuits", 3}, - }, - result = "sct-lab3-sulfur-lightsource", - }, - normal = - { - energy_required = 5, - enabled = false, - ingredients = { - { "sulfur", 2 }, - { "plastic-bar", 2 }, - { "sct-t2-reaction-nodes", 2}, - { "sct-t2-microcircuits", 2}, - }, - result = "sct-lab3-sulfur-lightsource", - }, - }, - { type = "recipe", name = "sct-lab3-optics", @@ -177,7 +148,7 @@ data:extend({ enabled = false, ingredients = { - {"sct-lab3-sulfur-lightsource", 25}, + {"sct-t3-sulfur-lightsource", 10}, {"sct-t3-femto-lasers", 2} }, result = "sct-lab3-optics", @@ -188,7 +159,7 @@ data:extend({ enabled = false, ingredients = { - {"sct-lab3-sulfur-lightsource", 10}, + {"sct-t3-sulfur-lightsource", 3}, {"sct-t3-femto-lasers", 1} }, result = "sct-lab3-optics", diff --git a/prototypes/recipes/sciencepacks-intermediates.lua b/prototypes/recipes/sciencepacks-intermediates.lua index 79e0425..4fb5988 100644 --- a/prototypes/recipes/sciencepacks-intermediates.lua +++ b/prototypes/recipes/sciencepacks-intermediates.lua @@ -656,6 +656,38 @@ data:extend({ }, }, + { + type = "recipe", + name = "sct-t3-sulfur-lightsource", + category = "chemistry", + subgroup = "sct-sciencepack-3", + order = "f[t3]-g[sulfur-lightsource]", + expensive = + { + energy_required = 5, + enabled = false, + ingredients = { + { "sulfur", 5 }, + { "plastic-bar", 5 }, + { "sct-t2-reaction-nodes", 3}, + { "sct-t2-microcircuits", 3}, + }, + result = "sct-t3-sulfur-lightsource", + }, + normal = + { + energy_required = 5, + enabled = false, + ingredients = { + { "sulfur", 2 }, + { "plastic-bar", 2 }, + { "sct-t2-reaction-nodes", 2}, + { "sct-t2-microcircuits", 2}, + }, + result = "sct-t3-sulfur-lightsource", + }, + }, + -- Military Intermediary products. -- ============================= { diff --git a/prototypes/recipes/sciencepacks.lua b/prototypes/recipes/sciencepacks.lua index faecbad..1c14cb6 100644 --- a/prototypes/recipes/sciencepacks.lua +++ b/prototypes/recipes/sciencepacks.lua @@ -122,6 +122,7 @@ data:extend( enabled = false, always_show_made_in = true, ingredients = { + {"sct-t3-sulfur-lightsource", 1}, {"sct-t3-femto-lasers", 1}, {"sct-t3-atomic-sensors", 1} }, diff --git a/prototypes/technologies/labs.lua b/prototypes/technologies/labs.lua index a7af27b..0f4eb37 100644 --- a/prototypes/technologies/labs.lua +++ b/prototypes/technologies/labs.lua @@ -149,7 +149,7 @@ data:extend({ }, { type = "unlock-recipe", - recipe = "sct-lab3-sulfur-lightsource", + recipe = "sct-t3-sulfur-lightsource", }, }, prerequisites = From 46d0816dba65a832e1a3d0cba4a472411d3f1ae0 Mon Sep 17 00:00:00 2001 From: Josef Micka Date: Mon, 21 Dec 2020 16:35:20 +0100 Subject: [PATCH 13/17] aai electric lab fix --- tweaks/aai/1_update.lua | 6 ++---- tweaks/aai/2_final.lua | 4 ++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/tweaks/aai/1_update.lua b/tweaks/aai/1_update.lua index 96c0f4d..21c8c22 100644 --- a/tweaks/aai/1_update.lua +++ b/tweaks/aai/1_update.lua @@ -58,17 +58,15 @@ if mods["aai-industry"] then sctm.tech_dependency_add("sct-lab-t1", "basic-logistics") end - if data.raw.technology["electric-lab"] then - sctm.tech_disable("electric-lab") - end - if mods["angelsrefining"] then sctm.recipe_ingredient_replace("sct-t0-crate", "stone", "stone-crushed") sctm.recipe_ingredient_replace("sct-t0-solvent", "iron-ore", "angels-ore1-crushed") end + if mods["omnimatter"] then sctm.recipe_ingredient_replace("sct-t0-solvent", "iron-ore", "crushed-omnite") end + if mods["omnimatter_wood"] then sctm.recipe_ingredient_replace("sct-t0-solvent", "wood", "omniwood") end diff --git a/tweaks/aai/2_final.lua b/tweaks/aai/2_final.lua index b6489c1..c0978e6 100644 --- a/tweaks/aai/2_final.lua +++ b/tweaks/aai/2_final.lua @@ -23,5 +23,9 @@ if mods["aai-industry"] then end end + if data.raw.technology["electric-lab"] then +-- sctm.tech_dependency_remove("modules", "electric-lab") + sctm.tech_disable("electric-lab") + end end require("fuel_aai") From ba658082a1f2fbefa9ee56627e10a5dcde26f322 Mon Sep 17 00:00:00 2001 From: Josef Micka Date: Mon, 21 Dec 2020 16:36:04 +0100 Subject: [PATCH 14/17] migration script (sulfur light recipe unlock) --- migrations/ScienceCostTweaker_1.01.02.lua | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 migrations/ScienceCostTweaker_1.01.02.lua diff --git a/migrations/ScienceCostTweaker_1.01.02.lua b/migrations/ScienceCostTweaker_1.01.02.lua new file mode 100644 index 0000000..43436e3 --- /dev/null +++ b/migrations/ScienceCostTweaker_1.01.02.lua @@ -0,0 +1,6 @@ +for _, force in pairs(game.forces) do + if force.recipes['sct-t3-flash-fuel'] and force.recipes['sct-t3-flash-fuel'].enabled and force.recipes['sct-t3-sulfur-lightsource'] then + force.recipes['sct-t3-sulfur-lightsource'].enabled = true + end +end + From 133b8fc36feb460313cc40737156c2a84462ee15 Mon Sep 17 00:00:00 2001 From: Josef Micka Date: Mon, 21 Dec 2020 16:36:43 +0100 Subject: [PATCH 15/17] replace plastic with glass and sulfur with sulfur dioxide, when bobs present --- tweaks/bobsmods/1_update.lua | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tweaks/bobsmods/1_update.lua b/tweaks/bobsmods/1_update.lua index 94196d9..d3361b5 100644 --- a/tweaks/bobsmods/1_update.lua +++ b/tweaks/bobsmods/1_update.lua @@ -39,6 +39,14 @@ if mods["bobplates"] then sctm.tech_dependency_add("sct-lab-t3", "gold-processing") end + if data.raw.item["glass"] then + sctm.recipe_ingredient_replace("sct-t3-sulfur-lightsource", "plastic-bar", "glass") + end + + if data.raw.fluid["sulfur-dioxide"] then + sctm.recipe_ingredient_replace("sct-t3-sulfur-lightsource", "sulfur", {type="fluid", name="sulfur-dioxide", amount=20}, "sulfur", {type="fluid", name="sulfur-dioxide", amount=50}) + end + if data.raw.item["glass"] and data.raw.item["aluminium-plate"] then data.raw.recipe["sct-t3-laser-emitter"].normal.ingredients = { @@ -290,6 +298,8 @@ if mods["bobtech"] then else data.raw.lab["lab-2"].researching_speed = 1 end + data.raw.lab["sct-lab-t4"].next_upgrade = "lab-2" + data.raw.lab["lab"].next_upgrade = "sct-lab-t2" end if data.raw.item["lab-alien"] then data.raw.item["lab-alien"].subgroup = "sct-labs" From 1fd1cf6288074c7d3d5dee9fb4289e3f4704a6da Mon Sep 17 00:00:00 2001 From: Josef Micka Date: Mon, 21 Dec 2020 16:37:09 +0100 Subject: [PATCH 16/17] changelog and info --- changelog.txt | 9 +++++++++ info.json | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 5506e35..9c470f0 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,13 @@ --------------------------------------------------------------------------------------------------- +Version: 1.1.2 +Date: 21. 12. 2020 + Changes: + - t2 lab recipe change + - t3 lab recipe and science pack change (new intermerdiate) + Bugfixes: + - fixed removal of duplicate electric lab technology from aai-industry + - fixed ingame upgrade planner (eg. added next_upgrade) +--------------------------------------------------------------------------------------------------- Version: 1.1.1 Date: 9. 12. 2020 Changes: diff --git a/info.json b/info.json index 7c78876..34456c7 100644 --- a/info.json +++ b/info.json @@ -1,10 +1,10 @@ { "name": "ScienceCostTweakerM", - "version": "1.1.1", + "version": "1.1.2", "factorio_version":"1.1", "title": "ScienceCostTweaker Mod (mexmer)", "author": "mexmer, kingarthur", - "dependencies": ["base >= 1.1.0", "? omnimatter_science >= 3.0.3", "? pycoalprocessing >= 1.2.0", "? bobtech" ], + "dependencies": ["base >= 1.1.0", "? omnimatter_science >= 3.0.3", "? pycoalprocessing >= 1.2.0", "? bobtech", "? aai-industry" ], "contact": "mexmer@github.com", "homepage": "https://github.com/mexmer/ScienceCostTweakerM", "description": "Allows the cost of research to be tweaked, in terms of count, science packs and time. Edit its configs costs *.lua to tweak the multipliers. - Original mod made by UberWafe, this is adopted 0.18+ version" From 5c4111c5afaa39fa1a80767396f930b69a1f9d77 Mon Sep 17 00:00:00 2001 From: Josef Micka Date: Mon, 28 Dec 2020 12:24:10 +0100 Subject: [PATCH 17/17] fix for science pack cost multiplier not working with object defined science packs --- data-final-fixes.lua | 46 +++++++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/data-final-fixes.lua b/data-final-fixes.lua index 9d4fc8c..bda6b05 100644 --- a/data-final-fixes.lua +++ b/data-final-fixes.lua @@ -24,33 +24,35 @@ if (settings.startup["sct-difficulty-cost"].value ~= "noadjustment") then sciencecosttweaker = sct_cost[settings.startup["sct-difficulty-cost"].value] -- Iterate through all research, and update the costs as configured. - for index,tech in pairs(data.raw.technology) do + for _i, tech in pairs(data.raw.technology) do -- First, determine the tier of the research, by looking at what types of science packs is used in its research cost. - tier = 1 + tier = 1; multiplier = sciencecosttweaker.costs.tier1; - for Index, Value in pairs( tech.unit.ingredients ) do - if (tier < 2 and tech.unit.ingredients[Index][1] == "logistic-science-pack") then + local ingredients = tech.unit.ingredients; + for _i, pack in pairs(ingredients) do + local packname = pack.name and pack.name or pack[1]; + if (tier < 2 and packname == "logistic-science-pack") then tier = 2 multiplier = sciencecosttweaker.costs.tier2; end - if (tier < 3 and tech.unit.ingredients[Index][1] == "military-science-pack") then + if (tier < 3 and packname == "military-science-pack") then tier = 3 multiplier = sciencecosttweaker.costs.military; end - if (tier < 4 and tech.unit.ingredients[Index][1] == "production-science-pack") then + if (tier < 4 and packname == "production-science-pack") then tier = 4 multiplier = sciencecosttweaker.costs.production; end - if (tier < 5 and tech.unit.ingredients[Index][1] == "chemical-science-pack") then + if (tier < 5 and packname == "chemical-science-pack") then tier = 5 multiplier = sciencecosttweaker.costs.tier3; end - if (tier < 6 and tech.unit.ingredients[Index][1] == "utility-science-pack") then + if (tier < 6 and packname == "utility-science-pack") then tier = 6 multiplier = sciencecosttweaker.costs.hightech; end - if (tier < 99 and tech.unit.ingredients[Index][1] == "module-case") then + if (tier < 99 and packname == "module-case") then tier = 99 multiplier = sciencecosttweaker.costs.bobmodules; end @@ -62,7 +64,7 @@ if (settings.startup["sct-difficulty-cost"].value ~= "noadjustment") then -- If a multiplier is defined for this tier, then apply it. if (multiplier ~= nil) then - local unitCopy = table.deepcopy( tech.unit ) + local unitCopy = table.deepcopy(tech.unit); unitCopy.time = math.max(unitCopy.time * multiplier.time, 1); @@ -72,18 +74,30 @@ if (settings.startup["sct-difficulty-cost"].value ~= "noadjustment") then -- Now adjust by the modifiers for this tier unitCopy.count = math.max(math.floor(unitCopy.count * multiplier.stepCount), 1); - for Index, Value in ipairs( unitCopy.ingredients ) do + for _i, pack in ipairs( unitCopy.ingredients ) do -- For each type of science pack, multiply its count per research step by the given multiplier - local ingredientName = Value[1] - if (multiplier.cost[ingredientName] ~= nil) then - local ingredientCostCount = Value[2] + local packname = pack[1]; + local ingredientCostCount = pack[2]; + local simplepack = true; + if (pack.name) then + simplepack = false; + packname = pack.name; + ingredientCostCount = pack.amount; + end; + + if (multiplier.cost[packname]) then local mult = 1 - mult = multiplier.cost[ingredientName] + mult = multiplier.cost[packname] ingredientCostCount = math.floor(ingredientCostCount * mult) ingredientCostCount = math.max(ingredientCostCount, 1); - Value[2] = ingredientCostCount + if simplepack then + pack[2] = ingredientCostCount + else + pack.amount = ingredientCostCount + end +-- sctm.log(tech.name .. " multiplier applied " .. " (mult: " .. mult .. ", pack: " .. packname .. ", simplepack: " .. (simplepack and 'true' or 'false') .. ")") end end end