mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-21 11:07:46 +01:00
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1392 316c924e-a436-60f5-8080-3fe189b3f50e
286 lines
8.0 KiB
Plaintext
286 lines
8.0 KiB
Plaintext
/*
|
|
CONTAINS:
|
|
MATCHES
|
|
MATCHBOXES
|
|
CIGARETTES
|
|
CIG PACKET
|
|
ZIPPO
|
|
*/
|
|
|
|
///////////
|
|
//MATCHES//
|
|
///////////
|
|
|
|
/obj/item/weapon/match/process()
|
|
while(src.lit == 1)
|
|
src.smoketime--
|
|
sleep(10)
|
|
if(src.smoketime < 1)
|
|
src.icon_state = "match_burnt"
|
|
src.lit = -1
|
|
return
|
|
|
|
/obj/item/weapon/match/dropped(mob/user as mob)
|
|
if(src.lit == 1)
|
|
src.lit = -1
|
|
src.damtype = "brute"
|
|
src.icon_state = "match_burnt"
|
|
src.item_state = "cigoff"
|
|
src.name = "Burnt match"
|
|
src.desc = "A match that has been burnt"
|
|
return ..()
|
|
|
|
//////////////
|
|
//MATCHBOXES//
|
|
//////////////
|
|
/obj/item/weapon/matchbox/attack_hand(mob/user as mob)
|
|
if(user.r_hand == src || user.l_hand == src)
|
|
if(src.matchcount <= 0)
|
|
user << "\red You're out of matches. Shouldn't have wasted so many..."
|
|
return
|
|
else
|
|
src.matchcount--
|
|
var/obj/item/weapon/match/W = new /obj/item/weapon/match(user)
|
|
if(user.hand)
|
|
user.l_hand = W
|
|
else
|
|
user.r_hand = W
|
|
W.layer = 20
|
|
else
|
|
return ..()
|
|
if(src.matchcount <= 0)
|
|
src.icon_state = "matchbox_empty"
|
|
else if(src.matchcount <= 3)
|
|
src.icon_state = "matchbox_almostempty"
|
|
else if(src.matchcount <= 6)
|
|
src.icon_state = "matchbox_almostfull"
|
|
else
|
|
src.icon_state = "matchbox"
|
|
src.update_icon()
|
|
return
|
|
|
|
obj/item/weapon/matchbox.attackby(obj/item/weapon/match/W as obj, mob/user as mob)
|
|
if(istype(W, /obj/item/weapon/match) && W.lit == 0)
|
|
W.lit = 1
|
|
W.icon_state = "match_lit"
|
|
W.process()
|
|
W.update_icon()
|
|
return
|
|
|
|
|
|
///////////////////////
|
|
//CIGARETTES + CIGARS//
|
|
///////////////////////
|
|
/obj/item/clothing/mask/cigarette/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
..()
|
|
if(istype(W, /obj/item/weapon/weldingtool) && W:welding)
|
|
light("\red [user] casually lights the [name] with [W], what a badass.")
|
|
/* if(src.lit == 0)
|
|
src.lit = 1
|
|
src.damtype = "fire"
|
|
src.icon_state = icon_on
|
|
src.item_state = icon_on
|
|
for(var/mob/O in viewers(user, null))
|
|
O.show_message(text("\red [] casually lights the [] with [], what a badass.", user, src.name, W), 1)
|
|
spawn() //start fires while it's lit
|
|
src.process()*/
|
|
else if(istype(W, /obj/item/weapon/zippo) && W:lit)
|
|
light("\red With a single flick of their wrist, [user] smoothly lights their [name] with their [W]. Damn they're cool.")
|
|
/* if(src.lit == 0)
|
|
src.lit = 1
|
|
src.icon_state = icon_on
|
|
src.item_state = icon_on
|
|
for(var/mob/O in viewers(user, null))
|
|
O.show_message(text("\red With a single flick of their wrist, [] smoothly lights their [] with their []. Damn they're cool.", user, src.name, W), 1)
|
|
spawn() //start fires while it's lit
|
|
src.process()*/
|
|
else if(istype(W, /obj/item/weapon/match) && W:lit)
|
|
light("\red [user] lights their [name] with their [W]. How poor can you get?")
|
|
/* if(src.lit == 0)
|
|
src.lit = 1
|
|
src.icon_state = icon_on
|
|
src.item_state = icon_on
|
|
for(var/mob/O in viewers(user, null))
|
|
O.show_message(text("\red [] lights their [] with their []. How poor can you get?", user, src.name, W), 1)
|
|
spawn() //start fires while it's lit
|
|
src.process()*/
|
|
|
|
/obj/item/clothing/mask/cigarette/proc/light(var/flavor_text = "[usr] lights the [name].")
|
|
if(!src.lit)
|
|
src.lit = 1
|
|
src.damtype = "fire"
|
|
src.icon_state = icon_on
|
|
src.item_state = icon_on
|
|
for(var/mob/O in viewers(usr, null))
|
|
O.show_message(flavor_text, 1)
|
|
spawn()
|
|
src.process()
|
|
|
|
/obj/item/clothing/mask/cigarette/process()
|
|
|
|
var/atom/lastHolder = null
|
|
|
|
while(src.lit == 1)
|
|
var/turf/location = src.loc
|
|
var/atom/holder = loc
|
|
var/isHeld = 0
|
|
var/mob/M = null
|
|
src.smoketime--
|
|
|
|
if(istype(location, /mob/))
|
|
M = location
|
|
if(M.l_hand == src || M.r_hand == src || M.wear_mask == src)
|
|
location = M.loc
|
|
if(src.smoketime < 1)
|
|
if (istype(src,/obj/item/clothing/mask/cigarette/cigar))
|
|
var/obj/item/weapon/cigbutt/C = new /obj/item/weapon/cigarbutt
|
|
C.loc = location
|
|
else
|
|
var/obj/item/weapon/cigbutt/C = new /obj/item/weapon/cigbutt
|
|
C.loc = location
|
|
if(M != null)
|
|
M << "\red Your [src.name] goes out."
|
|
del(src)
|
|
return
|
|
if (istype(location, /turf)) //start a fire if possible
|
|
location.hotspot_expose(700, 5)
|
|
if (ismob(holder))
|
|
isHeld = 1
|
|
else
|
|
|
|
|
|
|
|
|
|
// note remove luminosity processing until can understand how to make this compatible
|
|
// with the fire checks, etc.
|
|
|
|
isHeld = 0
|
|
if (lastHolder != null)
|
|
//lastHolder.sd_SetLuminosity(0)
|
|
lastHolder = null
|
|
|
|
if (isHeld == 1)
|
|
//if (holder != lastHolder && lastHolder != null)
|
|
//lastHolder.sd_SetLuminosity(0)
|
|
//holder.sd_SetLuminosity(1)
|
|
lastHolder = holder
|
|
|
|
//sd_SetLuminosity(1)
|
|
sleep(10)
|
|
|
|
if (lastHolder != null)
|
|
//lastHolder.sd_SetLuminosity(0)
|
|
lastHolder = null
|
|
|
|
//sd_SetLuminosity(0)
|
|
|
|
|
|
/obj/item/clothing/mask/cigarette/dropped(mob/user as mob)
|
|
if(src.lit == 1)
|
|
for(var/mob/O in viewers(user, null))
|
|
O.show_message(text("\red [] calmly drops and treads on the lit [], putting it out instantly.", user,src.name), 1)
|
|
src.lit = -1
|
|
src.damtype = "brute"
|
|
src.icon_state = icon_butt
|
|
src.item_state = icon_off
|
|
src.desc = "A [src.name] butt."
|
|
src.name = "[src.name] butt"
|
|
return ..()
|
|
else
|
|
for(var/mob/O in viewers(user, null))
|
|
O.show_message(text("\red [] drops the []. Guess they've had enough for the day.", user, src), 1)
|
|
return ..()
|
|
|
|
////////////
|
|
//CIG PACK//
|
|
////////////
|
|
|
|
/obj/item/weapon/cigpacket/update_icon()
|
|
src.icon_state = text("cigpacket[]", src.cigcount)
|
|
src.desc = text("There are [] cigs\s left!", src.cigcount)
|
|
return
|
|
|
|
/obj/item/weapon/cigpacket/attack_hand(mob/user as mob)
|
|
if(user.r_hand == src || user.l_hand == src)
|
|
if(src.cigcount == 0)
|
|
user << "\red You're out of cigs, shit! How you gonna get through the rest of the day..."
|
|
return
|
|
else
|
|
src.cigcount--
|
|
var/obj/item/clothing/mask/cigarette/W = new /obj/item/clothing/mask/cigarette(user)
|
|
if(user.hand)
|
|
user.l_hand = W
|
|
else
|
|
user.r_hand = W
|
|
W.layer = 20
|
|
else
|
|
return ..()
|
|
src.update_icon()
|
|
return
|
|
|
|
/////////
|
|
//ZIPPO//
|
|
/////////
|
|
#define ZIPPO_LUM 2
|
|
|
|
/obj/item/weapon/zippo/attack_self(mob/user)
|
|
if(user.r_hand == src || user.l_hand == src)
|
|
if(!src.lit)
|
|
src.lit = 1
|
|
src.icon_state = "zippoon"
|
|
src.item_state = "zippoon"
|
|
for(var/mob/O in viewers(user, null))
|
|
O.show_message(text("\red Without even breaking stride, [] flips open and lights the [] in one smooth movement.", user, src), 1)
|
|
|
|
user.sd_SetLuminosity(user.luminosity + ZIPPO_LUM)
|
|
spawn(0)
|
|
process()
|
|
else
|
|
src.lit = 0
|
|
src.icon_state = "zippo"
|
|
src.item_state = "zippo"
|
|
for(var/mob/O in viewers(user, null))
|
|
O.show_message(text("\red You hear a quiet click, as [] shuts off the [] without even looking what they're doing. Wow.", user, src), 1)
|
|
|
|
user.sd_SetLuminosity(user.luminosity - ZIPPO_LUM)
|
|
else
|
|
return ..()
|
|
return
|
|
|
|
/obj/item/weapon/zippo/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
|
|
if(!istype(M, /mob))
|
|
return
|
|
|
|
if(istype(M.wear_mask,/obj/item/clothing/mask/cigarette) && user.zone_sel.selecting == "mouth" && src.lit)
|
|
if(M == user)
|
|
M.wear_mask:light("\red With a single flick of their wrist, [user] smoothly lights their [M.wear_mask.name] with their [src.name]. Damn they're cool.")
|
|
else
|
|
M.wear_mask:light("\red [user] whips the [src.name] out and holds it for [M]. Their arm is as steady as the unflickering flame they light the [M.wear_mask.name] with.")
|
|
else
|
|
..()
|
|
|
|
/obj/item/weapon/zippo/process()
|
|
|
|
while(src.lit)
|
|
var/turf/location = src.loc
|
|
|
|
if(istype(location, /mob/))
|
|
var/mob/M = location
|
|
if(M.l_hand == src || M.r_hand == src)
|
|
location = M.loc
|
|
if (istype(location, /turf))
|
|
location.hotspot_expose(700, 5)
|
|
sleep(10)
|
|
|
|
|
|
/obj/item/weapon/zippo/pickup(mob/user)
|
|
if(lit)
|
|
src.sd_SetLuminosity(0)
|
|
user.sd_SetLuminosity(user.luminosity + ZIPPO_LUM)
|
|
|
|
|
|
|
|
/obj/item/weapon/zippo/dropped(mob/user)
|
|
if(lit)
|
|
user.sd_SetLuminosity(user.luminosity - ZIPPO_LUM)
|
|
src.sd_SetLuminosity(ZIPPO_LUM) |