mirror of
https://github.com/CHOMPstation/CHOMPstation.git
synced 2026-08-28 06:26:29 +01:00
Improves tracking implant code, adds a tracking implant variant to the loadout
This commit is contained in:
@@ -69,8 +69,37 @@
|
||||
/obj/item/weapon/implant/tracking
|
||||
name = "tracking implant"
|
||||
desc = "Track with this."
|
||||
var/id = 1.0
|
||||
var/id = 1
|
||||
var/degrade_time = 10 MINUTES //How long before the implant stops working outside of a living body.
|
||||
|
||||
/obj/item/weapon/implant/tracking/weak //This is for the loadout
|
||||
degrade_time = 2.5 MINUTES
|
||||
|
||||
/obj/item/weapon/implant/tracking/New()
|
||||
id = rand(1, 1000)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/implant/tracking/implanted(var/mob/source)
|
||||
processing_objects.Add(src)
|
||||
listening_objects |= src
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/implant/tracking/Destroy()
|
||||
processing_objects.Remove(src)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/implant/tracking/process()
|
||||
var/implant_location = src.loc
|
||||
if(ismob(implant_location))
|
||||
var/mob/living/L = implant_location
|
||||
if(L.stat == 2)
|
||||
if(world.time >= L.timeofdeath + degrade_time)
|
||||
name = "melted implant"
|
||||
desc = "Charred circuit in melted plastic case. Wonder what that used to be..."
|
||||
icon_state = "implant_melted"
|
||||
malfunction = MALFUNCTION_PERMANENT
|
||||
processing_objects.Remove(src)
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/implant/tracking/get_data()
|
||||
var/dat = {"<b>Implant Specifications:</b><BR>
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
if (href_list["tracking_id"])
|
||||
var/obj/item/weapon/implant/tracking/T = src.case.imp
|
||||
T.id += text2num(href_list["tracking_id"])
|
||||
T.id = min(100, T.id)
|
||||
T.id = min(1000, T.id)
|
||||
T.id = max(1, T.id)
|
||||
|
||||
if (istype(src.loc, /mob))
|
||||
|
||||
@@ -79,13 +79,8 @@ Frequency:
|
||||
|
||||
src.temp += "<B>Extranneous Signals:</B><BR>"
|
||||
for (var/obj/item/weapon/implant/tracking/W in world)
|
||||
if (!W.implanted || !(istype(W.loc,/obj/item/organ/external) || ismob(W.loc)))
|
||||
if (!W.implanted || !(istype(W.loc,/obj/item/organ/external) || ismob(W.loc) || W.malfunction))
|
||||
continue
|
||||
else
|
||||
var/mob/M = W.loc
|
||||
if (M.stat == 2)
|
||||
if (M.timeofdeath + 6000 < world.time)
|
||||
continue
|
||||
|
||||
var/turf/tr = get_turf(W)
|
||||
if (tr.z == sr.z && tr)
|
||||
|
||||
@@ -76,12 +76,17 @@
|
||||
display_name = "cell, device"
|
||||
path = /obj/item/weapon/cell/device
|
||||
|
||||
/datum/gear/utility/implant //This does nothing if you don't actually know EAL.
|
||||
/datum/gear/utility/implant/eal //This does nothing if you don't actually know EAL.
|
||||
display_name = "implant, language, EAL"
|
||||
path = /obj/item/weapon/implant/language/eal
|
||||
cost = 2
|
||||
slot = "implant"
|
||||
var/implant_type = "EAL"
|
||||
|
||||
/datum/gear/utility/implant/tracking
|
||||
display_name = "implant, tracking"
|
||||
path = /obj/item/weapon/implant/tracking/weak
|
||||
cost = 10
|
||||
slot = "implant"
|
||||
|
||||
/datum/gear/utility/translator
|
||||
display_name = "universal translator"
|
||||
|
||||
@@ -1649,12 +1649,13 @@
|
||||
|
||||
for(var/obj/item/weapon/implant/I in src)
|
||||
if(I.implanted)
|
||||
if(istype(I,/obj/item/weapon/implant/tracking))
|
||||
holder1.icon_state = "hud_imp_tracking"
|
||||
if(istype(I,/obj/item/weapon/implant/loyalty))
|
||||
holder2.icon_state = "hud_imp_loyal"
|
||||
if(istype(I,/obj/item/weapon/implant/chem))
|
||||
holder3.icon_state = "hud_imp_chem"
|
||||
if(!I.malfunction)
|
||||
if(istype(I,/obj/item/weapon/implant/tracking))
|
||||
holder1.icon_state = "hud_imp_tracking"
|
||||
if(istype(I,/obj/item/weapon/implant/loyalty))
|
||||
holder2.icon_state = "hud_imp_loyal"
|
||||
if(istype(I,/obj/item/weapon/implant/chem))
|
||||
holder3.icon_state = "hud_imp_chem"
|
||||
|
||||
hud_list[IMPTRACK_HUD] = holder1
|
||||
hud_list[IMPLOYAL_HUD] = holder2
|
||||
|
||||
Reference in New Issue
Block a user