mirror of
https://github.com/Yawn-Wider/YWPolarisVore.git
synced 2026-08-23 21:17:20 +01:00
Merge branch 'release' of https://github.com/VOREStation/VOREStation into izac
This commit is contained in:
@@ -71,7 +71,7 @@
|
||||
if("wipe")
|
||||
msg_admin_attack("[key_name_admin(user)] wiped [key_name_admin(AI)] with \the [src].")
|
||||
add_attack_logs(user,carded_ai,"Purged from AI Card")
|
||||
INVOKE_ASYNC(src, .proc/wipe_ai)
|
||||
INVOKE_ASYNC(src, PROC_REF(wipe_ai))
|
||||
if("radio")
|
||||
carded_ai.aiRadio.disabledAi = !carded_ai.aiRadio.disabledAi
|
||||
to_chat(carded_ai, "<span class='warning'>Your Subspace Transceiver has been [carded_ai.aiRadio.disabledAi ? "disabled" : "enabled"]!</span>")
|
||||
@@ -83,7 +83,7 @@
|
||||
if(carded_ai.control_disabled && carded_ai.deployed_shell)
|
||||
carded_ai.disconnect_shell("Disconnecting from remote shell due to [src] wireless access interface being disabled.")
|
||||
update_icon()
|
||||
|
||||
|
||||
return TRUE
|
||||
|
||||
/obj/item/device/aicard/update_icon()
|
||||
@@ -182,4 +182,4 @@
|
||||
AI.adjustOxyLoss(2)
|
||||
AI.updatehealth()
|
||||
sleep(10)
|
||||
flush = FALSE
|
||||
flush = FALSE
|
||||
|
||||
@@ -106,7 +106,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
|
||||
setup_tgui_camera()
|
||||
|
||||
//This is a pretty terrible way of doing this.
|
||||
addtimer(CALLBACK(src, .proc/register_to_holder), 5 SECONDS)
|
||||
addtimer(CALLBACK(src, PROC_REF(register_to_holder)), 5 SECONDS)
|
||||
|
||||
// Proc: register_to_holder()
|
||||
// Parameters: None
|
||||
@@ -376,4 +376,3 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
|
||||
return
|
||||
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
|
||||
@@ -349,14 +349,14 @@
|
||||
video_source = comm.camera
|
||||
comm.visible_message("<span class='danger'>\icon[src][bicon(src)] New video connection from [comm].</span>")
|
||||
update_active_camera_screen()
|
||||
GLOB.moved_event.register(video_source, src, .proc/update_active_camera_screen)
|
||||
GLOB.moved_event.register(video_source, src, PROC_REF(update_active_camera_screen))
|
||||
update_icon()
|
||||
|
||||
// Proc: end_video()
|
||||
// Parameters: reason - the text reason to print for why it ended
|
||||
// Description: Ends the video call by clearing video_source
|
||||
/obj/item/device/communicator/proc/end_video(var/reason)
|
||||
GLOB.moved_event.unregister(video_source, src, .proc/update_active_camera_screen)
|
||||
GLOB.moved_event.unregister(video_source, src, PROC_REF(update_active_camera_screen))
|
||||
show_static()
|
||||
video_source = null
|
||||
|
||||
@@ -364,4 +364,3 @@
|
||||
|
||||
visible_message(.)
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
if(!evaluate_ghost_join(user))
|
||||
return ..()
|
||||
|
||||
tgui_alert_async(usr, "Would you like to become [src]? It is bound to [revivedby].", "Become Mob", list("Yes","No"), CALLBACK(src, .proc/reply_ghost_join), 20 SECONDS)
|
||||
tgui_alert_async(usr, "Would you like to become [src]? It is bound to [revivedby].", "Become Mob", list("Yes","No"), CALLBACK(src, PROC_REF(reply_ghost_join)), 20 SECONDS)
|
||||
|
||||
/// A reply to an async alert request was received
|
||||
/mob/living/simple_mob/proc/reply_ghost_join(response)
|
||||
@@ -64,7 +64,7 @@
|
||||
/mob/living/simple_mob/proc/ghost_join(mob/observer/dead/D)
|
||||
log_and_message_admins("[key_name_admin(D)] joined [src] as a ghost [ADMIN_FLW(src)]")
|
||||
active_ghost_pods -= src
|
||||
|
||||
|
||||
// Move the ghost in
|
||||
if(D.mind)
|
||||
D.mind.active = TRUE
|
||||
@@ -72,7 +72,7 @@
|
||||
else
|
||||
src.ckey = D.ckey
|
||||
qdel(D)
|
||||
|
||||
|
||||
// Clean up the simplemob
|
||||
ghostjoin = FALSE
|
||||
ghostjoin_icon()
|
||||
@@ -91,14 +91,14 @@
|
||||
return FALSE
|
||||
|
||||
// At this point we can at least send them messages as to why they can't join, since they are a mob with a client
|
||||
if(!ghostjoin)
|
||||
if(!ghostjoin)
|
||||
to_chat(D, "<span class='notice'>Sorry, [src] is no longer ghost-joinable.</span>")
|
||||
return FALSE
|
||||
|
||||
if(ckey)
|
||||
to_chat(D, "<span class='notice'>Sorry, someone else has already inhabited [src].</span>")
|
||||
return FALSE
|
||||
|
||||
|
||||
if(capture_caught && !D.client.prefs.capture_crystal)
|
||||
to_chat(D, "<span class='notice'>Sorry, [src] is participating in capture mechanics, and your preferences do not allow for that.</span>")
|
||||
return FALSE
|
||||
@@ -128,7 +128,7 @@
|
||||
else
|
||||
. += "<span class='notice'>The screen indicates that this device can be used again in [cooldowntime] seconds, and that it has enough energy for [charges] uses.</span>"
|
||||
|
||||
/obj/item/device/denecrotizer/proc/check_target(mob/living/simple_mob/target, mob/living/user)
|
||||
/obj/item/device/denecrotizer/proc/check_target(mob/living/simple_mob/target, mob/living/user)
|
||||
if(!target.Adjacent(user))
|
||||
return FALSE
|
||||
if(user.a_intent != I_HELP) //be gentle
|
||||
@@ -150,10 +150,10 @@
|
||||
if(!advanced)
|
||||
to_chat(user, "<span class='notice'>[src] doesn't seem to work on that.</span>")
|
||||
return FALSE
|
||||
if(target.ai_holder.retaliate || target.ai_holder.hostile) // You can be friends with still living mobs if they are passive I GUESS
|
||||
if(target.ai_holder.retaliate || target.ai_holder.hostile) // You can be friends with still living mobs if they are passive I GUESS
|
||||
to_chat(user, "<span class='notice'>[src] doesn't seem to work on that.</span>")
|
||||
return FALSE
|
||||
if(!target.mind)
|
||||
if(!target.mind)
|
||||
user.visible_message("[user] gently presses [src] to [target]...", runemessage = "presses [src] to [target]")
|
||||
if(do_after(user, revive_time, exclusive = TASK_USER_EXCLUSIVE, target = target))
|
||||
target.faction = user.faction
|
||||
@@ -197,7 +197,7 @@
|
||||
icon_state = "[initial(icon_state)]-o"
|
||||
update_icon()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/device/denecrotizer/proc/basic_rez(mob/living/simple_mob/target, mob/living/user) //so medical can have a way to bring back people's pets or whatever, does not change any settings about the mob or offer it to ghosts.
|
||||
user.visible_message("[user] presses [src] to [target]...", runemessage = "presses [src] to [target]")
|
||||
if(do_after(user, revive_time, exclusive = TASK_ALL_EXCLUSIVE, target = target))
|
||||
@@ -235,9 +235,9 @@
|
||||
I.invisibility = INVISIBILITY_OBSERVER
|
||||
I.plane = PLANE_GHOSTS
|
||||
I.appearance_flags = KEEP_APART|RESET_TRANSFORM
|
||||
|
||||
|
||||
cut_overlay(I)
|
||||
|
||||
|
||||
if(ghostjoin)
|
||||
add_overlay(I)
|
||||
|
||||
@@ -247,4 +247,4 @@
|
||||
icon_state = "m-denecrotizer"
|
||||
advanced = 0 //This one isn't as fancy
|
||||
cooldown = 5 MINUTES //not as long
|
||||
charges = 20 //in case spiders merc Ian
|
||||
charges = 20 //in case spiders merc Ian
|
||||
|
||||
@@ -45,8 +45,8 @@ var/list/GPS_list = list()
|
||||
|
||||
if(istype(loc, /mob))
|
||||
holder = loc
|
||||
GLOB.moved_event.register(holder, src, .proc/update_compass)
|
||||
GLOB.dir_set_event.register(holder, src, .proc/update_compass)
|
||||
GLOB.moved_event.register(holder, src, PROC_REF(update_compass))
|
||||
GLOB.dir_set_event.register(holder, src, PROC_REF(update_compass))
|
||||
|
||||
if(holder && tracking)
|
||||
if(!is_in_processing_list)
|
||||
|
||||
@@ -56,7 +56,7 @@ var/global/list/default_medbay_channels = list(
|
||||
|
||||
// Bluespace radios talk directly to telecomms equipment
|
||||
var/bluespace_radio = FALSE
|
||||
var/weakref/bs_tx_weakref //Maybe misleading, this is the device to TRANSMIT TO
|
||||
var/datum/weakref/bs_tx_weakref //Maybe misleading, this is the device to TRANSMIT TO
|
||||
// For mappers or subtypes, to start them prelinked to these devices
|
||||
var/bs_tx_preload_id
|
||||
var/bs_rx_preload_id
|
||||
@@ -104,14 +104,14 @@ var/global/list/default_medbay_channels = list(
|
||||
//Try to find a receiver
|
||||
for(var/obj/machinery/telecomms/receiver/RX in telecomms_list)
|
||||
if(RX.id == bs_tx_preload_id) //Again, bs_tx is the thing to TRANSMIT TO, so a receiver.
|
||||
bs_tx_weakref = weakref(RX)
|
||||
bs_tx_weakref = WEAKREF(RX)
|
||||
RX.link_radio(src)
|
||||
break
|
||||
//Hmm, howabout an AIO machine
|
||||
if(!bs_tx_weakref)
|
||||
for(var/obj/machinery/telecomms/allinone/AIO in telecomms_list)
|
||||
if(AIO.id == bs_tx_preload_id)
|
||||
bs_tx_weakref = weakref(AIO)
|
||||
bs_tx_weakref = WEAKREF(AIO)
|
||||
AIO.link_radio(src)
|
||||
break
|
||||
if(!bs_tx_weakref)
|
||||
|
||||
@@ -2,8 +2,9 @@
|
||||
name = "portable suit cooling unit"
|
||||
desc = "A portable heat sink and liquid cooled radiator that can be hooked up to a space suit's existing temperature controls to provide industrial levels of cooling."
|
||||
w_class = ITEMSIZE_LARGE
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon = 'icons/obj/suit_cooler.dmi'
|
||||
icon_state = "suitcooler0"
|
||||
item_state = "coolingpack"
|
||||
slot_flags = SLOT_BACK
|
||||
|
||||
//copied from tank.dm
|
||||
@@ -171,13 +172,32 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/device/suit_cooling_unit/proc/updateicon()
|
||||
if (cover_open)
|
||||
if (cell)
|
||||
cut_overlays()
|
||||
if(cover_open)
|
||||
if(cell)
|
||||
icon_state = "suitcooler1"
|
||||
else
|
||||
icon_state = "suitcooler2"
|
||||
else
|
||||
icon_state = "suitcooler0"
|
||||
return
|
||||
|
||||
icon_state = "suitcooler0"
|
||||
|
||||
if(!cell || !on)
|
||||
return
|
||||
|
||||
switch(round(cell.percent()))
|
||||
if(86 to INFINITY)
|
||||
add_overlay("battery-0")
|
||||
if(69 to 85)
|
||||
add_overlay("battery-1")
|
||||
if(52 to 68)
|
||||
add_overlay("battery-2")
|
||||
if(35 to 51)
|
||||
add_overlay("battery-3")
|
||||
if(18 to 34)
|
||||
add_overlay("battery-4")
|
||||
if(-INFINITY to 17)
|
||||
add_overlay("battery-5")
|
||||
|
||||
/obj/item/device/suit_cooling_unit/examine(mob/user)
|
||||
. = ..()
|
||||
@@ -218,7 +238,7 @@
|
||||
|
||||
/obj/item/device/suit_cooling_unit/emergency/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if (W.is_screwdriver())
|
||||
to_chat(user, "<span class='warning'>This model has the cell permanently installed!</span>")
|
||||
to_chat(user, "<span class='warning'>This cooler's cell is permanently installed!</span>")
|
||||
return
|
||||
|
||||
return ..()
|
||||
|
||||
@@ -88,8 +88,9 @@
|
||||
|
||||
/obj/item/device/taperecorder/hear_talk(mob/M, list/message_pieces, verb)
|
||||
var/msg = multilingual_to_message(message_pieces, requires_machine_understands = TRUE, with_capitalization = TRUE)
|
||||
var/voice = M.GetVoice() //Defined on living, returns name for normal mobs/
|
||||
if(mytape && recording)
|
||||
mytape.record_speech("[M.name] [verb], \"[msg]\"")
|
||||
mytape.record_speech("[voice] [verb], \"[msg]\"")
|
||||
|
||||
|
||||
/obj/item/device/taperecorder/see_emote(mob/M as mob, text, var/emote_type)
|
||||
@@ -432,4 +433,4 @@
|
||||
|
||||
//Random colour tapes
|
||||
/obj/item/device/tape/random/New()
|
||||
icon_state = "tape_[pick("white", "blue", "red", "yellow", "purple")]"
|
||||
icon_state = "tape_[pick("white", "blue", "red", "yellow", "purple")]"
|
||||
|
||||
@@ -125,7 +125,7 @@ This device can be easily used to break ERP preferences due to the nature of tel
|
||||
Make sure you carefully examine someone's OOC prefs before teleporting them if you are going to use this device for ERP purposes.
|
||||
This device records all warnings given and teleport events for admin review in case of pref-breaking, so just don't do it.
|
||||
"},"OOC Warning")
|
||||
var/choice = show_radial_menu(user, radial_menu_anchor, radial_images, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE)
|
||||
var/choice = show_radial_menu(user, radial_menu_anchor, radial_images, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE)
|
||||
|
||||
if(!choice)
|
||||
return
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
var/channel = "NCS Northern Star News Feed"
|
||||
var/obj/machinery/camera/network/thunder/camera
|
||||
var/obj/item/device/radio/radio
|
||||
var/weakref/showing
|
||||
var/datum/weakref/showing
|
||||
var/showing_name
|
||||
|
||||
/obj/item/device/tvcamera/New()
|
||||
@@ -95,7 +95,7 @@
|
||||
if(showing)
|
||||
hide_tvs(showing)
|
||||
|
||||
showing = weakref(thing)
|
||||
showing = WEAKREF(thing)
|
||||
showing_name = "[thing]"
|
||||
for(var/obj/machinery/computer/security/telescreen/entertainment/ES as anything in GLOB.entertainment_screens)
|
||||
ES.show_thing(thing)
|
||||
@@ -221,4 +221,3 @@
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
/obj/item/device/uplink/Initialize(var/mapload)
|
||||
. = ..()
|
||||
addtimer(CALLBACK(src, .proc/next_offer), offer_time) //It seems like only the /hidden type actually makes use of this...
|
||||
addtimer(CALLBACK(src, PROC_REF(next_offer)), offer_time) //It seems like only the /hidden type actually makes use of this...
|
||||
|
||||
/obj/item/device/uplink/get_item_cost(var/item_type, var/item_cost)
|
||||
return (discount_item && (item_type == discount_item)) ? max(1, round(item_cost*discount_amount)) : item_cost
|
||||
@@ -63,7 +63,7 @@
|
||||
discount_amount = pick(90;0.9, 80;0.8, 70;0.7, 60;0.6, 50;0.5, 40;0.4, 30;0.3, 20;0.2, 10;0.1)
|
||||
next_offer_time = world.time + offer_time
|
||||
SStgui.update_uis(src)
|
||||
addtimer(CALLBACK(src, .proc/next_offer), offer_time)
|
||||
addtimer(CALLBACK(src, PROC_REF(next_offer)), offer_time)
|
||||
|
||||
// Toggles the uplink on and off. Normally this will bypass the item's normal functions and go to the uplink menu, if activated.
|
||||
/obj/item/device/uplink/hidden/proc/toggle()
|
||||
|
||||
Reference in New Issue
Block a user