mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 11:05:03 +01:00
Merge conflict fix
This commit is contained in:
@@ -41,7 +41,7 @@
|
||||
|
||||
|
||||
/obj/item/device/aicard/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = inventory_state)
|
||||
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "aicard.tmpl", "[name]", 600, 400, state = state)
|
||||
ui.open()
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
var/scan_data = ""
|
||||
|
||||
if(timeofdeath)
|
||||
scan_data += "<b>Time of death:</b> [worldtime2text(timeofdeath)]<br><br>"
|
||||
scan_data += "<b>Time of death:</b> [station_time_timestamp("hh:mm:ss", timeofdeath)]<br><br>"
|
||||
|
||||
var/n = 1
|
||||
for(var/wdata_idx in wdata)
|
||||
@@ -146,7 +146,7 @@
|
||||
if(damaging_weapon)
|
||||
scan_data += "Severity: [damage_desc]<br>"
|
||||
scan_data += "Hits by weapon: [total_hits]<br>"
|
||||
scan_data += "Approximate time of wound infliction: [worldtime2text(age)]<br>"
|
||||
scan_data += "Approximate time of wound infliction: [station_time(age)]<br>"
|
||||
scan_data += "Affected limbs: [D.organ_names]<br>"
|
||||
scan_data += "Possible weapons:<br>"
|
||||
for(var/weapon_name in weapon_chances)
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
|
||||
|
||||
/obj/item/device/radio/electropack/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "radio_electro.tmpl", "[name]", 400, 500)
|
||||
ui.open()
|
||||
|
||||
@@ -107,7 +107,7 @@ var/global/list/default_medbay_channels = list(
|
||||
return ui_interact(user)
|
||||
|
||||
/obj/item/device/radio/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "radio_basic.tmpl", "[name]", 400, 550)
|
||||
ui.open()
|
||||
@@ -793,7 +793,7 @@ var/global/list/default_medbay_channels = list(
|
||||
. = ..()
|
||||
|
||||
/obj/item/device/radio/borg/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "radio_basic.tmpl", "[name]", 430, 500)
|
||||
ui.open()
|
||||
|
||||
@@ -160,7 +160,7 @@ REAGENT SCANNER
|
||||
user.show_message("\t Damage Specifics: <font color='blue'>[OX]</font> - <font color='green'>[TX]</font> - <font color='#FFA500'>[BU]</font> - <font color='red'>[BR]</font>")
|
||||
user.show_message("<span class='notice'>Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)</span>", 1)
|
||||
if(M.timeofdeath && (M.stat == DEAD || (M.status_flags & FAKEDEATH)))
|
||||
user.show_message("<span class='notice'>Time of Death: [worldtime2text(M.timeofdeath)]</span>")
|
||||
user.show_message("<span class='notice'>Time of Death: [station_time_timestamp("hh:mm:ss", M.timeofdeath)]</span>")
|
||||
if(istype(M, /mob/living/carbon/human) && mode == 1)
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/list/damaged = H.get_damaged_organs(1,1)
|
||||
@@ -432,7 +432,7 @@ REAGENT SCANNER
|
||||
sleep(50)
|
||||
|
||||
var/obj/item/weapon/paper/P = new(get_turf(src))
|
||||
P.name = "Mass Spectrometer Scanner Report: [worldtime2text()]"
|
||||
P.name = "Mass Spectrometer Scanner Report: [station_time_timestamp()]"
|
||||
P.info = "<center><b>Mass Spectrometer</b></center><br><center>Data Analysis:</center><br><hr><br><b>Trace chemicals detected:</b><br>[datatoprint]<br><hr>"
|
||||
|
||||
if(ismob(loc))
|
||||
@@ -502,7 +502,7 @@ REAGENT SCANNER
|
||||
sleep(50)
|
||||
|
||||
var/obj/item/weapon/paper/P = new(get_turf(src))
|
||||
P.name = "Reagent Scanner Report: [worldtime2text()]"
|
||||
P.name = "Reagent Scanner Report: [station_time_timestamp()]"
|
||||
P.info = "<center><b>Reagent Scanner</b></center><br><center>Data Analysis:</center><br><hr><br><b>Chemical agents detected:</b><br> [datatoprint]<br><hr>"
|
||||
|
||||
if(ismob(loc))
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
w_class = I.w_class
|
||||
|
||||
update_icon()
|
||||
nanomanager.update_uis(src) // update all UIs attached to src
|
||||
SSnanoui.update_uis(src) // update all UIs attached to src
|
||||
//TODO: Have this take an assemblyholder
|
||||
else if(isassembly(I))
|
||||
var/obj/item/device/assembly/A = I
|
||||
@@ -67,7 +67,7 @@
|
||||
msg_admin_attack("[key_name_admin(user)]attached [A] to a transfer valve.")
|
||||
log_game("[key_name_admin(user)] attached [A] to a transfer valve.")
|
||||
attacher = user
|
||||
nanomanager.update_uis(src) // update all UIs attached to src
|
||||
SSnanoui.update_uis(src) // update all UIs attached to src
|
||||
|
||||
|
||||
/obj/item/device/transfer_valve/HasProximity(atom/movable/AM)
|
||||
@@ -90,7 +90,7 @@
|
||||
|
||||
/obj/item/device/transfer_valve/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1)
|
||||
// update the ui if it exists, returns null if no ui is passed/found
|
||||
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
// the ui does not exist, so we'll create a new() one
|
||||
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
|
||||
|
||||
@@ -129,7 +129,7 @@ var/list/world_uplinks = list()
|
||||
if(!UI)
|
||||
return
|
||||
UI.buy(src,usr)
|
||||
nanomanager.update_uis(src)
|
||||
SSnanoui.update_uis(src)
|
||||
|
||||
/* var/list/L = UI.spawn_item(get_turf(usr),src)
|
||||
if(ishuman(usr))
|
||||
@@ -190,7 +190,7 @@ var/list/world_uplinks = list()
|
||||
/obj/item/device/uplink/hidden/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = inventory_state)
|
||||
var/title = "Remote Uplink"
|
||||
// update the ui if it exists, returns null if no ui is passed/found
|
||||
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
// the ui does not exist, so we'll create a new() one
|
||||
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
|
||||
@@ -224,7 +224,7 @@ var/list/world_uplinks = list()
|
||||
if(!( istype(usr, /mob/living/carbon/human)))
|
||||
return 1
|
||||
var/mob/user = usr
|
||||
var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main")
|
||||
var/datum/nanoui/ui = SSnanoui.get_open_ui(user, src, "main")
|
||||
if((usr.contents.Find(src.loc) || (in_range(src.loc, usr) && istype(src.loc.loc, /turf))))
|
||||
usr.set_machine(src)
|
||||
if(..(href, href_list))
|
||||
@@ -246,7 +246,7 @@ var/list/world_uplinks = list()
|
||||
show_descriptions = !show_descriptions
|
||||
update_nano_data()
|
||||
|
||||
nanomanager.update_uis(src)
|
||||
SSnanoui.update_uis(src)
|
||||
return 1
|
||||
|
||||
/obj/item/device/uplink/hidden/proc/update_nano_data(var/id)
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
R.notify_ai(2)
|
||||
|
||||
R.uneq_all()
|
||||
R.sight_mode = null
|
||||
R.hands.icon_state = "nomod"
|
||||
R.icon_state = "robot"
|
||||
R.module.remove_subsystems_and_actions(R)
|
||||
|
||||
@@ -271,7 +271,6 @@
|
||||
created_window = /obj/structure/window/plasmabasic
|
||||
full_window = /obj/structure/window/full/plasmabasic
|
||||
|
||||
|
||||
/obj/item/stack/sheet/plasmaglass/attack_self(mob/user as mob)
|
||||
construct_window(user)
|
||||
|
||||
@@ -359,7 +358,7 @@
|
||||
origin_tech = "plasmatech=2;materials=2"
|
||||
created_window = /obj/structure/window/plasmareinforced
|
||||
full_window = /obj/structure/window/full/plasmareinforced
|
||||
|
||||
armor = list("melee" = 20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0)
|
||||
|
||||
/obj/item/stack/sheet/plasmarglass/attack_self(mob/user as mob)
|
||||
construct_window(user)
|
||||
|
||||
@@ -133,9 +133,9 @@ var/global/list/datum/stack_recipe/plasteel_recipes = list(
|
||||
new /datum/stack_recipe("Mass Driver frame", /obj/machinery/mass_driver_frame, 3, time = 50, one_per_turf = 1),
|
||||
null,
|
||||
new /datum/stack_recipe_list("airlock assemblies", list(
|
||||
new /datum/stack_recipe("vault door assembly", /obj/structure/door_assembly/door_assembly_vault, 6, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("high security airlock assembly", /obj/structure/door_assembly/door_assembly_highsecurity, 6, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
), 4),
|
||||
new /datum/stack_recipe("vault door assembly", /obj/structure/door_assembly/door_assembly_vault, 8, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
)),
|
||||
)
|
||||
|
||||
/obj/item/stack/sheet/plasteel
|
||||
|
||||
@@ -151,21 +151,21 @@
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "sword0"
|
||||
item_state = "sword0"
|
||||
var/active = 0.0
|
||||
var/active = FALSE
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
attack_verb = list("attacked", "struck", "hit")
|
||||
|
||||
/obj/item/toy/sword/attack_self(mob/user as mob)
|
||||
active = !(active)
|
||||
/obj/item/toy/sword/attack_self(mob/user)
|
||||
active = !active
|
||||
if(active)
|
||||
to_chat(user, "<span class='notice'>You extend the plastic blade with a quick flick of your wrist.</span>")
|
||||
playsound(user, 'sound/weapons/saberon.ogg', 50, 1)
|
||||
playsound(user, 'sound/weapons/saberon.ogg', 20, 1)
|
||||
icon_state = "swordblue"
|
||||
item_state = "swordblue"
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You push the plastic blade back down into the handle.</span>")
|
||||
playsound(user, 'sound/weapons/saberoff.ogg', 50, 1)
|
||||
playsound(user, 'sound/weapons/saberoff.ogg', 20, 1)
|
||||
icon_state = "sword0"
|
||||
item_state = "sword0"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
|
||||
@@ -80,7 +80,7 @@ RCD
|
||||
playsound(loc, 'sound/machines/click.ogg', 50, 1)
|
||||
to_chat(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."
|
||||
nanomanager.update_uis(src)
|
||||
SSnanoui.update_uis(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ RCD
|
||||
ui_interact(user)
|
||||
|
||||
/obj/item/weapon/rcd/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = inventory_state)
|
||||
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "rcd.tmpl", "[name]", 450, 400, state = state)
|
||||
ui.open()
|
||||
@@ -187,16 +187,16 @@ RCD
|
||||
if(!proximity) return
|
||||
if(istype(A,/area/shuttle)||istype(A,/turf/space/transit))
|
||||
return 0
|
||||
if(!(istype(A, /turf) || istype(A, /obj/machinery/door/airlock) || istype(A, /obj/structure/grille) || istype(A, /obj/structure/window)))
|
||||
if(!(istype(A, /turf) || istype(A, /obj/machinery/door/airlock) || istype(A, /obj/structure/grille) || istype(A, /obj/structure/window) || istype(A, /obj/structure/lattice)))
|
||||
return 0
|
||||
|
||||
switch(mode)
|
||||
if(1)
|
||||
if(istype(A, /turf/space))
|
||||
if(istype(A, /turf/space) || istype(A, /obj/structure/lattice))
|
||||
if(useResource(1, user))
|
||||
to_chat(user, "Building Floor...")
|
||||
activate()
|
||||
var/turf/AT = A
|
||||
var/turf/AT = get_turf(A)
|
||||
AT.ChangeTurf(/turf/simulated/floor/plating)
|
||||
return 1
|
||||
return 0
|
||||
@@ -351,14 +351,14 @@ RCD
|
||||
to_chat(user, "ERROR: RCD in MODE: [mode] attempted use by [user]. Send this text #coderbus or an admin.")
|
||||
return 0
|
||||
|
||||
nanomanager.update_uis(src)
|
||||
SSnanoui.update_uis(src)
|
||||
|
||||
/obj/item/weapon/rcd/proc/useResource(var/amount, var/mob/user)
|
||||
if(matter < amount)
|
||||
return 0
|
||||
matter -= amount
|
||||
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
|
||||
nanomanager.update_uis(src)
|
||||
SSnanoui.update_uis(src)
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/rcd/proc/checkResource(var/amount, var/mob/user)
|
||||
|
||||
@@ -123,9 +123,9 @@
|
||||
if(guest_pass)
|
||||
to_chat(user, "<span class='notice'>There is a guest pass attached to this ID card</span>")
|
||||
if(world.time < guest_pass.expiration_time)
|
||||
to_chat(user, "<span class='notice'>It expires at [worldtime2text(guest_pass.expiration_time)].</span>")
|
||||
to_chat(user, "<span class='notice'>It expires at [station_time_timestamp("hh:mm:ss", guest_pass.expiration_time)].</span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>It expired at [worldtime2text(guest_pass.expiration_time)].</span>")
|
||||
to_chat(user, "<span class='warning'>It expired at [station_time_timestamp("hh:mm:ss", guest_pass.expiration_time)].</span>")
|
||||
to_chat(user, "<span class='notice'>It grants access to following areas:</span>")
|
||||
for(var/A in guest_pass.temp_access)
|
||||
to_chat(user, "<span class='notice'>[get_access_desc(A)].</span>")
|
||||
|
||||
@@ -22,8 +22,8 @@ LIGHTERS ARE IN LIGHTERS.DM
|
||||
slot_flags = SLOT_EARS|SLOT_MASK
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
body_parts_covered = null
|
||||
attack_verb = list("burnt", "singed")
|
||||
var/lit = 0
|
||||
attack_verb = null
|
||||
var/lit = FALSE
|
||||
var/icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi
|
||||
var/icon_off = "cigoff"
|
||||
var/type_butt = /obj/item/weapon/cigbutt
|
||||
@@ -128,7 +128,11 @@ LIGHTERS ARE IN LIGHTERS.DM
|
||||
/obj/item/clothing/mask/cigarette/proc/light(flavor_text = null)
|
||||
if(!src.lit)
|
||||
src.lit = 1
|
||||
name = "lit [name]"
|
||||
attack_verb = list("burnt", "singed")
|
||||
hitsound = 'sound/items/welder.ogg'
|
||||
damtype = "fire"
|
||||
force = 4
|
||||
if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire
|
||||
var/datum/effect_system/reagents_explosion/e = new()
|
||||
e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0)
|
||||
|
||||
@@ -193,7 +193,7 @@
|
||||
//Burn it based on transfered gas
|
||||
target.hotspot_expose((ptank.air_contents.temperature*2) + 380,500) // -- More of my "how do I shot fire?" dickery. -- TLE
|
||||
//location.hotspot_expose(1000,500,1)
|
||||
air_master.add_to_active(target, 0)
|
||||
SSair.add_to_active(target, 0)
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -111,23 +111,23 @@
|
||||
payload_name = "lubricant"
|
||||
stage = 2
|
||||
|
||||
New()
|
||||
..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
|
||||
B1.reagents.add_reagent("lube",50)
|
||||
beakers += B1
|
||||
/obj/item/weapon/grenade/chem_grenade/lube/remote
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/signaler)
|
||||
/obj/item/weapon/grenade/chem_grenade/lube/prox
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/prox_sensor)
|
||||
/obj/item/weapon/grenade/chem_grenade/lube/tripwire
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/infra)
|
||||
/obj/item/weapon/grenade/chem_grenade/lube/New()
|
||||
..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
|
||||
B1.reagents.add_reagent("lube",50)
|
||||
beakers += B1
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/lube/remote/New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/signaler)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/lube/prox/New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/prox_sensor)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/lube/tripwire/New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/infra)
|
||||
|
||||
|
||||
// Basic explosion grenade
|
||||
@@ -135,32 +135,68 @@
|
||||
payload_name = "conventional"
|
||||
stage = 2
|
||||
|
||||
New()
|
||||
..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
|
||||
B1.reagents.add_reagent("glycerol",30) // todo: someone says NG is overpowered, test.
|
||||
B1.reagents.add_reagent("sacid",15)
|
||||
B2.reagents.add_reagent("sacid",15)
|
||||
B2.reagents.add_reagent("facid",30)
|
||||
beakers += B1
|
||||
beakers += B2
|
||||
/obj/item/weapon/grenade/chem_grenade/explosion/New()
|
||||
..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
|
||||
B1.reagents.add_reagent("glycerol",30) // todo: someone says NG is overpowered, test.
|
||||
B1.reagents.add_reagent("sacid",15)
|
||||
B2.reagents.add_reagent("sacid",15)
|
||||
B2.reagents.add_reagent("facid",30)
|
||||
beakers += B1
|
||||
beakers += B2
|
||||
|
||||
// Assembly Variants
|
||||
/obj/item/weapon/grenade/chem_grenade/explosion/remote
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/signaler)
|
||||
/obj/item/weapon/grenade/chem_grenade/explosion/remote/New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/signaler)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/explosion/prox/New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/prox_sensor)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/explosion/mine/New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/mousetrap)
|
||||
|
||||
|
||||
// Water + Potassium = Boom
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/waterpotassium
|
||||
payload_name = "chem explosive"
|
||||
stage = 2
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/waterpotassium/New()
|
||||
..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/large/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/large/B2 = new(src)
|
||||
B1.reagents.add_reagent("water",100)
|
||||
B2.reagents.add_reagent("potassium",100)
|
||||
beakers += B1
|
||||
beakers += B2
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/waterpotassium/remote/New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/signaler)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/waterpotassium/prox/New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/prox_sensor)
|
||||
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/waterpotassium/tripwire/New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/infra)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/waterpotassium/tripwire_armed/New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/infra/armed)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/waterpotassium/tripwire_armed_stealth/New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/infra/armed/stealth)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/explosion/prox
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/prox_sensor)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/explosion/mine
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/mousetrap)
|
||||
|
||||
// Basic EMP grenade
|
||||
/obj/item/weapon/grenade/chem_grenade/emp
|
||||
|
||||
@@ -50,3 +50,4 @@
|
||||
icon = 'icons/obj/janitor.dmi'
|
||||
icon_state = "holosign"
|
||||
anchored = 1
|
||||
armor = list(melee = 0, bullet = 50, laser = 50, energy = 50, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
throwforce = 4
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
attack_verb = list("burnt", "singed")
|
||||
attack_verb = null
|
||||
var/lit = 0
|
||||
|
||||
/obj/item/weapon/lighter/zippo
|
||||
@@ -38,6 +38,10 @@
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
icon_state = icon_on
|
||||
item_state = icon_on
|
||||
force = 5
|
||||
damtype = "fire"
|
||||
hitsound = 'sound/items/welder.ogg'
|
||||
attack_verb = list("burnt", "singed")
|
||||
if(istype(src, /obj/item/weapon/lighter/zippo) )
|
||||
user.visible_message("<span class='rose'>Without even breaking stride, [user] flips open and lights [src] in one smooth movement.</span>")
|
||||
playsound(src.loc, 'sound/items/ZippoLight.ogg', 25, 1)
|
||||
@@ -62,6 +66,9 @@
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
icon_state = icon_off
|
||||
item_state = icon_off
|
||||
hitsound = "swing_hit"
|
||||
force = 0
|
||||
attack_verb = null //human_defense.dm takes care of it
|
||||
if(istype(src, /obj/item/weapon/lighter/zippo) )
|
||||
user.visible_message("<span class='rose'>You hear a quiet click, as [user] shuts off [src] without even looking at what they're doing. Wow.")
|
||||
playsound(src.loc, 'sound/items/ZippoClose.ogg', 25, 1)
|
||||
@@ -145,47 +152,74 @@
|
||||
desc = "A simple match stick, used for lighting fine smokables."
|
||||
icon = 'icons/obj/cigarettes.dmi'
|
||||
icon_state = "match_unlit"
|
||||
var/lit = 0
|
||||
var/lit = FALSE
|
||||
var/burnt = FALSE
|
||||
var/smoketime = 5
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
origin_tech = "materials=1"
|
||||
attack_verb = list("burnt", "singed")
|
||||
attack_verb = null
|
||||
|
||||
/obj/item/weapon/match/process()
|
||||
var/turf/location = get_turf(src)
|
||||
smoketime--
|
||||
if(smoketime < 1)
|
||||
icon_state = "match_burnt"
|
||||
lit = -1
|
||||
processing_objects.Remove(src)
|
||||
return
|
||||
matchburnout()
|
||||
if(location)
|
||||
location.hotspot_expose(700, 5)
|
||||
return
|
||||
|
||||
/obj/item/weapon/match/dropped(mob/user as mob)
|
||||
if(lit == 1)
|
||||
lit = -1
|
||||
/obj/item/weapon/match/fire_act()
|
||||
matchignite()
|
||||
|
||||
/obj/item/weapon/match/proc/matchignite()
|
||||
if(!lit && !burnt)
|
||||
lit = TRUE
|
||||
icon_state = "match_lit"
|
||||
damtype = "fire"
|
||||
force = 3
|
||||
hitsound = 'sound/items/welder.ogg'
|
||||
item_state = "cigon"
|
||||
name = "lit match"
|
||||
desc = "A match. This one is lit."
|
||||
attack_verb = list("burnt","singed")
|
||||
processing_objects.Add(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/match/proc/matchburnout()
|
||||
if(lit)
|
||||
lit = FALSE
|
||||
burnt = TRUE
|
||||
damtype = "brute"
|
||||
force = initial(force)
|
||||
icon_state = "match_burnt"
|
||||
item_state = "cigoff"
|
||||
name = "burnt match"
|
||||
desc = "A match. This one has seen better days."
|
||||
attack_verb = list("flicked")
|
||||
processing_objects.Remove(src)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/match/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
|
||||
/obj/item/weapon/match/dropped(mob/user)
|
||||
matchburnout()
|
||||
. = ..()
|
||||
|
||||
/obj/item/weapon/match/attack(mob/living/carbon/M, mob/living/carbon/user)
|
||||
if(!isliving(M))
|
||||
return ..()
|
||||
if(lit == 1) M.IgniteMob()
|
||||
if(!istype(M, /mob))
|
||||
return ..()
|
||||
|
||||
if(istype(M.wear_mask, /obj/item/clothing/mask/cigarette) && user.zone_sel.selecting == "mouth" && lit == 1)
|
||||
var/obj/item/clothing/mask/cigarette/cig = M.wear_mask
|
||||
if(lit && M.IgniteMob())
|
||||
message_admins("[key_name_admin(user)] set [key_name_admin(M)] on fire")
|
||||
log_game("[key_name(user)] set [key_name(M)] on fire")
|
||||
var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M)
|
||||
if(lit && cig && user.a_intent == INTENT_HELP)
|
||||
if(cig.lit)
|
||||
to_chat(user, "<span class='notice'>[cig] is already lit.</span>")
|
||||
if(M == user)
|
||||
cig.attackby(src, user)
|
||||
else
|
||||
cig.light("<span class='notice'>[user] holds the [name] out for [M], and lights the [cig.name].</span>")
|
||||
cig.light("<span class='notice'>[user] holds [src] out for [M], and lights [cig].</span>")
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/proc/help_light_cig(mob/living/M)
|
||||
var/mask_item = M.get_item_by_slot(slot_wear_mask)
|
||||
if(istype(mask_item, /obj/item/clothing/mask/cigarette))
|
||||
return mask_item
|
||||
|
||||
@@ -12,18 +12,18 @@
|
||||
icon_state ="bookEngineering"
|
||||
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
|
||||
title = "Station Repairs and Construction"
|
||||
/*dat = {"
|
||||
dat = {"
|
||||
|
||||
<html><head>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<iframe width='100%' height='97%' src="http://wiki.nanotrasen.com/index.php?title=Guide_to_construction&printable=yes&remove_links=1" frameborder="0" id="main_frame"></iframe>
|
||||
<iframe width='100%' height='97%' src="https://Nanotrasen.se/wiki/index.php?title=Guide_to_Construction&printable=yes&remove_links=1" frameborder="0" id="main_frame"></iframe>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
"}*/
|
||||
"}
|
||||
|
||||
/obj/item/weapon/book/manual/engineering_particle_accelerator
|
||||
name = "Particle Accelerator User's Guide"
|
||||
@@ -32,7 +32,7 @@
|
||||
title = "Particle Accelerator User's Guide"
|
||||
//big pile of shit below.
|
||||
|
||||
/*dat = {"<html>
|
||||
dat = {"<html>
|
||||
<head>
|
||||
<style>
|
||||
h1 {font-size: 18px; margin: 15px 0px 5px;}
|
||||
@@ -65,7 +65,7 @@
|
||||
</ol>
|
||||
|
||||
</body>
|
||||
</html>"}*/
|
||||
</html>"}
|
||||
|
||||
|
||||
/obj/item/weapon/book/manual/supermatter_engine
|
||||
@@ -158,18 +158,18 @@
|
||||
title = "Hacking"
|
||||
//big pile of shit below.
|
||||
|
||||
/*dat = {"
|
||||
dat = {"
|
||||
|
||||
<html><head>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<iframe width='100%' height='97%' src="http://wiki.nanotrasen.com/index.php?title=Hacking&printable=yes&remove_links=1" frameborder="0" id="main_frame"></iframe>
|
||||
<iframe width='100%' height='97%' src="https://Nanotrasen.se/wiki/index.php?title=Hacking&printable=yes&remove_links=1" frameborder="0" id="main_frame"></iframe>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
"}*/
|
||||
"}
|
||||
|
||||
/obj/item/weapon/book/manual/engineering_singularity_safety
|
||||
name = "Singularity Safety in Special Circumstances"
|
||||
@@ -178,7 +178,7 @@
|
||||
title = "Singularity Safety in Special Circumstances"
|
||||
//big pile of shit below.
|
||||
|
||||
/*dat = {"<html>
|
||||
dat = {"<html>
|
||||
<head>
|
||||
<style>
|
||||
h1 {font-size: 18px; margin: 15px 0px 5px;}
|
||||
@@ -217,14 +217,14 @@
|
||||
Step one: <b>GET THE FUCK OUT OF THERE!!! FORGET THE WOMEN AND CHILDREN, SAVE YOURSELF!!!</b><br>
|
||||
</body>
|
||||
</html>
|
||||
"}*/
|
||||
"}
|
||||
|
||||
/obj/item/weapon/book/manual/hydroponics_pod_people
|
||||
name = "The Human Harvest - From seed to market"
|
||||
icon_state ="bookHydroponicsPodPeople"
|
||||
author = "Farmer John"
|
||||
title = "The Human Harvest - From seed to market"
|
||||
/*dat = {"<html>
|
||||
dat = {"<html>
|
||||
<head>
|
||||
<style>
|
||||
h1 {font-size: 18px; margin: 15px 0px 5px;}
|
||||
@@ -252,7 +252,7 @@
|
||||
|
||||
</body>
|
||||
</html>
|
||||
"}*/
|
||||
"}
|
||||
|
||||
/obj/item/weapon/book/manual/medical_cloning
|
||||
name = "Cloning techniques of the 26th century"
|
||||
@@ -261,7 +261,7 @@
|
||||
title = "Cloning techniques of the 26th century"
|
||||
//big pile of shit below.
|
||||
|
||||
/*dat = {"<html>
|
||||
dat = {"<html>
|
||||
<head>
|
||||
<style>
|
||||
h1 {font-size: 18px; margin: 15px 0px 5px;}
|
||||
@@ -329,7 +329,7 @@
|
||||
|
||||
</body>
|
||||
</html>
|
||||
"}*/
|
||||
"}
|
||||
|
||||
|
||||
/obj/item/weapon/book/manual/ripley_build_and_repair
|
||||
@@ -339,7 +339,7 @@
|
||||
title = "APLU \"Ripley\" Construction and Operation Manual"
|
||||
//big pile of shit below.
|
||||
|
||||
/*dat = {"<html>
|
||||
dat = {"<html>
|
||||
<head>
|
||||
<style>
|
||||
h1 {font-size: 18px; margin: 15px 0px 5px;}
|
||||
@@ -405,7 +405,7 @@
|
||||
|
||||
<h2>Operation</h2>
|
||||
Coming soon...
|
||||
"}*/
|
||||
"}
|
||||
|
||||
/obj/item/weapon/book/manual/experimentor
|
||||
name = "Mentoring your Experiments"
|
||||
@@ -544,7 +544,7 @@
|
||||
icon_state = "rdbook"
|
||||
author = "Dr. L. Ight"
|
||||
title = "Research and Development 101"
|
||||
/*dat = {"
|
||||
dat = {"
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
@@ -580,11 +580,14 @@
|
||||
<h2>Protolathe</h2>
|
||||
This machine is an advanced form of the Autolathe that produce non-circuit designs. Unlike the Autolathe, it can use processed metal, glass, solid plasma, silver, gold, and diamonds along with a variety of chemicals to produce devices. The downside is that, again, not all devices you make are 100% reliable when you first discover them.
|
||||
|
||||
<h1>Reliability and You</h1>
|
||||
As it has been stated, many devices when they're first discovered do not have a 100% reliablity when you first discover them. Instead, the reliablity of the device is dependent upon a base reliability value, whatever improvements to the design you've discovered through the Destructive Analyzer, and any advancements you've made with the device's source technologies. To be able to improve the reliability of a device, you have to use the device until it breaks beyond repair. Once that happens, you can analyze it in a Destructive Analyzer. Once the device reachs a certain minimum reliability, you'll gain tech advancements from it.
|
||||
|
||||
<h1>Building a Better Machine</h1>
|
||||
Many machines produces from circuit boards and inserted into a machine frame require a variety of parts to construct. These are parts like capacitors, batteries, matter bins, and so forth. As your knowledge of science improves, more advanced versions are unlocked. If you use these parts when constructing something, its attributes may be improved. For example, if you use an advanced matter bin when constructing an autolathe (rather then a regular one), it'll hold more materials. Experiment around with stock parts of various qualities to see how they affect the end results!
|
||||
Many machines produces from circuit boards and inserted into a machine frame require a variety of parts to construct. These are parts like capacitors, batteries, matter bins, and so forth. As your knowledge of science improves, more advanced versions are unlocked. If you use these parts when constructing something, its attributes may be improved. For example, if you use an advanced matter bin when constructing an autolathe (rather then a regular one), it'll hold more materials. Experiment around with stock parts of various qualities to see how they affect the end results! Be warned, however: Tier 3 and higher stock parts don't have 100% reliability and their low reliability may affect the reliability of the end machine.
|
||||
</body>
|
||||
</html>
|
||||
"}*/
|
||||
"}
|
||||
|
||||
|
||||
/obj/item/weapon/book/manual/robotics_cyborgs
|
||||
@@ -592,7 +595,7 @@
|
||||
icon_state = "borgbook"
|
||||
author = "XISC"
|
||||
title = "Cyborgs for Dummies"
|
||||
/*dat = {"<html>
|
||||
dat = {"<html>
|
||||
<head>
|
||||
<style>
|
||||
h1 {font-size: 21px; margin: 15px 0px 5px;}
|
||||
@@ -787,7 +790,7 @@
|
||||
|
||||
</body>
|
||||
</html>
|
||||
"}*/
|
||||
"}
|
||||
|
||||
/obj/item/weapon/book/manual/security_space_law
|
||||
name = "Space Law"
|
||||
@@ -801,7 +804,7 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<iframe width='100%' height='97%' src="http://nanotrasen.se/wiki/index.php?title=Space_law&printable=yes" frameborder="0" id="main_frame"></iframe> </body>
|
||||
<iframe width='100%' height='97%' src="https://Nanotrasen.se/wiki/index.php?title=Space_law&printable=yes&remove_links=1" frameborder="0" id="main_frame"></iframe> </body>
|
||||
|
||||
</html>
|
||||
|
||||
@@ -818,17 +821,17 @@
|
||||
icon_state ="bookEngineering2"
|
||||
author = "Engineering Encyclopedia"
|
||||
title = "Engineering Textbook"
|
||||
/*dat = {"
|
||||
dat = {"
|
||||
|
||||
<html><head>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<iframe width='100%' height='97%' src="http://wiki.nanotrasen.com/index.php?title=Guide_to_engineering&printable=yes&remove_links=1" frameborder="0" id="main_frame"></iframe> </body>
|
||||
<iframe width='100%' height='97%' src="https://Nanotrasen.se/wiki/index.php?title=Guide_to_Engineering&printable=yes&remove_links=1" frameborder="0" id="main_frame"></iframe> </body>
|
||||
|
||||
</html>
|
||||
|
||||
"}*/
|
||||
"}
|
||||
|
||||
|
||||
/obj/item/weapon/book/manual/chef_recipes
|
||||
@@ -836,7 +839,7 @@
|
||||
icon_state = "cooked_book"
|
||||
author = "Victoria Ponsonby"
|
||||
title = "Chef Recipes"
|
||||
/*dat = {"<html>
|
||||
dat = {"<html>
|
||||
<head>
|
||||
<style>
|
||||
h1 {font-size: 18px; margin: 15px 0px 5px;}
|
||||
@@ -884,14 +887,14 @@
|
||||
|
||||
</body>
|
||||
</html>
|
||||
"}*/
|
||||
"}
|
||||
|
||||
/obj/item/weapon/book/manual/barman_recipes
|
||||
name = "Barman Recipes"
|
||||
icon_state = "barbook"
|
||||
author = "Sir John Rose"
|
||||
title = "Barman Recipes"
|
||||
/*dat = {"<html>
|
||||
dat = {"<html>
|
||||
<head>
|
||||
<style>
|
||||
h1 {font-size: 18px; margin: 15px 0px 5px;}
|
||||
@@ -936,7 +939,7 @@
|
||||
|
||||
</body>
|
||||
</html>
|
||||
"}*/
|
||||
"}
|
||||
|
||||
|
||||
/obj/item/weapon/book/manual/detective
|
||||
@@ -944,7 +947,7 @@
|
||||
icon_state ="bookDetective"
|
||||
author = "Nanotrasen"
|
||||
title = "The Film Noir: Proper Procedures for Investigations"
|
||||
/*dat = {"<html>
|
||||
dat = {"<html>
|
||||
<head>
|
||||
<style>
|
||||
h1 {font-size: 18px; margin: 15px 0px 5px;}
|
||||
@@ -978,14 +981,14 @@
|
||||
It really is that easy! Good luck!
|
||||
|
||||
</body>
|
||||
</html>"}*/
|
||||
</html>"}
|
||||
|
||||
/obj/item/weapon/book/manual/nuclear
|
||||
name = "Fission Mailed: Nuclear Sabotage 101"
|
||||
icon_state ="bookNuclear"
|
||||
author = "Syndicate"
|
||||
title = "Fission Mailed: Nuclear Sabotage 101"
|
||||
/*dat = {"<html>
|
||||
dat = {"<html>
|
||||
Nuclear Explosives 101:<br>
|
||||
Hello and thank you for choosing the Syndicate for your nuclear information needs.<br>
|
||||
Today's crash course will deal with the operation of a Fusion Class Nanotrasen made Nuclear Device.<br>
|
||||
@@ -1013,7 +1016,7 @@
|
||||
<b>Disk, Code, Safety, Timer, Disk, RUN!</b><br>
|
||||
Intelligence Analysts believe that normal Nanotrasen procedure is for the Captain to secure the nuclear authorisation disk.<br>
|
||||
Good luck!
|
||||
</html>"}*/
|
||||
</html>"}
|
||||
|
||||
/obj/item/weapon/book/manual/atmospipes
|
||||
name = "Pipes and You: Getting To Know Your Scary Tools"
|
||||
@@ -2557,4 +2560,4 @@
|
||||
</body>
|
||||
</html>
|
||||
|
||||
"}
|
||||
"}
|
||||
@@ -12,7 +12,7 @@
|
||||
light_power = 2
|
||||
var/brightness_on = 2
|
||||
var/colormap = list(red=LIGHT_COLOR_RED, blue=LIGHT_COLOR_LIGHTBLUE, green=LIGHT_COLOR_GREEN, purple=LIGHT_COLOR_PURPLE, rainbow=LIGHT_COLOR_WHITE)
|
||||
|
||||
|
||||
/obj/item/weapon/melee/energy/suicide_act(mob/user)
|
||||
user.visible_message(pick("<span class='suicide'>[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.</span>", \
|
||||
"<span class='suicide'>[user] is falling on the [src.name]! It looks like \he's trying to commit suicide.</span>"))
|
||||
@@ -70,7 +70,7 @@
|
||||
throw_range = 5
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
w_class_on = WEIGHT_CLASS_HUGE
|
||||
hitsound = "swing_hit"
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
flags = CONDUCT
|
||||
armour_penetration = 100
|
||||
origin_tech = "combat=4;magnets=3"
|
||||
|
||||
@@ -140,7 +140,7 @@ var/list/pipemenu = list(
|
||||
ui_interact(user)
|
||||
|
||||
/obj/item/weapon/rpd/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = inventory_state)
|
||||
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "rpd.tmpl", "[name]", 400, 650, state = state)
|
||||
ui.open()
|
||||
@@ -173,16 +173,19 @@ var/list/pipemenu = list(
|
||||
mode = text2num(sanitize(href_list["mode"]))
|
||||
else
|
||||
return
|
||||
nanomanager.update_uis(src)
|
||||
SSnanoui.update_uis(src)
|
||||
|
||||
//What the RPD actually does
|
||||
|
||||
/obj/item/weapon/rpd/afterattack(atom/target, mob/user, proximity)
|
||||
..()
|
||||
var/turf/T = get_turf(target)
|
||||
if(src.loc != user || ismob(target) || istype(target, /obj/structure/window) || !proximity || world.time < lastused + spawndelay)
|
||||
if(loc != user || ismob(target) || istype(target, /obj/structure/window) || !proximity || world.time < lastused + spawndelay)
|
||||
return
|
||||
if(mode == ATMOS_MODE && !istype(T, /turf/simulated/shuttle)) //No pipes on shuttles nerds
|
||||
if(!(T.flags & RPD_ALLOWED_HERE))
|
||||
to_chat(user, "<span class='notice'>[src] beeps, \"Unable to interface with [T]. Please try again later.\"</span>")
|
||||
return
|
||||
if(mode == ATMOS_MODE)
|
||||
if(istype(T, /turf/simulated/wall)) //Drilling into walls takes time
|
||||
playsound(loc, "sound/weapons/circsawhit.ogg", 50, 1)
|
||||
user.visible_message("<span class = 'notice'>[user] starts drilling a hole in [T]...</span>", "<span class = 'notice'>You start drilling a hole in [T]...</span>", "<span class = 'warning'>You hear a drill.</span>")
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT)
|
||||
attack_verb = list("stabbed", "slashed", "sliced", "cut")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
armor = list("melee" = 100, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0)
|
||||
|
||||
/obj/item/weapon/shard/suicide_act(mob/user)
|
||||
to_chat(viewers(user), pick("<span class='danger'>[user] is slitting \his wrists with \the [src]! It looks like \he's trying to commit suicide.</span>",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/obj/item/weapon/shield
|
||||
name = "shield"
|
||||
block_chance = 50
|
||||
armor = list(melee = 50, bullet = 50, laser = 50, energy = 0, bomb = 30, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/weapon/shield/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance, damage, attack_type)
|
||||
if(attack_type == THROWN_PROJECTILE_ATTACK)
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
max_w_class = WEIGHT_CLASS_HUGE
|
||||
max_combined_w_class = 35
|
||||
burn_state = FIRE_PROOF
|
||||
cant_hold = list(/obj/item/weapon/storage/backpack/holding)
|
||||
|
||||
/obj/item/weapon/storage/backpack/holding/New()
|
||||
..()
|
||||
|
||||
@@ -25,14 +25,40 @@
|
||||
icon_state = "box"
|
||||
item_state = "syringe_kit"
|
||||
burn_state = FLAMMABLE
|
||||
foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
|
||||
var/foldable = /obj/item/stack/sheet/cardboard
|
||||
|
||||
/obj/item/weapon/storage/box/attack_self(mob/user)
|
||||
..()
|
||||
|
||||
if(!foldable)
|
||||
return
|
||||
if(contents.len)
|
||||
to_chat(user, "<span class='warning'>You can't fold this box with items still inside!</span>")
|
||||
return
|
||||
if(!ispath(foldable))
|
||||
return
|
||||
|
||||
// Close any open UI windows first
|
||||
var/found = 0
|
||||
for(var/mob/M in range(1))
|
||||
if(M.s_active == src)
|
||||
close(M)
|
||||
if(M == user)
|
||||
found = 1
|
||||
if(!found) // User is too far away
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You fold [src] flat.</span>")
|
||||
var/obj/item/I = new foldable(get_turf(src))
|
||||
user.put_in_hands(I)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/storage/box/large
|
||||
name = "large box"
|
||||
desc = "You could build a fort with this."
|
||||
icon_state = "largebox"
|
||||
w_class = 42 // Big, bulky.
|
||||
foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
|
||||
foldable = /obj/item/stack/sheet/cardboard
|
||||
storage_slots = 21
|
||||
max_combined_w_class = 42 // 21*2
|
||||
|
||||
@@ -639,19 +665,16 @@
|
||||
slot_flags = SLOT_BELT
|
||||
can_hold = list(/obj/item/weapon/match)
|
||||
|
||||
New()
|
||||
..()
|
||||
for(var/i=1; i <= storage_slots; i++)
|
||||
new /obj/item/weapon/match(src)
|
||||
/obj/item/weapon/storage/box/matches/New()
|
||||
..()
|
||||
for(var/i in 1 to storage_slots)
|
||||
new /obj/item/weapon/match(src)
|
||||
|
||||
attackby(obj/item/weapon/match/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/weapon/match) && W.lit == 0)
|
||||
W.lit = 1
|
||||
W.icon_state = "match_lit"
|
||||
processing_objects.Add(W)
|
||||
playsound(user.loc, 'sound/goonstation/misc/matchstick_light.ogg', 50, 1)
|
||||
W.update_icon()
|
||||
return
|
||||
/obj/item/weapon/storage/box/matches/attackby(obj/item/weapon/match/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/match) && !W.lit)
|
||||
W.matchignite()
|
||||
playsound(user.loc, 'sound/goonstation/misc/matchstick_light.ogg', 50, 1)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/box/autoinjectors
|
||||
name = "box of injectors"
|
||||
@@ -681,7 +704,7 @@
|
||||
icon_state = "light"
|
||||
desc = "This box is shaped on the inside so that only light tubes and bulbs fit."
|
||||
item_state = "syringe_kit"
|
||||
foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
|
||||
foldable = /obj/item/stack/sheet/cardboard
|
||||
storage_slots=21
|
||||
can_hold = list(/obj/item/weapon/light/tube, /obj/item/weapon/light/bulb)
|
||||
max_combined_w_class = 21
|
||||
|
||||
@@ -266,6 +266,13 @@
|
||||
item_state = "cigpacket"
|
||||
default_reagents = list("nicotine" = 15, "omnizine" = 15)
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigarettes/cigpack_med
|
||||
name = "Medical Marijuana Packet"
|
||||
desc = "A prescription packet containing six marijuana cigarettes."
|
||||
icon_state = "medpacket"
|
||||
item_state = "cigpacket"
|
||||
default_reagents = list("thc" = 15)
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift
|
||||
name = "\improper Uplift Smooth packet"
|
||||
desc = "Your favorite brand, now menthol flavored."
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
var/allow_quick_empty //Set this variable to allow the object to have the 'empty' verb, which dumps all the contents on the floor.
|
||||
var/allow_quick_gather //Set this variable to allow the object to have the 'toggle mode' verb, which quickly collects all items from a tile.
|
||||
var/collection_mode = 1; //0 = pick one at a time, 1 = pick all on tile
|
||||
var/foldable = null // BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard
|
||||
var/use_sound = "rustle" //sound played when used. null for no sound.
|
||||
|
||||
/obj/item/weapon/storage/MouseDrop(obj/over_object as obj)
|
||||
@@ -474,35 +473,12 @@
|
||||
for(var/obj/O in contents)
|
||||
O.hear_message(M, msg)
|
||||
|
||||
// BubbleWrap - A box can be folded up to make card
|
||||
/obj/item/weapon/storage/attack_self(mob/user as mob)
|
||||
/obj/item/weapon/storage/attack_self(mob/user)
|
||||
|
||||
//Clicking on itself will empty it, if it has the verb to do that.
|
||||
if(user.is_in_active_hand(src))
|
||||
if(src.verbs.Find(/obj/item/weapon/storage/verb/quick_empty))
|
||||
src.quick_empty()
|
||||
return
|
||||
|
||||
//Otherwise we'll try to fold it.
|
||||
if( contents.len )
|
||||
return
|
||||
|
||||
if( !ispath(src.foldable) )
|
||||
return
|
||||
var/found = 0
|
||||
// Close any open UI windows first
|
||||
for(var/mob/M in range(1))
|
||||
if(M.s_active == src)
|
||||
src.close(M)
|
||||
if( M == user )
|
||||
found = 1
|
||||
if( !found ) // User is too far away
|
||||
return
|
||||
// Now make the cardboard
|
||||
to_chat(user, "<span class='notice'>You fold [src] flat.</span>")
|
||||
new src.foldable(get_turf(src))
|
||||
qdel(src)
|
||||
//BubbleWrap END
|
||||
if(verbs.Find(/obj/item/weapon/storage/verb/quick_empty))
|
||||
quick_empty()
|
||||
|
||||
//Returns the storage depth of an atom. This is the number of storage items the atom is contained in before reaching toplevel (the area).
|
||||
//Returns -1 if the atom was not found on container.
|
||||
|
||||
@@ -241,4 +241,24 @@
|
||||
..()
|
||||
for(var/i in 1 to 3)
|
||||
new/obj/item/cardboard_cutout/adaptive(src)
|
||||
new/obj/item/toy/crayon/spraycan(src)
|
||||
new/obj/item/toy/crayon/spraycan(src)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/bonerepair
|
||||
name = "bone repair kit"
|
||||
desc = "A box containing one prototype field bone repair kit."
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/bonerepair/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/nanocalcium(src)
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src)
|
||||
P.name = "Bone repair guide"
|
||||
P.desc = "For when you want to safely get off Mr Bones' Wild Ride."
|
||||
P.info = {"
|
||||
<font face="Verdana" color=black></font><font face="Verdana" color=black><center><B>Prototype Bone Repair Nanites</B><HR></center><BR><BR>
|
||||
|
||||
<B>Usage:</B> <BR><BR><BR>
|
||||
|
||||
<font size = "1">This is a highly experimental prototype chemical designed to repair damaged bones of soldiers in the field, use only as a last resort. The autoinjector contains prototype nanites bearing a calcium based payload. The nanites will simultaneously shut down body systems whilst aiding bone repair.<BR><BR><BR>Warning: Side effects can cause temporary paralysis, loss of co-ordination and sickness. <B>Do not use with any kind of stimulant or drugs. Serious damage can occur!</B><BR><BR><BR>
|
||||
|
||||
To apply, hold the injector a short distance away from the outer thigh before applying firmly to the skin surface. Bones should begin repair after a short time, during which you are advised to remain still. <BR><BR><BR><BR>After use you are advised to see a doctor at the next available opportunity. Mild scarring and tissue damage may occur after use. This is a prototype.</font><BR><HR></font>
|
||||
"}
|
||||
@@ -89,7 +89,7 @@
|
||||
return
|
||||
|
||||
/obj/item/weapon/melee/baton/attack_self(mob/user)
|
||||
if(bcell && bcell.charge > hitcost)
|
||||
if(bcell && bcell.charge >= hitcost)
|
||||
status = !status
|
||||
to_chat(user, "<span class='notice'>[src] is now [status ? "on" : "off"].</span>")
|
||||
playsound(loc, "sparks", 75, 1, -1)
|
||||
|
||||
@@ -7,9 +7,10 @@
|
||||
/*
|
||||
* Banhammer
|
||||
*/
|
||||
/obj/item/weapon/banhammer/attack(mob/M as mob, mob/user as mob)
|
||||
/obj/item/weapon/banhammer/attack(mob/M, mob/user)
|
||||
to_chat(M, "<font color='red'><b> You have been banned FOR NO REISIN by [user]<b></font>")
|
||||
to_chat(user, "<font color='red'> You have <b>BANNED</b> [M]</font>")
|
||||
playsound(loc, 'sound/effects/adminhelp.ogg', 15) //keep it at 15% volume so people don't jump out of their skin too much
|
||||
|
||||
/*
|
||||
* Classic Baton
|
||||
|
||||
@@ -8,14 +8,12 @@
|
||||
slot_flags = SLOT_BACK
|
||||
hitsound = 'sound/weapons/smash.ogg'
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
pressure_resistance = ONE_ATMOSPHERE*5
|
||||
|
||||
force = 5.0
|
||||
throwforce = 10.0
|
||||
throw_speed = 1
|
||||
throw_range = 4
|
||||
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 0, rad = 0)
|
||||
actions_types = list(/datum/action/item_action/set_internals)
|
||||
var/datum/gas_mixture/air_contents = null
|
||||
var/distribute_pressure = ONE_ATMOSPHERE
|
||||
@@ -143,7 +141,7 @@
|
||||
|
||||
/obj/item/weapon/tank/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
// update the ui if it exists, returns null if no ui is passed/found
|
||||
ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
// the ui does not exist, so we'll create a new() one
|
||||
// for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm
|
||||
|
||||
@@ -103,6 +103,7 @@ Frequency:
|
||||
throw_range = 5
|
||||
materials = list(MAT_METAL=10000)
|
||||
origin_tech = "magnets=3;bluespace=4"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 30, bio = 0, rad = 0)
|
||||
var/active_portals = 0
|
||||
|
||||
/obj/item/weapon/hand_tele/attack_self(mob/user as mob)
|
||||
|
||||
@@ -545,6 +545,7 @@
|
||||
throwforce = 15
|
||||
throw_range = 1
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
armor = list(melee = 50, bullet = 50, laser = 50, energy = 0, bomb = 50, bio = 0, rad = 0)
|
||||
var/charged = 5
|
||||
origin_tech = "combat=4;bluespace=4;plasmatech=7"
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
/obj/item/weapon/vending_refill/coffee
|
||||
machine_name = "hot drinks"
|
||||
icon_state = "refill_joe"
|
||||
charges = 28//of 85
|
||||
charges = 35//of 105
|
||||
|
||||
/obj/item/weapon/vending_refill/snack
|
||||
machine_name = "Getmore Chocolate Corp"
|
||||
|
||||
Reference in New Issue
Block a user