mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 11:37:40 +01:00
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:
@@ -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)
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user