mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-23 04:51:32 +01:00
Vaurca Update
Vaurca for ne code, now with better sprites
This commit is contained in:
@@ -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.
|
||||
|
||||
|
||||
@@ -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")
|
||||
@@ -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,
|
||||
)
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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 |
Reference in New Issue
Block a user