Merge pull request #744 from Citadel-Station-13/upstream-merge-26828

[MIRROR] Moves tongues to `mutanttongue` var
This commit is contained in:
LetterJay
2017-05-17 04:50:52 -04:00
committed by GitHub
11 changed files with 89 additions and 47 deletions

View File

@@ -5,9 +5,9 @@
icon = 'icons/mob/human.dmi'
icon_state = "caucasian_m"
// ME TARZAN, YOU JANEBOT
initial_languages = list(/datum/language/common)
// ME TARZAN, YOU JANEBOT
initial_languages = list(/datum/language/common)
/mob/living/carbon/human/dummy
@@ -58,9 +58,10 @@
if(!(NOBLOOD in dna.species.species_traits))
internal_organs += new /obj/item/organ/heart
internal_organs += new dna.species.mutanteyes()
internal_organs += new dna.species.mutanteyes
internal_organs += new dna.species.mutantears
internal_organs += new /obj/item/organ/brain
internal_organs += new dna.species.mutanttongue
give_genitals()
..()
@@ -733,8 +734,8 @@
/mob/living/carbon/human/wash_cream()
//clean both to prevent a rare bug
cut_overlay(mutable_appearance('icons/effects/creampie.dmi', "creampie_lizard"))
cut_overlay(mutable_appearance('icons/effects/creampie.dmi', "creampie_human"))
cut_overlay(mutable_appearance('icons/effects/creampie.dmi', "creampie_lizard"))
cut_overlay(mutable_appearance('icons/effects/creampie.dmi', "creampie_human"))
//Turns a mob black, flashes a skeleton overlay
@@ -743,19 +744,19 @@
//Handle mutant parts if possible
if(dna && dna.species)
add_atom_colour("#000000", TEMPORARY_COLOUR_PRIORITY)
var/static/mutable_appearance/electrocution_skeleton_anim
if(!electrocution_skeleton_anim)
electrocution_skeleton_anim = mutable_appearance(icon, "electrocuted_base")
electrocution_skeleton_anim.appearance_flags |= RESET_COLOR
var/static/mutable_appearance/electrocution_skeleton_anim
if(!electrocution_skeleton_anim)
electrocution_skeleton_anim = mutable_appearance(icon, "electrocuted_base")
electrocution_skeleton_anim.appearance_flags |= RESET_COLOR
add_overlay(electrocution_skeleton_anim)
addtimer(CALLBACK(src, .proc/end_electrocution_animation, electrocution_skeleton_anim), anim_duration)
else //or just do a generic animation
flick_overlay_view(image(icon,src,"electrocuted_generic",ABOVE_MOB_LAYER), src, anim_duration)
/mob/living/carbon/human/proc/end_electrocution_animation(mutable_appearance/MA)
/mob/living/carbon/human/proc/end_electrocution_animation(mutable_appearance/MA)
remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, "#000000")
cut_overlay(MA)
cut_overlay(MA)
/mob/living/carbon/human/canUseTopic(atom/movable/M, be_close = 0)
if(incapacitated() || lying )
@@ -824,9 +825,9 @@
if(hal_screwyhud == SCREWYHUD_HEALTHY)
icon_num = 0
if(icon_num)
hud_used.healthdoll.add_overlay(mutable_appearance('icons/mob/screen_gen.dmi', "[BP.body_zone][icon_num]"))
hud_used.healthdoll.add_overlay(mutable_appearance('icons/mob/screen_gen.dmi', "[BP.body_zone][icon_num]"))
for(var/t in get_missing_limbs()) //Missing limbs
hud_used.healthdoll.add_overlay(mutable_appearance('icons/mob/screen_gen.dmi', "[t]6"))
hud_used.healthdoll.add_overlay(mutable_appearance('icons/mob/screen_gen.dmi', "[t]6"))
else
hud_used.healthdoll.icon_state = "healthdoll_DEAD"
@@ -929,19 +930,19 @@
riding_datum = new /datum/riding/human(src)
if(buckled_mobs && ((M in buckled_mobs) || (buckled_mobs.len >= max_buckled_mobs)) || buckled || (M.stat != CONSCIOUS))
return
visible_message("<span class='notice'>[M] starts to climb onto [src]...</span>")
if(do_after(M, 15, target = src))
if(iscarbon(M))
if(M.incapacitated(FALSE, TRUE) || incapacitated(FALSE, TRUE))
M.visible_message("<span class='warning'>[M] can't hang onto [src]!</span>")
return
if(!riding_datum.equip_buckle_inhands(M, 2)) //MAKE SURE THIS IS LAST!!
M.visible_message("<span class='warning'>[M] can't climb onto [src]!</span>")
return
. = ..(M, force, check_loc)
stop_pulling()
else
visible_message("<span class='warning'>[M] fails to climb onto [src]!</span>")
visible_message("<span class='notice'>[M] starts to climb onto [src]...</span>")
if(do_after(M, 15, target = src))
if(iscarbon(M))
if(M.incapacitated(FALSE, TRUE) || incapacitated(FALSE, TRUE))
M.visible_message("<span class='warning'>[M] can't hang onto [src]!</span>")
return
if(!riding_datum.equip_buckle_inhands(M, 2)) //MAKE SURE THIS IS LAST!!
M.visible_message("<span class='warning'>[M] can't climb onto [src]!</span>")
return
. = ..(M, force, check_loc)
stop_pulling()
else
visible_message("<span class='warning'>[M] fails to climb onto [src]!</span>")
/mob/living/carbon/human/unbuckle_mob(mob/living/M, force=FALSE)
if(iscarbon(M))

View File

@@ -0,0 +1,12 @@
diff a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm (rejected hunks)
@@ -58,8 +58,9 @@
if(!(NOBLOOD in dna.species.species_traits))
internal_organs += new /obj/item/organ/heart
- internal_organs += new dna.species.mutanteyes()
+ internal_organs += new dna.species.mutanteyes
internal_organs += new dna.species.mutantears
+ internal_organs += new dna.species.mutanttongue
internal_organs += new /obj/item/organ/brain
..()

View File

@@ -35,7 +35,7 @@
var/say_mod = "says" // affects the speech message
var/list/default_features = list() // Default mutant bodyparts for this species. Don't forget to set one for every mutant bodypart you allow this species to have.
var/list/mutant_bodyparts = list() // Parts of the body that are diferent enough from the standard human model that they cause clipping with some equipment
var/list/mutant_organs = list(/obj/item/organ/tongue) //Internal organs that are unique to this race.
var/list/mutant_organs = list() //Internal organs that are unique to this race.
var/speedmod = 0 // this affects the race's speed. positive numbers make it move slower, negative numbers make it move faster
var/armor = 0 // overall defense for the race... or less defense, if it's negative.
var/brutemod = 1 // multiplier for brute damage
@@ -65,11 +65,9 @@
//Flight and floating
var/override_float = 0
//Eyes
var/obj/item/organ/eyes/mutanteyes = /obj/item/organ/eyes
//Ears
var/obj/item/organ/ears/mutantears = /obj/item/organ/ears
var/obj/item/organ/tongue/mutanttongue = /obj/item/organ/tongue
//Hands
var/obj/item/mutanthands = null
@@ -136,6 +134,7 @@
var/obj/item/organ/appendix/appendix = C.getorganslot("appendix")
var/obj/item/organ/eyes/eyes = C.getorganslot("eye_sight")
var/obj/item/organ/ears/ears = C.getorganslot("ears")
var/obj/item/organ/tongue/tongue = C.getorganslot("tongue")
if((NOBLOOD in species_traits) && heart)
heart.Remove(C)
@@ -159,6 +158,11 @@
ears = new mutantears
ears.Insert(C)
if(tongue)
qdel(tongue)
tongue = new mutanttongue
tongue.Insert(C)
if((!(NOBREATH in species_traits)) && !lungs)
if(mutantlungs)
lungs = new mutantlungs()

View File

@@ -0,0 +1,18 @@
diff a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm (rejected hunks)
@@ -66,15 +66,10 @@
//Flight and floating
var/override_float = 0
-
- //Eyes
var/obj/item/organ/eyes/mutanteyes = /obj/item/organ/eyes
-
- //Ears
var/obj/item/organ/ears/mutantears = /obj/item/organ/ears
-
- //Hands
var/obj/item/mutanthands = null
+ var/obj/item/organ/tongue/mutanttongue = /obj/item/organ/tongue
///////////
// PROCS //

View File

@@ -4,6 +4,6 @@
say_mod = "gibbers"
sexes = 0
species_traits = list(NOBLOOD,NOBREATH,VIRUSIMMUNE,NOGUNS,NOHUNGER)
mutant_organs = list(/obj/item/organ/tongue/abductor)
mutanttongue = /obj/item/organ/tongue/abductor
var/scientist = 0 // vars to not pollute spieces list with castes
var/team = 1
var/team = 1

View File

@@ -5,7 +5,7 @@
species_traits = list(NOBREATH,RESISTHOT,RESISTCOLD,RESISTPRESSURE,NOFIRE,NOBLOOD,VIRUSIMMUNE,PIERCEIMMUNE,NOHUNGER,EASYLIMBATTACHMENT)
meat = null
damage_overlay_type = "synth"
mutant_organs = list(/obj/item/organ/tongue/robot)
mutanttongue = /obj/item/organ/tongue/robot
limbs_id = "synth"
/datum/species/android/on_species_gain(mob/living/carbon/C)
@@ -18,4 +18,4 @@
. = ..()
for(var/X in C.bodyparts)
var/obj/item/bodypart/O = X
O.change_bodypart_status(BODYPART_ORGANIC,FALSE, TRUE)
O.change_bodypart_status(BODYPART_ORGANIC,FALSE, TRUE)

View File

@@ -2,7 +2,7 @@
name = "Flyperson"
id = "fly"
say_mod = "buzzes"
mutant_organs = list(/obj/item/organ/tongue/fly)
mutanttongue = /obj/item/organ/tongue/fly
meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/fly
/datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)

View File

@@ -6,7 +6,7 @@
default_color = "00FF00"
species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,FACEHAIR)
mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs", "taur")
mutant_organs = list(/obj/item/organ/tongue/lizard)
mutanttongue = /obj/item/organ/tongue/lizard
coldmod = 1.5
heatmod = 0.67
default_features = list("mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0", "tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs", "taur" = "None")

View File

@@ -0,0 +1,10 @@
diff a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm (rejected hunks)
@@ -6,7 +6,7 @@
default_color = "00FF00"
species_traits = list(MUTCOLORS,EYECOLOR,LIPS)
mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs")
- mutant_organs = list(/obj/item/organ/tongue/lizard)
+ mutanttongue = /obj/item/organ/tongue/lizard
coldmod = 1.5
heatmod = 0.67
default_features = list("mcolor" = "0F0", "tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs")

View File

@@ -6,7 +6,7 @@
meat = /obj/item/stack/sheet/mineral/plasma
species_traits = list(NOBLOOD,RESISTCOLD,RADIMMUNE,NOTRANSSTING,VIRUSIMMUNE,NOHUNGER)
mutantlungs = /obj/item/organ/lungs/plasmaman
mutant_organs = list(/obj/item/organ/tongue/bone/plasmaman)
mutanttongue = /obj/item/organ/tongue/bone/plasmaman
dangerous_existence = 1 //So so much
blacklisted = 1 //See above
burnmod = 1.5
@@ -66,4 +66,4 @@
if(lastname)
randname += " [lastname]"
return randname
return randname

View File

@@ -125,16 +125,13 @@
if(!getorganslot("tongue"))
var/obj/item/organ/tongue/T
if(dna && dna.species)
for(var/tongue_type in dna.species.mutant_organs)
if(ispath(tongue_type, /obj/item/organ/tongue))
T = new tongue_type()
T.Insert(src)
if(dna && dna.species && dna.species.mutanttongue)
T = new dna.species.mutanttongue()
else
T = new()
// if they have no mutant tongues, give them a regular one
if(!T)
T = new()
T.Insert(src)
T.Insert(src)
if(!getorganslot("eye_sight"))
var/obj/item/organ/eyes/E