diff --git a/code/__defines/atmos.dm b/code/__defines/atmos.dm index ec5511eec1a..334ef0e45d3 100644 --- a/code/__defines/atmos.dm +++ b/code/__defines/atmos.dm @@ -90,6 +90,8 @@ #define ATMOSTANK_NITROGEN 90000 // A lot of N2 is needed to produce air mix, that's why we keep 90MPa of it #define ATMOSTANK_OXYGEN 50000 // O2 is also important for airmix, but not as much as N2 as it's only 21% of it. #define ATMOSTANK_CO2 60000 // CO2 is used for smaller vessels as the primary fuel propellant, and we need lots to stick around. +#define ATMOSTANK_PHORON 25000 +#define ATMOSTANK_PHORON_FUEL 15000 #define ATMOSTANK_HYDROGEN 50000 #define ATMOSTANK_HYDROGEN_FUEL 25000 #define ATMOSTANK_NITROUSOXIDE 10000 // N2O doesn't have a real useful use, i guess it's on station just to allow refilling of sec's riot control canisters? diff --git a/code/datums/supplypacks/atmospherics.dm b/code/datums/supplypacks/atmospherics.dm index 1f44350c6c7..276debfe349 100644 --- a/code/datums/supplypacks/atmospherics.dm +++ b/code/datums/supplypacks/atmospherics.dm @@ -56,6 +56,13 @@ containername = "nitrogen canister crate" containertype = /obj/structure/largecrate +/decl/hierarchy/supply_pack/atmospherics/canister_phoron + name = "Gas - Phoron gas canister" + contains = list(/obj/machinery/portable_atmospherics/canister/phoron) + containername = "phoron gas canister crate" + containertype = /obj/structure/closet/crate/secure/large + access = access_atmospherics + /decl/hierarchy/supply_pack/atmospherics/canister_hydrogen name = "Gas - Hydrogen canister" contains = list(/obj/machinery/portable_atmospherics/canister/hydrogen) @@ -82,6 +89,11 @@ contains = list(/obj/item/tank/hydrogen = 4) containername = "hydrogen tank crate" +/decl/hierarchy/supply_pack/atmospherics/phoron + name = "Gas - Phoron tanks" + contains = list(/obj/item/tank/phoron = 3) + containername = "phoron tank crate" + /decl/hierarchy/supply_pack/atmospherics/voidsuit name = "EVA - Atmospherics voidsuit" contains = list(/obj/item/clothing/suit/space/void/atmos/alt, diff --git a/code/datums/supplypacks/materials.dm b/code/datums/supplypacks/materials.dm index 687c8d925d4..75a103717f3 100644 --- a/code/datums/supplypacks/materials.dm +++ b/code/datums/supplypacks/materials.dm @@ -77,6 +77,11 @@ contains = list(/obj/item/stack/material/sheet/reinforced/mapped/ocp/ten) containername = "osmium carbide plasteel sheets crate" +/decl/hierarchy/supply_pack/materials/phoron10 + name = "10 phoron sheets" + contains = list(/obj/item/stack/material/crystal/mapped/phoron/ten) + containername = "phoron sheets crate" + /decl/hierarchy/supply_pack/materials/gold10 name = "10 gold sheets" contains = list(/obj/item/stack/material/ingot/mapped/gold/ten) diff --git a/code/datums/trading/traders/ai.dm b/code/datums/trading/traders/ai.dm index 2166a7ba1cf..bb9d5c5d31f 100644 --- a/code/datums/trading/traders/ai.dm +++ b/code/datums/trading/traders/ai.dm @@ -81,6 +81,7 @@ They sell generic supplies and ask for generic supplies. /obj/item/stack/material/brick/mapped/marble = TRADER_THIS_TYPE, /obj/item/stack/material/gemstone/mapped/diamond = TRADER_THIS_TYPE, /obj/item/stack/material/puck/mapped/uranium = TRADER_THIS_TYPE, + /obj/item/stack/material/crystal/mapped/phoron = TRADER_THIS_TYPE, /obj/item/stack/material/panel/mapped/plastic = TRADER_THIS_TYPE, /obj/item/stack/material/ingot/mapped/gold = TRADER_THIS_TYPE, /obj/item/stack/material/ingot/mapped/silver = TRADER_THIS_TYPE, diff --git a/code/game/gamemodes/objectives/objective_heist.dm b/code/game/gamemodes/objectives/objective_heist.dm index c90e5686d8a..26fa59d055e 100644 --- a/code/game/gamemodes/objectives/objective_heist.dm +++ b/code/game/gamemodes/objectives/objective_heist.dm @@ -69,6 +69,7 @@ /decl/material/solid/metal/steel = 300, /decl/material/solid/glass = 200, /decl/material/solid/metal/plasteel = 100, + /decl/material/solid/phoron = 100, /decl/material/solid/metal/silver = 50, /decl/material/solid/metal/gold = 20, /decl/material/solid/metal/uranium = 20, diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 411990a7465..5ec349be144 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -6,14 +6,16 @@ ) var/list/dangerous_gasses = list( /decl/material/gas/carbon_dioxide = TRUE, - /decl/material/gas/chlorine = TRUE + /decl/material/gas/chlorine = TRUE, + /decl/material/solid/phoron = TRUE ) var/list/filter_gasses = list( /decl/material/gas/oxygen, /decl/material/gas/nitrogen, /decl/material/gas/carbon_dioxide, /decl/material/gas/nitrous_oxide, - /decl/material/gas/chlorine + /decl/material/gas/chlorine, + /decl/material/solid/phoron, ) //////////////////////////////////////// diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index b682ea048e6..983410a5a70 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -63,6 +63,12 @@ canister_color = "purple" can_label = FALSE +/obj/machinery/portable_atmospherics/canister/phoron + name = "\improper Canister \[Phoron\]" + icon_state = "orange" + canister_color = "orange" + can_label = 0 + /obj/machinery/portable_atmospherics/canister/carbon_dioxide name = "\improper CO2 canister" icon_state = "black" @@ -95,6 +101,9 @@ /obj/machinery/portable_atmospherics/canister/empty/oxygen icon_state = "blue" canister_type = /obj/machinery/portable_atmospherics/canister/oxygen +/obj/machinery/portable_atmospherics/canister/empty/phoron + icon_state = "orange" + canister_type = /obj/machinery/portable_atmospherics/canister/phoron /obj/machinery/portable_atmospherics/canister/empty/nitrogen icon_state = "red" canister_type = /obj/machinery/portable_atmospherics/canister/nitrogen @@ -293,12 +302,12 @@ var/list/colors = list( "\[N2O\]" = "redws", "\[N2\]" = "red", + "\[Phoron\]" = "orange", "\[O2\]" = "blue", "\[CO2\]" = "black", "\[H2\]" = "purple", "\[Air\]" = "grey", - "\[CAUTION\]" = "yellow", - "\[Explosive\]" = "orange" + "\[CAUTION\]" = "yellow" ) var/label = input(user, "Choose canister label", "Gas canister") as null|anything in colors if (label && CanUseTopic(user, state)) @@ -313,6 +322,11 @@ return STATUS_CLOSE return ..() +/obj/machinery/portable_atmospherics/canister/phoron/Initialize() + . = ..() + air_contents.adjust_gas(/decl/material/solid/phoron, MolesForPressure()) + queue_icon_update() + /obj/machinery/portable_atmospherics/canister/oxygen/Initialize() . = ..() air_contents.adjust_gas(/decl/material/gas/oxygen, MolesForPressure()) @@ -367,6 +381,11 @@ air_contents.adjust_gas(/decl/material/gas/carbon_dioxide, MolesForPressure()) update_icon() +/obj/machinery/portable_atmospherics/canister/phoron/engine_setup/Initialize() + . = ..() + src.air_contents.adjust_gas(/decl/material/solid/phoron, MolesForPressure()) + queue_icon_update() + /obj/machinery/portable_atmospherics/canister/hydrogen/engine_setup/Initialize() . = ..() air_contents.adjust_gas(/decl/material/gas/hydrogen, MolesForPressure()) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 20e457d8ffe..ade3c06f253 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -214,7 +214,8 @@ require_module = 1 material = /decl/material/solid/metal/steel matter = list( - /decl/material/solid/metal/silver = MATTER_AMOUNT_REINFORCEMENT, + /decl/material/solid/phoron = MATTER_AMOUNT_REINFORCEMENT, + /decl/material/solid/metal/silver = MATTER_AMOUNT_TRACE, /decl/material/solid/metal/gold = MATTER_AMOUNT_TRACE ) origin_tech = @'{"materials":4,"engineering":4,"programming":3}' diff --git a/code/game/objects/items/weapons/grenades/decompiler.dm b/code/game/objects/items/weapons/grenades/decompiler.dm index 2f1ecc1d35f..e3918357a66 100644 --- a/code/game/objects/items/weapons/grenades/decompiler.dm +++ b/code/game/objects/items/weapons/grenades/decompiler.dm @@ -4,7 +4,8 @@ icon = 'icons/obj/items/grenades/delivery.dmi' origin_tech = @'{"materials":3,"magnets":2,"exoticmatter":3}' matter = list( - /decl/material/solid/exotic_matter = MATTER_AMOUNT_TRACE + /decl/material/solid/phoron = MATTER_AMOUNT_REINFORCEMENT, + /decl/material/solid/supermatter = MATTER_AMOUNT_TRACE ) /obj/item/grenade/decompiler/detonate() diff --git a/code/game/objects/items/weapons/material/coins.dm b/code/game/objects/items/weapons/material/coins.dm index c0e8624e632..062d6d556f1 100644 --- a/code/game/objects/items/weapons/material/coins.dm +++ b/code/game/objects/items/weapons/material/coins.dm @@ -112,3 +112,6 @@ /obj/item/coin/platinum material = /decl/material/solid/metal/platinum + +/obj/item/coin/phoron + material = /decl/material/solid/phoron \ No newline at end of file diff --git a/code/game/objects/items/weapons/material/twohanded.dm b/code/game/objects/items/weapons/material/twohanded.dm index f210cb3a9b8..c2739f71205 100644 --- a/code/game/objects/items/weapons/material/twohanded.dm +++ b/code/game/objects/items/weapons/material/twohanded.dm @@ -163,7 +163,7 @@ cable_color = COLOR_GREEN /obj/item/twohanded/spear/supermatter - material = /decl/material/solid/exotic_matter + material = /decl/material/solid/supermatter shaft_material = /decl/material/solid/organic/wood/ebony cable_color = COLOR_INDIGO diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 821efe92ddb..dd350661d48 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -53,7 +53,8 @@ material = /decl/material/solid/organic/plastic matter = list( /decl/material/solid/metal/gold = MATTER_AMOUNT_REINFORCEMENT, - /decl/material/solid/metal/uranium = MATTER_AMOUNT_TRACE + /decl/material/solid/metal/uranium = MATTER_AMOUNT_TRACE, + /decl/material/solid/phoron = MATTER_AMOUNT_TRACE ) origin_tech = @'{"exoticmatter":5,"materials":6}' storage = /datum/storage/bag/trash/advanced diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm index 8fb5fc0abb8..37799950f37 100644 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -3,6 +3,7 @@ * Oxygen * Anesthetic * Air + * Phoron * Hydrogen * Emergency Oxygen */ @@ -35,6 +36,19 @@ starting_pressure = list(/decl/material/gas/oxygen = (6 ATM) * O2STANDARD, /decl/material/gas/nitrogen = (6 ATM) * N2STANDARD) volume = 180 +/* + * Phoron + */ +/obj/item/tank/phoron + name = "phoron tank" + desc = "Contains dangerous phoron. Do not inhale. Warning: extremely flammable." + icon = 'icons/obj/items/tanks/tank_greyscaled.dmi' + color = "#d3681a" + gauge_icon = null + obj_flags = OBJ_FLAG_CONDUCTIBLE + slot_flags = null //they have no straps! + starting_pressure = list(/decl/material/solid/phoron = 3*ONE_ATMOSPHERE) + /* * Hydrogen */ diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index 2fc73deaa51..259244446a8 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -513,7 +513,7 @@ var/global/list/global/tank_gauge_cache = list() . = ..() // Set up appearance/strings. - var/obj/item/tank/tank_copy = pick(typesof(/obj/item/tank/oxygen) + typesof(/obj/item/tank/hydrogen)) + var/obj/item/tank/tank_copy = pick(typesof(/obj/item/tank/oxygen) + typesof(/obj/item/tank/hydrogen) + typesof(/obj/item/tank/phoron)) name = initial(tank_copy.name) desc = initial(tank_copy.desc) icon = initial(tank_copy.icon) diff --git a/code/game/objects/random/subtypes/misc.dm b/code/game/objects/random/subtypes/misc.dm index f472d720a93..6591ccad327 100644 --- a/code/game/objects/random/subtypes/misc.dm +++ b/code/game/objects/random/subtypes/misc.dm @@ -182,7 +182,8 @@ /obj/item/coin/diamond = 2, /obj/item/coin/iron = 4, /obj/item/coin/uranium = 3, - /obj/item/coin/platinum = 1 + /obj/item/coin/platinum = 1, + /obj/item/coin/phoron = 1 ) return spawnable_choices @@ -355,6 +356,7 @@ /obj/item/stack/material/gemstone/mapped/diamond/ten = 7, /obj/item/stack/material/pane/mapped/rborosilicate/ten = 7, /obj/item/stack/material/brick/mapped/marble/ten = 8, + /obj/item/stack/material/crystal/mapped/phoron/ten = 7, /obj/item/stack/material/ingot/mapped/gold/ten = 7, /obj/item/stack/material/ingot/mapped/silver/ten = 7, /obj/item/stack/material/ingot/mapped/osmium/ten = 7, diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index 798d8f65c49..516555b112d 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -94,6 +94,10 @@ if(pickednum >= 10) SSmaterials.create_object(/decl/material/solid/metal/plasteel, src, rand(common_min, common_max)) + //Phoron (rare ore) + if(pickednum >= 15) + SSmaterials.create_object(/decl/material/solid/phoron, src, rand(common_min, common_max)) + //Silver (rare ore) if(pickednum >= 15) SSmaterials.create_object(/decl/material/solid/metal/silver, src, rand(rare_min, rare_max)) @@ -125,6 +129,7 @@ /obj/item/stack/material/pane/mapped/glass/fifty, /obj/item/stack/material/ingot/mapped/gold/fifty, /obj/item/stack/material/ingot/mapped/silver/fifty, + /obj/item/stack/material/crystal/mapped/phoron/fifty, /obj/item/stack/material/puck/mapped/uranium/fifty, /obj/item/stack/material/gemstone/mapped/diamond/fifty, /obj/item/stack/material/sheet/reinforced/mapped/plasteel/fifty, diff --git a/code/game/objects/structures/doors/_door.dm b/code/game/objects/structures/doors/_door.dm index 5d2c125fe20..dd93021d5e4 100644 --- a/code/game/objects/structures/doors/_door.dm +++ b/code/game/objects/structures/doors/_door.dm @@ -267,7 +267,7 @@ material = /decl/material/solid/organic/plastic /obj/structure/door/exotic_matter - material = /decl/material/solid/exotic_matter + material = /decl/material/solid/supermatter /obj/structure/door/shuttle material = /decl/material/solid/metal/steel diff --git a/code/game/objects/structures/mineral_bath.dm b/code/game/objects/structures/mineral_bath.dm index 14bb3ef3f23..36d3fe23a00 100644 --- a/code/game/objects/structures/mineral_bath.dm +++ b/code/game/objects/structures/mineral_bath.dm @@ -14,7 +14,7 @@ /obj/structure/mineral_bath/return_air() var/datum/gas_mixture/venus = new(CELL_VOLUME, SYNTH_HEAT_LEVEL_1 - 10) - venus.adjust_multi(/decl/material/gas/chlorine, MOLES_N2STANDARD, /decl/material/gas/hydrogen, MOLES_O2STANDARD) + venus.adjust_multi(/decl/material/gas/chlorine, MOLES_N2STANDARD, /decl/material/solid/phoron, MOLES_O2STANDARD) return venus /obj/structure/mineral_bath/attackby(var/obj/item/thing, var/mob/user) diff --git a/code/game/turfs/floors/subtypes/floor_reinforced.dm b/code/game/turfs/floors/subtypes/floor_reinforced.dm index 9715d8f49b9..dce17c7a44a 100644 --- a/code/game/turfs/floors/subtypes/floor_reinforced.dm +++ b/code/game/turfs/floors/subtypes/floor_reinforced.dm @@ -19,10 +19,16 @@ /turf/floor/reinforced/oxygen initial_gas = list(/decl/material/gas/oxygen = ATMOSTANK_OXYGEN) +/turf/floor/reinforced/phoron + initial_gas = list(/decl/material/solid/phoron = ATMOSTANK_PHORON) + /turf/floor/reinforced/nitrogen/engine name = "engine floor" initial_gas = list(/decl/material/gas/nitrogen = MOLES_N2STANDARD) +/turf/floor/reinforced/phoron/fuel + initial_gas = list(/decl/material/solid/phoron = ATMOSTANK_PHORON_FUEL) + /turf/floor/reinforced/hydrogen/fuel initial_gas = list(/decl/material/gas/hydrogen = ATMOSTANK_HYDROGEN_FUEL) diff --git a/code/game/turfs/walls/wall_types.dm b/code/game/turfs/walls/wall_types.dm index 06cf0c0f02b..fd6a1f61921 100644 --- a/code/game/turfs/walls/wall_types.dm +++ b/code/game/turfs/walls/wall_types.dm @@ -66,6 +66,11 @@ /turf/wall/plastic/facade girder_material = /decl/material/solid/organic/plastic +/turf/wall/phoron + color = "#e37108" + icon_state = "stone" + material = /decl/material/solid/phoron + /turf/wall/wood color = COLOR_BROWN icon_state = "wood" diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 6878930ff4a..ce5babec238 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -329,8 +329,8 @@ for(var/obj/machinery/rad_collector/Rad in SSmachines.machinery) if(Rad.anchored) if(!Rad.loaded_tank) - Rad.loaded_tank = new /obj/item/tank/hydrogen(Rad) - Rad.loaded_tank.air_contents.gas[/decl/material/gas/hydrogen] = 70 + Rad.loaded_tank = new /obj/item/tank/phoron(Rad) + Rad.loaded_tank.air_contents.gas[/decl/material/solid/phoron] = 70 Rad.drainratio = 0 if(!Rad.active) Rad.toggle_power() diff --git a/code/modules/atmospherics/atmos_primitives.dm b/code/modules/atmospherics/atmos_primitives.dm index 720b2ac3ff7..97b52fd7476 100644 --- a/code/modules/atmospherics/atmos_primitives.dm +++ b/code/modules/atmospherics/atmos_primitives.dm @@ -460,7 +460,7 @@ // - Is between 80 and 120kPa // - Has between 17% and 30% oxygen // - Has temperature between -10C and 50C -// - Has no or only minimal chlorine or N2O +// - Has no or only minimal phoron, chlorine, or N2O /proc/get_atmosphere_issues(datum/gas_mixture/atmosphere, var/returntext = 0) var/list/status = list() if(!atmosphere) @@ -478,12 +478,14 @@ // TODO: generalize to check for -all- unsafe gasses. // Gas concentration checks var/oxygen = 0 + var/phoron = 0 var/chlorine = 0 var/carbondioxide = 0 var/nitrousoxide = 0 var/hydrogen = 0 if(atmosphere.total_moles) // Division by zero prevention oxygen = (atmosphere.gas[/decl/material/gas/oxygen] / atmosphere.total_moles) * 100 // Percentage of the gas + phoron = (atmosphere.gas[/decl/material/solid/phoron] / atmosphere.total_moles) * 100 chlorine = (atmosphere.gas[/decl/material/gas/chlorine] / atmosphere.total_moles) * 100 carbondioxide = (atmosphere.gas[/decl/material/gas/carbon_dioxide] / atmosphere.total_moles) * 100 nitrousoxide = (atmosphere.gas[/decl/material/gas/nitrous_oxide] / atmosphere.total_moles) * 100 @@ -496,13 +498,15 @@ - if(chlorine > 0.1) // Toxic even in small amounts. + if(phoron > 0.1) // Toxic even in small amounts. + status.Add("Phoron contamination.") + if(chlorine > 0.1) // Ditto. status.Add("Chlorine contamination.") if(nitrousoxide > 0.1) // Probably slightly less dangerous but still. status.Add("N2O contamination.") - if(hydrogen > 2.5) // Not too dangerous, but flammable. + if(hydrogen > 2.5) // Not too dangerous, but flammable. status.Add("Hydrogen contamination.") - if(carbondioxide > 5) // Not as dangerous until very large amount is present. + if(carbondioxide > 5) // Not as dangerous until a very large amount is present. status.Add("CO2 concentration high.") diff --git a/code/modules/atmospherics/components/unary/tank.dm b/code/modules/atmospherics/components/unary/tank.dm index 29968bd9445..0dd84db0719 100644 --- a/code/modules/atmospherics/components/unary/tank.dm +++ b/code/modules/atmospherics/components/unary/tank.dm @@ -75,6 +75,11 @@ icon_state = "co2" filling = list(/decl/material/gas/carbon_dioxide = 1) +/obj/machinery/atmospherics/unary/tank/phoron + name = "Pressure Tank (Phoron)" + icon_state = "phoron" + filling = list(/decl/material/solid/phoron = 1) + /obj/machinery/atmospherics/unary/tank/nitrous_oxide name = "Pressure Tank (Nitrous Oxide)" icon_state = "n2o" diff --git a/code/modules/backgrounds/location/_location_events.dm b/code/modules/backgrounds/location/_location_events.dm index 4915d17ce11..b29597a0ca2 100644 --- a/code/modules/backgrounds/location/_location_events.dm +++ b/code/modules/backgrounds/location/_location_events.dm @@ -57,7 +57,7 @@ . = "A [pick("festival","week long celebration","day of revelry","planet-wide holiday")] has been declared on [location.name] by [pick("Governor","Commissioner","General","Commandant","Administrator")] [random_name(pick(MALE,FEMALE))] to celebrate [pick("the birth of their [pick("son","daughter")]","coming of age of their [pick("son","daughter")]","the pacification of rogue military cell","the apprehension of a violent criminal who had been terrorising the planet")]. Massive stocks of food and meat have been bought driving up prices across the planet." /decl/location_event/research_breakthrough/announce(var/decl/background_detail/location) - . = "A major breakthough in the field of [pick("exotic matter research","super-compressed materials","nano-augmentation","wormhole research","volatile power manipulation")] \ + . = "A major breakthough in the field of [pick("phoron research","super-compressed materials","nano-augmentation","wormhole research","volatile power manipulation")] \ was announced [pick("yesterday","a few days ago","last week","earlier this month")] by a private firm on [location.name]. \ [global.using_map.company_name] declined to comment as to whether this could impinge on profits." diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 053646a9f6a..08f92ee27e5 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -15,6 +15,7 @@ ARMOR_BIO = ARMOR_BIO_STRONG ) filtered_gases = list( + /decl/material/solid/phoron, /decl/material/gas/nitrous_oxide, /decl/material/gas/chlorine, /decl/material/gas/ammonia, diff --git a/code/modules/clothing/masks/smokable.dm b/code/modules/clothing/masks/smokable.dm index 631cd33521d..6748bf0f269 100644 --- a/code/modules/clothing/masks/smokable.dm +++ b/code/modules/clothing/masks/smokable.dm @@ -137,9 +137,10 @@ return lit = TRUE atom_damage_type = BURN - if(REAGENT_VOLUME(reagents, /decl/material/liquid/fuel)) // the fuel explodes + var/explosive_power = round(REAGENT_VOLUME(reagents, /decl/material/solid/phoron) / 2.5 + REAGENT_VOLUME(reagents, /decl/material/liquid/fuel) / 5, 1) + if(explosive_power > 0) var/datum/effect/effect/system/reagents_explosion/e = new() - e.set_up(round(REAGENT_VOLUME(reagents, /decl/material/liquid/fuel) / 5, 1), get_turf(src), 0, 0) + e.set_up(explosive_power, get_turf(src), 0, 0) e.start() qdel(src) return diff --git a/code/modules/clothing/spacesuits/rig/modules/combat.dm b/code/modules/clothing/spacesuits/rig/modules/combat.dm index a06b83ab8f6..f4f98e4ae1e 100644 --- a/code/modules/clothing/spacesuits/rig/modules/combat.dm +++ b/code/modules/clothing/spacesuits/rig/modules/combat.dm @@ -312,7 +312,7 @@ /decl/material/solid/fiberglass = MATTER_AMOUNT_REINFORCEMENT, /decl/material/solid/organic/plastic = MATTER_AMOUNT_TRACE, /decl/material/solid/metal/gold = MATTER_AMOUNT_TRACE, - /decl/material/solid/metal/uranium = MATTER_AMOUNT_TRACE + /decl/material/solid/phoron = MATTER_AMOUNT_TRACE ) /obj/item/rig_module/mounted/plasmacutter/engage(atom/target) diff --git a/code/modules/clothing/suits/armor/craftable.dm b/code/modules/clothing/suits/armor/craftable.dm index c73e38510fc..ddca0ec73ba 100644 --- a/code/modules/clothing/suits/armor/craftable.dm +++ b/code/modules/clothing/suits/armor/craftable.dm @@ -34,4 +34,4 @@ /obj/item/clothing/suit/armor/crafted/gold material = /decl/material/solid/metal/gold /obj/item/clothing/suit/armor/crafted/supermatter - material = /decl/material/solid/exotic_matter + material = /decl/material/solid/supermatter diff --git a/code/modules/codex/entries/atmospherics.dm b/code/modules/codex/entries/atmospherics.dm index ccc05138738..9111548f4ae 100644 --- a/code/modules/codex/entries/atmospherics.dm +++ b/code/modules/codex/entries/atmospherics.dm @@ -147,7 +147,7 @@ /datum/codex_entry/transfer_valve associated_paths = list(/obj/item/transfer_valve) mechanics_text = "This machine is used to merge the contents of two different gas tanks. Plug the tanks into the transfer, then open the valve to mix them together. You can also attach various assembly devices to trigger this process." - antag_text = "With a tank of hot hydrogen and cold oxygen, this benign little atmospheric device becomes an incredibly deadly bomb. You don't want to be anywhere near it when it goes off." + antag_text = "With a tank of hot fuel and cold oxygen, this benign little atmospheric device becomes an incredibly deadly bomb. You don't want to be anywhere near it when it goes off." disambiguator = "component" available_to_map_tech_level = MAP_TECH_LEVEL_SPACE diff --git a/code/modules/detectivework/tools/rag.dm b/code/modules/detectivework/tools/rag.dm index b92a4d1d6a9..7ed9f970151 100644 --- a/code/modules/detectivework/tools/rag.dm +++ b/code/modules/detectivework/tools/rag.dm @@ -181,6 +181,14 @@ return if(!can_ignite()) return + //also copied from matches + if(REAGENT_VOLUME(reagents, /decl/material/solid/phoron)) // the phoron explodes when exposed to fire + visible_message(SPAN_DANGER("\The [src] explodes!")) + var/datum/effect/effect/system/reagents_explosion/e = new() + e.set_up(round(REAGENT_VOLUME(reagents, /decl/material/solid/phoron) / 2.5, 1), get_turf(src), 0, 0) + e.start() + qdel(src) + return START_PROCESSING(SSobj, src) set_light(2, 1, "#e38f46") on_fire = 1 diff --git a/code/modules/games/cardemon.dm b/code/modules/games/cardemon.dm index 2838f3c6b92..5999cc379b9 100644 --- a/code/modules/games/cardemon.dm +++ b/code/modules/games/cardemon.dm @@ -20,7 +20,7 @@ else rarity = "Silver" - var/nam = pick("Death","Life","Plant","Leaf","Air","Earth","Fire","Water","Killer","Holy", "God", "Ordinary","Demon","Angel", "Mad", "Insane", "Metal", "Steel", "Secret") + var/nam = pick("Death","Life","Plant","Leaf","Air","Earth","Fire","Water","Killer","Holy", "God", "Ordinary","Demon","Angel", "Phoron", "Mad", "Insane", "Metal", "Steel", "Secret") var/nam2 = pick("Carp", "Corgi", "Cat", "Mouse", "Octopus", "Lizard", "Monkey", "Plant", "Duck", "Demon", "Spider", "Bird", "Shark", "Rock") P = new() diff --git a/code/modules/integrated_electronics/passive/power.dm b/code/modules/integrated_electronics/passive/power.dm index 8a5e9a6ccbe..b63528d1eec 100644 --- a/code/modules/integrated_electronics/passive/power.dm +++ b/code/modules/integrated_electronics/passive/power.dm @@ -88,7 +88,7 @@ name = "fuel cell" desc = "Produces electricity from chemicals." icon_state = "chemical_cell" - extended_desc = "This is effectively an internal beaker. It will consume and produce power from hydrogen, welding fuel, carbon,\ + extended_desc = "This is effectively an internal beaker. It will consume and produce power from phoron, hydrogen, welding fuel, carbon,\ ethanol, nutriment, and blood in order of decreasing efficiency. It will consume fuel only if the battery can take more energy." atom_flags = ATOM_FLAG_OPEN_CONTAINER complexity = 4 @@ -98,6 +98,7 @@ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH var/volume = 60 var/list/fuel = list( + /decl/material/solid/phoron = 50000, /decl/material/gas/hydrogen = 50000, /decl/material/gas/hydrogen/deuterium = 50000, /decl/material/gas/hydrogen/tritium = 50000, diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm index dff167e4919..d644eab71ef 100644 --- a/code/modules/integrated_electronics/subtypes/input.dm +++ b/code/modules/integrated_electronics/subtypes/input.dm @@ -1012,6 +1012,7 @@ "Silver" = IC_PINTYPE_NUMBER, "Gold" = IC_PINTYPE_NUMBER, "Diamond" = IC_PINTYPE_NUMBER, + "Solid Phoron" = IC_PINTYPE_NUMBER, "Uranium" = IC_PINTYPE_NUMBER, "Plasteel" = IC_PINTYPE_NUMBER, "Titanium" = IC_PINTYPE_NUMBER, @@ -1030,6 +1031,7 @@ /decl/material/solid/metal/silver, /decl/material/solid/metal/gold, /decl/material/solid/gemstone/diamond, + /decl/material/solid/phoron, /decl/material/solid/metal/uranium, /decl/material/solid/metal/plasteel, /decl/material/solid/metal/titanium, diff --git a/code/modules/materials/definitions/solids/materials_solid_exotic.dm b/code/modules/materials/definitions/solids/materials_solid_exotic.dm index 1d3448bdfed..d9af6625a13 100644 --- a/code/modules/materials/definitions/solids/materials_solid_exotic.dm +++ b/code/modules/materials/definitions/solids/materials_solid_exotic.dm @@ -31,7 +31,75 @@ exoplanet_rarity_plant = MAT_RARITY_EXOTIC exoplanet_rarity_gas = MAT_RARITY_NOWHERE -/decl/material/solid/exotic_matter +/decl/material/solid/phoron + name = "phoron" + uid = "solid_phoron" + lore_text = "Phoron is a modern-day wonder-material, with technological applications bordering on the fantastical. \ + Its use and research is mainly supervised and controlled by NanoTrasen." + ignition_point = FLAMMABLE_GAS_MINIMUM_BURN_TEMPERATURE + icon_base = 'icons/turf/walls/stone.dmi' + table_icon_base = "stone" + color = "#c408ba" + shard_type = SHARD_SHARD + hardness = MAT_VALUE_RIGID + stack_origin_tech = "{'materials':2,'exoticmatter':2}" + flags = MAT_FLAG_FUSION_FUEL + construction_difficulty = MAT_VALUE_HARD_DIY + ore_name = "phoron" + ore_result_amount = 5 + ore_spread_chance = 25 + ore_scan_icon = "mineral_uncommon" + xarch_source_mineral = /decl/material/solid/phoron + ore_icon_overlay = "gems" + //Note that this has a significant impact on TTV yield. + //Because it is so high, any leftover phoron soaks up a lot of heat and drops the yield pressure. + gas_specific_heat = 200 // J/(mol*K) + //Hypothetical group 14 (same as carbon), period 8 element. + //Using multiplicity rule, its atomic number is 162 + //and following a N/Z ratio of 1.5, the molar mass of a monatomic gas is: + molar_mass = 0.405 // kg/mol + gas_overlay_limit = 0.7 + gas_flags = XGM_GAS_FUEL | XGM_GAS_CONTAMINANT + gas_symbol_html = "Ph" + gas_symbol = "Ph" + boiling_point = -90 CELSIUS + melting_point = -120 CELSIUS + reflectiveness = MAT_VALUE_SHINY + value = 1.6 + sparse_material_weight = 10 + rich_material_weight = 20 + taste_mult = 1.5 + toxicity = 30 + touch_met = 5 + accelerant_value = 2 + vapor_products = list( + /decl/material/solid/phoron = 1 + ) + default_solid_form = /obj/item/stack/material/crystal + exoplanet_rarity_plant = MAT_RARITY_EXOTIC + exoplanet_rarity_gas = MAT_RARITY_NOWHERE + +//Controls phoron and phoron based objects reaction to being in a turf over 200c -- Phoron's flashpoint. +/decl/material/solid/phoron/combustion_effect(turf/T, temperature, effect_multiplier) + if(isnull(ignition_point)) + return 0 + if(temperature < ignition_point) + return 0 + var/totalPhoron = 0 + for(var/turf/floor/target_tile in range(2,T)) + var/phoronToDeduce = (temperature/30) * effect_multiplier + totalPhoron += phoronToDeduce + target_tile.assume_gas(/decl/material/solid/phoron, phoronToDeduce, 200+T0C) + spawn (0) + target_tile.hotspot_expose(temperature, 400) + return round(totalPhoron/100) + +/decl/material/solid/phoron/affect_touch(mob/living/M, removed, datum/reagents/holder) + M.take_organ_damage(0, removed * 0.1) //being splashed directly with phoron causes minor chemical burns + if(prob(10 * accelerant_value)) + M.handle_contaminants() + +/decl/material/solid/supermatter name = "exotic matter" uid = "solid_exotic_matter" lore_text = "Hypercrystalline supermatter is a subset of non-baryonic 'exotic' matter. It is found mostly in the heart of large stars, and features heavily in all kinds of fringe physics-defying technology." @@ -41,27 +109,14 @@ luminescence = 3 value = 3 icon_base = 'icons/turf/walls/stone.dmi' - wall_flags = 0 table_icon_base = "stone" shard_type = SHARD_SHARD hardness = MAT_VALUE_RIGID flags = MAT_FLAG_FUSION_FUEL construction_difficulty = MAT_VALUE_HARD_DIY reflectiveness = MAT_VALUE_SHINY - ignition_point = FLAMMABLE_GAS_MINIMUM_BURN_TEMPERATURE - gas_specific_heat = 200 // J/(mol*K) - molar_mass = 0.405 // kg/mol - gas_overlay_limit = 0.7 - gas_flags = XGM_GAS_FUEL | XGM_GAS_CONTAMINANT gas_symbol_html = "Ex*" gas_symbol = "Ex*" - taste_mult = 1.5 - toxicity = 30 - touch_met = 5 - accelerant_value = FUEL_VALUE_VOLATILE - vapor_products = list( - /decl/material/solid/exotic_matter = 1 - ) default_solid_form = /obj/item/stack/material/segment exoplanet_rarity_plant = MAT_RARITY_EXOTIC exoplanet_rarity_gas = MAT_RARITY_NOWHERE diff --git a/code/modules/materials/material_sheets_mapping.dm b/code/modules/materials/material_sheets_mapping.dm index 02f48918637..54f28cca655 100644 --- a/code/modules/materials/material_sheets_mapping.dm +++ b/code/modules/materials/material_sheets_mapping.dm @@ -50,6 +50,7 @@ STACK_SUBTYPES(concrete, "concrete", solid/stone/conc STACK_SUBTYPES(graphite, "graphite", solid/graphite, brick, null) STACK_SUBTYPES(diamond, "diamond", solid/gemstone/diamond, gemstone, null) STACK_SUBTYPES(uranium, "uranium", solid/metal/uranium, puck, null) +STACK_SUBTYPES(phoron, "phoron", solid/phoron, crystal, null) STACK_SUBTYPES(plastic, "plastic", solid/organic/plastic, panel, null) STACK_SUBTYPES(fiberglass, "fiberglass", solid/fiberglass, sheet/reinforced, null) STACK_SUBTYPES(gold, "gold", solid/metal/gold, ingot, null) diff --git a/code/modules/materials/material_stack_misc.dm b/code/modules/materials/material_stack_misc.dm index 6ac557a3969..7e2552d8662 100644 --- a/code/modules/materials/material_stack_misc.dm +++ b/code/modules/materials/material_stack_misc.dm @@ -82,6 +82,15 @@ crafting_stack_type = /obj/item/stack/material/puck can_be_pulverized = TRUE +/obj/item/stack/material/crystal + name = "crystal" + singular_name = "crystal" + plural_name = "crystals" + icon_state = "sheet-phoron" + plural_icon_state = "sheet-phoron-mult" + max_icon_state = "sheet-phoron-max" + stack_merge_type = /obj/item/stack/material/crystal + /obj/item/stack/material/segment name = "segments" singular_name = "segment" diff --git a/code/modules/mechs/equipment/engineering.dm b/code/modules/mechs/equipment/engineering.dm index 19da57c8c63..13a6d36bfab 100644 --- a/code/modules/mechs/equipment/engineering.dm +++ b/code/modules/mechs/equipment/engineering.dm @@ -6,7 +6,7 @@ restricted_software = list(MECH_SOFTWARE_ENGINEERING) material = /decl/material/solid/metal/steel matter = list( - /decl/material/solid/organic/plastic = MATTER_AMOUNT_REINFORCEMENT, + /decl/material/solid/phoron = MATTER_AMOUNT_REINFORCEMENT, /decl/material/solid/metal/silver = MATTER_AMOUNT_TRACE, /decl/material/solid/metal/gold = MATTER_AMOUNT_TRACE ) diff --git a/code/modules/mob/living/internals.dm b/code/modules/mob/living/internals.dm index ea0e20e3e05..0b0625c6afa 100644 --- a/code/modules/mob/living/internals.dm +++ b/code/modules/mob/living/internals.dm @@ -59,7 +59,7 @@ "rig" = list(get_rig()?.air_supply, "in") ) -/mob/living/proc/set_internals_to_best_available_tank(var/breathes_gas = /decl/material/gas/oxygen, var/list/poison_gas = list(/decl/material/gas/chlorine)) +/mob/living/proc/set_internals_to_best_available_tank(var/breathes_gas = /decl/material/gas/oxygen, var/list/poison_gas = list(/decl/material/gas/chlorine, /decl/material/solid/phoron)) if(!ispath(breathes_gas)) return diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm index b1da0430b4b..cfe4fb9fdd4 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -21,6 +21,7 @@ /obj/item/stock_parts/smes_coil, /obj/item/stock_parts/computer, /obj/item/fuel_assembly, + /obj/item/stack/material/crystal/mapped/phoron, /obj/item/stack/material/aerogel/mapped/deuterium, /obj/item/stack/material/aerogel/mapped/tritium, /obj/item/stack/tile diff --git a/code/modules/mob/living/simple_animal/_simple_animal.dm b/code/modules/mob/living/simple_animal/_simple_animal.dm index a3619e78f37..7d2eef8b844 100644 --- a/code/modules/mob/living/simple_animal/_simple_animal.dm +++ b/code/modules/mob/living/simple_animal/_simple_animal.dm @@ -42,6 +42,7 @@ //Atmos effect - Yes, you can make creatures that require arbitrary gasses to survive. N2O is a trace gas and handled separately, hence why it isn't here. It'd be hard to add it. Hard and me don't mix (Yes, yes make all the dick jokes you want with that.) - Errorage var/list/min_gas = list(/decl/material/gas/oxygen = 5) var/list/max_gas = list( + /decl/material/solid/phoron = 1, /decl/material/gas/chlorine = 1, /decl/material/gas/carbon_dioxide = 5 ) diff --git a/code/modules/mob/living/simple_animal/hostile/commanded/bear_companion.dm b/code/modules/mob/living/simple_animal/hostile/commanded/bear_companion.dm index 12cdeeb0323..028ed6ada7b 100644 --- a/code/modules/mob/living/simple_animal/hostile/commanded/bear_companion.dm +++ b/code/modules/mob/living/simple_animal/hostile/commanded/bear_companion.dm @@ -6,6 +6,7 @@ density = TRUE natural_weapon = /obj/item/natural_weapon/claws max_gas = list( + /decl/material/solid/phoron = 2, /decl/material/gas/chlorine = 2, /decl/material/gas/carbon_dioxide = 5 ) diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spiders/_giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spiders/_giant_spider.dm index f362bc5e7e9..5e8ddc4925a 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spiders/_giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spiders/_giant_spider.dm @@ -14,6 +14,7 @@ pass_flags = PASS_FLAG_TABLE base_movement_delay = 1 max_gas = list( + /decl/material/solid/phoron = 1, /decl/material/gas/chlorine = 1, /decl/material/gas/carbon_dioxide = 5, /decl/material/gas/methyl_bromide = 1 diff --git a/code/modules/mob/skills/skill.dm b/code/modules/mob/skills/skill.dm index 7bbd4b3ef1e..dba7e533d34 100644 --- a/code/modules/mob/skills/skill.dm +++ b/code/modules/mob/skills/skill.dm @@ -312,7 +312,7 @@ levels = list( "Unskilled" = "You can break furniture, disassemble chairs and tables, bash your way through a window, open a crate, or pry open an unpowered airlock. You can recognize and use basic hand tools and inflatable barriers, though not very well.
- You can attempt to construct items above your skill level, success chance increases with level.", "Basic" = "You can dismantle or build a wall or window, redecorate a room, and replace floor tiles and carpeting. You can safely use a welder without burning your eyes, and using hand tools is second nature to you.
- You can construct items from Steel, Wood and Plastic.", - "Trained" = "You can build, repair, or dismantle most things, but will occasionally make mistakes and have things not come out the way you expected.
- You can construct items from Bronze, Gold, Osmium, Plasteel, Platinum, Reinforced Glass, Sandstone, Silver, Deuterium, Metallic Hydrogen, Borosilicate Glass, Tritium, and Uranium.
- You can construct furnitures.
- You can construct simple objects such as light fixtures, crude weapons, and wall-mounted frames.
- You can safely use the plasmacutter to deconstruct structures.", + "Trained" = "You can build, repair, or dismantle most things, but will occasionally make mistakes and have things not come out the way you expected.
- You can construct items from Bronze, Gold, Osmium, Plasteel, Platinum, Reinforced Glass, Sandstone, Silver, Deuterium, Metallic Hydrogen, Phoron, Borosilicate Glass, Tritium, and Uranium.
- You can construct furnitures.
- You can construct simple objects such as light fixtures, crude weapons, and wall-mounted frames.
- You can safely use the plasmacutter to deconstruct structures.", "Experienced" = "You know how to seal a breach, rebuild broken piping, and repair major damage. You know the basics of structural engineering.
- You can construct items from Osmium-Carbide Plasteel, Titanium, Diamond and make complex objects such as machine and weapon frames.", "Master" = "You are a construction worker or engineer. You could pretty much rebuild the installation or ship from the ground up, given supplies, and you're efficient and skilled at repairing damage." ) diff --git a/code/modules/modular_computers/file_system/programs/engineering/supermatter_monitor.dm b/code/modules/modular_computers/file_system/programs/engineering/supermatter_monitor.dm index 08da0af07d6..e139e3c4f28 100644 --- a/code/modules/modular_computers/file_system/programs/engineering/supermatter_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/engineering/supermatter_monitor.dm @@ -148,14 +148,14 @@ data["SM_gas_O2"] = round(100*air.gas[/decl/material/gas/oxygen]/air.total_moles,0.01) data["SM_gas_CO2"] = round(100*air.gas[/decl/material/gas/carbon_dioxide]/air.total_moles,0.01) data["SM_gas_N2"] = round(100*air.gas[/decl/material/gas/nitrogen]/air.total_moles,0.01) - data["SM_gas_EX"] = round(100*air.gas[/decl/material/solid/exotic_matter]/air.total_moles,0.01) + data["SM_gas_PH"] = round(100*air.gas[/decl/material/solid/phoron]/air.total_moles,0.01) data["SM_gas_N2O"] = round(100*air.gas[/decl/material/gas/nitrous_oxide]/air.total_moles,0.01) data["SM_gas_H2"] = round(100*air.gas[/decl/material/gas/hydrogen]/air.total_moles,0.01) else data["SM_gas_O2"] = 0 data["SM_gas_CO2"] = 0 data["SM_gas_N2"] = 0 - data["SM_gas_EX"] = 0 + data["SM_gas_PH"] = 0 data["SM_gas_N2O"] = 0 data["SM_gas_H2"] = 0 else diff --git a/code/modules/organs/internal/brain_computer.dm b/code/modules/organs/internal/brain_computer.dm index f08107151cc..5a14697b9d3 100644 --- a/code/modules/organs/internal/brain_computer.dm +++ b/code/modules/organs/internal/brain_computer.dm @@ -98,6 +98,14 @@ desc = "A cube of shining metal, four inches to a side and covered in shallow grooves." origin_tech = @'{"engineering":4,"materials":4,"wormholes":2,"programming":4}' icon = 'icons/obj/items/brain_interface_robotic.dmi' + matter = list( + /decl/material/solid/glass = MATTER_AMOUNT_REINFORCEMENT, + /decl/material/solid/metal/silver = MATTER_AMOUNT_TRACE, + /decl/material/solid/metal/gold = MATTER_AMOUNT_TRACE, + /decl/material/solid/phoron = MATTER_AMOUNT_TRACE, + /decl/material/solid/gemstone/diamond = MATTER_AMOUNT_TRACE + ) + scale_max_damage_to_species_health = FALSE /obj/item/organ/internal/brain/robotic/positronic/Initialize() . = ..() diff --git a/code/modules/organs/internal/lungs.dm b/code/modules/organs/internal/lungs.dm index 7a9b0cb8180..a2e68abd7c9 100644 --- a/code/modules/organs/internal/lungs.dm +++ b/code/modules/organs/internal/lungs.dm @@ -77,13 +77,13 @@ max_pressure_diff = species.max_pressure_diff min_breath_pressure = species.breath_pressure breath_type = species.breath_type || /decl/material/gas/oxygen - poison_types = species.poison_types || list(/decl/material/gas/chlorine = TRUE) + poison_types = species.poison_types || list(/decl/material/gas/chlorine = TRUE, /decl/material/solid/phoron = TRUE) exhale_type = species.exhale_type || /decl/material/gas/carbon_dioxide else max_pressure_diff = initial(max_pressure_diff) min_breath_pressure = initial(min_breath_pressure) breath_type = /decl/material/gas/oxygen - poison_types = list(/decl/material/gas/chlorine = TRUE) + poison_types = list(/decl/material/gas/chlorine = TRUE, /decl/material/solid/phoron = TRUE) exhale_type = /decl/material/gas/carbon_dioxide diff --git a/code/modules/overmap/disperser/disperser_charge.dm b/code/modules/overmap/disperser/disperser_charge.dm index 4ab02455666..895e2955dc0 100644 --- a/code/modules/overmap/disperser/disperser_charge.dm +++ b/code/modules/overmap/disperser/disperser_charge.dm @@ -7,7 +7,7 @@ matter = list( /decl/material/solid/metal/steel = MATTER_AMOUNT_REINFORCEMENT, /decl/material/solid/metal/copper = MATTER_AMOUNT_SECONDARY, - /decl/material/solid/exotic_matter = MATTER_AMOUNT_TRACE + /decl/material/solid/supermatter = MATTER_AMOUNT_TRACE ) var/chargetype var/chargedesc diff --git a/code/modules/overmap/ftl_shunt/core.dm b/code/modules/overmap/ftl_shunt/core.dm index eea9868992d..0471f4fec3a 100644 --- a/code/modules/overmap/ftl_shunt/core.dm +++ b/code/modules/overmap/ftl_shunt/core.dm @@ -554,7 +554,7 @@ /decl/material/gas/hydrogen/tritium = 25000, /decl/material/gas/hydrogen/deuterium = 25000, /decl/material/gas/hydrogen = 25000, - /decl/material/solid/exotic_matter = 50000 + /decl/material/solid/phoron = 50000 ) var/obj/item/fuel_assembly/fuel var/obj/machinery/ftl_shunt/core/master @@ -656,4 +656,4 @@ icon = 'icons/obj/items/stock_parts/stock_parts.dmi' icon_state = "smes_coil" color = COLOR_YELLOW - matter = list(/decl/material/solid/exotic_matter = MATTER_AMOUNT_REINFORCEMENT, /decl/material/solid/metal/plasteel = MATTER_AMOUNT_PRIMARY) + matter = list(/decl/material/solid/phoron = MATTER_AMOUNT_REINFORCEMENT, /decl/material/solid/metal/plasteel = MATTER_AMOUNT_PRIMARY) diff --git a/code/modules/power/fuel_assembly/fuel_assembly.dm b/code/modules/power/fuel_assembly/fuel_assembly.dm index 6958f2431d2..dbd9544418e 100644 --- a/code/modules/power/fuel_assembly/fuel_assembly.dm +++ b/code/modules/power/fuel_assembly/fuel_assembly.dm @@ -87,8 +87,11 @@ /obj/item/fuel_assembly/tritium material = /decl/material/gas/hydrogen/tritium +/obj/item/fuel_assembly/phoron + material = /decl/material/solid/phoron + /obj/item/fuel_assembly/supermatter - material = /decl/material/solid/exotic_matter + material = /decl/material/solid/supermatter /obj/item/fuel_assembly/hydrogen material = /decl/material/gas/hydrogen diff --git a/code/modules/power/fuel_assembly/fuel_compressor.dm b/code/modules/power/fuel_assembly/fuel_compressor.dm index f6c08c8e565..58b26a67dd9 100644 --- a/code/modules/power/fuel_assembly/fuel_compressor.dm +++ b/code/modules/power/fuel_assembly/fuel_compressor.dm @@ -130,7 +130,7 @@ return TRUE if(istype(thing, /obj/machinery/power/supermatter/shard)) - stored_material[/decl/material/solid/exotic_matter] = 5 * SHEET_MATERIAL_AMOUNT + stored_material[/decl/material/solid/supermatter] = 5 * SHEET_MATERIAL_AMOUNT to_chat(user, SPAN_NOTICE("You awkwardly cram \the [thing] into \the [src]'s material buffer.")) qdel(thing) return TRUE diff --git a/code/modules/power/fusion/fusion_reactions.dm b/code/modules/power/fusion/fusion_reactions.dm index 73cffcc1529..472ab5c37b5 100644 --- a/code/modules/power/fusion/fusion_reactions.dm +++ b/code/modules/power/fusion/fusion_reactions.dm @@ -91,17 +91,26 @@ instability = 2 * FUSION_PROCESSING_TIME_MULT minimum_reaction_temperature = 10000 +/decl/fusion_reaction/phoron_hydrogen + p_react = /decl/material/gas/hydrogen + s_react = /decl/material/solid/phoron + energy_consumption = 10 + energy_production = 0 + instability = 5 + products = list(/decl/material/solid/metallic_hydrogen = 1) + minimum_reaction_temperature = 8000 + // VERY UNIDEAL REACTIONS. -/decl/fusion_reaction/helium_supermatter - p_react = /decl/material/solid/exotic_matter - s_react = /decl/material/gas/helium +/decl/fusion_reaction/phoron_supermatter + p_react = /decl/material/solid/supermatter + s_react = /decl/material/solid/phoron energy_consumption = 0 energy_production = 5 * FUSION_PROCESSING_TIME_MULT radiation = 40 * FUSION_PROCESSING_TIME_MULT instability = 20 * FUSION_PROCESSING_TIME_MULT hidden_from_codex = TRUE -/decl/fusion_reaction/helium_supermatter/handle_reaction_special(var/obj/effect/fusion_em_field/holder) +/decl/fusion_reaction/phoron_supermatter/handle_reaction_special(var/obj/effect/fusion_em_field/holder) set waitfor = FALSE . = 1 var/datum/event/wormholes/WM = new /datum/event/wormholes(new /datum/event_meta(EVENT_LEVEL_MAJOR)) @@ -121,7 +130,7 @@ H.set_hallucination(rand(100,150), 51) for(var/obj/machinery/fusion_fuel_injector/I in range(world.view, origin)) - if(I.cur_assembly && I.cur_assembly.material && I.cur_assembly.material.type == /decl/material/solid/exotic_matter) + if(I.cur_assembly && I.cur_assembly.material && I.cur_assembly.material.type == /decl/material/solid/supermatter) explosion(get_turf(I), 1, 2, 3) if(!QDELETED(I)) QDEL_IN(I, 5) diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 1d776af3f8a..73e99a88158 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -113,7 +113,7 @@ /* These values were chosen so that the generator can run safely up to 80 kW - A full 50 deuterium sheet stack should last 20 minutes at power_output = 4 + A full 50 graphite sheet stack should last 20 minutes at power_output = 4 temperature_gain and max_temperature are set so that the max safe power level is 4. Setting to 5 or higher can only be done temporarily before the generator overheats. */ diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index f31ff206ee0..9a54eaec9eb 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -1,17 +1,15 @@ var/global/list/rad_collectors = list() -// TODO: swap the hydrogen tanks out for lithium sheets or something like that. - /obj/machinery/rad_collector name = "radiation collector array" - desc = "A device which uses radiation and hydrogen to produce power." + desc = "A device which uses radiation and phoron to produce power." icon = 'icons/obj/machines/rad_collector.dmi' icon_state = "ca" anchored = FALSE density = TRUE initial_access = list(access_engine_equip) max_health = 100 - var/obj/item/tank/hydrogen/loaded_tank = null + var/obj/item/tank/phoron/loaded_tank = null var/max_safe_temp = 1000 + T0C var/melted @@ -64,11 +62,11 @@ var/global/list/rad_collectors = list() receive_pulse(12.5*(last_rads/max_rads)/(0.3+(last_rads/max_rads))) if(loaded_tank) - if(loaded_tank.air_contents.gas[/decl/material/gas/hydrogen] == 0) + if(loaded_tank.air_contents.gas[/decl/material/solid/phoron] == 0) investigate_log("out of fuel.","singulo") eject() else - loaded_tank.air_adjust_gas(/decl/material/gas/hydrogen, -0.01*drainratio*min(last_rads,max_rads)/max_rads) //fuel cost increases linearly with incoming radiation + loaded_tank.air_adjust_gas(/decl/material/solid/phoron, -0.01*drainratio*min(last_rads,max_rads)/max_rads) //fuel cost increases linearly with incoming radiation /obj/machinery/rad_collector/CanUseTopic(mob/user) if(!anchored) @@ -85,12 +83,12 @@ var/global/list/rad_collectors = list() toggle_power() user.visible_message("[user.name] turns the [src.name] [active? "on":"off"].", \ "You turn the [src.name] [active? "on":"off"].") - investigate_log("turned [active?"on":"off"] by [user.key]. [loaded_tank?"Fuel: [round(loaded_tank.air_contents.gas[/decl/material/gas/hydrogen]/0.29)]%":"It is empty"].","singulo") + investigate_log("turned [active?"on":"off"] by [user.key]. [loaded_tank?"Fuel: [round(loaded_tank.air_contents.gas[/decl/material/solid/phoron]/0.29)]%":"It is empty"].","singulo") else to_chat(user, "The controls are locked!") /obj/machinery/rad_collector/attackby(obj/item/W, mob/user) - if(istype(W, /obj/item/tank/hydrogen)) + if(istype(W, /obj/item/tank/phoron)) if(!src.anchored) to_chat(user, "The [src] needs to be secured to the floor first.") return 1 @@ -165,7 +163,7 @@ var/global/list/rad_collectors = list() /obj/machinery/rad_collector/proc/eject() locked = 0 - var/obj/item/tank/hydrogen/Z = src.loaded_tank + var/obj/item/tank/phoron/Z = src.loaded_tank if (!Z) return Z.dropInto(loc) @@ -179,7 +177,7 @@ var/global/list/rad_collectors = list() /obj/machinery/rad_collector/proc/receive_pulse(var/pulse_strength) if(loaded_tank && active) var/power_produced = 0 - power_produced = min(100*loaded_tank.air_contents.gas[/decl/material/gas/hydrogen]*pulse_strength*pulse_coeff,max_power) + power_produced = min(100*loaded_tank.air_contents.gas[/decl/material/solid/phoron]*pulse_strength*pulse_coeff,max_power) generate_power(power_produced) last_power_new = power_produced return diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm index 049e62a9051..0c17afb2c3c 100644 --- a/code/modules/power/singularity/generator.dm +++ b/code/modules/power/singularity/generator.dm @@ -8,7 +8,7 @@ density = TRUE use_power = POWER_USE_OFF matter = list( - /decl/material/solid/exotic_matter = MATTER_AMOUNT_PRIMARY, + /decl/material/solid/supermatter = MATTER_AMOUNT_PRIMARY, /decl/material/solid/metal/steel = MATTER_AMOUNT_SECONDARY ) diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 6482521407e..8dae5c06871 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -287,6 +287,11 @@ var/global/list/singularities = list() if(last_pixel_x != default_pixel_x || last_pixel_y != default_pixel_y) reset_offsets(0) +/obj/effect/singularity/proc/pulse() + for(var/obj/machinery/rad_collector/R in global.rad_collectors) + if (get_dist(R, src) <= 15) //Better than using orange() every process. + R.receive_pulse(energy) + /obj/effect/singularity/singularity_act(S, size) if(current_stage.stage_size <= size) var/gain = (energy/2) diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index a331caa65fe..0a15e3fb8c8 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -107,7 +107,7 @@ material = /decl/material/solid/metal/steel matter = list( /decl/material/solid/fiberglass = MATTER_AMOUNT_REINFORCEMENT, - /decl/material/solid/metal/uranium = MATTER_AMOUNT_TRACE + /decl/material/solid/phoron = MATTER_AMOUNT_TRACE ) /obj/item/gun/energy/plasmacutter @@ -128,7 +128,7 @@ matter = list( /decl/material/solid/fiberglass = MATTER_AMOUNT_REINFORCEMENT, /decl/material/solid/metal/gold = MATTER_AMOUNT_TRACE, - /decl/material/solid/metal/uranium = MATTER_AMOUNT_TRACE + /decl/material/solid/phoron = MATTER_AMOUNT_TRACE ) /obj/item/gun/energy/plasmacutter/Initialize() diff --git a/code/modules/random_map/noise/ore.dm b/code/modules/random_map/noise/ore.dm index f23e1c2cd01..54d9369e8e1 100644 --- a/code/modules/random_map/noise/ore.dm +++ b/code/modules/random_map/noise/ore.dm @@ -18,12 +18,14 @@ /decl/material/solid/metal/gold = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX), /decl/material/solid/metal/silver = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX), /decl/material/solid/metal/uranium = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX), + /decl/material/solid/phoron = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX), /decl/material/solid/metal/osmium = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX), /decl/material/solid/rutile = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX) ) var/list/deep_metals = list( /decl/material/solid/metal/uranium = list(RESOURCE_LOW_MIN, RESOURCE_LOW_MAX), /decl/material/solid/gemstone/diamond = list(RESOURCE_LOW_MIN, RESOURCE_LOW_MAX), + /decl/material/solid/phoron = list(RESOURCE_HIGH_MIN, RESOURCE_HIGH_MAX), /decl/material/solid/metal/osmium = list(RESOURCE_HIGH_MIN, RESOURCE_HIGH_MAX), /decl/material/solid/metallic_hydrogen = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX), /decl/material/solid/rutile = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX) @@ -152,8 +154,9 @@ /decl/material/solid/metal/gold = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX), /decl/material/solid/metal/silver = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX), /decl/material/solid/metal/uranium = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX), + /decl/material/solid/phoron = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX), /decl/material/solid/metal/osmium = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX), - /decl/material/solid/rutile = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX) + /decl/material/solid/rutile = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX) ) deep_metals = list( /decl/material/solid/ice/aspium = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX), @@ -163,7 +166,8 @@ /decl/material/solid/ice/ediroite = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX), /decl/material/solid/metal/uranium = list(RESOURCE_LOW_MIN, RESOURCE_LOW_MAX), /decl/material/solid/gemstone/diamond = list(RESOURCE_LOW_MIN, RESOURCE_LOW_MAX), + /decl/material/solid/phoron = list(RESOURCE_HIGH_MIN, RESOURCE_HIGH_MAX), /decl/material/solid/metal/osmium = list(RESOURCE_HIGH_MIN, RESOURCE_HIGH_MAX), /decl/material/solid/metallic_hydrogen = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX), - /decl/material/solid/rutile = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX) + /decl/material/solid/rutile = list(RESOURCE_MID_MIN, RESOURCE_MID_MAX) ) \ No newline at end of file diff --git a/code/modules/reagents/chems/chems_compounds.dm b/code/modules/reagents/chems/chems_compounds.dm index cd2fc94a85d..366d18790fa 100644 --- a/code/modules/reagents/chems/chems_compounds.dm +++ b/code/modules/reagents/chems/chems_compounds.dm @@ -94,7 +94,7 @@ exoplanet_rarity_gas = MAT_RARITY_EXOTIC heating_point = T100C - heating_message = "darkens and thickens as it seperates from its water content" + heating_message = "darkens and thickens as it separates from its water content" heating_products = list( /decl/material/liquid/capsaicin/condensed = 0.5, /decl/material/liquid/water = 0.5 diff --git a/code/modules/reagents/chems/random/chems_random.dm b/code/modules/reagents/chems/random/chems_random.dm index 42d481fe35a..fcae5ea656e 100644 --- a/code/modules/reagents/chems/random/chems_random.dm +++ b/code/modules/reagents/chems/random/chems_random.dm @@ -6,6 +6,7 @@ var/global/list/random_chem_interaction_blacklist = list( /decl/material/solid/tobacco, /decl/material/liquid/drink, /decl/material/liquid/random, + /decl/material/solid/phoron, /decl/material/liquid/ethanol // Includes alcoholic beverages ) diff --git a/code/modules/reagents/cocktails.dm b/code/modules/reagents/cocktails.dm index 8bfe4705a95..6e5effe3da2 100644 --- a/code/modules/reagents/cocktails.dm +++ b/code/modules/reagents/cocktails.dm @@ -226,12 +226,12 @@ ) /decl/cocktail/toxins_special - name = "H2 Special" + name = "Toxins Special" description = "Raise a glass to the bomb technicians of yesteryear, wherever their ashes now reside." ratios = list( /decl/material/liquid/ethanol/rum = 1, /decl/material/liquid/ethanol/vermouth = 1, - /decl/material/solid/metallic_hydrogen + /decl/material/solid/phoron ) /decl/cocktail/beepsky_smash diff --git a/code/modules/reagents/reactions/reaction_drugs.dm b/code/modules/reagents/reactions/reaction_drugs.dm index 350035b2fe9..cb701ddbc9e 100644 --- a/code/modules/reagents/reactions/reaction_drugs.dm +++ b/code/modules/reagents/reactions/reaction_drugs.dm @@ -128,7 +128,7 @@ name = "Nanite Fluid" result = /decl/material/liquid/nanitefluid required_reagents = list(/decl/material/liquid/plasticide = 1, /decl/material/solid/metal/aluminium = 1, /decl/material/liquid/lube = 1) - catalysts = list(/decl/material/liquid/crystal_agent = 1) + catalysts = list(/decl/material/solid/phoron = 5) result_amount = 3 minimum_temperature = (-25 CELSIUS) - 100 maximum_temperature = -25 CELSIUS diff --git a/code/modules/reagents/reagent_containers/beaker.dm b/code/modules/reagents/reagent_containers/beaker.dm index c74c2428dbb..00d60a03b1f 100644 --- a/code/modules/reagents/reagent_containers/beaker.dm +++ b/code/modules/reagents/reagent_containers/beaker.dm @@ -128,7 +128,7 @@ material_alteration = MAT_FLAG_ALTERATION_NONE material = /decl/material/solid/metal/steel matter = list( - /decl/material/solid/metal/uranium = MATTER_AMOUNT_TRACE, + /decl/material/solid/phoron = MATTER_AMOUNT_REINFORCEMENT, /decl/material/solid/gemstone/diamond = MATTER_AMOUNT_TRACE ) origin_tech = @'{"exoticmatter":2,"materials":6}' diff --git a/code/modules/reagents/reagent_containers/food/junkfood.dm b/code/modules/reagents/reagent_containers/food/junkfood.dm index 0a7987be4aa..87392226a86 100644 --- a/code/modules/reagents/reagent_containers/food/junkfood.dm +++ b/code/modules/reagents/reagent_containers/food/junkfood.dm @@ -323,7 +323,7 @@ /decl/material/liquid/capsaicin, /decl/material/liquid/frostoil, /decl/material/liquid/nutriment/sprinkles, - /decl/material/gas/chlorine, + /decl/material/solid/phoron, /decl/material/liquid/nutriment/coco, /decl/material/liquid/nutriment/banana_cream, /decl/material/liquid/nutriment/cherryjelly, diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index fd422e1fdd5..d3eb74676fc 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -393,7 +393,7 @@ icon = 'icons/obj/syringe_advanced.dmi' material = /decl/material/solid/glass matter = list( - /decl/material/solid/metal/uranium = MATTER_AMOUNT_TRACE, + /decl/material/solid/phoron = MATTER_AMOUNT_REINFORCEMENT, /decl/material/solid/gemstone/diamond = MATTER_AMOUNT_TRACE ) origin_tech = @'{"biotech":3,"materials":4,"exoticmatter":2}' diff --git a/code/modules/species/species.dm b/code/modules/species/species.dm index 61f9afbcc12..f7eb5d4b9d2 100644 --- a/code/modules/species/species.dm +++ b/code/modules/species/species.dm @@ -123,7 +123,10 @@ var/global/const/DEFAULT_SPECIES_HEALTH = 200 // Environment tolerance/life processes vars. var/breath_pressure = 16 // Minimum partial pressure safe for breathing, kPa var/breath_type = /decl/material/gas/oxygen // Non-oxygen gas breathed, if any. - var/poison_types = list(/decl/material/gas/chlorine = TRUE) // Noticeably poisonous air - ie. updates the toxins indicator on the HUD. + var/poison_types = list( // Noticeably poisonous air - ie. updates the toxins indicator on the HUD. + /decl/material/solid/phoron = TRUE, + /decl/material/gas/chlorine = TRUE + ) var/exhale_type = /decl/material/gas/carbon_dioxide // Exhaled gas type. var/blood_reagent = /decl/material/liquid/blood diff --git a/code/modules/supermatter/setup_supermatter.dm b/code/modules/supermatter/setup_supermatter.dm index 4af1f8aa34c..1fb598744b2 100644 --- a/code/modules/supermatter/setup_supermatter.dm +++ b/code/modules/supermatter/setup_supermatter.dm @@ -6,6 +6,7 @@ #define ENERGY_NITROGEN 115 // Roughly 8 emitter shots. #define ENERGY_CARBONDIOXIDE 150 // Roughly 10 emitter shots. #define ENERGY_HYDROGEN 300 // Roughly 20 emitter shots. +#define ENERGY_PHORON 500 // Roughly 40 emitter shots. /datum/admins/proc/setup_supermatter() set category = "Debug" @@ -18,7 +19,7 @@ to_chat(usr, "Error: you are not an admin!") return - var/response = input(usr, "Are you sure? This will start up the engine with selected gas as coolant.", "Engine setup") as null|anything in list("N2", "CO2", "H2", "Abort") + var/response = input(usr, "Are you sure? This will start up the engine with selected gas as coolant.", "Engine setup") as null|anything in list("N2", "CO2", "PH", "H2", "Abort") if(!response || response == "Abort") return @@ -38,6 +39,9 @@ if("CO2") C.canister_type = /obj/machinery/portable_atmospherics/canister/carbon_dioxide/engine_setup/ continue + if("PH") + C.canister_type = /obj/machinery/portable_atmospherics/canister/phoron/engine_setup/ + continue if("H2") C.canister_type = /obj/machinery/portable_atmospherics/canister/hydrogen/engine_setup/ continue @@ -50,6 +54,9 @@ if("CO2") C.energy_setting = ENERGY_CARBONDIOXIDE continue + if("PH") + C.energy_setting = ENERGY_PHORON + continue if("H2") C.energy_setting = ENERGY_HYDROGEN continue @@ -242,6 +249,9 @@ var/global/list/engine_setup_markers = list() else if(coolant == "N2") P.filtering = /decl/material/gas/nitrogen break + if(coolant == "PH") + P.filtering = /decl/material/solid/phoron + break else if(coolant == "H2") P.filtering = /decl/material/gas/hydrogen break @@ -283,3 +293,4 @@ var/global/list/engine_setup_markers = list() #undef ENERGY_NITROGEN #undef ENERGY_CARBONDIOXIDE #undef ENERGY_HYDROGEN +#undef ENERGY_PHORON \ No newline at end of file diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index 5e816a644c1..5b94b22d65d 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -113,8 +113,8 @@ var/global/list/supermatter_delam_accent_sounds = list( light_range = 4 layer = ABOVE_HUMAN_LAYER matter = list( - /decl/material/solid/exotic_matter = MATTER_AMOUNT_PRIMARY, - /decl/material/solid/metal/steel = MATTER_AMOUNT_REINFORCEMENT + /decl/material/solid/supermatter = MATTER_AMOUNT_PRIMARY, + /decl/material/solid/metal/steel = MATTER_AMOUNT_REINFORCEMENT ) var/nitrogen_retardation_factor = 0.15 // Higher == N2 slows reaction more @@ -508,7 +508,7 @@ var/global/list/supermatter_delam_accent_sounds = list( //Release reaction gasses var/heat_capacity = removed.heat_capacity() - removed.adjust_multi(/decl/material/solid/exotic_matter, max(device_energy / product_release_modifier, 0), \ + removed.adjust_multi(/decl/material/solid/phoron, max(device_energy / product_release_modifier, 0), \ /decl/material/gas/oxygen, max((device_energy + removed.temperature - T0C) / oxygen_release_modifier, 0)) var/thermal_power = thermal_release_modifier * device_energy diff --git a/code/modules/vehicles/engine.dm b/code/modules/vehicles/engine.dm index c0ea36b3241..78d02003a9c 100644 --- a/code/modules/vehicles/engine.dm +++ b/code/modules/vehicles/engine.dm @@ -116,6 +116,9 @@ actually_flameable = 1 else if(istype(R,/decl/material/liquid/fuel)) actually_flameable = 1 + else if(istype(R,/decl/material/solid/phoron)) + new_multiplier = 2 + actually_flameable = 1 else if(istype(R,/decl/material/liquid/frostoil)) new_multiplier = 0.1 else if(istype(R,/decl/material/liquid/water)) diff --git a/code/modules/xenoarcheaology/artifacts/effects/gas_generation.dm b/code/modules/xenoarcheaology/artifacts/effects/gas_generation.dm index dd66a9c5865..28a643c657b 100644 --- a/code/modules/xenoarcheaology/artifacts/effects/gas_generation.dm +++ b/code/modules/xenoarcheaology/artifacts/effects/gas_generation.dm @@ -25,6 +25,10 @@ name = "O2 creation" spawned_gas = /decl/material/gas/oxygen +/datum/artifact_effect/gas/phoron + name = "Phoron creation" + spawned_gas = /decl/material/solid/phoron + /datum/artifact_effect/gas/hydrogen name = "H2 creation" spawned_gas = /decl/material/gas/hydrogen diff --git a/code/modules/xenoarcheaology/artifacts/standalone/gigadrill.dm b/code/modules/xenoarcheaology/artifacts/standalone/gigadrill.dm index e41572bbd63..cc79f4bf2b5 100644 --- a/code/modules/xenoarcheaology/artifacts/standalone/gigadrill.dm +++ b/code/modules/xenoarcheaology/artifacts/standalone/gigadrill.dm @@ -8,6 +8,11 @@ var/turf/drilling_turf density = TRUE layer = ABOVE_OBJ_LAYER //to go over ores + matter = list( + /decl/material/solid/metal/plasteel/ocp = MATTER_AMOUNT_PRIMARY, + /decl/material/solid/phoron = MATTER_AMOUNT_REINFORCEMENT, + /decl/material/solid/gemstone/diamond = MATTER_AMOUNT_REINFORCEMENT, + ) /obj/machinery/giga_drill/physical_attack_hand(mob/user) if(active) @@ -35,4 +40,4 @@ anchored = FALSE /obj/machinery/giga_drill/get_artifact_scan_data() - return "Automated mining drill - structure composed of titanium-carbide alloy, with tip and drill lines edged in a complex lattice of diamond." + return "Automated mining drill - structure composed of osmium-carbide alloy, with tip and drill lines edged in a complex lattice of diamond and phoron." diff --git a/code/modules/xenoarcheaology/artifacts/triggers/chemical.dm b/code/modules/xenoarcheaology/artifacts/triggers/chemical.dm index 0d4020d7b8a..59c0efeb90d 100644 --- a/code/modules/xenoarcheaology/artifacts/triggers/chemical.dm +++ b/code/modules/xenoarcheaology/artifacts/triggers/chemical.dm @@ -43,6 +43,7 @@ /datum/artifact_trigger/chemical/volatile name = "presence of volatile chemicals" required_chemicals = list( + /decl/material/solid/phoron, /decl/material/liquid/fuel ) diff --git a/code/modules/xenoarcheaology/artifacts/triggers/gas.dm b/code/modules/xenoarcheaology/artifacts/triggers/gas.dm index 4c970db3bb2..678dcc16af0 100644 --- a/code/modules/xenoarcheaology/artifacts/triggers/gas.dm +++ b/code/modules/xenoarcheaology/artifacts/triggers/gas.dm @@ -29,5 +29,8 @@ /datum/artifact_trigger/gas/n2 gas_needed = list(/decl/material/gas/nitrogen = 5) +/datum/artifact_trigger/gas/phoron + gas_needed = list(/decl/material/solid/phoron = 5) + /datum/artifact_trigger/gas/hydrogen gas_needed = list(/decl/material/gas/hydrogen = 5) \ No newline at end of file diff --git a/code/modules/xenoarcheaology/finds/find_types/_find.dm b/code/modules/xenoarcheaology/finds/find_types/_find.dm index 4b04f9a04d7..4820000c0fe 100644 --- a/code/modules/xenoarcheaology/finds/find_types/_find.dm +++ b/code/modules/xenoarcheaology/finds/find_types/_find.dm @@ -2,11 +2,12 @@ var/global/list/responsive_carriers = list( /decl/material/solid/carbon = "Trace organic cells", /decl/material/solid/potassium = "Long exposure particles", /decl/material/liquid/fuel/hydrazine = "Trace water particles", - /decl/material/gas/ammonia = "Crystalline structures", + /decl/material/gas/ammonia = "Crystalline structures", /decl/material/liquid/mercury = "Metallic derivative", /decl/material/solid/metal/iron = "Metallic composite", /decl/material/gas/chlorine = "Metamorphic/igneous rock composite", - /decl/material/solid/phosphorus = "Metamorphic/sedimentary rock composite" + /decl/material/solid/phosphorus = "Metamorphic/sedimentary rock composite", + /decl/material/solid/phoron = "Anomalous energetic material" ) /decl/archaeological_find diff --git a/code/modules/xenoarcheaology/finds/find_types/material.dm b/code/modules/xenoarcheaology/finds/find_types/material.dm index f4bfc53c61f..f1606948392 100644 --- a/code/modules/xenoarcheaology/finds/find_types/material.dm +++ b/code/modules/xenoarcheaology/finds/find_types/material.dm @@ -2,7 +2,13 @@ /decl/archaeological_find/material item_type = "material lump" modification_flags = XENOFIND_APPLY_PREFIX - var/list/possible_materials = list(/decl/material/solid/metal/steel, /decl/material/solid/metal/plasteel, /decl/material/solid/metal/titanium, /decl/material/solid/glass) + var/list/possible_materials = list( + /decl/material/solid/metal/steel, + /decl/material/solid/metal/plasteel, + /decl/material/solid/phoron, + /decl/material/solid/metal/titanium, + /decl/material/solid/glass + ) /decl/archaeological_find/material/spawn_item(atom/loc) return SSmaterials.create_object(pick(possible_materials), loc, rand(5,45))?[1] diff --git a/maps/away/errant_pisces/errant_pisces.dm b/maps/away/errant_pisces/errant_pisces.dm index cec25466c84..c48ff52c62d 100644 --- a/maps/away/errant_pisces/errant_pisces.dm +++ b/maps/away/errant_pisces/errant_pisces.dm @@ -39,9 +39,9 @@ if(. && !gibbed) var/datum/gas_mixture/environment = loc.return_air() if (environment) - var/datum/gas_mixture/sharkmaw_chlorine = new - sharkmaw_chlorine.adjust_gas(/decl/material/gas/chlorine, 10) - environment.merge(sharkmaw_chlorine) + var/datum/gas_mixture/sharkmaw_phoron = new + sharkmaw_phoron.adjust_gas(/decl/material/solid/phoron, 10) + environment.merge(sharkmaw_phoron) visible_message(SPAN_WARNING("\The [src]'s body releases some gas from the gills with a quiet fizz!")) /mob/living/simple_animal/hostile/carp/shark/apply_attack_effects(mob/living/target) @@ -76,7 +76,7 @@ . = ..() add_to_reagents(/decl/material/solid/organic/meat, 5) add_to_reagents(/decl/material/liquid/psychoactives, 1) - add_to_reagents(/decl/material/gas/chlorine, 1) + add_to_reagents(/decl/material/solid/phoron, 1) //if you want to have fun, make them to be draggable as a whole unless at least one piece is attached to a non-space turf or anchored object /obj/structure/net diff --git a/maps/away/unishi/unishi.dm b/maps/away/unishi/unishi.dm index 21700989838..2b5adb3a62d 100644 --- a/maps/away/unishi/unishi.dm +++ b/maps/away/unishi/unishi.dm @@ -91,7 +91,7 @@ /obj/item/paper/prof2 name = "error log" - info = " COMPUTER ID: 15131
Attempting recovery of document directory.
Three files recovered
Printing file (1/2)
Email to iodc@net
To whom it may concern,
I recieved your email today in regards to the research I am conducting. You have no legal right to question our research or attempt to block it. Per article 323, scientific research is protected information, that you have absolutely zero claim to. The compound is secret in composition, but I can fully promise you that it contains absolutely no proprietary molecules, and thus you have no claim whatsoever to it or the technologies to it. Your threats are laughable at best, and have been forwarded to CTI legal. Do not contact me aga!#!41asjw.
Printing file (2/2)
Email from fuckyou@12cmal
We have ways of making you comply. " + info = " COMPUTER ID: 15131
Attempting recovery of document directory.
Two files recovered
Printing file (1/2)
Email to iodc@net
To whom it may concern,
I recieved your email today in regards to the research I am conducting. You have no legal right to question our research or attempt to block it. Per article 323, scientific research is protected information, that you have absolutely zero claim to. The compound is secret in composition, but I can fully promise you that it contains absolutely no phoron, and thus you have no claim whatsoever to it or the technologies used to make it. Your threats are laughable at best, and have been forwarded to CTI legal. Do not contact me aga!#!41asjw.
Printing file (2/2)
Email from fuckyou@12cmal
We have ways of making you comply. " /obj/machinery/computer/log_printer name = "Computer" @@ -121,3 +121,32 @@ desc = "Logo of the famed Ceti Technical Institute. Just looking at it makes you feel ashamed of your alma mater." icon = 'unishi.dmi' icon_state = "CTILogo" + +/decl/material/solid/phoron/safe + name = "tericadone" + uid = "solid_phoron_safe" + gas_symbol = "Tr" + gas_symbol_html = "Tr" + lore_text = "A phoron substitute currently in laboratory testing." + taste_mult = 1.5 + color = "#ffc4ff" + +// TODO: readd tericadone bottles to unishi map +/obj/item/chems/glass/bottle/tericadone + name = "tericadone bottle" + desc = "A small bottle." + icon_state = "bottle-3" + +/obj/item/chems/glass/bottle/tericadone/Initialize() + . = ..() + reagents.add_reagent(/decl/material/solid/phoron/safe, 60) + update_icon() + +/decl/material/solid/phoron/safe/touch_mob(mob/living/M, amount, datum/reagents/holder) + return + +/decl/material/solid/phoron/safe/affect_blood(mob/living/M, removed, datum/reagents/holder) + return + +/decl/material/solid/phoron/safe/affect_touch(mob/living/M, removed, datum/reagents/holder) + return \ No newline at end of file diff --git a/maps/exodus/exodus-2.dmm b/maps/exodus/exodus-2.dmm index e82a118d4ad..d7d56277b36 100644 --- a/maps/exodus/exodus-2.dmm +++ b/maps/exodus/exodus-2.dmm @@ -30873,7 +30873,7 @@ "bns" = ( /obj/machinery/door/airlock/maintenance{ autoset_access = 0; - req_access = list(list(access_maint_tunnels, access_emergency_storage, access_research)) + req_access = list("ACCESS_MAINT", "ACCESS_EMERGENCY_STORAGE", "ACCESS_RESEARCH") }, /obj/structure/cable{ icon_state = "1-2" @@ -37702,7 +37702,7 @@ /obj/machinery/door/airlock{ name = "Starboard Emergency Storage"; autoset_access = 0; - req_access = list(list(access_maint_tunnels, access_emergency_storage, access_research)) + req_access = list("ACCESS_MAINT", "ACCESS_EMERGENCY_STORAGE", "ACCESS_RESEARCH") }, /obj/structure/cable{ icon_state = "1-2" @@ -39785,7 +39785,7 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/maintenance{ autoset_access = 0; - req_access = list(list(access_maint_tunnels, access_research)) + req_access = list("ACCESS_MAINT", "ACCESS_RESEARCH") }, /turf/floor/tiled/techfloor/grid, /area/exodus/maintenance/research_shuttle) @@ -39852,7 +39852,7 @@ "bFy" = ( /obj/machinery/door/airlock/maintenance{ autoset_access = 0; - req_access = list(list(access_maint_tunnels, access_research)) + req_access = list("ACCESS_MAINT", "ACCESS_RESEARCH") }, /obj/structure/cable{ icon_state = "1-2" @@ -42121,7 +42121,7 @@ }, /obj/machinery/door/airlock/maintenance{ autoset_access = 0; - req_access = list(list(access_maint_tunnels, access_research)) + req_access = list("ACCESS_MAINT", "ACCESS_RESEARCH") }, /turf/floor/tiled/techfloor/grid, /area/exodus/maintenance/research_port) @@ -45251,7 +45251,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/door/airlock/maintenance{ autoset_access = 0; - req_access = list(list(access_maint_tunnels, access_research)) + req_access = list("ACCESS_MAINT", "ACCESS_RESEARCH") }, /turf/floor/tiled/techfloor/grid, /area/exodus/maintenance/research_shuttle) @@ -48816,7 +48816,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/door/airlock/maintenance{ autoset_access = 0; - req_access = list(list(access_maint_tunnels, access_research)) + req_access = list("ACCESS_MAINT", "ACCESS_RESEARCH") }, /turf/floor/tiled/techfloor/grid, /area/exodus/maintenance/research_starboard) @@ -64522,7 +64522,7 @@ }, /obj/machinery/door/airlock/maintenance{ autoset_access = 0; - req_access = list(list(access_maint_tunnels, access_research)) + req_access = list("ACCESS_MAINT", "ACCESS_RESEARCH") }, /turf/floor/plating, /area/exodus/maintenance/research_starboard) diff --git a/maps/exodus/exodus.dm b/maps/exodus/exodus.dm index 3c281037753..f4e5f9d903b 100644 --- a/maps/exodus/exodus.dm +++ b/maps/exodus/exodus.dm @@ -11,7 +11,7 @@ #include "../../mods/gamemodes/mixed/_mixed.dme" #include "../../mods/content/mundane.dm" - #include "../../mods/content/bigpharma/_bigpharma.dme" + #include "../../mods/content/baychems/_baychems.dme" #include "../../mods/content/corporate/_corporate.dme" #include "../../mods/content/government/_government.dme" #include "../../mods/content/matchmaking/_matchmaking.dme" diff --git a/maps/tradeship/tradeship.dm b/maps/tradeship/tradeship.dm index ba6e7bc4f7d..4a39fccb330 100644 --- a/maps/tradeship/tradeship.dm +++ b/maps/tradeship/tradeship.dm @@ -19,6 +19,7 @@ #include "../../mods/content/dungeon_loot/_dungeon_loot.dme" #include "../../mods/content/mundane.dm" + #include "../../mods/content/baychems/_baychems.dme" #include "../../mods/content/bigpharma/_bigpharma.dme" #include "../../mods/content/corporate/_corporate.dme" #include "../../mods/content/government/_government.dme" diff --git a/maps/~mapsystem/maps_antagonism.dm b/maps/~mapsystem/maps_antagonism.dm index b2a1741eaa1..e1a8cfdc6e3 100644 --- a/maps/~mapsystem/maps_antagonism.dm +++ b/maps/~mapsystem/maps_antagonism.dm @@ -9,6 +9,7 @@ "a pair of magboots" = /obj/item/clothing/shoes/magboots, "the master blueprints" = /obj/item/blueprints, "a nasa voidsuit" = /obj/item/clothing/suit/space/void, + "full tank of phoron" = /obj/item/tank/phoron, "full tank of hydrogen" = /obj/item/tank/hydrogen, "a piece of corgi meat" = /obj/item/food/butchery/meat/corgi, "a chief science officer's jumpsuit" = /obj/item/clothing/jumpsuit/research_director, diff --git a/mods/content/baychems/_baychems.dm b/mods/content/baychems/_baychems.dm new file mode 100644 index 00000000000..b4b849189ed --- /dev/null +++ b/mods/content/baychems/_baychems.dm @@ -0,0 +1,3 @@ +// Renames chems to their Bay equivalent. +/decl/modpack/baychems + name = "Bay Chemical Names" \ No newline at end of file diff --git a/mods/content/baychems/_baychems.dme b/mods/content/baychems/_baychems.dme new file mode 100644 index 00000000000..17b3d435946 --- /dev/null +++ b/mods/content/baychems/_baychems.dme @@ -0,0 +1,13 @@ +#ifndef MODPACK_BAYCHEMS +#define MODPACK_BAYCHEMS +// BEGIN_INCLUDE +#include "_baychems.dm" +#include "chems_drugs.dm" +#include "chems_medicines.dm" +#include "chems_painkillers.dm" +#include "chems_poisons.dm" +#include "items.dm" +#include "pills.dm" +#include "reactions.dm" +// END_INCLUDE +#endif \ No newline at end of file diff --git a/mods/content/baychems/chems_drugs.dm b/mods/content/baychems/chems_drugs.dm new file mode 100644 index 00000000000..c90adbe6da2 --- /dev/null +++ b/mods/content/baychems/chems_drugs.dm @@ -0,0 +1,16 @@ +/decl/material/liquid/amphetamines + name = "hyperzine" + +/decl/material/liquid/narcotics + name = "impedrezene" + +/decl/material/liquid/sedatives + name = "midazolam" + +/decl/material/liquid/hallucinogenics + name = "mindbreaker toxin" + lore_text = "Mindbreaker toxin is a derivative of LSD that began as an innocuous research chemical, but received widespread abuse in the late 2100s. Its name was changed to the menacing-sounding \"mindbreaker toxin\" in an attempt to reduce abuse." + +/decl/material/liquid/psychoactives + name = "space drugs" + lore_text = "Erythrithiol mercurate lithium, commonly known as 'space drugs,' is an illegal psychoactive drug that causes narcosis and euphoria in its users." \ No newline at end of file diff --git a/mods/content/baychems/chems_medicines.dm b/mods/content/baychems/chems_medicines.dm new file mode 100644 index 00000000000..1b1c8fbd518 --- /dev/null +++ b/mods/content/baychems/chems_medicines.dm @@ -0,0 +1,116 @@ +// RENAMED: +/decl/material/liquid/stabilizer + name = "inaprovaline" + +/decl/material/liquid/brute_meds + name = "bicaridine" + lore_text = "Bicaridine is an analgesic medication and can be used to treat blunt trauma." + +/decl/material/liquid/burn_meds + name = "kelotane" + lore_text = "Kelotane is a drug used to treat burns." + +/decl/material/liquid/antitoxins + name = "dylovene" + lore_text = "Dylovene is a broad-spectrum antitoxin used to neutralize poisons before they can do significant harm." + +/decl/material/liquid/oxy_meds + name = "dexalin" + lore_text = "Dexalin is used in the treatment of oxygen deprivation." + color = "#0080ff" + uid = "chem_dexalin" + +/decl/material/liquid/oxy_meds/dexalinp + name = "dexalin plus" + lore_text = "Dexalin Plus is used in the treatment of oxygen deprivation. It is highly effective." + color = "#0040ff" + overdose = REAGENTS_OVERDOSE * 0.5 + value = 3.7 + uid = "chem_dexalin_plus" + +/decl/material/liquid/oxy_meds/dexalinp/affect_blood(var/mob/living/M, var/alien, var/removed, var/datum/reagents/holder) + M.add_chemical_effect(CE_OXYGENATED, 2) // change to add_chemical_effect_max later + holder.remove_reagent(/decl/material/gas/carbon_monoxide, 3 * removed) + +/decl/material/liquid/regenerator + name = "tricordrazine" + lore_text = "Tricordrazine is a highly potent stimulant, originally derived from cordrazine. Can be used to treat a wide range of injuries." + +/decl/material/liquid/neuroannealer + name = "alkysine" + lore_text = "Alkysine is a drug used to lessen the damage to neurological tissue after a injury. Can aid in healing brain tissue." + +/decl/material/liquid/eyedrops + name = "imidazoline" + +/decl/material/liquid/retrovirals + name = "ryetalyn" + lore_text = "Ryetalyn can cure all genetic abnomalities via a catalytic process." + +/decl/material/liquid/antirads + name = "hyronalin" + lore_text = "Hyronalin is a medicinal drug used to counter the effect of radiation poisoning." + +/decl/material/liquid/antibiotics + name = "spaceacillin" + lore_text = "An all-purpose antiviral agent." + +/decl/material/liquid/antiseptic + name = "sterilizine" + +/decl/material/liquid/stimulants + name = "methylphenidate" + lore_text = "Improves the ability to concentrate." + +/decl/material/liquid/antidepressants + name = "citalopram" + lore_text = "Stabilizes the mind a little." + +// NEW, NOT RENAMED: +/decl/material/liquid/antidepressants/paroxetine + name = "paroxetine" + value = 3.5 + uid = "chem_paroxetine" + +/decl/material/liquid/antidepressants/paroxetine/affect_blood(var/mob/living/M, var/alien, var/removed, var/datum/reagents/holder) + var/volume = REAGENT_VOLUME(holder, type) + if(volume <= 0.1 && LAZYACCESS(M.chem_doses, type) >= 0.5 && world.time > REAGENT_DATA(holder, type) + 5 MINUTES) + LAZYSET(holder.reagent_data, type, world.time) + to_chat(M, SPAN_WARNING("Your mind feels much less stable...")) + else + M.add_chemical_effect(CE_MIND, 2) + M.adjust_hallucination(-10) + if(world.time > REAGENT_DATA(holder, type) + 5 MINUTES) + LAZYSET(holder.reagent_data, type, world.time) + if(prob(90)) + to_chat(M, SPAN_NOTICE("Your mind feels much more stable.")) + else + to_chat(M, SPAN_WARNING("Your mind breaks apart...")) + M.set_hallucination(200, 100) + +/decl/material/liquid/burn_meds/dermaline + name = "dermaline" + lore_text = "Dermaline is the next step in burn medication. Works twice as good as kelotane and enables the body to restore even the direst heat-damaged tissue." + taste_description = "bitterness" + taste_mult = 1.5 + color = "#ff8000" + overdose = REAGENTS_OVERDOSE * 0.5 + scannable = 1 + value = 3.9 + uid = "chem_dermaline" + +/decl/material/liquid/burn_meds/dermaline/affect_blood(mob/living/M, alien, removed, var/datum/reagents/holder) + ..() + M.heal_organ_damage(0, 6 * removed) // 6 extra damage on top of kelotane's 6 + +/decl/material/liquid/antirads/arithrazine + name = "arithrazine" + lore_text = "Arithrazine is an unstable medication used for the most extreme cases of radiation poisoning." + color = "#008000" + value = 2.7 + uid = "chem_arithrazine" + +/decl/material/liquid/antirads/arithrazine/affect_blood(var/mob/living/M, var/alien, var/removed, var/datum/reagents/holder) + M.radiation = max(M.radiation - 70 * removed, 0) + if(prob(60)) + M.take_organ_damage(4 * removed, 0) \ No newline at end of file diff --git a/mods/content/baychems/chems_painkillers.dm b/mods/content/baychems/chems_painkillers.dm new file mode 100644 index 00000000000..cd2919be877 --- /dev/null +++ b/mods/content/baychems/chems_painkillers.dm @@ -0,0 +1,59 @@ +// RENAMED: +/decl/material/liquid/painkillers/strong + name = "tramadol" + lore_text = "A simple, yet effective opioid painkiller. Don't mix with alcohol." + sedation = 0.05 + additional_effect_threshold = 20 + breathloss_severity = 1 + slowdown_severity = 1.2 + blurred_vision = 0.5 + stuttering_severity = 0.5 + weakness_severity = 0 + slur_severity = 0 + confusion_severity = 0.2 + dizziness_severity = 1 + +/decl/material/liquid/painkillers + name = "paracetamol" + lore_text = "Most probably know this as Tylenol, but this chemical is a mild, simple painkiller." + +// NEW: +/decl/material/liquid/painkillers/oxycodone + name = "oxycodone" //similar to tramadol, more effective but more expensive to prepare, also greater side effects + lore_text = "An effective, strong opioid painkiller. Don't mix with alcohol." + color = "#864794" + overdose = 10 + metabolism = 0.02 + pain_power = 200 + effective_dose = 0.20 + sedation = 1 + additional_effect_threshold = 5 //200 pain power is no joke. + breathloss_severity = 2 + slowdown_severity = 2 + blurred_vision = 0.5 + stuttering_severity = 0.5 + slur_severity = 1 + confusion_severity = 1 + dizziness_severity = 1 + narcotic = TRUE + uid = "chem_oxycodone" + +/decl/material/liquid/painkillers/fentanyl + name = "fentanyl" //similar to oxycodone, but should hit you like a truck and prevent pain shock at all costs + lore_text = "An incredibly powerful opioid painkiller, often utilized as a surgical sedative. Don't mix with alcohol." + color = "#cfe2f3" + overdose = 2 //mix it with water or something else first + metabolism = 0.01 //but also lasts for a long time + pain_power = 500 + effective_dose = 0.10 + sedation = 3 //Acts as a sedative, and also prevents antags from taking fentanyl and becoming invincible. + additional_effect_threshold = 0.25 //Very low threshold. Hard to abuse. + breathloss_severity = 4 + slowdown_severity = 2 + blurred_vision = 1 + stuttering_severity = 1 + slur_severity = 1 + confusion_severity = 1 + dizziness_severity = 2 + narcotic = TRUE + uid = "chem_fentanyl" diff --git a/mods/content/baychems/chems_poisons.dm b/mods/content/baychems/chems_poisons.dm new file mode 100644 index 00000000000..cdc88009e30 --- /dev/null +++ b/mods/content/baychems/chems_poisons.dm @@ -0,0 +1,6 @@ +/decl/material/liquid/paralytics + name = "vecuronium bromide" + +/decl/material/liquid/presyncopics + name = "cryptobiolin" + lore_text = "Cryptobiolin causes presyncopic effects such as confusion and dizziness." \ No newline at end of file diff --git a/mods/content/baychems/items.dm b/mods/content/baychems/items.dm new file mode 100644 index 00000000000..ccb7363ab98 --- /dev/null +++ b/mods/content/baychems/items.dm @@ -0,0 +1,25 @@ +/obj/item/chems/hypospray/autoinjector/pouch_auto/oxy_meds + name = "emergency oxygenation autoinjector" + +/obj/item/rig_module/chem_dispenser + charges = list( + list("dexalin", "dexalin", /decl/material/liquid/oxy_meds, 80), + list("inaprovaline", "inaprovaline", /decl/material/liquid/stabilizer, 80), + list("dylovene", "dylovene", /decl/material/liquid/antitoxins, 80), + list("hyronalin", "hyronalin", /decl/material/liquid/antirads, 80), + list("spaceacillin", "spaceacillin", /decl/material/liquid/antibiotics, 80), + list("tramadol", "tramadol", /decl/material/liquid/painkillers, 80) + ) + +/obj/item/rig_module/chem_dispenser/ninja + //just over a syringe worth of each. Want more? Go refill. Gives the ninja another reason to have to show their face. + charges = list( + list("dexalin", "dexalin", /decl/material/liquid/oxy_meds, 20), + list("inaprovaline", "inaprovaline", /decl/material/liquid/stabilizer, 20), + list("dylovene", "dylovene", /decl/material/liquid/antitoxins, 20), + list("glucose", "glucose", /decl/material/liquid/nutriment/glucose, 80), + list("hyronalin", "hyronalin", /decl/material/liquid/antirads, 20), + list("kelotane", "kelotane", /decl/material/liquid/burn_meds, 20), + list("spaceacillin", "spaceacillin", /decl/material/liquid/antibiotics, 20), + list("tramadol", "tramadol", /decl/material/liquid/painkillers, 20) + ) \ No newline at end of file diff --git a/mods/content/baychems/pills.dm b/mods/content/baychems/pills.dm new file mode 100644 index 00000000000..85376de696c --- /dev/null +++ b/mods/content/baychems/pills.dm @@ -0,0 +1,67 @@ +/obj/item/chems/pill/antitox + name = "dylovene (25u)" + +/obj/item/chems/pill/stox + name = "soporific (15u)" + +/obj/item/chems/pill/burn_meds + name = "kelotane (15u)" + +/obj/item/chems/pill/painkillers + name = "paracetamol (15u)" + +/obj/item/chems/pill/strong_painkillers + name = "tramadol (15u)" + +/obj/item/chems/pill/stabilizer + name = "inaprovaline (30u)" + +/obj/item/chems/pill/oxygen + name = "dexalin (15u)" + +/obj/item/chems/pill/brute_meds + name = "bicaridine (20u)" + +/obj/item/chems/pill/antibiotics + name = "spaceacillin (10u)" + +/obj/item/chems/pill/stimulants + name = "methylphenidate (15u)" + +/obj/item/chems/pill/antidepressants + name = "citalopram (15u)" + +/obj/item/chems/pill/antirads + name = "hyronalin (7u)" + +////Bottles + +/obj/item/pill_bottle/antitox + labeled_name = "dylovene" + +/obj/item/pill_bottle/brute_meds + labeled_name = "bicaridine" + +/obj/item/pill_bottle/oxygen + labeled_name = "dexalin" + +/obj/item/pill_bottle/antitoxins + labeled_name = "dylovene" + +/obj/item/pill_bottle/adrenaline + labeled_name = "inaprovaline" + +/obj/item/pill_bottle/burn_meds + labeled_name = "kelotane" + +/obj/item/pill_bottle/antibiotics + labeled_name = "spaceacillin" + +/obj/item/pill_bottle/painkillers + labeled_name = "tramadol" + +/obj/item/pill_bottle/antidepressants + labeled_name = "citalopram" + +/obj/item/pill_bottle/stimulants + labeled_name = "methylphenidate" diff --git a/mods/content/baychems/reactions.dm b/mods/content/baychems/reactions.dm new file mode 100644 index 00000000000..d3c94dc4f5c --- /dev/null +++ b/mods/content/baychems/reactions.dm @@ -0,0 +1,76 @@ +/decl/chemical_reaction/drug/arithrazine + name = "Arithrazine" + result = /decl/material/liquid/antirads/arithrazine + required_reagents = list(/decl/material/liquid/antirads = 1, /decl/material/liquid/fuel/hydrazine = 1) + result_amount = 2 + +/decl/chemical_reaction/drug/dermaline + name = "Dermaline" + result = /decl/material/liquid/burn_meds/dermaline + required_reagents = list(/decl/material/liquid/acetone = 1, /decl/material/solid/phosphorus = 1, /decl/material/liquid/burn_meds = 1) + result_amount = 3 + +/decl/chemical_reaction/drug/oxy_meds + name = "Dexalin" + result_amount = 1 + required_reagents = list( + /decl/material/liquid/acetone = 1, + /decl/material/solid/phoron = 0.1 + ) + catalysts = list(/decl/material/solid/phoron = 5) + +/decl/chemical_reaction/drug/dexalinp + name = "Dexalin Plus" + result = /decl/material/liquid/oxy_meds/dexalinp + required_reagents = list(/decl/material/liquid/oxy_meds = 1, /decl/material/solid/carbon = 1, /decl/material/solid/metal/iron = 1) + result_amount = 3 + +/decl/chemical_reaction/drug/paracetamol + name = "Paracetamol" + result = /decl/material/liquid/painkillers + required_reagents = list( + /decl/material/liquid/stabilizer = 1, + /decl/material/gas/nitrogen = 1, + /decl/material/liquid/water = 1 + ) + result_amount = 3 + +/decl/chemical_reaction/drug/strong_painkillers + name = "Tramadol" + result = /decl/material/liquid/painkillers/strong + required_reagents = list( + /decl/material/liquid/painkillers = 1, + /decl/material/liquid/ethanol = 1, + /decl/material/liquid/acetone = 1 + ) + result_amount = 3 + +/decl/chemical_reaction/drug/oxycodone + name = "Oxycodone" + result = /decl/material/liquid/painkillers/oxycodone + required_reagents = list(/decl/material/liquid/ethanol = 1, /decl/material/liquid/painkillers/strong = 1) + catalysts = list(/decl/material/solid/phoron = 5) + result_amount = 1 + +/decl/chemical_reaction/drug/fentanyl + name = "Fentanyl" + result = /decl/material/liquid/painkillers/fentanyl + required_reagents = list(/decl/material/liquid/painkillers/oxycodone = 2, /decl/material/liquid/sedatives = 1, /decl/material/liquid/hallucinogenics = 1) + result_amount = 2 + +/decl/chemical_reaction/drug/paroxetine + name = "Paroxetine" + result = /decl/material/liquid/antidepressants/paroxetine + required_reagents = list(/decl/material/liquid/hallucinogenics = 1, /decl/material/liquid/acetone = 1, /decl/material/liquid/stabilizer = 1) + result_amount = 3 + +/decl/chemical_reaction/drug/hallucinogenics + name = "Mindbreaker Toxin" + required_reagents = list(/decl/material/solid/silicon = 1, /decl/material/gas/ammonia = 1, /decl/material/liquid/antitoxins = 1) + minimum_temperature = 0 + maximum_temperature = INFINITY + +/decl/chemical_reaction/drug/psychoactives + name = "Space Drugs" + minimum_temperature = 0 + maximum_temperature = INFINITY diff --git a/mods/content/xenobiology/colours/_colour.dm b/mods/content/xenobiology/colours/_colour.dm index 3b1248c353d..f7eb39b4353 100644 --- a/mods/content/xenobiology/colours/_colour.dm +++ b/mods/content/xenobiology/colours/_colour.dm @@ -11,8 +11,8 @@ var/reaction_sound = 'sound/effects/bubbles.ogg' var/list/reaction_strings = list() var/list/reaction_procs = list( - /decl/material/liquid/blood = /decl/slime_colour/proc/try_blood_reaction, - /decl/material/solid/metal/uranium = /decl/slime_colour/proc/try_uranium_reaction + /decl/material/liquid/blood = /decl/slime_colour/proc/try_blood_reaction, + /decl/material/solid/phoron = /decl/slime_colour/proc/try_phoron_reaction ) /decl/slime_colour/proc/handle_reaction(var/datum/reagents/holder) @@ -48,7 +48,7 @@ return handle_blood_reaction(holder) /decl/slime_colour/proc/handle_blood_reaction(var/datum/reagents/holder) return FALSE -/decl/slime_colour/proc/try_uranium_reaction(var/datum/reagents/holder) - return handle_uranium_reaction(holder) -/decl/slime_colour/proc/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/proc/try_phoron_reaction(var/datum/reagents/holder) + return handle_phoron_reaction(holder) +/decl/slime_colour/proc/handle_phoron_reaction(var/datum/reagents/holder) return FALSE \ No newline at end of file diff --git a/mods/content/xenobiology/colours/colour_adamantine.dm b/mods/content/xenobiology/colours/colour_adamantine.dm index 1e4619298d9..b72528be84a 100644 --- a/mods/content/xenobiology/colours/colour_adamantine.dm +++ b/mods/content/xenobiology/colours/colour_adamantine.dm @@ -4,15 +4,15 @@ adult_icon = 'mods/content/xenobiology/icons/slimes/slime_adult_adamantine.dmi' extract_icon = 'mods/content/xenobiology/icons/slimes/slime_extract_adamantine.dmi' reaction_strings = list( - /decl/material/liquid/blood = "Synthesies some crystallizing agent.", - /decl/material/solid/metal/uranium = "Create a rune that will allow ghosts to join as loyal golems." + /decl/material/liquid/blood = "Synthesizes some crystallizing agent.", + /decl/material/solid/phoron = "Create a rune that will allow ghosts to join as loyal golems." ) /decl/slime_colour/adamantine/handle_blood_reaction(var/datum/reagents/holder) holder.add_reagent(/decl/material/liquid/crystal_agent, 10) return TRUE -/decl/slime_colour/adamantine/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/adamantine/handle_phoron_reaction(var/datum/reagents/holder) var/location = get_turf(holder.get_reaction_loc()) if(location) var/obj/effect/golemrune/Z = new(location) diff --git a/mods/content/xenobiology/colours/colour_blue.dm b/mods/content/xenobiology/colours/colour_blue.dm index bca57549dd1..b086ec5018f 100644 --- a/mods/content/xenobiology/colours/colour_blue.dm +++ b/mods/content/xenobiology/colours/colour_blue.dm @@ -9,8 +9,8 @@ baby_icon = 'mods/content/xenobiology/icons/slimes/slime_baby_blue.dmi' adult_icon = 'mods/content/xenobiology/icons/slimes/slime_adult_blue.dmi' extract_icon = 'mods/content/xenobiology/icons/slimes/slime_extract_blue.dmi' - reaction_strings = list(/decl/material/solid/metal/uranium = "Synthesises a small amount of frost oil.") + reaction_strings = list(/decl/material/solid/phoron = "Synthesises a small amount of frost oil.") -/decl/slime_colour/blue/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/blue/handle_phoron_reaction(var/datum/reagents/holder) holder.add_reagent(/decl/material/liquid/frostoil, 10) return TRUE diff --git a/mods/content/xenobiology/colours/colour_cerulean.dm b/mods/content/xenobiology/colours/colour_cerulean.dm index 0062feab471..5f808980735 100644 --- a/mods/content/xenobiology/colours/colour_cerulean.dm +++ b/mods/content/xenobiology/colours/colour_cerulean.dm @@ -3,9 +3,9 @@ baby_icon = 'mods/content/xenobiology/icons/slimes/slime_baby_cerulean.dmi' adult_icon = 'mods/content/xenobiology/icons/slimes/slime_adult_cerulean.dmi' extract_icon = 'mods/content/xenobiology/icons/slimes/slime_extract_cerulean.dmi' - reaction_strings = list(/decl/material/solid/metal/uranium = "Synthesises a steroid that can enhance a slime core to have three uses.") + reaction_strings = list(/decl/material/solid/phoron = "Synthesises a steroid that can enhance a slime core to have three uses.") -/decl/slime_colour/cerulean/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/cerulean/handle_phoron_reaction(var/datum/reagents/holder) var/location = get_turf(holder.get_reaction_loc()) if(location) new /obj/item/slime_extract_enhancer(location) diff --git a/mods/content/xenobiology/colours/colour_dark_blue.dm b/mods/content/xenobiology/colours/colour_dark_blue.dm index 7d07e6b1cec..7890ab7e1d1 100644 --- a/mods/content/xenobiology/colours/colour_dark_blue.dm +++ b/mods/content/xenobiology/colours/colour_dark_blue.dm @@ -9,9 +9,9 @@ baby_icon = 'mods/content/xenobiology/icons/slimes/slime_baby_darkblue.dmi' adult_icon = 'mods/content/xenobiology/icons/slimes/slime_adult_darkblue.dmi' extract_icon = 'mods/content/xenobiology/icons/slimes/slime_extract_darkblue.dmi' - reaction_strings = list(/decl/material/solid/metal/uranium = "Drastically lowers the bodytemperature of surrounding creatures.") + reaction_strings = list(/decl/material/solid/phoron = "Drastically lowers the bodytemperature of surrounding creatures.") -/decl/slime_colour/dark_blue/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/dark_blue/handle_phoron_reaction(var/datum/reagents/holder) . = TRUE sleep(5 SECONDS) var/location = get_turf(holder.get_reaction_loc()) diff --git a/mods/content/xenobiology/colours/colour_dark_purple.dm b/mods/content/xenobiology/colours/colour_dark_purple.dm index c619674b2f8..b136647f66e 100644 --- a/mods/content/xenobiology/colours/colour_dark_purple.dm +++ b/mods/content/xenobiology/colours/colour_dark_purple.dm @@ -9,10 +9,10 @@ baby_icon = 'mods/content/xenobiology/icons/slimes/slime_baby_darkpurple.dmi' adult_icon = 'mods/content/xenobiology/icons/slimes/slime_adult_darkpurple.dmi' extract_icon = 'mods/content/xenobiology/icons/slimes/slime_extract_darkpurple.dmi' - reaction_strings = list(/decl/material/solid/metal/uranium = "Synthesises some metallic hydrogen.") + reaction_strings = list(/decl/material/solid/phoron = "Synthesises some phoron.") -/decl/slime_colour/dark_purple/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/dark_purple/handle_phoron_reaction(var/datum/reagents/holder) var/location = get_turf(holder.get_reaction_loc()) if(location) - SSmaterials.create_object(/decl/material/solid/metallic_hydrogen, location, 10, /obj/item/stack/material/cubes) + SSmaterials.create_object(/decl/material/solid/phoron, location, 10, /obj/item/stack/material/cubes) return TRUE diff --git a/mods/content/xenobiology/colours/colour_gold.dm b/mods/content/xenobiology/colours/colour_gold.dm index a6c7eeb2537..75745f146bb 100644 --- a/mods/content/xenobiology/colours/colour_gold.dm +++ b/mods/content/xenobiology/colours/colour_gold.dm @@ -9,7 +9,7 @@ baby_icon = 'mods/content/xenobiology/icons/slimes/slime_baby_gold.dmi' adult_icon = 'mods/content/xenobiology/icons/slimes/slime_adult_gold.dmi' extract_icon = 'mods/content/xenobiology/icons/slimes/slime_extract_gold.dmi' - reaction_strings = list(/decl/material/solid/metal/uranium = "Synthesises a cute critter.") + reaction_strings = list(/decl/material/solid/phoron = "Synthesises a cute critter.") var/list/possible_mobs = list( /mob/living/simple_animal/passive/cat, /mob/living/simple_animal/passive/cat/kitten, @@ -21,7 +21,7 @@ /mob/living/simple_animal/fowl/duck ) -/decl/slime_colour/gold/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/gold/handle_phoron_reaction(var/datum/reagents/holder) var/location = get_turf(holder.get_reaction_loc()) if(location) var/mob_type = pick(possible_mobs) diff --git a/mods/content/xenobiology/colours/colour_grey.dm b/mods/content/xenobiology/colours/colour_grey.dm index ea087baf473..3b3228a1609 100644 --- a/mods/content/xenobiology/colours/colour_grey.dm +++ b/mods/content/xenobiology/colours/colour_grey.dm @@ -7,8 +7,8 @@ /decl/slime_colour/purple ) reaction_strings = list( - /decl/material/liquid/blood = "Synthesises some monkey cubes.", - /decl/material/solid/metal/uranium = "Revives a baby slime from a core." + /decl/material/liquid/blood = "Synthesises some monkey cubes.", + /decl/material/solid/phoron = "Revives a baby slime from a core." ) /decl/slime_colour/grey/handle_blood_reaction(var/datum/reagents/holder) @@ -18,7 +18,7 @@ new /obj/item/food/monkeycube(location) return TRUE -/decl/slime_colour/grey/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/grey/handle_phoron_reaction(var/datum/reagents/holder) var/turf/location = get_turf(holder.get_reaction_loc()) if(istype(location)) location.visible_message(SPAN_WARNING("The core begins to quiver and grow, and soon a new baby slime emerges from it!")) diff --git a/mods/content/xenobiology/colours/colour_light_pink.dm b/mods/content/xenobiology/colours/colour_light_pink.dm index 5aceee852b0..c4df144606d 100644 --- a/mods/content/xenobiology/colours/colour_light_pink.dm +++ b/mods/content/xenobiology/colours/colour_light_pink.dm @@ -3,9 +3,9 @@ baby_icon = 'mods/content/xenobiology/icons/slimes/slime_baby_lightpink.dmi' adult_icon = 'mods/content/xenobiology/icons/slimes/slime_adult_lightpink.dmi' extract_icon = 'mods/content/xenobiology/icons/slimes/slime_extract_lightpink.dmi' - reaction_strings = list(/decl/material/solid/metal/uranium = "Synthesises a potion that turns an adult slime into a docile pet.") + reaction_strings = list(/decl/material/solid/phoron = "Synthesises a potion that turns an adult slime into a docile pet.") -/decl/slime_colour/light_pink/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/light_pink/handle_phoron_reaction(var/datum/reagents/holder) var/location = get_turf(holder.get_reaction_loc()) if(location) new /obj/item/slime_potion/advanced(location) diff --git a/mods/content/xenobiology/colours/colour_metal.dm b/mods/content/xenobiology/colours/colour_metal.dm index c100aa7bb4d..5f9da0b5235 100644 --- a/mods/content/xenobiology/colours/colour_metal.dm +++ b/mods/content/xenobiology/colours/colour_metal.dm @@ -9,9 +9,9 @@ baby_icon = 'mods/content/xenobiology/icons/slimes/slime_baby_metal.dmi' adult_icon = 'mods/content/xenobiology/icons/slimes/slime_adult_metal.dmi' extract_icon = 'mods/content/xenobiology/icons/slimes/slime_extract_metal.dmi' - reaction_strings = list(/decl/material/solid/metal/uranium = "Synthesises cubes of steel and plasteel.") + reaction_strings = list(/decl/material/solid/phoron = "Synthesises cubes of steel and plasteel.") -/decl/slime_colour/metal/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/metal/handle_phoron_reaction(var/datum/reagents/holder) var/location = get_turf(holder.get_reaction_loc()) if(location) SSmaterials.create_object(/decl/material/solid/metal/steel, location, 15, /obj/item/stack/material/cubes) diff --git a/mods/content/xenobiology/colours/colour_oil.dm b/mods/content/xenobiology/colours/colour_oil.dm index 13d418033d7..27231ab942f 100644 --- a/mods/content/xenobiology/colours/colour_oil.dm +++ b/mods/content/xenobiology/colours/colour_oil.dm @@ -3,9 +3,9 @@ baby_icon = 'mods/content/xenobiology/icons/slimes/slime_baby_oil.dmi' adult_icon = 'mods/content/xenobiology/icons/slimes/slime_adult_oil.dmi' extract_icon = 'mods/content/xenobiology/icons/slimes/slime_extract_oil.dmi' - reaction_strings = list(/decl/material/solid/metal/uranium = "Causes a violent explosion after a few seconds. Run!") + reaction_strings = list(/decl/material/solid/phoron = "Causes a violent explosion after a few seconds. Run!") -/decl/slime_colour/oil/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/oil/handle_phoron_reaction(var/datum/reagents/holder) . = TRUE sleep(5 SECONDS) var/location = holder.get_reaction_loc() diff --git a/mods/content/xenobiology/colours/colour_orange.dm b/mods/content/xenobiology/colours/colour_orange.dm index 060bf4ffcf1..3db0ae4d295 100644 --- a/mods/content/xenobiology/colours/colour_orange.dm +++ b/mods/content/xenobiology/colours/colour_orange.dm @@ -10,18 +10,18 @@ adult_icon = 'mods/content/xenobiology/icons/slimes/slime_adult_orange.dmi' extract_icon = 'mods/content/xenobiology/icons/slimes/slime_extract_orange.dmi' reaction_strings = list( - /decl/material/liquid/blood = "Synthesises a small amount of capsaicin.", - /decl/material/solid/metal/uranium = "Causes a violent conflagration after a few seconds. Run!" + /decl/material/liquid/blood = "Synthesises a small amount of capsaicin.", + /decl/material/solid/phoron = "Causes a violent conflagration after a few seconds. Run!" ) /decl/slime_colour/orange/handle_blood_reaction(var/datum/reagents/holder) holder.add_reagent(/decl/material/liquid/capsaicin, 10) return TRUE -/decl/slime_colour/orange/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/orange/handle_phoron_reaction(var/datum/reagents/holder) . = TRUE sleep(5 SECONDS) var/turf/location = get_turf(holder.get_reaction_loc()) if(location) - location.assume_gas(/decl/material/gas/hydrogen, 250, 1400) + location.assume_gas(/decl/material/solid/phoron, 250, 1400) location.hotspot_expose(700, 400) diff --git a/mods/content/xenobiology/colours/colour_pink.dm b/mods/content/xenobiology/colours/colour_pink.dm index 6a03de1fb22..6978607043b 100644 --- a/mods/content/xenobiology/colours/colour_pink.dm +++ b/mods/content/xenobiology/colours/colour_pink.dm @@ -9,9 +9,9 @@ baby_icon = 'mods/content/xenobiology/icons/slimes/slime_baby_pink.dmi' adult_icon = 'mods/content/xenobiology/icons/slimes/slime_adult_pink.dmi' extract_icon = 'mods/content/xenobiology/icons/slimes/slime_extract_pink.dmi' - reaction_strings = list(/decl/material/solid/metal/uranium ="Synthesises a potion that turns a baby slime into a docile pet.") + reaction_strings = list(/decl/material/solid/phoron ="Synthesises a potion that turns a baby slime into a docile pet.") -/decl/slime_colour/pink/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/pink/handle_phoron_reaction(var/datum/reagents/holder) var/turf/location = get_turf(holder.get_reaction_loc()) if(location) new /obj/item/slime_potion(location) diff --git a/mods/content/xenobiology/colours/colour_purple.dm b/mods/content/xenobiology/colours/colour_purple.dm index 8a839ba167f..f931c71e331 100644 --- a/mods/content/xenobiology/colours/colour_purple.dm +++ b/mods/content/xenobiology/colours/colour_purple.dm @@ -9,9 +9,9 @@ baby_icon = 'mods/content/xenobiology/icons/slimes/slime_baby_purple.dmi' adult_icon = 'mods/content/xenobiology/icons/slimes/slime_adult_purple.dmi' extract_icon = 'mods/content/xenobiology/icons/slimes/slime_extract_purple.dmi' - reaction_strings = list(/decl/material/solid/metal/uranium = "Synthesises a steroid capable of causing a slime to create additional slime cores.") + reaction_strings = list(/decl/material/solid/phoron = "Synthesises a steroid capable of causing a slime to create additional slime cores.") -/decl/slime_colour/purple/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/purple/handle_phoron_reaction(var/datum/reagents/holder) var/turf/location = get_turf(holder.get_reaction_loc()) if(location) new /obj/item/slime_steroid(location) diff --git a/mods/content/xenobiology/colours/colour_pyrite.dm b/mods/content/xenobiology/colours/colour_pyrite.dm index f87a9e8e65a..64feffc1378 100644 --- a/mods/content/xenobiology/colours/colour_pyrite.dm +++ b/mods/content/xenobiology/colours/colour_pyrite.dm @@ -3,9 +3,9 @@ baby_icon = 'mods/content/xenobiology/icons/slimes/slime_baby_pyrite.dmi' adult_icon = 'mods/content/xenobiology/icons/slimes/slime_adult_pyrite.dmi' extract_icon = 'mods/content/xenobiology/icons/slimes/slime_extract_pyrite.dmi' - reaction_strings = list(/decl/material/solid/metal/uranium = "Synthesises a random bucket of paint.") + reaction_strings = list(/decl/material/solid/phoron = "Synthesises a random bucket of paint.") -/decl/slime_colour/pyrite/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/pyrite/handle_phoron_reaction(var/datum/reagents/holder) var/turf/location = get_turf(holder.get_reaction_loc()) if(location) new /obj/item/chems/glass/paint/random(location) diff --git a/mods/content/xenobiology/colours/colour_quantum.dm b/mods/content/xenobiology/colours/colour_quantum.dm index eb249750c32..3353e2b4680 100644 --- a/mods/content/xenobiology/colours/colour_quantum.dm +++ b/mods/content/xenobiology/colours/colour_quantum.dm @@ -4,9 +4,9 @@ adult_icon = 'mods/content/xenobiology/icons/slimes/slime_adult_quantum.dmi' extract_icon = 'mods/content/xenobiology/icons/slimes/slime_extract_quantum.dmi' reaction_sound = 'sound/effects/teleport.ogg' - reaction_strings = list(/decl/material/solid/metal/uranium = "Randomly teleports everything around the core.") + reaction_strings = list(/decl/material/solid/phoron = "Randomly teleports everything around the core.") -/decl/slime_colour/quantum/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/quantum/handle_phoron_reaction(var/datum/reagents/holder) var/turf/location = get_turf(holder.get_reaction_loc()) if(location) var/list/turfs = RANGE_TURFS(location, 6) diff --git a/mods/content/xenobiology/colours/colour_sepia.dm b/mods/content/xenobiology/colours/colour_sepia.dm index 644c228fb93..af8516f1214 100644 --- a/mods/content/xenobiology/colours/colour_sepia.dm +++ b/mods/content/xenobiology/colours/colour_sepia.dm @@ -4,8 +4,8 @@ adult_icon = 'mods/content/xenobiology/icons/slimes/slime_adult_sepia.dmi' extract_icon = 'mods/content/xenobiology/icons/slimes/slime_extract_sepia.dmi' reaction_strings = list( - /decl/material/liquid/blood = "Synthesises a camera film refill.", - /decl/material/solid/metal/uranium = "Synthesises a camera." + /decl/material/liquid/blood = "Synthesises a camera film refill.", + /decl/material/solid/phoron = "Synthesises a camera." ) /decl/slime_colour/sepia/handle_blood_reaction(var/datum/reagents/holder) @@ -15,7 +15,7 @@ new /obj/item/camera_film(location) return TRUE -/decl/slime_colour/sepia/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/sepia/handle_phoron_reaction(var/datum/reagents/holder) var/turf/location = get_turf(holder.get_reaction_loc()) if(location) new /obj/item/camera(location) diff --git a/mods/content/xenobiology/colours/colour_silver.dm b/mods/content/xenobiology/colours/colour_silver.dm index a64e51eaadc..a99e044b05d 100644 --- a/mods/content/xenobiology/colours/colour_silver.dm +++ b/mods/content/xenobiology/colours/colour_silver.dm @@ -9,10 +9,10 @@ baby_icon = 'mods/content/xenobiology/icons/slimes/slime_baby_silver.dmi' adult_icon = 'mods/content/xenobiology/icons/slimes/slime_adult_silver.dmi' extract_icon = 'mods/content/xenobiology/icons/slimes/slime_extract_silver.dmi' - reaction_strings = list(/decl/material/solid/metal/uranium = "Synthesises a large amount of food.") + reaction_strings = list(/decl/material/solid/phoron = "Synthesises a large amount of food.") var/static/list/borks = subtypesof(/obj/item/food) -/decl/slime_colour/silver/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/silver/handle_phoron_reaction(var/datum/reagents/holder) var/location = get_turf(holder.get_reaction_loc()) if(location) playsound(location, 'sound/effects/phasein.ogg', 100, 1) diff --git a/mods/content/xenobiology/colours/colour_yellow.dm b/mods/content/xenobiology/colours/colour_yellow.dm index e19a5477099..bc1c1ccbd74 100644 --- a/mods/content/xenobiology/colours/colour_yellow.dm +++ b/mods/content/xenobiology/colours/colour_yellow.dm @@ -10,9 +10,9 @@ adult_icon = 'mods/content/xenobiology/icons/slimes/slime_adult_yellow.dmi' extract_icon = 'mods/content/xenobiology/icons/slimes/slime_extract_yellow.dmi' reaction_strings = list( - /decl/material/liquid/blood = "Causes a localized electromagnetic pulse.", - /decl/material/solid/metal/uranium = "Converts a slime core into a portable power source.", - /decl/material/liquid/water = "Converts a slime core into a portable light source." + /decl/material/liquid/blood = "Causes a localized electromagnetic pulse.", + /decl/material/solid/phoron = "Converts a slime core into a portable power source.", + /decl/material/liquid/water = "Converts a slime core into a portable light source." ) /decl/slime_colour/yellow/Initialize() @@ -25,7 +25,7 @@ empulse(location, 3, 7) return TRUE -/decl/slime_colour/yellow/handle_uranium_reaction(var/datum/reagents/holder) +/decl/slime_colour/yellow/handle_phoron_reaction(var/datum/reagents/holder) var/location = get_turf(holder.get_reaction_loc()) if(location) new /obj/item/cell/slime(location) diff --git a/mods/content/xenobiology/slime/items_cell.dm b/mods/content/xenobiology/slime/items_cell.dm index 417af572337..c8b16941691 100644 --- a/mods/content/xenobiology/slime/items_cell.dm +++ b/mods/content/xenobiology/slime/items_cell.dm @@ -1,6 +1,6 @@ /obj/item/cell/slime name = "charged slime core" - desc = "A yellow slime core that crackles with power." + desc = "A yellow slime core infused with phoron. It crackles with power." origin_tech = @'{"powerstorage":2,"biotech":4}' icon = 'mods/content/xenobiology/icons/slimes/slime_extract_yellow.dmi' icon_state = ICON_STATE_WORLD diff --git a/mods/species/ascent/datum/species.dm b/mods/species/ascent/datum/species.dm index b375771d75e..462a995ada4 100644 --- a/mods/species/ascent/datum/species.dm +++ b/mods/species/ascent/datum/species.dm @@ -64,7 +64,6 @@ breath_type = /decl/material/gas/methyl_bromide exhale_type = /decl/material/gas/methane - poison_types = list(/decl/material/gas/chlorine) available_pronouns = list(/decl/pronouns/male) diff --git a/mods/species/ascent/items/clothing.dm b/mods/species/ascent/items/clothing.dm index 3814e1bd866..b1c32b4a971 100644 --- a/mods/species/ascent/items/clothing.dm +++ b/mods/species/ascent/items/clothing.dm @@ -25,6 +25,7 @@ sprite_sheets = list(BODYTYPE_MANTID_LARGE = 'mods/species/ascent/icons/clothing/mask_gyne.dmi') bodytype_equip_flags = BODY_FLAG_GYNE | BODY_FLAG_ALATE filtered_gases = list( + /decl/material/solid/phoron, /decl/material/gas/nitrous_oxide, /decl/material/gas/chlorine, /decl/material/gas/ammonia, diff --git a/mods/species/vox/gear/gear_mask.dm b/mods/species/vox/gear/gear_mask.dm index 69bf237f1ff..03992704064 100644 --- a/mods/species/vox/gear/gear_mask.dm +++ b/mods/species/vox/gear/gear_mask.dm @@ -14,6 +14,7 @@ body_parts_covered = SLOT_EYES filtered_gases = list( /decl/material/gas/oxygen, + /decl/material/solid/phoron, /decl/material/gas/nitrous_oxide, /decl/material/gas/chlorine, /decl/material/gas/ammonia, diff --git a/nano/templates/supermatter_monitor.tmpl b/nano/templates/supermatter_monitor.tmpl index 8dfaa46d868..0927454e01c 100644 --- a/nano/templates/supermatter_monitor.tmpl +++ b/nano/templates/supermatter_monitor.tmpl @@ -63,7 +63,7 @@ PH:
- {{:data.SM_gas_EX}} % + {{:data.SM_gas_PH}} %
H2: