mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-27 06:00:23 +01:00
Merge branch 'master' of https://github.com/Baystation12/Baystation12 into phoron
Conflicts: code/ATMOSPHERICS/components/unary/vent_scrubber.dm code/modules/paperwork/paper.dm html/changelog.html icons/mob/uniform.dmi maps/tgstation2.dmm
This commit is contained in:
@@ -104,7 +104,7 @@
|
||||
var/datum/gas_mixture/environment = loc.return_air()
|
||||
|
||||
if(scrubbing)
|
||||
if((environment.phoron>0) || (environment.carbon_dioxide>0) || (environment.trace_gases.len>0))
|
||||
if((environment.phoron>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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
+40
-39
@@ -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,
|
||||
|
||||
@@ -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("<span class='notice'>You make planks out of the [src]!</span>", 1)
|
||||
user.show_message("<span class='notice'>You make planks out of \the [src]!</span>", 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)
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
|
||||
|
||||
/atom/proc/assume_air(datum/gas_mixture/giver)
|
||||
del(giver)
|
||||
return null
|
||||
|
||||
/atom/proc/remove_air(amount)
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
return
|
||||
|
||||
if(changeling.geneticdamage > max_genetic_damage)
|
||||
src << "<span class='warning'>Our geneomes are still reassembling. We need time to recover first.</span>"
|
||||
src << "<span class='warning'>Our genomes are still reassembling. We need time to recover first.</span>"
|
||||
return
|
||||
|
||||
return changeling
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 <a href='?_src_=vars;Vars=\ref[attempting_to_build]'>[attempting_to_build]</a> ! ([LOC ? "<a href='?_src_=holder;adminplayerobservecoodjump=1;X=[LOC.x];Y=[LOC.y];Z=[LOC.z]'>JMP</a>" : "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 <u>[multiplier]</u> on <u>[template]</u> ! ([LOC ? "<a href='?_src_=holder;adminplayerobservecoodjump=1;X=[LOC.x];Y=[LOC.y];Z=[LOC.z]'>JMP</a>" : "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
|
||||
|
||||
@@ -315,7 +315,7 @@
|
||||
if(world.time < (last_change + 15))//To prevent super-spam clicking, reduced process size and annoyance -Sieve
|
||||
return
|
||||
for(var/mob/M in range(3,src))
|
||||
M.show_message("\b ERROR. Recalibrating projetion apparatus.")
|
||||
M.show_message("\b ERROR. Recalibrating projection apparatus.")
|
||||
last_change = world.time
|
||||
return
|
||||
|
||||
@@ -447,6 +447,8 @@
|
||||
|
||||
if(isrobot(user))
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
/obj/structure/table/holotable/wood
|
||||
name = "table"
|
||||
@@ -489,7 +491,7 @@
|
||||
damtype = HALLOSS
|
||||
|
||||
/obj/item/weapon/holo/esword
|
||||
desc = "May the force be within you. Sorta"
|
||||
desc = "May the force be within you. Sorta."
|
||||
icon_state = "sword0"
|
||||
force = 3.0
|
||||
throw_speed = 1
|
||||
@@ -607,11 +609,11 @@
|
||||
power_channel = ENVIRON
|
||||
|
||||
/obj/machinery/readybutton/attack_ai(mob/user as mob)
|
||||
user << "The station AI is not to interact with these devices"
|
||||
user << "The station AI is not to interact with these devices!"
|
||||
return
|
||||
|
||||
/obj/machinery/readybutton/attack_paw(mob/user as mob)
|
||||
user << "You are too primitive to use this device"
|
||||
user << "You are too primitive to use this device."
|
||||
return
|
||||
|
||||
/obj/machinery/readybutton/New()
|
||||
|
||||
@@ -180,7 +180,7 @@
|
||||
|
||||
/obj/machinery/computer/security/telescreen/entertainment
|
||||
name = "entertainment monitor"
|
||||
desc = "Damn, they better have /tg/thechannel on these things."
|
||||
desc = "Damn, why do they never have anything interesting on these things?"
|
||||
icon = 'icons/obj/status_display.dmi'
|
||||
icon_state = "entertainment"
|
||||
|
||||
@@ -206,4 +206,4 @@
|
||||
name = "Mission Monitor"
|
||||
desc = "Used to access the built-in cameras in helmets."
|
||||
icon_state = "syndicam"
|
||||
network = list("NUKE")
|
||||
network = list("NUKE")
|
||||
|
||||
@@ -255,7 +255,7 @@
|
||||
if (authenticated)
|
||||
var/t1 = href_list["assign_target"]
|
||||
if(t1 == "Custom")
|
||||
var/temp_t = copytext(sanitize(input("Enter a custom job assignment.","Assignment")),1,MAX_MESSAGE_LEN)
|
||||
var/temp_t = copytext(sanitize(input("Enter a custom job assignment.","Assignment")),1,45)
|
||||
//let custom jobs function as an impromptu alt title, mainly for sechuds
|
||||
if(temp_t && modify)
|
||||
modify.assignment = temp_t
|
||||
|
||||
@@ -68,11 +68,11 @@ for reference:
|
||||
attackby(obj/item/W as obj, mob/user as mob)
|
||||
if (istype(W, /obj/item/stack/sheet/wood))
|
||||
if (src.health < src.maxhealth)
|
||||
visible_message("\red [user] begins to repair the [src]!")
|
||||
visible_message("\red [user] begins to repair \the [src]!")
|
||||
if(do_after(user,20))
|
||||
src.health = src.maxhealth
|
||||
W:use(1)
|
||||
visible_message("\red [user] repairs the [src]!")
|
||||
visible_message("\red [user] repairs \the [src]!")
|
||||
return
|
||||
else
|
||||
return
|
||||
@@ -181,7 +181,7 @@ for reference:
|
||||
if (src.emagged == 0)
|
||||
src.emagged = 1
|
||||
src.req_access = null
|
||||
user << "You break the ID authentication lock on the [src]."
|
||||
user << "You break the ID authentication lock on \the [src]."
|
||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||
s.set_up(2, 1, src)
|
||||
s.start()
|
||||
@@ -189,7 +189,7 @@ for reference:
|
||||
return
|
||||
else if (src.emagged == 1)
|
||||
src.emagged = 2
|
||||
user << "You short out the anchoring mechanism on the [src]."
|
||||
user << "You short out the anchoring mechanism on \the [src]."
|
||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||
s.set_up(2, 1, src)
|
||||
s.start()
|
||||
@@ -200,12 +200,12 @@ for reference:
|
||||
src.health = src.maxhealth
|
||||
src.emagged = 0
|
||||
src.req_access = list(access_security)
|
||||
visible_message("\red [user] repairs the [src]!")
|
||||
visible_message("\red [user] repairs \the [src]!")
|
||||
return
|
||||
else if (src.emagged > 0)
|
||||
src.emagged = 0
|
||||
src.req_access = list(access_security)
|
||||
visible_message("\red [user] repairs the [src]!")
|
||||
visible_message("\red [user] repairs \the [src]!")
|
||||
return
|
||||
return
|
||||
else
|
||||
|
||||
@@ -783,6 +783,15 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
del(src)
|
||||
return
|
||||
|
||||
/obj/machinery/hydroponics/attack_tk(mob/user as mob)
|
||||
if(harvest)
|
||||
myseed.harvest(src)
|
||||
else if(dead)
|
||||
planted = 0
|
||||
dead = 0
|
||||
usr << text("You remove the dead plant from the [src].")
|
||||
del(myseed)
|
||||
updateicon()
|
||||
|
||||
/obj/machinery/hydroponics/attack_hand(mob/user as mob)
|
||||
if(istype(usr,/mob/living/silicon)) //How does AI know what plant is?
|
||||
|
||||
@@ -8,7 +8,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
|
||||
|
||||
/obj/machinery/requests_console
|
||||
name = "Requests Console"
|
||||
desc = "A console intended to send requests to diferent departments on the station."
|
||||
desc = "A console intended to send requests to different departments on the station."
|
||||
anchored = 1
|
||||
icon = 'icons/obj/terminals.dmi'
|
||||
icon_state = "req_comp0"
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
|
||||
if (src.health <= 0)
|
||||
visible_message("\blue The [src] dissapates")
|
||||
visible_message("\blue The [src] dissipates!")
|
||||
del(src)
|
||||
return
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
src.health -= max_health*0.75 //3/4 health as damage
|
||||
|
||||
if(src.health <= 0)
|
||||
visible_message("\blue The [src] dissapates")
|
||||
visible_message("\blue The [src] dissipates!")
|
||||
del(src)
|
||||
return
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
health -= Proj.damage
|
||||
..()
|
||||
if(health <=0)
|
||||
visible_message("\blue The [src] dissapates")
|
||||
visible_message("\blue The [src] dissipates!")
|
||||
del(src)
|
||||
return
|
||||
opacity = 1
|
||||
@@ -122,7 +122,7 @@
|
||||
|
||||
//Handle the destruction of the shield
|
||||
if (src.health <= 0)
|
||||
visible_message("\blue The [src] dissapates")
|
||||
visible_message("\blue The [src] dissipates!")
|
||||
del(src)
|
||||
return
|
||||
|
||||
@@ -500,7 +500,7 @@
|
||||
|
||||
else
|
||||
src.add_fingerprint(user)
|
||||
visible_message("\red The [src.name] has been hit with the [W.name] by [user.name]!")
|
||||
visible_message("\red The [src.name] has been hit with \the [W.name] by [user.name]!")
|
||||
|
||||
/obj/machinery/shieldwallgen/proc/cleanup(var/NSEW)
|
||||
var/obj/machinery/shieldwall/F
|
||||
|
||||
@@ -648,7 +648,7 @@
|
||||
|
||||
/obj/machinery/vending/snack
|
||||
name = "Getmore Chocolate Corp"
|
||||
desc = "A snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars"
|
||||
desc = "A snack machine courtesy of the Getmore Chocolate Corporation, based out of Mars."
|
||||
product_slogans = "Try our new nougat bar!;Twice the calories for half the price!"
|
||||
product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!"
|
||||
icon_state = "snack"
|
||||
@@ -681,7 +681,7 @@
|
||||
//This one's from bay12
|
||||
/obj/machinery/vending/cart
|
||||
name = "PTech"
|
||||
desc = "Cartridges for PDAs"
|
||||
desc = "Cartridges for PDAs."
|
||||
product_slogans = "Carts to go!"
|
||||
icon_state = "cart"
|
||||
icon_deny = "cart-deny"
|
||||
@@ -692,7 +692,7 @@
|
||||
|
||||
/obj/machinery/vending/cigarette
|
||||
name = "Cigarette machine" //OCD had to be uppercase to look nice with the new formating
|
||||
desc = "If you want to get cancer, might as well do it in style"
|
||||
desc = "If you want to get cancer, might as well do it in style!"
|
||||
product_slogans = "Space cigs taste good like a cigarette should.;I'd rather toolbox than switch.;Smoke!;Don't believe the reports - smoke today!"
|
||||
product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs."
|
||||
vend_delay = 34
|
||||
@@ -750,7 +750,7 @@
|
||||
|
||||
/obj/machinery/vending/security
|
||||
name = "SecTech"
|
||||
desc = "A security equipment vendor"
|
||||
desc = "A security equipment vendor."
|
||||
product_ads = "Crack capitalist skulls!;Beat some heads in!;Don't forget - harm is good!;Your weapons are right here.;Handcuffs!;Freeze, scumbag!;Don't tase me bro!;Tase them, bro.;Why not have a donut?"
|
||||
icon_state = "sec"
|
||||
icon_deny = "sec-deny"
|
||||
@@ -761,7 +761,7 @@
|
||||
|
||||
/obj/machinery/vending/hydronutrients
|
||||
name = "NutriMax"
|
||||
desc = "A plant nutrients vendor"
|
||||
desc = "A plant nutrients vendor."
|
||||
product_slogans = "Aren't you glad you don't have to fertilize the natural way?;Now with 50% less stink!;Plants are people too!"
|
||||
product_ads = "We like plants!;Don't you want some?;The greenest thumbs ever.;We like big plants.;Soft soil..."
|
||||
icon_state = "nutri"
|
||||
@@ -800,7 +800,7 @@
|
||||
|
||||
/obj/machinery/vending/dinnerware
|
||||
name = "Dinnerware"
|
||||
desc = "A kitchen and restaurant equipment vendor"
|
||||
desc = "A kitchen and restaurant equipment vendor."
|
||||
product_ads = "Mm, food stuffs!;Food and food accessories.;Get your plates!;You like forks?;I like forks.;Woo, utensils.;You don't really need these..."
|
||||
icon_state = "dinnerware"
|
||||
products = list(/obj/item/weapon/tray = 8,/obj/item/weapon/kitchen/utensil/fork = 6,/obj/item/weapon/kitchenknife = 3,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 8,/obj/item/clothing/suit/chef/classic = 2)
|
||||
@@ -808,7 +808,7 @@
|
||||
|
||||
/obj/machinery/vending/sovietsoda
|
||||
name = "BODA"
|
||||
desc = "Old sweet water vending machine"
|
||||
desc = "An old sweet water vending machine,how did this end up here?"
|
||||
icon_state = "sovietsoda"
|
||||
product_ads = "For Tsar and Country.;Have you fulfilled your nutrition quota today?;Very nice!;We are simple people, for this is all we eat.;If there is a person, there is a problem. If there is no person, then there is no problem."
|
||||
products = list(/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/soda = 30)
|
||||
|
||||
@@ -628,7 +628,7 @@
|
||||
/obj/mecha/proc/dynattackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
src.log_message("Attacked by [W]. Attacker - [user]")
|
||||
if(prob(src.deflect_chance))
|
||||
user << "\red The [W] bounces off [src.name] armor."
|
||||
user << "\red \The [W] bounces off [src.name]."
|
||||
src.log_append_to_last("Armor saved.")
|
||||
/*
|
||||
for (var/mob/V in viewers(src))
|
||||
|
||||
@@ -15,17 +15,17 @@
|
||||
|
||||
/obj/structure/closet/walllocker/emerglocker
|
||||
name = "emergency locker"
|
||||
desc = "A wall mounted locker with emergency supplies"
|
||||
desc = "A wall mounted locker with emergency supplies."
|
||||
var/list/spawnitems = list(/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/mask/breath)
|
||||
var/amount = 2 // spawns each items X times.
|
||||
icon_state = "emerg"
|
||||
|
||||
/obj/structure/closet/walllocker/emerglocker/toggle(mob/user as mob)
|
||||
src.attack_hand(user)
|
||||
return
|
||||
return
|
||||
|
||||
/obj/structure/closet/walllocker/emerglocker/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
return
|
||||
return
|
||||
|
||||
/obj/structure/closet/walllocker/emerglocker/attack_hand(mob/user as mob)
|
||||
if (istype(user, /mob/living/silicon/ai)) //Added by Strumpetplaya - AI shouldn't be able to
|
||||
|
||||
@@ -237,6 +237,18 @@
|
||||
/obj/item/proc/equipped(var/mob/user, var/slot)
|
||||
return
|
||||
|
||||
//returns 1 if the item is equipped by a mob, 0 otherwise.
|
||||
//This might need some error trapping, not sure if get_equipped_items() is safe for non-human mobs.
|
||||
/obj/item/proc/is_equipped()
|
||||
if(!ismob(loc))
|
||||
return 0
|
||||
|
||||
var/mob/M = loc
|
||||
if(src in M.get_equipped_items())
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
//the mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't.
|
||||
//If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen.
|
||||
//Set disable_warning to 1 if you wish it to not give you outputs.
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
/obj/item/stack/tile/grass
|
||||
name = "grass tile"
|
||||
singular_name = "grass floor tile"
|
||||
desc = "A patch of grass like they often use on golf courses"
|
||||
desc = "A patch of grass like they often use on golf courses."
|
||||
icon_state = "tile_grass"
|
||||
w_class = 3.0
|
||||
force = 1.0
|
||||
@@ -28,7 +28,7 @@
|
||||
/obj/item/stack/tile/wood
|
||||
name = "wood floor tile"
|
||||
singular_name = "wood floor tile"
|
||||
desc = "an easy to fit wood floor tile"
|
||||
desc = "An easy to fit wooden floor tile."
|
||||
icon_state = "tile-wood"
|
||||
w_class = 3.0
|
||||
force = 1.0
|
||||
@@ -44,7 +44,7 @@
|
||||
/obj/item/stack/tile/carpet
|
||||
name = "carpet"
|
||||
singular_name = "carpet"
|
||||
desc = "A piece of carpet. It is the same size as a floor tile"
|
||||
desc = "A piece of carpet. It is the same size as a normal floor tile!"
|
||||
icon_state = "tile-carpet"
|
||||
w_class = 3.0
|
||||
force = 1.0
|
||||
@@ -52,4 +52,4 @@
|
||||
throw_speed = 5
|
||||
throw_range = 20
|
||||
flags = FPRINT | TABLEPASS | CONDUCT
|
||||
max_amount = 60
|
||||
max_amount = 60
|
||||
|
||||
@@ -201,9 +201,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
/obj/item/clothing/mask/cigarette/cigar
|
||||
name = "premium cigar"
|
||||
desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!"
|
||||
icon_state = "cigaroff"
|
||||
icon_on = "cigaron"
|
||||
icon_off = "cigaroff"
|
||||
icon_state = "cigar2off"
|
||||
icon_on = "cigar2on"
|
||||
icon_off = "cigar2off"
|
||||
type_butt = /obj/item/weapon/cigbutt/cigarbutt
|
||||
throw_speed = 0.5
|
||||
item_state = "cigaroff"
|
||||
@@ -219,7 +219,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
|
||||
/obj/item/clothing/mask/cigarette/cigar/havana
|
||||
name = "premium Havanian cigar"
|
||||
desc = "A cigar fit for only the best for the best."
|
||||
desc = "A cigar fit for only the best of the best."
|
||||
icon_state = "cigar2off"
|
||||
icon_on = "cigar2on"
|
||||
icon_off = "cigar2off"
|
||||
@@ -247,10 +247,33 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
|
||||
|
||||
/obj/item/clothing/mask/cigarette/cigar/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/match))
|
||||
..()
|
||||
else
|
||||
user << "<span class='notice'>\The [src] straight out REFUSES to be lit by such uncivilized means.</span>"
|
||||
if(istype(W, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(WT.isOn())
|
||||
light("<span class='notice'>[user] insults [name] by lighting it with [W].</span>")
|
||||
|
||||
else if(istype(W, /obj/item/weapon/lighter/zippo))
|
||||
var/obj/item/weapon/lighter/zippo/Z = W
|
||||
if(Z.lit)
|
||||
light("<span class='rose'>With a flick of their wrist, [user] lights their [name] with their [W].</span>")
|
||||
|
||||
else if(istype(W, /obj/item/weapon/lighter))
|
||||
var/obj/item/weapon/lighter/L = W
|
||||
if(L.lit)
|
||||
light("<span class='notice'>[user] manages to offend their [name] by lighting it with [W].</span>")
|
||||
|
||||
else if(istype(W, /obj/item/weapon/match))
|
||||
var/obj/item/weapon/match/M = W
|
||||
if(M.lit)
|
||||
light("<span class='notice'>[user] lights their [name] with their [W].</span>")
|
||||
|
||||
else if(istype(W, /obj/item/weapon/melee/energy/sword))
|
||||
var/obj/item/weapon/melee/energy/sword/S = W
|
||||
if(S.active)
|
||||
light("<span class='warning'>[user] swings their [W], barely missing their nose. They light their [name] in the process.</span>")
|
||||
|
||||
else if(istype(W, /obj/item/device/assembly/igniter))
|
||||
light("<span class='notice'>[user] fiddles with [W], and manages to light their [name] with the power of science.</span>")
|
||||
|
||||
/////////////////
|
||||
//SMOKING PIPES//
|
||||
@@ -306,10 +329,28 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
return
|
||||
|
||||
/obj/item/clothing/mask/cigarette/pipe/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/match))
|
||||
..()
|
||||
else
|
||||
user << "<span class='notice'>\The [src] straight out REFUSES to be lit by such means.</span>"
|
||||
if(istype(W, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(WT.isOn())//
|
||||
light("<span class='notice'>[user] recklessly lights [name] with [W].</span>")
|
||||
|
||||
else if(istype(W, /obj/item/weapon/lighter/zippo))
|
||||
var/obj/item/weapon/lighter/zippo/Z = W
|
||||
if(Z.lit)
|
||||
light("<span class='rose'>With much care, [user] lights their [name] with their [W].</span>")
|
||||
|
||||
else if(istype(W, /obj/item/weapon/lighter))
|
||||
var/obj/item/weapon/lighter/L = W
|
||||
if(L.lit)
|
||||
light("<span class='notice'>[user] manages to light their [name] with [W].</span>")
|
||||
|
||||
else if(istype(W, /obj/item/weapon/match))
|
||||
var/obj/item/weapon/match/M = W
|
||||
if(M.lit)
|
||||
light("<span class='notice'>[user] lights their [name] with their [W].</span>")
|
||||
|
||||
else if(istype(W, /obj/item/device/assembly/igniter))
|
||||
light("<span class='notice'>[user] fiddles with [W], and manages to light their [name] with the power of science.</span>")
|
||||
|
||||
/obj/item/clothing/mask/cigarette/pipe/cobpipe
|
||||
name = "corn cob pipe"
|
||||
@@ -423,4 +464,4 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
if(lit)
|
||||
user.SetLuminosity(user.luminosity-2)
|
||||
SetLuminosity(2)
|
||||
return
|
||||
return
|
||||
|
||||
@@ -10,12 +10,7 @@
|
||||
|
||||
|
||||
/obj/item/weapon/storage/belt/proc/can_use()
|
||||
if(!ismob(loc)) return 0
|
||||
var/mob/M = loc
|
||||
if(src in M.get_equipped_items())
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
return is_equipped()
|
||||
|
||||
|
||||
/obj/item/weapon/storage/belt/MouseDrop(obj/over_object as obj, src_location, over_location)
|
||||
|
||||
@@ -261,7 +261,7 @@
|
||||
if(!prevent_warning && !istype(W, /obj/item/weapon/gun/energy/crossbow))
|
||||
for(var/mob/M in viewers(usr, null))
|
||||
if (M == usr)
|
||||
usr << "<span class='notice'>You put the [W] into [src].</span>"
|
||||
usr << "<span class='notice'>You put \the [W] into [src].</span>"
|
||||
else if (M in range(1)) //If someone is standing close enough, they can tell what it is...
|
||||
M.show_message("<span class='notice'>[usr] puts [W] into [src].</span>")
|
||||
else if (W && W.w_class >= 3.0) //Otherwise they can only see large or normal items from a distance...
|
||||
@@ -449,6 +449,10 @@
|
||||
del(src)
|
||||
//BubbleWrap END
|
||||
|
||||
|
||||
/obj/item/weapon/storage/hear_talk(mob/M as mob, text)
|
||||
for (var/atom/A in src)
|
||||
if(istype(A,/obj/))
|
||||
var/obj/O = A
|
||||
O.hear_talk(M, text)
|
||||
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
*/
|
||||
/obj/item/weapon/wrench
|
||||
name = "wrench"
|
||||
desc = "A wrench with common uses. Can be found in your hand."
|
||||
desc = "A wrench with many common uses. Can be usually found in your hand."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "wrench"
|
||||
flags = FPRINT | TABLEPASS| CONDUCT
|
||||
@@ -428,7 +428,7 @@
|
||||
|
||||
/obj/item/weapon/crowbar
|
||||
name = "crowbar"
|
||||
desc = "Used to hit floors"
|
||||
desc = "Used to remove floors and to pry open doors."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "crowbar"
|
||||
flags = FPRINT | TABLEPASS| CONDUCT
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
icon_state = "rup"
|
||||
var/spawn_nothing_percentage = 0 // this variable determines the likelyhood that this random object will not spawn anything
|
||||
|
||||
|
||||
|
||||
// creates a new object and deletes itself
|
||||
/obj/random/New()
|
||||
..()
|
||||
@@ -37,8 +37,8 @@
|
||||
/obj/item/weapon/crowbar,\
|
||||
/obj/item/weapon/wrench,\
|
||||
/obj/item/device/flashlight)
|
||||
|
||||
|
||||
|
||||
|
||||
/obj/random/technology_scanner
|
||||
name = "Random Scanner"
|
||||
desc = "This is a random technology scanner."
|
||||
@@ -46,10 +46,10 @@
|
||||
icon_state = "atmos"
|
||||
item_to_spawn()
|
||||
return pick(prob(5);/obj/item/device/t_scanner,\
|
||||
prob(2);/obj/item/device/radio/intercom,\
|
||||
prob(2);/obj/item/device/radio,\
|
||||
prob(5);/obj/item/device/analyzer)
|
||||
|
||||
|
||||
|
||||
|
||||
/obj/random/powercell
|
||||
name = "Random Powercell"
|
||||
desc = "This is a random powercell."
|
||||
@@ -61,8 +61,8 @@
|
||||
prob(40);/obj/item/weapon/cell/high,\
|
||||
prob(9);/obj/item/weapon/cell/super,\
|
||||
prob(1);/obj/item/weapon/cell/hyper)
|
||||
|
||||
|
||||
|
||||
|
||||
/obj/random/bomb_supply
|
||||
name = "Bomb Supply"
|
||||
desc = "This is a random bomb supply."
|
||||
@@ -71,7 +71,8 @@
|
||||
item_to_spawn()
|
||||
return pick(/obj/item/device/assembly/igniter,\
|
||||
/obj/item/device/assembly/prox_sensor,\
|
||||
/obj/item/device/assembly/signaler)
|
||||
/obj/item/device/assembly/signaler,\
|
||||
/obj/item/device/multitool)
|
||||
|
||||
|
||||
/obj/random/toolbox
|
||||
@@ -83,8 +84,8 @@
|
||||
return pick(prob(3);/obj/item/weapon/storage/toolbox/mechanical,\
|
||||
prob(2);/obj/item/weapon/storage/toolbox/electrical,\
|
||||
prob(1);/obj/item/weapon/storage/toolbox/emergency)
|
||||
|
||||
|
||||
|
||||
|
||||
/obj/random/tech_supply
|
||||
name = "Random Tech Supply"
|
||||
desc = "This is a random piece of technology supplies."
|
||||
|
||||
@@ -217,8 +217,12 @@
|
||||
O.emp_act(severity)
|
||||
..()
|
||||
|
||||
/*
|
||||
|
||||
/obj/item/clothing/suit/hear_talk(mob/M, var/msg)
|
||||
for (var/atom/A in src)
|
||||
if(istype(A,/obj/))
|
||||
var/obj/O = A
|
||||
O.hear_talk(M, msg)
|
||||
O.hear_talk(M, msg)
|
||||
|
||||
*/
|
||||
@@ -284,4 +284,10 @@
|
||||
if(welded)
|
||||
overlays += "welded"
|
||||
else
|
||||
icon_state = icon_opened
|
||||
icon_state = icon_opened
|
||||
|
||||
/obj/structure/closet/hear_talk(mob/M as mob, text)
|
||||
for (var/atom/A in src)
|
||||
if(istype(A,/obj/))
|
||||
var/obj/O = A
|
||||
O.hear_talk(M, text)
|
||||
@@ -41,7 +41,7 @@
|
||||
if(HULK in user.mutations)
|
||||
health -= 5
|
||||
else
|
||||
health -= 3
|
||||
health -= 1
|
||||
healthcheck()
|
||||
|
||||
/obj/structure/grille/attack_alien(mob/user as mob)
|
||||
@@ -215,4 +215,4 @@
|
||||
if(exposed_temperature > T0C + 1500)
|
||||
health -= 1
|
||||
healthcheck()
|
||||
..()
|
||||
..()
|
||||
|
||||
@@ -82,57 +82,57 @@
|
||||
|
||||
/obj/structure/sign/biohazard
|
||||
name = "\improper BIOHAZARD"
|
||||
desc = "A warning sign which reads 'BIOHAZARD'"
|
||||
desc = "A warning sign which reads 'BIOHAZARD'."
|
||||
icon_state = "bio"
|
||||
|
||||
/obj/structure/sign/electricshock
|
||||
name = "\improper HIGH VOLTAGE"
|
||||
desc = "A warning sign which reads 'HIGH VOLTAGE'"
|
||||
desc = "A warning sign which reads 'HIGH VOLTAGE'."
|
||||
icon_state = "shock"
|
||||
|
||||
/obj/structure/sign/examroom
|
||||
name = "\improper EXAM"
|
||||
desc = "A guidance sign which reads 'EXAM ROOM'"
|
||||
desc = "A guidance sign which reads 'EXAM ROOM'."
|
||||
icon_state = "examroom"
|
||||
|
||||
/obj/structure/sign/vacuum
|
||||
name = "\improper HARD VACUUM AHEAD"
|
||||
desc = "A warning sign which reads 'HARD VACUUM AHEAD'"
|
||||
desc = "A warning sign which reads 'HARD VACUUM AHEAD'."
|
||||
icon_state = "space"
|
||||
|
||||
/obj/structure/sign/deathsposal
|
||||
name = "\improper DISPOSAL LEADS TO SPACE"
|
||||
desc = "A warning sign which reads 'DISPOSAL LEADS TO SPACE'"
|
||||
desc = "A warning sign which reads 'DISPOSAL LEADS TO SPACE'."
|
||||
icon_state = "deathsposal"
|
||||
|
||||
/obj/structure/sign/pods
|
||||
name = "\improper ESCAPE PODS"
|
||||
desc = "A warning sign which reads 'ESCAPE PODS'"
|
||||
desc = "A warning sign which reads 'ESCAPE PODS'."
|
||||
icon_state = "pods"
|
||||
|
||||
/obj/structure/sign/fire
|
||||
name = "\improper DANGER: FIRE"
|
||||
desc = "A warning sign which reads 'DANGER: FIRE'"
|
||||
desc = "A warning sign which reads 'DANGER: FIRE'."
|
||||
icon_state = "fire"
|
||||
|
||||
/obj/structure/sign/nosmoking_1
|
||||
name = "\improper NO SMOKING"
|
||||
desc = "A warning sign which reads 'NO SMOKING'"
|
||||
desc = "A warning sign which reads 'NO SMOKING'."
|
||||
icon_state = "nosmoking"
|
||||
|
||||
/obj/structure/sign/nosmoking_2
|
||||
name = "\improper NO SMOKING"
|
||||
desc = "A warning sign which reads 'NO SMOKING'"
|
||||
desc = "A warning sign which reads 'NO SMOKING'."
|
||||
icon_state = "nosmoking2"
|
||||
|
||||
/obj/structure/sign/redcross
|
||||
name = "medbay"
|
||||
desc = "The Intergalactic symbol of Medical institutions. You'll probably get help here.'"
|
||||
desc = "The Intergalactic symbol of Medical institutions. You'll probably get help here."
|
||||
icon_state = "redcross"
|
||||
|
||||
/obj/structure/sign/greencross
|
||||
name = "medbay"
|
||||
desc = "The Intergalactic symbol of Medical institutions. You'll probably get help here.'"
|
||||
desc = "The Intergalactic symbol of Medical institutions. You'll probably get help here."
|
||||
icon_state = "greencross"
|
||||
|
||||
/obj/structure/sign/goldenplaque
|
||||
@@ -162,40 +162,40 @@
|
||||
|
||||
/obj/structure/sign/science //These 3 have multiple types, just var-edit the icon_state to whatever one you want on the map
|
||||
name = "\improper SCIENCE!"
|
||||
desc = "A warning sign which reads 'SCIENCE!'"
|
||||
desc = "A warning sign which reads 'SCIENCE!'."
|
||||
icon_state = "science1"
|
||||
|
||||
/obj/structure/sign/chemistry
|
||||
name = "\improper CHEMISTRY"
|
||||
desc = "A warning sign which reads 'CHEMISTRY'"
|
||||
desc = "A warning sign which reads 'CHEMISTRY'."
|
||||
icon_state = "chemistry1"
|
||||
|
||||
/obj/structure/sign/botany
|
||||
name = "\improper HYDROPONICS"
|
||||
desc = "A warning sign which reads 'HYDROPONICS'"
|
||||
desc = "A warning sign which reads 'HYDROPONICS'."
|
||||
icon_state = "hydro1"
|
||||
|
||||
/obj/structure/sign/directions/science
|
||||
name = "\improper Science department"
|
||||
desc = "A direction sign, pointing out which way Science department is."
|
||||
desc = "A direction sign, pointing out which way the Science department is."
|
||||
icon_state = "direction_sci"
|
||||
|
||||
/obj/structure/sign/directions/engineering
|
||||
name = "\improper Engineering department"
|
||||
desc = "A direction sign, pointing out which way Engineering department is."
|
||||
desc = "A direction sign, pointing out which way the Engineering department is."
|
||||
icon_state = "direction_eng"
|
||||
|
||||
/obj/structure/sign/directions/security
|
||||
name = "\improper Security department"
|
||||
desc = "A direction sign, pointing out which way Security department is."
|
||||
desc = "A direction sign, pointing out which way the Security department is."
|
||||
icon_state = "direction_sec"
|
||||
|
||||
/obj/structure/sign/directions/medical
|
||||
name = "\improper Medical Bay"
|
||||
desc = "A direction sign, pointing out which way Meducal Bay is."
|
||||
desc = "A direction sign, pointing out which way the Medical Bay is."
|
||||
icon_state = "direction_med"
|
||||
|
||||
/obj/structure/sign/directions/evac
|
||||
name = "\improper Escape Arm"
|
||||
desc = "A direction sign, pointing out which way escape shuttle dock is."
|
||||
desc = "A direction sign, pointing out which way the escape shuttle dock is."
|
||||
icon_state = "direction_evac"
|
||||
|
||||
@@ -155,7 +155,7 @@
|
||||
if((over_object == usr && (in_range(src, usr) || usr.contents.Find(src))))
|
||||
if(!ishuman(usr)) return
|
||||
if(buckled_mob) return 0
|
||||
visible_message("[usr] collapses \the [src.name]")
|
||||
visible_message("[usr] collapses \the [src.name].")
|
||||
new/obj/item/roller(get_turf(src))
|
||||
spawn(0)
|
||||
del(src)
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
attack_generic(user, rand(10, 15))
|
||||
|
||||
|
||||
/obj/structure/window/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/structure/window/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(!istype(W)) return//I really wish I did not need this
|
||||
|
||||
if (istype(W, /obj/item/weapon/grab) && get_dist(src,user)<2)
|
||||
|
||||
@@ -25,13 +25,13 @@
|
||||
|
||||
/obj/item/clothing/glasses/science
|
||||
name = "Science Goggles"
|
||||
desc = "nothing"
|
||||
desc = "The goggles do nothing!"
|
||||
icon_state = "purple"
|
||||
item_state = "glasses"
|
||||
|
||||
/obj/item/clothing/glasses/night
|
||||
name = "Night Vision Goggles"
|
||||
desc = "You can totally see in the dark now!."
|
||||
desc = "You can totally see in the dark now!"
|
||||
icon_state = "night"
|
||||
item_state = "glasses"
|
||||
origin_tech = "magnets=2"
|
||||
@@ -112,13 +112,13 @@
|
||||
src.flags |= GLASSESCOVERSEYES
|
||||
flags_inv |= HIDEEYES
|
||||
icon_state = initial(icon_state)
|
||||
usr << "You flip the [src] down to protect your eyes."
|
||||
usr << "You flip \the [src] down to protect your eyes."
|
||||
else
|
||||
src.up = !src.up
|
||||
src.flags &= ~HEADCOVERSEYES
|
||||
flags_inv &= ~HIDEEYES
|
||||
icon_state = "[initial(icon_state)]up"
|
||||
usr << "You push the [src] up out of your face."
|
||||
usr << "You push \the [src] up out of your face."
|
||||
|
||||
usr.update_inv_glasses()
|
||||
|
||||
|
||||
@@ -4,30 +4,25 @@
|
||||
icon_state = "magboots0"
|
||||
species_restricted = null
|
||||
var/magpulse = 0
|
||||
icon_action_button = "action_blank"
|
||||
action_button_name = "Toggle the magboots"
|
||||
// flags = NOSLIP //disabled by default
|
||||
|
||||
|
||||
verb/toggle()
|
||||
set name = "Toggle Magboots"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
if(usr.stat)
|
||||
return
|
||||
if(src.magpulse)
|
||||
src.flags &= ~NOSLIP
|
||||
src.slowdown = SHOES_SLOWDOWN
|
||||
src.magpulse = 0
|
||||
attack_self(mob/user)
|
||||
if(magpulse)
|
||||
flags &= ~NOSLIP
|
||||
slowdown = SHOES_SLOWDOWN
|
||||
magpulse = 0
|
||||
icon_state = "magboots0"
|
||||
usr << "You disable the mag-pulse traction system."
|
||||
user << "You disable the mag-pulse traction system."
|
||||
else
|
||||
src.flags |= NOSLIP
|
||||
src.slowdown = 2
|
||||
src.magpulse = 1
|
||||
flags |= NOSLIP
|
||||
slowdown = 2
|
||||
magpulse = 1
|
||||
icon_state = "magboots1"
|
||||
usr << "You enable the mag-pulse traction system."
|
||||
usr.update_inv_shoes() //so our mob-overlays update
|
||||
|
||||
|
||||
user << "You enable the mag-pulse traction system."
|
||||
user.update_inv_shoes() //so our mob-overlays update
|
||||
|
||||
examine()
|
||||
set src in view()
|
||||
..()
|
||||
|
||||
@@ -192,28 +192,44 @@
|
||||
/obj/item/clothing/shoes/magboots/vox
|
||||
|
||||
desc = "A pair of heavy, jagged armoured foot pieces, seemingly suitable for a velociraptor."
|
||||
name = "vox boots"
|
||||
name = "vox magclaws"
|
||||
item_state = "boots-vox"
|
||||
icon_state = "boots-vox"
|
||||
species_restricted = list("Vox")
|
||||
action_button_name = "Toggle the magclaws"
|
||||
|
||||
toggle()
|
||||
//set name = "Toggle Floor Grip"
|
||||
if(usr.stat)
|
||||
/obj/item/clothing/shoes/magboots/vox/attack_self(mob/user)
|
||||
if(src.magpulse)
|
||||
flags &= ~NOSLIP
|
||||
magpulse = 0
|
||||
canremove = 1
|
||||
user << "You relax your deathgrip on the flooring."
|
||||
else
|
||||
//make sure these can only be used when equipped.
|
||||
if (!is_equipped())
|
||||
user << "You will have to put on the [src] before you can do that."
|
||||
return
|
||||
if(src.magpulse)
|
||||
src.flags &= ~NOSLIP
|
||||
src.magpulse = 0
|
||||
usr << "You relax your deathgrip on the flooring."
|
||||
else
|
||||
src.flags |= NOSLIP
|
||||
src.magpulse = 1
|
||||
usr << "You dig your claws deeply into the flooring, bracing yourself."
|
||||
|
||||
flags |= NOSLIP
|
||||
magpulse = 1
|
||||
canremove = 0 //kinda hard to take off magclaws when you are gripping them tightly.
|
||||
user << "You dig your claws deeply into the flooring, bracing yourself."
|
||||
user << "It would be hard to take off the [src] without relaxing your grip first."
|
||||
|
||||
//In case they somehow come off while enabled.
|
||||
/obj/item/clothing/shoes/magboots/vox/dropped(mob/user as mob)
|
||||
..()
|
||||
if(src.magpulse)
|
||||
user.visible_message("The [src] go limp as they are removed from [usr]'s feet.", "The [src] go limp as they are removed from your feet.")
|
||||
flags &= ~NOSLIP
|
||||
magpulse = 0
|
||||
canremove = 1
|
||||
|
||||
examine()
|
||||
set src in view()
|
||||
..()
|
||||
/obj/item/clothing/shoes/magboots/vox/examine()
|
||||
set src in view()
|
||||
..()
|
||||
if (magpulse)
|
||||
usr << "It would be hard to take these off without relaxing your grip first." //theoretically this message should only be seen by the wearer when the claws are equipped.
|
||||
|
||||
//Species-specific Syndicate rigs.
|
||||
|
||||
|
||||
@@ -159,5 +159,5 @@
|
||||
comment = "tails"
|
||||
else if(result == 2)
|
||||
comment = "heads"
|
||||
user.visible_message("<span class='notice'>[user] has thrown the [src]. It lands on [comment]! </span>", \
|
||||
"<span class='notice'>You throw the [src]. It lands on [comment]! </span>")
|
||||
user.visible_message("<span class='notice'>[user] has thrown \the [src]. It lands on [comment]! </span>", \
|
||||
"<span class='notice'>You throw \the [src]. It lands on [comment]! </span>")
|
||||
|
||||
@@ -330,10 +330,10 @@ var/list/department_radio_keys = list(
|
||||
P.speech_buffer.Remove(pick(P.speech_buffer))
|
||||
P.speech_buffer.Add(message)
|
||||
|
||||
if(istype(A, /obj/)) //radio in pocket could work, radio in backpack wouldn't --rastaf0
|
||||
if(istype(A, /obj/)) //radios in pockets and backpacks work
|
||||
var/obj/O = A
|
||||
spawn (0)
|
||||
if(O && !istype(O.loc, /obj/item/weapon/storage))
|
||||
if(O)
|
||||
O.hear_talk(src, message)
|
||||
|
||||
|
||||
|
||||
@@ -23,9 +23,9 @@
|
||||
var/stop_automated_movement_when_pulled = 1 //When set to 1 this stops the animal from moving when someone is pulling it.
|
||||
|
||||
//Interaction
|
||||
var/response_help = "You try to help"
|
||||
var/response_disarm = "You try to disarm"
|
||||
var/response_harm = "You try to hurt"
|
||||
var/response_help = "tries to help"
|
||||
var/response_disarm = "tries to disarm"
|
||||
var/response_harm = "tries to hurt"
|
||||
var/harm_intent_damage = 3
|
||||
|
||||
//Temperature effect
|
||||
|
||||
@@ -382,8 +382,8 @@
|
||||
item_state = "paper"
|
||||
|
||||
/obj/item/weapon/paper/sop
|
||||
name = "Standard Operating Procedure"
|
||||
info = "Alert Levels:<BR>\nBlue- Emergency<BR>\n\t1. Caused by fire<BR>\n\t2. Caused by manual interaction<BR>\n\tAction:<BR>\n\t\tClose all fire doors. These can only be opened by reseting the alarm<BR>\nRed- Ejection/Self Destruct<BR>\n\t1. Caused by module operating computer.<BR>\n\tAction:<BR>\n\t\tAfter the specified time the module will eject completely.<BR>\n<BR>\nEngine Maintenance Instructions:<BR>\n\tShut off ignition systems:<BR>\n\tActivate internal power<BR>\n\tActivate orbital balance matrix<BR>\n\tRemove volatile liquids from area<BR>\n\tWear a fire suit<BR>\n<BR>\n\tAfter<BR>\n\t\tDecontaminate<BR>\n\t\tVisit medical examiner<BR>\n<BR>\nToxin Laboratory Procedure:<BR>\n\tWear a gas mask regardless<BR>\n\tGet an oxygen tank.<BR>\n\tActivate internal atmosphere<BR>\n<BR>\n\tAfter<BR>\n\t\tDecontaminate<BR>\n\t\tVisit medical examiner<BR>\n<BR>\nDisaster Procedure:<BR>\n\tFire:<BR>\n\t\tActivate sector fire alarm.<BR>\n\t\tMove to a safe area.<BR>\n\t\tGet a fire suit<BR>\n\t\tAfter:<BR>\n\t\t\tAssess Damage<BR>\n\t\t\tRepair damages<BR>\n\t\t\tIf needed, Evacuate<BR>\n\tMeteor Shower:<BR>\n\t\tActivate fire alarm<BR>\n\t\tMove to the back of ship<BR>\n\t\tAfter<BR>\n\t\t\tRepair damage<BR>\n\t\t\tIf needed, Evacuate<BR>\n\tAccidental Reentry:<BR>\n\t\tActivate fire alrms in front of ship.<BR>\n\t\tMove volatile matter to a fire proof area!<BR>\n\t\tGet a fire suit.<BR>\n\t\tStay secure until an emergency ship arrives.<BR>\n<BR>\n\t\tIf ship does not arrive-<BR>\n\t\t\tEvacuate to a nearby safe area!"
|
||||
name = "paper- 'Standard Operating Procedure'"
|
||||
info = "Alert Levels:<BR>\nBlue- Emergency<BR>\n\t1. Caused by fire<BR>\n\t2. Caused by manual interaction<BR>\n\tAction:<BR>\n\t\tClose all fire doors. These can only be opened by reseting the alarm<BR>\nRed- Ejection/Self Destruct<BR>\n\t1. Caused by module operating computer.<BR>\n\tAction:<BR>\n\t\tAfter the specified time the module will eject completely.<BR>\n<BR>\nEngine Maintenance Instructions:<BR>\n\tShut off ignition systems:<BR>\n\tActivate internal power<BR>\n\tActivate orbital balance matrix<BR>\n\tRemove volatile liquids from area<BR>\n\tWear a fire suit<BR>\n<BR>\n\tAfter<BR>\n\t\tDecontaminate<BR>\n\t\tVisit medical examiner<BR>\n<BR>\nToxin Laboratory Procedure:<BR>\n\tWear a gas mask regardless<BR>\n\tGet an oxygen tank.<BR>\n\tActivate internal atmosphere<BR>\n<BR>\n\tAfter<BR>\n\t\tDecontaminate<BR>\n\t\tVisit medical examiner<BR>\n<BR>\nDisaster Procedure:<BR>\n\tFire:<BR>\n\t\tActivate sector fire alarm.<BR>\n\t\tMove to a safe area.<BR>\n\t\tGet a fire suit<BR>\n\t\tAfter:<BR>\n\t\t\tAssess Damage<BR>\n\t\t\tRepair damages<BR>\n\t\t\tIf needed, Evacuate<BR>\n\tMeteor Shower:<BR>\n\t\tActivate fire alarm<BR>\n\t\tMove to the back of ship<BR>\n\t\tAfter<BR>\n\t\t\tRepair damage<BR>\n\t\t\tIf needed, Evacuate<BR>\n\tAccidental Reentry:<BR>\n\t\tActivate fire alarms in front of ship.<BR>\n\t\tMove volatile matter to a fire proof area!<BR>\n\t\tGet a fire suit.<BR>\n\t\tStay secure until an emergency ship arrives.<BR>\n<BR>\n\t\tIf ship does not arrive-<BR>\n\t\t\tEvacuate to a nearby safe area!"
|
||||
|
||||
/obj/item/weapon/paper/crumpled
|
||||
name = "paper scrap"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
/obj/machinery/power/emitter
|
||||
name = "Emitter"
|
||||
desc = "A heavy duty industrial laser"
|
||||
desc = "It is a heavy duty industrial laser."
|
||||
icon = 'icons/obj/singularity.dmi'
|
||||
icon_state = "emitter"
|
||||
anchored = 0
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
damage = 10
|
||||
damage_type = TOX
|
||||
nodamage = 0
|
||||
weaken = 10
|
||||
agony = 40
|
||||
stutter = 10
|
||||
|
||||
|
||||
|
||||
@@ -1227,7 +1227,7 @@
|
||||
bitesize = 2
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/spagetti
|
||||
name = "Spagetti"
|
||||
name = "Spaghetti"
|
||||
desc = "A bundle of raw spaghetti."
|
||||
icon_state = "spagetti"
|
||||
filling_color = "#EDDD00"
|
||||
@@ -1807,7 +1807,7 @@
|
||||
bitesize = 2
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/boiledspagetti
|
||||
name = "Boiled Spagetti"
|
||||
name = "Boiled Spaghetti"
|
||||
desc = "A plain dish of noodles, this sucks."
|
||||
icon_state = "spagettiboiled"
|
||||
trash = /obj/item/trash/plate
|
||||
@@ -1843,7 +1843,7 @@
|
||||
bitesize = 2
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/pastatomato
|
||||
name = "Spagetti"
|
||||
name = "Spaghetti"
|
||||
desc = "Spaghetti and crushed tomatoes. Just like your abusive father used to make!"
|
||||
icon_state = "pastatomato"
|
||||
trash = /obj/item/trash/plate
|
||||
@@ -1856,7 +1856,7 @@
|
||||
bitesize = 4
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meatballspagetti
|
||||
name = "Spagetti & Meatballs"
|
||||
name = "Spaghetti & Meatballs"
|
||||
desc = "Now thats a nic'e meatball!"
|
||||
icon_state = "meatballspagetti"
|
||||
trash = /obj/item/trash/plate
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
|
||||
/obj/structure/reagent_dispensers/water_cooler
|
||||
name = "Water-Cooler"
|
||||
desc = "A machine that dispenses water to drink"
|
||||
desc = "A machine that dispenses water to drink."
|
||||
amount_per_transfer_from_this = 5
|
||||
icon = 'icons/obj/vending.dmi'
|
||||
icon_state = "water_cooler"
|
||||
|
||||
@@ -121,7 +121,7 @@ When thinking about new stuff, check here to see if there are any slots unfilled
|
||||
20 |
|
||||
|
||||
//BIOTECH
|
||||
1 | Bruise Pack, Scalple
|
||||
1 | Bruise Pack, Scalpel
|
||||
2 | PANDEMIC Board, Mass Spectrometer
|
||||
3 | AI Core, Brains (MMI)
|
||||
4 | MMI+Radio
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
//changes: rad protection up to 100 from 20/50 respectively
|
||||
/obj/item/clothing/suit/bio_suit/anomaly
|
||||
name = "Anomaly suit"
|
||||
desc = "A sealed bio suit capable of insulating against exotic alien energies"
|
||||
desc = "A sealed bio suit capable of insulating against exotic alien energies."
|
||||
icon_state = "engspace_suit"
|
||||
item_state = "engspace_suit"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 100)
|
||||
|
||||
+14
-2
@@ -56,11 +56,23 @@ should be listed in the changelog upon commit though. Thanks. -->
|
||||
|
||||
<!-- DO NOT REMOVE, MOVE, OR COPY THIS COMMENT! THIS MUST BE THE LAST NON-EMPTY LINE BEFORE THE LOGS #ADDTOCHANGELOGMARKER# -->
|
||||
|
||||
<div class='commit sansserif'>
|
||||
<h2 class='date'>11 April 2014</h2>
|
||||
<h3 class='author'>Jarcolr updated:</h3>
|
||||
<ul class='changes bgimages16'> <li class='rscadd'>You can now flip coins like a D2</li>
|
||||
<li class='tweak'>Miscellaneous cargo crates got a tiny buff, Standard Costume crate is now Costume Crate</li>
|
||||
<li class='tweak'>Grammar patch,telekinesis/amputated arm exploit fixes,more in the future</li>
|
||||
<li class='tweak'>Grille kicking now does less damage</li>
|
||||
<li class='tweak'>TELESCOPIC baton no longer knocks anybody down,still got a lot of force though</li>
|
||||
<li class='tweak'>Other small-ish changes and fixes that aren't worth mentioning</li> </ul> </div>
|
||||
|
||||
|
||||
|
||||
<div class='commit sansserif'>
|
||||
<h2 class='date'>30 March 2014</h2>
|
||||
<h2 class='date'>6 April 2014</h2>
|
||||
<h3 class='author'>RavingManiac updated:</h3>
|
||||
<ul class='changes bgimages16'>
|
||||
<li class='rscadd'>Inflatable walls and doors added. Useful for sealing off hull breaches, but easily punctured by sharp objects and Tajarans.</li>
|
||||
<li class='tweak'>Tape recorders and station-bounced radios now work inside containers and closets.</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 125 KiB After Width: | Height: | Size: 125 KiB |
+10931
-10923
File diff suppressed because it is too large
Load Diff
@@ -37,6 +37,9 @@
|
||||
<i>None</i>
|
||||
{{/if}}
|
||||
{{:~link('Remove', 'eject', {'rem_device' : 1}, valveAttachment ? null : 'disabled')}}
|
||||
{{if valveAttachment}}
|
||||
{{:~link('View', 'wrench', {'device' : 1})}}
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user