Vaurca Update

Vaurca for ne code, now with better sprites
This commit is contained in:
Lord Lag
2016-01-20 19:50:19 +00:00
parent ec73203bd5
commit ee583b913d
16 changed files with 212 additions and 9 deletions
+18
View File
@@ -68,6 +68,24 @@
if(safety <= 0)
M.Weaken(10)
flick("e_flash", M.flash)
//Vaurca damage 15/01/16
var/mob/living/carbon/human/H = M
if(H.species.flags & IS_BUG)
var/obj/item/organ/eyes/E = H.internal_organs_by_name["eyes"]
if(!E)
return
usr << "\red Your eyes burn with the intense light of the flash!."
E.damage += rand(10, 11)
if(E.damage > 12)
M.eye_blurry += rand(3,6)
if (E.damage >= E.min_broken_damage)
M.sdisabilities |= BLIND
else if (E.damage >= E.min_bruised_damage)
M.eye_blind = 5
M.eye_blurry = 5
M.disabilities |= NEARSIGHTED
spawn(100)
M.disabilities &= ~NEARSIGHTED
if(ishuman(M) && ishuman(user) && M.stat!=DEAD)
if(user.mind && user.mind in revs.current_antagonists)
@@ -53,6 +53,24 @@
flick("e_flash", M.flash)
M.Stun(2)
M.Weaken(10)
//Vaurca damage 15/01/16
var/mob/living/carbon/human/H = M
if(H.species.flags & IS_BUG)
var/obj/item/organ/eyes/E = H.internal_organs_by_name["eyes"]
if(!E)
return
usr << "\red Your eyes burn with the intense light of the flash!."
E.damage += rand(10, 11)
if(E.damage > 12)
M.eye_blurry += rand(3,6)
if (E.damage >= E.min_broken_damage)
M.sdisabilities |= BLIND
else if (E.damage >= E.min_bruised_damage)
M.eye_blind = 5
M.eye_blurry = 5
M.disabilities |= NEARSIGHTED
spawn(100)
M.disabilities &= ~NEARSIGHTED
@@ -15,7 +15,7 @@
cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE
siemens_coefficient = 0.9
species_restricted = list("exclude","Diona", "Xenomorph")
species_restricted = list("exclude","Diona","Xenomorph","Vaurca")
var/obj/machinery/camera/camera
var/list/camera_networks
@@ -61,7 +61,7 @@
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
siemens_coefficient = 0.9
species_restricted = list("exclude","Diona", "Xenomorph")
species_restricted = list("exclude","Diona","Xenomorph","Vaurca")
var/list/supporting_limbs //If not-null, automatically splints breaks. Checked when removing the suit.
+9
View File
@@ -66,6 +66,15 @@
flags = WHITELISTED
syllables = list("qr","qrr","xuq","qil","quum","xuqm","vol","xrim","zaoo","qu-uu","qix","qoo","zix","*","!")
/datum/language/vaurcese
name = "Vaurcese"
desc = "Vaurca native language made of clicks and sputters, \"It's a bugs life.\""
speech_verb = "clicks"
colour = "vaurca"
key = "p"
flags = WHITELISTED
syllables = list("kic","klic","\'tic","kit","lit","xic","vil","xrit","tshh","qix","qlit","zix","\'","!")
/datum/language/human
name = "Sol Common"
desc = "A bastardized hybrid of informal English and elements of Mandarin Chinese; the common language of the Sol system."
@@ -257,3 +257,40 @@
visible_message("<span class='warning'>\The [src] quivers slightly, then splits apart with a wet slithering noise.</span>")
qdel(src)
/mob/living/carbon/human/proc/bugbite()
set category = "Abilities"
set name = "Bite"
set desc = "While grabbing someone aggressively, tear into them with your mandibles."
if(last_special > world.time)
return
if(stat || paralysis || stunned || weakened || lying)
src << "\red You cannot do that in your current state."
return
var/obj/item/weapon/grab/G = locate() in src
if(!G || !istype(G))
src << "\red You are not grabbing anyone."
return
if(G.state < GRAB_AGGRESSIVE)
src << "\red You must have an aggressive grab to gut your prey!"
return
last_special = world.time + 50
visible_message("<span class='warning'><b>\The [src]</b> rips viciously at \the [G.affecting]'s flesh with its mandibles!</span>")
if(istype(G.affecting,/mob/living/carbon/human))
var/mob/living/carbon/human/H = G.affecting
H.apply_damage(30,BRUTE)
// if(H.stat == 2) //no gibbing humans but i'll let you gib like a mouse or something that's cool
// H.gib()
else
var/mob/living/M = G.affecting
if(!istype(M)) return //wut
M.apply_damage(30,BRUTE)
if(M.stat == 2)
M.gib()
@@ -36,3 +36,6 @@
/mob/living/carbon/human/stok/New(var/new_loc)
..(new_loc, "Stok")
/mob/living/carbon/human/bug/New(var/new_loc)
..(new_loc, "Vaurca")
+12 -3
View File
@@ -258,7 +258,7 @@
proc/handle_mutations_and_radiation()
if(species.flags & IS_SYNTHETIC) //Robots don't suffer from mutations or radloss.
if(species.flags & IS_SYNTHETIC || species.flags & IS_BUG) //Robots/bugs don't suffer from mutations or radloss.
return
if(getFireLoss())
@@ -366,14 +366,14 @@
get_breath_from_environment(var/volume_needed=BREATH_VOLUME)
var/datum/gas_mixture/breath = ..()
if(breath)
//exposure to extreme pressures can rupture lungs
var/check_pressure = breath.return_pressure()
if(check_pressure < ONE_ATMOSPHERE / 5 || check_pressure > ONE_ATMOSPHERE * 5)
if(!is_lung_ruptured() && prob(5))
rupture_lung()
return breath
handle_breath(datum/gas_mixture/breath)
@@ -409,6 +409,15 @@
else if(L.is_bruised())
safe_pressure_min *= 1.25
if(species.has_organ["breathing apparatus"])
var/obj/item/organ/vaurca/breathingapparatus/L = internal_organs_by_name["breathing apparatus"]
if(isnull(L))
safe_pressure_min = INFINITY //No wannabe-lungs, how are you breathing? FOR VAURCA
else if(L.is_broken())
safe_pressure_min *= 1.5
else if(L.is_bruised())
safe_pressure_min *= 1.25
var/safe_exhaled_max = 10
var/safe_toxins_max = 0.005
var/SA_para_min = 1
@@ -228,6 +228,14 @@
for(var/obj/item/organ/I in H.internal_organs)
I.robotize()
if(flags & IS_BUG)
for (var/obj/item/organ/external/E in H.organs)
if ((E.status & ORGAN_CUT_AWAY) || (E.status & ORGAN_DESTROYED))
continue
E.status |= ORGAN_ADV_ROBOT
for(var/obj/item/organ/I in H.internal_organs)
I.robotize()
/datum/species/proc/hug(var/mob/living/carbon/human/H,var/mob/living/target)
var/t_him = "them"
@@ -266,3 +266,47 @@
H.h_style = ""
spawn(100)
if(H) H.update_hair()
/datum/species/bug
name = "Vaurca"
name_plural = "varucae"
icobase = 'icons/mob/human_races/r_vaurca.dmi'
deform = 'icons/mob/human_races/r_vaurca.dmi'
language = "Vaurcese"
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp)
rarity_value = 2
slowdown = 1
darksight = 5 //USELESS
eyes = "blank_eyes"
brute_mod = 0.5 //note to self: remove is_synthetic checks for brmod and burnmod
burn_mod = 2
warning_low_pressure = 50
hazard_low_pressure = 0
cold_level_1 = 50
cold_level_2 = -1
cold_level_3 = -1
heat_level_1 = 330 //Default 360
heat_level_2 = 380 //Default 400
heat_level_3 = 600 //Default 1000
flags = CAN_JOIN | IS_WHITELISTED | NO_SLIP | IS_BUG | NO_SCAN
blood_color = "#E6E600" // dark yellow
flesh_color = "#575757"
inherent_verbs = list(
/mob/living/carbon/human/proc/bugbite //weaker version of gut.
)
has_organ = list(
"neural socket" = /obj/item/organ/vaurca/neuralsocket,
"breathing apparatus" = /obj/item/organ/vaurca/breathingapparatus,
"heart" = /obj/item/organ/heart,
"second heart" = /obj/item/organ/heart,
"liver" = /obj/item/organ/liver,
"kidneys" = /obj/item/organ/kidneys,
"brain" = /obj/item/organ/brain,
"eyes" = /obj/item/organ/eyes,
)
+28
View File
@@ -379,3 +379,31 @@
/obj/item/organ/external/head/slime
cannot_break = 1
dislocated = -1
//VAURCA ORGANS
/obj/item/organ/vaurca/neuralsocket
name = "neural socket"
organ_tag = "neural socket"
icon = 'icons/mob/alien.dmi'
icon_state = "neural_socket"
/obj/item/organ/vaurca/neuralsocket/removed()
return
/obj/item/organ/vaurca/breathingapparatus
name = "breathing apparatus"
organ_tag = "breathing apparatus"
icon = 'icons/mob/alien.dmi'
icon_state = "breathing_app"
/obj/item/organ/vaurca/breathingapparatus/removed()
return
/obj/item/organ/vaurca/tracheae
name = "tracheae"
organ_tag = "tracheae"
icon = 'icons/mob/alien.dmi'
icon_state = "tracheae"
/obj/item/organ/vaurca/tracheae/removed()
return
+9 -3
View File
@@ -258,7 +258,7 @@
createwound(BURN, min(burn,can_inflict))
//How much burn damage is left to inflict
spillover += max(0, burn - can_inflict)
//If there are still hurties to dispense
if (spillover)
owner.shock_stage += spillover * config.organ_damage_spillover_multiplier
@@ -275,7 +275,7 @@
//2. If the damage amount dealt exceeds the disintegrate threshold, the organ is completely obliterated.
//3. If the organ has already reached or would be put over it's max damage amount (currently redundant),
// and the brute damage dealt exceeds the tearoff threshold, the organ is torn off.
//Check edge eligibility
var/edge_eligible = 0
if(edge)
@@ -557,7 +557,7 @@ Note that amputating the affected organ does in fact remove the infection from t
//Updating wounds. Handles wound natural I had some free spachealing, internal bleedings and infections
/obj/item/organ/external/proc/update_wounds()
if((status & ORGAN_ROBOT)) //Robotic limbs don't heal or get worse.
if((status & ORGAN_ROBOT) || (status & ORGAN_ADV_ROBOT)) //Robotic limbs don't heal or get worse.
return
for(var/datum/wound/W in wounds)
@@ -890,6 +890,12 @@ Note that amputating the affected organ does in fact remove the infection from t
if(T)
T.robotize()
/obj/item/organ/external/proc/robotize_advanced()
status |= ORGAN_ADV_ROBOT
for (var/obj/item/organ/external/T in children)
if (T)
T.robotize_advanced()
/obj/item/organ/external/proc/mutate()
if(src.status & ORGAN_ROBOT)
return
+16
View File
@@ -165,3 +165,19 @@
icon_state = "appendixinflamed"
name = "inflamed appendix"
..()
//VAURCA ORGANS
/obj/item/organ/vaurca/neuralsocket
name = "neural socket"
parent_organ = "head"
robotic = 2
/obj/item/organ/vaurca/breathingapparatus
name = "breathing apparatus"
parent_organ = "chest"
robotic = 2
/obj/item/organ/internal/vaurca/process()
return
+3 -1
View File
@@ -313,6 +313,8 @@
//No animations will be performed by this proc.
/proc/electrocute_mob(mob/living/carbon/M as mob, var/power_source, var/obj/source, var/siemens_coeff = 1.0)
if(istype(M.loc,/obj/mecha)) return 0 //feckin mechs are dumb
var/mob/living/carbon/human/H = M //20/1/16 Insulation (vaurca)
if(H.species.flags & IS_BUG) return 0
var/area/source_area
if(istype(power_source,/area))
source_area = power_source
@@ -343,7 +345,7 @@
if(PN)
PN.trigger_warning(5)
if(istype(M,/mob/living/carbon/human))
var/mob/living/carbon/human/H = M
//var/mob/living/carbon/human/H = M
if(H.species.siemens_coefficient == 0)
return
if(H.gloves)
+4
View File
@@ -512,12 +512,15 @@
#define ORGAN_GAUZED 2
#define ORGAN_BLEEDING 8
#define ORGAN_BROKEN 32
#define ORGAN_DESTROYED 64
#define ORGAN_ROBOT 128
#define ORGAN_SPLINTED 256
#define SALVED 512
#define ORGAN_DEAD 1024
#define ORGAN_MUTATED 2048
#define ORGAN_ASSISTED 4096
#define ORGAN_ADV_ROBOT 4096
// Admin permissions. Please don't edit these values without speaking to Errorage first. ~Carn
#define R_BUILDMODE 1
@@ -650,6 +653,7 @@ var/list/be_special_flags = list(
#define CAN_JOIN 16384 // Species is selectable in chargen.
#define IS_RESTRICTED 32768 // Is not a core/normally playable species. (castes, mutantraces)
#define REGENERATES_LIMBS 65536 // Attempts to regenerate unamputated limbs.
#define IS_BUG 4096 //Everything bug related
// Language flags.
#define WHITELISTED 1 // Language is available if the speaker is whitelisted.
+1
View File
@@ -86,6 +86,7 @@ h1.alert, h2.alert {color: #000000;}
.tajaran {color: #803B56;}
.tajaran_signlang {color: #941C1C;}
.skrell {color: #00CED1;}
.vaurca {color: #9e9e39;}
.soghun {color: #228B22;}
.solcom {color: #22228B;}
.changeling {color: #800080;}
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB