diff --git a/code/modules/mob/language/station.dm b/code/modules/mob/language/station.dm index bc77254dee2..89c54114632 100644 --- a/code/modules/mob/language/station.dm +++ b/code/modules/mob/language/station.dm @@ -72,6 +72,7 @@ speech_verb = "broadcasts" colour = "vaurca" key = "9" + native = 1 flags = WHITELISTED | HIVEMIND syllables = list("vaur","uyek","uyit","avek","sc'theth","k'ztak","teth","wre'ge","lii","dra'","zo'","ra'","k'lax'","zz","vh","ik","ak", "uhk","zir","sc'orth","sc'er","thc'yek","th'zirk","th'esk","k'ayek","ka'mil","sc'","ik'yir","yol","kig","k'zit","'","'","zrk","krg","isk'yet","na'k", @@ -89,7 +90,10 @@ if(!speaker_mask) speaker_mask = speaker.name - var/msg = "[name], [speaker_mask] [format_message(message, get_spoken_verb(message))]" + + var/msg = "[name], [speaker_mask][format_message(message, get_spoken_verb(message))]" + + speaker.custom_emote(1, "[pick("twitches their antennae", "twitches their antennae rythmically")].") if (within_jamming_range(speaker)) // The user thinks that the message got through. diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 756bbe6e83a..89107fbea28 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -210,6 +210,8 @@ return ..() /mob/living/carbon/human/adjustToxLoss(var/amount) + if(species && species.tox_mod) + amount = amount*species.tox_mod if(species.flags & NO_POISON) toxloss = 0 else @@ -352,7 +354,7 @@ This function restores all organs. //visible_message("Hit debug. [damage] | [damagetype] | [def_zone] | [blocked] | [sharp] | [used_weapon]") if (src.invisibility == INVISIBILITY_LEVEL_TWO && back && (istype(back, /obj/item/weapon/rig))) if (damage > 0) - src << "You are now visible." + src << "You are now visible." src.invisibility = 0 //Handle other types of damage diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm index 241fb8cd03b..ff13a864225 100644 --- a/code/modules/mob/living/carbon/human/human_powers.dm +++ b/code/modules/mob/living/carbon/human/human_powers.dm @@ -286,12 +286,12 @@ if(istype(G.affecting,/mob/living/carbon/human)) var/mob/living/carbon/human/H = G.affecting - H.apply_damage(25,BRUTE) -// if(H.stat == 2) //no gibbing humans but i'll let you gib like a mouse or something that's cool -// H.gib() + H.apply_damage(25,BRUTE, sharp=1, edge=1) + msg_admin_attack("[key_name_admin(src)] mandible'd [key_name_admin(H)] (JMP)") else var/mob/living/M = G.affecting - if(!istype(M)) return //wut - M.apply_damage(25,BRUTE) - // if(M.stat == 2) - // M.gib() \ No newline at end of file + if(!istype(M)) + return + M.apply_damage(25,BRUTE, sharp=1, edge=1) + msg_admin_attack("[key_name_admin(src)] mandible'd [key_name_admin(M)] (JMP)") + playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 50244bcfdfe..73d0174433a 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -440,24 +440,31 @@ var/failed_inhale = 0 var/failed_exhale = 0 - if(species.has_organ["breathing apparatus"] && src.get_species() == "Vaurca") - var/obj/item/organ/vaurca/breathingapparatus/L = internal_organs_by_name["breathing apparatus"] - if(isnull(L)) - poison_type = null - else if(L.is_broken()) - poison_type = "oxygen" //if Vaurca breathing apparatus breaks, oxygen becomes poisonous. + if(species.has_organ["filtration bit"] && src.get_species() == "Vaurca") + var/obj/item/organ/vaurca/filtrationbit/F = internal_organs_by_name["filtration bit"] + if(isnull(F)) + poison_type = "oxygen" //if Vaurca does not have filter, oxygen becomes poisonous + + else if(F.is_broken()) + poison_type = "oxygen" //if Vaurca filter breaks, oxygen becomes poisonous. + + else + poison_type = "null" + + else + if(species.poison_type) + poison_type = species.poison_type + else + poison_type = "phoron" + + poison = breath.gas[poison_type] + if(species.breath_type) breath_type = species.breath_type else breath_type = "oxygen" inhaling = breath.gas[breath_type] - if(species.poison_type) - poison_type = species.poison_type - else - poison_type = "phoron" - poison = breath.gas[poison_type] - if(species.exhale_type) exhale_type = species.exhale_type exhaling = breath.gas[exhale_type] diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 6c2875409c3..cbe965960d1 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -46,6 +46,7 @@ var/list/unarmed_attacks = null // For empty hand harm-intent attack var/brute_mod = 1 // Physical damage multiplier. var/burn_mod = 1 // Burn damage multiplier. + var/tox_mod = 1 // Toxin damage multiplier. var/vision_flags = SEE_SELF // Same flags as glasses. // Death vars. @@ -234,7 +235,7 @@ continue E.status |= ORGAN_ADV_ROBOT for(var/obj/item/organ/I in H.internal_organs) - I.robotize() + I.status |= ORGAN_ADV_ROBOT /datum/species/proc/hug(var/mob/living/carbon/human/H,var/mob/living/target) diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index edcaca59065..01a4977660b 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -280,6 +280,7 @@ eyes = "vaurca_eyes" //makes it so that eye colour is not changed when skin colour is. brute_mod = 0.5 //note to self: remove is_synthetic checks for brmod and burnmod burn_mod = 1.5 //2x was a bit too much. we'll see how this goes. + tox_mod = 3 //they're not used to all our weird human bacteria. warning_low_pressure = 50 hazard_low_pressure = 0 siemens_coefficient = 0 //attempting to mimic the old insulation feature. @@ -311,13 +312,15 @@ has_organ = list( "neural socket" = /obj/item/organ/vaurca/neuralsocket, - "breathing apparatus" = /obj/item/organ/vaurca/breathingapparatus, + "lungs" = /obj/item/organ/lungs, + "filtration bit" = /obj/item/organ/vaurca/filtrationbit, "heart" = /obj/item/organ/heart, "second heart" = /obj/item/organ/heart, "liver" = /obj/item/organ/liver, "kidneys" = /obj/item/organ/kidneys, "brain" = /obj/item/organ/brain, "eyes" = /obj/item/organ/eyes, + ) /datum/species/bug/equip_survival_gear(var/mob/living/carbon/human/H) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index aefc1f10c6b..16d26c05b7a 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -873,7 +873,7 @@ mob/proc/yank_out_object() usr.next_move = world.time + 20 if(usr.stat == 1) - usr << "You are unconcious and cannot do that!" + usr << "You are unconscious and cannot do that!" return if(usr.restrained()) diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm index 7758c12724e..512f2c35c0c 100644 --- a/code/modules/organs/blood.dm +++ b/code/modules/organs/blood.dm @@ -126,10 +126,16 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 for(var/obj/item/organ/external/temp in organs) if(!(temp.status & ORGAN_BLEEDING) || temp.status & ORGAN_ROBOT) continue - for(var/datum/wound/W in temp.wounds) if(W.bleeding()) - blood_max += W.damage / 40 - if (temp.open) - blood_max += 2 //Yer stomach is cut open + if(src.get_species() == "Vaurca") + for(var/datum/wound/W in temp.wounds) if(W.bleeding()) + blood_max += W.damage / 20 + if (temp.open) + blood_max += 4 //Yer stomach is cut open + else + for(var/datum/wound/W in temp.wounds) if(W.bleeding()) + blood_max += W.damage / 40 + if (temp.open) + blood_max += 2 //Yer stomach is cut open drip(blood_max) //Makes a blood drop, leaking amt units of blood from the mob diff --git a/code/modules/organs/organ_internal.dm b/code/modules/organs/organ_internal.dm index ecda3772830..04d4bf35918 100644 --- a/code/modules/organs/organ_internal.dm +++ b/code/modules/organs/organ_internal.dm @@ -208,10 +208,18 @@ obj/item/organ/vaurca/neuralsocket/process() parent_organ = "chest" icon = 'icons/mob/alien.dmi' icon_state = "breathing_app" - robotic = 2 + robotic = 0 obj/item/organ/vaurca/breathingapparatus/process() return /obj/item/organ/vaurca/breathingapparatus/removed() return + +/obj/item/organ/vaurca/filtrationbit + name = "filtration bit" + organ_tag = "filtration bit" + parent_organ = "head" + icon = 'icons/mob/alien.dmi' + icon_state = "filter" + robotic = 2 \ No newline at end of file diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm index 4e43816aec8..52858b63e4f 100644 --- a/code/modules/surgery/generic.dm +++ b/code/modules/surgery/generic.dm @@ -55,6 +55,7 @@ if(istype(target) && !(target.species.flags & NO_BLOOD)) affected.status |= ORGAN_BLEEDING + playsound(target.loc, 'sound/weapons/bladeslice.ogg', 50, 1) affected.createwound(CUT, 1) affected.clamp() diff --git a/code/modules/surgery/implant.dm b/code/modules/surgery/implant.dm index b20da362caf..741d82a250b 100644 --- a/code/modules/surgery/implant.dm +++ b/code/modules/surgery/implant.dm @@ -127,6 +127,7 @@ user.visible_message("[user] starts putting \the [tool] inside [target]'s [get_cavity(affected)] cavity.", \ "You start putting \the [tool] inside [target]'s [get_cavity(affected)] cavity." ) target.custom_pain("The pain in your chest is living hell!",1) + playsound(target.loc, 'sound/effects/squelch1.ogg', 50, 1) ..() end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -215,6 +216,7 @@ var/obj/item/weapon/implant/imp = obj imp.imp_in = null imp.implanted = 0 + playsound(target.loc, 'sound/effects/squelch1.ogg', 50, 1) else user.visible_message("\blue [user] removes \the [tool] from [target]'s [affected.name].", \ "\blue There's something inside [target]'s [affected.name], but you just missed it this time." ) diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index a97184f35cb..90c77a4b790 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -228,7 +228,7 @@ var/list/attached_organs = list() for(var/organ in target.internal_organs_by_name) var/obj/item/organ/I = target.internal_organs_by_name[organ] - if(I && !I.status && I.parent_organ == target_zone) + if(I && !(I.status & ORGAN_CUT_AWAY) && I.parent_organ == target_zone) attached_organs |= organ var/organ_to_remove = input(user, "Which organ do you want to prepare for removal?") as null|anything in attached_organs @@ -309,6 +309,7 @@ if(O && istype(O)) O.removed(user) target.op_stage.current_organ = null + playsound(target.loc, 'sound/effects/squelch1.ogg', 50, 1) fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) @@ -383,6 +384,7 @@ if(istype(O)) user.remove_from_mob(O) O.replaced(target,affected) + playsound(target.loc, 'sound/effects/squelch1.ogg', 50, 1) fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) user.visible_message("\red [user]'s hand slips, damaging \the [tool]!", \ diff --git a/code/modules/surgery/other.dm b/code/modules/surgery/other.dm index 49445164501..7c79e508ddd 100644 --- a/code/modules/surgery/other.dm +++ b/code/modules/surgery/other.dm @@ -89,6 +89,7 @@ user.visible_message("\blue [user] has cut away necrotic tissue in [target]'s [affected.name] with \the [tool].", \ "\blue You have cut away necrotic tissue in [target]'s [affected.name] with \the [tool].") affected.open = 3 + playsound(target.loc, 'sound/effects/squelch1.ogg', 50, 1) fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) diff --git a/html/changelogs/LordFowl - VaurcaAlphaPatch.yml b/html/changelogs/LordFowl - VaurcaAlphaPatch.yml new file mode 100644 index 00000000000..5e7f347e8b0 --- /dev/null +++ b/html/changelogs/LordFowl - VaurcaAlphaPatch.yml @@ -0,0 +1,41 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: LordFowl + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Vaurca filtration bit organ added. When destroyed or removed, oxygen becomes poisonous to the Vaurca." + - tweak: "Vaurca lungs have been made organic." + - tweak: "Vaurca take 3x toxin damage, as a result of their rather alien biology." + - tweak: "Vaurca lose additional blood when an opportunity to lose blood presents itself, due to their open-circulatory system." + - bugfix: "Vaurca organs are no longer all robotic, except for the neural socket and filtration bit." + - bugfix: "Vaurca organ surgery is now possible." \ No newline at end of file diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi index 09b33510949..1425245e198 100644 Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ diff --git a/icons/mob/human_races/r_vaurca.dmi b/icons/mob/human_races/r_vaurca.dmi index 4500ec2bfd9..975b17a92fb 100644 Binary files a/icons/mob/human_races/r_vaurca.dmi and b/icons/mob/human_races/r_vaurca.dmi differ