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