mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-18 03:26:31 +01:00
Merge branch 'master' of https://github.com/tgstation/-tg-station into SecBorgDisabler
Conflicts: code/modules/research/designs/mechfabricator_designs.dm
This commit is contained in:
@@ -34,6 +34,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
var/mimeamt = 0 //How many silence left when infected with mime.exe
|
||||
var/note = "Congratulations, your station has chosen the Thinktronic 5230 Personal Data Assistant!" //Current note in the notepad function
|
||||
var/notehtml = ""
|
||||
var/notescanned = 0 // True if what is in the notekeeper was from a paper.
|
||||
var/cart = "" //A place to stick cartridge menu information
|
||||
var/detonate = 1 // Can the PDA be blown up?
|
||||
var/hidden = 0 // Is the PDA hidden from the PDA list?
|
||||
@@ -368,12 +369,14 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
dat += "</ul>"
|
||||
|
||||
if (1)
|
||||
dat += "<h4><img src=pda_notes.png> Notekeeper V2.1</h4>"
|
||||
dat += "<a href='byond://?src=\ref[src];choice=Edit'> Edit</a><br>"
|
||||
dat += note
|
||||
dat += "<h4><img src=pda_notes.png> Notekeeper V2.2</h4>"
|
||||
dat += "<a href='byond://?src=\ref[src];choice=Edit'>Edit</a><br>"
|
||||
if(notescanned)
|
||||
dat += "(This is a scanned image, editing it may cause some text formatting to change.)<br>"
|
||||
dat += "<HR><font face=\"[PEN_FONT]\">[(!notehtml ? note : notehtml)]</font>"
|
||||
|
||||
if (2)
|
||||
dat += "<h4><img src=pda_mail.png> SpaceMessenger V3.9.5</h4>"
|
||||
dat += "<h4><img src=pda_mail.png> SpaceMessenger V3.9.6</h4>"
|
||||
dat += "<a href='byond://?src=\ref[src];choice=Toggle Ringer'><img src=pda_bell.png> Ringer: [silent == 1 ? "Off" : "On"]</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];choice=Toggle Messenger'><img src=pda_mail.png> Send / Receive: [toff == 1 ? "Off" : "On"]</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];choice=Ringtone'><img src=pda_bell.png> Set Ringtone</a> | "
|
||||
@@ -409,7 +412,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
dat += "None detected.<br>"
|
||||
|
||||
if(21)
|
||||
dat += "<h4><img src=pda_mail.png> SpaceMessenger V3.9.5</h4>"
|
||||
dat += "<h4><img src=pda_mail.png> SpaceMessenger V3.9.6</h4>"
|
||||
dat += "<a href='byond://?src=\ref[src];choice=Clear'><img src=pda_blank.png> Clear Messages</a>"
|
||||
|
||||
dat += "<h4><img src=pda_mail.png> Messages</h4>"
|
||||
@@ -448,12 +451,12 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
|
||||
if (5)
|
||||
new_ntrc_msg = 0
|
||||
dat += "<h4><img src=pda_chatroom.png> SS13 Nanotrasen Relay Chat Network</h4>"
|
||||
dat += "<h4><img src=pda_chatroom.png> Nanotrasen Relay Chat Network V1.2</h4>"
|
||||
|
||||
dat += "<a href='byond://?src=\ref[src];choice=Set Nick'>[nick]</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];choice=Set Channel'>[chat_channel]</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];choice=NTRC Message'>Write message</a> | "
|
||||
dat += "<a href='byond://?src=\ref[src];choice=NTRC Help'>Help</a><br>"
|
||||
dat += "<a href='byond://?src=\ref[src];choice=NTRC Help'>Help</a><br><HR>"
|
||||
if(chat_channel)
|
||||
dat += ntrclog[chat_channel]
|
||||
|
||||
@@ -563,18 +566,21 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
else if((!isnull(cartridge)) && (cartridge.access_atmos))
|
||||
scanmode = 5
|
||||
|
||||
//MESSENGER/NOTE FUNCTIONS===================================
|
||||
//NOTEKEEPER FUNCTIONS===================================
|
||||
|
||||
if ("Edit")
|
||||
var/n = input(U, "Please enter message", name, notehtml) as message
|
||||
var/n = stripped_multiline_input(U, "Please enter message", name, note)
|
||||
if (in_range(src, U) && loc == U)
|
||||
n = copytext(adminscrub(n), 1, MAX_MESSAGE_LEN)
|
||||
if (mode == 1)
|
||||
note = replacetext(n, "\n", "<BR>")
|
||||
notehtml = n
|
||||
if (mode == 1 && n)
|
||||
note = n
|
||||
notehtml = parsepencode(n, U, SIGNFONT)
|
||||
notescanned = 0
|
||||
else
|
||||
U << browse(null, "window=pda")
|
||||
return
|
||||
|
||||
//MESSENGER FUNCTIONS===================================
|
||||
|
||||
if("Toggle Messenger")
|
||||
toff = !toff
|
||||
if("Toggle Ringer")//If viewing texts then erase them, if not then toggle silent status
|
||||
@@ -631,11 +637,12 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
//CHATROOM FUNCTIONS====================================
|
||||
|
||||
if("Set Nick")
|
||||
nick = stripped_input(U, "Please enter nickname", name, null, 8)
|
||||
var/n = trim(stripped_input(U, "Please enter nickname", name, nick, 9))
|
||||
if(n)
|
||||
nick = n
|
||||
|
||||
if("Set Channel")
|
||||
var/t = stripped_input(U, "Please enter channel", name, chat_channel)
|
||||
|
||||
var/t = replacetext(trim(stripped_input(U, "Please enter channel", name, chat_channel, 15)), " ", "_")
|
||||
if(t)
|
||||
var/datum/chatroom/C = chatchannels[chat_channel]
|
||||
var/ret = C.parse_msg(src, nick, "/join [t]")
|
||||
@@ -644,18 +651,19 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
chat_channel = ret
|
||||
|
||||
if("NTRC Message")
|
||||
var/t = msg_input(U) as text
|
||||
var/datum/chatroom/C = chatchannels[chat_channel]
|
||||
if(C)
|
||||
var/ret = C.parse_msg(src,nick,t)
|
||||
if(findtextEx(ret,"BAD_",1,5))
|
||||
ntrclog[chat_channel] = "[ret]<br>" + ntrclog[chat_channel]
|
||||
else if(ret in chatchannels)
|
||||
chat_channel = ret
|
||||
var/t = msg_input(U)
|
||||
if(t)
|
||||
var/datum/chatroom/C = chatchannels[chat_channel]
|
||||
if(C)
|
||||
var/ret = C.parse_msg(src, nick, t)
|
||||
if(findtextEx(ret, "BAD_", 1, 5))
|
||||
ntrclog[chat_channel] = "[ret]<br>" + ntrclog[chat_channel]
|
||||
else if(ret in chatchannels)
|
||||
chat_channel = ret
|
||||
|
||||
if("NTRC Help")
|
||||
var/helptext = "<b>NTRC Commands:</b><br><br>"
|
||||
helptext += "/join #channel<br>/register<br>/log amountoflines<br><br>"
|
||||
helptext += "/join \[#\](channel name)<br>/register<br>/log (amount of lines)<br><br>"
|
||||
usr << browse(helptext, "window=ntrchelp;size=200x200;border=1;can_resize=1;can_close=1;can_minimize=1")
|
||||
|
||||
|
||||
@@ -755,8 +763,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
id = null
|
||||
|
||||
/obj/item/device/pda/proc/msg_input(var/mob/living/U = usr)
|
||||
var/t = input(U, "Please enter message", name, null) as null|text
|
||||
t = copytext(sanitize(t), 1, MAX_MESSAGE_LEN)
|
||||
var/t = stripped_input(U, "Please enter message", name, null, MAX_MESSAGE_LEN)
|
||||
if (!t || toff)
|
||||
return
|
||||
if (!in_range(src, U) && loc != U)
|
||||
@@ -991,8 +998,17 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
if(T.ptank) atmosanalyzer_scan(T.ptank.air_contents, user, T)
|
||||
|
||||
if (!scanmode && istype(A, /obj/item/weapon/paper) && owner)
|
||||
note = A:info
|
||||
user << "<span class='notice'>Paper scanned.</span>" //concept of scanning paper copyright brainoblivion 2009
|
||||
if (!A:info)
|
||||
user << "<span class='notice'>Unable to scan. Paper is blank.</span>"
|
||||
return
|
||||
notehtml = A:info
|
||||
note = replacetext(notehtml, "<BR>", "\[br\]")
|
||||
note = replacetext(note, "<li>", "\[*\]")
|
||||
note = replacetext(note, "<ul>", "\[list\]")
|
||||
note = replacetext(note, "</ul>", "\[/list\]")
|
||||
note = strip_html_properly(note)
|
||||
notescanned = 1
|
||||
user << "<span class='notice'>Paper scanned. Saved to PDA's notekeeper.</span>" //concept of scanning paper copyright brainoblivion 2009
|
||||
|
||||
|
||||
/obj/item/device/pda/proc/explode() //This needs tuning.
|
||||
@@ -1169,4 +1185,4 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
for(var/obj/item/device/pda/P in PDAs)
|
||||
if(!P.owner || P.toff || P.hidden) continue
|
||||
. += P
|
||||
return .
|
||||
return .
|
||||
@@ -25,14 +25,29 @@ var/list/chatchannels = list(default_ntrc_chatroom.name = default_ntrc_chatroom)
|
||||
|
||||
MS.send_chat_message(nick,name,message)
|
||||
|
||||
var/list/cmd=text2list(message, " ")
|
||||
switch(cmd[1])
|
||||
if("/register")
|
||||
return register_auth(client,nick)
|
||||
if("/join")
|
||||
if(cmd[2]) return channel_join(client,nick,cmd[2])
|
||||
if("/log")
|
||||
if(cmd[2]) return get_log(client,nick,cmd[2])
|
||||
if(findtext(message,"/",1,2))
|
||||
var/list/cmd=text2list(message, " ")
|
||||
switch(cmd[1])
|
||||
if("/register")
|
||||
if(cmd.len == 1)
|
||||
return register_auth(client,nick)
|
||||
else
|
||||
return "BAD_COMMAND_ARGUMENTS"
|
||||
if("/join")
|
||||
if(cmd.len == 2 && cmd[2])
|
||||
if((findtext(cmd[2],"#",1,2) && length(cmd[2]) > 1) || (!findtext(cmd[2],"#",1,2) && length(cmd[2]) > 0))
|
||||
return channel_join(client,nick,copytext(cmd[2], 1, 15))
|
||||
else // Happens only if "" or "#" is entered as a channel name.
|
||||
return "BAD_CHANNEL"
|
||||
else
|
||||
return "BAD_COMMAND_ARGUMENTS"
|
||||
if("/log")
|
||||
if(cmd.len == 2 && cmd[2])
|
||||
return get_log(client,nick,cmd[2])
|
||||
else
|
||||
return "BAD_COMMAND_ARGUMENTS"
|
||||
else
|
||||
return "BAD_COMMAND"
|
||||
|
||||
return send_message(client,nick,message)
|
||||
|
||||
|
||||
@@ -139,7 +139,7 @@ MASS SPECTROMETER
|
||||
|
||||
// Damage descriptions
|
||||
|
||||
user.show_message(text("<span class='notice'>[] | [] | [] | []</span>", oxy_loss > 50 ? "<span class='warning'> Severe oxygen deprivation detected</span>" : "<span class='info'>Subject bloodstream oxygen level normal</span>", tox_loss > 50 ? "<span class='warning'> Dangerous amount of toxins detected</span>" : "<span class='info'>Subject bloodstream toxin level minimal</span>", fire_loss > 50 ? "<span class='warning'> Severe burn damage detected</span>" : "<span class='info'>Subject burn injury status O.K</span>", brute_loss > 50 ? "<span class='warning'> Severe anatomical damage detected</span>" : "<span class='info'>Subject brute-force injury status O.K</span>"), 1)
|
||||
user.show_message(text("<span class='notice'>[] | [] | [] | []</span>", oxy_loss > 50 ? "<span class='warning'> Severe oxygen deprivation detected</span>" : "<span class='info'>Subject bloodstream oxygen level normal</span>", tox_loss > 50 ? "<span class='warning'> Dangerous amount of toxins detected</span>" : "<span class='info'>Subject bloodstream toxin level minimal</span>", fire_loss > 50 ? "<span class='warning'> Severe burn damage detected</span>" : "<span class='info'>Subject burn injury status O.K</span>", brute_loss > 50 ? "<span class='warning'> Severe tissue damage detected</span>" : "<span class='info'>Subject brute-force injury status O.K</span>"), 1)
|
||||
|
||||
if(M.getStaminaLoss())
|
||||
user.show_message("<span class='info'>Subject appears to be suffering from fatigue.</span>", 1)
|
||||
@@ -160,6 +160,24 @@ MASS SPECTROMETER
|
||||
else if (M.getBrainLoss() >= 10)
|
||||
user.show_message("<span class='warning'>Significant brain damage detected. Subject may have had a concussion.</span>", 1)
|
||||
|
||||
// Blood Level
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.vessel)
|
||||
if(H.blood_max)
|
||||
user.show_message("<span class='danger'>Subject is bleeding!</span>")
|
||||
var/blood_volume = round(H.vessel.get_reagent_amount("blood"))
|
||||
var/blood_percent = blood_volume / 560
|
||||
var/blood_type = H.dna.blood_type
|
||||
blood_percent *= 100
|
||||
if(blood_volume <= 500 && blood_volume > 336)
|
||||
user.show_message("<span class='danger'>Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl.</span> <span class='notice'>Type: [blood_type]</span>")
|
||||
else if(blood_volume <= 336)
|
||||
user.show_message("<span class='danger'>Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl.</span> <span class='notice'>Type: [blood_type]</span>")
|
||||
else
|
||||
user.show_message("<span class='notice'>Blood Level Normal: [blood_percent]% [blood_volume]cl. Type: [blood_type]</span>")
|
||||
|
||||
|
||||
/obj/item/device/healthanalyzer/verb/toggle_mode()
|
||||
set name = "Switch Verbosity"
|
||||
set category = "Object"
|
||||
|
||||
@@ -9,51 +9,62 @@
|
||||
throw_range = 7
|
||||
var/heal_brute = 0
|
||||
var/heal_burn = 0
|
||||
var/stop_bleeding = 0
|
||||
var/self_delay = 50
|
||||
|
||||
/obj/item/stack/medical/attack(mob/living/carbon/M as mob, mob/user as mob)
|
||||
|
||||
if (M.stat == 2)
|
||||
if(M.stat == 2)
|
||||
var/t_him = "it"
|
||||
if (M.gender == MALE)
|
||||
if(M.gender == MALE)
|
||||
t_him = "him"
|
||||
else if (M.gender == FEMALE)
|
||||
else if(M.gender == FEMALE)
|
||||
t_him = "her"
|
||||
user << "<span class='danger'>\The [M] is dead, you cannot help [t_him]!</span>"
|
||||
return
|
||||
|
||||
if (!istype(M))
|
||||
user << "<span class='danger'>\The [src] cannot be applied to [M]!</span>"
|
||||
if(!istype(M))
|
||||
user << "<span class='danger'>You don't know how to apply \the [src] to [M]...</span>"
|
||||
return 1
|
||||
|
||||
if(!user.IsAdvancedToolUser())
|
||||
user << "<span class='danger'>You don't have the dexterity to do this!</span>"
|
||||
return 1
|
||||
|
||||
if (user)
|
||||
if (M != user)
|
||||
user.visible_message( \
|
||||
"<span class='notice'>[user] has applied [src] on [M].</span>", \
|
||||
"<span class='notice'>You apply \the [src] to [M].</span>" \
|
||||
)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(stop_bleeding)
|
||||
if(H.bleedsuppress)
|
||||
user << "[H]'s bleeding is already bandaged."
|
||||
if(!H.blood_max)
|
||||
user << "[H] isn't bleeding."
|
||||
|
||||
if(isliving(M))
|
||||
if(!M.can_inject(user, 1))
|
||||
return
|
||||
|
||||
if(user)
|
||||
if(M != user)
|
||||
user.visible_message("<span class='green'>[user] applies [src] on [M].</span>", "<span class='green'>You apply [src] on [M].</span>")
|
||||
else
|
||||
var/t_himself = "itself"
|
||||
if (user.gender == MALE)
|
||||
if(user.gender == MALE)
|
||||
t_himself = "himself"
|
||||
else if (user.gender == FEMALE)
|
||||
else if(user.gender == FEMALE)
|
||||
t_himself = "herself"
|
||||
user.visible_message("<span class='notice'>[user] starts to apply [src] on [t_himself]...</span>", "<span class='notice'>You begin applying [src] on yourself...</span>")
|
||||
if(!do_mob(user, M, self_delay)) return
|
||||
user.visible_message("<span class='green'>[user] applies [src] on [t_himself].</span>", "<span class='green'>You apply [src] on yourself.</span>")
|
||||
|
||||
user.visible_message( \
|
||||
"<span class='notice'>[M] applied [src] on [t_himself].</span>", \
|
||||
"<span class='notice'>You apply \the [src] on yourself.</span>" \
|
||||
)
|
||||
|
||||
if (istype(M, /mob/living/carbon/human))
|
||||
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/limb/affecting = H.get_organ(check_zone(user.zone_sel.selecting))
|
||||
|
||||
if(stop_bleeding)
|
||||
if(!H.bleedsuppress) //so you can't stack bleed suppression
|
||||
H.suppress_bloodloss(stop_bleeding)
|
||||
if(affecting.status == ORGAN_ORGANIC) //Limb must be organic to be healed - RR
|
||||
if (affecting.heal_damage(src.heal_brute, src.heal_burn, 0))
|
||||
if(affecting.heal_damage(src.heal_brute, src.heal_burn, 0))
|
||||
H.update_damage_overlays(0)
|
||||
|
||||
M.updatehealth()
|
||||
@@ -70,14 +81,29 @@
|
||||
/obj/item/stack/medical/bruise_pack
|
||||
name = "bruise pack"
|
||||
singular_name = "bruise pack"
|
||||
desc = "A pack designed to treat blunt-force trauma."
|
||||
desc = "A theraputic gel pack and bandages designed to treat blunt-force trauma."
|
||||
icon_state = "brutepack"
|
||||
heal_brute = 60
|
||||
heal_brute = 40
|
||||
origin_tech = "biotech=1"
|
||||
|
||||
/obj/item/stack/medical/gauze
|
||||
name = "medical gauze"
|
||||
desc = "A roll of elastic cloth that is extremely effective at stopping bleeding, but does not heal wounds."
|
||||
gender = PLURAL
|
||||
singular_name = "medical gauze"
|
||||
icon_state = "gauze"
|
||||
stop_bleeding = 1800
|
||||
self_delay = 80
|
||||
|
||||
/obj/item/stack/medical/gauze/improvised
|
||||
name = "improvised gauze"
|
||||
singular_name = "improvised gauze"
|
||||
desc = "A roll of cloth roughly cut from something that can stop bleeding, but does not heal wounds."
|
||||
stop_bleeding = 900
|
||||
|
||||
/obj/item/stack/medical/ointment
|
||||
name = "ointment"
|
||||
desc = "Used to treat those nasty burns."
|
||||
desc = "Used to treat those nasty burn wounds."
|
||||
gender = PLURAL
|
||||
singular_name = "ointment"
|
||||
icon_state = "ointment"
|
||||
|
||||
@@ -8,6 +8,7 @@ var/global/list/datum/stack_recipe/rod_recipes = list ( \
|
||||
desc = "Some rods. Can be used for building, or something."
|
||||
singular_name = "metal rod"
|
||||
icon_state = "rods"
|
||||
item_state = "rods"
|
||||
flags = CONDUCT
|
||||
w_class = 3.0
|
||||
force = 9.0
|
||||
@@ -21,8 +22,15 @@ var/global/list/datum/stack_recipe/rod_recipes = list ( \
|
||||
|
||||
/obj/item/stack/rods/New(var/loc, var/amount=null)
|
||||
recipes = rod_recipes
|
||||
update_icon()
|
||||
return ..()
|
||||
|
||||
/obj/item/stack/rods/update_icon()
|
||||
if(get_amount() <= 5)
|
||||
icon_state = "rods-[get_amount()]"
|
||||
else
|
||||
icon_state = "rods"
|
||||
|
||||
/obj/item/stack/rods/attackby(obj/item/W as obj, mob/user as mob)
|
||||
..()
|
||||
if (istype(W, /obj/item/weapon/weldingtool))
|
||||
|
||||
@@ -26,6 +26,15 @@
|
||||
icon_state = "sheet-monkey"
|
||||
origin_tech = null
|
||||
|
||||
var/global/list/datum/stack_recipe/monkey_recipes = list ( \
|
||||
new/datum/stack_recipe("monkey mask", /obj/item/clothing/mask/gas/monkeymask, 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("monkey suit", /obj/item/clothing/suit/monkeysuit, 2, on_floor = 1), \
|
||||
)
|
||||
|
||||
/obj/item/stack/sheet/animalhide/monkey/New(var/loc, var/amount=null)
|
||||
recipes = monkey_recipes
|
||||
return ..()
|
||||
|
||||
/obj/item/stack/sheet/animalhide/lizard
|
||||
name = "lizard skin"
|
||||
desc = "Sssssss..."
|
||||
@@ -40,6 +49,15 @@
|
||||
icon_state = "sheet-xeno"
|
||||
origin_tech = null
|
||||
|
||||
var/global/list/datum/stack_recipe/xeno_recipes = list ( \
|
||||
new/datum/stack_recipe("alien helmet", /obj/item/clothing/head/xenos, 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("alien suit", /obj/item/clothing/suit/xenos, 2, on_floor = 1), \
|
||||
)
|
||||
|
||||
/obj/item/stack/sheet/animalhide/xeno/New(var/loc, var/amount=null)
|
||||
recipes = xeno_recipes
|
||||
return ..()
|
||||
|
||||
//don't see anywhere else to put these, maybe together they could be used to make the xenos suit?
|
||||
/obj/item/stack/sheet/xenochitin
|
||||
name = "alien chitin"
|
||||
|
||||
@@ -177,6 +177,7 @@
|
||||
if(usr)
|
||||
usr.unEquip(src, 1)
|
||||
qdel(src)
|
||||
update_icon()
|
||||
return 1
|
||||
|
||||
/obj/item/stack/proc/add(var/amount)
|
||||
@@ -184,6 +185,7 @@
|
||||
source.add_charge(amount * cost)
|
||||
else
|
||||
src.amount += amount
|
||||
update_icon()
|
||||
|
||||
/obj/item/stack/proc/add_to_stacks(mob/usr as mob)
|
||||
var/obj/item/stack/oldsrc = src
|
||||
@@ -199,6 +201,7 @@
|
||||
usr << "You add new [item.singular_name] to the stack. It now contains [item.amount] [item.singular_name]\s."
|
||||
if(oldsrc.amount <= 0)
|
||||
break
|
||||
oldsrc.update_icon()
|
||||
|
||||
/obj/item/stack/attack_hand(mob/user as mob)
|
||||
if (user.get_inactive_hand() == src)
|
||||
@@ -240,6 +243,7 @@
|
||||
src.use(to_transfer)
|
||||
if (src && usr.machine==src)
|
||||
spawn(0) src.interact(usr)
|
||||
S.update_icon()
|
||||
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
* Toy nuke
|
||||
* Fake meteor
|
||||
* Carp plushie
|
||||
* Foam armblade
|
||||
* Toy big red button
|
||||
*/
|
||||
|
||||
|
||||
@@ -371,6 +373,19 @@
|
||||
else
|
||||
user << "<span class='warning'>It's already fabulous!</span>"
|
||||
|
||||
/*
|
||||
* Foam armblade
|
||||
*/
|
||||
/obj/item/toy/foamblade
|
||||
name = "foam armblade"
|
||||
desc = "it says \"Sternside Changs #1 fan\" on it. "
|
||||
icon = 'icons/obj/toy.dmi'
|
||||
icon_state = "foamblade"
|
||||
item_state = "arm_blade"
|
||||
attack_verb = list("pricked", "absorbed", "gored")
|
||||
w_class = 2
|
||||
|
||||
|
||||
/*
|
||||
* Subtype of Double-Bladed Energy Swords
|
||||
*/
|
||||
@@ -1077,4 +1092,28 @@ obj/item/toy/cards/deck/syndicate
|
||||
desc = "An adorable stuffed toy that resembles a space carp."
|
||||
icon = 'icons/obj/toy.dmi'
|
||||
icon_state = "carpplushie"
|
||||
w_class = 2.0
|
||||
w_class = 2.0
|
||||
|
||||
/*
|
||||
* Toy big red button
|
||||
*/
|
||||
/obj/item/toy/redbutton
|
||||
name = "big red button"
|
||||
desc = "A big, plastic red button. Reads 'From HonkCo Pranks©' on the back."
|
||||
icon = 'icons/obj/assemblies.dmi'
|
||||
icon_state = "bigred"
|
||||
w_class = 2.0
|
||||
var/cooldown = 0
|
||||
|
||||
/obj/item/toy/redbutton/attack_self(mob/user)
|
||||
if (cooldown < world.time)
|
||||
cooldown = (world.time + 300) // Sets cooldown at 30 seconds
|
||||
user.visible_message("<span class='warning'>[user] presses the big red button.</span>", "<span class='notice'>You press the button, it plays a loud noise!</span>", "<span class='notice'>The button clicks loudly.</span>")
|
||||
playsound(src, 'sound/effects/explosionfar.ogg', 50, 0, surround = 0)
|
||||
for(var/mob/M in range(10, src)) // Checks range
|
||||
if(!M.stat && !istype(M, /mob/living/silicon/ai)) // Checks to make sure whoever's getting shaken is alive/not the AI
|
||||
sleep(8) // Short delay to match up with the explosion sound
|
||||
shake_camera(M, 2, 1) // Shakes player camera 2 squares for 1 second.
|
||||
|
||||
else
|
||||
user << "<span class='alert'>Nothing happens.</span>"
|
||||
@@ -103,12 +103,13 @@ RCD
|
||||
/obj/item/weapon/rcd/attackby(obj/item/weapon/W, mob/user)
|
||||
..()
|
||||
if(istype(W, /obj/item/weapon/rcd_ammo))
|
||||
if((matter + 20) > max_matter)
|
||||
var/obj/item/weapon/rcd_ammo/R = W
|
||||
if((matter + R.ammoamt) > max_matter)
|
||||
user << "<span class='notice'>The RCD cant hold any more matter-units.</span>"
|
||||
return
|
||||
user.drop_item()
|
||||
qdel(W)
|
||||
matter += 20
|
||||
matter += R.ammoamt
|
||||
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
|
||||
user << "<span class='notice'>The RCD now holds [matter]/[max_matter] matter-units.</span>"
|
||||
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
|
||||
@@ -265,6 +266,15 @@ RCD
|
||||
desc = "A device used to rapidly build walls/floor."
|
||||
canRwall = 1
|
||||
|
||||
/obj/item/weapon/rcd/loaded
|
||||
matter = 100
|
||||
|
||||
/obj/item/weapon/rcd/combat
|
||||
name = "combat RCD"
|
||||
max_matter = 500
|
||||
matter = 500
|
||||
canRwall = 1
|
||||
|
||||
/obj/item/weapon/rcd_ammo
|
||||
name = "compressed matter cartridge"
|
||||
desc = "Highly compressed matter for the RCD."
|
||||
@@ -277,3 +287,7 @@ RCD
|
||||
origin_tech = "materials=2"
|
||||
m_amt = 16000
|
||||
g_amt = 8000
|
||||
var/ammoamt = 20
|
||||
|
||||
/obj/item/weapon/rcd_ammo/large
|
||||
ammoamt = 100
|
||||
@@ -196,19 +196,22 @@ update_label("John Doe", "Clowny")
|
||||
icon_state = "centcom"
|
||||
registered_name = "Emergency Response Team Commander"
|
||||
assignment = "Emergency Response Team Commander"
|
||||
New() access = get_all_accesses()
|
||||
New() access = get_all_accesses()+get_ert_access("commander")
|
||||
|
||||
/obj/item/weapon/card/id/ert/Security
|
||||
registered_name = "Security Response Officer"
|
||||
assignment = "Security Response Officer"
|
||||
New() access = get_all_accesses()+get_ert_access("sec")
|
||||
|
||||
/obj/item/weapon/card/id/ert/Engineer
|
||||
registered_name = "Engineer Response Officer"
|
||||
assignment = "Engineer Response Officer"
|
||||
New() access = get_all_accesses()+get_ert_access("eng")
|
||||
|
||||
/obj/item/weapon/card/id/ert/Medical
|
||||
registered_name = "Medical Response Officer"
|
||||
assignment = "Medical Response Officer"
|
||||
New() access = get_all_accesses()+get_ert_access("med")
|
||||
|
||||
/obj/item/weapon/card/id/prisoner
|
||||
name = "prisoner ID card"
|
||||
|
||||
@@ -110,6 +110,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
var/smoketime = 300
|
||||
var/chem_volume = 30
|
||||
|
||||
/obj/item/clothing/mask/cigarette/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is huffing the [src.name] as quickly as they can! It looks like \he's trying to give \himself cancer.</span>")
|
||||
return (TOXLOSS|OXYLOSS)
|
||||
|
||||
/obj/item/clothing/mask/cigarette/New()
|
||||
..()
|
||||
flags |= NOREACT // so it doesn't react until you light it
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
var/operating = 0//cooldown
|
||||
var/obj/item/weapon/weldingtool/weldtool = null
|
||||
var/obj/item/device/assembly/igniter/igniter = null
|
||||
var/obj/item/weapon/tank/plasma/ptank = null
|
||||
var/obj/item/weapon/tank/internals/plasma/ptank = null
|
||||
|
||||
|
||||
/obj/item/weapon/flamethrower/Destroy()
|
||||
@@ -100,7 +100,7 @@
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if(istype(W,/obj/item/weapon/tank/plasma))
|
||||
if(istype(W,/obj/item/weapon/tank/internals/plasma))
|
||||
if(ptank)
|
||||
user << "<span class='notice'>There appears to already be a plasma tank loaded in [src]!</span>"
|
||||
return
|
||||
@@ -204,5 +204,5 @@
|
||||
|
||||
/obj/item/weapon/flamethrower/full/tank/New(var/loc)
|
||||
..()
|
||||
ptank = new /obj/item/weapon/tank/plasma/full(src)
|
||||
ptank = new /obj/item/weapon/tank/internals/plasma/full(src)
|
||||
update_icon()
|
||||
@@ -203,8 +203,11 @@
|
||||
qdel(src) //correctly before deleting the grenade.
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/proc/mix_reagents()
|
||||
var/total_temp
|
||||
for(var/obj/item/weapon/reagent_containers/glass/G in beakers)
|
||||
G.reagents.trans_to(src, G.reagents.total_volume)
|
||||
total_temp += G.reagents.chem_temp
|
||||
reagents.chem_temp = total_temp
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/proc/can_flood_from(myloc, maxrange)
|
||||
var/list/reachable = list(myloc)
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
////////////////////
|
||||
//Clusterbang
|
||||
////////////////////
|
||||
/obj/item/weapon/grenade/clusterbuster
|
||||
desc = "Use of this weapon may constiute a war crime in your area, consult your local captain."
|
||||
name = "clusterbang"
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "clusterbang"
|
||||
var/payload = /obj/item/weapon/grenade/flashbang/cluster
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/prime()
|
||||
update_mob()
|
||||
var/numspawned = rand(4,8)
|
||||
var/again = 0
|
||||
|
||||
for(var/more = numspawned,more > 0,more--)
|
||||
if(prob(35))
|
||||
again++
|
||||
numspawned--
|
||||
|
||||
for(var/loop = again ,loop > 0, loop--)
|
||||
new /obj/item/weapon/grenade/clusterbuster/segment(loc, payload)//Creates 'segments' that launches a few more payloads
|
||||
|
||||
new /obj/effect/payload_spawner(loc, payload, numspawned)//Launches payload
|
||||
|
||||
playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
|
||||
|
||||
qdel(src)
|
||||
|
||||
|
||||
//////////////////////
|
||||
//Clusterbang segment
|
||||
//////////////////////
|
||||
/obj/item/weapon/grenade/clusterbuster/segment
|
||||
desc = "A smaller segment of a clusterbang. Better run."
|
||||
name = "clusterbang segment"
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "clusterbang_segment"
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/segment/New(var/loc, var/payload_type = /obj/item/weapon/grenade/flashbang/cluster)
|
||||
..()
|
||||
icon_state = "clusterbang_segment_active"
|
||||
payload = payload_type
|
||||
active = 1
|
||||
walk_away(src,loc,rand(1,4))
|
||||
spawn(rand(15,60))
|
||||
prime()
|
||||
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/segment/prime()
|
||||
|
||||
new /obj/effect/payload_spawner(loc, payload, rand(4,8))
|
||||
|
||||
playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
|
||||
|
||||
qdel(src)
|
||||
|
||||
//////////////////////////////////
|
||||
//The payload spawner effect
|
||||
/////////////////////////////////
|
||||
/obj/effect/payload_spawner/New(var/turf/newloc,var/type, var/numspawned as num)
|
||||
|
||||
for(var/loop = numspawned ,loop > 0, loop--)
|
||||
var/obj/item/weapon/grenade/P = new type(loc)
|
||||
P.active = 1
|
||||
walk_away(P,loc,rand(1,4))
|
||||
|
||||
spawn(rand(15,60))
|
||||
if(P && !P.gc_destroyed)
|
||||
P.prime()
|
||||
qdel(src)
|
||||
|
||||
|
||||
//////////////////////////////////
|
||||
//Custom payload clusterbusters
|
||||
/////////////////////////////////
|
||||
/obj/item/weapon/grenade/flashbang/cluster
|
||||
icon_state = "flashbang_active"
|
||||
banglet = 1
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/emp
|
||||
name = "Electromagnetic Storm"
|
||||
payload = /obj/item/weapon/grenade/empgrenade
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/smoke
|
||||
name = "Ninja Vanish"
|
||||
payload = /obj/item/weapon/grenade/smokebomb
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/metalfoam
|
||||
name = "Instant Concrete"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/metalfoam
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/inferno
|
||||
name = "Inferno"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/incendiary
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/antiweed
|
||||
name = "RoundDown"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/antiweed
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/cleaner
|
||||
name = "Mr. Proper"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/cleaner
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/teargas
|
||||
name = "Oignon Grenade"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/teargas
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/facid
|
||||
name = "Aciding Rain"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/facid
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/syndieminibomb
|
||||
name = "SyndiWrath"
|
||||
payload = /obj/item/weapon/grenade/syndieminibomb
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/spawner_manhacks
|
||||
name = "iViscerator"
|
||||
payload = /obj/item/weapon/grenade/spawnergrenade/manhacks
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/spawner_spesscarp
|
||||
name = "Invasion of the Space Carps"
|
||||
payload = /obj/item/weapon/grenade/spawnergrenade/spesscarp
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/proc/bang(var/turf/T , var/mob/living/M)
|
||||
M.show_message("<span class='warning'>BANG</span>", 2)
|
||||
playsound(src.loc, 'sound/effects/bang.ogg', 25, 1)
|
||||
playsound(loc, 'sound/effects/bang.ogg', 25, 1)
|
||||
|
||||
//Checking for protections
|
||||
var/eye_safety = 0
|
||||
@@ -46,13 +46,13 @@
|
||||
if (M.eye_stat >= 20 && takes_eye_damage)
|
||||
M << "<span class='warning'>Your eyes start to burn badly!</span>"
|
||||
M.disabilities |= NEARSIGHT
|
||||
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
|
||||
if(!banglet)
|
||||
if (prob(M.eye_stat - 20 + 1))
|
||||
M << "<span class='warning'>You can't see anything!</span>"
|
||||
M.disabilities |= BLIND
|
||||
|
||||
//Bang
|
||||
if((src.loc == M) || src.loc == M.loc)//Holding on person or being exactly where lies is significantly more dangerous and voids protection
|
||||
if((loc == M) || loc == M.loc)//Holding on person or being exactly where lies is significantly more dangerous and voids protection
|
||||
M.Stun(10)
|
||||
M.Weaken(10)
|
||||
if(!ear_safety)
|
||||
@@ -61,81 +61,10 @@
|
||||
M.setEarDamage(M.ear_damage + rand(0, 5), max(M.ear_deaf,15))
|
||||
if (M.ear_damage >= 15)
|
||||
M << "<span class='warning'>Your ears start to ring badly!</span>"
|
||||
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
|
||||
if(!banglet)
|
||||
if(prob(M.ear_damage - 10 + 5))
|
||||
M << "<span class='warning'>You can't hear anything!</span>"
|
||||
M.disabilities |= DEAF
|
||||
else
|
||||
if (M.ear_damage >= 5)
|
||||
M << "<span class='warning'>Your ears start to ring!</span>"
|
||||
|
||||
////////////////////
|
||||
//Clusterbang
|
||||
////////////////////
|
||||
/obj/item/weapon/grenade/flashbang/clusterbang
|
||||
desc = "Use of this weapon may constiute a war crime in your area, consult your local captain."
|
||||
name = "clusterbang"
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "clusterbang"
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/clusterbang/prime()
|
||||
update_mob()
|
||||
var/numspawned = rand(4,8)
|
||||
var/again = 0
|
||||
|
||||
for(var/more = numspawned,more > 0,more--)
|
||||
if(prob(35))
|
||||
again++
|
||||
numspawned--
|
||||
|
||||
for(var/loop = numspawned, loop > 0, loop--)
|
||||
new /obj/item/weapon/grenade/flashbang/cluster(loc)//Launches flashbangs
|
||||
|
||||
for(var/loop = again ,loop > 0, loop--)
|
||||
new /obj/item/weapon/grenade/flashbang/clusterbang/segment(loc)//Creates a 'segment' that launches a few more flashbangs
|
||||
|
||||
playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
|
||||
|
||||
qdel(src)
|
||||
|
||||
|
||||
//////////////////////
|
||||
//Clusterbang segment
|
||||
//////////////////////
|
||||
/obj/item/weapon/grenade/flashbang/clusterbang/segment
|
||||
desc = "A smaller segment of a clusterbang. Better run."
|
||||
name = "clusterbang segment"
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "clusterbang_segment"
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/clusterbang/segment/New()
|
||||
..()
|
||||
icon_state = "clusterbang_segment_active"
|
||||
active = 1
|
||||
walk_away(src,loc,rand(1,4))
|
||||
spawn(rand(15,60))
|
||||
prime()
|
||||
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/clusterbang/segment/prime()
|
||||
update_mob()
|
||||
var/numspawned = rand(4,8)
|
||||
|
||||
for(var/loop = numspawned ,loop > 0, loop--)
|
||||
new /obj/item/weapon/grenade/flashbang/cluster(loc)
|
||||
|
||||
playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
|
||||
|
||||
qdel(src)
|
||||
|
||||
////////////////////////////////
|
||||
//Clusterbang spwaned flashbang
|
||||
////////////////////////////////
|
||||
/obj/item/weapon/grenade/flashbang/cluster/New()
|
||||
..()
|
||||
icon_state = "flashbang_active"
|
||||
active = 1
|
||||
banglet = 1
|
||||
walk_away(src,loc,rand(1,3))
|
||||
spawn(rand(15,60))
|
||||
prime()
|
||||
|
||||
@@ -153,7 +153,8 @@
|
||||
var/armed = 0
|
||||
|
||||
/obj/item/weapon/restraints/legcuffs/beartrap/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is putting the [src.name] on \his head! It looks like \he's trying to commit suicide.</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is sticking \his head in the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/weapon/restraints/legcuffs/beartrap/attack_self(mob/user as mob)
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
var/mopping = 0
|
||||
var/mopcount = 0
|
||||
var/mopcap = 5
|
||||
var/mopspeed = 40
|
||||
var/mopspeed = 30
|
||||
|
||||
/obj/item/weapon/mop/New()
|
||||
create_reagents(mopcap)
|
||||
@@ -65,14 +65,3 @@ obj/item/weapon/mop/proc/clean(turf/simulated/A)
|
||||
|
||||
/obj/item/weapon/mop/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J)
|
||||
return
|
||||
|
||||
/obj/item/weapon/mop/advanced
|
||||
desc = "The most advanced tool in a custodian's arsenal. Just think of all the viscera you will clean up with this!"
|
||||
name = "advanced mop"
|
||||
mopcap = 10
|
||||
icon_state = "advmop"
|
||||
item_state = "mop"
|
||||
force = 6
|
||||
throwforce = 8
|
||||
throw_range = 4
|
||||
mopspeed = 20
|
||||
@@ -16,6 +16,7 @@
|
||||
g_amt = 50
|
||||
var/rigged = 0 // true if rigged to explode
|
||||
var/minor_fault = 0 //If not 100% reliable, it will build up faults.
|
||||
var/chargerate = 100 //how much power is given every tick in a recharger
|
||||
|
||||
/obj/item/weapon/stock_parts/cell/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is licking the electrodes of the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
@@ -44,6 +45,20 @@
|
||||
..()
|
||||
charge = 0
|
||||
|
||||
/obj/item/weapon/stock_parts/cell/pulse //40 pulse shots
|
||||
name = "pulse rifle power cell"
|
||||
maxcharge = 8000
|
||||
rating = 3
|
||||
chargerate = 1500
|
||||
|
||||
/obj/item/weapon/stock_parts/cell/pulse/carbine //25 pulse shots
|
||||
name = "pulse carbine power cell"
|
||||
maxcharge = 5000
|
||||
|
||||
/obj/item/weapon/stock_parts/cell/pulse/pistol //10 pulse shots
|
||||
name = "pulse pistol power cell"
|
||||
maxcharge = 2000
|
||||
|
||||
/obj/item/weapon/stock_parts/cell/high
|
||||
name = "high-capacity power cell"
|
||||
origin_tech = "powerstorage=2"
|
||||
@@ -51,6 +66,7 @@
|
||||
maxcharge = 10000
|
||||
g_amt = 60
|
||||
rating = 3
|
||||
chargerate = 1500
|
||||
|
||||
/obj/item/weapon/stock_parts/cell/high/empty/New()
|
||||
..()
|
||||
@@ -63,6 +79,7 @@
|
||||
maxcharge = 20000
|
||||
g_amt = 70
|
||||
rating = 4
|
||||
chargerate = 2000
|
||||
|
||||
/obj/item/weapon/stock_parts/cell/super/empty/New()
|
||||
..()
|
||||
@@ -75,6 +92,7 @@
|
||||
maxcharge = 30000
|
||||
g_amt = 80
|
||||
rating = 5
|
||||
chargerate = 3000
|
||||
|
||||
/obj/item/weapon/stock_parts/cell/hyper/empty/New()
|
||||
..()
|
||||
@@ -87,6 +105,7 @@
|
||||
maxcharge = 30000
|
||||
g_amt = 80
|
||||
rating = 6
|
||||
chargerate = 30000
|
||||
use()
|
||||
return 1
|
||||
|
||||
@@ -103,16 +122,15 @@
|
||||
minor_fault = 1
|
||||
rating = 1
|
||||
|
||||
/obj/item/weapon/stock_parts/cell/slime
|
||||
/obj/item/weapon/stock_parts/cell/high/slime
|
||||
name = "charged slime core"
|
||||
desc = "A yellow slime core infused with plasma, it crackles with power."
|
||||
origin_tech = "powerstorage=2;biotech=4"
|
||||
icon = 'icons/mob/slimes.dmi' //'icons/obj/harvest.dmi'
|
||||
icon_state = "yellow slime extract" //"potato_battery"
|
||||
maxcharge = 10000
|
||||
icon = 'icons/mob/slimes.dmi'
|
||||
icon_state = "yellow slime extract"
|
||||
m_amt = 0
|
||||
g_amt = 0
|
||||
rating = 3
|
||||
|
||||
|
||||
/obj/item/weapon/stock_parts/cell/emproof
|
||||
name = "\improper EMP-proof cell"
|
||||
|
||||
@@ -223,6 +223,7 @@
|
||||
item_state = "duffle"
|
||||
storage_slots = 9
|
||||
slowdown = 1
|
||||
max_combined_w_class = 27
|
||||
|
||||
/obj/item/weapon/storage/backpack/dufflebag/syndiemed
|
||||
name = "medical dufflebag"
|
||||
|
||||
@@ -39,6 +39,10 @@
|
||||
can_hold = list() // any
|
||||
cant_hold = list(/obj/item/weapon/disk/nuclear)
|
||||
|
||||
/obj/item/weapon/storage/bag/trash/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] puts the [src.name] over their head and starts chomping at the insides! Disgusting!</span>")
|
||||
playsound(loc, 'sound/items/eatfood.ogg', 50, 1, -1)
|
||||
return (TOXLOSS)
|
||||
|
||||
/obj/item/weapon/storage/bag/trash/update_icon()
|
||||
if(contents.len == 0)
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
new /obj/item/weapon/weldingtool(src)
|
||||
new /obj/item/weapon/crowbar(src)
|
||||
new /obj/item/weapon/wirecutters(src)
|
||||
new /obj/item/device/multitool(src)
|
||||
new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange"))
|
||||
|
||||
|
||||
@@ -68,7 +69,8 @@
|
||||
/obj/item/device/flashlight/pen,
|
||||
/obj/item/weapon/extinguisher/mini,
|
||||
/obj/item/weapon/reagent_containers/hypospray,
|
||||
/obj/item/device/rad_laser
|
||||
/obj/item/device/rad_laser,
|
||||
/obj/item/device/sensor_device
|
||||
)
|
||||
|
||||
|
||||
@@ -189,8 +191,9 @@
|
||||
name = "shoulder holster"
|
||||
desc = "A holster to conceal a carried handgun. WARNING: Badasses only."
|
||||
icon_state = "holster"
|
||||
item_state = "bandolier"
|
||||
item_state = "holster"
|
||||
storage_slots = 1
|
||||
max_w_class = 4
|
||||
can_hold = list(
|
||||
/obj/item/weapon/gun/projectile/automatic/pistol,
|
||||
/obj/item/weapon/gun/projectile/revolver/detective
|
||||
|
||||
@@ -18,6 +18,10 @@
|
||||
var/mob/affecting = null
|
||||
var/deity_name = "Christ"
|
||||
|
||||
/obj/item/weapon/storage/book/bible/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is offering \himself to [src.deity_name]! It looks like \he's trying to commit suicide.</span>")
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/weapon/storage/book/bible/booze
|
||||
name = "bible"
|
||||
desc = "To be applied to the head repeatedly."
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
..()
|
||||
contents = list()
|
||||
new /obj/item/clothing/mask/breath(src)
|
||||
new /obj/item/weapon/tank/emergency_oxygen(src)
|
||||
new /obj/item/weapon/tank/internals/emergency_oxygen(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen(src)
|
||||
return
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
..()
|
||||
contents = list()
|
||||
new /obj/item/clothing/mask/breath(src)
|
||||
new /obj/item/weapon/tank/emergency_oxygen/engi(src)
|
||||
new /obj/item/weapon/tank/internals/emergency_oxygen/engi(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen(src)
|
||||
return
|
||||
|
||||
@@ -601,4 +601,19 @@
|
||||
new /obj/item/clothing/tie/armband/deputy(src)
|
||||
new /obj/item/clothing/tie/armband/deputy(src)
|
||||
new /obj/item/clothing/tie/armband/deputy(src)
|
||||
new /obj/item/clothing/tie/armband/deputy(src)
|
||||
new /obj/item/clothing/tie/armband/deputy(src)
|
||||
|
||||
/obj/item/weapon/storage/box/metalfoam
|
||||
name = "box of metal foam grenades"
|
||||
desc = "To be used to rapidly seal hull breaches"
|
||||
icon_state = "flashbang"
|
||||
|
||||
/obj/item/weapon/storage/box/metalfoam/New()
|
||||
..()
|
||||
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
|
||||
@@ -16,117 +16,112 @@
|
||||
throw_range = 7
|
||||
var/empty = 0
|
||||
|
||||
/obj/item/weapon/storage/firstaid/regular
|
||||
icon_state = "firstaid"
|
||||
desc = "A first aid kit with the ability to heal common types of injuries."
|
||||
|
||||
/obj/item/weapon/storage/firstaid/regular/New()
|
||||
..()
|
||||
if(empty) return
|
||||
new /obj/item/stack/medical/gauze(src)
|
||||
new /obj/item/stack/medical/bruise_pack(src)
|
||||
new /obj/item/stack/medical/bruise_pack(src)
|
||||
new /obj/item/stack/medical/ointment(src)
|
||||
new /obj/item/stack/medical/ointment(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen(src)
|
||||
new /obj/item/device/healthanalyzer(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/firstaid/fire
|
||||
name = "fire first-aid kit"
|
||||
desc = "It's an emergency medical kit for when the toxins lab <i>-spontaneously-</i> burns down."
|
||||
name = "burn treatment kit"
|
||||
desc = "A specialized medical kit for when the toxins lab <i>-spontaneously-</i> burns down."
|
||||
icon_state = "ointment"
|
||||
item_state = "firstaid-ointment"
|
||||
|
||||
/obj/item/weapon/storage/firstaid/fire/New()
|
||||
..()
|
||||
if (empty) return
|
||||
|
||||
if(empty) return
|
||||
icon_state = pick("ointment","firefirstaid")
|
||||
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/device/healthanalyzer(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/salicyclic(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/salicyclic(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/salicyclic(src)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/storage/firstaid/regular
|
||||
icon_state = "firstaid"
|
||||
|
||||
/obj/item/weapon/storage/firstaid/regular/New()
|
||||
..()
|
||||
if (empty) return
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/salicyclic(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/device/healthanalyzer(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen( src )
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/firstaid/toxin
|
||||
name = "toxin first aid"
|
||||
desc = "Used to treat when you have a high amoutn of toxins in your body."
|
||||
name = "toxin treatment kit"
|
||||
desc = "Used to treat toxic blood content and radiation poisoning."
|
||||
icon_state = "antitoxin"
|
||||
item_state = "firstaid-toxin"
|
||||
|
||||
/obj/item/weapon/storage/firstaid/toxin/New()
|
||||
..()
|
||||
if (empty) return
|
||||
|
||||
if(empty) return
|
||||
icon_state = pick("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3")
|
||||
|
||||
new /obj/item/weapon/reagent_containers/syringe/charcoal( src )
|
||||
new /obj/item/weapon/reagent_containers/syringe/charcoal( src )
|
||||
new /obj/item/weapon/reagent_containers/syringe/charcoal( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
|
||||
new /obj/item/device/healthanalyzer( src )
|
||||
new /obj/item/weapon/reagent_containers/syringe/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/device/healthanalyzer(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/firstaid/o2
|
||||
name = "oxygen deprivation first aid"
|
||||
name = "oxygen deprivation treatment kit"
|
||||
desc = "A box full of oxygen goodies."
|
||||
icon_state = "o2"
|
||||
item_state = "firstaid-o2"
|
||||
|
||||
/obj/item/weapon/storage/firstaid/o2/New()
|
||||
..()
|
||||
if (empty) return
|
||||
if(empty) return
|
||||
new /obj/item/weapon/reagent_containers/pill/salbutamol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/salbutamol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/salbutamol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/salbutamol(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen(src)
|
||||
new /obj/item/device/healthanalyzer( src )
|
||||
new /obj/item/device/healthanalyzer(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/firstaid/brute
|
||||
name = "brute first aid"
|
||||
name = "brute trauma treatment kit"
|
||||
desc = "A first aid kit for when you get toolboxed."
|
||||
icon_state = "brute"
|
||||
item_state = "firstaid-brute"
|
||||
|
||||
/obj/item/weapon/storage/firstaid/brute/New()
|
||||
..()
|
||||
if (empty) return
|
||||
if(empty) return
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
|
||||
new /obj/item/device/healthanalyzer( src )
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen(src)
|
||||
new /obj/item/stack/medical/bruise_pack(src)
|
||||
new /obj/item/stack/medical/gauze(src)
|
||||
new /obj/item/stack/medical/gauze(src)
|
||||
new /obj/item/device/healthanalyzer(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/firstaid/tactical
|
||||
name = "first-aid kit"
|
||||
icon_state = "bezerk"
|
||||
name = "combat medical kit"
|
||||
desc = "I hope you've got insurance."
|
||||
icon_state = "bezerk"
|
||||
max_w_class = 3
|
||||
|
||||
/obj/item/weapon/storage/firstaid/tactical/New()
|
||||
..()
|
||||
if (empty) return
|
||||
new /obj/item/clothing/tie/stethoscope( src )
|
||||
new /obj/item/weapon/surgicaldrill ( src )
|
||||
new /obj/item/weapon/reagent_containers/hypospray/combat( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/styptic( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
|
||||
new /obj/item/weapon/reagent_containers/syringe/lethal/choral( src )
|
||||
new /obj/item/clothing/glasses/hud/health/night( src )
|
||||
if(empty) return
|
||||
new /obj/item/stack/medical/gauze(src)
|
||||
new /obj/item/stack/medical/gauze(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/combat(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe/lethal/choral(src)
|
||||
new /obj/item/clothing/glasses/hud/health/night(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -146,11 +141,11 @@
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/MouseDrop(obj/over_object as obj) //Quick pillbottle fix. -Agouri
|
||||
|
||||
if (ishuman(usr) || ismonkey(usr)) //Can monkeys even place items in the pocket slots? Leaving this in just in case~
|
||||
if(ishuman(usr) || ismonkey(usr)) //Can monkeys even place items in the pocket slots? Leaving this in just in case~
|
||||
var/mob/M = usr
|
||||
if (!istype(over_object, /obj/screen) || !Adjacent(M))
|
||||
if(!istype(over_object, /obj/screen) || !Adjacent(M))
|
||||
return ..()
|
||||
if ((!( M.restrained() ) && !( M.stat ) /*&& M.pocket == src*/))
|
||||
if((!( M.restrained() ) && !( M.stat ) /*&& M.pocket == src*/))
|
||||
switch(over_object.name)
|
||||
if("r_hand")
|
||||
M.unEquip(src)
|
||||
@@ -161,7 +156,7 @@
|
||||
src.add_fingerprint(usr)
|
||||
return
|
||||
if(over_object == usr && in_range(src, usr) || usr.contents.Find(src))
|
||||
if (usr.s_active)
|
||||
if(usr.s_active)
|
||||
usr.s_active.close(usr)
|
||||
src.show_to(usr)
|
||||
return
|
||||
@@ -173,13 +168,13 @@
|
||||
|
||||
/obj/item/weapon/storage/box/silver_sulf/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/charcoal
|
||||
@@ -188,13 +183,13 @@
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/charcoal/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/epinephrine
|
||||
name = "bottle of epinephrine pills"
|
||||
@@ -202,13 +197,13 @@
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/epinephrine/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine(src)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/mutadone
|
||||
name = "bottle of mutadone pills"
|
||||
@@ -244,11 +239,11 @@
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/stimulant/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/stimulant( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/stimulant( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/stimulant( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/stimulant( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/stimulant( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/stimulant(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/stimulant(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/stimulant(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/stimulant(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/stimulant(src)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/dice
|
||||
name = "bag of dice"
|
||||
@@ -258,11 +253,11 @@
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/dice/New()
|
||||
..()
|
||||
new /obj/item/weapon/dice/d4( src )
|
||||
new /obj/item/weapon/dice( src )
|
||||
new /obj/item/weapon/dice/d8( src )
|
||||
new /obj/item/weapon/dice/d10( src )
|
||||
new /obj/item/weapon/dice/d00( src )
|
||||
new /obj/item/weapon/dice/d12( src )
|
||||
new /obj/item/weapon/dice/d20( src )
|
||||
new /obj/item/weapon/dice/d4(src)
|
||||
new /obj/item/weapon/dice(src)
|
||||
new /obj/item/weapon/dice/d8(src)
|
||||
new /obj/item/weapon/dice/d10(src)
|
||||
new /obj/item/weapon/dice/d00(src)
|
||||
new /obj/item/weapon/dice/d12(src)
|
||||
new /obj/item/weapon/dice/d20(src)
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
|
||||
/obj/item/weapon/storage/lockbox/clusterbang/New()
|
||||
..()
|
||||
new /obj/item/weapon/grenade/flashbang/clusterbang(src)
|
||||
new /obj/item/weapon/grenade/clusterbuster(src)
|
||||
|
||||
/obj/item/weapon/storage/lockbox/medal
|
||||
name = "medal box"
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/dnainjector/telemut/darkbundle(src)
|
||||
new /obj/item/clothing/suit/toggle/chaplain_hoodie(src)
|
||||
new /obj/item/clothing/suit/hooded/chaplain_hoodie(src)
|
||||
new /obj/item/weapon/card/id/syndicate(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -10,24 +10,24 @@
|
||||
/*
|
||||
* Oxygen
|
||||
*/
|
||||
/obj/item/weapon/tank/oxygen
|
||||
/obj/item/weapon/tank/internals/oxygen
|
||||
name = "oxygen tank"
|
||||
desc = "A tank of oxygen."
|
||||
icon_state = "oxygen"
|
||||
distribute_pressure = ONE_ATMOSPHERE*O2STANDARD
|
||||
|
||||
|
||||
/obj/item/weapon/tank/oxygen/New()
|
||||
/obj/item/weapon/tank/internals/oxygen/New()
|
||||
..()
|
||||
src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/tank/oxygen/yellow
|
||||
/obj/item/weapon/tank/internals/oxygen/yellow
|
||||
desc = "A tank of oxygen, this one is yellow."
|
||||
icon_state = "oxygen_f"
|
||||
|
||||
/obj/item/weapon/tank/oxygen/red
|
||||
/obj/item/weapon/tank/internals/oxygen/red
|
||||
desc = "A tank of oxygen, this one is red."
|
||||
icon_state = "oxygen_fr"
|
||||
|
||||
@@ -35,13 +35,13 @@
|
||||
/*
|
||||
* Anesthetic
|
||||
*/
|
||||
/obj/item/weapon/tank/anesthetic
|
||||
/obj/item/weapon/tank/internals/anesthetic
|
||||
name = "anesthetic tank"
|
||||
desc = "A tank with an N2O/O2 gas mix."
|
||||
icon_state = "anesthetic"
|
||||
item_state = "an_tank"
|
||||
|
||||
/obj/item/weapon/tank/anesthetic/New()
|
||||
/obj/item/weapon/tank/internals/anesthetic/New()
|
||||
..()
|
||||
|
||||
src.air_contents.oxygen = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD
|
||||
@@ -55,13 +55,13 @@
|
||||
/*
|
||||
* Air
|
||||
*/
|
||||
/obj/item/weapon/tank/air
|
||||
/obj/item/weapon/tank/internals/air
|
||||
name = "air tank"
|
||||
desc = "Mixed anyone?"
|
||||
icon_state = "oxygen"
|
||||
|
||||
|
||||
/obj/item/weapon/tank/air/New()
|
||||
/obj/item/weapon/tank/internals/air/New()
|
||||
..()
|
||||
|
||||
src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD
|
||||
@@ -72,7 +72,7 @@
|
||||
/*
|
||||
* Plasma
|
||||
*/
|
||||
/obj/item/weapon/tank/plasma
|
||||
/obj/item/weapon/tank/internals/plasma
|
||||
name = "plasma tank"
|
||||
desc = "Contains dangerous plasma. Do not inhale. Warning: extremely flammable."
|
||||
icon_state = "plasma"
|
||||
@@ -80,13 +80,13 @@
|
||||
slot_flags = null //they have no straps!
|
||||
|
||||
|
||||
/obj/item/weapon/tank/plasma/New()
|
||||
/obj/item/weapon/tank/internals/plasma/New()
|
||||
..()
|
||||
|
||||
src.air_contents.toxins = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
return
|
||||
|
||||
/obj/item/weapon/tank/plasma/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/item/weapon/tank/internals/plasma/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
..()
|
||||
|
||||
if (istype(W, /obj/item/weapon/flamethrower))
|
||||
@@ -98,7 +98,7 @@
|
||||
src.loc = F
|
||||
return
|
||||
|
||||
/obj/item/weapon/tank/plasma/full/New()
|
||||
/obj/item/weapon/tank/internals/plasma/full/New()
|
||||
..()
|
||||
src.air_contents.toxins = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
return
|
||||
@@ -106,7 +106,7 @@
|
||||
/*
|
||||
* Emergency Oxygen
|
||||
*/
|
||||
/obj/item/weapon/tank/emergency_oxygen
|
||||
/obj/item/weapon/tank/internals/emergency_oxygen
|
||||
name = "emergency oxygen tank"
|
||||
desc = "Used for emergencies. Contains very little oxygen, so try to conserve it until you actually need it."
|
||||
icon_state = "emergency"
|
||||
@@ -118,17 +118,17 @@
|
||||
volume = 3 //Tiny. Real life equivalents only have 21 breaths of oxygen in them. They're EMERGENCY tanks anyway -errorage (dangercon 2011)
|
||||
|
||||
|
||||
/obj/item/weapon/tank/emergency_oxygen/New()
|
||||
/obj/item/weapon/tank/internals/emergency_oxygen/New()
|
||||
..()
|
||||
src.air_contents.oxygen = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
return
|
||||
|
||||
/obj/item/weapon/tank/emergency_oxygen/engi
|
||||
/obj/item/weapon/tank/internals/emergency_oxygen/engi
|
||||
name = "extended-capacity emergency oxygen tank"
|
||||
icon_state = "emergency_engi"
|
||||
volume = 6
|
||||
|
||||
/obj/item/weapon/tank/emergency_oxygen/double
|
||||
/obj/item/weapon/tank/internals/emergency_oxygen/double
|
||||
name = "double emergency oxygen tank"
|
||||
icon_state = "emergency_engi"
|
||||
volume = 10
|
||||
|
||||
@@ -28,6 +28,10 @@
|
||||
origin_tech = "materials=1;engineering=1"
|
||||
attack_verb = list("bashed", "battered", "bludgeoned", "whacked")
|
||||
|
||||
/obj/item/weapon/wrench/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is beating \himself to death with the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1)
|
||||
return (BRUTELOSS)
|
||||
|
||||
/*
|
||||
* Screwdriver
|
||||
@@ -126,6 +130,11 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/wirecutters/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is cutting at \his arteries with the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
playsound(loc, 'sound/items/Wirecutter.ogg', 50, 1, -1)
|
||||
return (BRUTELOSS)
|
||||
|
||||
/*
|
||||
* Welding Tool
|
||||
*/
|
||||
@@ -447,6 +456,11 @@
|
||||
origin_tech = "engineering=1"
|
||||
attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked")
|
||||
|
||||
/obj/item/weapon/crowbar/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is beating \himself to death with the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1)
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/weapon/crowbar/red
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "red_crowbar"
|
||||
|
||||
Reference in New Issue
Block a user