diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm
index 59dfcdf015..e6b52d47e3 100644
--- a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm
+++ b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm
@@ -908,21 +908,17 @@ mob/living/carbon/proc/charmed() //TODO
/datum/reagent/succubi_numbing/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- var/effective_dose = dose
- var/threshold = 1
- if(effective_dose < 1.5 * threshold)
- M.eye_blurry = max(M.eye_blurry, 10)
- else if(effective_dose < 5 * threshold)
- M.Weaken(2)
- M.drowsyness = max(M.drowsyness, 20)
+ M.eye_blurry = max(M.eye_blurry, 10)
+ M.Weaken(2)
+ M.drowsyness = max(M.drowsyness, 20)
if(prob(7))
M.show_message("You start to feel weakened, your body seems heavy.")
return
/datum/reagent/succubi_paralize
name = "Paralyzing Fluid"
- id = "succubi_numbing"
+ id = "succubi_paralize"
description = "A unknown liquid, it doesn't smell"
metabolism= REM * 0.5
color = "#41029B"
@@ -930,8 +926,8 @@ mob/living/carbon/proc/charmed() //TODO
/datum/reagent/succubi_paralize/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) //will first keep it like that. lets see what it changes. if nothing, than I will rework the effect again
- if(prob(7))
- M.Weaken(20)
- M.eye_blurry = max(M.eye_blurry, 10)
+ M.Weaken(20)
+ M.eye_blurry = max(M.eye_blurry, 10)
+ if(prob(10))
M.show_message("You lose sensation of your body.")
return
diff --git a/code/modules/mob/living/simple_animal/animals/synx.dm b/code/modules/mob/living/simple_animal/animals/synx.dm
new file mode 100644
index 0000000000..bfe0017771
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/animals/synx.dm
@@ -0,0 +1,103 @@
+/mob/living/simple_animal/neutral/synx
+ name = "Synx"
+ desc = "to be added"
+ tt_desc = "synxus pergulus"
+
+ //to be added
+ icon_state = "synx"
+ icon_living = "synx"
+
+ faction = "Synx"
+ intelligence_level = SA_ANIMAL
+
+ maxHealth = 150
+ health = 120
+ turns_per_move = 3
+ speed = -2
+ see_in_dark = 6
+ stop_when_pulled = 0
+ armor = list( // will be determined
+ "melee" = 20,
+ "bullet" = 0,
+ "laser" = 0,
+ "energy" = 0,
+ "bomb" = 10,
+ "bio" = 100,
+ "rad" = 100)
+ //has_hands = TRUE
+
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+
+
+ pass_flags = PASSTABLE
+
+ melee_damage_lower = 20
+ melee_damage_upper = 30
+ attack_armor_pen = 50 // How much armor pen this attack has.
+ attack_sharp = 1
+ attack_edge = 1
+
+ //will be affected by atmos soon
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+ //to be added
+ /*speak_chance = 1
+ speak = list()
+ speak_emote = list()
+ emote_hear = list()
+ emote_see = list()*/
+
+/mob/living/simple_animal/neutral/synx/New()
+ ..()
+ verbs |= /mob/living/proc/ventcrawl
+ verbs |= /mob/living/simple_animal/proc/contort
+ verbs |= /mob/living/proc/disguise
+
+mob/living/simple_animal/synx/PunchTarget()
+ if(!Adjacent(target_mob))
+ return
+ custom_emote(1, pick( list("slashes at [target_mob]", "bites [target_mob]") ) )
+
+ var/damage = rand(melee_damage_lower, melee_damage_upper)
+
+ if(ishuman(target_mob))
+ var/mob/living/carbon/human/H = target_mob
+ var/dam_zone = pick(BP_TORSO, BP_L_HAND, BP_R_HAND, BP_L_LEG, BP_R_LEG)
+ var/obj/item/organ/external/affecting = H.get_organ(ran_zone(dam_zone))
+ H.apply_damage(damage, BRUTE, affecting, H.run_armor_check(affecting, "melee"), H.get_armor_soak(affecting, "melee"), sharp=1, edge=1)
+ return H
+ else if(isliving(target_mob))
+ var/mob/living/L = target_mob
+ L.adjustBruteLoss(damage)
+ return L
+ else
+ ..()
+
+
+/mob/living/simple_animal/proc/contort()
+ set name = "contort"
+ set desc = "Allows to hide beneath tables or certain items. Toggled on or off."
+ set category = "Abilities"
+
+ if(stat == DEAD || paralysis || weakened || stunned || restrained())
+ return
+
+ if(status_flags & HIDING)
+ status_flags &= ~HIDING
+ reset_plane_and_layer()
+ to_chat(src,"You have stopped hiding.")
+ speed = -3
+ else
+ status_flags |= HIDING
+ layer = HIDING_LAYER //Just above cables with their 2.44
+ plane = OBJ_PLANE
+ to_chat(src,"You are now hiding.")
+ speed = 2
\ No newline at end of file
diff --git a/code/modules/mob/living/synx_powers.dm b/code/modules/mob/living/synx_powers.dm
new file mode 100644
index 0000000000..dc3966e3e7
--- /dev/null
+++ b/code/modules/mob/living/synx_powers.dm
@@ -0,0 +1,21 @@
+mob/living/proc/disguise()
+ set name = "Toggle Form"
+ set desc = "Switch between amorphous and humanoid forms."
+ set category = "Abilities"
+
+ //Transformed form
+ if(icon_state !="bear")
+ icon_state="bear"
+ to_chat(src,"you changed back into your disguise.")
+ if(icon_state== "bear")
+ to_chat(temporary_form,"You can only do this while not stunned.")
+ else
+ to_chat(src,"you failed.")
+
+ //Normal form form
+ else if(stat)
+ to_chat(src,"You can only do this while not stunned.")
+ return
+ else
+ to_chat(src,"now they see your true form.")
+ icon_state="synx"
\ No newline at end of file
diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi
index e503b0d1b9..00fbaf6912 100644
Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ