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
+6 -2
View File
@@ -19,6 +19,7 @@
var/instant = 0
var/colourName = "red" //for updateIcon purposes
var/dat
var/busy = FALSE
var/list/validSurfaces = list(/turf/simulated/floor)
/obj/item/toy/crayon/suicide_act(mob/user)
@@ -80,22 +81,25 @@
/obj/item/toy/crayon/afterattack(atom/target, mob/user, proximity)
if(!proximity) return
if(busy) return
if(is_type_in_list(target,validSurfaces))
var/temp = "rune"
if(letters.Find(drawtype))
temp = "letter"
else if(graffiti.Find(drawtype))
temp = "graffiti"
to_chat(user, "You start drawing a [temp] on the [target.name].")
to_chat(user, "<span class='info'>You start drawing a [temp] on the [target.name].</span>")
busy = TRUE
if(instant || do_after(user, 50 * toolspeed, target = target))
var/obj/effect/decal/cleanable/crayon/C = new /obj/effect/decal/cleanable/crayon(target,colour,drawtype,temp)
C.add_hiddenprint(user)
to_chat(user, "You finish drawing [temp].")
to_chat(user, "<span class='info'>You finish drawing [temp].</span>")
if(uses)
uses--
if(!uses)
to_chat(user, "<span class='danger'>You used up your [name]!</span>")
qdel(src)
busy = FALSE
/obj/item/toy/crayon/attack(mob/M, mob/user)
var/huffable = istype(src,/obj/item/toy/crayon/spraycan)
@@ -17,7 +17,8 @@
/obj/item/encryptionkey/attackby(obj/item/W as obj, mob/user as mob, params)
/obj/item/encryptionkey/syndicate
icon_state = "cypherkey"
name = "syndicate encryption key"
icon_state = "syn_cypherkey"
channels = list("Syndicate" = 1)
origin_tech = "syndicate=1;engineering=3;bluespace=2"
syndie = TRUE //Signifies that it de-crypts Syndicate transmissions
@@ -36,7 +37,8 @@
change_voice = FALSE
/obj/item/encryptionkey/syndteam
icon_state = "cypherkey"
name = "syndicate encryption key"
icon_state = "syn_cypherkey"
channels = list("SyndTeam" = 1, "Syndicate" = 1)
origin_tech = "syndicate=4"
syndie = TRUE //Signifies that it de-crypts Syndicate transmissions
@@ -44,7 +46,7 @@
/obj/item/encryptionkey/binary
name = "binary translator key"
desc = "An encryption key for a radio headset. To access the binary channel, use :+."
icon_state = "cypherkey"
icon_state = "bin_cypherkey"
translate_binary = TRUE
origin_tech = "syndicate=3;engineering=4;bluespace=3"
@@ -338,6 +338,10 @@ proc/healthscan(mob/user, mob/living/M, mode = 1, upgraded = FALSE)
var/cooldown_time = 250
var/accuracy // 0 is the best accuracy.
/obj/item/analyzer/examine(mob/user)
.=..()
to_chat(user, "<span class='info'>Alt-click [src] to activate the barometer function.</span>")
/obj/item/analyzer/attack_self(mob/user as mob)
if(user.stat)
@@ -54,6 +54,14 @@ var/global/list/datum/stack_recipe/human_recipes = list( \
singular_name = "alien hide piece"
icon_state = "sheet-xeno"
GLOBAL_LIST_INIT(xeno_recipes, list (
new/datum/stack_recipe("alien helmet", /obj/item/clothing/head/xenos, 1),
new/datum/stack_recipe("alien suit", /obj/item/clothing/suit/xenos, 2)))
/obj/item/stack/sheet/animalhide/xeno/Initialize(mapload, new_amount, merge = TRUE)
recipes = GLOB.xeno_recipes
return ..()
//don't see anywhere else to put these, maybe together they could be used to make the xenos suit?
/obj/item/stack/sheet/xenochitin
name = "alien chitin"
@@ -66,7 +66,7 @@
/obj/item/gun/energy/chrono_gun/update_icon()
return
/obj/item/gun/energy/chrono_gun/process_fire()
/obj/item/gun/energy/chrono_gun/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override, bonus_spread = 0)
if(field)
field_disconnect(field)
..()
+4
View File
@@ -72,6 +72,10 @@
icon_state = "d4"
sides = 4
/obj/item/dice/d4/Initialize(mapload)
. = ..()
AddComponent(/datum/component/caltrop, 1, 4) //1d4 damage
/obj/item/dice/d6
name = "d6"
+2 -24
View File
@@ -26,6 +26,7 @@
/obj/item/shard/Initialize(mapload)
. = ..()
AddComponent(/datum/component/caltrop, force)
icon_state = pick("large", "medium", "small")
switch(icon_state)
if("small")
@@ -49,7 +50,7 @@
return
if(ishuman(user))
var/mob/living/carbon/human/H = user
if(!H.gloves)
if(!H.gloves && !(PIERCEIMMUNE in H.dna.species.species_traits))
var/obj/item/organ/external/affecting = H.get_organ("[user.hand ? "l" : "r" ]_hand")
if(affecting.is_robotic())
return
@@ -83,29 +84,6 @@
if(L.incorporeal_move || L.flying)
return
playsound(loc, 'sound/effects/glass_step.ogg', 50, TRUE)
if(ishuman(L))
var/mob/living/carbon/human/H = L
var/obj/item/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot"))
if(!affecting)
return
if(affecting.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(H.shoes || feetCover || H.buckled)
return
if(affecting.receive_damage(force, 0))
H.UpdateDamageIcon()
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 [src]!</span>", \
"<span class='userdanger'>You step on [src]!</span>")
else
H.visible_message("<span class='danger'>[H] slides on [src]!</span>", \
"<span class='userdanger'>You slide on [src]!</span>")
cooldown = world.time
H.Weaken(3)
return ..()
/obj/item/shard/plasma
@@ -356,4 +356,15 @@ To apply, hold the injector a short distance away from the outer thigh before ap
new /obj/item/storage/backpack/chameleon(src)
new /obj/item/radio/headset/chameleon(src)
new /obj/item/stamp/chameleon(src)
new /obj/item/pda/chameleon(src)
new /obj/item/pda/chameleon(src)
/obj/item/storage/box/syndie_kit/dart_gun
name = "dart gun kit"
/obj/item/storage/box/syndie_kit/dart_gun/New()
..()
new /obj/item/gun/syringe/syndicate(src)
new /obj/item/reagent_containers/syringe/capulettium_plus(src)
new /obj/item/reagent_containers/syringe/sarin(src)
new /obj/item/reagent_containers/syringe/pancuronium(src)
@@ -1,5 +1,4 @@
#define TANK_MAX_RELEASE_PRESSURE (3*ONE_ATMOSPHERE)
#define TANK_DEFAULT_RELEASE_PRESSURE 24
/obj/item/tank
name = "tank"