Merge branch 'master' into upstream-merge-34773

This commit is contained in:
LetterJay
2018-01-24 13:58:12 -06:00
committed by GitHub
38 changed files with 95 additions and 70 deletions
+1 -1
View File
@@ -158,7 +158,7 @@
SSticker.mode.servants_of_ratvar -= owner
SSticker.mode.update_servant_icons_removed(owner)
if(!silent)
owner.current.visible_message("<span class='deconversion_message'>[owner] seems to have remembered their true allegiance!</span>", ignored_mob = owner.current)
owner.current.visible_message("<span class='deconversion_message'>[owner] seems to have remembered their true allegiance!</span>", null, null, null, owner.current)
to_chat(owner, "<span class='userdanger'>A cold, cold darkness flows through your mind, extinguishing the Justiciar's light and all of your memories as his servant.</span>")
owner.current.log_message("<font color=#BE8700>Has renounced the cult of Ratvar!</font>", INDIVIDUAL_ATTACK_LOG)
owner.special_role = null
+1 -1
View File
@@ -133,7 +133,7 @@
SSticker.mode.cult -= owner
SSticker.mode.update_cult_icons_removed(owner)
if(!silent)
owner.current.visible_message("<span class='deconversion_message'>[owner.current] looks like [owner.current.p_they()] just reverted to their old faith!</span>", ignored_mob = owner.current)
owner.current.visible_message("<span class='deconversion_message'>[owner.current] looks like [owner.current.p_they()] just reverted to their old faith!</span>", null, null, null, owner.current)
to_chat(owner.current, "<span class='userdanger'>An unfamiliar white light flashes through your mind, cleansing the taint of the Geometer and all your memories as her servant.</span>")
owner.current.log_message("<font color=#960000>Has renounced the cult of Nar'Sie!</font>", INDIVIDUAL_ATTACK_LOG)
if(cult_team.blood_target && cult_team.blood_target_image && owner.current.client)
+2 -2
View File
@@ -200,10 +200,10 @@
/datum/antagonist/rev/farewell()
if(ishuman(owner.current))
owner.current.visible_message("<span class='deconversion_message'>[owner.current] looks like they just remembered their real allegiance!</span>", ignored_mob = owner.current)
owner.current.visible_message("<span class='deconversion_message'>[owner.current] looks like they just remembered their real allegiance!</span>", null, null, null, owner.current)
to_chat(owner, "<span class='userdanger'>You are no longer a brainwashed revolutionary! Your memory is hazy from the time you were a rebel...the only thing you remember is the name of the one who brainwashed you...</span>")
else if(issilicon(owner.current))
owner.current.visible_message("<span class='deconversion_message'>The frame beeps contentedly, purging the hostile memory engram from the MMI before initalizing it.</span>", ignored_mob = owner.current)
owner.current.visible_message("<span class='deconversion_message'>The frame beeps contentedly, purging the hostile memory engram from the MMI before initalizing it.</span>", null, null, null, owner.current)
to_chat(owner, "<span class='userdanger'>The frame's firmware detects and deletes your neural reprogramming! You remember nothing but the name of the one who flashed you.</span>")
/datum/antagonist/rev/proc/remove_revolutionary(borged, deconverter)
+1 -1
View File
@@ -108,7 +108,7 @@
new /obj/effect/temp_visual/bluespace_fissure(get_turf(src))
new /obj/effect/temp_visual/bluespace_fissure(get_turf(linked_to))
user.forceMove(get_turf(linked_to))
user.visible_message("<span class='warning'>[user] [slip_in_message].</span>", ignored_mob = user)
user.visible_message("<span class='warning'>[user] [slip_in_message].</span>", null, null, null, user)
user.visible_message("<span class='warning'>[user] [slip_out_message].</span>", "<span class='notice'>...and find your way to the other side.</span>")
/datum/brain_trauma/special/psychotic_brawling
@@ -54,7 +54,7 @@
var/turf/T = get_turf(pick(GLOB.city_of_cogs_spawns))
if(is_servant_of_ratvar(AM))
T = GLOB.ark_of_the_clockwork_justiciar ? get_step(GLOB.ark_of_the_clockwork_justiciar, SOUTH) : get_turf(pick(GLOB.servant_spawns))
AM.visible_message("<span class='danger'>[AM] passes through [src]!</span>", ignored_mob = AM)
AM.visible_message("<span class='danger'>[AM] passes through [src]!</span>", null, null, null, AM)
AM.forceMove(T)
AM.visible_message("<span class='danger'>[AM] materializes from the air!</span>", \
"<span class='boldannounce'>You pass through [src] and appear [is_servant_of_ratvar(AM) ? "back at the City of Cogs" : "somewhere unfamiliar. Looks like it was a one-way trip.."].</span>")
@@ -28,7 +28,7 @@
var/turf/T = get_turf(NewLoc)
for(var/obj/effect/blessing/B in T)
if(last_failed_turf != T)
T.visible_message("<span class='warning'>[T] suddenly emits a ringing sound!</span>", ignore_mob = src)
T.visible_message("<span class='warning'>[T] suddenly emits a ringing sound!</span>", null, null, null, src)
playsound(T, 'sound/machines/clockcult/ark_damage.ogg', 75, FALSE)
last_failed_turf = T
to_chat(src, "<span class='warning'>This turf is consecrated and can't be crossed!</span>")
+1 -1
View File
@@ -8,7 +8,7 @@
/obj/effect/temp_visual/point/Initialize(mapload, set_invis = 0)
. = ..()
var/atom/old_loc = loc
forceMove(get_turf(src))
loc = get_turf(src) // We don't want to actualy trigger anything when it moves
pixel_x = old_loc.pixel_x
pixel_y = old_loc.pixel_y
invisibility = set_invis
+12
View File
@@ -4,6 +4,18 @@
icon_state = "x2"
anchored = TRUE
invisibility = INVISIBILITY_ABSTRACT
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
/obj/effect/landmark/singularity_act()
return
// Please stop bombing the Observer-Start landmark.
/obj/effect/landmark/ex_act()
return
/obj/effect/landmark/singularity_pull()
return
/obj/effect/landmark/New()
..()
+5 -5
View File
@@ -124,17 +124,17 @@
to_chat(loc, "<span class='warning'>You see [user] reach through the bars and fumble for the lock switch!</span>")
if(!do_after(user, rand(300, 400), target = user) || open || !locked || !user in occupants)
return
loc.visible_message("<span class='warning'>[user] flips the lock switch on [src] by reaching through!</span>", ignored_mob = user)
loc.visible_message("<span class='warning'>[user] flips the lock switch on [src] by reaching through!</span>", null, null, null, user)
to_chat(user, "<span class='boldannounce'>Bingo! The lock pops open!</span>")
locked = FALSE
playsound(src, 'sound/machines/boltsup.ogg', 30, TRUE)
update_icon()
else
loc.visible_message("<span class='warning'>[src] starts rattling as something pushes against the door!</span>", ignored_mob = user)
loc.visible_message("<span class='warning'>[src] starts rattling as something pushes against the door!</span>", null, null, null, user)
to_chat(user, "<span class='notice'>You start pushing out of [src]... (This will take about 20 seconds.)</span>")
if(!do_after(user, 200, target = user) || open || !locked || !user in occupants)
return
loc.visible_message("<span class='warning'>[user] shoves out of [src]!</span>", ignored_mob = user)
loc.visible_message("<span class='warning'>[user] shoves out of [src]!</span>", null, null, null, user)
to_chat(user, "<span class='notice'>You shove open [src]'s door against the lock's resistance and fall out!</span>")
locked = FALSE
open = TRUE
@@ -162,7 +162,7 @@
to_chat(user, "<span class='warning'>[src] is already carrying too much!</span>")
return
user.visible_message("<span class='notice'>[user] starts loading [target] into [src].</span>", \
"<span class='notice'>You start loading [target] into [src]...</span>", ignored_mob = target)
"<span class='notice'>You start loading [target] into [src]...</span>", null, null, target)
to_chat(target, "<span class='userdanger'>[user] starts loading you into their [name]!</span>")
if(!do_mob(user, target, 30))
return
@@ -172,7 +172,7 @@
to_chat(user, "<span class='warning'>[src] is already carrying too much!</span>")
return
user.visible_message("<span class='notice'>[user] loads [target] into [src]!</span>", \
"<span class='notice'>You load [target] into [src].</span>", ignored_mob = target)
"<span class='notice'>You load [target] into [src].</span>", null, null, target)
to_chat(target, "<span class='userdanger'>[user] loads you into their [name]!</span>")
add_occupant(target)
@@ -11,6 +11,7 @@
canSmoothWith = null
buildstacktype = null
flags_1 = NODECONSTRUCT_1
bolts = FALSE
var/static/mutable_appearance/nest_overlay = mutable_appearance('icons/mob/alien.dmi', "nestoverlay", LYING_MOB_LAYER)
/obj/structure/bed/nest/user_unbuckle_mob(mob/living/buckled_mob, mob/living/user)
@@ -88,4 +89,4 @@
if(user.a_intent != INTENT_HARM)
return attack_hand(user)
else
return ..()
return ..()
@@ -13,17 +13,19 @@
icon_state = "bed"
icon = 'icons/obj/objects.dmi'
anchored = TRUE
can_buckle = 1
buckle_lying = 1
can_buckle = TRUE
buckle_lying = TRUE
resistance_flags = FLAMMABLE
max_integrity = 100
integrity_failure = 30
var/buildstacktype = /obj/item/stack/sheet/metal
var/buildstackamount = 2
var/bolts = TRUE
/obj/structure/bed/examine(mob/user)
..()
to_chat(user, "<span class='notice'>It's held together by a couple of <b>bolts</b>.</span>")
if(bolts)
to_chat(user, "<span class='notice'>It's held together by a couple of <b>bolts</b>.</span>")
/obj/structure/bed/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
+4 -2
View File
@@ -193,7 +193,7 @@
/obj/structure/chisel_message/examine(mob/user)
..()
to_chat(user, "<span class='warning'>[hidden_message]</span>")
ui_interact(user)
/obj/structure/chisel_message/Destroy()
if(persists)
@@ -201,8 +201,10 @@
SSpersistence.chisel_messages -= src
. = ..()
/obj/structure/chisel_message/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.always_state)
/obj/structure/chisel_message/interact()
return
/obj/structure/chisel_message/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.always_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "engraved_message", name, 600, 300, master_ui, state)
@@ -5,7 +5,6 @@
/mob/living/carbon/alien
name = "alien"
voice_name = "alien"
icon = 'icons/mob/alien.dmi'
gender = FEMALE //All xenos are girls!!
dna = null
@@ -295,7 +295,7 @@
to_chat(src, "<span class='warning'>Your eyes burn.</span>")
adjust_eye_damage(rand(2, 4))
else if( damage > 3)
else if( damage >= 3)
to_chat(src, "<span class='warning'>Your eyes itch and burn severely!</span>")
adjust_eye_damage(rand(12, 16))
@@ -1,7 +1,6 @@
/mob/living/carbon/human
name = "Unknown"
real_name = "Unknown"
voice_name = "Unknown"
icon = 'icons/mob/human.dmi'
icon_state = "caucasian_m"
appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE
@@ -1,6 +1,5 @@
/mob/living/carbon/monkey
name = "monkey"
voice_name = "monkey"
verb_say = "chimpers"
initial_language_holder = /datum/language_holder/monkey
icon = 'icons/mob/monkey.dmi'
@@ -1,6 +1,5 @@
/mob/living/silicon
gender = NEUTER
voice_name = "synthesized voice"
has_unlimited_silicon_privilege = 1
verb_say = "states"
verb_ask = "queries"
@@ -35,7 +35,6 @@
sight = (SEE_TURFS | SEE_OBJS)
status_flags = (CANPUSH | CANSTUN | CANKNOCKDOWN)
gender = NEUTER
voice_name = "synthesized chirp"
speak_emote = list("chirps")
bubble_icon = "machine"
initial_language_holder = /datum/language_holder/drone
-11
View File
@@ -26,8 +26,6 @@
var/computer_id = null
var/list/logging = list(INDIVIDUAL_ATTACK_LOG, INDIVIDUAL_SAY_LOG, INDIVIDUAL_EMOTE_LOG, INDIVIDUAL_OOC_LOG)
var/obj/machinery/machine = null
var/other_mobs = null
var/next_move = null
var/notransform = null //Carbon
@@ -72,17 +70,8 @@
var/in_throw_mode = 0
var/music_lastplayed = "null"
var/job = null//Living
<<<<<<< HEAD
var/radiation = 0//Carbon
var/voice_name = "unidentifiable voice"
=======
>>>>>>> 3f10f29... Shifts vars off /mob and to the correct subtype (#34773)
var/list/faction = list("neutral") //A list of factions that this mob is currently in, for hostile mob targetting, amongst other things
var/move_on_shuttle = 1 // Can move on the shuttle.
+4 -12
View File
@@ -254,7 +254,10 @@
to_chat(user, "<span class='notice'>You take [O] out of [src].</span>")
/obj/machinery/photocopier/attackby(obj/item/O, mob/user, params)
if(istype(O, /obj/item/paper))
if(default_unfasten_wrench(user, O))
return
else if(istype(O, /obj/item/paper))
if(copier_empty())
if(istype(O, /obj/item/paper/contract/infernal))
to_chat(user, "<span class='warning'>[src] smokes, smelling of brimstone!</span>")
@@ -297,17 +300,6 @@
else
to_chat(user, "<span class='warning'>This cartridge is not yet ready for replacement! Use up the rest of the toner.</span>")
else if(istype(O, /obj/item/wrench))
if(isinspace())
to_chat(user, "<span class='warning'>There's nothing to fasten [src] to!</span>")
return
playsound(loc, O.usesound, 50, 1)
to_chat(user, "<span class='warning'>You start [anchored ? "unwrenching" : "wrenching"] [src]...</span>")
if(do_after(user, 20*O.toolspeed, target = src))
if(QDELETED(src))
return
to_chat(user, "<span class='notice'>You [anchored ? "unwrench" : "wrench"] [src].</span>")
anchored = !anchored
else if(istype(O, /obj/item/areaeditor/blueprints))
to_chat(user, "<span class='warning'>The Blueprint is too large to put into the copier. You need to find something else to record the document</span>")
else
+1 -1
View File
@@ -222,7 +222,7 @@
var/start_with_cell = TRUE // if true, this fixture generates a very weak cell at roundstart
var/emergency_mode = FALSE // if true, the light is in emergency mode
var/no_emergency = FALSE // if true, this light cannot ever have an emergency mode
var/bulb_emergency_brightness_mul // multiplier for this light's base brightness in emergency power mode
var/bulb_emergency_brightness_mul = 0.25 // multiplier for this light's base brightness in emergency power mode
var/bulb_emergency_colour = "#FF3232" // determines the colour of the light while it's in emergency mode
var/bulb_emergency_pow_mul = 0.75 // the multiplier for determining the light's power in emergency mode
var/bulb_emergency_pow_min = 0.5 // the minimum value for the light's power in emergency mode
+4 -4
View File
@@ -159,7 +159,7 @@
if (user.has_disability(DISABILITY_CLUMSY) && prob(40))
to_chat(user, "<span class='userdanger'>You shoot yourself in the foot with [src]!</span>")
var/shot_leg = pick("l_leg", "r_leg")
process_fire(user,user,0,params, zone_override = shot_leg)
process_fire(user, user, FALSE, params, shot_leg)
user.dropItemToGround(src, TRUE)
return
@@ -178,9 +178,9 @@
else if(G.can_trigger_gun(user))
bonus_spread += 24 * G.weapon_weight
loop_counter++
addtimer(CALLBACK(G, /obj/item/gun.proc/process_fire, target, user, 1, params, null, bonus_spread), loop_counter)
addtimer(CALLBACK(G, /obj/item/gun.proc/process_fire, target, user, TRUE, params, null, bonus_spread), loop_counter)
process_fire(target,user,1,params, null, bonus_spread)
process_fire(target, user, TRUE, params, null, bonus_spread)
@@ -437,7 +437,7 @@
if(chambered && chambered.BB)
chambered.BB.damage *= 5
process_fire(target, user, 1, params)
process_fire(target, user, TRUE, params)
/obj/item/gun/proc/unlock() //used in summon guns and as a convience for admins
if(pin)
+2 -2
View File
@@ -159,7 +159,7 @@
sleep(25)
if(user.is_holding(src))
var/turf/T = get_turf(user)
process_fire(user, user, 0, zone_override = "head")
process_fire(user, user, FALSE, null, "head")
user.visible_message("<span class='suicide'>[user] blows [user.p_their()] brain[user.p_s()] out with [src]!</span>")
var/turf/target = get_ranged_target_turf(user, turn(user.dir, 180), BRAINS_BLOWN_THROW_RANGE)
B.Remove(user)
@@ -215,7 +215,7 @@
. = 0
for(var/obj/item/ammo_casing/AC in magazine.stored_ammo)
if(AC.BB)
process_fire(user, user,0)
process_fire(user, user, FALSE)
. = 1
@@ -351,7 +351,7 @@
/obj/item/gun/ballistic/revolver/reverse/can_trigger_gun(mob/living/user)
if((user.has_disability(DISABILITY_CLUMSY)) || (user.mind && user.mind.assigned_role == "Clown"))
return ..()
if(process_fire(user, user, 0, zone_override = "head"))
if(process_fire(user, user, FALSE, null, "head"))
user.visible_message("<span class='warning'>[user] somehow manages to shoot [user.p_them()]self in the face!</span>", "<span class='userdanger'>You somehow shoot yourself in the face! How the hell?!</span>")
user.emote("scream")
user.drop_all_held_items()
@@ -44,7 +44,7 @@
/obj/item/gun/ballistic/shotgun/blow_up(mob/user)
. = 0
if(chambered && chambered.BB)
process_fire(user, user,0)
process_fire(user, user, FALSE)
. = 1
/obj/item/gun/ballistic/shotgun/proc/pump(mob/M)
@@ -182,6 +182,8 @@
if("eject")
if(beaker)
beaker.forceMove(drop_location())
if(Adjacent(usr) && !issilicon(usr))
usr.put_in_hands(beaker)
beaker = null
cut_overlays()
. = TRUE
@@ -29,9 +29,11 @@
else
icon_state = "mixer0b"
/obj/machinery/chem_heater/proc/eject_beaker()
/obj/machinery/chem_heater/proc/eject_beaker(mob/user)
if(beaker)
beaker.forceMove(drop_location())
if(Adjacent(user) && !issilicon(user))
user.put_in_hands(beaker)
beaker = null
update_icon()
@@ -129,5 +131,5 @@
target_temperature = CLAMP(target, 0, 1000)
if("eject")
on = FALSE
eject_beaker()
eject_beaker(usr)
. = TRUE
@@ -59,10 +59,13 @@
else
icon_state = "mixer0"
/obj/machinery/chem_master/proc/eject_beaker()
/obj/machinery/chem_master/proc/eject_beaker(mob/user)
if(beaker)
beaker.forceMove(drop_location())
adjust_item_drop_location(beaker)
if(Adjacent(user) && !issilicon(user))
user.put_in_hands(beaker)
else
adjust_item_drop_location(beaker)
beaker = null
update_icon()
@@ -169,7 +172,7 @@
return
switch(action)
if("eject")
eject_beaker()
eject_beaker(usr)
. = TRUE
if("ejectp")
@@ -201,6 +201,8 @@
if(!beaker)
return
beaker.forceMove(drop_location())
if(Adjacent(user) && !issilicon(user))
user.put_in_hands(beaker)
beaker = null
update_icon()
updateUsrDialog()