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