Merge upstream

This commit is contained in:
Cyberboss
2017-03-27 09:32:08 -04:00
110 changed files with 1368 additions and 705 deletions
+10 -1
View File
@@ -18,6 +18,14 @@
. = is_eligible_servant(new_body)
/datum/antagonist/clockcultist/give_to_body(mob/living/new_body)
if(iscyborg(new_body))
var/mob/living/silicon/robot/R = new_body
if(R.deployed)
var/mob/living/silicon/ai/AI = R.mainframe
R.undeploy()
var/converted = add_servant_of_ratvar(AI, silent_update)
to_chat(AI, "<span class='userdanger'>Anomaly Detected. Returned to core!</span>") //The AI needs to be in its core to properly be converted
return converted
if(!silent_update)
if(issilicon(new_body))
to_chat(new_body, "<span class='heavy_brass'>You are unable to compute this truth. Your vision glows a brilliant yellow, and all at once it comes to you. Ratvar, the Clockwork Justiciar, \
@@ -69,7 +77,8 @@
var/mob/living/silicon/S = owner
if(iscyborg(S))
var/mob/living/silicon/robot/R = S
R.UnlinkSelf()
if(!R.shell)
R.UnlinkSelf()
R.module.rebuild_modules()
else if(isAI(S))
var/mob/living/silicon/ai/A = S
+3 -2
View File
@@ -543,11 +543,12 @@
/datum/martial_art/cqc/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("D",D)
var/obj/item/I = null
if(check_streak(A,D))
return 1
if(prob(65))
if(!D.stat || !D.weakened || !restraining)
var/obj/item/I = D.get_active_held_item()
I = D.get_active_held_item()
D.visible_message("<span class='warning'>[A] strikes [D]'s jaw with their hand!</span>", \
"<span class='userdanger'>[A] strikes your jaw, disorienting you!</span>")
playsound(get_turf(D), 'sound/weapons/cqchit1.ogg', 50, 1, -1)
@@ -560,7 +561,7 @@
D.visible_message("<span class='danger'>[A] attempted to disarm [D]!</span>", \
"<span class='userdanger'>[A] attempted to disarm [D]!</span>")
playsound(D, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
add_logs(A, D, "disarmed with CQC")
add_logs(A, D, "disarmed with CQC", "[I ? " grabbing \the [I]" : ""]")
if(restraining && A.pulling == D)
D.visible_message("<span class='danger'>[A] puts [D] into a chokehold!</span>", \
"<span class='userdanger'>[A] puts you into a chokehold!</span>")
+3 -2
View File
@@ -132,8 +132,9 @@
/datum/martial_art/krav_maga/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
if(check_streak(A,D))
return 1
var/obj/item/I = null
if(prob(60))
var/obj/item/I = D.get_active_held_item()
I = D.get_active_held_item()
if(I)
if(D.drop_item())
A.put_in_hands(I)
@@ -144,7 +145,7 @@
D.visible_message("<span class='danger'>[A] attempted to disarm [D]!</span>", \
"<span class='userdanger'>[A] attempted to disarm [D]!</span>")
playsound(D, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
add_logs(A, D, "disarmed with krav maga")
add_logs(A, D, "disarmed with krav maga", "[I ? " removing \the [I]" : ""]")
return 1
//Krav Maga Gloves
+1 -3
View File
@@ -126,7 +126,6 @@
var/area/N = V
N.layer = overlay_layer
N.icon = 'icons/effects/weather_effects.dmi'
N.invisibility = 0
N.color = weather_color
switch(stage)
if(STARTUP_STAGE)
@@ -137,8 +136,7 @@
N.icon_state = end_overlay
if(END_STAGE)
N.color = null
N.icon_state = initial(N.icon_state)
N.icon_state = ""
N.icon = 'icons/turf/areas.dmi'
N.layer = AREA_LAYER //Just default back to normal area stuff since I assume setting a var is faster than initial
N.invisibility = INVISIBILITY_MAXIMUM
N.set_opacity(FALSE)
+7 -2
View File
@@ -34,7 +34,11 @@
var/new_ai = select_active_ai(R)
if(new_ai && (new_ai != R.connected_ai))
R.connected_ai = new_ai
R.notify_ai(TRUE)
if(R.shell)
R.undeploy() //If this borg is an AI shell, disconnect the controlling AI and assign ti to a new AI
R.notify_ai(AI_SHELL)
else
R.notify_ai(TRUE)
if(WIRE_CAMERA) // Pulse to disable the camera.
if(!isnull(R.camera) && !R.scrambledcodes)
R.camera.toggle_cam(usr, 0)
@@ -56,11 +60,12 @@
if(WIRE_AI) // Cut the AI wire to reset AI control.
if(!mend)
R.connected_ai = null
R.undeploy() //Forced disconnect of an AI should this body be a shell.
if(WIRE_LAWSYNC) // Cut the law wire, and the borg will no longer receive law updates from its AI. Repair and it will re-sync.
if(mend)
if(!R.emagged)
R.lawupdate = TRUE
else
else if(!R.deployed) //AI shells must always have the same laws as the AI
R.lawupdate = FALSE
if (WIRE_CAMERA) // Disable the camera.
if(!isnull(R.camera) && !R.scrambledcodes)