Merge remote-tracking branch 'upstream/master' into i-hate-mcolor

This commit is contained in:
timothyteakettle
2020-10-27 22:12:55 +00:00
80 changed files with 1671 additions and 594 deletions
+8
View File
@@ -100,6 +100,14 @@
return held_items.Find(I)
///Find number of held items, multihand compatible
/mob/proc/get_num_held_items()
. = 0
for(var/i in 1 to held_items.len)
if(held_items[i])
.++
//Sad that this will cause some overhead, but the alias seems necessary
//*I* may be happy with a million and one references to "indexes" but others won't be
/mob/proc/is_holding(obj/item/I)
@@ -453,14 +453,14 @@
/mob/living/carbon/getBruteLoss_nonProsthetic()
var/amount = 0
for(var/obj/item/bodypart/BP in bodyparts)
if (BP.status < 2)
if (BP.is_organic_limb())
amount += BP.brute_dam
return amount
/mob/living/carbon/getFireLoss_nonProsthetic()
var/amount = 0
for(var/obj/item/bodypart/BP in bodyparts)
if (BP.status < 2)
if (BP.is_organic_limb())
amount += BP.burn_dam
return amount
@@ -10,5 +10,5 @@
damage_overlay_type = "synth"
mutanttongue = /obj/item/organ/tongue/robot
species_language_holder = /datum/language_holder/synthetic
limbs_id = "synth"
limbs_id = SPECIES_SYNTH
species_category = SPECIES_CATEGORY_ROBOT
@@ -7,7 +7,7 @@
use_skintones = USE_SKINTONES_GRAYSCALE_CUSTOM
no_equip = list(SLOT_BACK)
blacklisted = 1
limbs_id = "human"
limbs_id = SPECIES_HUMAN
skinned_type = /obj/item/stack/sheet/animalhide/human
species_category = SPECIES_CATEGORY_BASIC //they're a kind of human
@@ -130,7 +130,7 @@
/datum/species/angel/proc/ToggleFlight(mob/living/carbon/human/H,flight)
if(flight && CanFly(H))
stunmod = 2
speedmod = -0.35
speedmod = -0.1
H.setMovetype(H.movement_type | FLYING)
override_float = TRUE
H.pass_flags |= PASSTABLE
@@ -1,6 +1,6 @@
/datum/species/arachnid
name = "Arachnid"
id = "arachnid"
id = SPECIES_ARACHNID
override_bp_icon = 'icons/mob/arachnid_parts.dmi'
say_mod = "chitters"
default_color = "00FF00"
@@ -59,10 +59,10 @@
SW?.Remove(H)
/datum/action/innate/spin_web
name = "Spin Web"
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_CONSCIOUS
icon_icon = 'icons/mob/actions/actions_animal.dmi'
button_icon_state = "lay_web"
name = "Spin Web"
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_CONSCIOUS
icon_icon = 'icons/mob/actions/actions_animal.dmi'
button_icon_state = "lay_web"
/datum/action/innate/spin_cocoon
name = "Spin Cocoon"
@@ -152,4 +152,4 @@
else
A.forceMove(C)
H.visible_message("<span class='danger'>[H] wraps [A] into a cocoon!</span>")
return
return
@@ -11,7 +11,7 @@
mutanttongue = /obj/item/organ/tongue/dullahan
mutantears = /obj/item/organ/ears/dullahan
blacklisted = TRUE
limbs_id = "human"
limbs_id = SPECIES_HUMAN
skinned_type = /obj/item/stack/sheet/animalhide/human
has_field_of_vision = FALSE //Too much of a trouble, their vision is already bound to their severed head.
species_category = SPECIES_CATEGORY_UNDEAD
@@ -2,7 +2,7 @@
/datum/species/human/felinid
name = "Felinid"
id = SPECIES_FELINID
limbs_id = "human"
limbs_id = SPECIES_HUMAN
mutant_bodyparts = list("mam_tail" = "Cat", "mam_ears" = "Cat", "deco_wings" = "None")
@@ -468,7 +468,7 @@
/datum/species/jelly/roundstartslime
name = "Xenobiological Slime Hybrid"
id = SPECIES_SLIME_HYBRID
limbs_id = "slime"
limbs_id = SPECIES_SLIME
default_color = "00FFFF"
species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR)
inherent_traits = list(TRAIT_TOXINLOVER)
@@ -480,7 +480,7 @@
heatmod = 1
burnmod = 1
allowed_limb_ids = list("slime","stargazer","lum")
allowed_limb_ids = list(SPECIES_SLIME,SPECIES_STARGAZER,SPECIES_SLIME_LUMI)
/datum/action/innate/slime_change
name = "Alter Form"
@@ -28,7 +28,7 @@
tail_type = "tail_lizard"
wagging_type = "waggingtail_lizard"
species_category = "lizard"
species_category = SPECIES_CATEGORY_LIZARD
/datum/species/lizard/random_name(gender,unique,lastname)
if(unique)
@@ -47,7 +47,7 @@
/datum/species/lizard/ashwalker
name = "Ash Walker"
id = SPECIES_ASHWALKER
limbs_id = "lizard"
limbs_id = SPECIES_LIZARD
species_traits = list(MUTCOLORS,EYECOLOR,LIPS,DIGITIGRADE)
inherent_traits = list(TRAIT_CHUNKYFINGERS)
mutantlungs = /obj/item/organ/lungs/ashwalker
@@ -69,7 +69,7 @@
id = SPECIES_POD_WEAK
species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,MUTCOLORS)
mutant_bodyparts = list("mcolor" = "FFFFFF","mcolor2" = "FFFFFF","mcolor3" = "FFFFFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "mam_body_markings" = "Husky", "taur" = "None", "legs" = "Normal Legs")
limbs_id = "pod"
limbs_id = SPECIES_POD
light_nutrition_gain_factor = 3
light_bruteheal = -0.2
light_burnheal = -0.2
@@ -33,7 +33,7 @@
/datum/species/shadow/nightmare
name = "Nightmare"
id = SPECIES_NIGHTMARE
limbs_id = "shadow"
limbs_id = SPECIES_SHADOW
burnmod = 1.5
blacklisted = TRUE
no_equip = list(SLOT_WEAR_MASK, SLOT_WEAR_SUIT, SLOT_GLOVES, SLOT_SHOES, SLOT_W_UNIFORM, SLOT_S_STORE)
@@ -141,7 +141,7 @@
playsound(owner,'sound/effects/singlebeat.ogg',40,1)
if(respawn_progress >= HEART_RESPAWN_THRESHHOLD)
owner.revive(full_heal = TRUE)
if(!(owner.dna.species.id == "shadow" || owner.dna.species.id == "nightmare"))
if(!(owner.dna.species.id == SPECIES_SHADOW || owner.dna.species.id == SPECIES_NIGHTMARE))
var/mob/living/carbon/old_owner = owner
Remove(HEART_SPECIAL_SHADOWIFY)
old_owner.set_species(/datum/species/shadow)
@@ -32,7 +32,7 @@
/datum/species/skeleton/space
name = "Spooky Spacey Skeleton"
id = SPECIES_SKELETON_SPACE
limbs_id = "skeleton"
limbs_id = SPECIES_SKELETON
blacklisted = 1
inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT, TRAIT_FAKEDEATH, TRAIT_CALCIUM_HEALER)
@@ -11,7 +11,7 @@
meat = null
gib_types = /obj/effect/gibspawner/robot
damage_overlay_type = "synth"
limbs_id = "synth"
limbs_id = SPECIES_SYNTH
var/list/initial_species_traits = list(NOTRANSSTING) //for getting these values back for assume_disguise()
var/list/initial_inherent_traits = list(TRAIT_VIRUSIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOLIMBDISABLE,TRAIT_NOHUNGER,TRAIT_NOBREATH)
var/disguise_fail_health = 75 //When their health gets to this level their synthflesh partially falls off
@@ -80,7 +80,7 @@
qdel(fake_species)
fake_species = null
meat = initial(meat)
limbs_id = "synth"
limbs_id = SPECIES_SYNTH
use_skintones = FALSE
sexes = 0
fixed_mut_color = ""
@@ -11,7 +11,7 @@
mutant_heart = /obj/item/organ/heart/vampire
mutanttongue = /obj/item/organ/tongue/vampire
blacklisted = TRUE
limbs_id = "human"
limbs_id = SPECIES_HUMAN
skinned_type = /obj/item/stack/sheet/animalhide/human
var/info_text = "You are a <span class='danger'>Vampire</span>. You will slowly but constantly lose blood if outside of a coffin. If inside a coffin, you will slowly heal. You may gain more blood by grabbing a live victim and using your drain ability."
species_category = SPECIES_CATEGORY_UNDEAD
@@ -153,16 +153,33 @@
to_chat(caster, "<span class='warning'>You're already shapeshifted!</span>")
return
if(!ishuman(caster))
to_chat(caster, "<span class='warning'>You need to be humanoid to be able to do this!</span>")
return
var/mob/living/carbon/human/human_caster = caster
var/mob/living/shape = new shapeshift_type(caster.loc)
H = new(shape,src,caster)
H = new(shape,src,human_caster)
if(istype(H, /mob/living/simple_animal))
var/mob/living/simple_animal/SA = H
if((caster.blood_volume >= (BLOOD_VOLUME_BAD*caster.blood_ratio)) || (ventcrawl_nude_only && length(caster.get_equipped_items(include_pockets = TRUE))))
if((human_caster.blood_volume <= (BLOOD_VOLUME_BAD*human_caster.blood_ratio)) || (ventcrawl_nude_only && length(human_caster.get_equipped_items(include_pockets = TRUE))))
SA.ventcrawler = FALSE
if(transfer_name)
H.name = caster.name
H.name = human_caster.name
clothes_req = NONE
mobs_whitelist = null
mobs_blacklist = null
/obj/effect/proc_holder/spell/targeted/shapeshift/bat/cast(list/targets, mob/user = usr)
if(!(locate(/obj/shapeshift_holder) in targets[1]))
if(!ishuman(user))
to_chat(user, "<span class='warning'>You need to be humanoid to be able to do this!</span>")
return
var/mob/living/carbon/human/human_user = user
if(!(human_user.dna?.species?.id == SPECIES_VAMPIRE))
to_chat(user, "<span class='warning'>You don't seem to be able to shapeshift..</span>")
return
return ..()
@@ -3,7 +3,7 @@
/datum/species/zombie
// 1spooky
name = "High-Functioning Zombie"
id = "zombie"
id = SPECIES_ZOMBIE
say_mod = "moans"
sexes = 0
blacklisted = 1
@@ -19,7 +19,7 @@
/datum/species/zombie/notspaceproof
id = "notspaceproofzombie"
limbs_id = "zombie"
limbs_id = SPECIES_ZOMBIE
blacklisted = 0
inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_RADIMMUNE,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NOBREATH,TRAIT_NODEATH,TRAIT_FAKEDEATH)
@@ -31,7 +31,7 @@
/datum/species/zombie/infectious
name = "Infectious Zombie"
id = "memezombies"
limbs_id = "zombie"
limbs_id = SPECIES_ZOMBIE
inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NOBREATH,TRAIT_NODEATH,TRAIT_NOSOFTCRIT, TRAIT_FAKEDEATH)
mutanthands = /obj/item/zombie_hand
armor = 20 // 120 damage to KO a zombie, which kills it
@@ -100,7 +100,7 @@
/datum/species/krokodil_addict
name = SPECIES_HUMAN
id = "goofzombies"
limbs_id = "zombie" //They look like zombies
limbs_id = SPECIES_ZOMBIE //They look like zombies
sexes = 0
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/zombie
mutanttongue = /obj/item/organ/tongue/zombie
+2 -9
View File
@@ -59,15 +59,8 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, typecacheof(list(
if(!client)
return
if(iscarbon(src) && ventcrawler < 2)//It must have atleast been 1 to get this far
var/failed = 0
var/list/items_list = get_equipped_items(include_pockets = TRUE)
if(items_list.len)
failed = 1
for(var/obj/item/I in held_items)
failed = 1
break
if(failed)
if(iscarbon(src) && ventcrawler == VENTCRAWLER_NUDE)
if(length(get_equipped_items(include_pockets = TRUE)) || get_num_held_items())
to_chat(src, "<span class='warning'>You can't crawl around in the ventilation ducts with items!</span>")
return