Resolved merge conflicts... I hope.

This commit is contained in:
Purpose
2018-10-06 16:01:34 +01:00
184 changed files with 18696 additions and 6969 deletions
+1 -1
View File
@@ -207,7 +207,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
for(var/obj/effect/step_trigger/S in locate(x, y, z)) //<-- this is dumb
S.Crossed(src)
var/area/A = get_area_master(src)
var/area/A = get_area(src)
if(A)
A.Entered(src)
@@ -15,8 +15,8 @@
skinned_type = /obj/item/stack/sheet/metal // Let's grind up IPCs for station resources!
eyes = "blank_eyes"
brute_mod = 2.5 // 100% * 2.5 * 0.6 (robolimbs) ~= 150%
burn_mod = 2.5 // So they take 50% extra damage from brute/burn overall.
brute_mod = 2.5 // 100% * 2.5 * 0.66 (robolimbs) = 165%
burn_mod = 2.5 // So they take 65% extra damage from brute/burn overall.
tox_mod = 0
clone_mod = 0
oxy_mod = 0
+1 -1
View File
@@ -265,7 +265,7 @@ var/list/ai_verbs_default = list(
/mob/living/silicon/ai/Destroy()
ai_list -= src
shuttle_caller_list -= src
shuttle_master.autoEvac()
SSshuttle.autoEvac()
QDEL_NULL(eyeobj) // No AI, no Eye
if(malfhacking)
deltimer(malfhacking)
+5 -5
View File
@@ -16,7 +16,7 @@
see_invisible = SEE_INVISIBLE_LEVEL_TWO
shuttle_caller_list -= src
shuttle_master.autoEvac()
SSshuttle.autoEvac()
if(nuking)
set_security_level("red")
@@ -26,10 +26,10 @@
if(doomsday_device)
doomsday_device.timing = 0
shuttle_master.emergencyNoEscape = 0
if(shuttle_master.emergency.mode == SHUTTLE_STRANDED)
shuttle_master.emergency.mode = SHUTTLE_DOCKED
shuttle_master.emergency.timer = world.time
SSshuttle.emergencyNoEscape = 0
if(SSshuttle.emergency.mode == SHUTTLE_STRANDED)
SSshuttle.emergency.mode = SHUTTLE_DOCKED
SSshuttle.emergency.timer = world.time
priority_announcement.Announce("Hostile environment resolved. You have 3 minutes to board the Emergency Shuttle.", "Priority Announcement", 'sound/AI/shuttledock.ogg')
qdel(doomsday_device)
+1 -1
View File
@@ -7,7 +7,7 @@
var/turf/T = get_turf_or_move(loc)
for(var/mob/M in viewers(T))
M.show_message("<span class=warning>[src] emits a dull beep before it loses power and collapses.</span>", 3, "<span class=warning>You hear a dull beep followed by the sound of glass crunching.</span>", 2)
M.show_message("<span class='warning'>[src] emits a dull beep before it loses power and collapses.</span>", 3, "<span class='warning'>You hear a dull beep followed by the sound of glass crunching.</span>", 2)
name = "pAI debris"
desc = "The unfortunate remains of some poor personal AI device."
icon_state = "[chassis]_dead"
+6 -6
View File
@@ -324,11 +324,11 @@
return
if(loc != card)
to_chat(src, "<span class=warning>You are already in your mobile form!</span>")
to_chat(src, "<span class='warning'>You are already in your mobile form!</span>")
return
if(world.time <= last_special)
to_chat(src, "<span class=warning>You must wait before folding your chassis out again!</span>")
to_chat(src, "<span class='warning'>You must wait before folding your chassis out again!</span>")
return
last_special = world.time + 200
@@ -336,7 +336,7 @@
//I'm not sure how much of this is necessary, but I would rather avoid issues.
force_fold_out()
visible_message("<span class=notice>[src] folds outwards, expanding into a mobile form.</span>", "<span class=notice>You fold outwards, expanding into a mobile form.</span>")
visible_message("<span class='notice'>[src] folds outwards, expanding into a mobile form.</span>", "<span class='notice'>You fold outwards, expanding into a mobile form.</span>")
/mob/living/silicon/pai/proc/force_fold_out()
if(istype(card.loc, /mob))
@@ -359,11 +359,11 @@
return
if(loc == card)
to_chat(src, "<span class=warning>You are already in your card form!</span>")
to_chat(src, "<span class='warning'>You are already in your card form!</span>")
return
if(world.time <= last_special)
to_chat(src, "<span class=warning>You must wait before returning to your card form!</span>")
to_chat(src, "<span class='warning'>You must wait before returning to your card form!</span>")
return
close_up()
@@ -494,7 +494,7 @@
if(loc == card)
return
visible_message("<span class=notice>[src] neatly folds inwards, compacting down to a rectangular card.</span>", "<span class=notice>You neatly fold inwards, compacting down to a rectangular card.</span>")
visible_message("<span class='notice'>[src] neatly folds inwards, compacting down to a rectangular card.</span>", "<span class='notice'>You neatly fold inwards, compacting down to a rectangular card.</span>")
stop_pulling()
reset_perspective(card)
@@ -281,7 +281,7 @@
grabbed_something = 1
if(grabbed_something)
to_chat(user, "<span class='notice'>You deploy your decompiler and clear out the contents of \the [T].<span>")
to_chat(user, "<span class='notice'>You deploy your decompiler and clear out the contents of \the [T].</span>")
else
to_chat(user, "<span class='warning'>Nothing on \the [T] is useful to you.</span>")
return
@@ -653,10 +653,13 @@ var/list/robot_verbs_default = list(
var/datum/robot_component/C = components[V]
if(C.installed == 1 || C.installed == -1)
removable_components += V
if(module)
removable_components += module.custom_removals
var/remove = input(user, "Which component do you want to pry out?", "Remove Component") as null|anything in removable_components
if(!remove)
return
if(module && module.handle_custom_removal(remove, user, W, params))
return
var/datum/robot_component/C = components[remove]
var/obj/item/robot_parts/robot_component/I = C.wrapped
to_chat(user, "You remove \the [I].")
@@ -15,6 +15,7 @@
var/list/stacktypes
var/channels = list()
var/list/custom_removals = list()
/obj/item/robot_module/emp_act(severity)
@@ -103,6 +104,10 @@
qdel(A)
R.module_actions.Cut()
// Return true in an overridden subtype to prevent normal removal handling
/obj/item/robot_module/proc/handle_custom_removal(component_id, mob/living/user, obj/item/W, params)
return FALSE
/obj/item/robot_module/standard
name = "standard robot module"
module_type = "Standard"
@@ -325,6 +330,7 @@
module_actions = list(
/datum/action/innate/robot_sight/meson,
)
custom_removals = list("KA modkits")
/obj/item/robot_module/miner/New()
..()
@@ -341,6 +347,13 @@
fix_modules()
/obj/item/robot_module/miner/handle_custom_removal(component_id, mob/living/user, obj/item/W, params)
if(component_id == "KA modkits")
for(var/obj/item/gun/energy/kinetic_accelerator/cyborg/D in src)
D.attackby(W, user, params)
return TRUE
return ..()
/obj/item/robot_module/deathsquad
name = "NT advanced combat module"
module_type = "Malf"
@@ -694,7 +694,7 @@
/mob/living/simple_animal/bot/mulebot/proc/RunOver(mob/living/carbon/human/H)
add_attack_logs(src, H, "Run over (DAMTYPE: [uppertext(BRUTE)])")
H.visible_message("<span class='danger'>[src] drives over [H]!</span>", \
"<span class='userdanger'>[src] drives over you!<span>")
"<span class='userdanger'>[src] drives over you!</span>")
playsound(loc, 'sound/effects/splat.ogg', 50, 1)
var/damage = rand(5,15)
+97 -144
View File
@@ -1,162 +1,115 @@
//Meant for simple animals to drop lootable human bodies.
//If someone can do this in a neater way, be my guest-Kor
//This has to be seperate from the Away Mission corpses, because New() doesn't work for those, and initialize() doesn't work for these.
//To do: Allow corpses to appear mangled, bloody, etc. Allow customizing the bodies appearance (they're all bald and white right now).
/obj/effect/landmark/mobcorpse
name = "Unknown"
var/mobname = "Unknown" //Unused now but it'd fuck up maps to remove it now
var/corpseuniform = null //Set this to an object path to have the slot filled with said object on the corpse.
var/corpsesuit = null
var/corpseshoes = null
var/corpsegloves = null
var/corpseradio = null
var/corpseglasses = null
var/corpsemask = null
var/corpsehelmet = null
var/corpsebelt = null
var/corpsepocket1 = null
var/corpsepocket2 = null
var/corpseback = null
var/corpseid = 0 //Just set to 1 if you want them to have an ID
var/corpseidjob = null // Needs to be in quotes, such as "Clown" or "Chef." This just determines what the ID reads as, not their access
var/corpseidaccess = null //This is for access. See access.dm for which jobs give what access. Again, put in quotes. Use "Captain" if you want it to be all access.
var/corpseidicon = null //For setting it to be a gold, silver, centcomm etc ID
/obj/effect/landmark/mobcorpse/New()
createCorpse()
/obj/effect/landmark/mobcorpse/proc/createCorpse() //Creates a mob and checks for gear in each slot before attempting to equip it.
var/mob/living/carbon/human/M = new /mob/living/carbon/human (src.loc)
M.real_name = src.name
M.stat = 2 //Kills the new mob
if(src.corpseuniform)
M.equip_to_slot_or_del(new src.corpseuniform(M), slot_w_uniform)
if(src.corpsesuit)
M.equip_to_slot_or_del(new src.corpsesuit(M), slot_wear_suit)
if(src.corpseshoes)
M.equip_to_slot_or_del(new src.corpseshoes(M), slot_shoes)
if(src.corpsegloves)
M.equip_to_slot_or_del(new src.corpsegloves(M), slot_gloves)
if(src.corpseradio)
M.equip_to_slot_or_del(new src.corpseradio(M), slot_l_ear)
if(src.corpseglasses)
M.equip_to_slot_or_del(new src.corpseglasses(M), slot_glasses)
if(src.corpsemask)
M.equip_to_slot_or_del(new src.corpsemask(M), slot_wear_mask)
if(src.corpsehelmet)
M.equip_to_slot_or_del(new src.corpsehelmet(M), slot_head)
if(src.corpsebelt)
M.equip_to_slot_or_del(new src.corpsebelt(M), slot_belt)
if(src.corpsepocket1)
M.equip_to_slot_or_del(new src.corpsepocket1(M), slot_r_store)
if(src.corpsepocket2)
M.equip_to_slot_or_del(new src.corpsepocket2(M), slot_l_store)
if(src.corpseback)
M.equip_to_slot_or_del(new src.corpseback(M), slot_back)
if(src.corpseid == 1)
var/obj/item/card/id/W = new(M)
W.name = "[M.real_name]'s ID Card"
var/datum/job/jobdatum
for(var/jobtype in typesof(/datum/job))
var/datum/job/J = new jobtype
if(J.title == corpseidaccess)
jobdatum = J
break
if(src.corpseidicon)
W.icon_state = corpseidicon
if(src.corpseidaccess)
if(jobdatum)
W.access = jobdatum.get_access()
else
W.access = list()
if(corpseidjob)
W.assignment = corpseidjob
W.registered_name = M.real_name
M.equip_to_slot_or_del(W, slot_wear_id)
qdel(src)
//List of different corpse types
/obj/effect/landmark/mobcorpse/syndicatesoldier
/obj/effect/mob_spawn/human/corpse/syndicatesoldier
name = "Syndicate Operative"
corpseuniform = /obj/item/clothing/under/syndicate
corpsesuit = /obj/item/clothing/suit/armor/vest
corpseshoes = /obj/item/clothing/shoes/combat
corpsegloves = /obj/item/clothing/gloves/combat
corpseradio = /obj/item/radio/headset
corpsemask = /obj/item/clothing/mask/gas
corpsehelmet = /obj/item/clothing/head/helmet/swat
corpseback = /obj/item/storage/backpack
corpseid = 1
corpseidjob = "Operative"
corpseidaccess = "Syndicate"
mob_name = "Syndicate Operative"
hair_style = "bald"
facial_hair_style = "shaved"
id_job = "Operative"
id_access_list = list(access_syndicate)
outfit = /datum/outfit/syndicatesoldiercorpse
/datum/outfit/syndicatesoldiercorpse
name = "Syndicate Operative Corpse"
uniform = /obj/item/clothing/under/syndicate
suit = /obj/item/clothing/suit/armor/vest
shoes = /obj/item/clothing/shoes/combat
gloves = /obj/item/clothing/gloves/combat
l_ear = /obj/item/radio/headset
mask = /obj/item/clothing/mask/gas
head = /obj/item/clothing/head/helmet/swat
back = /obj/item/storage/backpack
id = /obj/item/card/id
/obj/effect/landmark/mobcorpse/syndicatecommando
/obj/effect/mob_spawn/human/corpse/syndicatecommando
name = "Syndicate Commando"
corpseuniform = /obj/item/clothing/under/syndicate
corpsesuit = /obj/item/clothing/suit/space/hardsuit/syndi
corpseshoes = /obj/item/clothing/shoes/combat
corpsegloves = /obj/item/clothing/gloves/combat
corpseradio = /obj/item/radio/headset
corpsemask = /obj/item/clothing/mask/gas/syndicate
corpsehelmet = /obj/item/clothing/head/helmet/space/hardsuit/syndi
corpseback = /obj/item/tank/jetpack/oxygen
corpsepocket1 = /obj/item/tank/emergency_oxygen
corpseid = 1
corpseidjob = "Operative"
corpseidaccess = "Syndicate"
mob_name = "Syndicate Commando"
hair_style = "bald"
facial_hair_style = "shaved"
id_job = "Operative"
id_access_list = list(access_syndicate)
outfit = /datum/outfit/syndicatecommandocorpse
/obj/effect/landmark/mobcorpse/syndicateautogib/createCorpse()
var/mob/living/carbon/human/M = new /mob/living/carbon/human(loc)
M.real_name = src.name
M.gib()
qdel(src)
/datum/outfit/syndicatecommandocorpse
name = "Syndicate Commando Corpse"
uniform = /obj/item/clothing/under/syndicate
suit = /obj/item/clothing/suit/space/hardsuit/syndi
shoes = /obj/item/clothing/shoes/combat
gloves = /obj/item/clothing/gloves/combat
l_ear = /obj/item/radio/headset
mask = /obj/item/clothing/mask/gas/syndicate
back = /obj/item/tank/jetpack/oxygen
r_pocket = /obj/item/tank/emergency_oxygen
id = /obj/item/card/id
/obj/effect/landmark/mobcorpse/clown
name = "Clown"
corpseuniform = /obj/item/clothing/under/rank/clown
corpseshoes = /obj/item/clothing/shoes/clown_shoes
corpseradio = /obj/item/radio/headset
corpsemask = /obj/item/clothing/mask/gas/clown_hat
corpsepocket1 = /obj/item/bikehorn
corpseback = /obj/item/storage/backpack/clown
corpseid = 1
corpseidjob = "Clown"
corpseidaccess = "Clown"
/obj/effect/mob_spawn/human/clown/corpse
roundstart = TRUE
instant = TRUE
/obj/effect/mob_spawn/human/mime/corpse
roundstart = TRUE
instant = TRUE
/obj/effect/landmark/mobcorpse/pirate
/obj/effect/mob_spawn/human/corpse/pirate
name = "Pirate"
corpseuniform = /obj/item/clothing/under/pirate
corpseshoes = /obj/item/clothing/shoes/jackboots
corpseglasses = /obj/item/clothing/glasses/eyepatch
corpsehelmet = /obj/item/clothing/head/bandana
mob_name = "Pirate"
hair_style = "bald"
facial_hair_style = "shaved"
outfit = /datum/outfit/piratecorpse
/datum/outfit/piratecorpse
name = "Pirate Corpse"
uniform = /obj/item/clothing/under/pirate
shoes = /obj/item/clothing/shoes/jackboots
glasses = /obj/item/clothing/glasses/eyepatch
head = /obj/item/clothing/head/bandana
/obj/effect/landmark/mobcorpse/pirate/ranged
/obj/effect/mob_spawn/human/corpse/pirate/ranged
name = "Pirate Gunner"
corpsesuit = /obj/item/clothing/suit/pirate_black
corpsehelmet = /obj/item/clothing/head/pirate
mob_name = "Pirate Gunner"
outfit = /datum/outfit/piratecorpse/ranged
/datum/outfit/piratecorpse/ranged
name = "Pirate Gunner Corpse"
suit = /obj/item/clothing/suit/pirate_black
head = /obj/item/clothing/head/pirate
/obj/effect/landmark/mobcorpse/russian
/obj/effect/mob_spawn/human/corpse/russian
name = "Russian"
corpseuniform = /obj/item/clothing/under/soviet
corpseshoes = /obj/item/clothing/shoes/jackboots
corpsehelmet = /obj/item/clothing/head/bearpelt
mob_name = "Russian"
hair_style = "bald"
facial_hair_style = "shaved"
outfit = /datum/outfit/russiancorpse
/obj/effect/landmark/mobcorpse/russian/ranged
corpsehelmet = /obj/item/clothing/head/ushanka
/datum/outfit/russiancorpse
name = "Russian Corpse"
uniform = /obj/item/clothing/under/soviet
shoes = /obj/item/clothing/shoes/jackboots
head = /obj/item/clothing/head/bearpelt
/obj/effect/mob_spawn/human/corpse/russian/ranged
outfit = /datum/outfit/russiancorpse/ranged
/datum/outfit/russiancorpse/ranged
name = "Ranged Russian Corpse"
head = /obj/item/clothing/head/ushanka
/obj/effect/mob_spawn/human/corpse/wizard
name = "Space Wizard Corpse"
outfit = /datum/outfit/wizardcorpse
/obj/effect/mob_spawn/human/corpse/clownoff/Initialize()
mob_name = "[pick(wizard_first)], [pick(wizard_second)]"
..()
/datum/outfit/wizardcorpse
name = "Space Wizard Corpse"
uniform = /obj/item/clothing/under/color/lightpurple
suit = /obj/item/clothing/suit/wizrobe
shoes = /obj/item/clothing/shoes/sandal
head = /obj/item/clothing/head/wizard
@@ -78,7 +78,7 @@
to_chat(user, "<span class='warning'>[src] is wearing too much armor! You can't cause [p_them()] any damage.</span>")
visible_message("<span class='danger'> [user] hits [src] with [O], however [src] is too armored.</span>")
else
to_chat(user, "<span class='warning'>[src] is wearing too much armor! You can't reach [p_their()] skin.<span>")
to_chat(user, "<span class='warning'>[src] is wearing too much armor! You can't reach [p_their()] skin.</span>")
visible_message("[user] gently taps [src] with [O].")
if(health>0 && prob(15))
custom_emote(1, "looks at [user] with [pick("an amused","an annoyed","a confused","a resentful", "a happy", "an excited")] expression.")
@@ -242,7 +242,7 @@
stored_mob.forceMove(get_turf(src))
stored_mob = null
else
new /obj/effect/landmark/corpse/damaged(T)
new /obj/effect/mob_spawn/human/corpse/charredskeleton(T)
..(gibbed)
@@ -320,4 +320,14 @@
name = "legion's head"
desc = "The once living, now empty eyes of the former human's skull cut deep into your soul."
icon = 'icons/obj/mining.dmi'
icon_state = "skull"
icon_state = "skull"
/obj/effect/mob_spawn/human/corpse/charredskeleton
name = "charred skeletal remains"
burn_damage = 1000
mob_name = "ashen skeleton"
mob_gender = NEUTER
husk = FALSE
mob_species = /datum/species/skeleton
mob_color = "#454545"
@@ -23,7 +23,7 @@
atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
unsuitable_atmos_damage = 15
speak_emote = list("yarrs")
loot = list(/obj/effect/landmark/mobcorpse/pirate,
loot = list(/obj/effect/mob_spawn/human/corpse/pirate,
/obj/item/melee/energy/sword/pirate)
del_on_death = 1
faction = list("pirate")
@@ -40,5 +40,5 @@
retreat_distance = 5
minimum_distance = 5
projectiletype = /obj/item/projectile/beam
loot = list(/obj/effect/landmark/mobcorpse/pirate/ranged,
loot = list(/obj/effect/mob_spawn/human/corpse/pirate/ranged,
/obj/item/gun/energy/laser)
@@ -22,7 +22,7 @@
unsuitable_atmos_damage = 15
faction = list("russian")
status_flags = CANPUSH
loot = list(/obj/effect/landmark/mobcorpse/russian,
loot = list(/obj/effect/mob_spawn/human/corpse/russian,
/obj/item/kitchen/knife)
del_on_death = 1
sentience_type = SENTIENCE_OTHER
@@ -34,9 +34,9 @@
retreat_distance = 5
minimum_distance = 5
casingtype = /obj/item/ammo_casing/a357
loot = list(/obj/effect/landmark/mobcorpse/russian/ranged, /obj/item/gun/projectile/revolver/mateba)
loot = list(/obj/effect/mob_spawn/human/corpse/russian/ranged, /obj/item/gun/projectile/revolver/mateba)
/mob/living/simple_animal/hostile/russian/ranged/mosin
loot = list(/obj/effect/landmark/mobcorpse/russian/ranged,
loot = list(/obj/effect/mob_spawn/human/corpse/russian/ranged,
/obj/item/gun/projectile/shotgun/boltaction)
casingtype = /obj/item/ammo_casing/a762
@@ -168,11 +168,11 @@
W.ChangeTurf(/turf/simulated/floor/plating)
new /obj/item/stack/sheet/metal(src, plasmaPoopPotential)
currentlyEating = null //ffs, unstore this
src.visible_message("<span class='userdanger'>\the [src] eats \the [noms]!</span>","<span class='notice'>You eat \the [noms]!</span>","<span class=userdanger'>You hear gnashing.</span>") //inform everyone what the fucking worm is doing.
src.visible_message("<span class='userdanger'>\the [src] eats \the [noms]!</span>","<span class='notice'>You eat \the [noms]!</span>","<span class='userdanger'>You hear gnashing.</span>") //inform everyone what the fucking worm is doing.
else
currentlyEating = null
contents += noms
src.visible_message("<span class='userdanger'>\the [src] eats \the [noms]!</span>","<span class='notice'>You eat \the [noms]!</span>","<span class=userdanger'>You hear gnashing.</span>") //inform everyone what the fucking worm is doing.
src.visible_message("<span class='userdanger'>\the [src] eats \the [noms]!</span>","<span class='notice'>You eat \the [noms]!</span>","<span class='userdanger'>You hear gnashing.</span>") //inform everyone what the fucking worm is doing.
if(ismob(noms))
var/mob/M = noms //typecast because noms isn't movable
M.loc = src //because just setting a mob loc to null breaks the camera and such
@@ -331,4 +331,4 @@
/mob/living/simple_animal/hostile/spaceWorm/do_attack_animation(atom/A, visual_effect_icon, used_item, no_effect, end_pixel_y)
..()
if(previousWorm)
previousWorm.do_attack_animation(src)
previousWorm.do_attack_animation(src)
@@ -23,7 +23,7 @@
faction = list("syndicate")
check_friendly_fire = 1
status_flags = CANPUSH
loot = list(/obj/effect/landmark/mobcorpse/syndicatesoldier)
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier)
del_on_death = 1
sentience_type = SENTIENCE_OTHER
@@ -38,7 +38,7 @@
attack_sound = 'sound/weapons/bladeslice.ogg'
armour_penetration = 28
status_flags = 0
loot = list(/obj/effect/landmark/mobcorpse/syndicatesoldier, /obj/item/melee/energy/sword/saber/red, /obj/item/shield/energy)
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier, /obj/item/melee/energy/sword/saber/red, /obj/item/shield/energy)
var/melee_block_chance = 20
/mob/living/simple_animal/hostile/syndicate/melee/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
@@ -72,7 +72,7 @@
return 0
/mob/living/simple_animal/hostile/syndicate/melee/autogib
loot = list(/obj/effect/landmark/mobcorpse/syndicateautogib)
loot = list()//no loot, its gonna delete and gib.
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot
name = "Syndicate Operative"
@@ -81,6 +81,7 @@
stat_attack = 1
universal_speak = 1
melee_block_chance = 40
del_on_death = 1
var/area/syndicate_depot/core/depotarea
var/raised_alert = FALSE
var/alert_on_death = FALSE
@@ -182,6 +183,7 @@
depotarea.shields_key_check()
if(depotarea)
depotarea.list_remove(src, depotarea.guard_list)
new /obj/effect/gibspawner/human(get_turf(src))
return ..()
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/CanPass(atom/movable/mover, turf/target, height=0)
@@ -247,7 +249,7 @@
icon_state = "syndicatemeleespace"
icon_living = "syndicatemeleespace"
speed = 1
loot = list(/obj/effect/landmark/mobcorpse/syndicatecommando, /obj/item/melee/energy/sword/saber/red, /obj/item/shield/energy)
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando, /obj/item/melee/energy/sword/saber/red, /obj/item/shield/energy)
/mob/living/simple_animal/hostile/syndicate/melee/space/Process_Spacemove(var/movement_dir = 0)
return
@@ -261,7 +263,7 @@
icon_state = "syndicateranged"
icon_living = "syndicateranged"
casingtype = /obj/item/ammo_casing/c45
loot = list(/obj/effect/landmark/mobcorpse/syndicatesoldier, /obj/item/gun/projectile/automatic/c20r)
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier, /obj/item/gun/projectile/automatic/c20r)
/mob/living/simple_animal/hostile/syndicate/ranged/space
icon_state = "syndicaterangedpsace"
@@ -270,14 +272,13 @@
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
speed = 1
loot = list(/obj/effect/landmark/mobcorpse/syndicatecommando, /obj/item/gun/projectile/automatic/c20r)
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando, /obj/item/gun/projectile/automatic/c20r)
/mob/living/simple_animal/hostile/syndicate/ranged/space/Process_Spacemove(var/movement_dir = 0)
return
/mob/living/simple_animal/hostile/syndicate/ranged/space/autogib
loot = list(/obj/effect/landmark/mobcorpse/syndicateautogib)
loot = list()//gonna gibe, no loot.
/mob/living/simple_animal/hostile/viscerator
name = "viscerator"
+2 -2
View File
@@ -995,9 +995,9 @@ var/list/slot_equipment_priority = list( \
// this function displays the shuttles ETA in the status panel if the shuttle has been called
/mob/proc/show_stat_emergency_shuttle_eta()
var/ETA = shuttle_master.emergency.getModeStr()
var/ETA = SSshuttle.emergency.getModeStr()
if(ETA)
stat(null, "[ETA] [shuttle_master.emergency.getTimerStr()]")
stat(null, "[ETA] [SSshuttle.emergency.getTimerStr()]")
/mob/proc/show_stat_turf_contents()
if(listed_turf && client)
+1 -1
View File
@@ -469,7 +469,7 @@ var/list/intents = list(INTENT_HELP,INTENT_DISARM,INTENT_GRAB,INTENT_HARM)
/proc/notify_ghosts(message, ghost_sound = null, enter_link = null, title = null, atom/source = null, image/alert_overlay = null, flashwindow = TRUE, var/action = NOTIFY_JUMP) //Easy notification of ghosts.
for(var/mob/dead/observer/O in player_list)
if(O.client)
to_chat(O, "<span class='ghostalert'>[message][(enter_link) ? " [enter_link]" : ""]<span>")
to_chat(O, "<span class='ghostalert'>[message][(enter_link) ? " [enter_link]" : ""]</span>")
if(ghost_sound)
O << sound(ghost_sound)
if(flashwindow)
+4 -4
View File
@@ -361,11 +361,11 @@
character.buckled.loc = character.loc
character.buckled.dir = character.dir
ticker.mode.latespawn(character)
character = job_master.EquipRank(character, rank, 1) //equips the human
EquipCustomItems(character)
ticker.mode.latespawn(character)
if(character.mind.assigned_role == "Cyborg")
AnnounceCyborg(character, rank, join_message)
callHook("latespawn", list(character))
@@ -433,9 +433,9 @@
var/dat = "<html><body><center>"
dat += "Round Duration: [round(hours)]h [round(mins)]m<br>"
if(shuttle_master.emergency.mode >= SHUTTLE_ESCAPE)
if(SSshuttle.emergency.mode >= SHUTTLE_ESCAPE)
dat += "<font color='red'><b>The station has been evacuated.</b></font><br>"
else if(shuttle_master.emergency.mode >= SHUTTLE_CALL)
else if(SSshuttle.emergency.mode >= SHUTTLE_CALL)
dat += "<font color='red'>The station is currently undergoing evacuation procedures.</font><br>"
if(length(job_master.prioritized_jobs))