mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-27 06:54:18 +01:00
[Ready for Review] Unapologetic Vaurca Buffs III: Revenge of the Buffs (#4885)
Implements various changes at the behest of lore-dev BygoneHero, namely: Vaurca can now wear specially modified softsuits. Vaurca now have their own special rigsuit a la the breacher: the combat exoskeleton. It comes with various special modules, including a boring laser that allows them to dig below themselves rapidly, a vaurca variant of the combat injector which includes phoron and k'ois paste, and a neural lattice which reduces halloss by sharing it with everyone else wearing a neural lattice. Vaurca also have received various other currently unavailable event items, including a variant of the tactical mask that filters out nitrogen and allows the Vaurca wearing it to eat, tachyon rifles and carbines which penetrate up to three layers of walls and possess other fringe benefits, the gauss rifle which is a semi-automatic variant of the crossbow with greater power and a 6 rod magazine, the energy zweihander, commando armor and scout armor. Introduces a general climbing mechanic. Climbing can be initiated by clicking on a wall or an open turf, and it is a percentage chance that is modified by the amount of stable/large items beneath you, and decreased by the amount of unstable/small items. Vaurca are naturally proficient and always succeed at climbing. Changes Vaurca to see in blue-green vision. Their vision is generally brighter and reddish colors are converted to a blue-green color. Adds the Sedantis flag, an interhive flag that celebrates the universal longing for Sedantis and is a symbol of the Vaurca diaspora.
This commit is contained in:
@@ -1296,6 +1296,9 @@
|
||||
if (src.is_diona())
|
||||
setup_gestalt(1)
|
||||
|
||||
burn_mod = species.burn_mod
|
||||
brute_mod = species.brute_mod
|
||||
|
||||
max_stamina = species.stamina
|
||||
stamina = max_stamina
|
||||
sprint_speed_factor = species.sprint_speed_factor
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
|
||||
|
||||
/mob/living/carbon/human/adjustBruteLoss(var/amount)
|
||||
amount = amount*species.brute_mod
|
||||
amount *= brute_mod
|
||||
if(amount > 0)
|
||||
take_overall_damage(amount, 0)
|
||||
else
|
||||
@@ -110,7 +110,7 @@
|
||||
BITSET(hud_updateflag, HEALTH_HUD)
|
||||
|
||||
/mob/living/carbon/human/adjustFireLoss(var/amount)
|
||||
amount = amount*species.burn_mod
|
||||
amount *= burn_mod
|
||||
if(amount > 0)
|
||||
take_overall_damage(0, amount)
|
||||
else
|
||||
@@ -118,7 +118,7 @@
|
||||
BITSET(hud_updateflag, HEALTH_HUD)
|
||||
|
||||
/mob/living/carbon/human/proc/adjustBruteLossByPart(var/amount, var/organ_name, var/obj/damage_source = null)
|
||||
amount = amount*species.brute_mod
|
||||
amount *= brute_mod
|
||||
if (organ_name in organs_by_name)
|
||||
var/obj/item/organ/external/O = get_organ(organ_name)
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
BITSET(hud_updateflag, HEALTH_HUD)
|
||||
|
||||
/mob/living/carbon/human/proc/adjustFireLossByPart(var/amount, var/organ_name, var/obj/damage_source = null)
|
||||
amount = amount*species.burn_mod
|
||||
amount *= burn_mod
|
||||
if (organ_name in organs_by_name)
|
||||
var/obj/item/organ/external/O = get_organ(organ_name)
|
||||
|
||||
@@ -245,6 +245,23 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/adjustHalLoss(var/amount, var/ignoreImmunity = 0)//An inherited version so this doesnt affect cyborgs
|
||||
if(status_flags & GODMODE) return 0 //godmode
|
||||
if(!ignoreImmunity)//Adjusting how hallloss works. Species with the NO_PAIN flag will suffer most of the effects of halloss, but will be immune to most conventional sources of accumulating it
|
||||
if (species && species.flags & NO_PAIN)//Species with this flag will only gather halloss through species-specific mechanics, which apply it with the ignoreImmunity flag
|
||||
return 0
|
||||
|
||||
if(wearing_rig) //I don't know if this is the best way, but I'm hard-pressed to think of a different way. Thanks Vaurca.
|
||||
for(var/obj/item/rig_module/lattice/L in wearing_rig.installed_modules)
|
||||
if(L.active && lattice_users.len)
|
||||
amount = amount / (lattice_users.len + 1)
|
||||
for(var/mob/living/carbon/human/H in lattice_users)
|
||||
if(H != src)
|
||||
H.setHalLoss(min(max(H.getHalLoss() + amount, 0),(H.maxHealth*2)))
|
||||
H << "<span class='danger'>Your neural lattice buzzes, filling your mind with pain!</span>"
|
||||
|
||||
halloss = min(max(halloss + amount, 0),(maxHealth*2))
|
||||
|
||||
////////////////////////////////////////////
|
||||
|
||||
//Returns a list of damaged organs
|
||||
|
||||
@@ -566,3 +566,189 @@
|
||||
G.affecting.forceMove(locate(T.x + rand(-1,1), T.y + rand(-1,1), T.z))
|
||||
else
|
||||
qdel(G)
|
||||
|
||||
/mob/living/carbon/human/proc/trample()
|
||||
set category = "Abilities"
|
||||
set name = "Trample"
|
||||
set desc = "Charge forward, trampling anything in your path until you hit something more stubborn than you are."
|
||||
|
||||
if(last_special > world.time)
|
||||
to_chat(src, "<span class='danger'>You are too tired to charge!.</span>")
|
||||
return
|
||||
|
||||
if(stat || paralysis || stunned || weakened || lying || restrained() || buckled)
|
||||
to_chat(src, "<span class='danger'>You cannot charge in your current state!.</span>")
|
||||
return
|
||||
|
||||
last_special = world.time
|
||||
|
||||
src.visible_message("<span class='warning'>\The [src] takes a step backwards and rears up.</span>",
|
||||
"<span class='notice'>You take a step backwards and then...</span>")
|
||||
if(do_after(src,5))
|
||||
playsound(loc, 'sound/species/shadow/grue_screech.ogg', 100, 1)
|
||||
src.visible_message("<span class='danger'>\The [src] charges!</span>")
|
||||
trampling()
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/trampling()
|
||||
|
||||
var/brokesomething = 0//true if we break anything
|
||||
var/done = 0//Set true if we fail to break something. We won't try to break anything for the rest of the proc
|
||||
|
||||
var/turf/target = get_step(src, dir)
|
||||
|
||||
for(var/obj/obstacle in get_turf(src))
|
||||
if((obstacle.flags & ON_BORDER) && (src != obstacle))
|
||||
if(!obstacle.CheckExit(src, target))
|
||||
brokesomething++
|
||||
if (!crash_into(obstacle))
|
||||
done = 1
|
||||
|
||||
if (!done && !target.CanPass(src, target))
|
||||
crash_into(target)
|
||||
brokesomething++
|
||||
if (!target.CanPass(src, target))
|
||||
done = 1
|
||||
|
||||
if (!done)
|
||||
for (var/atom/A in target)
|
||||
if (A.density && A != src && A.loc != src)
|
||||
brokesomething++
|
||||
if (!crash_into(A))
|
||||
done = 1
|
||||
if(istype(A, /mob/living) && !A.density)
|
||||
brokesomething++
|
||||
crash_into(A)
|
||||
|
||||
if (brokesomething)
|
||||
playsound(get_turf(target), 'sound/weapons/heavysmash.ogg', 100, 1)
|
||||
attack_log += "\[[time_stamp()]\]<font color='red'>crashed into [brokesomething] objects at ([target.x];[target.y];[target.z]) </font>"
|
||||
msg_admin_attack("[key_name(src)] crashed into [brokesomething] objects at (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[target.x];Y=[target.y];Z=[target.z]'>JMP</a>)" )
|
||||
|
||||
if (!done && target.Enter(src, null))
|
||||
if(stat || paralysis || stunned || weakened || lying || restrained() || buckled)
|
||||
return 0
|
||||
|
||||
step(src, dir)
|
||||
playsound(src,'sound/mecha/mechstep.ogg',25,1)
|
||||
if (brokesomething)
|
||||
src.visible_message("<span class='danger'>[src.name] breaks through!</span>")
|
||||
addtimer(CALLBACK(src, .proc/trampling), 1)
|
||||
|
||||
else
|
||||
target = get_step(src, dir)
|
||||
do_attack_animation(target)
|
||||
|
||||
/mob/living/carbon/human/proc/crash_into(var/atom/A)
|
||||
var/aname = A.name
|
||||
var/oldtype = A.type
|
||||
if(stat || paralysis || stunned || weakened || lying || restrained() || buckled)
|
||||
return 0
|
||||
|
||||
if (istype(A, /mob/living))
|
||||
var/mob/living/M = A
|
||||
attack_log += "\[[time_stamp()]\]<font color='red'> Crashed into [key_name(M)]</font>"
|
||||
M.attack_log += "\[[time_stamp()]\]<font color='orange'> Was rammed by [key_name(src)]</font>"
|
||||
msg_admin_attack("[key_name(src)] crashed into [key_name(M)] at (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[M.x];Y=[M.y];Z=[M.z]'>JMP</a>)" )
|
||||
|
||||
A.ex_act(2)
|
||||
|
||||
sleep(1)
|
||||
if (A && !(A.gcDestroyed) && A.type == oldtype)
|
||||
src.visible_message("<span class='danger'>[src.name] plows into \the [aname]!</span>")
|
||||
return 0
|
||||
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/human/proc/rebel_yell()
|
||||
set category = "Abilities"
|
||||
set name = "Screech"
|
||||
set desc = "Emit a powerful screech which stuns hearers in a two-tile radius."
|
||||
|
||||
if(last_special > world.time)
|
||||
to_chat(src, "<span class='danger'>You are too tired to screech!.</span>")
|
||||
return
|
||||
|
||||
if(stat || paralysis || stunned || weakened)
|
||||
to_chat(src, "<span class='danger'>You cannot screech in your current state!.</span>")
|
||||
return
|
||||
|
||||
last_special = world.time
|
||||
|
||||
visible_message("<span class='danger'>[src.name] lets out an ear piercing shriek!</span>",
|
||||
"<span class='danger'>You let out an ear-shattering shriek!</span>",
|
||||
"<span class='danger'>You hear a painfully loud shriek!</span>")
|
||||
|
||||
var/list/victims = list()
|
||||
|
||||
for (var/mob/living/carbon/human/T in hearers(2, src))
|
||||
if (T == src)
|
||||
continue
|
||||
|
||||
if (istype(T) && (T:l_ear || T:r_ear) && istype((T:l_ear || T:r_ear), /obj/item/clothing/ears/earmuffs))
|
||||
continue
|
||||
|
||||
if (!vampire_can_affect_target(T, 0))
|
||||
continue
|
||||
|
||||
to_chat(T, "<span class='danger'>You hear an ear piercing shriek and feel your senses go dull!</span>")
|
||||
T.Weaken(5)
|
||||
T.ear_deaf = 20
|
||||
T.stuttering = 20
|
||||
T.Stun(5)
|
||||
|
||||
victims += T
|
||||
|
||||
for (var/obj/structure/window/W in view(2))
|
||||
W.shatter()
|
||||
|
||||
for (var/obj/machinery/light/L in view(4))
|
||||
L.broken()
|
||||
|
||||
playsound(loc, 'sound/voice/shriek1.ogg', 100, 1)
|
||||
|
||||
if (victims.len)
|
||||
admin_attacker_log_many_victims(src, victims, "used rebel yell to stun", "was stunned by [key_name(src)] using rebel yell", "used rebel yell to stun")
|
||||
|
||||
/mob/living/carbon/human/proc/formic_spray()
|
||||
set category = "Abilities"
|
||||
set name = "Napalm"
|
||||
set desc = "Spew a cone of ignited napalm in front of you"
|
||||
|
||||
if(last_special > world.time)
|
||||
to_chat(src,"<span class='notice'>You are too tired to spray napalm.</span>")
|
||||
return
|
||||
|
||||
if(stat || paralysis || stunned || weakened || lying || restrained() || buckled)
|
||||
to_chat(src,"<span class='notice'>You cannot spray napalm in your current state.</span>")
|
||||
return
|
||||
|
||||
last_special = world.time
|
||||
playsound(loc, 'sound/species/shadow/grue_screech.ogg', 100, 1)
|
||||
visible_message("<span class='danger'>\The [src] unleashes a torrent of raging flame!</span>",
|
||||
"<span class='danger'>You unleash a gust of fire!</span>",
|
||||
"<span class='danger'>You hear the roar of an inferno!</span>")
|
||||
|
||||
var/turf/T = get_step(get_step(src, dir), dir)
|
||||
var/turf/T1 = get_step(T, dir)
|
||||
var/turf/T2 = get_step(T1,turn(dir, 90))
|
||||
var/turf/T3 = get_step(T1,turn(dir, -90))
|
||||
var/turf/T4 = get_step(T1, dir)
|
||||
var/turf/T5 = get_step(T2, dir)
|
||||
var/turf/T6 = get_step(T3, dir)
|
||||
var/turf/T7 = get_step(T5,turn(dir, 90))
|
||||
var/turf/T8 = get_step(T6,turn(dir, -90))
|
||||
var/list/the_targets = list(T,T1,T2,T3,T4,T5,T6,T7,T8)
|
||||
|
||||
playsound(src.loc, 'sound/magic/Fireball.ogg', 200, 1)
|
||||
for(var/turf/FuelSpot in the_targets)
|
||||
spawn(0)
|
||||
var/obj/effect/effect/water/firewater/D = new/obj/effect/effect/water/firewater(get_turf(get_step(src, dir)))
|
||||
var/turf/my_target = FuelSpot
|
||||
D.create_reagents(200)
|
||||
if(!src)
|
||||
return
|
||||
D.reagents.add_reagent("greekfire", 200)
|
||||
D.set_color()
|
||||
D.set_up(my_target, rand(6,8), 1, 50)
|
||||
return
|
||||
|
||||
@@ -78,6 +78,14 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy/mannequin)
|
||||
/mob/living/carbon/human/type_c
|
||||
layer = 5
|
||||
|
||||
/mob/living/carbon/human/type_big/Initialize(mapload)
|
||||
. = ..(mapload, "Vaurca Warform")
|
||||
src.gender = NEUTER
|
||||
src.mutations.Add(HULK)
|
||||
|
||||
/mob/living/carbon/human/type_big
|
||||
layer = 5
|
||||
|
||||
/mob/living/carbon/human/msai_tajara/Initialize(mapload)
|
||||
h_style = "Tajaran Ears"
|
||||
. = ..(mapload, "M'sai Tajara")
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
var/icon_x_offset = 0
|
||||
var/icon_y_offset = 0
|
||||
var/eyes = "eyes_s" // Icon for eyes.
|
||||
var/eyes_icons = 'icons/mob/human_face/eyes.dmi' // DMI file for eyes, mostly for none 32x32 species.
|
||||
var/has_floating_eyes // Eyes will overlay over darkness (glow)
|
||||
var/eyes_icon_blend = ICON_ADD // The icon blending mode to use for eyes.
|
||||
var/blood_color = "#A10808" // Red.
|
||||
@@ -70,11 +71,12 @@
|
||||
var/radiation_mod = 1 // Radiation modifier
|
||||
var/flash_mod = 1 // Stun from blindness modifier.
|
||||
var/fall_mod = 1 // Fall damage modifier, further modified by brute damage modifier
|
||||
var/vision_flags = DEFAULT_SIGHT // Same flags as glasses.
|
||||
var/vision_flags = DEFAULT_SIGHT // Same flags as glasses.
|
||||
var/inherent_eye_protection // If set, this species has this level of inherent eye protection.
|
||||
var/eyes_are_impermeable = FALSE // If TRUE, this species' eyes are not damaged by phoron.
|
||||
var/list/breakcuffs = list() //used in resist.dm to check if they can break hand/leg cuffs
|
||||
|
||||
var/list/breakcuffs = list() //used in resist.dm to check if they can break hand/leg cuffs
|
||||
var/natural_climbing = FALSE //If true, the species always succeeds at climbing.
|
||||
var/climb_coeff = 1.25 //The coefficient to the climbing speed of the individual = 60 SECONDS * climb_coeff
|
||||
// Death vars.
|
||||
var/meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/human
|
||||
var/gibber_type = /obj/effect/gibspawner/human
|
||||
|
||||
@@ -115,3 +115,36 @@
|
||||
step_away(target,user,15)
|
||||
sleep(1)
|
||||
target.apply_effect(attack_damage * 0.4, WEAKEN, armour)
|
||||
|
||||
/datum/unarmed_attack/claws/cleave
|
||||
attack_verb = list("cleaved", "plowed", "swiped")
|
||||
attack_noun = list("massive claws")
|
||||
damage = 25
|
||||
sharp = 1
|
||||
edge = 1
|
||||
attack_name = "massive claws"
|
||||
shredding = 1
|
||||
|
||||
/datum/unarmed_attack/claws/cleave/apply_effects(var/mob/living/carbon/human/user,var/mob/living/carbon/human/target,var/armour,var/attack_damage,var/zone)
|
||||
..()
|
||||
var/hit_mobs = 0
|
||||
for(var/mob/living/L in orange(1,user))
|
||||
if(L == user)
|
||||
continue
|
||||
if(L == target)
|
||||
continue
|
||||
L.apply_damage(rand(5,20), BRUTE, zone, armour)
|
||||
to_chat(L, "<span class='danger'>\The [user] [pick(attack_verb)] you with its [attack_noun]!</span>")
|
||||
hit_mobs++
|
||||
if(hit_mobs)
|
||||
to_chat(user, "<span class='danger'>You used \the [attack_noun] to attack [hit_mobs] other target\s!</span>")
|
||||
|
||||
|
||||
/datum/unarmed_attack/bite/mandibles
|
||||
attack_verb = list("mauled","gored","perforated")
|
||||
attack_noun = list("mandibles")
|
||||
damage = 35
|
||||
shredding = 1
|
||||
sharp = 1
|
||||
edge = 1
|
||||
attack_name = "mandibles"
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
brute_mod = 1.5
|
||||
burn_mod = 1.5
|
||||
fall_mod = 0.5
|
||||
natural_climbing = 1
|
||||
|
||||
spawn_flags = IS_RESTRICTED
|
||||
|
||||
|
||||
@@ -33,6 +33,8 @@
|
||||
sprint_speed_factor = 0.9
|
||||
sprint_cost_factor = 0.5
|
||||
|
||||
climb_coeff = 1
|
||||
|
||||
/datum/species/unathi
|
||||
name = "Unathi"
|
||||
short_name = "una"
|
||||
@@ -69,6 +71,7 @@
|
||||
rarity_value = 3
|
||||
breakcuffs = list(MALE)
|
||||
mob_size = 10
|
||||
climb_coeff = 1.35
|
||||
|
||||
blurb = "A heavily reptillian species, Unathi (or 'Sinta as they call themselves) hail from the Uuosa-Eso \
|
||||
system, which roughly translates to 'burning mother'. A relatively recent addition to the galactic stage, they \
|
||||
@@ -326,6 +329,7 @@
|
||||
stamina = -1 // Diona sprinting uses energy instead of stamina
|
||||
sprint_speed_factor = 0.5 //Speed gained is minor
|
||||
sprint_cost_factor = 0.8
|
||||
climb_coeff = 1.3
|
||||
|
||||
/datum/species/diona/handle_sprint_cost(var/mob/living/carbon/H, var/cost)
|
||||
var/datum/dionastats/DS = H.get_dionastats()
|
||||
@@ -657,6 +661,8 @@ datum/species/machine/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
breath_type = "phoron"
|
||||
poison_type = "nitrogen" //a species that breathes plasma shouldn't be poisoned by it.
|
||||
mob_size = 13 //their half an inch thick exoskeleton and impressive height, plus all of their mechanical organs.
|
||||
natural_climbing = TRUE
|
||||
climb_coeff = 0.75
|
||||
|
||||
blurb = "Type A are the most common type of Vaurca and can be seen as the 'backbone' of Vaurcae societies. Their most prevalent feature is their hardened exoskeleton, varying in colors \
|
||||
in accordance to their hive. It is approximately half an inch thick among all Type A Vaurca. The carapace provides protection against harsh radiation, solar \
|
||||
@@ -701,15 +707,15 @@ datum/species/machine/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
|
||||
has_organ = list(
|
||||
"neural socket" = /obj/item/organ/vaurca/neuralsocket,
|
||||
"lungs" = /obj/item/organ/lungs,
|
||||
"lungs" = /obj/item/organ/lungs/vaurca,
|
||||
"filtration bit" = /obj/item/organ/vaurca/filtrationbit,
|
||||
"right heart" = /obj/item/organ/heart/right,
|
||||
"left heart" = /obj/item/organ/heart/left,
|
||||
"phoron reserve tank" = /obj/item/organ/vaurca/preserve,
|
||||
"liver" = /obj/item/organ/liver,
|
||||
"kidneys" = /obj/item/organ/kidneys,
|
||||
"brain" = /obj/item/organ/brain,
|
||||
"eyes" = /obj/item/organ/eyes
|
||||
"liver" = /obj/item/organ/liver/vaurca,
|
||||
"kidneys" = /obj/item/organ/kidneys/vaurca,
|
||||
"brain" = /obj/item/organ/brain/vaurca,
|
||||
"eyes" = /obj/item/organ/eyes/vaurca
|
||||
)
|
||||
|
||||
/datum/species/bug/equip_survival_gear(var/mob/living/carbon/human/H)
|
||||
@@ -723,8 +729,8 @@ datum/species/machine/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
var/obj/item/clothing/mask/breath/M = new /obj/item/clothing/mask/breath(H)
|
||||
if(H.equip_to_slot_or_del(M, slot_wear_mask))
|
||||
M.autodrobe_no_remove = 1
|
||||
H.gender = NEUTER
|
||||
|
||||
/datum/species/bug/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
H.gender = NEUTER
|
||||
H.add_client_color(/datum/client_color/vaurca)
|
||||
return ..()
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
stamina = 100 // As opposed to 90
|
||||
brute_mod = 1.1 // Less Brute Damage
|
||||
ethanol_resistance = 1 // Default value
|
||||
climb_coeff = 1.1
|
||||
|
||||
cold_level_1 = 160 //RaceDefault 200 Default 260
|
||||
cold_level_2 = 100 //RaceDefault 140 Default 200
|
||||
|
||||
@@ -47,8 +47,9 @@
|
||||
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws/strong, /datum/unarmed_attack/bite/strong)
|
||||
rarity_value = 10
|
||||
slowdown = 2
|
||||
eyes = "blank_eyes" //makes it so that eye colour is not changed when skin colour is.
|
||||
brute_mod = 0.2 //note to self: remove is_synthetic checks for brmod and burnmod
|
||||
eyes = "breeder_eyes" //makes it so that eye colour is not changed when skin colour is.
|
||||
eyes_icons = 'icons/mob/human_face/eyes48x48.dmi'
|
||||
brute_mod = 0.1 //note to self: remove is_synthetic checks for brmod and burnmod
|
||||
burn_mod = 0.8 //2x was a bit too much. we'll see how this goes.
|
||||
toxins_mod = 1 //they're not used to all our weird human bacteria.
|
||||
breakcuffs = list(MALE,FEMALE,NEUTER)
|
||||
@@ -58,9 +59,9 @@
|
||||
speech_chance = 100
|
||||
|
||||
death_sound = 'sound/voice/hiss6.ogg'
|
||||
damage_overlays = 'icons/mob/human_races/masks/dam_breeder.dmi'
|
||||
damage_mask = 'icons/mob/human_races/masks/dam_mask_breeder.dmi'
|
||||
blood_mask = 'icons/mob/human_races/masks/blood_breeder.dmi'
|
||||
damage_overlays = 'icons/mob/human_races/masks/dam_mask_warform.dmi'
|
||||
damage_mask = 'icons/mob/human_races/masks/dam_mask_warform.dmi'
|
||||
blood_mask = 'icons/mob/human_races/masks/dam_mask_warform.dmi'
|
||||
|
||||
stamina = 175
|
||||
sprint_speed_factor = 1
|
||||
@@ -80,5 +81,79 @@
|
||||
return
|
||||
|
||||
/datum/species/bug/type_c/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
..()
|
||||
H.gender = FEMALE
|
||||
return ..()
|
||||
return
|
||||
|
||||
/datum/species/bug/type_big
|
||||
name = "Vaurca Warform"
|
||||
short_name = "vam"
|
||||
name_plural = "Type BA"
|
||||
bodytype = "Vaurca Warform"
|
||||
primitive_form = "Vaurca Warrior"
|
||||
icon_template = 'icons/mob/human_races/subspecies/r_vaurcamecha.dmi'
|
||||
icobase = 'icons/mob/human_races/subspecies/r_vaurcamecha.dmi'
|
||||
deform = 'icons/mob/human_races/subspecies/r_vaurcamecha.dmi'
|
||||
default_language = LANGUAGE_GIBBERING
|
||||
language = LANGUAGE_VAURCA
|
||||
icon_x_offset = -8
|
||||
unarmed_types = list(/datum/unarmed_attack/claws/cleave, /datum/unarmed_attack/bite/strong)
|
||||
rarity_value = 10
|
||||
slowdown = 0
|
||||
eyes = "warform_eyes"
|
||||
eyes_icons = 'icons/mob/human_face/warform_eyes.dmi'
|
||||
brute_mod = 0.5
|
||||
burn_mod = 0.1
|
||||
toxins_mod = 1
|
||||
total_health = 200
|
||||
breakcuffs = list(MALE,FEMALE,NEUTER)
|
||||
mob_size = 30
|
||||
|
||||
speech_sounds = list('sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg')
|
||||
speech_chance = 100
|
||||
|
||||
death_sound = 'sound/voice/hiss6.ogg'
|
||||
damage_overlays = 'icons/mob/human_races/masks/dam_breeder.dmi'
|
||||
damage_mask = 'icons/mob/human_races/masks/dam_mask_breeder.dmi'
|
||||
blood_mask = 'icons/mob/human_races/masks/blood_breeder.dmi'
|
||||
|
||||
stamina = 200
|
||||
stamina_recovery = 5
|
||||
sprint_speed_factor = 0.9
|
||||
sprint_cost_factor = 0.5
|
||||
|
||||
heat_level_1 = 1000 //Default 360
|
||||
heat_level_2 = 4000 //Default 400
|
||||
heat_level_3 = 16000 //Default 1000
|
||||
hazard_high_pressure = 55000 //Default 550
|
||||
warning_high_pressure = 3250 //Default 325
|
||||
|
||||
spawn_flags = IS_RESTRICTED
|
||||
flags = NO_SCAN | NO_SLIP | NO_PAIN | NO_BREATHE
|
||||
|
||||
inherent_verbs = list(
|
||||
/mob/living/carbon/human/proc/rebel_yell,
|
||||
/mob/living/carbon/human/proc/devour_head,
|
||||
/mob/living/carbon/human/proc/formic_spray,
|
||||
/mob/living/carbon/human/proc/trample
|
||||
)
|
||||
|
||||
has_organ = list(
|
||||
"neural socket" = /obj/item/organ/vaurca/neuralsocket,
|
||||
"lungs" = /obj/item/organ/lungs/vaurca,
|
||||
"right heart" = /obj/item/organ/heart/right,
|
||||
"left heart" = /obj/item/organ/heart/left,
|
||||
"phoron reservoir" = /obj/item/organ/vaurca/reservoir,
|
||||
"mechanical liver" = /obj/item/organ/liver/vaurca/robo,
|
||||
"mechanical kidneys" = /obj/item/organ/kidneys/vaurca/robo,
|
||||
"brain" = /obj/item/organ/brain/vaurca,
|
||||
"eyes" = /obj/item/organ/eyes/vaurca,
|
||||
"filtration bit" = /obj/item/organ/vaurca/filtrationbit
|
||||
)
|
||||
|
||||
/datum/species/bug/type_big/equip_survival_gear(var/mob/living/carbon/human/H)
|
||||
return
|
||||
|
||||
/datum/species/bug/type_big/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
H.mutations.Add(HULK)
|
||||
return ..()
|
||||
@@ -37,6 +37,8 @@
|
||||
sprint_speed_factor = 2
|
||||
sprint_cost_factor = 0.80
|
||||
stamina_recovery = 5
|
||||
natural_climbing = 1
|
||||
climb_coeff = 0.1
|
||||
|
||||
virus_immune = 1
|
||||
|
||||
|
||||
@@ -279,7 +279,7 @@ There are several things that need to be remembered:
|
||||
else
|
||||
base_icon.Blend(temp, ICON_OVERLAY)
|
||||
|
||||
if(!skeleton)
|
||||
if(!(species.flags & NO_SCAN))
|
||||
if(husk)
|
||||
base_icon.ColorTone(husk_color_mod)
|
||||
else if(hulk)
|
||||
|
||||
@@ -250,6 +250,7 @@ default behaviour is:
|
||||
|
||||
/mob/living/proc/adjustBruteLoss(var/amount)
|
||||
if(status_flags & GODMODE) return 0 //godmode
|
||||
amount *= brute_mod
|
||||
bruteloss = min(max(bruteloss + amount, 0),(maxHealth*2))
|
||||
|
||||
/mob/living/proc/getOxyLoss()
|
||||
@@ -279,6 +280,7 @@ default behaviour is:
|
||||
|
||||
/mob/living/proc/adjustFireLoss(var/amount)
|
||||
if(status_flags & GODMODE) return 0 //godmode
|
||||
amount *= burn_mod
|
||||
fireloss = min(max(fireloss + amount, 0),(maxHealth*2))
|
||||
|
||||
/mob/living/proc/getCloneLoss()
|
||||
|
||||
@@ -75,3 +75,6 @@
|
||||
var/tesla_ignore = 0 // If true, mob is not affected by tesla bolts.
|
||||
|
||||
var/stop_sight_update = 0 //If true, it won't reset the mob vision flags
|
||||
|
||||
var/burn_mod = 1
|
||||
var/brute_mod = 1
|
||||
|
||||
@@ -60,12 +60,14 @@
|
||||
/proc/isvaurca(A)
|
||||
if(istype(A, /mob/living/carbon/human))
|
||||
switch(A:get_species())
|
||||
if ("Vaurca Worker")
|
||||
if("Vaurca Worker")
|
||||
return 1
|
||||
if("Vaurca Warrior")
|
||||
return 1
|
||||
if("Vaurca Breeder")
|
||||
return 1
|
||||
if("Vaurca Warform")
|
||||
return 1
|
||||
if("V'krexi")
|
||||
return 1
|
||||
return 0
|
||||
|
||||
Reference in New Issue
Block a user