b471da4ed4
Tracking implants can now be used to message the holder. Mini Readme update. Explosive implants will explode when the host dies. Might try and wrap these into nuke or as a new traitor item. Added a play local sound proc. Fixed most of the runtimes in the latest log. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2074 316c924e-a436-60f5-8080-3fe189b3f50e
121 lines
2.7 KiB
Plaintext
121 lines
2.7 KiB
Plaintext
#define CANDLE_LUM 3
|
|
|
|
/obj/item/candle
|
|
name = "red candle"
|
|
desc = "a candle"
|
|
icon = 'candle.dmi'
|
|
icon_state = "candle1"
|
|
item_state = "candle1"
|
|
|
|
var
|
|
wax = 100
|
|
lit = 0
|
|
proc
|
|
light(var/flavor_text = "\red [usr] lights the [name].")
|
|
|
|
|
|
update_icon()
|
|
var/i
|
|
if(wax>75)
|
|
i = 1
|
|
else if(wax>40)
|
|
i = 2
|
|
else i = 3
|
|
icon_state = "candle[i][lit ? "_lit" : ""]"
|
|
|
|
|
|
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.")
|
|
else if(istype(W, /obj/item/weapon/zippo) && W:lit)
|
|
light()
|
|
else if(istype(W, /obj/item/weapon/match) && W:lit)
|
|
light()
|
|
else if(istype(W, /obj/item/candle) && W:lit)
|
|
light()
|
|
|
|
|
|
light(var/flavor_text = "\red [usr] lights the [name].")
|
|
if(!src.lit)
|
|
src.lit = 1
|
|
//src.damtype = "fire"
|
|
for(var/mob/O in viewers(usr, null))
|
|
O.show_message(flavor_text, 1)
|
|
sd_SetLuminosity(CANDLE_LUM)
|
|
processing_items.Add(src)
|
|
|
|
|
|
process()
|
|
if(!lit)
|
|
return
|
|
wax--
|
|
if(!wax)
|
|
new/obj/item/trash/candle(src.loc)
|
|
if(istype(src.loc, /mob))
|
|
src.dropped()
|
|
del(src)
|
|
update_icon()
|
|
if(istype(loc, /turf)) //start a fire if possible
|
|
var/turf/T = loc
|
|
T.hotspot_expose(700, 5)
|
|
|
|
|
|
attack_self(mob/user as mob)
|
|
if(lit)
|
|
lit = 0
|
|
update_icon()
|
|
sd_SetLuminosity(0)
|
|
user.sd_SetLuminosity(user.luminosity - CANDLE_LUM)
|
|
|
|
|
|
pickup(mob/user)
|
|
if(lit)
|
|
src.sd_SetLuminosity(0)
|
|
user.sd_SetLuminosity(user.luminosity + CANDLE_LUM)
|
|
|
|
|
|
dropped(mob/user)
|
|
if(lit)
|
|
user.sd_SetLuminosity(user.luminosity - CANDLE_LUM)
|
|
src.sd_SetLuminosity(CANDLE_LUM)
|
|
|
|
|
|
|
|
///////////////
|
|
//CANDLE PACK//
|
|
///////////////
|
|
/obj/item/weapon/candlepack
|
|
name = "Candle pack"
|
|
//desc = "The most popular brand of Space Cigarettes, sponsors of the Space Olympics."
|
|
icon = 'candle.dmi'
|
|
icon_state = "pack5"
|
|
item_state = "pack5"
|
|
w_class = 1
|
|
throwforce = 2
|
|
var/candlecount = 5
|
|
flags = ONBELT | TABLEPASS
|
|
|
|
|
|
/obj/item/weapon/candlepack/update_icon()
|
|
src.icon_state = text("pack[]", src.candlecount)
|
|
src.desc = text("There are [] candles left!", src.candlecount)
|
|
return
|
|
|
|
/obj/item/weapon/candlepack/attack_hand(mob/user as mob)
|
|
if(user.r_hand == src || user.l_hand == src)
|
|
if(src.candlecount == 0)
|
|
//user << "\red You're out of cigs, shit! How you gonna get through the rest of the day..."
|
|
return
|
|
else
|
|
src.candlecount--
|
|
var/obj/item/candle/W = new /obj/item/candle(user)
|
|
if(user.hand)
|
|
user.l_hand = W
|
|
else
|
|
user.r_hand = W
|
|
W.layer = 20
|
|
else
|
|
return ..()
|
|
src.update_icon()
|
|
return |