mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 11:34:19 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into turfs
# Conflicts: # code/modules/mob/living/simple_animal/friendly/farm_animals.dm # paradise.dme
This commit is contained in:
@@ -134,43 +134,48 @@
|
||||
M.forceMove(get_turf(src))
|
||||
visible_message("<span class='danger'>[M] bursts out of [src]!</span>")
|
||||
|
||||
/mob/living/carbon/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, override = 0, tesla_shock = 0)
|
||||
/mob/living/carbon/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = FALSE, override = FALSE, tesla_shock = FALSE, illusion = FALSE, stun = TRUE)
|
||||
SEND_SIGNAL(src, COMSIG_LIVING_ELECTROCUTE_ACT, shock_damage)
|
||||
if(status_flags & GODMODE) //godmode
|
||||
return 0
|
||||
return FALSE
|
||||
if(NO_SHOCK in mutations) //shockproof
|
||||
return 0
|
||||
return FALSE
|
||||
if(tesla_shock && tesla_ignore)
|
||||
return FALSE
|
||||
shock_damage *= siemens_coeff
|
||||
if(shock_damage<1 && !override)
|
||||
return 0
|
||||
if(dna && dna.species)
|
||||
shock_damage *= dna.species.siemens_coeff
|
||||
if(shock_damage < 1 && !override)
|
||||
return FALSE
|
||||
if(reagents.has_reagent("teslium"))
|
||||
shock_damage *= 1.5 //If the mob has teslium in their body, shocks are 50% more damaging!
|
||||
take_overall_damage(0,shock_damage, TRUE, used_weapon = "Electrocution")
|
||||
shock_internal_organs(shock_damage)
|
||||
if(illusion)
|
||||
adjustStaminaLoss(shock_damage)
|
||||
else
|
||||
take_overall_damage(0, shock_damage, TRUE, used_weapon = "Electrocution")
|
||||
shock_internal_organs(shock_damage)
|
||||
visible_message(
|
||||
"<span class='danger'>[src] was shocked by \the [source]!</span>", \
|
||||
"<span class='userdanger'>You feel a powerful shock coursing through your body!</span>", \
|
||||
"<span class='italics'>You hear a heavy electrical crack.</span>" \
|
||||
)
|
||||
"<span class='danger'>[src] was shocked by \the [source]!</span>",
|
||||
"<span class='userdanger'>You feel a powerful shock coursing through your body!</span>",
|
||||
"<span class='italics'>You hear a heavy electrical crack.</span>")
|
||||
AdjustJitter(1000) //High numbers for violent convulsions
|
||||
do_jitter_animation(jitteriness)
|
||||
AdjustStuttering(2)
|
||||
if(!tesla_shock || (tesla_shock && siemens_coeff > 0.5))
|
||||
if((!tesla_shock || (tesla_shock && siemens_coeff > 0.5)) && stun)
|
||||
Stun(2)
|
||||
spawn(20)
|
||||
AdjustJitter(-1000, bound_lower = 10) //Still jittery, but vastly less
|
||||
if(!tesla_shock || (tesla_shock && siemens_coeff > 0.5))
|
||||
if((!tesla_shock || (tesla_shock && siemens_coeff > 0.5)) && stun)
|
||||
Stun(3)
|
||||
Weaken(3)
|
||||
if(shock_damage > 200)
|
||||
src.visible_message(
|
||||
"<span class='danger'>[src] was arc flashed by the [source]!</span>", \
|
||||
"<span class='userdanger'>The [source] arc flashes and electrocutes you!</span>", \
|
||||
"<span class='italics'>You hear a lightning-like crack!</span>" \
|
||||
)
|
||||
"<span class='danger'>[src] was arc flashed by the [source]!</span>",
|
||||
"<span class='userdanger'>The [source] arc flashes and electrocutes you!</span>",
|
||||
"<span class='italics'>You hear a lightning-like crack!</span>")
|
||||
playsound(loc, 'sound/effects/eleczap.ogg', 50, 1, -1)
|
||||
explosion(src.loc,-1,0,2,2)
|
||||
explosion(loc, -1, 0, 2, 2)
|
||||
|
||||
if(override)
|
||||
return override
|
||||
else
|
||||
|
||||
@@ -551,13 +551,8 @@
|
||||
|
||||
dna.species.update_sight(src)
|
||||
|
||||
//Removed the horrible safety parameter. It was only being used by ninja code anyways.
|
||||
//Now checks siemens_coefficient of the affected area by default
|
||||
/mob/living/carbon/human/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, override = 0, tesla_shock = 0)
|
||||
if(status_flags & GODMODE) //godmode
|
||||
return 0
|
||||
if(NO_SHOCK in mutations) //shockproof
|
||||
return 0
|
||||
//Added a safety check in case you want to shock a human mob directly through electrocute_act.
|
||||
/mob/living/carbon/human/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = FALSE, override = FALSE, tesla_shock = FALSE, illusion = FALSE, stun = TRUE)
|
||||
if(tesla_shock)
|
||||
var/total_coeff = 1
|
||||
if(gloves)
|
||||
@@ -575,20 +570,18 @@
|
||||
siemens_coeff = 0
|
||||
else if(!safety)
|
||||
var/gloves_siemens_coeff = 1
|
||||
var/species_siemens_coeff = 1
|
||||
if(gloves)
|
||||
var/obj/item/clothing/gloves/G = gloves
|
||||
gloves_siemens_coeff = G.siemens_coefficient
|
||||
if(dna.species)
|
||||
species_siemens_coeff = dna.species.siemens_coeff
|
||||
siemens_coeff = gloves_siemens_coeff * species_siemens_coeff
|
||||
if(undergoing_cardiac_arrest())
|
||||
siemens_coeff = gloves_siemens_coeff
|
||||
if(undergoing_cardiac_arrest() && !illusion)
|
||||
if(shock_damage * siemens_coeff >= 1 && prob(25))
|
||||
set_heartattack(FALSE)
|
||||
if(stat == CONSCIOUS)
|
||||
to_chat(src, "<span class='notice'>You feel your heart beating again!</span>")
|
||||
. = ..()
|
||||
|
||||
dna.species.spec_electrocute_act(src, shock_damage, source, siemens_coeff, safety, override, tesla_shock, illusion, stun)
|
||||
. = ..(shock_damage, source, siemens_coeff, safety, override, tesla_shock, illusion, stun)
|
||||
|
||||
/mob/living/carbon/human/Topic(href, href_list)
|
||||
if(!usr.stat && usr.canmove && !usr.restrained() && in_range(src, usr))
|
||||
|
||||
@@ -309,6 +309,9 @@
|
||||
/datum/species/proc/handle_death(mob/living/carbon/human/H) //Handles any species-specific death events (such as dionaea nymph spawns).
|
||||
return
|
||||
|
||||
/datum/species/proc/spec_electrocute_act(mob/living/carbon/human/H, shock_damage, obj/source, siemens_coeff = 1, safety = FALSE, override = FALSE, tesla_shock = FALSE, illusion = FALSE, stun = TRUE)
|
||||
return
|
||||
|
||||
/datum/species/proc/help(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style)
|
||||
if(attacker_style && attacker_style.help_act(user, target))//adminfu only...
|
||||
return TRUE
|
||||
@@ -521,6 +524,7 @@
|
||||
miss_sound = 'sound/weapons/slashmiss.ogg'
|
||||
sharp = TRUE
|
||||
animation_type = ATTACK_EFFECT_CLAW
|
||||
var/has_been_sharpened = FALSE
|
||||
|
||||
/datum/unarmed_attack/bite
|
||||
attack_verb = list("chomp")
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
eyes = "vox_eyes_s"
|
||||
|
||||
species_traits = list(NO_SCAN, IS_WHITELISTED, NOTRANSSTING)
|
||||
clothing_flags = HAS_SOCKS
|
||||
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS //Species-fitted 'em all.
|
||||
dietflags = DIET_OMNI
|
||||
bodyflags = HAS_ICON_SKIN_TONE | HAS_TAIL | TAIL_WAGGING | TAIL_OVERLAPPED | HAS_BODY_MARKINGS | HAS_TAIL_MARKINGS
|
||||
|
||||
@@ -173,9 +173,9 @@
|
||||
eyes = "blank_eyes"
|
||||
|
||||
species_traits = list(NO_SCAN, NO_BLOOD, NO_PAIN, IS_WHITELISTED)
|
||||
dies_at_threshold = TRUE
|
||||
clothing_flags = 0 //IDK if you've ever seen underwear on an Armalis, but it ain't pretty.
|
||||
bodyflags = HAS_TAIL
|
||||
dietflags = DIET_OMNI //should inherit this from vox, this is here just in case
|
||||
dies_at_threshold = TRUE
|
||||
|
||||
blood_color = "#2299FC"
|
||||
flesh_color = "#808D11"
|
||||
|
||||
@@ -254,17 +254,20 @@ var/global/list/damage_icon_parts = list()
|
||||
if(underwear && dna.species.clothing_flags & HAS_UNDERWEAR)
|
||||
var/datum/sprite_accessory/underwear/U = GLOB.underwear_list[underwear]
|
||||
if(U)
|
||||
underwear_standing.Blend(new /icon(U.icon, "uw_[U.icon_state]_s"), ICON_OVERLAY)
|
||||
var/u_icon = U.sprite_sheets && (dna.species.name in U.sprite_sheets) ? U.sprite_sheets[dna.species.name] : U.icon //Species-fit the undergarment.
|
||||
underwear_standing.Blend(new /icon(u_icon, "uw_[U.icon_state]_s"), ICON_OVERLAY)
|
||||
|
||||
if(undershirt && dna.species.clothing_flags & HAS_UNDERSHIRT)
|
||||
var/datum/sprite_accessory/undershirt/U2 = GLOB.undershirt_list[undershirt]
|
||||
if(U2)
|
||||
underwear_standing.Blend(new /icon(U2.icon, "us_[U2.icon_state]_s"), ICON_OVERLAY)
|
||||
var/u2_icon = U2.sprite_sheets && (dna.species.name in U2.sprite_sheets) ? U2.sprite_sheets[dna.species.name] : U2.icon
|
||||
underwear_standing.Blend(new /icon(u2_icon, "us_[U2.icon_state]_s"), ICON_OVERLAY)
|
||||
|
||||
if(socks && dna.species.clothing_flags & HAS_SOCKS)
|
||||
var/datum/sprite_accessory/socks/U3 = GLOB.socks_list[socks]
|
||||
if(U3)
|
||||
underwear_standing.Blend(new /icon(U3.icon, "sk_[U3.icon_state]_s"), ICON_OVERLAY)
|
||||
var/u3_icon = U3.sprite_sheets && (dna.species.name in U3.sprite_sheets) ? U3.sprite_sheets[dna.species.name] : U3.icon
|
||||
underwear_standing.Blend(new /icon(u3_icon, "sk_[U3.icon_state]_s"), ICON_OVERLAY)
|
||||
|
||||
if(underwear_standing)
|
||||
overlays_standing[UNDERWEAR_LAYER] = mutable_appearance(underwear_standing, layer = -UNDERWEAR_LAYER)
|
||||
|
||||
@@ -55,8 +55,22 @@
|
||||
/mob/living/proc/check_projectile_dismemberment(obj/item/projectile/P, def_zone)
|
||||
return 0
|
||||
|
||||
/mob/living/proc/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, tesla_shock = 0)
|
||||
return 0 //only carbon liveforms have this proc
|
||||
/mob/living/proc/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = FALSE, override = FALSE, tesla_shock = FALSE, illusion = FALSE, stun = TRUE)
|
||||
SEND_SIGNAL(src, COMSIG_LIVING_ELECTROCUTE_ACT, shock_damage)
|
||||
if(status_flags & GODMODE) //godmode
|
||||
return FALSE
|
||||
if(NO_SHOCK in mutations) //shockproof
|
||||
return FALSE
|
||||
if(tesla_shock && tesla_ignore)
|
||||
return FALSE
|
||||
if(shock_damage > 0)
|
||||
if(!illusion)
|
||||
adjustFireLoss(shock_damage)
|
||||
visible_message(
|
||||
"<span class='danger'>[src] was shocked by \the [source]!</span>",
|
||||
"<span class='userdanger'>You feel a powerful shock coursing through your body!</span>",
|
||||
"<span class='italics'>You hear a heavy electrical crack.</span>")
|
||||
return shock_damage
|
||||
|
||||
/mob/living/emp_act(severity)
|
||||
var/list/L = src.get_contents()
|
||||
|
||||
@@ -71,6 +71,9 @@
|
||||
/mob/living/silicon/drop_item()
|
||||
return
|
||||
|
||||
/mob/living/silicon/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = FALSE, override = FALSE, tesla_shock = FALSE, illusion = FALSE, stun = TRUE)
|
||||
return FALSE //So borgs they don't die trying to fix wiring
|
||||
|
||||
/mob/living/silicon/emp_act(severity)
|
||||
switch(severity)
|
||||
if(1)
|
||||
|
||||
@@ -85,6 +85,9 @@
|
||||
/mob/living/simple_animal/hostile/construct/narsie_act()
|
||||
return
|
||||
|
||||
/mob/living/simple_animal/hostile/construct/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = FALSE, override = FALSE, tesla_shock = FALSE, illusion = FALSE, stun = TRUE)
|
||||
return FALSE
|
||||
|
||||
/////////////////Juggernaut///////////////
|
||||
|
||||
|
||||
|
||||
@@ -40,14 +40,6 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/goat/handle_automated_movement()
|
||||
..()
|
||||
if(!pulledby)
|
||||
for(var/direction in shuffle(list(1,2,4,8,5,6,9,10)))
|
||||
var/step = get_step(src, direction)
|
||||
if(step)
|
||||
if(locate(/obj/structure/spacevine) in step)
|
||||
Move(step, get_dir(src, step))
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/goat/handle_automated_action()
|
||||
//chance to go crazy and start wacking stuff
|
||||
if(!enemies.len && prob(1))
|
||||
Retaliate()
|
||||
@@ -55,11 +47,16 @@
|
||||
if(enemies.len && prob(10))
|
||||
enemies = list()
|
||||
LoseTarget()
|
||||
src.visible_message("<span class='notice'>[src] calms down.</span>")
|
||||
visible_message("<span class='notice'>[src] calms down.</span>")
|
||||
|
||||
var/obj/structure/spacevine/SV = locate(/obj/structure/spacevine) in loc
|
||||
if(SV)
|
||||
SV.eat(src)
|
||||
if(stat == CONSCIOUS)
|
||||
eat_plants()
|
||||
if(!pulledby)
|
||||
for(var/direction in shuffle(list(1,2,4,8,5,6,9,10)))
|
||||
var/step = get_step(src, direction)
|
||||
if(step)
|
||||
if(locate(/obj/structure/spacevine) in step || locate(/obj/structure/glowshroom) in step)
|
||||
Move(step, get_dir(src, step))
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/goat/Life(seconds, times_fired)
|
||||
. = ..()
|
||||
@@ -68,14 +65,12 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/goat/Retaliate()
|
||||
..()
|
||||
src.visible_message("<span class='warning'>[src] gets an evil-looking gleam in their eye.</span>")
|
||||
visible_message("<span class='danger'>[src] gets an evil-looking gleam in their eye.</span>")
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/goat/Move()
|
||||
..()
|
||||
. = ..()
|
||||
if(!stat)
|
||||
var/obj/structure/spacevine/SV = locate(/obj/structure/spacevine) in loc
|
||||
if(SV)
|
||||
SV.eat(src)
|
||||
eat_plants()
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/goat/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
|
||||
if(stat == CONSCIOUS && istype(O, /obj/item/reagent_containers/glass))
|
||||
@@ -83,6 +78,29 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/goat/proc/eat_plants()
|
||||
var/eaten = FALSE
|
||||
var/obj/structure/spacevine/SV = locate(/obj/structure/spacevine) in loc
|
||||
if(SV)
|
||||
SV.eat(src)
|
||||
eaten = TRUE
|
||||
|
||||
var/obj/structure/glowshroom/GS = locate(/obj/structure/glowshroom) in loc
|
||||
if(GS)
|
||||
qdel(GS)
|
||||
eaten = TRUE
|
||||
|
||||
if(eaten && prob(10))
|
||||
say("Nom")
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/goat/AttackingTarget()
|
||||
..()
|
||||
if(isdiona(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
var/obj/item/organ/external/NB = pick(H.bodyparts)
|
||||
H.visible_message("<span class='warning'>[src] takes a big chomp out of [H]!</span>", "<span class='userdanger'>[src] takes a big chomp out of your [NB.name]!</span>")
|
||||
NB.droplimb()
|
||||
|
||||
//cow
|
||||
/mob/living/simple_animal/cow
|
||||
name = "cow"
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
return
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/floor_cluwne/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = 0, tesla_shock = 0, illusion = 0, stun = TRUE)//prevents runtimes with machine fuckery
|
||||
/mob/living/simple_animal/hostile/floor_cluwne/electrocute_act(shock_damage, obj/source, siemens_coeff = 1, safety = FALSE, override = FALSE, tesla_shock = FALSE, illusion = FALSE, stun = TRUE) //prevents runtimes with machine fuckery
|
||||
return FALSE
|
||||
|
||||
|
||||
|
||||
@@ -1,129 +0,0 @@
|
||||
/mob/living/simple_animal/pony
|
||||
name = "\improper pony"
|
||||
desc = "A bound spirit"
|
||||
icon = 'icons/mob/pony.dmi'
|
||||
// icon_dead = "shade_dead"
|
||||
maxHealth = 50
|
||||
health = 50
|
||||
speak_emote = list("whinnys")
|
||||
emote_hear = list("excitedly says")
|
||||
response_help = "pets"
|
||||
response_disarm = "pushes"
|
||||
response_harm = "kicks"
|
||||
melee_damage_lower = 5
|
||||
melee_damage_upper = 15
|
||||
attacktext = "sends rainbows of power to"
|
||||
minbodytemp = 0
|
||||
maxbodytemp = 4000
|
||||
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
|
||||
speed = 0
|
||||
stop_automated_movement = 0
|
||||
status_flags = 0
|
||||
faction = list("pony")
|
||||
status_flags = CANPUSH
|
||||
universal_speak = 1
|
||||
|
||||
/mob/living/simple_animal/pony/Life()
|
||||
..()
|
||||
if(stat == 2)
|
||||
new /obj/item/reagent_containers/food/snacks/ectoplasm(src.loc)
|
||||
src.visible_message("<span class='warning'>[src] lets out a contented sigh as [p_their()] form unwinds.</span>")
|
||||
src.ghostize()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/mob/living/simple_animal/pony/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri
|
||||
if(istype(O, /obj/item/soulstone))
|
||||
O.transfer_soul("SHADE", src, user)
|
||||
else
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/pony/twilight
|
||||
name = "Twilight Sparkle"
|
||||
real_name = "Twilight Sparkle"
|
||||
icon_state = "twilight"
|
||||
icon_living = "twilight"
|
||||
|
||||
/mob/living/simple_animal/pony/pinkie
|
||||
name = "Pinkie Pie"
|
||||
real_name = "Pinkie Pie"
|
||||
icon_state = "pinkie"
|
||||
icon_living = "pinkie"
|
||||
|
||||
/mob/living/simple_animal/pony/rainbow
|
||||
name = "Rainbow Dash"
|
||||
real_name = "Rainbow Dash"
|
||||
icon_state = "rainbow"
|
||||
icon_living = "rainbow"
|
||||
|
||||
mob/living/simple_animal/pony/fluttershy
|
||||
name = "Fluttershy"
|
||||
real_name = "Fluttershy"
|
||||
icon_state = "fluttershy"
|
||||
icon_living = "fluttershy"
|
||||
|
||||
mob/living/simple_animal/pony/applejack
|
||||
name = "Applejack"
|
||||
real_name = "Applejack"
|
||||
icon_state = "applejack"
|
||||
icon_living = "applejack"
|
||||
|
||||
mob/living/simple_animal/pony/luna
|
||||
name = "Luna"
|
||||
real_name = "Luna"
|
||||
icon_state = "luna"
|
||||
icon_living = "luna"
|
||||
|
||||
mob/living/simple_animal/pony/clownie
|
||||
name = "Clownie"
|
||||
real_name = "Clownie"
|
||||
icon_state = "clownie"
|
||||
icon_living = "clownie"
|
||||
|
||||
mob/living/simple_animal/pony/tia
|
||||
name = "Tia"
|
||||
real_name = "Tia"
|
||||
icon_state = "tia"
|
||||
icon_living = "tia"
|
||||
|
||||
mob/living/simple_animal/pony/trixie
|
||||
name = "Trixie"
|
||||
real_name = "Trixie"
|
||||
icon_state = "trixie_a_full"
|
||||
icon_living = "trixing_a_full"
|
||||
|
||||
mob/living/simple_animal/pony/lyra
|
||||
name = "Lyra"
|
||||
real_name = "Lyra"
|
||||
icon_state = "lyra"
|
||||
icon_living = "lyra"
|
||||
|
||||
mob/living/simple_animal/pony/vinyl
|
||||
name = "Vinyl"
|
||||
real_name = "Vinyl"
|
||||
icon_state = "vinyl"
|
||||
icon_living = "vinyl"
|
||||
|
||||
mob/living/simple_animal/pony/rarity
|
||||
name = "Rarity"
|
||||
real_name = "Rarity"
|
||||
icon_state = "rarity"
|
||||
icon_living = "rarity"
|
||||
|
||||
mob/living/simple_animal/pony/whooves
|
||||
name = "Whooves"
|
||||
real_name = "Whooves"
|
||||
icon_state = "whooves"
|
||||
icon_living = "whooves"
|
||||
|
||||
mob/living/simple_animal/pony/fleur
|
||||
name = "Fleur"
|
||||
real_name = "Fleur"
|
||||
icon_state = "fleur"
|
||||
icon_living = "fleur"
|
||||
|
||||
mob/living/simple_animal/pony/mac
|
||||
name = "Mac"
|
||||
real_name = "Mac"
|
||||
icon_state = "mac"
|
||||
icon_living = "mac"
|
||||
@@ -385,19 +385,22 @@
|
||||
if(underwear && (current_species.clothing_flags & HAS_UNDERWEAR))
|
||||
var/datum/sprite_accessory/underwear/U = GLOB.underwear_list[underwear]
|
||||
if(U)
|
||||
underwear_s = new/icon(U.icon, "uw_[U.icon_state]_s", ICON_OVERLAY)
|
||||
var/u_icon = U.sprite_sheets && (current_species.name in U.sprite_sheets) ? U.sprite_sheets[current_species.name] : U.icon //Species-fit the undergarment.
|
||||
underwear_s = new/icon(u_icon, "uw_[U.icon_state]_s", ICON_OVERLAY)
|
||||
|
||||
var/icon/undershirt_s = null
|
||||
if(undershirt && (current_species.clothing_flags & HAS_UNDERSHIRT))
|
||||
var/datum/sprite_accessory/undershirt/U2 = GLOB.undershirt_list[undershirt]
|
||||
if(U2)
|
||||
undershirt_s = new/icon(U2.icon, "us_[U2.icon_state]_s", ICON_OVERLAY)
|
||||
var/u2_icon = U2.sprite_sheets && (current_species.name in U2.sprite_sheets) ? U2.sprite_sheets[current_species.name] : U2.icon
|
||||
undershirt_s = new/icon(u2_icon, "us_[U2.icon_state]_s", ICON_OVERLAY)
|
||||
|
||||
var/icon/socks_s = null
|
||||
if(socks && (current_species.clothing_flags & HAS_SOCKS))
|
||||
var/datum/sprite_accessory/socks/U3 = GLOB.socks_list[socks]
|
||||
if(U3)
|
||||
socks_s = new/icon(U3.icon, "sk_[U3.icon_state]_s", ICON_OVERLAY)
|
||||
var/u3_icon = U3.sprite_sheets && (current_species.name in U3.sprite_sheets) ? U3.sprite_sheets[current_species.name] : U3.icon
|
||||
socks_s = new/icon(u3_icon, "sk_[U3.icon_state]_s", ICON_OVERLAY)
|
||||
|
||||
var/icon/clothes_s = null
|
||||
var/uniform_dmi='icons/mob/uniform.dmi'
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
|
||||
// Restrict some styles to specific species
|
||||
var/list/species_allowed = list("Human", "Slime People")
|
||||
var/list/sprite_sheets = list() //For accessories common across species but need to use 'fitted' sprites (like underwear). e.g. list("Vox" = 'icons/mob/species/vox/iconfile.dmi')
|
||||
var/list/models_allowed = list() //Specifies which, if any, hairstyles or markings can be accessed by which prosthetics. Should equal the manufacturing company name in robolimbs.dm.
|
||||
var/list/heads_allowed = null //Specifies which, if any, alt heads a head marking, hairstyle or facial hair style is compatible with.
|
||||
var/list/tails_allowed = null //Specifies which, if any, tails a tail marking is compatible with.
|
||||
@@ -132,7 +133,7 @@
|
||||
/datum/sprite_accessory/skin/human
|
||||
name = "Default human skin"
|
||||
icon_state = "default"
|
||||
species_allowed = list("Human",)
|
||||
species_allowed = list("Human")
|
||||
|
||||
/datum/sprite_accessory/skin/human/human_tatt01
|
||||
name = "Tatt01 human skin"
|
||||
@@ -167,7 +168,8 @@
|
||||
///////////////////////////
|
||||
/datum/sprite_accessory/underwear
|
||||
icon = 'icons/mob/underwear.dmi'
|
||||
species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask")
|
||||
species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox")
|
||||
sprite_sheets = list("Vox" = 'icons/mob/species/vox/underwear.dmi')
|
||||
gender = NEUTER
|
||||
|
||||
/datum/sprite_accessory/underwear/nude
|
||||
@@ -293,7 +295,8 @@
|
||||
////////////////////////////
|
||||
/datum/sprite_accessory/undershirt
|
||||
icon = 'icons/mob/underwear.dmi'
|
||||
species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask")
|
||||
species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox")
|
||||
sprite_sheets = list("Vox" = 'icons/mob/species/vox/underwear.dmi')
|
||||
gender = NEUTER
|
||||
|
||||
/datum/sprite_accessory/undershirt/nude
|
||||
@@ -529,7 +532,8 @@
|
||||
///////////////////////
|
||||
/datum/sprite_accessory/socks
|
||||
icon = 'icons/mob/underwear.dmi'
|
||||
species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask")
|
||||
species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox")
|
||||
sprite_sheets = list("Vox" = 'icons/mob/species/vox/underwear.dmi')
|
||||
gender = NEUTER
|
||||
|
||||
/datum/sprite_accessory/socks/nude
|
||||
@@ -566,6 +570,10 @@
|
||||
icon_state = "thin_knee"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/socks/striped_norm
|
||||
name = "Normal Striped"
|
||||
icon_state = "striped_norm"
|
||||
|
||||
/datum/sprite_accessory/socks/striped_knee
|
||||
name = "Knee-high Striped"
|
||||
icon_state = "striped_knee"
|
||||
@@ -603,50 +611,3 @@
|
||||
/datum/sprite_accessory/socks/black_fishnet
|
||||
name = "Black Fishnet"
|
||||
icon_state = "black_fishnet"
|
||||
|
||||
/datum/sprite_accessory/socks/vox
|
||||
species_allowed = list("Vox")
|
||||
|
||||
/datum/sprite_accessory/socks/vox/vox_white
|
||||
name = "Vox White"
|
||||
icon_state = "vox_white"
|
||||
|
||||
/datum/sprite_accessory/socks/vox/vox_black
|
||||
name = "Vox Black"
|
||||
icon_state = "vox_black"
|
||||
|
||||
/datum/sprite_accessory/socks/vox/vox_thin
|
||||
name = "Vox Black Thin"
|
||||
icon_state = "vox_blackthin"
|
||||
|
||||
/datum/sprite_accessory/socks/vox/vox_rainbow
|
||||
name = "Vox Rainbow"
|
||||
icon_state = "vox_rainbow"
|
||||
|
||||
/datum/sprite_accessory/socks/vox/vox_stripped
|
||||
name = "Vox Striped"
|
||||
icon_state = "vox_white"
|
||||
|
||||
/datum/sprite_accessory/socks/vox/vox_white_thigh
|
||||
name = "Vox Thigh-high White"
|
||||
icon_state = "vox_whiteTH"
|
||||
|
||||
/datum/sprite_accessory/socks/vox/vox_black_thigh
|
||||
name = "Vox Thigh-high Black"
|
||||
icon_state = "vox_blackTH"
|
||||
|
||||
/datum/sprite_accessory/socks/vox/vox_thin_thigh
|
||||
name = "Vox Thigh-high Thin"
|
||||
icon_state = "vox_blackthinTH"
|
||||
|
||||
/datum/sprite_accessory/socks/vox/vox_rainbow_thigh
|
||||
name = "Vox Thigh-high Rainbow"
|
||||
icon_state = "vox_rainbowTH"
|
||||
|
||||
/datum/sprite_accessory/socks/vox/vox_striped_thigh
|
||||
name = "Vox Thigh-high Striped"
|
||||
icon_state = "vox_stripedTH"
|
||||
|
||||
/datum/sprite_accessory/socks/vox/vox_fishnet
|
||||
name = "Vox Fishnets"
|
||||
icon_state = "vox_fishnet"
|
||||
@@ -289,8 +289,6 @@
|
||||
return 1
|
||||
if(ispath(MP, /mob/living/simple_animal/parrot))
|
||||
return 1
|
||||
if(ispath(MP, /mob/living/simple_animal/pony))
|
||||
return 1
|
||||
if(!GAMEMODE_IS_NUCLEAR)
|
||||
if(ispath(MP, /mob/living/simple_animal/pet/fox/Syndifox))
|
||||
return 0
|
||||
|
||||
Reference in New Issue
Block a user