Files
Paradise/code/game/objects/items/weapons/tape.dm
Tigercat2000 a8702efd6b BAYPORT: Duct Tape
This commit ports Duct Tape from bay, alongside a few other changes for
our own code.

Bay12 Features:
 - You can tape paper to.. anything basically, like a sticky note.

Changes from Bay12:
 - Tape is a stack now, and has 10 uses per roll.
 - The guitar recipe now calls for 5 pieces of tape.
2015-05-17 14:11:25 -07:00

113 lines
2.8 KiB
Plaintext

/obj/item/stack/tape_roll
name = "tape roll"
desc = "A roll of sticky tape. Possibly for taping ducks... or was that ducts?"
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "taperoll"
w_class = 1
amount = 10
max_amount = 10
/obj/item/stack/tape_roll/New(var/loc, var/amount=null)
..()
update_icon()
/* -- Disabled for now until it has a use --
/obj/item/stack/tape_roll/attack_self(mob/user as mob)
user << "You remove a length of tape from [src]."
var/obj/item/weapon/ducttape/tape = new()
user.put_in_hands(tape)
*/
/obj/item/stack/tape_roll/proc/stick(var/obj/item/weapon/W, mob/user)
if(!istype(W, /obj/item/weapon/paper))
return
user.unEquip(W)
var/obj/item/weapon/ducttape/tape = new(get_turf(src))
tape.attach(W)
user.put_in_hands(tape)
/obj/item/stack/tape_roll/update_icon()
var/amount = get_amount()
if((amount <= 2) && (amount > 0))
icon_state = "taperoll"
if((amount <= 4) && (amount > 2))
icon_state = "taperoll-2"
if((amount <= 6) && (amount > 4))
icon_state = "taperoll-3"
if((amount > 6))
icon_state = "taperoll-4"
else
icon_state = "taperoll-4"
/obj/item/weapon/ducttape
name = "tape"
desc = "A piece of sticky tape."
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "tape"
w_class = 1
layer = 4
anchored = 1 //it's sticky, no you cant move it
var/obj/item/weapon/stuck = null
/obj/item/weapon/ducttape/New()
..()
flags |= NOBLUDGEON
/obj/item/weapon/ducttape/examine(mob/user)
return stuck.examine(user)
/obj/item/weapon/ducttape/proc/attach(var/obj/item/weapon/W)
stuck = W
W.forceMove(src)
icon_state = W.icon_state + "_taped"
name = W.name + " (taped)"
overlays = W.overlays
/obj/item/weapon/ducttape/attack_self(mob/user)
if(!stuck)
return
user << "You remove \the [initial(name)] from [stuck]."
user.unEquip(src)
stuck.forceMove(get_turf(src))
user.put_in_hands(stuck)
stuck = null
overlays = null
qdel(src)
/obj/item/weapon/ducttape/afterattack(var/A, mob/user, flag, params)
if(!in_range(user, A) || istype(A, /obj/machinery/door) || !stuck)
return
var/turf/target_turf = get_turf(A)
var/turf/source_turf = get_turf(user)
var/dir_offset = 0
if(target_turf != source_turf)
dir_offset = get_dir(source_turf, target_turf)
if(!(dir_offset in cardinal))
user << "You cannot reach that from here." // can only place stuck papers in cardinal directions, to
return // reduce papers around corners issue.
user.unEquip(src)
forceMove(source_turf)
if(params)
var/list/mouse_control = params2list(params)
if(mouse_control["icon-x"])
pixel_x = text2num(mouse_control["icon-x"]) - 16
if(dir_offset & EAST)
pixel_x += 32
else if(dir_offset & WEST)
pixel_x -= 32
if(mouse_control["icon-y"])
pixel_y = text2num(mouse_control["icon-y"]) - 16
if(dir_offset & NORTH)
pixel_y += 32
else if(dir_offset & SOUTH)
pixel_y -= 32