mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 12:41:09 +01:00
Adds a GPS tracking collar (#1726)
## About The Pull Request Adds a GPS tracking collar to the game. It can be found in the LustWish premium section. The collar broadcasts a GPS signal with the name of the collar. Tracking can be toggled on and off with alt-right-click. The tracking collar can be locked, not only preventing removal but also preventing toggling the tracking. The collar cannot receive GPS signals, only send one. ## Why It's Good For The Game Requested by Aeri on the Discord. Pre-approved by @projectkepler-ru. ## Proof Of Testing https://youtu.be/iFcZotyVUuQ ## Changelog 🆑 add: Added a GPS tracking collar to the LustWish /🆑 --------- Co-authored-by: projectkepler-RU <99981766+projectkepler-ru@users.noreply.github.com> Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
This commit is contained in:
co-authored by
projectkepler-RU
Waterpig
parent
3b180ed645
commit
46f58058dc
@@ -1,2 +1,4 @@
|
||||
// Signal sent when the morgue tray throws its alarm
|
||||
#define COMSIG_MORGUE_ALARM "morgue_alarm"
|
||||
// Can be sent whenever an object's name is changed so components can be properly updated as well
|
||||
#define COMSIG_NAME_CHANGED "name_changed"
|
||||
|
||||
@@ -297,6 +297,7 @@ GLOBAL_LIST_INIT(all_loadout_categories, init_loadout_categories())
|
||||
renamed = 1
|
||||
if(renamed)
|
||||
ADD_TRAIT(equipped_item, TRAIT_WAS_RENAMED, "Loadout")
|
||||
SEND_SIGNAL(equipped_item, COMSIG_NAME_CHANGED) // BUBBER EDIT
|
||||
// SKYRAT EDIT END
|
||||
|
||||
if(can_be_reskinned && item_details?[INFO_RESKIN])
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"gps": [
|
||||
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "collar_band_gray",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "collar_tracker_gray",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 2 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "collar_screen",
|
||||
"blend_mode": "overlay"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"gps": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "collar_inhand_tracker_l_gray",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 2 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "collar_inhand_band_l_gray",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"gps": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "collar_inhand_tracker_r_gray",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 2 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "collar_inhand_band_r_gray",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"gps": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "collar_mob_tracker_gray",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 2 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "collar_mob_band_gray",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -11,6 +11,24 @@
|
||||
name = "Ring Bell Collar (Worn)"
|
||||
json_config = 'modular_skyrat/modules/GAGS/json_configs/collar/ringbell_worn.json'
|
||||
|
||||
|
||||
/datum/greyscale_config/collar/gps
|
||||
name = "GPS Collar"
|
||||
icon_file = 'modular_zubbers/code/modules/GAGS/icons/collar.dmi'
|
||||
json_config = 'modular_skyrat/modules/GAGS/json_configs/collar/gps.json'
|
||||
|
||||
/datum/greyscale_config/collar/gps/worn
|
||||
name = "GPS Collar (Worn)"
|
||||
json_config = 'modular_skyrat/modules/GAGS/json_configs/collar/gps_worn.json'
|
||||
|
||||
/datum/greyscale_config/collar/gps/lefthand
|
||||
name = "GPS Collar (Left hand)"
|
||||
json_config = 'modular_skyrat/modules/GAGS/json_configs/collar/gps_lefthand.json'
|
||||
|
||||
/datum/greyscale_config/collar/gps/righthand
|
||||
name = "GPS Collar (Right hand)"
|
||||
json_config = 'modular_skyrat/modules/GAGS/json_configs/collar/gps_righthand.json'
|
||||
|
||||
//Bunny stuff, sprites from MonkieStation
|
||||
|
||||
/datum/greyscale_config/bunnysuit
|
||||
@@ -62,3 +80,4 @@
|
||||
name = "Worn Playbunny Ears"
|
||||
icon_file = 'modular_zubbers/icons/mob/clothing/head/bunnyears.dmi'
|
||||
json_config = 'modular_skyrat/modules/GAGS/json_configs/bunny_stuff/playbunny_ears_worn.json'
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 929 B After Width: | Height: | Size: 3.3 KiB |
@@ -9,3 +9,71 @@
|
||||
/obj/item/clothing/neck/human_petcollar/locked/ringbell/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/squeak, list('modular_zubbers/sound/misc/collarbell1.ogg'=1,'modular_zubbers/sound/misc/collarbell2.ogg'=1), 50, 100, 8)
|
||||
|
||||
/obj/item/clothing/neck/kink_collar/locked/gps
|
||||
name = "tracking collar"
|
||||
desc = "A collar that lets you find your pet anywhere with GPS!"
|
||||
var/datum/component/gps/gps
|
||||
icon_state = "gps"
|
||||
greyscale_config = /datum/greyscale_config/collar/gps
|
||||
greyscale_config_worn = /datum/greyscale_config/collar/gps/worn
|
||||
greyscale_config_inhand_left = /datum/greyscale_config/collar/gps/lefthand
|
||||
greyscale_config_inhand_right = /datum/greyscale_config/collar/gps/righthand
|
||||
greyscale_colors = "#8B96B7#505665"
|
||||
flags_1 = IS_PLAYER_COLORABLE_1
|
||||
unique_reskin = null
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/neck/kink_collar/locked/gps/Initialize(mapload)
|
||||
. = ..()
|
||||
atom_storage.click_alt_open = FALSE
|
||||
gps = AddComponent(/datum/component/gps, name)
|
||||
register_context()
|
||||
update_icon(UPDATE_OVERLAYS)
|
||||
RegisterSignal(src, COMSIG_NAME_CHANGED, PROC_REF(on_update_name))
|
||||
|
||||
/obj/item/clothing/neck/kink_collar/locked/gps/proc/on_update_name()
|
||||
SIGNAL_HANDLER
|
||||
gps.gpstag = name
|
||||
|
||||
/obj/item/clothing/neck/kink_collar/locked/gps/attack_self(mob/user)
|
||||
. = ..()
|
||||
gps.gpstag = tagname
|
||||
|
||||
/obj/item/clothing/neck/kink_collar/locked/gps/examine(mob/user)
|
||||
. = ..()
|
||||
. += span_notice("Alt-click to [gps.tracking ? "disable":"enable"] tracking.")
|
||||
|
||||
///Calls toggletracking
|
||||
/obj/item/clothing/neck/kink_collar/locked/gps/click_alt(mob/user)
|
||||
if(locked)
|
||||
balloon_alert(user, "it's locked!")
|
||||
playsound(src, 'sound/items/click.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
|
||||
else
|
||||
toggletracking(user)
|
||||
balloon_alert(user, "tracking [gps.tracking ? "enabled":"disabled"]")
|
||||
playsound(src, 'sound/machines/click.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
|
||||
return CLICK_ACTION_SUCCESS
|
||||
|
||||
/obj/item/clothing/neck/kink_collar/locked/gps/proc/toggletracking(mob/user)
|
||||
gps.tracking = !gps.tracking
|
||||
update_icon(UPDATE_OVERLAYS)
|
||||
user.update_worn_neck()
|
||||
|
||||
/obj/item/clothing/neck/kink_collar/locked/gps/add_context(atom/source, list/context, obj/item/held_item, mob/user)
|
||||
. = ..()
|
||||
if(!locked)
|
||||
context[SCREENTIP_CONTEXT_ALT_LMB] = "[gps.tracking ? "Disable":"Enable"] tracking"
|
||||
return CONTEXTUAL_SCREENTIP_SET
|
||||
|
||||
/obj/item/clothing/neck/kink_collar/locked/gps/update_overlays()
|
||||
. = ..()
|
||||
if(gps.tracking)
|
||||
. += mutable_appearance('modular_zubbers/code/modules/GAGS/icons/collar.dmi', "light")
|
||||
. += emissive_appearance('modular_zubbers/code/modules/GAGS/icons/collar.dmi', "light", src, alpha = src.alpha)
|
||||
|
||||
/obj/item/clothing/neck/kink_collar/locked/gps/worn_overlays(mutable_appearance/standing, isinhands = FALSE)
|
||||
. = ..()
|
||||
if(gps.tracking && !isinhands)
|
||||
. += mutable_appearance('modular_zubbers/code/modules/GAGS/icons/collar.dmi', "collar_mob_tracker_light")
|
||||
. += emissive_appearance('modular_zubbers/code/modules/GAGS/icons/collar.dmi', "collar_mob_tracker_light", src, alpha = src.alpha)
|
||||
|
||||
@@ -7,6 +7,10 @@
|
||||
name = "Ringing Bell Collar"
|
||||
item_path = /obj/item/clothing/neck/human_petcollar/locked/ringbell
|
||||
|
||||
/datum/loadout_item/neck/gps
|
||||
name = "Tracking Collar"
|
||||
item_path = /obj/item/clothing/neck/kink_collar/locked/gps
|
||||
|
||||
/datum/loadout_item/neck/binary
|
||||
name = "Crow Feather Cloak"
|
||||
item_path = /obj/item/clothing/neck/binary
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
/obj/machinery/vending/security
|
||||
zubbers_contraband = list(
|
||||
/obj/item/clothing/neck/kink_collar/locked/gps = 3,
|
||||
)
|
||||
@@ -23,10 +23,11 @@
|
||||
)
|
||||
|
||||
zubbers_premium = list(
|
||||
/obj/item/holosign_creator/sex = 6,
|
||||
/obj/item/clothing/under/mikubikini = 3,
|
||||
/obj/item/clothing/suit/mikujacket = 3,
|
||||
/obj/item/clothing/head/mikuhair = 3,
|
||||
/obj/item/clothing/gloves/mikugloves = 3,
|
||||
/obj/item/clothing/shoes/sneakers/mikuleggings = 3,
|
||||
/obj/item/clothing/neck/kink_collar/locked/gps = 3,
|
||||
/obj/item/holosign_creator/sex = 6,
|
||||
/obj/item/clothing/under/mikubikini = 3,
|
||||
/obj/item/clothing/suit/mikujacket = 3,
|
||||
/obj/item/clothing/head/mikuhair = 3,
|
||||
/obj/item/clothing/gloves/mikugloves = 3,
|
||||
/obj/item/clothing/shoes/sneakers/mikuleggings = 3,
|
||||
)
|
||||
|
||||
@@ -9052,6 +9052,7 @@
|
||||
#include "modular_zubbers\code\modules\uplink\uplink_items\dangerous.dm"
|
||||
#include "modular_zubbers\code\modules\uplink\uplink_items\device_tools.dm"
|
||||
#include "modular_zubbers\code\modules\uplink\uplink_items\job.dm"
|
||||
#include "modular_zubbers\code\modules\vending\armadyne.dm"
|
||||
#include "modular_zubbers\code\modules\vending\clothmate.dm"
|
||||
#include "modular_zubbers\code\modules\vending\comdrobe.dm"
|
||||
#include "modular_zubbers\code\modules\vending\games.dm"
|
||||
|
||||
Reference in New Issue
Block a user