Thread Rating:
  • 3 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Feature] Pod Sensors: Active target tracking and gps coordinate locating
#1
This is sort of a two for one patch.
Part 1:
  • Adds some new functionality to the sensor systems. When you open up the sensors browser window and display the names of the pods and drones near you, you can now click on the names and a little HUD object will appear around your pod pointing you towards your target.
  • You can also lock onto target pods just by clicking on them. 
  • If someone locks onto your pod, a button pops up in the bottom right of your screen alerting you. At the present, it doesn't give you any more information than that. I was considering expanding it to let the user see how many pods are tracking it or what the names of them are but I dunno.
  • Each sensor ship-component type has always a specific range for how far out they can scan for ships. Default is 30 tiles. You can track a target with the HUD object rotating around your pod and pointing at the target as long as you are in this range. If the target is further out, then the HUD element turns into a single flashing dot and will not rotate but retain it's angle around your pod where you lost track of it. If the target goes off your Z-level or is more than double your sensor range away from you, you will lose the signal completely. 
  • You can turn off your engine or run at less than 10% of your maximum power capacity (which is determined by your pod's engine), in order to shake the track. It will require people be 3 times closer than their max sensor range to stay locked onto you.
Part 2: The Space GPS
[Image: shUrHgG.gif]
  • Adds a new sprite for the Space GPS that works a lot more like how the nuke disk pinpointer and ID trackers currently work. 
  • Enter some coordinates (X,Y). And it will display an arrow pointing in the direction nearest to the target.
Technical Notes:
  • All new sprites are located in new_stuff.dmi and most of the code points to that location, but you will see changes to pod_HUD.dmi cause I couldn't be bothered to change it to that location everywhere. The GPS sprite should probably be placed in devices.dmi. And I have some alternates for the "Master Caution" warning sprite. Couldn't really get it great with a border I wanted so I just settled for what I had.
  • Changed the var/list/shiplist in sensor.dm to var/list/obj/shiplist to make some things easier on the browser drawing, but the rest is really all additions instead of changes.
  • The tracking loop in proc/track_target() I tried to keep real lightweight. The worst of it is the adjust_seekrange() proc call which has an istype check. I tried to be pretty clear about it.
  • The dots HUD object gets a little wonky when it adjust to an angle that is more than a 30 or so degrees from it's last position. So it'll freak out if you're flying circles around eachother or you keep switching between two targets on either side of you. Don't know how to fix this without a good deal of effort so I'm leaving it.
 
https://github.com/goonstation/goonstati...6/pull/134
Reply
#2
can it track other objects like people or NPC drones?
Reply
#3
(05-09-2019, 02:34 AM)Gousaid67 Wrote: can it track other objects like people or NPC drones?

I think it could be a good opportunity to make different sensors track different things. One good for pods, another for lifeforms
Reply
#4
Yeah, you can track drones. They appear on the list of ships from the "Scan Area" button. I didn't let you click on them to track em for some reason. Guess I could add that.

You cannot track people with this. A scanner to track people didn't seem very useful because people are mostly on the station and pods can't go on the station so you couldn't really get close enough to them for it to be of any use.

Like Frank says, you probably make some new kinds of sensors that are capable of tracking people. Or have a larger scan range if you wanted. But the tricky part about that is not creating the sensors which can do that, but how you should get that item in-game.
Reply
#5
A person scanner would be really useful for finding people who are lost in space. Even just having a rough distance for the actual scan readout would be handy for trying to track people down. Currently you can sorta-kinda do something like that with PDAs, ping tools, and the range setting, but it's a bit of a pain.
Reply
#6
(05-10-2019, 01:02 PM)Zamujasa Wrote: A person scanner would be really useful for finding people who are lost in space. Even just having a rough distance for the actual scan readout would be handy for trying to track people down. Currently you can sorta-kinda do something like that with PDAs, ping tools, and the range setting, but it's a bit of a pain.

Pods can already scan for people, but they dont get any indication of range or direction though.
Reply
#7
That's what I meant, a scanner in the same way that the pod direction scanner in this works.

Pod scanners also don't find people inside containers, which makes the traitor cargo teleporter extremely frustrating to deal with.
Reply
#8
(05-11-2019, 04:34 PM)Zamujasa Wrote: That's what I meant, a scanner in the same way that the pod direction scanner in this works.

Pod scanners also don't find people inside containers, which makes the traitor cargo teleporter extremely frustrating to deal with.

This is kind of a conundrum for me. After thinking about it, I have to agree, there should definitely be a way for a kindly pilot to search for mobs in space that have been cargo teleportered.

But I also feel that hiding in a locker or crate should block a scanner from locating you, like how it shields you from radstorm radiation.

But there should be a reasonable way to find someone who has been cargo-teleported without having to do some pda nonsense.

While I was writing that last sentence, I just came up with an idea of how it could possibly work for standard scanners (I still don't want to add human active tracking on standard scanners):
  • Display direction to mob in the "Scan Area" list if they are within half of your sensor radius.
  • If a mob is in a crate or locker, disguise the name as "unknown" or "human life sign".
My other option was to see if any metal walls are in between the ship and the mob, and not draw it if there is. But that is extremely expensive compared to what I said above.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)