mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 05:57:24 +01:00
TG: Changes alt+click to ctrl+click for pulling.
Adds an adminspawn pinpointer that points towards people and traitor objectives. Revision: r3172 Author: VivianFoxfoot
This commit is contained in:
@@ -11,22 +11,22 @@
|
||||
var/obj/item/weapon/disk/nuclear/the_disk = null
|
||||
var/active = 0
|
||||
|
||||
|
||||
attack_self()
|
||||
if(!active)
|
||||
active = 1
|
||||
work()
|
||||
workdisk()
|
||||
usr << "\blue You activate the pinpointer"
|
||||
else
|
||||
active = 0
|
||||
icon_state = "pinoff"
|
||||
usr << "\blue You deactivate the pinpointer"
|
||||
|
||||
proc/work()
|
||||
proc/workdisk()
|
||||
if(!active) return
|
||||
if(!the_disk)
|
||||
the_disk = locate()
|
||||
if(!the_disk)
|
||||
active = 0
|
||||
icon_state = "pinonnull"
|
||||
return
|
||||
src.dir = get_dir(src,the_disk)
|
||||
@@ -41,6 +41,140 @@
|
||||
icon_state = "pinonfar"
|
||||
spawn(5) .()
|
||||
|
||||
examine()
|
||||
..()
|
||||
for(var/obj/machinery/nuclearbomb/bomb in world)
|
||||
if(bomb.timing)
|
||||
usr << "Extreme danger. Arming signal detected. Time remaining: [bomb.timeleft]"
|
||||
|
||||
|
||||
/obj/item/weapon/pinpointer/advpinpointer
|
||||
name = "Advanced Pinpointer"
|
||||
icon = 'device.dmi'
|
||||
desc = "A larger version of the normal pinpointer, this unit features a helpful quantum entanglement detection system to locate various objects that do not broadcast a locator signal."
|
||||
var/mode = 0 // Mode 0 locates disk, mode 1 locates coordinates.
|
||||
var/turf/location = null
|
||||
var/obj/target = null
|
||||
|
||||
attack_self()
|
||||
if(!active)
|
||||
active = 1
|
||||
if(mode == 0)
|
||||
workdisk()
|
||||
if(mode == 1)
|
||||
worklocation()
|
||||
if(mode == 2)
|
||||
workobj()
|
||||
usr << "\blue You activate the pinpointer"
|
||||
else
|
||||
active = 0
|
||||
icon_state = "pinoff"
|
||||
usr << "\blue You deactivate the pinpointer"
|
||||
|
||||
|
||||
proc/worklocation()
|
||||
if(!active)
|
||||
return
|
||||
if(!location)
|
||||
icon_state = "pinonnull"
|
||||
return
|
||||
src.dir = get_dir(src,location)
|
||||
switch(get_dist(src,location))
|
||||
if(0)
|
||||
icon_state = "pinondirect"
|
||||
if(1 to 8)
|
||||
icon_state = "pinonclose"
|
||||
if(9 to 16)
|
||||
icon_state = "pinonmedium"
|
||||
if(16 to INFINITY)
|
||||
icon_state = "pinonfar"
|
||||
spawn(5) .()
|
||||
|
||||
|
||||
proc/workobj()
|
||||
if(!active)
|
||||
return
|
||||
if(!target)
|
||||
icon_state = "pinonnull"
|
||||
return
|
||||
src.dir = get_dir(src,target)
|
||||
switch(get_dist(src,target))
|
||||
if(0)
|
||||
icon_state = "pinondirect"
|
||||
if(1 to 8)
|
||||
icon_state = "pinonclose"
|
||||
if(9 to 16)
|
||||
icon_state = "pinonmedium"
|
||||
if(16 to INFINITY)
|
||||
icon_state = "pinonfar"
|
||||
spawn(5) .()
|
||||
|
||||
/obj/item/weapon/pinpointer/advpinpointer/verb/toggle_mode()
|
||||
set category = "Object"
|
||||
set name = "Toggle Pinpointer Mode"
|
||||
set src in view(1)
|
||||
|
||||
active = 0
|
||||
icon_state = "pinoff"
|
||||
target=null
|
||||
location = null
|
||||
|
||||
switch(alert("Please select the mode you want to put the pinpointer in.", "Pinpointer Mode Select", "Location", "Disk Recovery", "Other Signature"))
|
||||
if("Location")
|
||||
mode = 1
|
||||
|
||||
var/locationx = input(usr, "Please input the x coordinate to search for.", "Location?" , "") as num
|
||||
if(!locationx || !(usr in view(1,src)))
|
||||
return
|
||||
var/locationy = input(usr, "Please input the y coordinate to search for.", "Location?" , "") as num
|
||||
if(!locationy || !(usr in view(1,src)))
|
||||
return
|
||||
|
||||
var/turf/Z = get_turf(src)
|
||||
|
||||
location = locate(locationx,locationy,Z.z)
|
||||
|
||||
usr << "You set the pinpointer to locate [locationx],[locationy]"
|
||||
|
||||
|
||||
return attack_self()
|
||||
|
||||
if("Disk Recovery")
|
||||
mode = 0
|
||||
return attack_self()
|
||||
|
||||
if("Other Signature")
|
||||
mode = 2
|
||||
switch(alert("Search for item signature or DNA fragment?" , "Signature Mode Select" , "" , "Item" , "DNA"))
|
||||
if("Item")
|
||||
var/datum/objective/steal/itemlist
|
||||
itemlist = itemlist // To supress a 'variable defined but not used' error.
|
||||
var/targetitem = input("Select item to search for.", "Item Mode Select","") as null|anything in itemlist.possible_items
|
||||
if(!targetitem)
|
||||
return
|
||||
target=locate(itemlist.possible_items[targetitem])
|
||||
if(!target)
|
||||
usr << "Failed to locate [targetitem]!"
|
||||
return
|
||||
usr << "You set the pinpointer to locate [targetitem]"
|
||||
if("DNA")
|
||||
var/DNAstring = input("Input DNA string to search for." , "Please Enter String." , "")
|
||||
if(!DNAstring)
|
||||
return
|
||||
for(var/mob/living/carbon/M in world)
|
||||
if(!M.dna)
|
||||
continue
|
||||
if(M.dna.unique_enzymes == DNAstring)
|
||||
target = M
|
||||
break
|
||||
|
||||
return attack_self()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*/obj/item/weapon/pinpointer/New()
|
||||
. = ..()
|
||||
|
||||
Reference in New Issue
Block a user