mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-12 02:12:55 +00:00
Moves them away from 'tie' legacy - path change, and different code files. Changed single hastie var into accessories list, to allow multiple articles worn at same time. Updated all affected places in code to work with it. Currently any number of decorative accessories can be attached, one utility (holster/webbing) and one armband.
191 lines
5.2 KiB
Plaintext
191 lines
5.2 KiB
Plaintext
/* Gifts and wrapping paper
|
|
* Contains:
|
|
* Gifts
|
|
* Wrapping Paper
|
|
*/
|
|
|
|
/*
|
|
* Gifts
|
|
*/
|
|
/obj/item/weapon/a_gift
|
|
name = "gift"
|
|
desc = "PRESENTS!!!! eek!"
|
|
icon = 'icons/obj/items.dmi'
|
|
icon_state = "gift1"
|
|
item_state = "gift1"
|
|
|
|
/obj/item/weapon/a_gift/New()
|
|
..()
|
|
pixel_x = rand(-10,10)
|
|
pixel_y = rand(-10,10)
|
|
if(w_class > 0 && w_class < 4)
|
|
icon_state = "gift[w_class]"
|
|
else
|
|
icon_state = "gift[pick(1, 2, 3)]"
|
|
return
|
|
|
|
/obj/item/weapon/gift/attack_self(mob/user as mob)
|
|
user.drop_item()
|
|
if(src.gift)
|
|
user.put_in_active_hand(gift)
|
|
src.gift.add_fingerprint(user)
|
|
else
|
|
user << "\blue The gift was empty!"
|
|
del(src)
|
|
return
|
|
|
|
/obj/item/weapon/a_gift/ex_act()
|
|
del(src)
|
|
return
|
|
|
|
/obj/effect/spresent/relaymove(mob/user as mob)
|
|
if (user.stat)
|
|
return
|
|
user << "\blue You cant move."
|
|
|
|
/obj/effect/spresent/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
..()
|
|
|
|
if (!istype(W, /obj/item/weapon/wirecutters))
|
|
user << "\blue I need wirecutters for that."
|
|
return
|
|
|
|
user << "\blue You cut open the present."
|
|
|
|
for(var/mob/M in src) //Should only be one but whatever.
|
|
M.loc = src.loc
|
|
if (M.client)
|
|
M.client.eye = M.client.mob
|
|
M.client.perspective = MOB_PERSPECTIVE
|
|
|
|
del(src)
|
|
|
|
/obj/item/weapon/a_gift/attack_self(mob/M as mob)
|
|
var/gift_type = pick(/obj/item/weapon/sord,
|
|
/obj/item/weapon/storage/wallet,
|
|
/obj/item/weapon/storage/photo_album,
|
|
/obj/item/weapon/storage/box/snappops,
|
|
/obj/item/weapon/storage/fancy/crayons,
|
|
/obj/item/weapon/storage/backpack/holding,
|
|
/obj/item/weapon/storage/belt/champion,
|
|
/obj/item/weapon/soap/deluxe,
|
|
/obj/item/weapon/pickaxe/silver,
|
|
/obj/item/weapon/pen/invisible,
|
|
/obj/item/weapon/lipstick/random,
|
|
/obj/item/weapon/grenade/smokebomb,
|
|
/obj/item/weapon/corncob,
|
|
/obj/item/weapon/contraband/poster,
|
|
/obj/item/weapon/book/manual/barman_recipes,
|
|
/obj/item/weapon/book/manual/chef_recipes,
|
|
/obj/item/weapon/bikehorn,
|
|
/obj/item/weapon/beach_ball,
|
|
/obj/item/weapon/beach_ball/holoball,
|
|
/obj/item/weapon/banhammer,
|
|
/obj/item/toy/balloon,
|
|
/obj/item/toy/blink,
|
|
/obj/item/toy/crossbow,
|
|
/obj/item/toy/gun,
|
|
/obj/item/toy/katana,
|
|
/obj/item/toy/prize/deathripley,
|
|
/obj/item/toy/prize/durand,
|
|
/obj/item/toy/prize/fireripley,
|
|
/obj/item/toy/prize/gygax,
|
|
/obj/item/toy/prize/honk,
|
|
/obj/item/toy/prize/marauder,
|
|
/obj/item/toy/prize/mauler,
|
|
/obj/item/toy/prize/odysseus,
|
|
/obj/item/toy/prize/phazon,
|
|
/obj/item/toy/prize/ripley,
|
|
/obj/item/toy/prize/seraph,
|
|
/obj/item/toy/spinningtoy,
|
|
/obj/item/toy/sword,
|
|
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus,
|
|
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris,
|
|
/obj/item/device/paicard,
|
|
/obj/item/device/violin,
|
|
/obj/item/weapon/storage/belt/utility/full,
|
|
/obj/item/clothing/accessory/horrible)
|
|
|
|
if(!ispath(gift_type,/obj/item)) return
|
|
|
|
var/obj/item/I = new gift_type(M)
|
|
M.u_equip(src)
|
|
M.put_in_hands(I)
|
|
I.add_fingerprint(M)
|
|
del(src)
|
|
return
|
|
|
|
/*
|
|
* Wrapping Paper
|
|
*/
|
|
/obj/item/weapon/wrapping_paper
|
|
name = "wrapping paper"
|
|
desc = "You can use this to wrap items in."
|
|
icon = 'icons/obj/items.dmi'
|
|
icon_state = "wrap_paper"
|
|
var/amount = 20.0
|
|
|
|
/obj/item/weapon/wrapping_paper/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
..()
|
|
if (!( locate(/obj/structure/table, src.loc) ))
|
|
user << "\blue You MUST put the paper on a table!"
|
|
if (W.w_class < 4)
|
|
if ((istype(user.l_hand, /obj/item/weapon/wirecutters) || istype(user.r_hand, /obj/item/weapon/wirecutters)))
|
|
var/a_used = 2 ** (src.w_class - 1)
|
|
if (src.amount < a_used)
|
|
user << "\blue You need more paper!"
|
|
return
|
|
else
|
|
if(istype(W, /obj/item/smallDelivery) || istype(W, /obj/item/weapon/gift)) //No gift wrapping gifts!
|
|
return
|
|
|
|
src.amount -= a_used
|
|
user.drop_item()
|
|
var/obj/item/weapon/gift/G = new /obj/item/weapon/gift( src.loc )
|
|
G.size = W.w_class
|
|
G.w_class = G.size + 1
|
|
G.icon_state = text("gift[]", G.size)
|
|
G.gift = W
|
|
W.loc = G
|
|
G.add_fingerprint(user)
|
|
W.add_fingerprint(user)
|
|
src.add_fingerprint(user)
|
|
if (src.amount <= 0)
|
|
new /obj/item/weapon/c_tube( src.loc )
|
|
del(src)
|
|
return
|
|
else
|
|
user << "\blue You need scissors!"
|
|
else
|
|
user << "\blue The object is FAR too large!"
|
|
return
|
|
|
|
|
|
/obj/item/weapon/wrapping_paper/examine(mob/user)
|
|
if(..(user, 1))
|
|
user << text("There is about [] square units of paper left!", src.amount)
|
|
|
|
/obj/item/weapon/wrapping_paper/attack(mob/target as mob, mob/user as mob)
|
|
if (!istype(target, /mob/living/carbon/human)) return
|
|
var/mob/living/carbon/human/H = target
|
|
|
|
if (istype(H.wear_suit, /obj/item/clothing/suit/straight_jacket) || H.stat)
|
|
if (src.amount > 2)
|
|
var/obj/effect/spresent/present = new /obj/effect/spresent (H.loc)
|
|
src.amount -= 2
|
|
|
|
if (H.client)
|
|
H.client.perspective = EYE_PERSPECTIVE
|
|
H.client.eye = present
|
|
|
|
H.loc = present
|
|
|
|
H.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been wrapped with [src.name] by [user.name] ([user.ckey])</font>")
|
|
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to wrap [H.name] ([H.ckey])</font>")
|
|
msg_admin_attack("[key_name(user)] used [src] to wrap [key_name(H)]")
|
|
|
|
else
|
|
user << "\blue You need more paper."
|
|
else
|
|
user << "They are moving around too much. A straightjacket would help."
|