mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 12:37:26 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into BookClub
This commit is contained in:
@@ -263,9 +263,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
A.icon = ui_style2icon(client.prefs.UI_style)
|
||||
A.desc = message
|
||||
var/old_layer = source.layer
|
||||
var/old_plane = source.plane
|
||||
source.layer = FLOAT_LAYER
|
||||
source.plane = FLOAT_PLANE
|
||||
A.overlays += source
|
||||
source.layer = old_layer
|
||||
source.plane = old_plane
|
||||
to_chat(src, "<span class='ghostalert'><a href=?src=[UID()];reenter=1>(Click to re-enter)</a></span>")
|
||||
if(sound)
|
||||
src << sound(sound)
|
||||
|
||||
@@ -559,6 +559,17 @@
|
||||
flags = RESTRICTED | HIVEMIND
|
||||
drone_only = 1
|
||||
follow = 1
|
||||
|
||||
/datum/language/drone
|
||||
name = "Drone"
|
||||
desc = "An encrypted stream of data converted to speech patterns."
|
||||
speech_verb = "states"
|
||||
ask_verb = "queries"
|
||||
exclaim_verb = "declares"
|
||||
key = "]"
|
||||
flags = RESTRICTED
|
||||
follow = 1
|
||||
syllables = list ("beep", "boop")
|
||||
|
||||
/datum/language/swarmer
|
||||
name = "Swarmer"
|
||||
|
||||
@@ -854,12 +854,7 @@
|
||||
modified = 1
|
||||
|
||||
spawn()
|
||||
if(istype(usr,/mob/living/carbon/human))
|
||||
//var/mob/living/carbon/human/U = usr
|
||||
sec_hud_set_security_status()
|
||||
if(istype(usr,/mob/living/silicon/robot))
|
||||
//var/mob/living/silicon/robot/U = usr
|
||||
sec_hud_set_security_status()
|
||||
sec_hud_set_security_status()
|
||||
|
||||
if(!modified)
|
||||
to_chat(usr, "\red Unable to locate a data core entry for this person.")
|
||||
@@ -984,12 +979,7 @@
|
||||
PDA_Manifest.Cut()
|
||||
|
||||
spawn()
|
||||
if(istype(usr,/mob/living/carbon/human))
|
||||
//var/mob/living/carbon/human/U = usr
|
||||
sec_hud_set_security_status()
|
||||
if(istype(usr,/mob/living/silicon/robot))
|
||||
//var/mob/living/silicon/robot/U = usr
|
||||
sec_hud_set_security_status()
|
||||
sec_hud_set_security_status()
|
||||
|
||||
if(!modified)
|
||||
to_chat(usr, "\red Unable to locate a data core entry for this person.")
|
||||
|
||||
@@ -108,11 +108,13 @@
|
||||
if((E.body_part == HAND_LEFT) || (E.body_part == ARM_LEFT))
|
||||
if(!l_hand)
|
||||
continue
|
||||
unEquip(l_hand)
|
||||
if(!unEquip(l_hand))
|
||||
continue
|
||||
else
|
||||
if(!r_hand)
|
||||
continue
|
||||
unEquip(r_hand)
|
||||
if(!unEquip(r_hand))
|
||||
continue
|
||||
|
||||
var/emote_scream = pick("screams in pain and ", "lets out a sharp cry and ", "cries out and ")
|
||||
custom_emote(1, "[(species.flags & NO_PAIN) ? "" : emote_scream ]drops what they were holding in their [E.name]!")
|
||||
@@ -122,11 +124,13 @@
|
||||
if((E.body_part == HAND_LEFT) || (E.body_part == ARM_LEFT))
|
||||
if(!l_hand)
|
||||
continue
|
||||
unEquip(l_hand)
|
||||
if(!unEquip(l_hand))
|
||||
continue
|
||||
else
|
||||
if(!r_hand)
|
||||
continue
|
||||
unEquip(r_hand)
|
||||
if(!unEquip(r_hand))
|
||||
continue
|
||||
|
||||
custom_emote(1, "drops what they were holding, their [E.name] malfunctioning!")
|
||||
|
||||
|
||||
@@ -97,12 +97,7 @@ var/list/ai_verbs_default = list(
|
||||
|
||||
var/obj/machinery/camera/portable/builtInCamera
|
||||
|
||||
//var/obj/item/borg/sight/hud/sec/sechud = null
|
||||
//var/obj/item/borg/sight/hud/med/healthhud = null
|
||||
|
||||
var/arrivalmsg = "$name, $rank, has arrived on the station."
|
||||
med_hud = DATA_HUD_MEDICAL_BASIC
|
||||
sec_hud = DATA_HUD_SECURITY_BASIC
|
||||
|
||||
/mob/living/silicon/ai/proc/add_ai_verbs()
|
||||
src.verbs |= ai_verbs_default
|
||||
|
||||
@@ -1,8 +1,15 @@
|
||||
/mob/living/silicon/Login()
|
||||
sleeping = 0
|
||||
if(mind && ticker && ticker.mode)
|
||||
ticker.mode.remove_cultist(mind, 1)
|
||||
ticker.mode.remove_traitor(mind)
|
||||
ticker.mode.remove_traitor_mind(mind)
|
||||
ticker.mode.remove_revolutionary(mind, 1)
|
||||
ticker.mode.remove_thrall(mind,0)
|
||||
ticker.mode.remove_cultist(mind, 1)
|
||||
ticker.mode.remove_wizard(mind)
|
||||
ticker.mode.remove_changeling(mind)
|
||||
ticker.mode.remove_vampire(mind)
|
||||
ticker.mode.remove_thrall(mind, 0)
|
||||
ticker.mode.remove_operative(mind)
|
||||
ticker.mode.remove_shadowling(mind)
|
||||
ticker.mode.remove_abductor(mind)
|
||||
..()
|
||||
@@ -13,9 +13,10 @@
|
||||
lawupdate = 0
|
||||
density = 0
|
||||
req_access = list(access_engine, access_robotics)
|
||||
local_transmit = 1
|
||||
ventcrawler = 2
|
||||
magpulse = 1
|
||||
|
||||
default_language = "Drone"
|
||||
|
||||
// We need to keep track of a few module items so we don't need to do list operations
|
||||
// every time we need them. These get set in New() after the module is chosen.
|
||||
@@ -39,7 +40,13 @@
|
||||
..()
|
||||
|
||||
remove_language("Robot Talk")
|
||||
remove_language("Galactic Common")
|
||||
add_language("Drone Talk", 1)
|
||||
add_language("Drone", 1)
|
||||
|
||||
// Disable the microphone wire on Drones
|
||||
if(radio)
|
||||
radio.wires.CutWireIndex(WIRE_TRANSMIT)
|
||||
|
||||
if(camera && "Robots" in camera.network)
|
||||
camera.network.Add("Engineering")
|
||||
@@ -284,7 +291,7 @@
|
||||
full_law_reset()
|
||||
to_chat(src, "<br><b>You are a maintenance drone, a tiny-brained robotic repair machine</b>.")
|
||||
to_chat(src, "You have no individual will, no personality, and no drives or urges other than your laws.")
|
||||
to_chat(src, "Use <b>;</b> to talk to other drones, and <b>say</b> to speak silently to your nearby fellows.")
|
||||
to_chat(src, "Use <b>:d</b> to talk to other drones, and <b>say</b> to speak silently in a language only your fellows understand.")
|
||||
to_chat(src, "Remember, you are <b>lawed against interference with the crew</b>. Also remember, <b>you DO NOT take orders from the AI.</b>")
|
||||
to_chat(src, "<b>Don't invade their worksites, don't steal their resources, don't tell them about the changeling in the toilets.</b>")
|
||||
to_chat(src, "<b>Make sure crew members do not notice you.</b>.")
|
||||
|
||||
@@ -1,43 +1,11 @@
|
||||
/mob/living/silicon/robot/drone/say(var/message)
|
||||
if(local_transmit)
|
||||
if(src.client)
|
||||
if(client.prefs.muted & MUTE_IC)
|
||||
to_chat(src, "You cannot send IC messages (muted).")
|
||||
return 0
|
||||
if(src.client.handle_spam_prevention(message,MUTE_IC))
|
||||
return 0
|
||||
|
||||
message = sanitize(message)
|
||||
|
||||
if(stat == 2)
|
||||
return say_dead(message)
|
||||
|
||||
if(copytext(message,1,2) == "*")
|
||||
return emote(copytext(message,2))
|
||||
|
||||
if(copytext(message,1,2) == ";")
|
||||
var/datum/language/L = all_languages["Drone Talk"]
|
||||
if(istype(L))
|
||||
return L.broadcast(src,trim(copytext(message,2)))
|
||||
|
||||
//Must be concious to speak
|
||||
if(stat)
|
||||
return 0
|
||||
|
||||
var/list/listeners = hearers(5,src)
|
||||
listeners |= src
|
||||
|
||||
for(var/mob/living/silicon/D in listeners)
|
||||
if(D.client && D.local_transmit)
|
||||
to_chat(D, "<b>[src]</b> transmits, \"[message]\"")
|
||||
|
||||
for(var/mob/M in player_list)
|
||||
if(istype(M, /mob/new_player))
|
||||
continue
|
||||
else if(M.stat == 2 && M.client && M.client.prefs.toggles & CHAT_GHOSTEARS)
|
||||
to_chat(M, "<b>[src]</b> transmits, \"[message]\"")
|
||||
return 1
|
||||
return ..(message, 0)
|
||||
/mob/living/silicon/robot/drone/say(var/message, var/datum/language/speaking = null)
|
||||
if(!speaking)
|
||||
speaking = parse_language(message)
|
||||
if(!speaking)
|
||||
speaking = istype(get_default_language(), /datum/language) ? get_default_language() : all_languages[get_default_language()]
|
||||
message = speaking.key + " " + message; // Prepend key to prevent the message from getting trimmed
|
||||
if(speaking)
|
||||
return ..()
|
||||
|
||||
/mob/living/silicon/robot/drone/whisper_say(var/message, var/datum/language/speaking = null, var/alt_name="", var/verb="whispers")
|
||||
say(message) //drones do not get to whisper, only speak normally
|
||||
|
||||
@@ -4,9 +4,3 @@
|
||||
client.hotkeytype = "Cyborg"
|
||||
regenerate_icons()
|
||||
show_laws(0)
|
||||
if(mind) ticker.mode.remove_cultist(mind)
|
||||
if(mind) ticker.mode.remove_revolutionary(mind)
|
||||
if(mind) ticker.mode.remove_thrall(mind,0)
|
||||
if(mind) ticker.mode.remove_shadowling(mind)
|
||||
if(mind) ticker.mode.remove_changeling(mind)
|
||||
return
|
||||
|
||||
@@ -78,16 +78,13 @@ var/list/robot_verbs_default = list(
|
||||
|
||||
var/updating = 0 //portable camera camerachunk update
|
||||
|
||||
hud_possible = list(SPECIALROLE_HUD, DIAG_STAT_HUD, DIAG_HUD, DIAG_BATT_HUD,NATIONS_HUD)
|
||||
hud_possible = list(SPECIALROLE_HUD, DIAG_STAT_HUD, DIAG_HUD, DIAG_BATT_HUD, NATIONS_HUD)
|
||||
|
||||
var/magpulse = 0
|
||||
var/ionpulse = 0 // Jetpack-like effect.
|
||||
var/ionpulse_on = 0 // Jetpack-like effect.
|
||||
var/datum/effect/system/ion_trail_follow/ion_trail // Ionpulse effect.
|
||||
|
||||
var/obj/item/borg/sight/hud/sec/sechud = null
|
||||
var/obj/item/borg/sight/hud/med/healthhud = null
|
||||
|
||||
|
||||
var/datum/action/item_action/toggle_research_scanner/scanner = null
|
||||
|
||||
/mob/living/silicon/robot/New(loc,var/syndie = 0,var/unfinished = 0, var/alien = 0)
|
||||
|
||||
@@ -32,7 +32,6 @@
|
||||
var/sec_hud = DATA_HUD_SECURITY_ADVANCED //Determines the sec hud to use
|
||||
var/d_hud = DATA_HUD_DIAGNOSTIC //There is only one kind of diag hud
|
||||
|
||||
var/local_transmit //If set, can only speak to others of the same type within a short range.
|
||||
var/obj/item/device/radio/common_radio
|
||||
|
||||
/mob/living/silicon/New()
|
||||
|
||||
@@ -456,11 +456,15 @@ var/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HARM)
|
||||
A.jump_target = source
|
||||
if(!alert_overlay)
|
||||
var/old_layer = source.layer
|
||||
var/old_plane = source.plane
|
||||
source.layer = FLOAT_LAYER
|
||||
source.plane = FLOAT_PLANE
|
||||
A.overlays += source
|
||||
source.layer = old_layer
|
||||
source.plane = old_plane
|
||||
else
|
||||
alert_overlay.layer = FLOAT_LAYER
|
||||
alert_overlay.plane = FLOAT_PLANE
|
||||
A.overlays += alert_overlay
|
||||
|
||||
/mob/proc/switch_to_camera(var/obj/machinery/camera/C)
|
||||
@@ -510,10 +514,9 @@ var/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HARM)
|
||||
search_pda = 0
|
||||
|
||||
//Fixes renames not being reflected in objective text
|
||||
var/list/O = subtypesof(/datum/objective)
|
||||
var/length
|
||||
var/pos
|
||||
for(var/datum/objective/objective in O)
|
||||
for(var/datum/objective/objective in all_objectives)
|
||||
if(objective.target != mind) continue
|
||||
length = lentext(oldname)
|
||||
pos = findtextEx(objective.explanation_text, oldname)
|
||||
|
||||
Reference in New Issue
Block a user