diff --git a/baystation12.dme b/baystation12.dme index 9ac1078324..0cb07b916e 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1263,10 +1263,6 @@ #include "code\modules\surgery\ribcage.dm" #include "code\modules\surgery\robolimbs.dm" #include "code\modules\surgery\surgery.dm" -#include "code\modules\telesci\bscrystal.dm" -#include "code\modules\telesci\gps.dm" -#include "code\modules\telesci\telepad.dm" -#include "code\modules\telesci\telesci_computer.dm" #include "code\modules\virus2\analyser.dm" #include "code\modules\virus2\antibodies.dm" #include "code\modules\virus2\centrifuge.dm" diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm index 4c386f44ec..60d6f741af 100644 --- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm @@ -104,7 +104,7 @@ var/datum/gas_mixture/environment = loc.return_air() if(scrubbing) - if((environment.toxins>0) || (environment.carbon_dioxide>0) || (environment.trace_gases.len>0)) + if((environment.toxins>0.001) || (environment.carbon_dioxide>0.001) || (environment.trace_gases.len>0)) var/transfer_moles = min(1, volume_rate/environment.volume)*environment.total_moles() //Take a gas sample diff --git a/code/ATMOSPHERICS/datum_pipe_network.dm b/code/ATMOSPHERICS/datum_pipe_network.dm index bff2d0ee5e..83b269f660 100644 --- a/code/ATMOSPHERICS/datum_pipe_network.dm +++ b/code/ATMOSPHERICS/datum_pipe_network.dm @@ -54,8 +54,6 @@ datum/pipe_network for(var/datum/pipeline/line_member in giver.line_members) line_member.network = src - del(giver) - update_network_gases() return 1 diff --git a/code/TriDimension/Turfs.dm b/code/TriDimension/Turfs.dm index 94114c9a9e..ae7bf8202e 100644 --- a/code/TriDimension/Turfs.dm +++ b/code/TriDimension/Turfs.dm @@ -53,6 +53,13 @@ H:updatehealth() return ..() +/turf/proc/hasbelow() + var/turf/controllerlocation = locate(1, 1, z) + for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) + if(controller.down) + return 1 + return 0 + /turf/simulated/floor/open/proc/getbelow() var/turf/controllerlocation = locate(1, 1, z) for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) @@ -73,7 +80,7 @@ //overwrite the attackby of space to transform it to openspace if necessary /turf/space/attackby(obj/item/C as obj, mob/user as mob) - if (istype(C, /obj/item/weapon/cable_coil)) + if (istype(C, /obj/item/weapon/cable_coil) && src.hasbelow()) var/turf/simulated/floor/open/W = src.ChangeTurf(/turf/simulated/floor/open) W.attackby(C, user) return diff --git a/code/WorkInProgress/Ported/Bureaucracy/filing.dm b/code/WorkInProgress/Ported/Bureaucracy/filing.dm index 9e5a990f55..bf01c6dd27 100644 --- a/code/WorkInProgress/Ported/Bureaucracy/filing.dm +++ b/code/WorkInProgress/Ported/Bureaucracy/filing.dm @@ -8,7 +8,7 @@ /obj/structure/filingcabinet/attackby(obj/item/weapon/paper/P,mob/M) if(istype(P)) - M << "You put the [P] in the [src]." + M << "You put \the [P] in the [src]." M.drop_item() P.loc = src else diff --git a/code/ZAS/Turf.dm b/code/ZAS/Turf.dm index fece782aa7..e989d65455 100644 --- a/code/ZAS/Turf.dm +++ b/code/ZAS/Turf.dm @@ -173,7 +173,6 @@ if(connections) connections.update_all() /turf/assume_air(datum/gas_mixture/giver) //use this for machines to adjust air - del(giver) return 0 /turf/return_air() diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index ee2f220d9f..12941e7cc6 100755 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -5,7 +5,7 @@ //BIG NOTE: Don't add living things to crates, that's bad, it will break the shuttle. //NEW NOTE: Do NOT set the price of any crates below 7 points. Doing so allows infinite points. -var/list/all_supply_groups = list("Operations","Security","Hospitality","Engineering","Medical / Science","Hydroponics") +var/list/all_supply_groups = list("Operations","Security","Hospitality","Engineering","Medical / Science","Hydroponics", "Supply", "Miscellaneous") /datum/supply_packs var/name = null @@ -44,7 +44,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee hidden = 1 /datum/supply_packs/food - name = "Food crate" + name = "Kitchen supply crate" contains = list(/obj/item/weapon/reagent_containers/food/snacks/flour, /obj/item/weapon/reagent_containers/food/snacks/flour, /obj/item/weapon/reagent_containers/food/snacks/flour, @@ -61,7 +61,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee cost = 10 containertype = /obj/structure/closet/crate/freezer containername = "Food crate" - group = "Hospitality" + group = "Supply" /datum/supply_packs/monkey name = "Monkey crate" @@ -113,7 +113,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee group = "Security" /datum/supply_packs/toner - name = "Toner Cartridges" + name = "Toner cartridges" contains = list(/obj/item/device/toner, /obj/item/device/toner, /obj/item/device/toner, @@ -122,8 +122,8 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /obj/item/device/toner) cost = 10 containertype = /obj/structure/closet/crate - containername = "Toner Cartridges" - group = "Operations" + containername = "Toner cartridges" + group = "Supply" /datum/supply_packs/party name = "Party equipment" @@ -176,7 +176,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /obj/item/clothing/mask/gas) cost = 35 containertype = /obj/structure/closet/crate/internals - containername = "Emergency Crate" + containername = "Emergency crate" group = "Engineering" /datum/supply_packs/evacuation @@ -208,7 +208,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee cost = 10 containertype = /obj/structure/closet/crate containername = "Janitorial supplies" - group = "Operations" + group = "Supply" /datum/supply_packs/lightbulbs name = "Replacement lights" @@ -229,7 +229,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee cost = 20 containertype = /obj/structure/closet/crate containername = "Wizard costume crate" - group = "Operations" + group = "Miscellaneous" /datum/supply_packs/mule name = "MULEbot Crate" @@ -266,38 +266,39 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee //farm animals - useless and annoying, but potentially a good source of food /datum/supply_packs/cow - name = "Cow Crate" + name = "Cow crate" cost = 30 containertype = /obj/structure/largecrate/cow - containername = "Cow Crate" + containername = "Cow crate" access = access_hydroponics + group = "Hydroponics" /datum/supply_packs/goat - name = "Goat Crate" + name = "Goat crate" cost = 25 containertype = /obj/structure/largecrate/goat - containername = "Goat Crate" + containername = "Goat crate" access = access_hydroponics group = "Hydroponics" /datum/supply_packs/chicken - name = "Chicken Crate" + name = "Chicken crate" cost = 20 containertype = /obj/structure/largecrate/chick - containername = "Chicken Crate" + containername = "Chicken crate" access = access_hydroponics group = "Hydroponics" /datum/supply_packs/lisa - name = "Corgi Crate" + name = "Corgi crate" contains = list() cost = 50 containertype = /obj/structure/largecrate/lisa - containername = "Corgi Crate" + containername = "Corgi crate" group = "Hydroponics" /datum/supply_packs/seeds - name = "Seeds Crate" + name = "Seeds crate" contains = list(/obj/item/seeds/chiliseed, /obj/item/seeds/berryseed, /obj/item/seeds/cornseed, @@ -322,7 +323,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee group = "Hydroponics" /datum/supply_packs/weedcontrol - name = "Weed Control Crate" + name = "Weed control crate" contains = list(/obj/item/weapon/scythe, /obj/item/clothing/mask/gas, /obj/item/weapon/grenade/chem_grenade/antiweed, @@ -334,7 +335,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee group = "Hydroponics" /datum/supply_packs/exoticseeds - name = "Exotic Seeds Crate" + name = "Exotic seeds crate" contains = list(/obj/item/seeds/nettleseed, /obj/item/seeds/replicapod, /obj/item/seeds/replicapod, @@ -373,7 +374,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee group = "Medical / Science" /datum/supply_packs/virus - name = "Virus crate" + name = "Virus sample crate" /* contains = list(/obj/item/weapon/reagent_containers/glass/bottle/flu_virion, /obj/item/weapon/reagent_containers/glass/bottle/cold, /obj/item/weapon/reagent_containers/glass/bottle/epiglottis_virion, @@ -392,12 +393,12 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /obj/item/weapon/virusdish/random) cost = 25 containertype = "/obj/structure/closet/crate/secure" - containername = "Virus crate" + containername = "Virus sample crate" access = access_cmo group = "Medical / Science" /datum/supply_packs/metal50 - name = "50 Metal Sheets" + name = "50 metal sheets" contains = list(/obj/item/stack/sheet/metal) amount = 50 cost = 10 @@ -406,7 +407,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee group = "Engineering" /datum/supply_packs/glass50 - name = "50 Glass Sheets" + name = "50 glass sheets" contains = list(/obj/item/stack/sheet/glass) amount = 50 cost = 10 @@ -415,7 +416,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee group = "Engineering" /datum/supply_packs/wood50 - name = "50 Wooden Planks" + name = "50 wooden planks" contains = list(/obj/item/stack/sheet/wood) amount = 50 cost = 10 @@ -506,7 +507,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /obj/item/weapon/paper/solar) cost = 20 containertype = /obj/structure/closet/crate - containername = "solar pack crate" + containername = "Solar pack crate" group = "Engineering" /datum/supply_packs/engine @@ -582,7 +583,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/robotics - name = "Robotics Assembly Crate" + name = "Robotics assembly crate" contains = list(/obj/item/device/assembly/prox_sensor, /obj/item/device/assembly/prox_sensor, /obj/item/device/assembly/prox_sensor, @@ -595,7 +596,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /obj/item/weapon/cell/high) cost = 10 containertype = /obj/structure/closet/crate/secure/gear - containername = "Robotics Assembly" + containername = "Robotics assembly" access = access_robotics group = "Engineering" @@ -764,14 +765,14 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee group = "Security" /datum/supply_packs/securitybarriers - name = "Security Barriers" + name = "Security barrier crate" contains = list(/obj/machinery/deployable/barrier, /obj/machinery/deployable/barrier, /obj/machinery/deployable/barrier, /obj/machinery/deployable/barrier) cost = 20 containertype = /obj/structure/closet/crate/secure/gear - containername = "Security Barriers crate" + containername = "Security barrier crate" group = "Security" /datum/supply_packs/securitybarriers @@ -812,7 +813,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee cost = 200 containertype = /obj/structure/closet/crate containername = "Collectable hats crate! Brought to you by Bass.inc!" - group = "Operations" + group = "Miscellaneous" /datum/supply_packs/randomised/New() manifest += "Contains any [num_contained] of:" @@ -858,7 +859,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee group = "Operations" /datum/supply_packs/boxes - name = "Empty Box supplies" + name = "Empty boxes" contains = list(/obj/item/weapon/storage/box, /obj/item/weapon/storage/box, /obj/item/weapon/storage/box, @@ -871,8 +872,8 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /obj/item/weapon/storage/box) cost = 10 containertype = "/obj/structure/closet/crate" - containername = "Empty Box crate" - group = "Operations" + containername = "Empty box crate" + group = "Supply" /datum/supply_packs/surgery name = "Surgery crate" @@ -910,7 +911,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /obj/item/pizzabox/mushroom, /obj/item/pizzabox/meat, /obj/item/pizzabox/vegetable) - name = "Surprise pack of five dozen pizzas" + name = "Surprise pack of five pizzas" cost = 15 containertype = /obj/structure/closet/crate/freezer containername = "Pizza crate" @@ -950,7 +951,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containertype = /obj/structure/closet/crate/secure containername = "Actor Costumes" access = access_theatre - group = "Operations" + group = "Miscellaneous" /datum/supply_packs/formal_wear contains = list(/obj/item/clothing/head/bowler, @@ -971,7 +972,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee cost = 30 containertype = /obj/structure/closet containername = "Formalwear for the best occasions." - group = "Operations" + group = "Miscellaneous" /datum/supply_packs/rust_injector contains = list(/obj/machinery/power/rust_fuel_injector) @@ -1052,7 +1053,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee cost = 10 containertype = /obj/structure/closet/crate containername = "EFTPOS crate" - group = "Operations" + group = "Miscellaneous" /datum/supply_packs/teg contains = list(/obj/machinery/power/generator) @@ -1091,7 +1092,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee access = access_atmospherics /datum/supply_packs/bee_keeper - name = "Beekeeping Crate" + name = "Beekeeping crate" contains = list(/obj/item/beezeez, /obj/item/weapon/bee_net, /obj/item/apiary, diff --git a/code/defines/obj/hydro.dm b/code/defines/obj/hydro.dm index 9357b7f308..443ba95b09 100644 --- a/code/defines/obj/hydro.dm +++ b/code/defines/obj/hydro.dm @@ -1167,7 +1167,7 @@ attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || (istype(W, /obj/item/weapon/twohanded/fireaxe) && W:wielded) || istype(W, /obj/item/weapon/melee/energy)) - user.show_message("You make planks out of the [src]!", 1) + user.show_message("You make planks out of \the [src]!", 1) for(var/i=0,i<2,i++) var/obj/item/stack/sheet/wood/NG = new (user.loc) for (var/obj/item/stack/sheet/wood/G in user.loc) diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index bfe3393359..da5deae96f 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -1382,10 +1382,6 @@ var/list/ghostteleportlocs = list() name = "\improper Miscellaneous Research" icon_state = "toxmisc" -/area/toxins/telesci - name = "\improper Telescience Lab" - icon_state = "toxmisc" - /area/toxins/server name = "\improper Server Room" icon_state = "server" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 0799d9faa0..917ecfe9a3 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -44,7 +44,6 @@ /atom/proc/assume_air(datum/gas_mixture/giver) - del(giver) return null /atom/proc/remove_air(amount) diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index 9652a90978..fb01c76588 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -57,7 +57,7 @@ return if(changeling.geneticdamage > max_genetic_damage) - src << "Our geneomes are still reassembling. We need time to recover first." + src << "Our genomes are still reassembling. We need time to recover first." return return changeling diff --git a/code/game/gamemodes/changeling/modularchangling.dm b/code/game/gamemodes/changeling/modularchangling.dm index 8c65605cbc..9d1d94adf3 100644 --- a/code/game/gamemodes/changeling/modularchangling.dm +++ b/code/game/gamemodes/changeling/modularchangling.dm @@ -119,11 +119,11 @@ var/list/datum/power/changeling/powerinstances = list() genomecost = 10 verbpath = /mob/proc/changeling_DEATHsting -/datum/power/changeling/unfat_sting - name = "Unfat Sting" - desc = "We silently sting a human, forcing them to rapidly metobolize their fat." - genomecost = 1 - verbpath = /mob/proc/changeling_unfat_sting +///datum/power/changeling/unfat_sting +// name = "Unfat Sting" +// desc = "We silently sting a human, forcing them to rapidly metabolize their fat." +// genomecost = 1 +// verbpath = /mob/proc/changeling_unfat_sting /datum/power/changeling/boost_range name = "Boost Range" diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index fdc669a0c4..a9217cd00f 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -811,7 +811,7 @@ var/list/sacrificed = list() if (cultist == user) //just to be sure. return if(cultist.buckled || cultist.handcuffed || (!isturf(cultist.loc) && !istype(cultist.loc, /obj/structure/closet))) - user << "\red You cannot summon the [cultist], for his shackles of blood are strong" + user << "\red You cannot summon \the [cultist], for his shackles of blood are strong." return fizzle() cultist.loc = src.loc cultist.lying = 1 diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 565edc8e17..6a65e4812a 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -16,7 +16,7 @@ var/global/list/autolathe_recipes = list( \ new /obj/item/weapon/stock_parts/console_screen(), \ new /obj/item/weapon/airlock_electronics(), \ new /obj/item/weapon/airalarm_electronics(), \ - new /obj/item/weapon/firealarm_electronics(), \ + new /obj/item/weapon/firealarm_electronics(), \ new /obj/item/weapon/module/power_control(), \ new /obj/item/stack/sheet/metal(), \ new /obj/item/stack/sheet/glass(), \ @@ -262,9 +262,42 @@ var/global/list/autolathe_recipes_hidden = list( \ if (!busy) if(href_list["make"]) var/turf/T = get_step(src.loc, get_dir(src,usr)) - var/obj/template = locate(href_list["make"]) + + // critical exploit fix start -walter0o + var/obj/item/template = null + var/attempting_to_build = locate(href_list["make"]) + + if(!attempting_to_build) + return + + if(locate(attempting_to_build, src.L) || locate(attempting_to_build, src.LL)) // see if the requested object is in one of the construction lists, if so, it is legit -walter0o + template = attempting_to_build + + else // somebody is trying to exploit, alert admins -walter0o + + var/turf/LOC = get_turf(usr) + message_admins("[key_name_admin(usr)] tried to exploit an autolathe to duplicate [attempting_to_build] ! ([LOC ? "JMP" : "null"])", 0) + log_admin("EXPLOIT : [key_name(usr)] tried to exploit an autolathe to duplicate [attempting_to_build] !") + return + + // now check for legit multiplier, also only stacks should pass with one to prevent raw-materials-manipulation -walter0o + var/multiplier = text2num(href_list["multiplier"]) + if (!multiplier) multiplier = 1 + var/max_multiplier = 1 + + if(istype(template, /obj/item/stack)) // stacks are the only items which can have a multiplier higher than 1 -walter0o + var/obj/item/stack/S = template + max_multiplier = min(S.max_amount, S.m_amt?round(m_amount/S.m_amt):INFINITY, S.g_amt?round(g_amount/S.g_amt):INFINITY) // pasta from regular_win() to make sure the numbers match -walter0o + + if( (multiplier > max_multiplier) || (multiplier <= 0) ) // somebody is trying to exploit, alert admins-walter0o + + var/turf/LOC = get_turf(usr) + message_admins("[key_name_admin(usr)] tried to exploit an autolathe with multiplier set to [multiplier] on [template] ! ([LOC ? "JMP" : "null"])" , 0) + log_admin("EXPLOIT : [key_name(usr)] tried to exploit an autolathe with multiplier set to [multiplier] on [template] !") + return + var/power = max(2000, (template.m_amt+template.g_amt)*multiplier/5) if(src.m_amount >= template.m_amt*multiplier && src.g_amount >= template.g_amt*multiplier) busy = 1 diff --git a/code/game/machinery/bees_items.dm b/code/game/machinery/bees_items.dm index 01ed5bfa40..e02a0a1a23 100644 --- a/code/game/machinery/bees_items.dm +++ b/code/game/machinery/bees_items.dm @@ -102,21 +102,22 @@ h1 {font-size: 18px; margin: 15px 0px 5px;} h2 {font-size: 15px; margin: 15px 0px 5px;} li {margin: 2px 0px 2px 15px;} - ul {list-style: none; margin: 5px; padding: 0px;} + ul {margin: 5px; padding: 0px;} ol {margin: 5px; padding: 0px 15px;} + body {font-size: 13px; font-family: Verdana;}
-