mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -1,20 +1,21 @@
|
||||
/obj/item/weapon/weldpack
|
||||
name = "Portable welding tank."
|
||||
desc = "For welding on the go!"
|
||||
icon_state = "backpack"
|
||||
name = "Welding kit"
|
||||
desc = "A heavy-duty, portable welding fluid carrier."
|
||||
flags = ONBACK
|
||||
icon_state = "engiepack"
|
||||
w_class = 4.0
|
||||
flags = 259.0
|
||||
var/max_fuel = 100
|
||||
var/max_fuel = 350
|
||||
|
||||
/obj/item/weapon/weldpack/New()
|
||||
var/datum/reagents/R = new/datum/reagents(100) //5 refills
|
||||
var/datum/reagents/R = new/datum/reagents(max_fuel) //5 refills
|
||||
reagents = R
|
||||
R.my_atom = src
|
||||
R.add_reagent("fuel", 100)
|
||||
R.add_reagent("fuel", max_fuel)
|
||||
|
||||
/obj/item/weapon/weldpack/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/weldingtool)
|
||||
if(W.welding & prob(15))
|
||||
if(istype(W, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/T = W
|
||||
if(T.welding & prob(50))
|
||||
message_admins("[key_name_admin(user)] triggered a fueltank explosion.")
|
||||
log_game("[key_name(user)] triggered a fueltank explosion.")
|
||||
user << "\red That was stupid of you."
|
||||
@@ -23,9 +24,9 @@
|
||||
del(src)
|
||||
return
|
||||
else
|
||||
if(W.welding)
|
||||
if(T.welding)
|
||||
user << "\red That was close!"
|
||||
src.reagents.trans_to(W, W.max_fuel)
|
||||
src.reagents.trans_to(W, T.max_fuel)
|
||||
user << "\blue Welder refilled!"
|
||||
playsound(src.loc, 'refill.ogg', 50, 1, -6)
|
||||
return
|
||||
@@ -33,14 +34,14 @@
|
||||
return
|
||||
|
||||
/obj/item/weapon/weldpack/afterattack(obj/O as obj, mob/user as mob)
|
||||
if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume < max_fuel)
|
||||
O.reagents.trans_to(src, max_fuel)
|
||||
user << "\blue Tank refilled!"
|
||||
playsound(src.loc, 'refill.ogg', 50, 1, -6)
|
||||
return
|
||||
else if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume == max_fuel)
|
||||
user << "\blue Tank is already full!"
|
||||
return
|
||||
if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume < max_fuel)
|
||||
O.reagents.trans_to(src, max_fuel)
|
||||
user << "\blue You crack the cap off the top of the pack and fill it back up again from the tank."
|
||||
playsound(src.loc, 'refill.ogg', 50, 1, -6)
|
||||
return
|
||||
else if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume == max_fuel)
|
||||
user << "\blue The pack is already full!"
|
||||
return
|
||||
|
||||
/obj/item/weapon/weldpack/examine()
|
||||
set src in usr
|
||||
|
||||
@@ -458,7 +458,7 @@
|
||||
var/registered = null
|
||||
var/assignment = null
|
||||
var/obj/item/weapon/photo/PHOTO = null
|
||||
var/over = 1
|
||||
var/over_jumpsuit = 1 // If set to 0, it won't display on top of the mob's jumpsuit
|
||||
|
||||
/obj/item/weapon/card/id/gold
|
||||
name = "identification card"
|
||||
@@ -567,6 +567,7 @@
|
||||
w_class = 2.0
|
||||
throw_speed = 3
|
||||
throw_range = 10
|
||||
flags = ONBELT
|
||||
|
||||
#define MAXCOIL 30
|
||||
/obj/item/weapon/cable_coil
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
var/health = 0 // Its health.
|
||||
var/lastproduce = 0 // Last time it was harvested
|
||||
var/lastcycle = 0 //Used for timing of cycles.
|
||||
var/cycledelay = 200 // About 10 seconds / cycle
|
||||
var/cycledelay = 1000 // About 50 seconds / cycle
|
||||
var/planted = 0 // Is it occupied?
|
||||
var/harvest = 0 //Ready to harvest?
|
||||
var/obj/item/seeds/myseed = null // The currently planted seed
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
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/cart = "" //A place to stick cartridge menu information
|
||||
var/over_jumpsuit = 1 // If set to 0, it won't display on top of the mob's jumpsuit
|
||||
|
||||
var/obj/item/weapon/integrated_uplink/uplink = null
|
||||
|
||||
|
||||
@@ -637,12 +637,7 @@ CLIPBOARDS
|
||||
user.update_clothing()
|
||||
src.add_fingerprint(user)
|
||||
else
|
||||
if (user.contents.Find(src))
|
||||
spawn( 0 )
|
||||
src.attack_self(user)
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
return ..()
|
||||
return
|
||||
|
||||
/obj/item/weapon/clipboard/attackby(obj/item/weapon/P as obj, mob/user as mob)
|
||||
|
||||
@@ -962,17 +962,19 @@ CIRCULAR SAW
|
||||
O.show_message("\red [msg]",1)
|
||||
|
||||
|
||||
//Broken bone
|
||||
//Basic
|
||||
//Open -> Clean -> Bone-gel -> pop-into-place -> Bone-gel -> close -> glue -> clean
|
||||
/*Broken bone
|
||||
Basic:
|
||||
Open -> Clean -> Bone-gel -> pop-into-place -> Bone-gel -> close -> glue -> clean
|
||||
|
||||
//Split
|
||||
//Open -> Clean -> Tweasers -> bone-glue -> close -> glue -> clean
|
||||
Split:
|
||||
Open -> Clean -> Tweasers -> bone-glue -> close -> glue -> clean
|
||||
|
||||
//
|
||||
The above might not apply anymore.
|
||||
|
||||
*/
|
||||
|
||||
/obj/item/weapon/surgical_tool/bonegel
|
||||
name = "Bone-gel"
|
||||
name = "bone gel"
|
||||
icon = 'janitor.dmi'
|
||||
icon_state = "cleaner"
|
||||
|
||||
@@ -984,26 +986,26 @@ CIRCULAR SAW
|
||||
var/z
|
||||
switch(n)
|
||||
if(1)
|
||||
z="[usr] starts applying bone-gel to [m]'s [organ.display_name]"
|
||||
z="[usr] starts applying bone gel to [m]'s [organ.display_name]"
|
||||
if(2)
|
||||
z="[usr] finishes applying bone-gel to [m]'s [organ.display_name]"
|
||||
z="[usr] finishes applying bone gel to [m]'s [organ.display_name]"
|
||||
if(3)
|
||||
z="[usr] stops applying bone-gel to [m]'s [organ.display_name]"
|
||||
z="[usr] stops applying bone gel to [m]'s [organ.display_name]"
|
||||
if(4)
|
||||
z="[usr] applies bone-gel incorrectly to [m]'s [organ.display_name]"
|
||||
z="[usr] applies bone gel incorrectly to [m]'s [organ.display_name]"
|
||||
if(5)
|
||||
z="[usr] lubricates [m]'s [organ.display_name]"
|
||||
return z
|
||||
|
||||
/obj/item/weapon/surgical_tool/bonecracker
|
||||
name = "Bone-cracker"
|
||||
/obj/item/weapon/surgical_tool/bonesetter
|
||||
name = "bone setter"
|
||||
icon = 'items.dmi'
|
||||
icon_state = "wrench"
|
||||
|
||||
/obj/item/weapon/surgical_tool/bonecracker/New()
|
||||
/obj/item/weapon/surgical_tool/bonesetter/New()
|
||||
stage += 1
|
||||
wound = "broken"
|
||||
/obj/item/weapon/surgical_tool/bonecracker/get_message(var/n,var/m,var/usr,var/datum/organ/external/organ)
|
||||
/obj/item/weapon/surgical_tool/bonesetter/get_message(var/n,var/m,var/usr,var/datum/organ/external/organ)
|
||||
var/z
|
||||
switch(n)
|
||||
if(1)
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
name = "Pill bottle (tramadol)"
|
||||
desc = "Contains painkiller pills."
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/kelotane/New()
|
||||
/obj/item/weapon/storage/pill_bottle/tramadol/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/tramadol( src )
|
||||
new /obj/item/weapon/reagent_containers/pill/tramadol( src )
|
||||
|
||||
@@ -701,7 +701,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
W.access += list("VIP Guest","Custodian","Thunderdome Overseer","Intel Officer","Medical Officer","Death Commando","Research Officer")
|
||||
W.assignment = "CentCom Review Official"
|
||||
W.registered = M.real_name
|
||||
W.over = 0
|
||||
W.over_jumpsuit = 0
|
||||
M.equip_if_possible(W, M.slot_wear_id)
|
||||
|
||||
if("centcom commander")
|
||||
@@ -726,7 +726,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
W.access += get_all_centcom_access()
|
||||
W.assignment = "CentCom Commanding Officer"
|
||||
W.registered = M.real_name
|
||||
W.over = 0
|
||||
W.over_jumpsuit = 0
|
||||
M.equip_if_possible(W, M.slot_wear_id)
|
||||
|
||||
if("special ops officer")
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
R.my_atom = src
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob)//TODO:Have grenades use the new assembly things
|
||||
wrap(W,user)
|
||||
if(istype(W,/obj/item/device/assembly_holder) && !stage && path != 2)
|
||||
path = 1
|
||||
user << "\blue You add [W] to the metal casing."
|
||||
@@ -344,6 +345,7 @@
|
||||
usr << "\blue [grenades] / [max_grenades] Grenades."
|
||||
|
||||
attackby(obj/item/I as obj, mob/user as mob)
|
||||
wrap(I,user)
|
||||
if((istype(I, /obj/item/weapon/chem_grenade)) || (istype(I, /obj/item/weapon/flashbang)) || (istype(I, /obj/item/weapon/smokebomb)) || (istype(I, /obj/item/weapon/mustardbomb)) || (istype(I, /obj/item/weapon/empgrenade)))
|
||||
if(grenades.len < max_grenades)
|
||||
user.drop_item()
|
||||
@@ -443,6 +445,7 @@
|
||||
usr << "\blue [syringes] / [max_syringes] Syringes."
|
||||
|
||||
attackby(obj/item/I as obj, mob/user as mob)
|
||||
wrap(I,user)
|
||||
if(istype(I, /obj/item/weapon/reagent_containers/syringe))
|
||||
if(syringes.len < max_syringes)
|
||||
user.drop_item()
|
||||
@@ -521,6 +524,7 @@
|
||||
usr << "\blue [syringes] / [max_syringes] Syringes."
|
||||
|
||||
attackby(obj/item/I as obj, mob/user as mob)
|
||||
wrap(I,user)
|
||||
if(istype(I, /obj/item/weapon/reagent_containers/syringe))
|
||||
if(syringes.len < max_syringes)
|
||||
user.drop_item()
|
||||
@@ -675,27 +679,14 @@
|
||||
R.my_atom = src
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if (istype(W, /obj/item/weapon/packageWrap))
|
||||
if(istype(src.loc,/obj/item/weapon/storage) || istype(src.loc,/obj/item/clothing/suit/storage/)) //Taking stuff out of storage duplicates it.
|
||||
user << "\blue Do not do this, it is broken as all hell. Take it out of the container first."
|
||||
return
|
||||
for(var/obj/item/T in user) //Lets remove it from their inventory
|
||||
if(T == src)
|
||||
user.remove_from_mob(T)
|
||||
break
|
||||
var/obj/item/weapon/packageWrap/O = W
|
||||
if (O.amount > 1)
|
||||
var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(src.loc))
|
||||
P.wrapped = src
|
||||
|
||||
src.loc = P
|
||||
O.amount -= 1
|
||||
wrap(W,user)
|
||||
return
|
||||
attack_self(mob/user as mob)
|
||||
return
|
||||
attack(mob/M as mob, mob/user as mob, def_zone)
|
||||
return
|
||||
attackby(obj/item/I as obj, mob/user as mob)
|
||||
wrap(I,user)
|
||||
return
|
||||
afterattack(obj/target, mob/user , flag)
|
||||
return
|
||||
@@ -1087,6 +1078,7 @@
|
||||
return attack_hand()
|
||||
|
||||
attackby(obj/item/I as obj, mob/user as mob)
|
||||
wrap(I,user)
|
||||
return
|
||||
|
||||
afterattack(obj/target, mob/user , flag)
|
||||
@@ -1280,6 +1272,7 @@
|
||||
return
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
wrap(W,user)
|
||||
return
|
||||
attack_self(mob/user as mob)
|
||||
return
|
||||
@@ -1404,6 +1397,7 @@
|
||||
return 0
|
||||
|
||||
attackby(obj/item/I as obj, mob/user as mob)
|
||||
wrap(I,user)
|
||||
return
|
||||
afterattack(obj/target, mob/user , flag)
|
||||
return
|
||||
@@ -1426,6 +1420,7 @@
|
||||
var/slices_num
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
wrap(W,user)
|
||||
|
||||
if((slices_num <= 0 || !slices_num) || !slice_path)
|
||||
return 1
|
||||
@@ -1632,6 +1627,7 @@
|
||||
icon_state = "pill[rand(1,20)]"
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
wrap(W,user)
|
||||
return
|
||||
attack_self(mob/user as mob)
|
||||
return
|
||||
@@ -1674,6 +1670,7 @@
|
||||
return 0
|
||||
|
||||
attackby(obj/item/I as obj, mob/user as mob)
|
||||
wrap(I,user)
|
||||
return
|
||||
|
||||
afterattack(obj/target, mob/user , flag)
|
||||
@@ -2230,6 +2227,7 @@
|
||||
volume = 50
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
wrap(W,user)
|
||||
return
|
||||
attack_self(mob/user as mob)
|
||||
return
|
||||
@@ -2271,6 +2269,7 @@
|
||||
return 0
|
||||
|
||||
attackby(obj/item/I as obj, mob/user as mob)
|
||||
wrap(I,user)
|
||||
return
|
||||
|
||||
afterattack(obj/target, mob/user , flag)
|
||||
|
||||
@@ -880,7 +880,7 @@
|
||||
overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
|
||||
|
||||
if (wear_id)
|
||||
if(wear_id.over)
|
||||
if(wear_id.over_jumpsuit)
|
||||
overlays += image("icon" = 'mob.dmi', "icon_state" = "id[!lying ? null : "2"]", "layer" = MOB_LAYER)
|
||||
|
||||
if (client)
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
|
||||
|
||||
attackby(var/obj/item/A as obj, mob/user as mob)
|
||||
wrap(A, user)
|
||||
var/num_loaded = 0
|
||||
if(istype(A, /obj/item/ammo_magazine))
|
||||
if((load_method == 2) && loaded.len) return
|
||||
|
||||
@@ -69,6 +69,10 @@
|
||||
backwards = NORTH
|
||||
if(SOUTHWEST)
|
||||
backwards = NORTH
|
||||
if(operating > 0)
|
||||
movedir = forwards
|
||||
else if(operating < 0)
|
||||
movedir = backwards
|
||||
|
||||
/obj/machinery/conveyor/proc/setmove()
|
||||
if(operating > 0)
|
||||
|
||||
@@ -44,6 +44,10 @@
|
||||
if(stat & BROKEN)
|
||||
return
|
||||
|
||||
//robots shouldn't be able to grab/carry stuff anyway
|
||||
if(isrobot(user))
|
||||
return
|
||||
|
||||
if(istype(I, /obj/item/weapon/melee/energy/blade))
|
||||
user << "You can't place that item inside the disposal unit."
|
||||
return
|
||||
@@ -91,10 +95,6 @@
|
||||
for (var/mob/C in viewers(src))
|
||||
C.show_message("\red [GM.name] has been placed in the [src] by [user].", 3)
|
||||
del(G)
|
||||
|
||||
if(isrobot(user))
|
||||
return
|
||||
|
||||
else
|
||||
if(!I || isnull(I))
|
||||
//CRASH("disposal/attackby() was called, but I was nulled before calling user.drop_item()")
|
||||
|
||||
@@ -163,8 +163,6 @@
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/packageWrap
|
||||
name = "package wrapper"
|
||||
icon = 'items.dmi'
|
||||
@@ -220,6 +218,22 @@
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/item/proc/wrap(obj/item/I as obj, mob/user as mob)
|
||||
if(istype(I, /obj/item/weapon/packageWrap))
|
||||
var/obj/item/weapon/packageWrap/C = I
|
||||
if(!istype(src.loc,/turf))
|
||||
user << "\red You need to place the item on the ground or a table before wrapping it!"
|
||||
return
|
||||
else if (C.amount > 1)
|
||||
var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(src.loc))
|
||||
P.wrapped = src
|
||||
src.loc = P
|
||||
C.amount -= 1
|
||||
if (C.amount <= 0)
|
||||
new /obj/item/weapon/c_tube( C.loc )
|
||||
del(C)
|
||||
return
|
||||
|
||||
/obj/item/device/destTagger
|
||||
name = "destination tagger"
|
||||
desc = "Used to set the destination of properly wrapped packages."
|
||||
|
||||
Reference in New Issue
Block a user