diff --git a/code/datums/supplypacks/science_vr.dm b/code/datums/supplypacks/science_vr.dm
index fb0db4ff31..e5a1adc890 100644
--- a/code/datums/supplypacks/science_vr.dm
+++ b/code/datums/supplypacks/science_vr.dm
@@ -27,6 +27,7 @@
/obj/item/weapon/disk/limb/dsi_nevrean,
/obj/item/weapon/disk/limb/dsi_vulpkanin,
/obj/item/weapon/disk/limb/dsi_akula,
+ /obj/item/weapon/disk/limb/dsi_spider,
/obj/item/weapon/disk/limb/eggnerdltd
)
cost = 40
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index 9d048e1c94..b6a699e803 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -588,7 +588,7 @@
//Departments that the cycler can paint suits to look like.
var/list/departments = list("Engineering","Mining","Medical","Security","Atmos","HAZMAT","Construction","Biohazard","Emergency Medical Response","Crowd Control")
//Species that the suits can be configured to fit.
- var/list/species = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Promethean", "Xenomorph Hybrid") //VORESTATION EDIT
+ var/list/species = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Promethean", "Xenomorph Hybrid", "Xenochimera","Vasilissan") //VORESTATION EDIT
var/target_department
var/target_species
@@ -753,7 +753,7 @@
//Clear the access reqs, disable the safeties, and open up all paintjobs.
user << "You run the sequencer across the interface, corrupting the operating protocols."
departments = list("Engineering","Mining","Medical","Security","Atmos","HAZMAT","Construction","Biohazard","Crowd Control","Emergency Medical Response","^%###^%$")
- species = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Promethean", "Xenomorph Hybrid") //VORESTATION EDIT
+ species = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Promethean", "Xenomorph Hybrid", "Vasilissan") //VORESTATION EDIT
emagged = 1
safeties = 0
diff --git a/code/game/machinery/suit_storage_unit_vr.dm b/code/game/machinery/suit_storage_unit_vr.dm
index 7a52a9f766..9f9e51ff35 100644
--- a/code/game/machinery/suit_storage_unit_vr.dm
+++ b/code/game/machinery/suit_storage_unit_vr.dm
@@ -1,2 +1,2 @@
/obj/machinery/suit_cycler
- species = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Promethean", "Xenomorph Hybrid")
+ species = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Promethean", "Xenomorph Hybrid", "Xenochimera","Vasilissan") //Added xenochimera while I was at it. Someone put in an issue about it.
diff --git a/code/modules/client/preference_setup/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm
index a16e9057b3..f670eeadf4 100644
--- a/code/modules/client/preference_setup/vore/07_traits.dm
+++ b/code/modules/client/preference_setup/vore/07_traits.dm
@@ -87,18 +87,14 @@
new_CS.blood_color = pref.blood_color
/datum/category_item/player_setup_item/vore/traits/content(var/mob/user)
- if(pref.species == "Custom Species" || pref.custom_species)
- . += "Custom Species "
- . += "[pref.custom_species ? pref.custom_species : "-Input Name-"]
"
+ //if(pref.species == "Custom Species" || pref.custom_species) //People that want to use a certain species to have that species traits (xenochimera/promethean/spider) should be able to set their custom species.
+ . += "Custom Species "
+ . += "[pref.custom_species ? pref.custom_species : "-Input Name-"]
"
if(pref.species == "Custom Species")
. += "Icon Base: "
. += "[pref.custom_base ? pref.custom_base : "Human"]
"
- . += "Blood Color: "
- . += "Set Color"
- . += "R
"
-
var/points_left = pref.starting_trait_points
var/traits_left = pref.max_traits
for(var/T in pref.pos_traits + pref.neu_traits + pref.neg_traits)
@@ -130,18 +126,21 @@
var/datum/trait/trait = negative_traits[T]
. += "
- [trait.name] ([trait.cost])"
. += ""
+ . += "Blood Color: " //People that want to use a certain species to have that species traits (xenochimera/promethean/spider) should be able to set their own blood color.
+ . += "Set Color"
+ . += "R
"
/datum/category_item/player_setup_item/vore/traits/OnTopic(var/href,var/list/href_list, var/mob/user)
if(!CanUseTopic(user))
return TOPIC_NOACTION
else if(href_list["custom_species"])
- if(pref.species != "Custom Species")
+ /*if(pref.species != "Custom Species")
alert("You cannot set a custom species name unless you set your character to use the 'Custom Species' \
species on the 'General' tab. If you have this set to something, it's because you had it set before the \
Trait system was implemented. If you wish to change it, set your species to 'Custom Species' and configure \
the species completely.")
- return TOPIC_REFRESH
+ return TOPIC_REFRESH*/ //There was no reason to have this.
var/raw_choice = sanitize(input(user, "Input your custom species name:",
"Character Preference", pref.custom_species) as null|text, MAX_NAME_LEN)
if (CanUseTopic(user))
diff --git a/code/modules/clothing/clothing_vr.dm b/code/modules/clothing/clothing_vr.dm
index 451d699261..588400895c 100644
--- a/code/modules/clothing/clothing_vr.dm
+++ b/code/modules/clothing/clothing_vr.dm
@@ -35,15 +35,16 @@
slot_flags = SLOT_MASK
body_parts_covered = FACE|EYES
sprite_sheets = list(
- "Teshari" = 'icons/mob/species/seromi/masks_vr.dmi',
- "Vox" = 'icons/mob/species/vox/masks.dmi',
- "Tajara" = 'icons/mob/species/tajaran/mask_vr.dmi',
- "Unathi" = 'icons/mob/species/unathi/mask_vr.dmi',
- "Sergal" = 'icons/mob/species/sergal/mask_vr.dmi',
- "Nevrean" = 'icons/mob/species/nevrean/mask_vr.dmi',
- "Fox" = 'icons/mob/species/fox/mask_vr.dmi',
- "Fennec" = 'icons/mob/species/fennec/mask_vr.dmi',
- "Akula" = 'icons/mob/species/akula/mask_vr.dmi',
- "Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi',
- "Xenochimera" = 'icons/mob/species/tajaran/mask_vr.dmi'
- )
\ No newline at end of file
+ "Teshari" = 'icons/mob/species/seromi/masks_vr.dmi',
+ "Vox" = 'icons/mob/species/vox/masks.dmi',
+ "Tajara" = 'icons/mob/species/tajaran/mask_vr.dmi',
+ "Unathi" = 'icons/mob/species/unathi/mask_vr.dmi',
+ "Sergal" = 'icons/mob/species/sergal/mask_vr.dmi',
+ "Nevrean" = 'icons/mob/species/nevrean/mask_vr.dmi',
+ "Fox" = 'icons/mob/species/fox/mask_vr.dmi',
+ "Fennec" = 'icons/mob/species/fennec/mask_vr.dmi',
+ "Akula" = 'icons/mob/species/akula/mask_vr.dmi',
+ "Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi',
+ "Xenochimera" = 'icons/mob/species/tajaran/mask_vr.dmi'
+ )
+//"Spider" = 'icons/mob/species/spider/mask_vr.dmi' Add this later when they have custom mask sprites and everything.
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/human_species_vr.dm b/code/modules/mob/living/carbon/human/human_species_vr.dm
index a7f7be7de6..596de6a1fa 100644
--- a/code/modules/mob/living/carbon/human/human_species_vr.dm
+++ b/code/modules/mob/living/carbon/human/human_species_vr.dm
@@ -13,3 +13,6 @@
/mob/living/carbon/human/xenohybrid/New(var/new_loc)
..(new_loc, "Xenomorph Hybrid")
+
+/mob/living/carbon/human/spider/New(var/new_loc)
+ ..(new_loc, "Vasilissan")
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm b/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm
index 359d9b2328..aa4861391e 100644
--- a/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm
+++ b/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm
@@ -1,7 +1,7 @@
/datum/species/shapeshifter/promethean
min_age = 18
max_age = 80
- valid_transform_species = list("Human", "Unathi", "Tajara", "Skrell", "Diona", "Teshari", "Monkey","Sergal","Akula","Nevrean","Highlander Zorren","Flatland Zorren", "Vulpkanin", "Neaera", "Stok", "Farwa")
+ valid_transform_species = list("Human", "Unathi", "Tajara", "Skrell", "Diona", "Teshari", "Monkey","Sergal","Akula","Nevrean","Highlander Zorren","Flatland Zorren", "Vulpkanin", "Vasilissan", "Neaera", "Stok", "Farwa")
heal_rate = 0.2 //They heal .2, along with the natural .2 heal per tick when below the organ natural heal damage threshhold.
siemens_coefficient = 1 //Prevents them from being immune to tasers and stun weapons.
death_message = "goes limp, their body becoming softer..."
diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm
index d1ad3dce6f..c92989b85e 100644
--- a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm
+++ b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm
@@ -155,7 +155,7 @@
//////////////////////////////////////////////////////////////////////////////////////////
-///////////WIP CODE TO MAKE XENOCHIMERAS NOT DIE IN SPACE WHILE REGENNING BELOW///////////
+///////////WIP CODE TO MAKE XENOCHIMERAS NOT DIE IN SPACE WHILE REGENNING BELOW/////////// //I put WIP, but what I really meant to put was "Finished"
//////////////////////////////////////////////////////////////////////////////////////////
var/datum/gas_mixture/environment = H.loc.return_air()
@@ -184,3 +184,75 @@
H.eye_blurry = 5
H.shock_stage = min(H.shock_stage + coldshock, 160) //cold hurts and gives them pain messages, eventually weakening and paralysing, but doesn't damage or trigger feral.
return
+
+
+/////////////////////
+/////SPIDER RACE/////
+/////////////////////
+/datum/species/spider //These actually look pretty damn spooky!
+ name = "Vasilissan"
+ name_plural = "Vasilissans"
+ icobase = 'icons/mob/human_races/r_spider.dmi'
+ deform = 'icons/mob/human_races/r_def_spider.dmi'
+ unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp)
+ darksight = 8 //Can see completely in the dark. They are spiders, after all. Not that any of this matters because people will be using custom race.
+ slowdown = -0.15 //Small speedboost, as they've got a bunch of legs. Or something. I dunno.
+ brute_mod = 0.8 //20% brute damage reduction
+ burn_mod = 1.15 //15% burn damage increase. They're spiders. Aerosol can+lighter = dead spiders.
+
+ num_alternate_languages = 2
+ secondary_langs = list("Sol Common")
+ color_mult = 1
+ tail = "tail" //Spider tail.
+ icobase_tail = 1
+
+ inherent_verbs = list(
+ /mob/proc/weaveWebBindings)
+
+ min_age = 17
+ max_age = 80
+
+ blurb = "Vasilissans are a tall, lanky, spider like people. \
+ Each having four eyes, an extra four, large legs sprouting from their back, and a chitinous plating on their body, and the ability to spit webs \
+ from their mandible lined mouths. They are a recent discovery by Nanotrasen, only being discovered roughly seven years ago. \
+ Before they were found they built great cities out of their silk, being united and subjugated in warring factions under great Star Queens \
+ Who forced the working class to build huge, towering cities to attempt to reach the stars, which they worship as gems of great spiritual and magical significance."
+
+ hazard_low_pressure = -1 //Prevents them from dying normally in space. Special code handled below.
+ cold_level_1 = -5000 // All cold debuffs are handled below in handle_environment_special
+ cold_level_2 = -5000
+ cold_level_3 = -5000
+
+ //primitive_form = "Monkey" //I dunno. Replace this in the future.
+
+ spawn_flags = SPECIES_CAN_JOIN
+ appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR
+
+ flesh_color = "#AFA59E" //Gray-ish. Not sure if this is really needed, but eh.
+ base_color = "#333333" //Blackish-gray
+ blood_color = "#0952EF" //Spiders have blue blood.
+
+/datum/species/spider/handle_environment_special(var/mob/living/carbon/human/H)
+ if(H.stat == 2) // If they're dead they won't need anything.
+ return
+
+ var/datum/gas_mixture/environment = H.loc.return_air()
+ var/pressure2 = environment.return_pressure()
+ var/adjusted_pressure2 = H.calculate_affecting_pressure(pressure2)
+
+ if(adjusted_pressure2 <= 20) //If they're in an enviroment with no pressure and are NOT in stasis, like a stasis bodybag, damage them.
+ H.take_overall_damage(brute=LOW_PRESSURE_DAMAGE, used_weapon = "Low Pressure")
+
+ if(H.bodytemperature <= 260) //If they're really cold, they go into stasis.
+ var/coldshock = 0
+ if(H.bodytemperature <= 260 && H.bodytemperature >= 200) //Chilly.
+ coldshock = 4 //This will begin to knock them out until they run out of oxygen and suffocate or until someone finds them.
+ H.eye_blurry = 5 //Blurry vision in the cold.
+ if(H.bodytemperature <= 199 && H.bodytemperature >= 100) //Extremely cold. Even in somewhere like the server room it takes a while for bodytemp to drop this low.
+ coldshock = 8
+ H.eye_blurry = 5
+ if(H.bodytemperature <= 99) //Insanely cold.
+ coldshock = 16
+ H.eye_blurry = 5
+ H.shock_stage = min(H.shock_stage + coldshock, 160) //cold hurts and gives them pain messages, eventually weakening and paralysing, but doesn't damage.
+ return
diff --git a/code/modules/mob/new_player/sprite_accessories_vr.dm b/code/modules/mob/new_player/sprite_accessories_vr.dm
index 424f92d853..4b1edeeb25 100644
--- a/code/modules/mob/new_player/sprite_accessories_vr.dm
+++ b/code/modules/mob/new_player/sprite_accessories_vr.dm
@@ -6,7 +6,7 @@
/datum/sprite_accessory/hair
- species_allowed = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Xenochimera", "Xenomorph Hybrid") //This lets all races use the default hairstyles.
+ species_allowed = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Xenochimera", "Xenomorph Hybrid", "Spider") //This lets all races use the default hairstyles.
sergal_plain
name = "Sergal Plain"
@@ -445,6 +445,12 @@
icon_state = "monoeye"
body_parts = list(BP_HEAD)
+ spidereyes
+ name = "Spider Eyes"
+ icon = 'icons/mob/human_face_vr.dmi'
+ icon_state = "spidereyes"
+ body_parts = list(BP_HEAD)
+
nevrean_female
name = "Female Nevrean beak"
icon_state = "nevrean_f"
diff --git a/code/modules/organs/robolimbs_vr.dm b/code/modules/organs/robolimbs_vr.dm
index 9bc38581a5..28058af2e2 100644
--- a/code/modules/organs/robolimbs_vr.dm
+++ b/code/modules/organs/robolimbs_vr.dm
@@ -141,3 +141,16 @@
/obj/item/weapon/disk/limb/dsi_akula
company = "DSI - Akula"
+
+/datum/robolimb/dsi_spider
+ company = "DSI - Vasilissan"
+ desc = "This limb feels hard and chitinous, realistic design. Seems a little mischievous. By Darkside Incorperated."
+ icon = 'icons/mob/human_races/cyberlimbs/DSISpider/dsi_spider.dmi'
+ blood_color = "#ffe2ff"
+ lifelike = 1
+ unavailable_to_build = 1
+ includes_tail = 1
+ suggested_species = "Vasilissan"
+
+/obj/item/weapon/disk/limb/dsi_spider
+ company = "DSI - Vasilissan"
\ No newline at end of file
diff --git a/code/modules/vore/appearance/spider_taur_powers_vr.dm b/code/modules/vore/appearance/spider_taur_powers_vr.dm
index 020b482a8c..0fccc108ac 100644
--- a/code/modules/vore/appearance/spider_taur_powers_vr.dm
+++ b/code/modules/vore/appearance/spider_taur_powers_vr.dm
@@ -10,11 +10,12 @@
//-Antsnap
obj/item/clothing/suit/web_bindings
- icon = 'icons/obj/clothing/suits.dmi'
+ icon = 'icons/vore/custom_clothes_vr.dmi'
+ icon_override = 'icons/vore/custom_clothes_vr.dmi'
name = "web bindings"
desc = "A webbed cocoon that completely restrains the wearer."
icon_state = "web_bindings"
- item_state = "web_bindings"
+ item_state = "web_bindings_mob"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL
@@ -35,7 +36,7 @@ mob/proc/weaveWebBindings()
set name = "Weave Web Bindings"
set category = "Species Powers"
if(nutrition >= 30) //This isn't a huge problem. This is so you can bind people up.
- src.visible_message("\the [src] pulls silk from their spinneret and delicately weaves it into bindings.")
+ src.visible_message("\the [src] pulls silk from their manibles and delicately weaves it into bindings.")
nutrition -= 30
spawn(30) //5 seconds to weave the bindings~
var/obj/item/clothing/suit/web_bindings/bindings = new() //This sprite is amazing, I must say.
diff --git a/code/modules/vore/appearance/sprite_accessories_vr.dm b/code/modules/vore/appearance/sprite_accessories_vr.dm
index 3c802c8e6e..e7cf7139fe 100644
--- a/code/modules/vore/appearance/sprite_accessories_vr.dm
+++ b/code/modules/vore/appearance/sprite_accessories_vr.dm
@@ -315,6 +315,11 @@
var/ani_state // State when flapping/animated
var/extra_overlay_w // Flapping state for extra overlay
+/datum/sprite_accessory/wing/spider_legs //Not really /WINGS/ but they protrude from the back, kinda. Might as well have them here.
+ name = "spider legs"
+ desc = ""
+ icon_state = "spider-legs"
+ color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/wing/moth
name = "moth wings"
desc = ""
diff --git a/icons/mob/human_face_vr.dmi b/icons/mob/human_face_vr.dmi
index e29d700aaa..9cfb8320e4 100644
Binary files a/icons/mob/human_face_vr.dmi and b/icons/mob/human_face_vr.dmi differ
diff --git a/icons/mob/human_races/cyberlimbs/DSISpider/dsi_spider.dmi b/icons/mob/human_races/cyberlimbs/DSISpider/dsi_spider.dmi
new file mode 100644
index 0000000000..a9ffd20a6d
Binary files /dev/null and b/icons/mob/human_races/cyberlimbs/DSISpider/dsi_spider.dmi differ
diff --git a/icons/mob/human_races/r_def_spider.dmi b/icons/mob/human_races/r_def_spider.dmi
new file mode 100644
index 0000000000..b50f328f18
Binary files /dev/null and b/icons/mob/human_races/r_def_spider.dmi differ
diff --git a/icons/mob/human_races/r_spider.dmi b/icons/mob/human_races/r_spider.dmi
new file mode 100644
index 0000000000..6d0501da40
Binary files /dev/null and b/icons/mob/human_races/r_spider.dmi differ
diff --git a/icons/mob/vore/wings_vr.dmi b/icons/mob/vore/wings_vr.dmi
index 19f9c89049..6b6893ee4f 100644
Binary files a/icons/mob/vore/wings_vr.dmi and b/icons/mob/vore/wings_vr.dmi differ
diff --git a/icons/vore/custom_clothes_vr.dmi b/icons/vore/custom_clothes_vr.dmi
index 1dcc929438..9123ebb0fa 100644
Binary files a/icons/vore/custom_clothes_vr.dmi and b/icons/vore/custom_clothes_vr.dmi differ