Merge remote-tracking branch 'refs/remotes/ParadiseSS13/master' into freegolems

This commit is contained in:
datlo
2019-02-03 06:41:02 +00:00
68 changed files with 3222 additions and 3057 deletions
@@ -1992,3 +1992,12 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
dna.SetSEState(block, FALSE, TRUE)
genemutcheck(src, block, null, MUTCHK_FORCED)
dna.UpdateSE()
/mob/living/carbon/human/extinguish_light()
// Parent function handles stuff the human may be holding
..()
var/obj/item/organ/internal/lantern/O = get_int_organ(/obj/item/organ/internal/lantern)
if(O && O.glowing)
O.toggle_biolum(TRUE)
visible_message("<span class='danger'>[src] is engulfed in shadows and fades into the darkness.</span>", "<span class='danger'>A sense of dread washes over you as you suddenly dim dark.</span>")
@@ -91,6 +91,9 @@
var/obj/item/organ/internal/L = get_organ_slot("lungs")
if((breathes && !L) || breathes && L && (L.status & ORGAN_DEAD))
return FALSE
if(oxyloss > 10 || losebreath >= 4)
emote("gasp")
return FALSE
if(mind)
return !mind.miming
return TRUE
+16
View File
@@ -80,6 +80,10 @@
if(moving_diagonally) //no mob swap during diagonal moves.
return 1
if(a_intent == INTENT_HELP) // Help intent doesn't mob swap a mob pulling a structure
if(isstructure(M.pulling) || isstructure(pulling))
return 1
if(!M.buckled && !M.has_buckled_mobs())
var/mob_swap
//the puller can always swap with it's victim if on grab intent
@@ -128,6 +132,13 @@
//Called when we want to push an atom/movable
/mob/living/proc/PushAM(atom/movable/AM, force = move_force)
if(isstructure(AM) && AM.pulledby)
if(a_intent == INTENT_HELP && AM.pulledby != src) // Help intent doesn't push other peoples pulled structures
return FALSE
if(get_dist(get_step(AM, get_dir(src, AM)), AM.pulledby)>1)//Release pulled structures beyond 1 distance
AM.pulledby.stop_pulling()
if(now_pushing)
return TRUE
if(moving_diagonally) // no pushing during diagonal moves
@@ -976,3 +987,8 @@
/mob/living/proc/fakefire()
return
/mob/living/extinguish_light()
for(var/atom/A in src)
if(A.light_range > 0)
A.extinguish_light()
@@ -79,6 +79,7 @@
var/obj/item/integrated_radio/signal/sradio // AI's signaller
var/translator_on = 0 // keeps track of the translator module
var/flashlight_on = FALSE //keeps track of the flashlight module
var/current_pda_messaging = null
var/custom_sprite = 0
@@ -607,3 +608,8 @@
else //something went very wrong.
CRASH("pAI without card")
loc = card
/mob/living/silicon/pai/extinguish_light()
flashlight_on = FALSE
set_light(0)
card.set_light(0)
@@ -609,3 +609,20 @@
data["holder"] = 0
return data
/datum/pai_software/flashlight
name = "Flashlight"
ram_cost = 5
id = "flashlight"
/datum/pai_software/flashlight/toggle(mob/living/silicon/pai/user)
var/atom/movable/actual_location = istype(user.loc, /obj/item/paicard) ? user.loc : user
if(user.flashlight_on)
actual_location.set_light(2)
user.card.set_light(2)
return
actual_location.set_light(2)
user.card.set_light(0)
/datum/pai_software/flashlight/is_active(mob/living/silicon/pai/user)
return user.flashlight_on
@@ -1382,6 +1382,9 @@ var/list/robot_verbs_default = list(
if(2)
disable_component("comms", 60)
/mob/living/silicon/robot/extinguish_light()
update_headlamp(1, 150)
/mob/living/silicon/robot/rejuvenate()
..()
var/brute = 1000
+1
View File
@@ -3,6 +3,7 @@
layer = 4.0
animate_movement = 2
pressure_resistance = 8
dont_save = TRUE //to avoid it messing up in buildmode saving
var/datum/mind/mind
var/stat = 0 //Whether a mob is alive or dead. TODO: Move this to living - Nodrak
+1
View File
@@ -536,6 +536,7 @@ var/list/intents = list(INTENT_HELP,INTENT_DISARM,INTENT_GRAB,INTENT_HARM)
if(ID.registered_name == oldname)
ID.registered_name = newname
ID.name = "[newname]'s ID Card ([ID.assignment])"
ID.RebuildHTML()
if(!search_pda) break
search_id = 0