Merge pull request #1996 from Cameron653/SPIDER_RACE

Spider race & modifications!
This commit is contained in:
Spades
2017-08-14 00:31:39 -04:00
committed by GitHub
18 changed files with 131 additions and 30 deletions
@@ -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))
+13 -12
View File
@@ -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"
+13
View File
@@ -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 = ""