-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow CBMs to specify mutations that prevent installation. #47822
Conversation
e610553
to
9a6214b
Compare
Maybe this should use something more generic, like first look if mutation and CBM affect the same bodyparts, then look if the CBM or the mutation has a EXCLUDE_MUTATION/CBM flag and then do the exclusion? Because here filling the fields for every CBMs might get tedious and some CBM might get through the cracks. Or maybe it could use something similar to what mutations do where they specify if they are a SKIN, EYE or whatever mutation and other mutation that are in the same category are exclusive. So if you remove your skin with plate armor you can't get phelloderm anymore for exemple. And then later we add a way to get mutation by bodypart so that you can get phelloderm on your torso but not on the arms that got the armor. |
I don't think the alarm system CBM is capable of keeping you from mutating into a huge bear. It would make more sense for a mutation to render conflicting CBMs disabled or malfunctional (similar to how failed installation attempts add malfunctional bionics). |
Neither do I, it's just the example I used for testing, more invasive bionics would probably be the ones that are problematic. Part of me would prefer to wait until mutation takes time and gives more signals to do more than just block mutation, because if I add consequences, they're not going to be light, and it's something that can happen with basically no warning. I'm not unwilling to do it here, but I do want to be careful with it. |
Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus.
Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
…en#47822) * Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
…en#47822) * Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
…en#47822) * Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation.
* Extend/Delete in requirements * Revert "Extend/Delete in requirements" This reverts commit 9da0eae. * Valentine Cards (#47438) * Add a proficiency for handloading, and a new profession (#47244) * Drug Dealer Profession (#47255) * Adds hallula, a type of bread popular in Bolivia and Chile * Arm mounted pouch (#46946) * Tazer drone iii (#47353) * Added Gelatin and Several Gelatin Based Recipes (#47080) * Content: bread in a can (#45680) * New random mission (#44999) * Mycus fruit Juice (#44952) * Milleable corn (#46254) * Talk Tag Additions (#47010) * Fix typo in Valentines Card (#47583) * (CrazyCataclysm) Crazy Hallucinations (#47386) * Mealgurb (#47685) * Add duct tape blindfold for old reciepe plus tweaks for reciepe (#47527) * Prepare npc, spell, character, and item for new ai (#47207) * Make acetylene torch cut metal walls. (#46255) * Added disassembly recipes for several items (#46316) * Celsius temperature for freezing point (#47028) * Stand up peek (#47257) * [AFTERSHOCK] Basic Ballistic Weapons (#47559) * makes glass walls and glass doors constructable (#47692) * Crackers as bread and jam&cheese sandwich (#47649) * [Aftershock] misc typograpical fixes (#47783) * Tweaks for teas (#47848) * Have travis run for 0.F-dev Currently, .travis.yml has a 'development' branch specified as one to run tests for; the current equivalent is the 0.F-dev branch. * Tweakes to copper and metal pipes. (#47825) * Fried eggs deluxe, sandwiches, and condiment list (#47786) * Homemade toastems, buttercream frosting and recipes (#47696) * Chocolate Cow don't drop "cow pies" * Remove unused FATIGUE energy source from spells * [Magiclysm] add owlbear origin snippet (#47752) * [Magiclysm] add lesser banishment spell, buff greater banishment (#47537) * Unhardcode bio_heatsink and bio_climate * Hunting lodge Location (#44378) * fungal evolution (#47247) * Add book strap carrier (#47665) * Partial mine jsonify; new zombie miner (#47790) * Moved mine_entrance OMT from the list of hardcoded locations to industial locations Also removed mine_shaft OMT and replaced it with mine_shaft_middle and mine_shaft_lower OMTs. Also added mine_entrance_roof OMT. * Added mine_entrance and mine_shaft to the list of obsoleted terrains * Added a zombie miner and its death drops * Created a json-version of mine entrance and its roof * Created a json-version of mine shaft (middle and lower variants) * Changed overmap special definition of a mine to include new json chunks * Applied migration of hardcoded mine_entrance and mine_shaft OMTs to new json variants * Made hardcoded mine chunks generate to the west of lower section of new mine shaft OMT Also removed mine_entrance and mine_shaft from the list of hardocoded mapgen. * Completely removed build_mine_room function as all mine rooms are now defined in json Also removed hardcoded generation of mine entrance and mine shaft. * Removed mentions of mine rooms from mapgen.h * Updated alt_map_key mod * Updated graphical overmap mod * Added missing harvest * Appease clang and constify * Quickfix * Appease clang one more time * Add 0.F-dev to matrix.yml (Getting 0.F-dev working with Travis appears to require additional settings by someone with permissions.) This change enables both pushes and pull requests of 0.F-dev to get checked by the General Matrix. As it is, if one bases a PR off of 0.F-dev, it doesn't get checked by Github. * 0.F-dev workflows (#47875) * Alter brown bread recipe to match canned version Fixes #47874. * Mine entrance expand (#47928) * Added mine_materials item group * Added Trolley vehicle * Expanded and tweaked above-ground and underground levels of mine entrance * [DinoMod] Mushroom Madness (#47907) * misc typograpical fixes * body pillow recipe makes makeshift body pillow now (#47917) * Traffic Bollards and an example of deployment (#48017) * add description for Uyen's missions * JSONize some trap features, replace trap int_id externs with string_ids (#47933) * JSONize trap sonar detectibility Add trap flags - just the same as normal flags, but for traps! Stick them in their own separate file to avoid confusion. * JSONize trap memorial messages light_snare and heavy_snare seem to no longer exist, or I couldn't find any reference to them but this and tilesets. Updated dissector trap message, and added a trap message to some traps (the hallway ones, one or two of the similar-but-not-the-same variants of existing traps). * JSONize trap temperature convection Not quite sure how to describe it, went the lazy route. * Move traps externs from int to string ids When loading the game without this content, these will now only give an error on the use of these, instead of at the end data loading for traps. Previously there were performance concerns with this, but this should be fine since #44261 - see #44500. tr_null must remain an int id, as it used in the string to int id conversion. This is fine, as it will always be loaded (it's in data/core). Move the ledge trap over to data/core as well, because everything will need the 'open space' trap. * Clean up character mutation gain a bit Reduce duplicated code. I presume there's a reason that set_mutations didn't just call set_mutation, and the only difference is that it doesn't do the cache updates till the end, so preserve that behaviour. * Allow CBMs to specify mutations that prevent installation. (#47822) * Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation. * Spiral mine jsonify (#48003) * prevent bell spam (#47987) * Note that vat is required for fermentation in vinegar brewing * Unhardcode ease of sleep * whipped cream remove aerosol whip cream frosting requirement Update slings.json Update data/json/recipes/recipe_food.json Update data/json/items/comestibles/dairy.json Revert "remove aerosol whip cream" This reverts commit b8570f6. Update misc.json Delete recipe_obsolete.json Delete misc.json Delete slings.json Delete ammo_types.json Delete enchantments.json Revert "Delete recipe_obsolete.json" This reverts commit 3119fdc. Revert "Delete misc.json" This reverts commit 71b811b. Revert "Delete ammo_types.json" This reverts commit 848c739. Revert "Delete slings.json" This reverts commit 7c91194. fixes Co-Authored-By: actual-nh <74678550+actual-nh@users.noreply.github.com> Co-Authored-By: casswedson <58050969+casswedson@users.noreply.github.com> * Update data/json/items/comestibles/dairy.json Co-authored-by: actual-nh <74678550+actual-nh@users.noreply.github.com> * Update slings.json * Update junkfood.json Co-authored-by: LaVeyanFiend <51099123+LaVeyanFiend@users.noreply.github.com> Co-authored-by: slimeboy460 <68845349+slimeboy460@users.noreply.github.com> Co-authored-by: ToxiClay <ToxiClay@users.noreply.github.com> Co-authored-by: Jamuro-g <76928284+Jamuro-g@users.noreply.github.com> Co-authored-by: Xenomorph-III <sam1998may@gmail.com> Co-authored-by: grawprog <77870049+grawprog@users.noreply.github.com> Co-authored-by: Xaleth <countolaf17@gmail.com> Co-authored-by: El-Jekozo <72350516+El-Jekozo@users.noreply.github.com> Co-authored-by: RobertoVGoulart <robertovgoulart@yahoo.com.br> Co-authored-by: Zukulini <dragon.fuego.yo@gmail.com> Co-authored-by: klorpa <30924131+klorpa@users.noreply.github.com> Co-authored-by: UmbralReaper <67179462+UmbralReaper@users.noreply.github.com> Co-authored-by: SariusSkelrets <68650913+SariusSkelrets@users.noreply.github.com> Co-authored-by: Fosheze <50811445+Fosheze@users.noreply.github.com> Co-authored-by: Lamandus <33199510+Lamandus@users.noreply.github.com> Co-authored-by: Curtis Merrill <curtis.r.merrill@gmail.com> Co-authored-by: NeviNovat <51816321+NeviNovat@users.noreply.github.com> Co-authored-by: Karol1223 <68503002+Karol1223@users.noreply.github.com> Co-authored-by: Hirmuolio <22011552+Hirmuolio@users.noreply.github.com> Co-authored-by: Charlie Gardai <32105250+Moltenhead@users.noreply.github.com> Co-authored-by: Mom-Bun <43492737+Mom-Bun@users.noreply.github.com> Co-authored-by: OromisElf <oromis.der.lehrer.eragons@freenet.de> Co-authored-by: casswedson <58050969+casswedson@users.noreply.github.com> Co-authored-by: actual-nh <74678550+actual-nh@users.noreply.github.com> Co-authored-by: Fris0uman <sthapplz@gmail.com> Co-authored-by: Ramza13 <52087122+Ramza13@users.noreply.github.com> Co-authored-by: LyleSY <lyle.sollayates@Gmail.com> Co-authored-by: FuelType-Memes <42695732+FuelType-Memes@users.noreply.github.com> Co-authored-by: Anton Burmistrov <Night_Pryanik@mail.ru> Co-authored-by: actual-nh <actual-nh@users.noreply.github.com> Co-authored-by: casswedson <nelson1003403634@gmail.com> Co-authored-by: akirashirosawa <38557723+akirashirosawa@users.noreply.github.com> Co-authored-by: anothersimulacrum <anothersimulacrum@gmail.com> Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
* Extend/Delete in requirements * Revert "Extend/Delete in requirements" This reverts commit 9da0eae. * Valentine Cards (#47438) * Add a proficiency for handloading, and a new profession (#47244) * Drug Dealer Profession (#47255) * Adds hallula, a type of bread popular in Bolivia and Chile * Arm mounted pouch (#46946) * Tazer drone iii (#47353) * Added Gelatin and Several Gelatin Based Recipes (#47080) * Content: bread in a can (#45680) * New random mission (#44999) * Mycus fruit Juice (#44952) * Milleable corn (#46254) * Talk Tag Additions (#47010) * Fix typo in Valentines Card (#47583) * (CrazyCataclysm) Crazy Hallucinations (#47386) * Mealgurb (#47685) * Add duct tape blindfold for old reciepe plus tweaks for reciepe (#47527) * Prepare npc, spell, character, and item for new ai (#47207) * Make acetylene torch cut metal walls. (#46255) * Added disassembly recipes for several items (#46316) * Celsius temperature for freezing point (#47028) * Stand up peek (#47257) * [AFTERSHOCK] Basic Ballistic Weapons (#47559) * makes glass walls and glass doors constructable (#47692) * Crackers as bread and jam&cheese sandwich (#47649) * [Aftershock] misc typograpical fixes (#47783) * Tweaks for teas (#47848) * Have travis run for 0.F-dev Currently, .travis.yml has a 'development' branch specified as one to run tests for; the current equivalent is the 0.F-dev branch. * Tweakes to copper and metal pipes. (#47825) * Fried eggs deluxe, sandwiches, and condiment list (#47786) * Homemade toastems, buttercream frosting and recipes (#47696) * Chocolate Cow don't drop "cow pies" * Remove unused FATIGUE energy source from spells * [Magiclysm] add owlbear origin snippet (#47752) * [Magiclysm] add lesser banishment spell, buff greater banishment (#47537) * Unhardcode bio_heatsink and bio_climate * Hunting lodge Location (#44378) * fungal evolution (#47247) * Add book strap carrier (#47665) * Partial mine jsonify; new zombie miner (#47790) * Moved mine_entrance OMT from the list of hardcoded locations to industial locations Also removed mine_shaft OMT and replaced it with mine_shaft_middle and mine_shaft_lower OMTs. Also added mine_entrance_roof OMT. * Added mine_entrance and mine_shaft to the list of obsoleted terrains * Added a zombie miner and its death drops * Created a json-version of mine entrance and its roof * Created a json-version of mine shaft (middle and lower variants) * Changed overmap special definition of a mine to include new json chunks * Applied migration of hardcoded mine_entrance and mine_shaft OMTs to new json variants * Made hardcoded mine chunks generate to the west of lower section of new mine shaft OMT Also removed mine_entrance and mine_shaft from the list of hardocoded mapgen. * Completely removed build_mine_room function as all mine rooms are now defined in json Also removed hardcoded generation of mine entrance and mine shaft. * Removed mentions of mine rooms from mapgen.h * Updated alt_map_key mod * Updated graphical overmap mod * Added missing harvest * Appease clang and constify * Quickfix * Appease clang one more time * Add 0.F-dev to matrix.yml (Getting 0.F-dev working with Travis appears to require additional settings by someone with permissions.) This change enables both pushes and pull requests of 0.F-dev to get checked by the General Matrix. As it is, if one bases a PR off of 0.F-dev, it doesn't get checked by Github. * 0.F-dev workflows (#47875) * Alter brown bread recipe to match canned version Fixes #47874. * Mine entrance expand (#47928) * Added mine_materials item group * Added Trolley vehicle * Expanded and tweaked above-ground and underground levels of mine entrance * [DinoMod] Mushroom Madness (#47907) * misc typograpical fixes * body pillow recipe makes makeshift body pillow now (#47917) * Traffic Bollards and an example of deployment (#48017) * add description for Uyen's missions * JSONize some trap features, replace trap int_id externs with string_ids (#47933) * JSONize trap sonar detectibility Add trap flags - just the same as normal flags, but for traps! Stick them in their own separate file to avoid confusion. * JSONize trap memorial messages light_snare and heavy_snare seem to no longer exist, or I couldn't find any reference to them but this and tilesets. Updated dissector trap message, and added a trap message to some traps (the hallway ones, one or two of the similar-but-not-the-same variants of existing traps). * JSONize trap temperature convection Not quite sure how to describe it, went the lazy route. * Move traps externs from int to string ids When loading the game without this content, these will now only give an error on the use of these, instead of at the end data loading for traps. Previously there were performance concerns with this, but this should be fine since #44261 - see #44500. tr_null must remain an int id, as it used in the string to int id conversion. This is fine, as it will always be loaded (it's in data/core). Move the ledge trap over to data/core as well, because everything will need the 'open space' trap. * Clean up character mutation gain a bit Reduce duplicated code. I presume there's a reason that set_mutations didn't just call set_mutation, and the only difference is that it doesn't do the cache updates till the end, so preserve that behaviour. * Allow CBMs to specify mutations that prevent installation. (#47822) * Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation. * Spiral mine jsonify (#48003) * prevent bell spam (#47987) * Note that vat is required for fermentation in vinegar brewing * Unhardcode ease of sleep * calorie test * Revert "calorie test" This reverts commit e535575. * Arcology Start Adding windows and entrances organization more mapgen organization and more overmaps Update arcology_ground.json Update arcology_ground.json Last of the gates Update arcology_gate_chunks.json city special and terrain chunks Update arcology_ground.json Update arcology_chunks.json Update data/mods/Aftershock/itemgroups/arcology_groups.json Update recipe_obsolete.json chunkening testing fixes Update arcology_ground.json Update arcology_ground.json fixes neverending fixes the lintening Update arcology_gate_chunks.json Update arcology_gate_chunks.json Update arcology_gate_chunks.json Can force spawn now but it is blank Update arcology_chunks.json 15 tons and whadya get reverses north and south Ready for testing Gates open Open and Close gates using console broken metal flooring * Open and Close * Lint * Apply suggestions from code review Co-authored-by: John Candlebury <johncandlebury@gmail.com> Co-authored-by: LaVeyanFiend <51099123+LaVeyanFiend@users.noreply.github.com> Co-authored-by: slimeboy460 <68845349+slimeboy460@users.noreply.github.com> Co-authored-by: ToxiClay <ToxiClay@users.noreply.github.com> Co-authored-by: Jamuro-g <76928284+Jamuro-g@users.noreply.github.com> Co-authored-by: Xenomorph-III <sam1998may@gmail.com> Co-authored-by: grawprog <77870049+grawprog@users.noreply.github.com> Co-authored-by: Xaleth <countolaf17@gmail.com> Co-authored-by: El-Jekozo <72350516+El-Jekozo@users.noreply.github.com> Co-authored-by: RobertoVGoulart <robertovgoulart@yahoo.com.br> Co-authored-by: Zukulini <dragon.fuego.yo@gmail.com> Co-authored-by: klorpa <30924131+klorpa@users.noreply.github.com> Co-authored-by: UmbralReaper <67179462+UmbralReaper@users.noreply.github.com> Co-authored-by: SariusSkelrets <68650913+SariusSkelrets@users.noreply.github.com> Co-authored-by: Fosheze <50811445+Fosheze@users.noreply.github.com> Co-authored-by: Lamandus <33199510+Lamandus@users.noreply.github.com> Co-authored-by: Curtis Merrill <curtis.r.merrill@gmail.com> Co-authored-by: NeviNovat <51816321+NeviNovat@users.noreply.github.com> Co-authored-by: Karol1223 <68503002+Karol1223@users.noreply.github.com> Co-authored-by: Hirmuolio <22011552+Hirmuolio@users.noreply.github.com> Co-authored-by: Charlie Gardai <32105250+Moltenhead@users.noreply.github.com> Co-authored-by: Mom-Bun <43492737+Mom-Bun@users.noreply.github.com> Co-authored-by: OromisElf <oromis.der.lehrer.eragons@freenet.de> Co-authored-by: casswedson <58050969+casswedson@users.noreply.github.com> Co-authored-by: actual-nh <74678550+actual-nh@users.noreply.github.com> Co-authored-by: Fris0uman <sthapplz@gmail.com> Co-authored-by: Ramza13 <52087122+Ramza13@users.noreply.github.com> Co-authored-by: LyleSY <lyle.sollayates@Gmail.com> Co-authored-by: FuelType-Memes <42695732+FuelType-Memes@users.noreply.github.com> Co-authored-by: Anton Burmistrov <Night_Pryanik@mail.ru> Co-authored-by: actual-nh <actual-nh@users.noreply.github.com> Co-authored-by: casswedson <nelson1003403634@gmail.com> Co-authored-by: akirashirosawa <38557723+akirashirosawa@users.noreply.github.com> Co-authored-by: anothersimulacrum <anothersimulacrum@gmail.com> Co-authored-by: Jeremy Rose <nornagon@nornagon.net> Co-authored-by: John Candlebury <johncandlebury@gmail.com>
* Extend/Delete in requirements * Revert "Extend/Delete in requirements" This reverts commit 9da0eae. * Valentine Cards (CleverRaven#47438) * Add a proficiency for handloading, and a new profession (CleverRaven#47244) * Drug Dealer Profession (CleverRaven#47255) * Adds hallula, a type of bread popular in Bolivia and Chile * Arm mounted pouch (CleverRaven#46946) * Tazer drone iii (CleverRaven#47353) * Added Gelatin and Several Gelatin Based Recipes (CleverRaven#47080) * Content: bread in a can (CleverRaven#45680) * New random mission (CleverRaven#44999) * Mycus fruit Juice (CleverRaven#44952) * Milleable corn (CleverRaven#46254) * Talk Tag Additions (CleverRaven#47010) * Fix typo in Valentines Card (CleverRaven#47583) * (CrazyCataclysm) Crazy Hallucinations (CleverRaven#47386) * Mealgurb (CleverRaven#47685) * Add duct tape blindfold for old reciepe plus tweaks for reciepe (CleverRaven#47527) * Prepare npc, spell, character, and item for new ai (CleverRaven#47207) * Make acetylene torch cut metal walls. (CleverRaven#46255) * Added disassembly recipes for several items (CleverRaven#46316) * Celsius temperature for freezing point (CleverRaven#47028) * Stand up peek (CleverRaven#47257) * [AFTERSHOCK] Basic Ballistic Weapons (CleverRaven#47559) * makes glass walls and glass doors constructable (CleverRaven#47692) * Crackers as bread and jam&cheese sandwich (CleverRaven#47649) * [Aftershock] misc typograpical fixes (CleverRaven#47783) * Tweaks for teas (CleverRaven#47848) * Have travis run for 0.F-dev Currently, .travis.yml has a 'development' branch specified as one to run tests for; the current equivalent is the 0.F-dev branch. * Tweakes to copper and metal pipes. (CleverRaven#47825) * Fried eggs deluxe, sandwiches, and condiment list (CleverRaven#47786) * Homemade toastems, buttercream frosting and recipes (CleverRaven#47696) * Chocolate Cow don't drop "cow pies" * Remove unused FATIGUE energy source from spells * [Magiclysm] add owlbear origin snippet (CleverRaven#47752) * [Magiclysm] add lesser banishment spell, buff greater banishment (CleverRaven#47537) * Unhardcode bio_heatsink and bio_climate * Hunting lodge Location (CleverRaven#44378) * fungal evolution (CleverRaven#47247) * Add book strap carrier (CleverRaven#47665) * Partial mine jsonify; new zombie miner (CleverRaven#47790) * Moved mine_entrance OMT from the list of hardcoded locations to industial locations Also removed mine_shaft OMT and replaced it with mine_shaft_middle and mine_shaft_lower OMTs. Also added mine_entrance_roof OMT. * Added mine_entrance and mine_shaft to the list of obsoleted terrains * Added a zombie miner and its death drops * Created a json-version of mine entrance and its roof * Created a json-version of mine shaft (middle and lower variants) * Changed overmap special definition of a mine to include new json chunks * Applied migration of hardcoded mine_entrance and mine_shaft OMTs to new json variants * Made hardcoded mine chunks generate to the west of lower section of new mine shaft OMT Also removed mine_entrance and mine_shaft from the list of hardocoded mapgen. * Completely removed build_mine_room function as all mine rooms are now defined in json Also removed hardcoded generation of mine entrance and mine shaft. * Removed mentions of mine rooms from mapgen.h * Updated alt_map_key mod * Updated graphical overmap mod * Added missing harvest * Appease clang and constify * Quickfix * Appease clang one more time * Add 0.F-dev to matrix.yml (Getting 0.F-dev working with Travis appears to require additional settings by someone with permissions.) This change enables both pushes and pull requests of 0.F-dev to get checked by the General Matrix. As it is, if one bases a PR off of 0.F-dev, it doesn't get checked by Github. * 0.F-dev workflows (CleverRaven#47875) * Alter brown bread recipe to match canned version Fixes CleverRaven#47874. * Mine entrance expand (CleverRaven#47928) * Added mine_materials item group * Added Trolley vehicle * Expanded and tweaked above-ground and underground levels of mine entrance * [DinoMod] Mushroom Madness (CleverRaven#47907) * misc typograpical fixes * body pillow recipe makes makeshift body pillow now (CleverRaven#47917) * Traffic Bollards and an example of deployment (CleverRaven#48017) * add description for Uyen's missions * JSONize some trap features, replace trap int_id externs with string_ids (CleverRaven#47933) * JSONize trap sonar detectibility Add trap flags - just the same as normal flags, but for traps! Stick them in their own separate file to avoid confusion. * JSONize trap memorial messages light_snare and heavy_snare seem to no longer exist, or I couldn't find any reference to them but this and tilesets. Updated dissector trap message, and added a trap message to some traps (the hallway ones, one or two of the similar-but-not-the-same variants of existing traps). * JSONize trap temperature convection Not quite sure how to describe it, went the lazy route. * Move traps externs from int to string ids When loading the game without this content, these will now only give an error on the use of these, instead of at the end data loading for traps. Previously there were performance concerns with this, but this should be fine since CleverRaven#44261 - see CleverRaven#44500. tr_null must remain an int id, as it used in the string to int id conversion. This is fine, as it will always be loaded (it's in data/core). Move the ledge trap over to data/core as well, because everything will need the 'open space' trap. * Clean up character mutation gain a bit Reduce duplicated code. I presume there's a reason that set_mutations didn't just call set_mutation, and the only difference is that it doesn't do the cache updates till the end, so preserve that behaviour. * Allow CBMs to specify mutations that prevent installation. (CleverRaven#47822) * Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation. * Spiral mine jsonify (CleverRaven#48003) * prevent bell spam (CleverRaven#47987) * Note that vat is required for fermentation in vinegar brewing * Unhardcode ease of sleep * calorie test * Revert "calorie test" This reverts commit e535575. * Arcology Start Adding windows and entrances organization more mapgen organization and more overmaps Update arcology_ground.json Update arcology_ground.json Last of the gates Update arcology_gate_chunks.json city special and terrain chunks Update arcology_ground.json Update arcology_chunks.json Update data/mods/Aftershock/itemgroups/arcology_groups.json Update recipe_obsolete.json chunkening testing fixes Update arcology_ground.json Update arcology_ground.json fixes neverending fixes the lintening Update arcology_gate_chunks.json Update arcology_gate_chunks.json Update arcology_gate_chunks.json Can force spawn now but it is blank Update arcology_chunks.json 15 tons and whadya get reverses north and south Ready for testing Gates open Open and Close gates using console broken metal flooring * Open and Close * Lint * Apply suggestions from code review Co-authored-by: John Candlebury <johncandlebury@gmail.com> Co-authored-by: LaVeyanFiend <51099123+LaVeyanFiend@users.noreply.github.com> Co-authored-by: slimeboy460 <68845349+slimeboy460@users.noreply.github.com> Co-authored-by: ToxiClay <ToxiClay@users.noreply.github.com> Co-authored-by: Jamuro-g <76928284+Jamuro-g@users.noreply.github.com> Co-authored-by: Xenomorph-III <sam1998may@gmail.com> Co-authored-by: grawprog <77870049+grawprog@users.noreply.github.com> Co-authored-by: Xaleth <countolaf17@gmail.com> Co-authored-by: El-Jekozo <72350516+El-Jekozo@users.noreply.github.com> Co-authored-by: RobertoVGoulart <robertovgoulart@yahoo.com.br> Co-authored-by: Zukulini <dragon.fuego.yo@gmail.com> Co-authored-by: klorpa <30924131+klorpa@users.noreply.github.com> Co-authored-by: UmbralReaper <67179462+UmbralReaper@users.noreply.github.com> Co-authored-by: SariusSkelrets <68650913+SariusSkelrets@users.noreply.github.com> Co-authored-by: Fosheze <50811445+Fosheze@users.noreply.github.com> Co-authored-by: Lamandus <33199510+Lamandus@users.noreply.github.com> Co-authored-by: Curtis Merrill <curtis.r.merrill@gmail.com> Co-authored-by: NeviNovat <51816321+NeviNovat@users.noreply.github.com> Co-authored-by: Karol1223 <68503002+Karol1223@users.noreply.github.com> Co-authored-by: Hirmuolio <22011552+Hirmuolio@users.noreply.github.com> Co-authored-by: Charlie Gardai <32105250+Moltenhead@users.noreply.github.com> Co-authored-by: Mom-Bun <43492737+Mom-Bun@users.noreply.github.com> Co-authored-by: OromisElf <oromis.der.lehrer.eragons@freenet.de> Co-authored-by: casswedson <58050969+casswedson@users.noreply.github.com> Co-authored-by: actual-nh <74678550+actual-nh@users.noreply.github.com> Co-authored-by: Fris0uman <sthapplz@gmail.com> Co-authored-by: Ramza13 <52087122+Ramza13@users.noreply.github.com> Co-authored-by: LyleSY <lyle.sollayates@Gmail.com> Co-authored-by: FuelType-Memes <42695732+FuelType-Memes@users.noreply.github.com> Co-authored-by: Anton Burmistrov <Night_Pryanik@mail.ru> Co-authored-by: actual-nh <actual-nh@users.noreply.github.com> Co-authored-by: casswedson <nelson1003403634@gmail.com> Co-authored-by: akirashirosawa <38557723+akirashirosawa@users.noreply.github.com> Co-authored-by: anothersimulacrum <anothersimulacrum@gmail.com> Co-authored-by: Jeremy Rose <nornagon@nornagon.net> Co-authored-by: John Candlebury <johncandlebury@gmail.com>
* Extend/Delete in requirements * Revert "Extend/Delete in requirements" This reverts commit 9da0eae. * Valentine Cards (#47438) * Add a proficiency for handloading, and a new profession (#47244) * Drug Dealer Profession (#47255) * Adds hallula, a type of bread popular in Bolivia and Chile * Arm mounted pouch (#46946) * Tazer drone iii (#47353) * Added Gelatin and Several Gelatin Based Recipes (#47080) * Content: bread in a can (#45680) * New random mission (#44999) * Mycus fruit Juice (#44952) * Milleable corn (#46254) * Talk Tag Additions (#47010) * Fix typo in Valentines Card (#47583) * (CrazyCataclysm) Crazy Hallucinations (#47386) * Mealgurb (#47685) * Add duct tape blindfold for old reciepe plus tweaks for reciepe (#47527) * Prepare npc, spell, character, and item for new ai (#47207) * Make acetylene torch cut metal walls. (#46255) * Added disassembly recipes for several items (#46316) * Celsius temperature for freezing point (#47028) * Stand up peek (#47257) * [AFTERSHOCK] Basic Ballistic Weapons (#47559) * makes glass walls and glass doors constructable (#47692) * Crackers as bread and jam&cheese sandwich (#47649) * [Aftershock] misc typograpical fixes (#47783) * Tweaks for teas (#47848) * Have travis run for 0.F-dev Currently, .travis.yml has a 'development' branch specified as one to run tests for; the current equivalent is the 0.F-dev branch. * Tweakes to copper and metal pipes. (#47825) * Fried eggs deluxe, sandwiches, and condiment list (#47786) * Homemade toastems, buttercream frosting and recipes (#47696) * Chocolate Cow don't drop "cow pies" * Remove unused FATIGUE energy source from spells * [Magiclysm] add owlbear origin snippet (#47752) * [Magiclysm] add lesser banishment spell, buff greater banishment (#47537) * Unhardcode bio_heatsink and bio_climate * Hunting lodge Location (#44378) * fungal evolution (#47247) * Add book strap carrier (#47665) * Partial mine jsonify; new zombie miner (#47790) * Moved mine_entrance OMT from the list of hardcoded locations to industial locations Also removed mine_shaft OMT and replaced it with mine_shaft_middle and mine_shaft_lower OMTs. Also added mine_entrance_roof OMT. * Added mine_entrance and mine_shaft to the list of obsoleted terrains * Added a zombie miner and its death drops * Created a json-version of mine entrance and its roof * Created a json-version of mine shaft (middle and lower variants) * Changed overmap special definition of a mine to include new json chunks * Applied migration of hardcoded mine_entrance and mine_shaft OMTs to new json variants * Made hardcoded mine chunks generate to the west of lower section of new mine shaft OMT Also removed mine_entrance and mine_shaft from the list of hardocoded mapgen. * Completely removed build_mine_room function as all mine rooms are now defined in json Also removed hardcoded generation of mine entrance and mine shaft. * Removed mentions of mine rooms from mapgen.h * Updated alt_map_key mod * Updated graphical overmap mod * Added missing harvest * Appease clang and constify * Quickfix * Appease clang one more time * Add 0.F-dev to matrix.yml (Getting 0.F-dev working with Travis appears to require additional settings by someone with permissions.) This change enables both pushes and pull requests of 0.F-dev to get checked by the General Matrix. As it is, if one bases a PR off of 0.F-dev, it doesn't get checked by Github. * 0.F-dev workflows (#47875) * Alter brown bread recipe to match canned version Fixes #47874. * Mine entrance expand (#47928) * Added mine_materials item group * Added Trolley vehicle * Expanded and tweaked above-ground and underground levels of mine entrance * [DinoMod] Mushroom Madness (#47907) * misc typograpical fixes * body pillow recipe makes makeshift body pillow now (#47917) * Traffic Bollards and an example of deployment (#48017) * add description for Uyen's missions * JSONize some trap features, replace trap int_id externs with string_ids (#47933) * JSONize trap sonar detectibility Add trap flags - just the same as normal flags, but for traps! Stick them in their own separate file to avoid confusion. * JSONize trap memorial messages light_snare and heavy_snare seem to no longer exist, or I couldn't find any reference to them but this and tilesets. Updated dissector trap message, and added a trap message to some traps (the hallway ones, one or two of the similar-but-not-the-same variants of existing traps). * JSONize trap temperature convection Not quite sure how to describe it, went the lazy route. * Move traps externs from int to string ids When loading the game without this content, these will now only give an error on the use of these, instead of at the end data loading for traps. Previously there were performance concerns with this, but this should be fine since #44261 - see #44500. tr_null must remain an int id, as it used in the string to int id conversion. This is fine, as it will always be loaded (it's in data/core). Move the ledge trap over to data/core as well, because everything will need the 'open space' trap. * Clean up character mutation gain a bit Reduce duplicated code. I presume there's a reason that set_mutations didn't just call set_mutation, and the only difference is that it doesn't do the cache updates till the end, so preserve that behaviour. * Allow CBMs to specify mutations that prevent installation. (#47822) * Move CBM installation checks to Character Reduce code duplication, encapsulate things better, and make this available outside of the inventory menus. * Allow mutations to prevent installing CBMs Bionics can currently cancel mutations when installed, but can't have mutations prevent installation. * Spiral mine jsonify (#48003) * prevent bell spam (#47987) * Note that vat is required for fermentation in vinegar brewing * Unhardcode ease of sleep * calorie test * Revert "calorie test" This reverts commit e535575. * Reuben Sandwiches * Update recipe_food.json Co-authored-by: LaVeyanFiend <51099123+LaVeyanFiend@users.noreply.github.com> Co-authored-by: slimeboy460 <68845349+slimeboy460@users.noreply.github.com> Co-authored-by: ToxiClay <ToxiClay@users.noreply.github.com> Co-authored-by: Jamuro-g <76928284+Jamuro-g@users.noreply.github.com> Co-authored-by: Xenomorph-III <sam1998may@gmail.com> Co-authored-by: grawprog <77870049+grawprog@users.noreply.github.com> Co-authored-by: Xaleth <countolaf17@gmail.com> Co-authored-by: El-Jekozo <72350516+El-Jekozo@users.noreply.github.com> Co-authored-by: RobertoVGoulart <robertovgoulart@yahoo.com.br> Co-authored-by: Zukulini <dragon.fuego.yo@gmail.com> Co-authored-by: klorpa <30924131+klorpa@users.noreply.github.com> Co-authored-by: UmbralReaper <67179462+UmbralReaper@users.noreply.github.com> Co-authored-by: SariusSkelrets <68650913+SariusSkelrets@users.noreply.github.com> Co-authored-by: Fosheze <50811445+Fosheze@users.noreply.github.com> Co-authored-by: Lamandus <33199510+Lamandus@users.noreply.github.com> Co-authored-by: Curtis Merrill <curtis.r.merrill@gmail.com> Co-authored-by: NeviNovat <51816321+NeviNovat@users.noreply.github.com> Co-authored-by: Karol1223 <68503002+Karol1223@users.noreply.github.com> Co-authored-by: Hirmuolio <22011552+Hirmuolio@users.noreply.github.com> Co-authored-by: Charlie Gardai <32105250+Moltenhead@users.noreply.github.com> Co-authored-by: Mom-Bun <43492737+Mom-Bun@users.noreply.github.com> Co-authored-by: OromisElf <oromis.der.lehrer.eragons@freenet.de> Co-authored-by: casswedson <58050969+casswedson@users.noreply.github.com> Co-authored-by: actual-nh <74678550+actual-nh@users.noreply.github.com> Co-authored-by: Fris0uman <sthapplz@gmail.com> Co-authored-by: Ramza13 <52087122+Ramza13@users.noreply.github.com> Co-authored-by: LyleSY <lyle.sollayates@Gmail.com> Co-authored-by: FuelType-Memes <42695732+FuelType-Memes@users.noreply.github.com> Co-authored-by: Anton Burmistrov <Night_Pryanik@mail.ru> Co-authored-by: actual-nh <actual-nh@users.noreply.github.com> Co-authored-by: casswedson <nelson1003403634@gmail.com> Co-authored-by: akirashirosawa <38557723+akirashirosawa@users.noreply.github.com> Co-authored-by: anothersimulacrum <anothersimulacrum@gmail.com> Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Summary
Infrastructure "Allow CBMs to specify mutations that prevent installation"
Purpose of change
Resolves #46013
#47117 (comment)
Describe the solution
First commit: Move code around to make this slightly cleaner.
Second commit: Add a set of conflicting mutations to bionics, add it to bionic rejection reasons, prevent mutating it.
See commits for more detail.
Testing
Try installing CBMs on the autodoc, with various reasons for them to be rejected. See that they are appropriately rejected.
Make a CBM require
HUGE
, mutate it, and see you cannot install the CBM.Remove the huge mutation, install the CBM, and then chug ursine serum. See that you never mutate
Freakishly Huge
.(I did the above with the Alarm System CBM here).