mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-22 19:47:47 +01:00
Merge pull request #1996 from Cameron653/SPIDER_RACE
Spider race & modifications!
This commit is contained in:
@@ -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)
|
||||
. += "<b>Custom Species</b> "
|
||||
. += "<a href='?src=\ref[src];custom_species=1'>[pref.custom_species ? pref.custom_species : "-Input Name-"]</a><br>"
|
||||
//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.
|
||||
. += "<b>Custom Species</b> "
|
||||
. += "<a href='?src=\ref[src];custom_species=1'>[pref.custom_species ? pref.custom_species : "-Input Name-"]</a><br>"
|
||||
|
||||
if(pref.species == "Custom Species")
|
||||
. += "<b>Icon Base: </b> "
|
||||
. += "<a href='?src=\ref[src];custom_base=1'>[pref.custom_base ? pref.custom_base : "Human"]</a><br>"
|
||||
|
||||
. += "<b>Blood Color: </b>"
|
||||
. += "<a href='?src=\ref[src];blood_color=1'>Set Color</a>"
|
||||
. += "<a href='?src=\ref[src];blood_reset=1'>R</a><br>"
|
||||
|
||||
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]
|
||||
. += "<li>- <a href='?src=\ref[src];clicked_neg_trait=[T]'>[trait.name] ([trait.cost])</a></li>"
|
||||
. += "</ul>"
|
||||
. += "<b>Blood Color: </b>" //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.
|
||||
. += "<a href='?src=\ref[src];blood_color=1'>Set Color</a>"
|
||||
. += "<a href='?src=\ref[src];blood_reset=1'>R</a><br>"
|
||||
|
||||
/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))
|
||||
|
||||
@@ -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'
|
||||
)
|
||||
"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.
|
||||
@@ -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")
|
||||
@@ -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..."
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
@@ -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("<span class='notice'>\the [src] pulls silk from their spinneret and delicately weaves it into bindings.</span>")
|
||||
src.visible_message("<span class='notice'>\the [src] pulls silk from their manibles and delicately weaves it into bindings.</span>")
|
||||
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.
|
||||
|
||||
@@ -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 = ""
|
||||
|
||||
Reference in New Issue
Block a user