mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 03:25:49 +01:00
The modified Changeling mode should end properly now.
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
This commit is contained in:
@@ -157,8 +157,8 @@
|
||||
obj_count++
|
||||
return
|
||||
|
||||
/datum/game_mode/changeling/check_finished()
|
||||
/* var/changelings_alive = 0
|
||||
/*/datum/game_mode/changeling/check_finished()
|
||||
var/changelings_alive = 0
|
||||
for(var/datum/mind/changeling in changelings)
|
||||
if(!istype(changeling.current,/mob/living/carbon))
|
||||
continue
|
||||
@@ -176,8 +176,8 @@
|
||||
if(world.time-changelingdeathtime > TIME_TO_GET_REVIVED)
|
||||
return 1
|
||||
else
|
||||
return ..()*/
|
||||
return 0
|
||||
return ..()
|
||||
return 0*/
|
||||
|
||||
/datum/game_mode/proc/grant_changeling_powers(mob/living/carbon/human/changeling_mob)
|
||||
if (!istype(changeling_mob))
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
dat += "<A href='?src=\ref[src];inject1=\ref[C]'>(<font color=red>(1)</font>)</A>"
|
||||
dat += "<A href='?src=\ref[src];inject5=\ref[C]'>(<font color=red>(5)</font>)</A>"
|
||||
dat += "<A href='?src=\ref[src];inject10=\ref[C]'>(<font color=red>(10)</font>)</A><BR>"
|
||||
dat += "********************************<BR>"
|
||||
dat += "<HR>Tracking Implants<BR>"
|
||||
for(var/obj/item/weapon/implant/tracking/T in world)
|
||||
Tr = get_turf(T)
|
||||
@@ -51,6 +52,8 @@
|
||||
var/turf/mob_loc = get_turf_loc(M)
|
||||
loc_display = mob_loc.loc
|
||||
dat += "ID: [T.id] | Location: [loc_display]<BR>"
|
||||
dat += "<A href='?src=\ref[src];warn=\ref[T]'>(<font color=red><i>Message Holder</i></font>)</A> |<BR>"
|
||||
dat += "********************************<BR>"
|
||||
dat += "<HR><A href='?src=\ref[src];lock=1'>Lock Console</A>"
|
||||
|
||||
user << browse(dat, "window=computer;size=400x500")
|
||||
@@ -93,8 +96,9 @@
|
||||
else if(href_list["warn"])
|
||||
var/warning = input(usr,"Message:","Enter your message here!","")
|
||||
var/obj/item/weapon/implant/I = locate(href_list["warn"])
|
||||
var/mob/living/carbon/R = I.imp_in
|
||||
R << "\green You hear a voice in your head saying: '[warning]'"
|
||||
if((I)&&(I.imp_in))
|
||||
var/mob/living/carbon/R = I.imp_in
|
||||
R << "\green You hear a voice in your head saying: '[warning]'"
|
||||
|
||||
src.add_fingerprint(usr)
|
||||
src.updateUsrDialog()
|
||||
|
||||
@@ -441,13 +441,11 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
del(O)
|
||||
src.updateicon()
|
||||
|
||||
|
||||
|
||||
else if ( istype(O, /obj/item/weapon/reagent_containers/syringe)) // Syringe stuff
|
||||
else if(istype(O, /obj/item/weapon/reagent_containers/syringe)) // Syringe stuff
|
||||
var/obj/item/weapon/reagent_containers/syringe/S = O
|
||||
if (src.planted)
|
||||
if (S.mode == 1)
|
||||
if(!reagents.total_volume)
|
||||
if(!S.reagents.total_volume)
|
||||
user << "\red The syringe is empty."
|
||||
return
|
||||
user << "\red You inject the [src.myseed.plantname] with a chemical solution."
|
||||
|
||||
@@ -7,75 +7,79 @@
|
||||
icon_state = "candle1"
|
||||
item_state = "candle1"
|
||||
|
||||
var/wax = 100
|
||||
var/lit = 0
|
||||
|
||||
/obj/item/candle/update_icon()
|
||||
var/i
|
||||
if(wax>75)
|
||||
i = 1
|
||||
else if(wax>40)
|
||||
i = 2
|
||||
else i = 3
|
||||
icon_state = "candle[i][lit ? "_lit" : ""]"
|
||||
|
||||
/obj/item/candle/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()
|
||||
|
||||
|
||||
|
||||
/obj/item/candle/proc/light(var/flavor_text = "\red [usr] lights the [name].")
|
||||
if(!lit)
|
||||
lit = 1
|
||||
//src.damtype = "fire"
|
||||
for(var/mob/O in viewers(usr, null))
|
||||
O.show_message(flavor_text, 1)
|
||||
sd_SetLuminosity(CANDLE_LUM)
|
||||
spawn()
|
||||
src.process()
|
||||
|
||||
/obj/item/candle/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)
|
||||
|
||||
spawn(60)
|
||||
process()
|
||||
|
||||
/obj/item/candle/attack_self(mob/user as mob)
|
||||
if(lit)
|
||||
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()
|
||||
sd_SetLuminosity(0)
|
||||
user.sd_SetLuminosity(user.luminosity - CANDLE_LUM)
|
||||
if(istype(loc, /turf)) //start a fire if possible
|
||||
var/turf/T = loc
|
||||
T.hotspot_expose(700, 5)
|
||||
|
||||
/obj/item/candle/pickup(mob/user)
|
||||
if(lit)
|
||||
src.sd_SetLuminosity(0)
|
||||
user.sd_SetLuminosity(user.luminosity + CANDLE_LUM)
|
||||
|
||||
/obj/item/candle/dropped(mob/user)
|
||||
if(lit)
|
||||
user.sd_SetLuminosity(user.luminosity - CANDLE_LUM)
|
||||
src.sd_SetLuminosity(CANDLE_LUM)
|
||||
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)
|
||||
|
||||
|
||||
|
||||
///////////////
|
||||
|
||||
@@ -102,9 +102,17 @@ Implant Specifics:<BR>"}
|
||||
return dat
|
||||
|
||||
|
||||
trigger(emote, source as mob)
|
||||
if(emote == "deathgasp")
|
||||
src.activate("death")
|
||||
return
|
||||
|
||||
|
||||
activate(var/cause)
|
||||
if((!cause) || (!src.imp_in)) return 0
|
||||
//explode here
|
||||
explosion(src, -1, 0, 1, 3, 0)//This might be a bit much, dono will have to see.
|
||||
if(src.imp_in)
|
||||
src.imp_in.gib()
|
||||
|
||||
|
||||
|
||||
@@ -139,6 +147,12 @@ the implant may become unstable and either pre-maturely inject the subject or si
|
||||
R.my_atom = src
|
||||
|
||||
|
||||
trigger(emote, source as mob)
|
||||
if(emote == "deathgasp")
|
||||
src.activate(10)
|
||||
return
|
||||
|
||||
|
||||
activate(var/cause)
|
||||
if((!cause) || (!src.imp_in)) return 0
|
||||
var/mob/living/carbon/R = src.imp_in
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
else
|
||||
src.name = "Glass Case"
|
||||
else if(istype(I, /obj/item/weapon/reagent_containers/syringe))
|
||||
if(!src.imp) return
|
||||
if(!src.imp.allow_reagents) return
|
||||
if(src.imp.reagents.total_volume >= 10)
|
||||
user << "\red [src] is full."
|
||||
|
||||
@@ -37,6 +37,8 @@
|
||||
src.icon_state = "implanter0"
|
||||
return
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/implanter/loyalty
|
||||
name = "implanter-loyalty"
|
||||
|
||||
@@ -44,4 +46,15 @@
|
||||
src.imp = new /obj/item/weapon/implant/loyalty( src )
|
||||
..()
|
||||
update()
|
||||
return
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/implanter/explosive
|
||||
name = "implanter-explosive"
|
||||
|
||||
New()
|
||||
src.imp = new /obj/item/weapon/implant/explosive( src )
|
||||
..()
|
||||
update()
|
||||
return
|
||||
+1
-2
@@ -28,8 +28,7 @@
|
||||
M << S
|
||||
|
||||
/mob/proc/playsound_local(var/atom/source, soundin, vol as num, vary, extrarange as num)
|
||||
if(!src.client && ear_deaf > 0)
|
||||
return
|
||||
if(!src.client || ear_deaf > 0) return
|
||||
switch(soundin)
|
||||
if ("shatter") soundin = pick('Glassbr1.ogg','Glassbr2.ogg','Glassbr3.ogg')
|
||||
if ("explosion") soundin = pick('Explosion1.ogg','Explosion2.ogg')
|
||||
|
||||
Reference in New Issue
Block a user