Merge remote-tracking branch 'upstream/master' into universal-damage

# Conflicts:
#	code/modules/clothing/suits/labcoat.dm
#	code/modules/clothing/under/miscellaneous.dm
#	code/modules/mob/living/carbon/human/species/golem.dm
#	code/modules/mob/living/simple_animal/bot/ed209bot.dm
This commit is contained in:
Fox McCloud
2019-09-21 12:40:07 -04:00
280 changed files with 2015 additions and 77150 deletions
+59
View File
@@ -0,0 +1,59 @@
/datum/component/caltrop
var/min_damage
var/max_damage
var/probability
var/flags
var/cooldown = 0
/datum/component/caltrop/Initialize(_min_damage = 0, _max_damage = 0, _probability = 100, _flags = NONE)
min_damage = _min_damage
max_damage = max(_min_damage, _max_damage)
probability = _probability
flags = _flags
RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED), .proc/Crossed)
/datum/component/caltrop/proc/Crossed(datum/source, atom/movable/AM)
var/atom/A = parent
if(!has_gravity(A))
return
if(!prob(probability))
return
if(ishuman(AM))
var/mob/living/carbon/human/H = AM
if(PIERCEIMMUNE in H.dna.species.species_traits)
return
if((flags & CALTROP_IGNORE_WALKERS) && H.m_intent == MOVE_INTENT_WALK)
return
var/picked_def_zone = pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
var/obj/item/organ/external/O = H.get_organ(picked_def_zone)
if(!istype(O))
return
if(O.is_robotic())
return
var/feetCover = (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)) || (H.w_uniform && (H.w_uniform.body_parts_covered & FEET))
if(!(flags & CALTROP_BYPASS_SHOES) && (H.shoes || feetCover))
return
if((H.flying) || H.buckled)
return
var/damage = rand(min_damage, max_damage)
H.apply_damage(damage, BRUTE, picked_def_zone)
if(cooldown < world.time - 10) //cooldown to avoid message spam.
if(!H.incapacitated(ignore_restraints = TRUE))
H.visible_message("<span class='danger'>[H] steps on [A].</span>", "<span class='userdanger'>You step on [A]!</span>")
else
H.visible_message("<span class='danger'>[H] slides on [A]!</span>", "<span class='userdanger'>You slide on [A]!</span>")
cooldown = world.time
H.Weaken(3)
+1 -13
View File
@@ -114,7 +114,6 @@
preloadRuinTemplates()
preloadShelterTemplates()
preloadShuttleTemplates()
preloadVRTemplates()
/proc/preloadRuinTemplates()
// Still supporting bans by filename
@@ -162,15 +161,4 @@
var/datum/map_template/shuttle/S = new shuttle_type()
shuttle_templates[S.shuttle_id] = S
map_templates[S.shuttle_id] = S
/proc/preloadVRTemplates()
for(var/item in subtypesof(/datum/map_template/vr))
var/datum/map_template/vr/vr_type = item
if(!initial(vr_type.suffix))
continue
var/datum/map_template/vr/V = new vr_type()
vr_templates[V.id] = V
map_templates[V.id] = V
map_templates[S.shuttle_id] = S
+4
View File
@@ -1524,6 +1524,10 @@
SSticker.mode.abductors |= src
var/datum/objective/stay_hidden/hidden_obj = new
hidden_obj.owner = src
objectives += hidden_obj
var/datum/objective/experiment/O = new
O.owner = src
objectives += O
+1 -1
View File
@@ -11,7 +11,7 @@
include_user = 1
action_icon_state = "charge"
/obj/effect/proc_holder/spell/targeted/charge/cast(list/targets,mob/user = usr)
/obj/effect/proc_holder/spell/targeted/charge/cast(list/targets, mob/user = usr)
for(var/mob/living/L in targets)
var/list/hand_items = list(L.get_active_hand(),L.get_inactive_hand())
var/charged_item = null
+12 -12
View File
@@ -1767,10 +1767,16 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
///////////// Station Goals
/datum/supply_packs/misc/bsa
/datum/supply_packs/misc/station_goal
name = "Empty Station Goal Crate"
cost = 10
special = TRUE
containername = "empty station goal crate"
containertype = /obj/structure/closet/crate/engineering
/datum/supply_packs/misc/station_goal/bsa
name = "Bluespace Artillery Parts"
cost = 150
special = TRUE
contains = list(/obj/item/circuitboard/machine/bsa/front,
/obj/item/circuitboard/machine/bsa/middle,
/obj/item/circuitboard/machine/bsa/back,
@@ -1778,19 +1784,17 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
)
containername = "bluespace artillery parts crate"
/datum/supply_packs/misc/dna_vault
/datum/supply_packs/misc/station_goal/dna_vault
name = "DNA Vault Parts"
cost = 120
special = TRUE
contains = list(
/obj/item/circuitboard/machine/dna_vault
)
containername = "dna vault parts crate"
/datum/supply_packs/misc/dna_probes
/datum/supply_packs/misc/station_goal/dna_probes
name = "DNA Vault Samplers"
cost = 30
special = TRUE
contains = list(/obj/item/dna_probe,
/obj/item/dna_probe,
/obj/item/dna_probe,
@@ -1799,11 +1803,9 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
)
containername = "dna samplers crate"
/datum/supply_packs/misc/shield_sat
/datum/supply_packs/misc/station_goal/shield_sat
name = "Shield Generator Satellite"
cost = 30
special = TRUE
contains = list(
/obj/machinery/satellite/meteor_shield,
/obj/machinery/satellite/meteor_shield,
@@ -1811,11 +1813,9 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
)
containername = "shield sat crate"
/datum/supply_packs/misc/shield_sat_control
/datum/supply_packs/misc/station_goal/shield_sat_control
name = "Shield System Control Board"
cost = 50
special = TRUE
contains = list(
/obj/item/circuitboard/computer/sat_control
)
+3 -3
View File
@@ -925,10 +925,10 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
surplus = 50
/datum/uplink_item/stealthy_weapons/dart_pistol
name = "Dart Pistol"
desc = "A miniaturized version of a normal syringe gun. It is very quiet when fired and can fit into any space a small item can."
name = "Dart Pistol Kit"
desc = "A miniaturized version of a normal syringe gun. It is very quiet when fired and can fit into any space a small item can. Comes with 3 syringes, a knockout poison, a silencing agent and a deadly neurotoxin."
reference = "DART"
item = /obj/item/gun/syringe/syndicate
item = /obj/item/storage/box/syndie_kit/dart_gun
cost = 4
surplus = 50
excludefrom = list(/datum/game_mode/nuclear)
-15
View File
@@ -1,15 +0,0 @@
/datum/map_template/vr
name = null
var/id = null // For blacklisting purposes, all vr levels need an id
var/description = "This is a placeholder. Please contact your virtual adminsitrator if you see this."
var/outfit = null
var/prefix = null
var/suffix = null
/datum/map_template/vr/New()
if(!name && id)
name = id
mappath = prefix + suffix
..(path = mappath)
-16
View File
@@ -1,16 +0,0 @@
/datum/map_template/vr/level
prefix = "_maps/map_files/vr/"
/datum/map_template/vr/level/lobby
id = "lobby"
suffix = "lobby.dmm"
name = "Virtual Hub Facility"
description = "This is the lobby. The hub for all things VR."
outfit = /datum/outfit/vr/vr_basic
/datum/map_template/vr/level/roman
id = "roman"
suffix = "blood_and_sand.dmm"
name = "Blood and Sand Arena"
description = "To the Death!"
outfit = /datum/outfit/vr/roman