Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into BookClub

This commit is contained in:
Aurorablade
2016-10-12 20:25:48 -04:00
62 changed files with 767 additions and 710 deletions
@@ -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)
+11
View File
@@ -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"
+2 -12
View File
@@ -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!")
-5
View File
@@ -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
+9 -2
View File
@@ -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()
+5 -2
View File
@@ -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)