mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-21 03:59:59 +01:00
This just adds some vars that the refactor will use. Putting this in a separate PR prevent the damage refactor PR from becoming too big (number of files changed) and hard to read and review. Introduces the resistance_flags bitflag that replaces unacidable and burn_state. Moves the armor var from item to /obj level and gives specific armor values to many objects, the armor list also gets two new armor types: fire and acid, which will be used in the refactor. the new fire and acid armor values are given to plenty of items.
124 lines
3.6 KiB
Plaintext
124 lines
3.6 KiB
Plaintext
/obj/item/weapon/papercutter
|
|
name = "paper cutter"
|
|
desc = "Standard office equipment. Precisely cuts paper using a large blade."
|
|
icon = 'icons/obj/bureaucracy.dmi'
|
|
icon_state = "papercutter-cutter"
|
|
force = 5
|
|
throwforce = 5
|
|
w_class = 3
|
|
var/obj/item/weapon/paper/storedpaper = null
|
|
var/obj/item/weapon/hatchet/cutterblade/storedcutter = null
|
|
var/cuttersecured = TRUE
|
|
pass_flags = PASSTABLE
|
|
|
|
|
|
/obj/item/weapon/papercutter/New()
|
|
..()
|
|
storedcutter = new /obj/item/weapon/hatchet/cutterblade(src)
|
|
|
|
|
|
/obj/item/weapon/papercutter/suicide_act(mob/user)
|
|
if(storedcutter)
|
|
user.visible_message("<span class='suicide'>[user] is beheading \himself with [src.name]! It looks like \he's trying to commit suicide.</span>")
|
|
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
|
|
return (BRUTELOSS)
|
|
else
|
|
user.visible_message("<span class='suicide'>[user] repeatedly bashes [src.name] against \his head! It looks like \he's trying to commit suicide.</span>")
|
|
playsound(loc, 'sound/items/gavel.ogg', 50, 1, -1)
|
|
return (BRUTELOSS)
|
|
|
|
|
|
/obj/item/weapon/papercutter/update_icon()
|
|
..()
|
|
cut_overlays()
|
|
icon_state = (storedcutter ? "[initial(icon_state)]-cutter" : "[initial(icon_state)]")
|
|
if(storedpaper)
|
|
add_overlay("paper")
|
|
|
|
|
|
/obj/item/weapon/papercutter/attackby(obj/item/P, mob/user, params)
|
|
if(istype(P, /obj/item/weapon/paper) && !storedpaper)
|
|
if(!user.drop_item())
|
|
return
|
|
playsound(loc, "pageturn", 60, 1)
|
|
user << "<span class='notice'>You place \the [P] in [src].</span>"
|
|
P.loc = src
|
|
storedpaper = P
|
|
update_icon()
|
|
return
|
|
if(istype(P, /obj/item/weapon/hatchet/cutterblade) && !storedcutter)
|
|
if(!user.drop_item())
|
|
return
|
|
user << "<span class='notice'>You replace [src]'s [P].</span>"
|
|
P.loc = src
|
|
storedcutter = P
|
|
update_icon()
|
|
return
|
|
if(istype(P, /obj/item/weapon/screwdriver) && storedcutter)
|
|
playsound(src, 'sound/items/Screwdriver.ogg', 50, 1)
|
|
user << "<span class='notice'>\The [storedcutter] has been [cuttersecured ? "unsecured" : "secured"].</span>"
|
|
cuttersecured = !cuttersecured
|
|
return
|
|
..()
|
|
|
|
|
|
/obj/item/weapon/papercutter/attack_hand(mob/user)
|
|
src.add_fingerprint(user)
|
|
if(!storedcutter)
|
|
user << "<span class='notice'>The cutting blade is gone! You can't use \the [src] now.</span>"
|
|
return
|
|
|
|
if(!cuttersecured)
|
|
user << "<span class='notice'>You remove [src]'s [storedcutter].</span>"
|
|
user.put_in_hands(storedcutter)
|
|
storedcutter = null
|
|
update_icon()
|
|
|
|
if(storedpaper)
|
|
playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1)
|
|
user << "<span class='notice'>You neatly cut \the [storedpaper].</span>"
|
|
storedpaper = null
|
|
qdel(storedpaper)
|
|
new /obj/item/weapon/paperslip(get_turf(src))
|
|
new /obj/item/weapon/paperslip(get_turf(src))
|
|
update_icon()
|
|
|
|
|
|
/obj/item/weapon/papercutter/MouseDrop(atom/over_object)
|
|
var/mob/M = usr
|
|
if(M.incapacitated() || !Adjacent(M))
|
|
return
|
|
|
|
if(over_object == M)
|
|
M.put_in_hands(src)
|
|
|
|
else if(istype(over_object, /obj/screen/inventory/hand))
|
|
var/obj/screen/inventory/hand/H = over_object
|
|
if(!remove_item_from_storage(M))
|
|
if(!M.unEquip(src))
|
|
return
|
|
M.put_in_hand(src, H.held_index)
|
|
add_fingerprint(M)
|
|
|
|
|
|
/obj/item/weapon/paperslip
|
|
name = "paper slip"
|
|
desc = "A little slip of paper left over after a larger piece was cut. Whoa."
|
|
icon_state = "paperslip"
|
|
icon = 'icons/obj/bureaucracy.dmi'
|
|
resistance_flags = 0
|
|
burntime = 3
|
|
|
|
/obj/item/weapon/paperslip/New()
|
|
..()
|
|
pixel_x = rand(-5, 5)
|
|
pixel_y = rand(-5, 5)
|
|
|
|
|
|
/obj/item/weapon/hatchet/cutterblade
|
|
name = "paper cutter"
|
|
desc = "The blade of a paper cutter. Most likely removed for polishing or sharpening."
|
|
icon = 'icons/obj/bureaucracy.dmi'
|
|
icon_state = "cutterblade"
|
|
item_state = "knife"
|