mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-27 07:08:55 +01:00
Merge branch 'master' into upstream-merge-9932
This commit is contained in:
@@ -160,12 +160,6 @@
|
||||
#define FLASH_PROTECTION_MODERATE 1
|
||||
#define FLASH_PROTECTION_MAJOR 2
|
||||
|
||||
#define ANIMAL_SPAWN_DELAY round(config.respawn_delay / 6)
|
||||
#define DRONE_SPAWN_DELAY round(config.respawn_delay / 3)
|
||||
|
||||
#define ANIMAL_SPAWN_DELAY round(config.respawn_delay / 6)
|
||||
#define DRONE_SPAWN_DELAY round(config.respawn_delay / 3)
|
||||
|
||||
// Incapacitation flags, used by the mob/proc/incapacitated() proc
|
||||
#define INCAPACITATION_RESTRAINED 1
|
||||
#define INCAPACITATION_BUCKLED_PARTIALLY 2
|
||||
|
||||
@@ -21,6 +21,7 @@ var/global/list/joblist = list() //list of all jobstypes, minus borg and AI
|
||||
#define all_genders_define_list list(MALE,FEMALE,PLURAL,NEUTER,HERM) //VOREStaton Edit
|
||||
#define all_genders_text_list list("Male","Female","Plural","Neuter","Herm") //VOREStation Edit
|
||||
|
||||
var/list/mannequins_
|
||||
|
||||
// Times that players are allowed to respawn ("ckey" = world.time)
|
||||
GLOBAL_LIST_EMPTY(respawn_timers)
|
||||
@@ -42,6 +43,11 @@ var/global/list/facial_hair_styles_male_list = list()
|
||||
var/global/list/facial_hair_styles_female_list = list()
|
||||
var/global/list/skin_styles_female_list = list() //unused
|
||||
var/global/list/body_marking_styles_list = list() //stores /datum/sprite_accessory/marking indexed by name
|
||||
var/global/list/ear_styles_list = list() // Stores /datum/sprite_accessory/ears indexed by type
|
||||
var/global/list/tail_styles_list = list() // Stores /datum/sprite_accessory/tail indexed by type
|
||||
var/global/list/wing_styles_list = list() // Stores /datum/sprite_accessory/wing indexed by type
|
||||
|
||||
GLOBAL_LIST_INIT(custom_species_bases, new) // Species that can be used for a Custom Species icon base
|
||||
//Underwear
|
||||
var/datum/category_collection/underwear/global_underwear = new()
|
||||
|
||||
@@ -213,6 +219,23 @@ GLOBAL_LIST_EMPTY(mannequins)
|
||||
var/decl/closet_appearance/app = new T()
|
||||
GLOB.closet_appearances[T] = app
|
||||
|
||||
paths = typesof(/datum/sprite_accessory/ears) - /datum/sprite_accessory/ears
|
||||
for(var/path in paths)
|
||||
var/obj/item/clothing/head/instance = new path()
|
||||
ear_styles_list[path] = instance
|
||||
|
||||
// Custom Tails
|
||||
paths = typesof(/datum/sprite_accessory/tail) - /datum/sprite_accessory/tail - /datum/sprite_accessory/tail/taur
|
||||
for(var/path in paths)
|
||||
var/datum/sprite_accessory/tail/instance = new path()
|
||||
tail_styles_list[path] = instance
|
||||
|
||||
// Custom Wings
|
||||
paths = typesof(/datum/sprite_accessory/wing) - /datum/sprite_accessory/wing
|
||||
for(var/path in paths)
|
||||
var/datum/sprite_accessory/wing/instance = new path()
|
||||
wing_styles_list[path] = instance
|
||||
|
||||
// VOREStation Add - Vore Modes!
|
||||
paths = typesof(/datum/digest_mode)
|
||||
for(var/T in paths)
|
||||
@@ -220,6 +243,41 @@ GLOBAL_LIST_EMPTY(mannequins)
|
||||
GLOB.digest_modes[DM.id] = DM
|
||||
// VOREStation Add End
|
||||
|
||||
/*
|
||||
// Custom species traits
|
||||
paths = typesof(/datum/trait) - /datum/trait
|
||||
for(var/path in paths)
|
||||
var/datum/trait/instance = new path()
|
||||
if(!instance.name)
|
||||
continue //A prototype or something
|
||||
var/cost = instance.cost
|
||||
traits_costs[path] = cost
|
||||
all_traits[path] = instance
|
||||
switch(cost)
|
||||
if(-INFINITY to -0.1)
|
||||
negative_traits[path] = instance
|
||||
if(0)
|
||||
neutral_traits[path] = instance
|
||||
if(0.1 to INFINITY)
|
||||
positive_traits[path] = instance
|
||||
*/
|
||||
|
||||
// Custom species icon bases
|
||||
var/list/blacklisted_icons = list(SPECIES_CUSTOM,SPECIES_PROMETHEAN) //VOREStation Edit
|
||||
var/list/whitelisted_icons = list(SPECIES_FENNEC,SPECIES_XENOHYBRID) //VOREStation Edit
|
||||
for(var/species_name in GLOB.playable_species)
|
||||
if(species_name in blacklisted_icons)
|
||||
continue
|
||||
var/datum/species/S = GLOB.all_species[species_name]
|
||||
if(S.spawn_flags & SPECIES_IS_WHITELISTED)
|
||||
continue
|
||||
GLOB.custom_species_bases += species_name
|
||||
for(var/species_name in whitelisted_icons)
|
||||
GLOB.custom_species_bases += species_name
|
||||
|
||||
return 1 // Hooks must return 1
|
||||
|
||||
|
||||
return 1
|
||||
|
||||
/* // Uncomment to debug chemical reaction list.
|
||||
|
||||
@@ -2,10 +2,7 @@
|
||||
* VOREStation global lists
|
||||
*/
|
||||
|
||||
var/global/list/ear_styles_list = list() // Stores /datum/sprite_accessory/ears indexed by type
|
||||
var/global/list/hair_accesories_list= list()// Stores /datum/sprite_accessory/hair_accessory indexed by type
|
||||
var/global/list/tail_styles_list = list() // Stores /datum/sprite_accessory/tail indexed by type
|
||||
var/global/list/wing_styles_list = list() // Stores /datum/sprite_accessory/wing indexed by type
|
||||
var/global/list/negative_traits = list() // Negative custom species traits, indexed by path
|
||||
var/global/list/neutral_traits = list() // Neutral custom species traits, indexed by path
|
||||
var/global/list/everyone_traits = list() // Neutral traits available to all species, indexed by path
|
||||
@@ -16,8 +13,6 @@ var/global/list/active_ghost_pods = list()
|
||||
|
||||
var/global/list/sensorpreflist = list("Off", "Binary", "Vitals", "Tracking", "No Preference") //TFF 5/8/19 - Suit Sensors global list
|
||||
|
||||
var/global/list/custom_species_bases = list() // Species that can be used for a Custom Species icon base
|
||||
|
||||
//stores numeric player size options indexed by name
|
||||
var/global/list/player_sizes_list = list(
|
||||
"Macro" = RESIZE_HUGE,
|
||||
@@ -228,7 +223,7 @@ var/global/list/edible_trash = list(/obj/item/broken_device,
|
||||
/obj/item/weapon/storage/fancy/crayons,
|
||||
/obj/item/weapon/storage/fancy/egg_box,
|
||||
/obj/item/weapon/storage/wallet,
|
||||
/obj/item/weapon/storage/vore_egg,
|
||||
/obj/item/weapon/storage/vore_egg,
|
||||
/obj/item/weapon/material/kitchen) //chompstation addition
|
||||
|
||||
var/global/list/contamination_flavors = list(
|
||||
@@ -483,24 +478,6 @@ var/global/list/remainless_species = list(SPECIES_PROMETHEAN,
|
||||
/hook/startup/proc/init_vore_datum_ref_lists()
|
||||
var/paths
|
||||
|
||||
// Custom Ears
|
||||
paths = typesof(/datum/sprite_accessory/ears) - /datum/sprite_accessory/ears
|
||||
for(var/path in paths)
|
||||
var/obj/item/clothing/head/instance = new path()
|
||||
ear_styles_list[path] = instance
|
||||
|
||||
// Custom Tails
|
||||
paths = typesof(/datum/sprite_accessory/tail) - /datum/sprite_accessory/tail - /datum/sprite_accessory/tail/taur
|
||||
for(var/path in paths)
|
||||
var/datum/sprite_accessory/tail/instance = new path()
|
||||
tail_styles_list[path] = instance
|
||||
|
||||
// Custom Wings
|
||||
paths = typesof(/datum/sprite_accessory/wing) - /datum/sprite_accessory/wing
|
||||
for(var/path in paths)
|
||||
var/datum/sprite_accessory/wing/instance = new path()
|
||||
wing_styles_list[path] = instance
|
||||
|
||||
// Custom Hair Accessories
|
||||
paths = typesof(/datum/sprite_accessory/hair_accessory) - /datum/sprite_accessory/hair_accessory
|
||||
for(var/path in paths)
|
||||
@@ -526,19 +503,6 @@ var/global/list/remainless_species = list(SPECIES_PROMETHEAN,
|
||||
if(0.1 to INFINITY)
|
||||
positive_traits[path] = instance
|
||||
|
||||
// Custom species icon bases
|
||||
var/list/blacklisted_icons = list(SPECIES_CUSTOM,SPECIES_PROMETHEAN) //Just ones that won't work well.
|
||||
var/list/whitelisted_icons = list(SPECIES_FENNEC,SPECIES_XENOHYBRID) //Include these anyway
|
||||
for(var/species_name in GLOB.playable_species)
|
||||
if(species_name in blacklisted_icons)
|
||||
continue
|
||||
var/datum/species/S = GLOB.all_species[species_name]
|
||||
if(S.spawn_flags & SPECIES_IS_WHITELISTED)
|
||||
continue
|
||||
custom_species_bases += species_name
|
||||
for(var/species_name in whitelisted_icons)
|
||||
custom_species_bases += species_name
|
||||
|
||||
// Weaver recipe stuff
|
||||
paths = typesof(/datum/weaver_recipe/structure) - /datum/weaver_recipe/structure
|
||||
for(var/path in paths)
|
||||
@@ -557,4 +521,4 @@ var/global/list/remainless_species = list(SPECIES_PROMETHEAN,
|
||||
return 1 // Hooks must return 1
|
||||
|
||||
var/global/list/weavable_structures = list()
|
||||
var/global/list/weavable_items = list()
|
||||
var/global/list/weavable_items = list()
|
||||
|
||||
+4
-1
@@ -37,4 +37,7 @@
|
||||
|
||||
#define random_id(key,min_id,max_id) uniqueness_repository.Generate(/datum/uniqueness_generator/id_random, key, min_id, max_id)
|
||||
|
||||
#define ARGS_DEBUG log_debug("[__FILE__] - [__LINE__]") ; for(var/arg in args) { log_debug("\t[log_info_line(arg)]") }
|
||||
#define ARGS_DEBUG log_debug("[__FILE__] - [__LINE__]") ; for(var/arg in args) { log_debug("\t[log_info_line(arg)]") }
|
||||
|
||||
#define isitem(A) istype(A, /obj/item)
|
||||
#define isTaurTail(A) istype(A, /datum/sprite_accessory/tail/taur)
|
||||
|
||||
@@ -1,3 +1 @@
|
||||
#define isbelly(A) istype(A, /obj/belly)
|
||||
#define isitem(A) istype(A, /obj/item)
|
||||
#define isTaurTail(A) istype(A, /datum/sprite_accessory/tail/taur)
|
||||
|
||||
@@ -371,5 +371,8 @@
|
||||
var/list/P = params2list(params)
|
||||
var/turf/T = screen_loc2turf(P["screen-loc"], get_turf(usr))
|
||||
if(T)
|
||||
if(modifiers["shift"])
|
||||
usr.face_atom(T)
|
||||
return 1
|
||||
T.Click(location, control, params)
|
||||
. = 1
|
||||
return 1
|
||||
|
||||
@@ -39,7 +39,9 @@ var/list/outfits_decls_by_type_
|
||||
var/suit_store = null
|
||||
var/r_hand = null
|
||||
var/l_hand = null
|
||||
var/list/backpack_contents = list() // In the list(path=count,otherpath=count) format
|
||||
// In the list(path=count,otherpath=count) format
|
||||
var/list/uniform_accessories = list() // webbing, armbands etc - fits in slot_tie
|
||||
var/list/backpack_contents = list()
|
||||
|
||||
var/id_type
|
||||
var/id_desc
|
||||
@@ -145,6 +147,12 @@ var/list/outfits_decls_by_type_
|
||||
H.put_in_l_hand(new l_hand(H))
|
||||
if(r_hand)
|
||||
H.put_in_r_hand(new r_hand(H))
|
||||
|
||||
for(var/path in uniform_accessories)
|
||||
var/number = uniform_accessories[path]
|
||||
for(var/i=0,i<number,i++)
|
||||
H.equip_to_slot_or_del(new path(H), slot_tie)
|
||||
|
||||
if(H.species)
|
||||
H.species.equip_survival_gear(H, flags&OUTFIT_EXTENDED_SURVIVAL, flags&OUTFIT_COMPREHENSIVE_SURVIVAL)
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/obj/item/clothing/suit/straight_jacket,
|
||||
/obj/item/weapon/handcuffs/legcuffs/fuzzy,
|
||||
/obj/item/weapon/melee/fluff/holochain/mass,
|
||||
/obj/item/weapon/material/twohanded/fluff/riding_crop,
|
||||
/obj/item/weapon/material/twohanded/riding_crop,
|
||||
/obj/item/clothing/under/fluff/latexmaid
|
||||
)
|
||||
containertype = /obj/structure/closet/crate
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
src.loc = null
|
||||
user.put_in_hands(I)
|
||||
user.visible_message("<span class='notice'>\A [I] appears in \the [user]'s hand!</span>")
|
||||
log_and_message_admins("has stolen [I] with [src].")
|
||||
add_attack_logs(user,I,"Stolen with [src]")
|
||||
qdel(src)
|
||||
//Now let's try to teleport a living mob.
|
||||
else if(istype(hit_atom, /mob/living))
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
else
|
||||
safe_blink(AM, calculate_spell_power(3))
|
||||
adjust_instability(3)
|
||||
log_and_message_admins("has blinked [AM] away.")
|
||||
add_attack_logs(user,AM,"Blinked")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need more energy to blink [AM] away!</span>")
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
else
|
||||
safe_blink(user, calculate_spell_power(6))
|
||||
adjust_instability(1)
|
||||
log_and_message_admins("has blinked themselves away.")
|
||||
add_attack_logs(user,user,"Blinked")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need more energy to blink yourself away!</span>")
|
||||
|
||||
@@ -99,6 +99,6 @@
|
||||
else
|
||||
safe_blink(AM, 6)
|
||||
adjust_instability(2)
|
||||
log_and_message_admins("has blinked [AM] away.")
|
||||
add_attack_logs(user,AM,"Blinked")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need more energy to blink [AM] away!</span>")
|
||||
@@ -36,9 +36,9 @@
|
||||
var/turf/simulated/frozen = desired_turf
|
||||
frozen.freeze_floor()
|
||||
if(check_for_scepter())
|
||||
log_and_message_admins("has iced the floor with [src] at [T.x],[T.y],[T.z].")
|
||||
add_attack_logs(user,hit_atom,"Iced the floor with [src] at [T.x],[T.y],[T.z]")
|
||||
else
|
||||
log_and_message_admins("has wetted the floor with [src] at [T.x],[T.y],[T.z].")
|
||||
add_attack_logs(user,hit_atom,"Wetted the floor with [src] at [T.x],[T.y],[T.z]")
|
||||
else if(hit_atom.reagents && !ismob(hit_atom)) //TODO: Something for the scepter
|
||||
hit_atom.reagents.add_reagent(id = "water", amount = 60, data = null, safety = 0)
|
||||
adjust_instability(5)
|
||||
@@ -125,7 +125,7 @@
|
||||
return 0
|
||||
if(pay_energy(25 * controlled_mobs.len))
|
||||
attack_all(L)
|
||||
log_and_message_admins("has commanded their army of [controlled_mobs.len] to attack [L].")
|
||||
add_attack_logs(user,L,"Commanded their army of [controlled_mobs.len]")
|
||||
to_chat(user, "<span class='notice'>You command your [controlled_mobs.len > 1 ? "entities" : "[controlled_mobs[1]]"] to \
|
||||
attack \the [L].</span>")
|
||||
//This is to stop someone from controlling beepsky and getting him to stun someone 5 times a second.
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
return 0
|
||||
siphoning = AM
|
||||
update_icon()
|
||||
log_and_message_admins("is siphoning energy from \a [AM].")
|
||||
add_attack_logs(user,AM,"Siphoned energy from [src]")
|
||||
else
|
||||
stop_siphoning()
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
visible_message("<span class='danger'>\The [user] reaches out towards \the [L] with the flaming hand, and they ignite!</span>")
|
||||
to_chat(L, "<span class='danger'>You ignite!</span>")
|
||||
L.fire_act()
|
||||
log_and_message_admins("has ignited [L] with [src].")
|
||||
add_attack_logs(user,L,"Ignited with [src]")
|
||||
adjust_instability(12)
|
||||
else
|
||||
//This is needed in order for the welder to work, and works similarly to grippers.
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
return
|
||||
var/obj/item/weapon/inserted_spell/inserted = new inserting(L,user,src)
|
||||
inserted.spell_power_at_creation = calculate_spell_power(1.0)
|
||||
log_and_message_admins("has casted [src] on [L].")
|
||||
add_attack_logs(user,L,"Casted [src]")
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/spell/insert/on_melee_cast(atom/hit_atom, mob/user)
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
var/obj/item/projectile/new_projectile = make_projectile(spell_projectile, user)
|
||||
new_projectile.old_style_target(hit_atom)
|
||||
new_projectile.fire()
|
||||
log_and_message_admins("has casted [src] at \the [hit_atom].")
|
||||
add_attack_logs(user,hit_atom,"Casted [src]")
|
||||
if(fire_sound)
|
||||
playsound(src, fire_sound, 75, 1)
|
||||
adjust_instability(instability_per_shot)
|
||||
@@ -39,4 +39,4 @@
|
||||
return TRUE
|
||||
return FALSE // We got dropped before the firing occured.
|
||||
return TRUE // No delay, no need to check.
|
||||
return FALSE
|
||||
return FALSE
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
spark_system.start()
|
||||
playsound(src, 'sound/weapons/blade1.ogg', 50, 1)
|
||||
// now send a log so that admins don't think they're shooting themselves on purpose.
|
||||
log_and_message_admins("[user] reflected [attacker]'s attack back at them.")
|
||||
add_attack_logs(user,attacker,"Reflected [attacker]'s attack")
|
||||
|
||||
if(!reflecting)
|
||||
reflecting = 1
|
||||
@@ -82,7 +82,7 @@
|
||||
spark_system.start()
|
||||
playsound(src, 'sound/weapons/blade1.ogg', 50, 1)
|
||||
|
||||
log_and_message_admins("[user] reflected [attacker]'s attack back at them.")
|
||||
add_attack_logs(user,attacker,"Reflected [attacker]'s attack")
|
||||
|
||||
if(!reflecting)
|
||||
reflecting = 1
|
||||
|
||||
@@ -76,5 +76,5 @@
|
||||
I.afterattack(chosen_target, user)
|
||||
else
|
||||
chosen_target.attack_hand(user)
|
||||
log_and_message_admins("has warp striked [chosen_target].")
|
||||
add_attack_logs(user,chosen_target,"Warp striked")
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
title = "Clown"
|
||||
flag = CLOWN
|
||||
departments = list(DEPARTMENT_CIVILIAN)
|
||||
department_flag = CIVILIAN
|
||||
department_flag = ENGSEC
|
||||
faction = "Station"
|
||||
total_positions = -1 //CHOMP Edit: Disable. Change to + integer to enable.
|
||||
spawn_positions = -1 //CHOMP Edit: Disable. Change to + integer to enable.
|
||||
@@ -107,7 +107,7 @@
|
||||
title = "Mime"
|
||||
flag = MIME
|
||||
departments = list(DEPARTMENT_CIVILIAN)
|
||||
department_flag = CIVILIAN
|
||||
department_flag = ENGSEC
|
||||
faction = "Station"
|
||||
total_positions = -1 //CHOMP Edit: Disable. Change to + integer to enable.
|
||||
spawn_positions = -1 //CHOMP Edit: Disable. Change to + integer to enable.
|
||||
|
||||
@@ -11,8 +11,8 @@ var/const/ENGINEER =(1<<6)
|
||||
var/const/ATMOSTECH =(1<<7)
|
||||
var/const/AI =(1<<8)
|
||||
var/const/CYBORG =(1<<9)
|
||||
var/const/BLUESHIELD =(1<<13) //YW addition
|
||||
var/const/SECPILOT =(1<<14) //YW addition
|
||||
var/const/CLOWN =(1<<13) //VOREStation Add
|
||||
var/const/MIME =(1<<14) //VOREStation Add
|
||||
var/const/INTERN =(1<<15) //VOREStation Add
|
||||
|
||||
var/const/MEDSCI =(1<<1)
|
||||
@@ -49,9 +49,7 @@ var/const/CHAPLAIN =(1<<10)
|
||||
var/const/ASSISTANT =(1<<11)
|
||||
var/const/BRIDGE =(1<<12)
|
||||
var/const/PILOT =(1<<13) //VOREStation Add
|
||||
var/const/CLOWN =(1<<14) //VOREStation Add
|
||||
var/const/MIME =(1<<15) //VOREStation Add
|
||||
var/const/ENTERTAINER =(1<<16) //VOREStation Add
|
||||
var/const/ENTERTAINER =(1<<14) //VOREStation Add
|
||||
|
||||
var/list/assistant_occupations = list(
|
||||
)
|
||||
|
||||
@@ -281,6 +281,15 @@
|
||||
|
||||
//Create the desired item.
|
||||
var/obj/item/I = new making.path(src.loc)
|
||||
|
||||
if(LAZYLEN(I.matter)) // Sadly we must obey the laws of equivalent exchange.
|
||||
I.matter.Cut()
|
||||
else
|
||||
I.matter = list()
|
||||
|
||||
for(var/material in making.resources) // Handle the datum's autoscaling for waste, so we're properly wasting material, but not so much if we have efficiency.
|
||||
I.matter[material] = round(making.resources[material] / (making.no_scale ? 1 : 1.25)) * (making.no_scale ? 1 : mat_efficiency)
|
||||
|
||||
flick("[initial(icon_state)]_finish", src)
|
||||
if(multiplier > 1)
|
||||
if(istype(I, /obj/item/stack))
|
||||
@@ -288,7 +297,16 @@
|
||||
S.amount = multiplier
|
||||
else
|
||||
for(multiplier; multiplier > 1; --multiplier) // Create multiple items if it's not a stack.
|
||||
new making.path(src.loc)
|
||||
I = new making.path(src.loc)
|
||||
// We've already deducted the cost of multiple items. Process the matter the same.
|
||||
if(LAZYLEN(I.matter))
|
||||
I.matter.Cut()
|
||||
|
||||
else
|
||||
I.matter = list()
|
||||
|
||||
for(var/material in making.resources)
|
||||
I.matter[material] = round(making.resources[material] / (making.no_scale ? 1 : 1.25)) * (making.no_scale ? 1 : mat_efficiency)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -1319,4 +1319,18 @@
|
||||
wintick = 0
|
||||
gameStatus = "CLAWMACHINE_NEW"
|
||||
emagged = 1
|
||||
return 1
|
||||
return 1
|
||||
|
||||
/obj/machinery/computer/arcade/attackby(obj/item/O, mob/user, params)
|
||||
if(istype(O, /obj/item/stack/arcadeticket))
|
||||
var/obj/item/stack/arcadeticket/T = O
|
||||
var/amount = T.get_amount()
|
||||
if(amount <2)
|
||||
to_chat(user, "<span class='warning'>You need 2 tickets to claim a prize!</span>")
|
||||
return
|
||||
prizevend(user)
|
||||
T.pay_tickets()
|
||||
T.update_icon()
|
||||
O = T
|
||||
to_chat(user, "<span class='notice'>You turn in 2 tickets to the [src] and claim a prize!</span>")
|
||||
return
|
||||
|
||||
@@ -302,6 +302,7 @@
|
||||
/obj/item/weapon/storage/fancy/cigarettes/jerichos = 10,
|
||||
/obj/item/weapon/storage/fancy/cigarettes/menthols = 10,
|
||||
/obj/item/weapon/storage/rollingpapers = 10,
|
||||
/obj/item/weapon/storage/rollingpapers/blunt = 10,
|
||||
/obj/item/weapon/storage/chewables/tobacco = 5,
|
||||
/obj/item/weapon/storage/chewables/tobacco/fine = 5,
|
||||
/obj/item/weapon/storage/box/matches = 10,
|
||||
@@ -330,6 +331,7 @@
|
||||
/obj/item/weapon/storage/fancy/cigarettes/jerichos = 22,
|
||||
/obj/item/weapon/storage/fancy/cigarettes/menthols = 18,
|
||||
/obj/item/weapon/storage/rollingpapers = 10,
|
||||
/obj/item/weapon/storage/rollingpapers/blunt = 20,
|
||||
/obj/item/weapon/storage/chewables/tobacco = 10,
|
||||
/obj/item/weapon/storage/chewables/tobacco/fine = 20,
|
||||
/obj/item/weapon/storage/box/matches = 1,
|
||||
|
||||
@@ -356,6 +356,10 @@
|
||||
playsound(src, pickup_sound, 20, preference = /datum/client_preference/pickup_sounds)
|
||||
return
|
||||
|
||||
// As above but for items being equipped to an active module on a robot.
|
||||
/obj/item/proc/equipped_robot(var/mob/user)
|
||||
return
|
||||
|
||||
//Defines which slots correspond to which slot flags
|
||||
var/list/global/slot_flags_enumeration = list(
|
||||
"[slot_wear_mask]" = SLOT_MASK,
|
||||
@@ -788,7 +792,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
|
||||
drop_sound = 'sound/items/drop/device.ogg'
|
||||
|
||||
//Worn icon generation for on-mob sprites
|
||||
/obj/item/proc/make_worn_icon(var/body_type,var/slot_name,var/inhands,var/default_icon,var/default_layer,var/icon/clip_mask = null) //VOREStation edit - add 'clip mask' argument.
|
||||
/obj/item/proc/make_worn_icon(var/body_type,var/slot_name,var/inhands,var/default_icon,var/default_layer,var/icon/clip_mask = null)
|
||||
//Get the required information about the base icon
|
||||
var/icon/icon2use = get_worn_icon_file(body_type = body_type, slot_name = slot_name, default_icon = default_icon, inhands = inhands)
|
||||
var/state2use = get_worn_icon_state(slot_name = slot_name)
|
||||
@@ -818,6 +822,9 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
|
||||
if(istype(clip_mask)) //VOREStation Edit - For taur bodies/tails clipping off parts of uniforms and suits.
|
||||
standing.filters += filter(type = "alpha", icon = clip_mask)
|
||||
|
||||
if(istype(clip_mask)) //For taur bodies/tails clipping off parts of uniforms and suits.
|
||||
standing.filters += filter(type = "alpha", icon = clip_mask)
|
||||
|
||||
//Apply any special features
|
||||
if(!inhands)
|
||||
apply_blood(standing) //Some items show blood when bloodied
|
||||
@@ -949,4 +956,4 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
|
||||
|
||||
// Like the above, but used for RPED sorting of parts.
|
||||
/obj/item/proc/rped_rating()
|
||||
return get_rating()
|
||||
return get_rating()
|
||||
|
||||
@@ -67,6 +67,10 @@ var/list/GPS_list = list()
|
||||
. = ..()
|
||||
update_holder()
|
||||
|
||||
/obj/item/device/gps/equipped_robot()
|
||||
. = ..()
|
||||
update_holder()
|
||||
|
||||
/obj/item/device/gps/equipped()
|
||||
. = ..()
|
||||
update_holder()
|
||||
@@ -107,6 +111,7 @@ var/list/GPS_list = list()
|
||||
|
||||
/obj/item/device/gps/proc/update_compass(var/update_compass_icon)
|
||||
compass.hide_waypoints(FALSE)
|
||||
var/turf/my_turf = get_turf(src)
|
||||
for(var/thing in tracking_devices)
|
||||
var/obj/item/device/gps/gps = locate(thing)
|
||||
if(!istype(gps) || QDELETED(gps))
|
||||
@@ -119,7 +124,7 @@ var/list/GPS_list = list()
|
||||
compass.set_waypoint("\ref[gps]", gps_tag, gps_turf.x, gps_turf.y, gps_turf.z, LAZYACCESS(tracking_devices, "\ref[gps]"))
|
||||
else
|
||||
compass.set_waypoint("\ref[gps]", gps_tag, 0, 0, 0, LAZYACCESS(tracking_devices, "\ref[gps]"))
|
||||
if(can_track(gps))
|
||||
if(can_track(gps) && gps_turf && my_turf && gps_turf.z == my_turf.z)
|
||||
compass.show_waypoint("\ref[gps]")
|
||||
compass.rebuild_overlay_lists(update_compass_icon)
|
||||
|
||||
@@ -183,11 +188,11 @@ var/list/GPS_list = list()
|
||||
var/turf/curr = get_turf(src)
|
||||
var/area/my_area = get_area(src)
|
||||
|
||||
dat["my_area_name"] = my_area.name
|
||||
dat["my_area_name"] = strip_improper(my_area.name)
|
||||
dat["curr_x"] = curr.x
|
||||
dat["curr_y"] = curr.y
|
||||
dat["curr_z"] = curr.z
|
||||
dat["curr_z_name"] = using_map.get_zlevel_name(curr.z)
|
||||
dat["curr_z_name"] = strip_improper(using_map.get_zlevel_name(curr.z))
|
||||
dat["gps_list"] = list()
|
||||
dat["z_level_detection"] = using_map.get_map_levels(curr.z, long_range)
|
||||
|
||||
@@ -201,10 +206,10 @@ var/list/GPS_list = list()
|
||||
gps_data["gps_tag"] = G.gps_tag
|
||||
|
||||
var/area/A = get_area(G)
|
||||
gps_data["area_name"] = A.get_name()
|
||||
gps_data["area_name"] = strip_improper(A.get_name())
|
||||
|
||||
var/turf/T = get_turf(G)
|
||||
gps_data["z_name"] = using_map.get_zlevel_name(T.z)
|
||||
gps_data["z_name"] = strip_improper(using_map.get_zlevel_name(T.z))
|
||||
gps_data["direction"] = get_adir(curr, T)
|
||||
gps_data["degrees"] = round(Get_Angle(curr,T))
|
||||
gps_data["distX"] = T.x - curr.x
|
||||
@@ -221,7 +226,7 @@ var/list/GPS_list = list()
|
||||
/obj/item/device/gps/proc/display(mob/user)
|
||||
|
||||
if(emped)
|
||||
to_chat(user, "It's busted!")
|
||||
to_chat(user, SPAN_WARNING("It's busted!"))
|
||||
return
|
||||
|
||||
var/list/dat = list()
|
||||
@@ -229,9 +234,9 @@ var/list/GPS_list = list()
|
||||
|
||||
dat += "<table width = '100%'>"
|
||||
if(!tracking)
|
||||
dat += "<tr><td colspan = 6></td><a href='?src=\ref[src];toggle_power=1'>\[Switch On]\]</a></tr>"
|
||||
dat += "<tr><td colspan = 6></td><a href='?src=\ref[src];toggle_power=1'>\[Switch On\]</a></tr>"
|
||||
else
|
||||
dat += "<tr><td colspan = 6></td><a href='?src=\ref[src];toggle_power=1'>\[Switch Off]\]</a></tr>"
|
||||
dat += "<tr><td colspan = 6></td><a href='?src=\ref[src];toggle_power=1'>\[Switch Off\]</a></tr>"
|
||||
dat += "<tr><td colspan = 2><b>Current location</b></td><td colspan = 2>[gps_data["my_area_name"]]</td><td colspan = 2><b>([gps_data["curr_x"]], [gps_data["curr_y"]], [gps_data["curr_z_name"]])</b></td></tr>"
|
||||
dat += "<tr><td colspan = 4>[hide_signal ? "Tagged" : "Broadcasting"] as '[gps_tag]'.</td>"
|
||||
dat += "<td><a href='?src=\ref[src];tag=1'>\[Change Tag\]</a><a href='?src=\ref[src];range=1'>\[Toggle Scan Range\]</a>[can_hide_signal ? "<a href='?src=\ref[src];hide=1'>\[Toggle Signal Visibility\]</a>":""]</td></tr>"
|
||||
@@ -244,13 +249,12 @@ var/list/GPS_list = list()
|
||||
dat += "<td>[gps["gps_tag"]]</td><td>[gps["area_name"]]</td>"
|
||||
|
||||
if(istype(gps_data["ref"], /obj/item/device/gps/internal/poi))
|
||||
dat += "<td>[gps["local"] ? "[gps["direction"]] Dist: [round(gps["distance"], 10)]m" : "in \the [gps["z_name"]]"]</td>"
|
||||
dat += "<td>[gps["local"] ? "[gps["direction"]] Dist: [round(gps["distance"], 10)]m" : "[gps["z_name"]]"]</td>"
|
||||
else
|
||||
dat += "<td>([gps["x"]], [gps["y"]], [gps["z_name"]])</td>"
|
||||
|
||||
if(gps["local"])
|
||||
dat += "<td>[gps["distance"]]m</td>"
|
||||
dat += "<td>[gps["degrees"]]° ([gps["direction"]])</td>"
|
||||
dat += "<td>[gps["distance"]]m</td><td>[gps["direction"]]</td>"
|
||||
else
|
||||
dat += "<td colspan = 2>Non-local signal.</td>"
|
||||
|
||||
@@ -471,9 +475,9 @@ var/list/GPS_list = list()
|
||||
|
||||
dat += "<table width = '100%'>"
|
||||
if(!tracking)
|
||||
dat += "<tr><td colspan = 6></td><a href='?src=\ref[src];toggle_power=1'>\[Switch On]\]</a></tr>"
|
||||
dat += "<tr><td colspan = 6></td><a href='?src=\ref[src];toggle_power=1'>\[Switch On\]</a></tr>"
|
||||
else
|
||||
dat += "<tr><td colspan = 6></td><a href='?src=\ref[src];toggle_power=1'>\[Switch Off]\]</a></tr>"
|
||||
dat += "<tr><td colspan = 6></td><a href='?src=\ref[src];toggle_power=1'>\[Switch Off\]</a></tr>"
|
||||
dat += "<tr><td colspan = 2><b>Current location</b></td><td colspan = 2>[gps_data["my_area_name"]]</td><td colspan = 2><b>([gps_data["curr_x"]], [gps_data["curr_y"]], [gps_data["curr_z_name"]])</b></td></tr>"
|
||||
dat += "<tr><td colspan = 4>[hide_signal ? "Tagged" : "Broadcasting"] as '[gps_tag]'.</td>"
|
||||
dat += "<td><a href='?src=\ref[src];tag=1'>\[Change Tag\]</a><a href='?src=\ref[src];range=1'>\[Toggle Scan Range\]</a>[can_hide_signal ? "<a href='?src=\ref[src];hide=1'>\[Toggle Signal Visibility\]</a>":""]</td></tr>"
|
||||
@@ -485,8 +489,7 @@ var/list/GPS_list = list()
|
||||
var/gps_ref = "\ref[gps["ref"]]"
|
||||
dat += "<td>[gps["gps_tag"]]</td><td>[gps["area_name"]] ([gps["x"]], [gps["y"]], [gps["z_name"]])</td>"
|
||||
if(gps["local"])
|
||||
dat += "<td>[gps["distance"]]m</td>"
|
||||
dat += "<td>[gps["degrees"]]° ([gps["direction"]])</td>"
|
||||
dat += "<td>[gps["distance"]]m</td><td>[gps["direction"]]</td>"
|
||||
else
|
||||
dat += "<td colspan = 2>Non-local signal.</td>"
|
||||
if(LAZYACCESS(tracking_devices, gps_ref))
|
||||
|
||||
@@ -169,8 +169,37 @@
|
||||
var/atom/O
|
||||
if(recipe.use_material)
|
||||
O = new recipe.result_type(user.loc, recipe.use_material)
|
||||
|
||||
if(istype(O, /obj))
|
||||
var/obj/Ob = O
|
||||
|
||||
if(LAZYLEN(Ob.matter)) // Law of equivalent exchange.
|
||||
Ob.matter.Cut()
|
||||
|
||||
else
|
||||
Ob.matter = list()
|
||||
|
||||
var/mattermult = istype(Ob, /obj/item) ? min(2000, 400 * Ob.w_class) : 2000
|
||||
|
||||
Ob.matter[recipe.use_material] = mattermult / produced * required
|
||||
|
||||
else
|
||||
O = new recipe.result_type(user.loc)
|
||||
|
||||
if(recipe.matter_material)
|
||||
if(istype(O, /obj))
|
||||
var/obj/Ob = O
|
||||
|
||||
if(LAZYLEN(Ob.matter)) // Law of equivalent exchange.
|
||||
Ob.matter.Cut()
|
||||
|
||||
else
|
||||
Ob.matter = list()
|
||||
|
||||
var/mattermult = istype(Ob, /obj/item) ? min(2000, 400 * Ob.w_class) : 2000
|
||||
|
||||
Ob.matter[recipe.use_material] = mattermult / produced * required
|
||||
|
||||
O.set_dir(user.dir)
|
||||
O.add_fingerprint(user)
|
||||
|
||||
@@ -378,8 +407,9 @@
|
||||
var/on_floor = 0
|
||||
var/use_material
|
||||
var/pass_color
|
||||
var/matter_material // Material type used for recycling. Default, uses use_material. For non-material-based objects however, matter_material is needed.
|
||||
|
||||
/datum/stack_recipe/New(title, result_type, req_amount = 1, res_amount = 1, max_res_amount = 1, time = 0, one_per_turf = 0, on_floor = 0, supplied_material = null, pass_stack_color)
|
||||
/datum/stack_recipe/New(title, result_type, req_amount = 1, res_amount = 1, max_res_amount = 1, time = 0, one_per_turf = 0, on_floor = 0, supplied_material = null, pass_stack_color, recycle_material = null)
|
||||
src.title = title
|
||||
src.result_type = result_type
|
||||
src.req_amount = req_amount
|
||||
@@ -391,6 +421,12 @@
|
||||
src.use_material = supplied_material
|
||||
src.pass_color = pass_stack_color
|
||||
|
||||
if(!recycle_material && src.use_material)
|
||||
src.matter_material = src.use_material
|
||||
|
||||
else if(recycle_material)
|
||||
src.matter_material = recycle_material
|
||||
|
||||
/*
|
||||
* Recipe list datum
|
||||
*/
|
||||
|
||||
@@ -484,34 +484,70 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
|
||||
/obj/item/clothing/mask/smokable/cigarette/joint
|
||||
name = "joint"
|
||||
desc = "This probably shouldn't ever show up."
|
||||
desc = "A joint lovingly rolled and crafted with care. Blaze it."
|
||||
icon_state = "joint"
|
||||
max_smoketime = 400
|
||||
smoketime = 400
|
||||
chem_volume = 25
|
||||
|
||||
/obj/item/clothing/mask/smokable/cigarette/joint/blunt
|
||||
name = "blunt"
|
||||
desc = "A blunt lovingly rolled and crafted with care. Blaze it."
|
||||
icon_state = "cigar"
|
||||
max_smoketime = 500
|
||||
smoketime = 500
|
||||
nicotine_amt = 0
|
||||
nicotine_amt = 4
|
||||
chem_volume = 45
|
||||
|
||||
/obj/item/weapon/rollingpaper
|
||||
/obj/item/weapon/reagent_containers/rollingpaper
|
||||
name = "rolling paper"
|
||||
desc = "A small, thin piece of easily flammable paper, commonly used for rolling and smoking various dried plants."
|
||||
description_fluff = "The legalization of certain substances propelled the sale of rolling papers through the roof. Now almost every Trans-stellar produces a variety, often of questionable quality."
|
||||
icon = 'icons/obj/cigarettes.dmi'
|
||||
icon_state = "cig paper"
|
||||
volume = 25
|
||||
var/obj/item/clothing/mask/smokable/cigarette/crafted_type = /obj/item/clothing/mask/smokable/cigarette/joint
|
||||
|
||||
/obj/item/weapon/rollingpaper/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
/obj/item/weapon/reagent_containers/rollingpaper/blunt
|
||||
name = "blunt wrap"
|
||||
desc = "A small piece of easily flammable paper similar to that which encases cigars. It's made out of tobacco, bigger than a standard rolling paper, and will last longer."
|
||||
icon_state = "blunt paper"
|
||||
volume = 45
|
||||
crafted_type = /obj/item/clothing/mask/smokable/cigarette/joint/blunt
|
||||
|
||||
/obj/item/weapon/reagent_containers/rollingpaper/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if (istype(W, /obj/item/weapon/reagent_containers/food/snacks))
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/grown/G = W
|
||||
if (!G.dry)
|
||||
to_chat(user, "<span class='notice'>[G] must be dried before you roll it into [src].</span>")
|
||||
if (!G.dry) //This prevents people from just stuffing cheeseburgers into their joint
|
||||
to_chat(user, "<span class='notice'>[G.name] must be dried before you add it to [src].</span>")
|
||||
return
|
||||
var/obj/item/clothing/mask/smokable/cigarette/joint/J = new /obj/item/clothing/mask/smokable/cigarette/joint(user.loc)
|
||||
to_chat(usr, "<span class='notice'>You roll the [G.name] into a joint!</span>")
|
||||
J.add_fingerprint(user)
|
||||
if (G.reagents.total_volume + src.reagents.total_volume > src.reagents.maximum_volume) //Check that we don't have too much already in the paper before adding things
|
||||
to_chat(user, "<span class='warning'>The [src] is too full to add [G.name].</span>")
|
||||
return
|
||||
if (src.reagents.total_volume == 0)
|
||||
if (istype(src, /obj/item/weapon/reagent_containers/rollingpaper/blunt)) //update the icon if this is the first thing we're adding to the paper
|
||||
src.icon_state = "blunt_full"
|
||||
else
|
||||
src.icon_state = "paper_full"
|
||||
to_chat(user, "<span class='notice'>You add the [G.name] to the [src.name].</span>")
|
||||
src.add_fingerprint(user)
|
||||
if(G.reagents)
|
||||
G.reagents.trans_to_obj(J, G.reagents.total_volume)
|
||||
J.name = "[G.name] joint"
|
||||
J.desc = "A joint lovingly rolled and filled with [G.name]. Blaze it."
|
||||
G.reagents.trans_to_obj(src, G.reagents.total_volume) //adds the reagents from the plant into the paper
|
||||
user.drop_from_inventory(G)
|
||||
qdel(G)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/reagent_containers/rollingpaper/attack_self(mob/living/user)
|
||||
if(!src.reagents) //don't roll an empty joint
|
||||
to_chat(user, "<span class='warning'>There is nothing in [src]. Add something to it first.</span>")
|
||||
return
|
||||
var/obj/item/clothing/mask/smokable/cigarette/J = new crafted_type()
|
||||
to_chat(user,"<span class='notice'>You roll the [src] into a blunt!</span>")
|
||||
J.add_fingerprint(user)
|
||||
if(src.reagents)
|
||||
src.reagents.trans_to_obj(J, src.reagents.total_volume)
|
||||
user.drop_from_inventory(src)
|
||||
user.put_in_hands(J)
|
||||
qdel(src)
|
||||
|
||||
/////////
|
||||
//ZIPPO//
|
||||
|
||||
@@ -177,4 +177,15 @@
|
||||
default_material = "DEFAULT_WALL_MATERIAL"
|
||||
fragile = 0
|
||||
sharp = 1
|
||||
edge = 0
|
||||
edge = 0
|
||||
|
||||
/obj/item/weapon/material/twohanded/riding_crop
|
||||
name = "riding crop"
|
||||
desc = "A rod, a little over a foot long with a widened grip and a thick, leather patch at the end. Used since the dawn of the West to control animals."
|
||||
force_divisor = 0.05 //Required in order for the X attacks Y message to pop up.
|
||||
unwielded_force_divisor = 1 // One here, too.
|
||||
applies_material_colour = 1
|
||||
unbreakable = 1
|
||||
base_icon = "riding_crop"
|
||||
icon_state = "riding_crop0"
|
||||
attack_verb = list("cropped","spanked","swatted","smacked","peppered")
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
//1R1S: Malady Blanche
|
||||
/obj/item/weapon/material/twohanded/riding_crop/malady
|
||||
name = "Malady's riding crop"
|
||||
icon = 'icons/vore/custom_items_vr.dmi'
|
||||
item_icons = list(
|
||||
slot_l_hand_str = 'icons/vore/custom_items_left_hand_vr.dmi',
|
||||
slot_r_hand_str = 'icons/vore/custom_items_right_hand_vr.dmi',
|
||||
)
|
||||
desc = "An infernum made riding crop with Malady Blanche engraved in the shaft. It's a little worn from how many butts it has spanked."
|
||||
@@ -354,8 +354,16 @@
|
||||
throwforce = 2
|
||||
slot_flags = SLOT_BELT
|
||||
storage_slots = 14
|
||||
can_hold = list(/obj/item/weapon/rollingpaper)
|
||||
starts_with = list(/obj/item/weapon/rollingpaper = 14)
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/rollingpaper)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/rollingpaper = 14)
|
||||
|
||||
/obj/item/weapon/storage/rollingpapers/blunt
|
||||
name = "blunt wrap pack"
|
||||
desc = "A small cardboard pack containing several folded blunt wraps."
|
||||
icon_state = "bluntbox"
|
||||
storage_slots = 7
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/rollingpaper/blunt)
|
||||
starts_with = list(/obj/item/weapon/reagent_containers/rollingpaper/blunt = 7)
|
||||
|
||||
/*
|
||||
* Vial Box
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
/obj/item/weapon/weldpack
|
||||
sprite_sheets = list(
|
||||
SPECIES_TESHARI = 'icons/mob/species/seromi/back.dmi'
|
||||
)
|
||||
@@ -6,6 +6,37 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
var/icon/bgstate = "000"
|
||||
var/list/bgstate_options = list("000", "midgrey", "FFF", "white", "steel", "techmaint", "dark", "plating", "reinforced")
|
||||
|
||||
var/ear_style // Type of selected ear style
|
||||
var/r_ears = 30 // Ear color.
|
||||
var/g_ears = 30 // Ear color
|
||||
var/b_ears = 30 // Ear color
|
||||
var/r_ears2 = 30 // Ear extra color.
|
||||
var/g_ears2 = 30 // Ear extra color
|
||||
var/b_ears2 = 30 // Ear extra color
|
||||
var/r_ears3 = 30 // Ear tertiary color.
|
||||
var/g_ears3 = 30 // Ear tertiary color
|
||||
var/b_ears3 = 30 // Ear tertiary color
|
||||
var/tail_style // Type of selected tail style
|
||||
var/r_tail = 30 // Tail/Taur color
|
||||
var/g_tail = 30 // Tail/Taur color
|
||||
var/b_tail = 30 // Tail/Taur color
|
||||
var/r_tail2 = 30 // For extra overlay.
|
||||
var/g_tail2 = 30 // For extra overlay.
|
||||
var/b_tail2 = 30 // For extra overlay.
|
||||
var/r_tail3 = 30 // For tertiary overlay.
|
||||
var/g_tail3 = 30 // For tertiary overlay.
|
||||
var/b_tail3 = 30 // For tertiary overlay.
|
||||
var/wing_style // Type of selected wing style
|
||||
var/r_wing = 30 // Wing color
|
||||
var/g_wing = 30 // Wing color
|
||||
var/b_wing = 30 // Wing color
|
||||
var/r_wing2 = 30 // Wing extra color
|
||||
var/g_wing2 = 30 // Wing extra color
|
||||
var/b_wing2 = 30 // Wing extra color
|
||||
var/r_wing3 = 30 // Wing tertiary color
|
||||
var/g_wing3 = 30 // Wing tertiary color
|
||||
var/b_wing3 = 30 // Wing tertiary color
|
||||
|
||||
/datum/category_item/player_setup_item/general/body
|
||||
name = "Body"
|
||||
sort_order = 3
|
||||
@@ -52,6 +83,36 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
S["colorblind_vulp"] >> pref.colorblind_vulp
|
||||
S["colorblind_taj"] >> pref.colorblind_taj
|
||||
S["haemophilia"] >> pref.haemophilia //YWadd end
|
||||
S["ear_style"] >> pref.ear_style
|
||||
S["r_ears"] >> pref.r_ears
|
||||
S["g_ears"] >> pref.g_ears
|
||||
S["b_ears"] >> pref.b_ears
|
||||
S["r_ears2"] >> pref.r_ears2
|
||||
S["g_ears2"] >> pref.g_ears2
|
||||
S["b_ears2"] >> pref.b_ears2
|
||||
S["r_ears3"] >> pref.r_ears3
|
||||
S["g_ears3"] >> pref.g_ears3
|
||||
S["b_ears3"] >> pref.b_ears3
|
||||
S["tail_style"] >> pref.tail_style
|
||||
S["r_tail"] >> pref.r_tail
|
||||
S["g_tail"] >> pref.g_tail
|
||||
S["b_tail"] >> pref.b_tail
|
||||
S["r_tail2"] >> pref.r_tail2
|
||||
S["g_tail2"] >> pref.g_tail2
|
||||
S["b_tail2"] >> pref.b_tail2
|
||||
S["r_tail3"] >> pref.r_tail3
|
||||
S["g_tail3"] >> pref.g_tail3
|
||||
S["b_tail3"] >> pref.b_tail3
|
||||
S["wing_style"] >> pref.wing_style
|
||||
S["r_wing"] >> pref.r_wing
|
||||
S["g_wing"] >> pref.g_wing
|
||||
S["b_wing"] >> pref.b_wing
|
||||
S["r_wing2"] >> pref.r_wing2
|
||||
S["g_wing2"] >> pref.g_wing2
|
||||
S["b_wing2"] >> pref.b_wing2
|
||||
S["r_wing3"] >> pref.r_wing3
|
||||
S["g_wing3"] >> pref.g_wing3
|
||||
S["b_wing3"] >> pref.b_wing3
|
||||
|
||||
/datum/category_item/player_setup_item/general/body/save_character(var/savefile/S)
|
||||
S["species"] << pref.species
|
||||
@@ -92,6 +153,36 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
S["colorblind_vulp"] << pref.colorblind_vulp
|
||||
S["colorblind_taj"] << pref.colorblind_taj
|
||||
S["haemophilia"] << pref.haemophilia //YWadd end
|
||||
S["ear_style"] << pref.ear_style
|
||||
S["r_ears"] << pref.r_ears
|
||||
S["g_ears"] << pref.g_ears
|
||||
S["b_ears"] << pref.b_ears
|
||||
S["r_ears2"] << pref.r_ears2
|
||||
S["g_ears2"] << pref.g_ears2
|
||||
S["b_ears2"] << pref.b_ears2
|
||||
S["r_ears3"] << pref.r_ears3
|
||||
S["g_ears3"] << pref.g_ears3
|
||||
S["b_ears3"] << pref.b_ears3
|
||||
S["tail_style"] << pref.tail_style
|
||||
S["r_tail"] << pref.r_tail
|
||||
S["g_tail"] << pref.g_tail
|
||||
S["b_tail"] << pref.b_tail
|
||||
S["r_tail2"] << pref.r_tail2
|
||||
S["g_tail2"] << pref.g_tail2
|
||||
S["b_tail2"] << pref.b_tail2
|
||||
S["r_tail3"] << pref.r_tail3
|
||||
S["g_tail3"] << pref.g_tail3
|
||||
S["b_tail3"] << pref.b_tail3
|
||||
S["wing_style"] << pref.wing_style
|
||||
S["r_wing"] << pref.r_wing
|
||||
S["g_wing"] << pref.g_wing
|
||||
S["b_wing"] << pref.b_wing
|
||||
S["r_wing2"] << pref.r_wing2
|
||||
S["g_wing2"] << pref.g_wing2
|
||||
S["b_wing2"] << pref.b_wing2
|
||||
S["r_wing3"] << pref.r_wing3
|
||||
S["g_wing3"] << pref.g_wing3
|
||||
S["b_wing3"] << pref.b_wing3
|
||||
|
||||
/datum/category_item/player_setup_item/general/body/sanitize_character(var/savefile/S)
|
||||
if(!pref.species || !(pref.species in GLOB.playable_species))
|
||||
@@ -126,6 +217,49 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
if(!pref.bgstate || !(pref.bgstate in pref.bgstate_options))
|
||||
pref.bgstate = "000"
|
||||
|
||||
pref.r_ears = sanitize_integer(pref.r_ears, 0, 255, initial(pref.r_ears))
|
||||
pref.g_ears = sanitize_integer(pref.g_ears, 0, 255, initial(pref.g_ears))
|
||||
pref.b_ears = sanitize_integer(pref.b_ears, 0, 255, initial(pref.b_ears))
|
||||
pref.r_ears2 = sanitize_integer(pref.r_ears2, 0, 255, initial(pref.r_ears2))
|
||||
pref.g_ears2 = sanitize_integer(pref.g_ears2, 0, 255, initial(pref.g_ears2))
|
||||
pref.b_ears2 = sanitize_integer(pref.b_ears2, 0, 255, initial(pref.b_ears2))
|
||||
pref.r_ears3 = sanitize_integer(pref.r_ears3, 0, 255, initial(pref.r_ears3))
|
||||
pref.g_ears3 = sanitize_integer(pref.g_ears3, 0, 255, initial(pref.g_ears3))
|
||||
pref.b_ears3 = sanitize_integer(pref.b_ears3, 0, 255, initial(pref.b_ears3))
|
||||
pref.r_tail = sanitize_integer(pref.r_tail, 0, 255, initial(pref.r_tail))
|
||||
pref.g_tail = sanitize_integer(pref.g_tail, 0, 255, initial(pref.g_tail))
|
||||
pref.b_tail = sanitize_integer(pref.b_tail, 0, 255, initial(pref.b_tail))
|
||||
pref.r_tail2 = sanitize_integer(pref.r_tail2, 0, 255, initial(pref.r_tail2))
|
||||
pref.g_tail2 = sanitize_integer(pref.g_tail2, 0, 255, initial(pref.g_tail2))
|
||||
pref.b_tail2 = sanitize_integer(pref.b_tail2, 0, 255, initial(pref.b_tail2))
|
||||
pref.r_tail3 = sanitize_integer(pref.r_tail3, 0, 255, initial(pref.r_tail3))
|
||||
pref.g_tail3 = sanitize_integer(pref.g_tail3, 0, 255, initial(pref.g_tail3))
|
||||
pref.b_tail3 = sanitize_integer(pref.b_tail3, 0, 255, initial(pref.b_tail3))
|
||||
pref.r_wing = sanitize_integer(pref.r_wing, 0, 255, initial(pref.r_wing))
|
||||
pref.g_wing = sanitize_integer(pref.g_wing, 0, 255, initial(pref.g_wing))
|
||||
pref.b_wing = sanitize_integer(pref.b_wing, 0, 255, initial(pref.b_wing))
|
||||
pref.r_wing2 = sanitize_integer(pref.r_wing2, 0, 255, initial(pref.r_wing2))
|
||||
pref.g_wing2 = sanitize_integer(pref.g_wing2, 0, 255, initial(pref.g_wing2))
|
||||
pref.b_wing2 = sanitize_integer(pref.b_wing2, 0, 255, initial(pref.b_wing2))
|
||||
pref.r_wing3 = sanitize_integer(pref.r_wing3, 0, 255, initial(pref.r_wing3))
|
||||
pref.g_wing3 = sanitize_integer(pref.g_wing3, 0, 255, initial(pref.g_wing3))
|
||||
pref.b_wing3 = sanitize_integer(pref.b_wing3, 0, 255, initial(pref.b_wing3))
|
||||
if(pref.ear_style)
|
||||
pref.ear_style = sanitize_inlist(pref.ear_style, ear_styles_list, initial(pref.ear_style))
|
||||
var/datum/sprite_accessory/temp_ear_style = ear_styles_list[pref.ear_style]
|
||||
if(temp_ear_style.apply_restrictions && (!(pref.species in temp_ear_style.species_allowed)))
|
||||
pref.ear_style = initial(pref.ear_style)
|
||||
if(pref.tail_style)
|
||||
pref.tail_style = sanitize_inlist(pref.tail_style, tail_styles_list, initial(pref.tail_style))
|
||||
var/datum/sprite_accessory/temp_tail_style = tail_styles_list[pref.tail_style]
|
||||
if(temp_tail_style.apply_restrictions && (!(pref.species in temp_tail_style.species_allowed)))
|
||||
pref.tail_style = initial(pref.tail_style)
|
||||
if(pref.wing_style)
|
||||
pref.wing_style = sanitize_inlist(pref.wing_style, wing_styles_list, initial(pref.wing_style))
|
||||
var/datum/sprite_accessory/temp_wing_style = wing_styles_list[pref.wing_style]
|
||||
if(temp_wing_style.apply_restrictions && (!(pref.species in temp_wing_style.species_allowed)))
|
||||
pref.wing_style = initial(pref.wing_style)
|
||||
|
||||
// Moved from /datum/preferences/proc/copy_to()
|
||||
/datum/category_item/player_setup_item/general/body/copy_to_mob(var/mob/living/carbon/human/character)
|
||||
// Copy basic values
|
||||
@@ -164,6 +298,9 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
character.r_ears2 = pref.r_ears2
|
||||
character.b_ears2 = pref.b_ears2
|
||||
character.g_ears2 = pref.g_ears2
|
||||
character.r_ears3 = pref.r_ears3
|
||||
character.b_ears3 = pref.b_ears3
|
||||
character.g_ears3 = pref.g_ears3
|
||||
character.tail_style = tail_styles_list[pref.tail_style]
|
||||
character.r_tail = pref.r_tail
|
||||
character.b_tail = pref.b_tail
|
||||
@@ -171,6 +308,9 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
character.r_tail2 = pref.r_tail2
|
||||
character.b_tail2 = pref.b_tail2
|
||||
character.g_tail2 = pref.g_tail2
|
||||
character.r_tail3 = pref.r_tail3
|
||||
character.b_tail3 = pref.b_tail3
|
||||
character.g_tail3 = pref.g_tail3
|
||||
character.wing_style = wing_styles_list[pref.wing_style]
|
||||
character.r_wing = pref.r_wing
|
||||
character.b_wing = pref.b_wing
|
||||
@@ -178,6 +318,9 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
character.r_wing2 = pref.r_wing2
|
||||
character.b_wing2 = pref.b_wing2
|
||||
character.g_wing2 = pref.g_wing2
|
||||
character.r_wing3 = pref.r_wing3
|
||||
character.b_wing3 = pref.b_wing3
|
||||
character.g_wing3 = pref.g_wing3
|
||||
character.set_gender( pref.biological_gender)
|
||||
|
||||
if(pref.species == "Grey")//YWadd START
|
||||
@@ -407,6 +550,62 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
. += "<br><b>Body Color</b><br>"
|
||||
. += "<a href='?src=\ref[src];skin_color=1'>Change Color</a> [color_square(pref.r_skin, pref.g_skin, pref.b_skin)]<br>"
|
||||
|
||||
. += "<h2>Genetics Settings</h2>"
|
||||
|
||||
var/ear_display = "Normal"
|
||||
if(pref.ear_style && (pref.ear_style in ear_styles_list))
|
||||
var/datum/sprite_accessory/ears/instance = ear_styles_list[pref.ear_style]
|
||||
ear_display = instance.name
|
||||
|
||||
else if(pref.ear_style)
|
||||
ear_display = "REQUIRES UPDATE"
|
||||
. += "<b>Ears</b><br>"
|
||||
. += " Style: <a href='?src=\ref[src];ear_style=1'>[ear_display]</a><br>"
|
||||
if(ear_styles_list[pref.ear_style])
|
||||
var/datum/sprite_accessory/ears/ear = ear_styles_list[pref.ear_style]
|
||||
if(ear.do_colouration)
|
||||
. += "<a href='?src=\ref[src];ear_color=1'>Change Color</a> [color_square(pref.r_ears, pref.g_ears, pref.b_ears)]<br>"
|
||||
if(ear.extra_overlay)
|
||||
. += "<a href='?src=\ref[src];ear_color2=1'>Change Secondary Color</a> [color_square(pref.r_ears2, pref.g_ears2, pref.b_ears2)]<br>"
|
||||
if(ear.extra_overlay2)
|
||||
. += "<a href='?src=\ref[src];ear_color3=1'>Change Tertiary Color</a> [color_square(pref.r_ears3, pref.g_ears3, pref.b_ears3)]<br>"
|
||||
|
||||
var/tail_display = "Normal"
|
||||
if(pref.tail_style && (pref.tail_style in tail_styles_list))
|
||||
var/datum/sprite_accessory/tail/instance = tail_styles_list[pref.tail_style]
|
||||
tail_display = instance.name
|
||||
else if(pref.tail_style)
|
||||
tail_display = "REQUIRES UPDATE"
|
||||
. += "<b>Tail</b><br>"
|
||||
. += " Style: <a href='?src=\ref[src];tail_style=1'>[tail_display]</a><br>"
|
||||
|
||||
if(tail_styles_list[pref.tail_style])
|
||||
var/datum/sprite_accessory/tail/T = tail_styles_list[pref.tail_style]
|
||||
if(T.do_colouration)
|
||||
. += "<a href='?src=\ref[src];tail_color=1'>Change Color</a> [color_square(pref.r_tail, pref.g_tail, pref.b_tail)]<br>"
|
||||
if(T.extra_overlay)
|
||||
. += "<a href='?src=\ref[src];tail_color2=1'>Change Secondary Color</a> [color_square(pref.r_tail2, pref.g_tail2, pref.b_tail2)]<br>"
|
||||
if(T.extra_overlay2)
|
||||
. += "<a href='?src=\ref[src];tail_color3=1'>Change Tertiary Color</a> [color_square(pref.r_tail3, pref.g_tail3, pref.b_tail3)]<br>"
|
||||
|
||||
var/wing_display = "Normal"
|
||||
if(pref.wing_style && (pref.wing_style in wing_styles_list))
|
||||
var/datum/sprite_accessory/wing/instance = wing_styles_list[pref.wing_style]
|
||||
wing_display = instance.name
|
||||
else if(pref.wing_style)
|
||||
wing_display = "REQUIRES UPDATE"
|
||||
. += "<b>Wing</b><br>"
|
||||
. += " Style: <a href='?src=\ref[src];wing_style=1'>[wing_display]</a><br>"
|
||||
|
||||
if(wing_styles_list[pref.wing_style])
|
||||
var/datum/sprite_accessory/wing/W = wing_styles_list[pref.wing_style]
|
||||
if(W.do_colouration)
|
||||
. += "<a href='?src=\ref[src];wing_color=1'>Change Color</a> [color_square(pref.r_wing, pref.g_wing, pref.b_wing)]<br>"
|
||||
if(W.extra_overlay)
|
||||
. += "<a href='?src=\ref[src];wing_color2=1'>Change Secondary Color</a> [color_square(pref.r_wing2, pref.g_wing2, pref.b_wing2)]<br>"
|
||||
if(W.extra_overlay2)
|
||||
. += "<a href='?src=\ref[src];wing_color3=1'>Change Secondary Color</a> [color_square(pref.r_wing3, pref.g_wing3, pref.b_wing3)]<br>"
|
||||
|
||||
. += "<br><a href='?src=\ref[src];marking_style=1'>Body Markings +</a><br>"
|
||||
. += "<table>"
|
||||
for(var/M in pref.body_markings)
|
||||
@@ -935,8 +1134,9 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
else if(href_list["cycle_bg"])
|
||||
pref.bgstate = next_in_list(pref.bgstate, pref.bgstate_options)
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
|
||||
//YW Add Start
|
||||
|
||||
else if(href_list["wingdings"])
|
||||
pref.wingdings = !pref.wingdings
|
||||
Disabilities_YW(usr)
|
||||
@@ -967,7 +1167,131 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
|
||||
//YW Add End
|
||||
|
||||
else if(href_list["ear_style"])
|
||||
// Construct the list of names allowed for this user.
|
||||
var/list/pretty_ear_styles = list("Normal" = null)
|
||||
for(var/path in ear_styles_list)
|
||||
var/datum/sprite_accessory/ears/instance = ear_styles_list[path]
|
||||
if(((!instance.ckeys_allowed) || (usr.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)) || check_rights(R_ADMIN | R_EVENT | R_FUN, 0, user)) //VOREStation Edit
|
||||
pretty_ear_styles[instance.name] = path
|
||||
|
||||
// Present choice to user
|
||||
var/new_ear_style = input(user, "Pick ears", "Character Preference", pref.ear_style) as null|anything in pretty_ear_styles
|
||||
if(new_ear_style)
|
||||
pref.ear_style = pretty_ear_styles[new_ear_style]
|
||||
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["ear_color"])
|
||||
var/new_earc = input(user, "Choose your character's ear colour:", "Character Preference",
|
||||
rgb(pref.r_ears, pref.g_ears, pref.b_ears)) as color|null
|
||||
if(new_earc)
|
||||
pref.r_ears = hex2num(copytext(new_earc, 2, 4))
|
||||
pref.g_ears = hex2num(copytext(new_earc, 4, 6))
|
||||
pref.b_ears = hex2num(copytext(new_earc, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["ear_color2"])
|
||||
var/new_earc2 = input(user, "Choose your character's ear colour:", "Character Preference",
|
||||
rgb(pref.r_ears2, pref.g_ears2, pref.b_ears2)) as color|null
|
||||
if(new_earc2)
|
||||
pref.r_ears2 = hex2num(copytext(new_earc2, 2, 4))
|
||||
pref.g_ears2 = hex2num(copytext(new_earc2, 4, 6))
|
||||
pref.b_ears2 = hex2num(copytext(new_earc2, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["ear_color3"])
|
||||
var/new_earc3 = input(user, "Choose your character's tertiary ear colour:", "Character Preference",
|
||||
rgb(pref.r_ears3, pref.g_ears3, pref.b_ears3)) as color|null
|
||||
if(new_earc3)
|
||||
pref.r_ears3 = hex2num(copytext(new_earc3, 2, 4))
|
||||
pref.g_ears3 = hex2num(copytext(new_earc3, 4, 6))
|
||||
pref.b_ears3 = hex2num(copytext(new_earc3, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["tail_style"])
|
||||
// Construct the list of names allowed for this user.
|
||||
var/list/pretty_tail_styles = list("Normal" = null)
|
||||
for(var/path in tail_styles_list)
|
||||
var/datum/sprite_accessory/tail/instance = tail_styles_list[path]
|
||||
if(((!instance.ckeys_allowed) || (usr.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)) || check_rights(R_ADMIN | R_EVENT | R_FUN, 0, user)) //VOREStation Edit
|
||||
pretty_tail_styles[instance.name] = path
|
||||
|
||||
// Present choice to user
|
||||
var/new_tail_style = input(user, "Pick tails", "Character Preference", pref.tail_style) as null|anything in pretty_tail_styles
|
||||
if(new_tail_style)
|
||||
pref.tail_style = pretty_tail_styles[new_tail_style]
|
||||
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["tail_color"])
|
||||
var/new_tailc = input(user, "Choose your character's tail/taur colour:", "Character Preference",
|
||||
rgb(pref.r_tail, pref.g_tail, pref.b_tail)) as color|null
|
||||
if(new_tailc)
|
||||
pref.r_tail = hex2num(copytext(new_tailc, 2, 4))
|
||||
pref.g_tail = hex2num(copytext(new_tailc, 4, 6))
|
||||
pref.b_tail = hex2num(copytext(new_tailc, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["tail_color2"])
|
||||
var/new_tailc2 = input(user, "Choose your character's secondary tail/taur colour:", "Character Preference",
|
||||
rgb(pref.r_tail2, pref.g_tail2, pref.b_tail2)) as color|null
|
||||
if(new_tailc2)
|
||||
pref.r_tail2 = hex2num(copytext(new_tailc2, 2, 4))
|
||||
pref.g_tail2 = hex2num(copytext(new_tailc2, 4, 6))
|
||||
pref.b_tail2 = hex2num(copytext(new_tailc2, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["tail_color3"])
|
||||
var/new_tailc3 = input(user, "Choose your character's tertiary tail/taur colour:", "Character Preference",
|
||||
rgb(pref.r_tail3, pref.g_tail3, pref.b_tail3)) as color|null
|
||||
if(new_tailc3)
|
||||
pref.r_tail3 = hex2num(copytext(new_tailc3, 2, 4))
|
||||
pref.g_tail3 = hex2num(copytext(new_tailc3, 4, 6))
|
||||
pref.b_tail3 = hex2num(copytext(new_tailc3, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["wing_style"])
|
||||
// Construct the list of names allowed for this user.
|
||||
var/list/pretty_wing_styles = list("Normal" = null)
|
||||
for(var/path in wing_styles_list)
|
||||
var/datum/sprite_accessory/wing/instance = wing_styles_list[path]
|
||||
if(((!instance.ckeys_allowed) || (usr.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)) || check_rights(R_ADMIN | R_EVENT | R_FUN, 0, user)) //VOREStation Edit
|
||||
pretty_wing_styles[instance.name] = path
|
||||
|
||||
// Present choice to user
|
||||
var/new_wing_style = input(user, "Pick wings", "Character Preference", pref.wing_style) as null|anything in pretty_wing_styles
|
||||
if(new_wing_style)
|
||||
pref.wing_style = pretty_wing_styles[new_wing_style]
|
||||
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["wing_color"])
|
||||
var/new_wingc = input(user, "Choose your character's wing colour:", "Character Preference",
|
||||
rgb(pref.r_wing, pref.g_wing, pref.b_wing)) as color|null
|
||||
if(new_wingc)
|
||||
pref.r_wing = hex2num(copytext(new_wingc, 2, 4))
|
||||
pref.g_wing = hex2num(copytext(new_wingc, 4, 6))
|
||||
pref.b_wing = hex2num(copytext(new_wingc, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["wing_color2"])
|
||||
var/new_wingc2 = input(user, "Choose your character's secondary wing colour:", "Character Preference",
|
||||
rgb(pref.r_wing2, pref.g_wing2, pref.b_wing2)) as color|null
|
||||
if(new_wingc2)
|
||||
pref.r_wing2 = hex2num(copytext(new_wingc2, 2, 4))
|
||||
pref.g_wing2 = hex2num(copytext(new_wingc2, 4, 6))
|
||||
pref.b_wing2 = hex2num(copytext(new_wingc2, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["wing_color3"])
|
||||
var/new_wingc3 = input(user, "Choose your character's tertiary wing colour:", "Character Preference",
|
||||
rgb(pref.r_wing3, pref.g_wing3, pref.b_wing3)) as color|null
|
||||
if(new_wingc3)
|
||||
pref.r_wing3 = hex2num(copytext(new_wingc3, 2, 4))
|
||||
pref.g_wing3 = hex2num(copytext(new_wingc3, 4, 6))
|
||||
pref.b_wing3 = hex2num(copytext(new_wingc3, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
return ..()
|
||||
|
||||
/datum/category_item/player_setup_item/general/body/proc/reset_limbs()
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
/datum/gear/utility/implant/tracking
|
||||
display_name = "implant, tracking"
|
||||
path = /obj/item/weapon/implant/tracking/weak
|
||||
cost = 10
|
||||
cost = 0 //VOREStation Edit. Changed cost to 0
|
||||
|
||||
// Remove these after generic implant has been in for awhile and everyone has had a reasonable period to copy their old descs.
|
||||
/datum/gear/utility/implant/dud1
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
// 0-9 CKEYS
|
||||
/datum/gear/fluff/malady_crop
|
||||
path = /obj/item/weapon/material/twohanded/fluff/riding_crop/malady
|
||||
path = /obj/item/weapon/material/twohanded/riding_crop/malady
|
||||
display_name = "Malady's Crop"
|
||||
ckeywhitelist = list("1r1s")
|
||||
character_name = list("Malady Blanche")
|
||||
|
||||
@@ -3,373 +3,3 @@
|
||||
name = "VORE"
|
||||
sort_order = 8
|
||||
category_item_type = /datum/category_item/player_setup_item/vore
|
||||
|
||||
// Define a place to save appearance in character setup
|
||||
/datum/preferences
|
||||
var/ear_style // Type of selected ear style
|
||||
var/r_ears = 30 // Ear color.
|
||||
var/g_ears = 30 // Ear color
|
||||
var/b_ears = 30 // Ear color
|
||||
var/r_ears2 = 30 // Ear extra color.
|
||||
var/g_ears2 = 30 // Ear extra color
|
||||
var/b_ears2 = 30 // Ear extra color
|
||||
var/r_ears3 = 30 // Ear tertiary color.
|
||||
var/g_ears3 = 30 // Ear tertiary color
|
||||
var/b_ears3 = 30 // Ear tertiary color
|
||||
var/tail_style // Type of selected tail style
|
||||
var/r_tail = 30 // Tail/Taur color
|
||||
var/g_tail = 30 // Tail/Taur color
|
||||
var/b_tail = 30 // Tail/Taur color
|
||||
var/r_tail2 = 30 // For extra overlay.
|
||||
var/g_tail2 = 30 // For extra overlay.
|
||||
var/b_tail2 = 30 // For extra overlay.
|
||||
var/r_tail3 = 30 // For tertiary overlay.
|
||||
var/g_tail3 = 30 // For tertiary overlay.
|
||||
var/b_tail3 = 30 // For tertiary overlay.
|
||||
var/wing_style // Type of selected wing style
|
||||
var/r_wing = 30 // Wing color
|
||||
var/g_wing = 30 // Wing color
|
||||
var/b_wing = 30 // Wing color
|
||||
var/r_wing2 = 30 // Wing extra color
|
||||
var/g_wing2 = 30 // Wing extra color
|
||||
var/b_wing2 = 30 // Wing extra color
|
||||
var/r_wing3 = 30 // Wing tertiary color
|
||||
var/g_wing3 = 30 // Wing tertiary color
|
||||
var/b_wing3 = 30 // Wing tertiary color
|
||||
|
||||
// Definition of the stuff for Ears
|
||||
/datum/category_item/player_setup_item/vore/ears
|
||||
name = "Appearance"
|
||||
sort_order = 1
|
||||
|
||||
/datum/category_item/player_setup_item/vore/ears/load_character(var/savefile/S)
|
||||
S["ear_style"] >> pref.ear_style
|
||||
S["r_ears"] >> pref.r_ears
|
||||
S["g_ears"] >> pref.g_ears
|
||||
S["b_ears"] >> pref.b_ears
|
||||
S["r_ears2"] >> pref.r_ears2
|
||||
S["g_ears2"] >> pref.g_ears2
|
||||
S["b_ears2"] >> pref.b_ears2
|
||||
S["r_ears3"] >> pref.r_ears3
|
||||
S["g_ears3"] >> pref.g_ears3
|
||||
S["b_ears3"] >> pref.b_ears3
|
||||
S["tail_style"] >> pref.tail_style
|
||||
S["r_tail"] >> pref.r_tail
|
||||
S["g_tail"] >> pref.g_tail
|
||||
S["b_tail"] >> pref.b_tail
|
||||
S["r_tail2"] >> pref.r_tail2
|
||||
S["g_tail2"] >> pref.g_tail2
|
||||
S["b_tail2"] >> pref.b_tail2
|
||||
S["r_tail3"] >> pref.r_tail3
|
||||
S["g_tail3"] >> pref.g_tail3
|
||||
S["b_tail3"] >> pref.b_tail3
|
||||
S["wing_style"] >> pref.wing_style
|
||||
S["r_wing"] >> pref.r_wing
|
||||
S["g_wing"] >> pref.g_wing
|
||||
S["b_wing"] >> pref.b_wing
|
||||
S["r_wing2"] >> pref.r_wing2
|
||||
S["g_wing2"] >> pref.g_wing2
|
||||
S["b_wing2"] >> pref.b_wing2
|
||||
S["r_wing3"] >> pref.r_wing3
|
||||
S["g_wing3"] >> pref.g_wing3
|
||||
S["b_wing3"] >> pref.b_wing3
|
||||
|
||||
/datum/category_item/player_setup_item/vore/ears/save_character(var/savefile/S)
|
||||
S["ear_style"] << pref.ear_style
|
||||
S["r_ears"] << pref.r_ears
|
||||
S["g_ears"] << pref.g_ears
|
||||
S["b_ears"] << pref.b_ears
|
||||
S["r_ears2"] << pref.r_ears2
|
||||
S["g_ears2"] << pref.g_ears2
|
||||
S["b_ears2"] << pref.b_ears2
|
||||
S["r_ears3"] << pref.r_ears3
|
||||
S["g_ears3"] << pref.g_ears3
|
||||
S["b_ears3"] << pref.b_ears3
|
||||
S["tail_style"] << pref.tail_style
|
||||
S["r_tail"] << pref.r_tail
|
||||
S["g_tail"] << pref.g_tail
|
||||
S["b_tail"] << pref.b_tail
|
||||
S["r_tail2"] << pref.r_tail2
|
||||
S["g_tail2"] << pref.g_tail2
|
||||
S["b_tail2"] << pref.b_tail2
|
||||
S["r_tail3"] << pref.r_tail3
|
||||
S["g_tail3"] << pref.g_tail3
|
||||
S["b_tail3"] << pref.b_tail3
|
||||
S["wing_style"] << pref.wing_style
|
||||
S["r_wing"] << pref.r_wing
|
||||
S["g_wing"] << pref.g_wing
|
||||
S["b_wing"] << pref.b_wing
|
||||
S["r_wing2"] << pref.r_wing2
|
||||
S["g_wing2"] << pref.g_wing2
|
||||
S["b_wing2"] << pref.b_wing2
|
||||
S["r_wing3"] << pref.r_wing3
|
||||
S["g_wing3"] << pref.g_wing3
|
||||
S["b_wing3"] << pref.b_wing3
|
||||
|
||||
/datum/category_item/player_setup_item/vore/ears/sanitize_character()
|
||||
pref.r_ears = sanitize_integer(pref.r_ears, 0, 255, initial(pref.r_ears))
|
||||
pref.g_ears = sanitize_integer(pref.g_ears, 0, 255, initial(pref.g_ears))
|
||||
pref.b_ears = sanitize_integer(pref.b_ears, 0, 255, initial(pref.b_ears))
|
||||
pref.r_ears2 = sanitize_integer(pref.r_ears2, 0, 255, initial(pref.r_ears2))
|
||||
pref.g_ears2 = sanitize_integer(pref.g_ears2, 0, 255, initial(pref.g_ears2))
|
||||
pref.b_ears2 = sanitize_integer(pref.b_ears2, 0, 255, initial(pref.b_ears2))
|
||||
pref.r_ears3 = sanitize_integer(pref.r_ears3, 0, 255, initial(pref.r_ears3))
|
||||
pref.g_ears3 = sanitize_integer(pref.g_ears3, 0, 255, initial(pref.g_ears3))
|
||||
pref.b_ears3 = sanitize_integer(pref.b_ears3, 0, 255, initial(pref.b_ears3))
|
||||
pref.r_tail = sanitize_integer(pref.r_tail, 0, 255, initial(pref.r_tail))
|
||||
pref.g_tail = sanitize_integer(pref.g_tail, 0, 255, initial(pref.g_tail))
|
||||
pref.b_tail = sanitize_integer(pref.b_tail, 0, 255, initial(pref.b_tail))
|
||||
pref.r_tail2 = sanitize_integer(pref.r_tail2, 0, 255, initial(pref.r_tail2))
|
||||
pref.g_tail2 = sanitize_integer(pref.g_tail2, 0, 255, initial(pref.g_tail2))
|
||||
pref.b_tail2 = sanitize_integer(pref.b_tail2, 0, 255, initial(pref.b_tail2))
|
||||
pref.r_tail3 = sanitize_integer(pref.r_tail3, 0, 255, initial(pref.r_tail3))
|
||||
pref.g_tail3 = sanitize_integer(pref.g_tail3, 0, 255, initial(pref.g_tail3))
|
||||
pref.b_tail3 = sanitize_integer(pref.b_tail3, 0, 255, initial(pref.b_tail3))
|
||||
pref.r_wing = sanitize_integer(pref.r_wing, 0, 255, initial(pref.r_wing))
|
||||
pref.g_wing = sanitize_integer(pref.g_wing, 0, 255, initial(pref.g_wing))
|
||||
pref.b_wing = sanitize_integer(pref.b_wing, 0, 255, initial(pref.b_wing))
|
||||
pref.r_wing2 = sanitize_integer(pref.r_wing2, 0, 255, initial(pref.r_wing2))
|
||||
pref.g_wing2 = sanitize_integer(pref.g_wing2, 0, 255, initial(pref.g_wing2))
|
||||
pref.b_wing2 = sanitize_integer(pref.b_wing2, 0, 255, initial(pref.b_wing2))
|
||||
pref.r_wing3 = sanitize_integer(pref.r_wing3, 0, 255, initial(pref.r_wing3))
|
||||
pref.g_wing3 = sanitize_integer(pref.g_wing3, 0, 255, initial(pref.g_wing3))
|
||||
pref.b_wing3 = sanitize_integer(pref.b_wing3, 0, 255, initial(pref.b_wing3))
|
||||
|
||||
if(pref.ear_style)
|
||||
pref.ear_style = sanitize_inlist(pref.ear_style, ear_styles_list, initial(pref.ear_style))
|
||||
var/datum/sprite_accessory/temp_ear_style = ear_styles_list[pref.ear_style]
|
||||
if(temp_ear_style.apply_restrictions && (!(pref.species in temp_ear_style.species_allowed)))
|
||||
pref.ear_style = initial(pref.ear_style)
|
||||
if(pref.tail_style)
|
||||
pref.tail_style = sanitize_inlist(pref.tail_style, tail_styles_list, initial(pref.tail_style))
|
||||
var/datum/sprite_accessory/temp_tail_style = tail_styles_list[pref.tail_style]
|
||||
if(temp_tail_style.apply_restrictions && (!(pref.species in temp_tail_style.species_allowed)))
|
||||
pref.tail_style = initial(pref.tail_style)
|
||||
if(pref.wing_style)
|
||||
pref.wing_style = sanitize_inlist(pref.wing_style, wing_styles_list, initial(pref.wing_style))
|
||||
var/datum/sprite_accessory/temp_wing_style = wing_styles_list[pref.wing_style]
|
||||
if(temp_wing_style.apply_restrictions && (!(pref.species in temp_wing_style.species_allowed)))
|
||||
pref.wing_style = initial(pref.wing_style)
|
||||
|
||||
/datum/category_item/player_setup_item/vore/ears/copy_to_mob(var/mob/living/carbon/human/character)
|
||||
character.ear_style = ear_styles_list[pref.ear_style]
|
||||
character.r_ears = pref.r_ears
|
||||
character.b_ears = pref.b_ears
|
||||
character.g_ears = pref.g_ears
|
||||
character.r_ears2 = pref.r_ears2
|
||||
character.b_ears2 = pref.b_ears2
|
||||
character.g_ears2 = pref.g_ears2
|
||||
character.r_ears3 = pref.r_ears3
|
||||
character.b_ears3 = pref.b_ears3
|
||||
character.g_ears3 = pref.g_ears3
|
||||
character.tail_style = tail_styles_list[pref.tail_style]
|
||||
character.r_tail = pref.r_tail
|
||||
character.b_tail = pref.b_tail
|
||||
character.g_tail = pref.g_tail
|
||||
character.r_tail2 = pref.r_tail2
|
||||
character.b_tail2 = pref.b_tail2
|
||||
character.g_tail2 = pref.g_tail2
|
||||
character.r_tail3 = pref.r_tail3
|
||||
character.b_tail3 = pref.b_tail3
|
||||
character.g_tail3 = pref.g_tail3
|
||||
character.wing_style = wing_styles_list[pref.wing_style]
|
||||
character.r_wing = pref.r_wing
|
||||
character.b_wing = pref.b_wing
|
||||
character.g_wing = pref.g_wing
|
||||
character.r_wing2 = pref.r_wing2
|
||||
character.b_wing2 = pref.b_wing2
|
||||
character.g_wing2 = pref.g_wing2
|
||||
character.r_wing3 = pref.r_wing3
|
||||
character.b_wing3 = pref.b_wing3
|
||||
character.g_wing3 = pref.g_wing3
|
||||
|
||||
|
||||
|
||||
/datum/category_item/player_setup_item/vore/ears/content(var/mob/user)
|
||||
. += "<h2>VORE Station Settings</h2>"
|
||||
|
||||
var/ear_display = "Normal"
|
||||
if(pref.ear_style && (pref.ear_style in ear_styles_list))
|
||||
var/datum/sprite_accessory/ears/instance = ear_styles_list[pref.ear_style]
|
||||
ear_display = instance.name
|
||||
|
||||
else if(pref.ear_style)
|
||||
ear_display = "REQUIRES UPDATE"
|
||||
. += "<b>Ears</b><br>"
|
||||
. += " Style: <a href='?src=\ref[src];ear_style=1'>[ear_display]</a><br>"
|
||||
if(ear_styles_list[pref.ear_style])
|
||||
var/datum/sprite_accessory/ears/ear = ear_styles_list[pref.ear_style]
|
||||
if(ear.do_colouration)
|
||||
. += "<a href='?src=\ref[src];ear_color=1'>Change Color</a> [color_square(pref.r_ears, pref.g_ears, pref.b_ears)]<br>"
|
||||
if(ear.extra_overlay)
|
||||
. += "<a href='?src=\ref[src];ear_color2=1'>Change Secondary Color</a> [color_square(pref.r_ears2, pref.g_ears2, pref.b_ears2)]<br>"
|
||||
if(ear.extra_overlay2)
|
||||
. += "<a href='?src=\ref[src];ear_color3=1'>Change Tertiary Color</a> [color_square(pref.r_ears3, pref.g_ears3, pref.b_ears3)]<br>"
|
||||
|
||||
var/tail_display = "Normal"
|
||||
if(pref.tail_style && (pref.tail_style in tail_styles_list))
|
||||
var/datum/sprite_accessory/tail/instance = tail_styles_list[pref.tail_style]
|
||||
tail_display = instance.name
|
||||
else if(pref.tail_style)
|
||||
tail_display = "REQUIRES UPDATE"
|
||||
. += "<b>Tail</b><br>"
|
||||
. += " Style: <a href='?src=\ref[src];tail_style=1'>[tail_display]</a><br>"
|
||||
|
||||
if(tail_styles_list[pref.tail_style])
|
||||
var/datum/sprite_accessory/tail/T = tail_styles_list[pref.tail_style]
|
||||
if(T.do_colouration)
|
||||
. += "<a href='?src=\ref[src];tail_color=1'>Change Color</a> [color_square(pref.r_tail, pref.g_tail, pref.b_tail)]<br>"
|
||||
if(T.extra_overlay)
|
||||
. += "<a href='?src=\ref[src];tail_color2=1'>Change Secondary Color</a> [color_square(pref.r_tail2, pref.g_tail2, pref.b_tail2)]<br>"
|
||||
if(T.extra_overlay2)
|
||||
. += "<a href='?src=\ref[src];tail_color3=1'>Change Tertiary Color</a> [color_square(pref.r_tail3, pref.g_tail3, pref.b_tail3)]<br>"
|
||||
|
||||
var/wing_display = "Normal"
|
||||
if(pref.wing_style && (pref.wing_style in wing_styles_list))
|
||||
var/datum/sprite_accessory/wing/instance = wing_styles_list[pref.wing_style]
|
||||
wing_display = instance.name
|
||||
else if(pref.wing_style)
|
||||
wing_display = "REQUIRES UPDATE"
|
||||
. += "<b>Wing</b><br>"
|
||||
. += " Style: <a href='?src=\ref[src];wing_style=1'>[wing_display]</a><br>"
|
||||
|
||||
if(wing_styles_list[pref.wing_style])
|
||||
var/datum/sprite_accessory/wing/W = wing_styles_list[pref.wing_style]
|
||||
if (W.do_colouration)
|
||||
. += "<a href='?src=\ref[src];wing_color=1'>Change Color</a> [color_square(pref.r_wing, pref.g_wing, pref.b_wing)]<br>"
|
||||
if (W.extra_overlay)
|
||||
. += "<a href='?src=\ref[src];wing_color2=1'>Change Secondary Color</a> [color_square(pref.r_wing2, pref.g_wing2, pref.b_wing2)]<br>"
|
||||
if (W.extra_overlay2)
|
||||
. += "<a href='?src=\ref[src];wing_color3=1'>Change Secondary Color</a> [color_square(pref.r_wing3, pref.g_wing3, pref.b_wing3)]<br>"
|
||||
|
||||
/datum/category_item/player_setup_item/vore/ears/OnTopic(var/href,var/list/href_list, var/mob/user)
|
||||
if(!CanUseTopic(user))
|
||||
return TOPIC_NOACTION
|
||||
|
||||
else if(href_list["ear_style"])
|
||||
// Construct the list of names allowed for this user.
|
||||
var/list/pretty_ear_styles = list("Normal" = null)
|
||||
for(var/path in ear_styles_list)
|
||||
var/datum/sprite_accessory/ears/instance = ear_styles_list[path]
|
||||
if(((!instance.ckeys_allowed) || (usr.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)))
|
||||
pretty_ear_styles[instance.name] = path
|
||||
|
||||
// Present choice to user
|
||||
var/new_ear_style = input(user, "Pick ears", "Character Preference", pref.ear_style) as null|anything in pretty_ear_styles
|
||||
if(new_ear_style)
|
||||
pref.ear_style = pretty_ear_styles[new_ear_style]
|
||||
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["ear_color"])
|
||||
var/new_earc = input(user, "Choose your character's ear colour:", "Character Preference",
|
||||
rgb(pref.r_ears, pref.g_ears, pref.b_ears)) as color|null
|
||||
if(new_earc)
|
||||
pref.r_ears = hex2num(copytext(new_earc, 2, 4))
|
||||
pref.g_ears = hex2num(copytext(new_earc, 4, 6))
|
||||
pref.b_ears = hex2num(copytext(new_earc, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["ear_color2"])
|
||||
var/new_earc2 = input(user, "Choose your character's secondary ear colour:", "Character Preference",
|
||||
rgb(pref.r_ears2, pref.g_ears2, pref.b_ears2)) as color|null
|
||||
if(new_earc2)
|
||||
pref.r_ears2 = hex2num(copytext(new_earc2, 2, 4))
|
||||
pref.g_ears2 = hex2num(copytext(new_earc2, 4, 6))
|
||||
pref.b_ears2 = hex2num(copytext(new_earc2, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["ear_color3"])
|
||||
var/new_earc3 = input(user, "Choose your character's tertiary ear colour:", "Character Preference",
|
||||
rgb(pref.r_ears3, pref.g_ears3, pref.b_ears3)) as color|null
|
||||
if(new_earc3)
|
||||
pref.r_ears3 = hex2num(copytext(new_earc3, 2, 4))
|
||||
pref.g_ears3 = hex2num(copytext(new_earc3, 4, 6))
|
||||
pref.b_ears3 = hex2num(copytext(new_earc3, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["tail_style"])
|
||||
// Construct the list of names allowed for this user.
|
||||
var/list/pretty_tail_styles = list("Normal" = null)
|
||||
for(var/path in tail_styles_list)
|
||||
var/datum/sprite_accessory/tail/instance = tail_styles_list[path]
|
||||
if(((!instance.ckeys_allowed) || (usr.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)))
|
||||
pretty_tail_styles[instance.name] = path
|
||||
|
||||
// Present choice to user
|
||||
var/new_tail_style = input(user, "Pick tails", "Character Preference", pref.tail_style) as null|anything in pretty_tail_styles
|
||||
if(new_tail_style)
|
||||
pref.tail_style = pretty_tail_styles[new_tail_style]
|
||||
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["tail_color"])
|
||||
var/new_tailc = input(user, "Choose your character's tail/taur colour:", "Character Preference",
|
||||
rgb(pref.r_tail, pref.g_tail, pref.b_tail)) as color|null
|
||||
if(new_tailc)
|
||||
pref.r_tail = hex2num(copytext(new_tailc, 2, 4))
|
||||
pref.g_tail = hex2num(copytext(new_tailc, 4, 6))
|
||||
pref.b_tail = hex2num(copytext(new_tailc, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["tail_color2"])
|
||||
var/new_tailc2 = input(user, "Choose your character's secondary tail/taur colour:", "Character Preference",
|
||||
rgb(pref.r_tail2, pref.g_tail2, pref.b_tail2)) as color|null
|
||||
if(new_tailc2)
|
||||
pref.r_tail2 = hex2num(copytext(new_tailc2, 2, 4))
|
||||
pref.g_tail2 = hex2num(copytext(new_tailc2, 4, 6))
|
||||
pref.b_tail2 = hex2num(copytext(new_tailc2, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["tail_color3"])
|
||||
var/new_tailc3 = input(user, "Choose your character's tertiary tail/taur colour:", "Character Preference",
|
||||
rgb(pref.r_tail3, pref.g_tail3, pref.b_tail3)) as color|null
|
||||
if(new_tailc3)
|
||||
pref.r_tail3 = hex2num(copytext(new_tailc3, 2, 4))
|
||||
pref.g_tail3 = hex2num(copytext(new_tailc3, 4, 6))
|
||||
pref.b_tail3 = hex2num(copytext(new_tailc3, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["wing_style"])
|
||||
// Construct the list of names allowed for this user.
|
||||
var/list/pretty_wing_styles = list("Normal" = null)
|
||||
for(var/path in wing_styles_list)
|
||||
var/datum/sprite_accessory/wing/instance = wing_styles_list[path]
|
||||
if(((!instance.ckeys_allowed) || (usr.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)))
|
||||
pretty_wing_styles[instance.name] = path
|
||||
|
||||
// Present choice to user
|
||||
var/new_wing_style = input(user, "Pick wings", "Character Preference", pref.wing_style) as null|anything in pretty_wing_styles
|
||||
if(new_wing_style)
|
||||
pref.wing_style = pretty_wing_styles[new_wing_style]
|
||||
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["wing_color"])
|
||||
var/new_wingc = input(user, "Choose your character's wing colour:", "Character Preference",
|
||||
rgb(pref.r_wing, pref.g_wing, pref.b_wing)) as color|null
|
||||
if(new_wingc)
|
||||
pref.r_wing = hex2num(copytext(new_wingc, 2, 4))
|
||||
pref.g_wing = hex2num(copytext(new_wingc, 4, 6))
|
||||
pref.b_wing = hex2num(copytext(new_wingc, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["wing_color2"])
|
||||
var/new_wingc2 = input(user, "Choose your character's secondary wing colour:", "Character Preference",
|
||||
rgb(pref.r_wing2, pref.g_wing2, pref.b_wing2)) as color|null
|
||||
if(new_wingc2)
|
||||
pref.r_wing2 = hex2num(copytext(new_wingc2, 2, 4))
|
||||
pref.g_wing2 = hex2num(copytext(new_wingc2, 4, 6))
|
||||
pref.b_wing2 = hex2num(copytext(new_wingc2, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["wing_color3"])
|
||||
var/new_wingc3 = input(user, "Choose your character's tertiary wing colour:", "Character Preference",
|
||||
rgb(pref.r_wing3, pref.g_wing3, pref.b_wing3)) as color|null
|
||||
if(new_wingc3)
|
||||
pref.r_wing3 = hex2num(copytext(new_wingc3, 2, 4))
|
||||
pref.g_wing3 = hex2num(copytext(new_wingc3, 4, 6))
|
||||
pref.b_wing3 = hex2num(copytext(new_wingc3, 6, 8))
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
return ..()
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
var/datum/species/selected_species = GLOB.all_species[pref.species]
|
||||
if(selected_species.selects_bodytype)
|
||||
// Allowed!
|
||||
else if(!pref.custom_base || !(pref.custom_base in custom_species_bases))
|
||||
else if(!pref.custom_base || !(pref.custom_base in GLOB.custom_species_bases))
|
||||
pref.custom_base = SPECIES_HUMAN
|
||||
|
||||
/datum/category_item/player_setup_item/vore/traits/copy_to_mob(var/mob/living/carbon/human/character)
|
||||
@@ -207,7 +207,7 @@
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["custom_base"])
|
||||
var/list/choices = custom_species_bases
|
||||
var/list/choices = GLOB.custom_species_bases
|
||||
if(pref.species != SPECIES_CUSTOM)
|
||||
choices = (choices | pref.species)
|
||||
var/text_choice = input("Pick an icon set for your species:","Icon Base") in choices
|
||||
|
||||
@@ -744,6 +744,8 @@
|
||||
slot_flags = SLOT_OCLOTHING
|
||||
var/blood_overlay_type = "suit"
|
||||
blood_sprite_state = "suitblood" //Defaults to the suit's blood overlay, so that some blood renders instead of no blood.
|
||||
|
||||
var/taurized = FALSE
|
||||
siemens_coefficient = 0.9
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
preserve_item = 1
|
||||
@@ -779,6 +781,43 @@
|
||||
|
||||
set_clothing_index()
|
||||
|
||||
/obj/item/clothing/suit/equipped(var/mob/user, var/slot)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if((taurized && !isTaurTail(H.tail_style)) || (!taurized && isTaurTail(H.tail_style)))
|
||||
taurize(user)
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/suit/proc/taurize(var/mob/living/carbon/human/Taur)
|
||||
if(isTaurTail(Taur.tail_style))
|
||||
var/datum/sprite_accessory/tail/taur/taurtail = Taur.tail_style
|
||||
if(taurtail.suit_sprites && (get_worn_icon_state(slot_wear_suit_str) in cached_icon_states(taurtail.suit_sprites)))
|
||||
icon_override = taurtail.suit_sprites
|
||||
taurized = TRUE
|
||||
|
||||
if(!taurized)
|
||||
icon_override = initial(icon_override)
|
||||
taurized = FALSE
|
||||
|
||||
// Taur suits need to be shifted so its centered on their taur half.
|
||||
/obj/item/clothing/suit/make_worn_icon(var/body_type,var/slot_name,var/inhands,var/default_icon,var/default_layer = 0,var/icon/clip_mask)
|
||||
var/image/standing = ..()
|
||||
if(taurized) //Special snowflake var on suits
|
||||
standing.pixel_x = -16
|
||||
standing.layer = BODY_LAYER + 15 // 15 is above tail layer, so will not be covered by taurbody.
|
||||
return standing
|
||||
|
||||
/obj/item/clothing/suit/apply_accessories(var/image/standing)
|
||||
if(LAZYLEN(accessories) && taurized)
|
||||
for(var/obj/item/clothing/accessory/A in accessories)
|
||||
var/image/I = new(A.get_mob_overlay())
|
||||
I.pixel_x = 16 //Opposite of the pixel_x on the suit (-16) from taurization to cancel it out and puts the accessory in the correct place on the body.
|
||||
standing.add_overlay(I)
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
//Under clothing
|
||||
/obj/item/clothing/under
|
||||
@@ -1056,7 +1095,6 @@
|
||||
to_chat(usr, "<span class='notice'>You roll down your [src]'s sleeves.</span>")
|
||||
update_clothing_icon()
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/New()
|
||||
sensor_mode = pick(0,1,2,3)
|
||||
..()
|
||||
|
||||
@@ -149,48 +149,11 @@
|
||||
|
||||
//Switch to taur sprites if a taur equips
|
||||
/obj/item/clothing/suit
|
||||
var/taurized = FALSE //Easier than trying to 'compare icons' to see if it's a taur suit
|
||||
sprite_sheets = list(
|
||||
SPECIES_TESHARI = 'icons/mob/species/seromi/suit.dmi',
|
||||
SPECIES_VOX = 'icons/mob/species/vox/suit.dmi',
|
||||
SPECIES_WEREBEAST = 'icons/mob/species/werebeast/suit.dmi')
|
||||
|
||||
/obj/item/clothing/suit/equipped(var/mob/user, var/slot)
|
||||
var/normalize = TRUE
|
||||
|
||||
//Pyramid of doom-y. Improve somehow?
|
||||
if(!taurized && slot == slot_wear_suit && ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(isTaurTail(H.tail_style))
|
||||
var/datum/sprite_accessory/tail/taur/taurtail = H.tail_style
|
||||
if(taurtail.suit_sprites && (get_worn_icon_state(slot_wear_suit_str) in cached_icon_states(taurtail.suit_sprites)))
|
||||
icon_override = taurtail.suit_sprites
|
||||
normalize = FALSE
|
||||
taurized = TRUE
|
||||
|
||||
if(normalize && taurized)
|
||||
icon_override = initial(icon_override)
|
||||
taurized = FALSE
|
||||
|
||||
return ..()
|
||||
|
||||
// Taur suits need to be shifted so its centered on their taur half.
|
||||
/obj/item/clothing/suit/make_worn_icon(var/body_type,var/slot_name,var/inhands,var/default_icon,var/default_layer = 0,var/icon/clip_mask)
|
||||
var/image/standing = ..()
|
||||
if(taurized) //Special snowflake var on suits
|
||||
standing.pixel_x = -16
|
||||
standing.layer = BODY_LAYER + 15 // 15 is above tail layer, so will not be covered by taurbody.
|
||||
return standing
|
||||
|
||||
/obj/item/clothing/suit/apply_accessories(var/image/standing)
|
||||
if(LAZYLEN(accessories) && taurized)
|
||||
for(var/obj/item/clothing/accessory/A in accessories)
|
||||
var/image/I = new(A.get_mob_overlay())
|
||||
I.pixel_x = 16 //Opposite of the pixel_x on the suit (-16) from taurization to cancel it out and puts the accessory in the correct place on the body.
|
||||
standing.add_overlay(I)
|
||||
else
|
||||
return ..()
|
||||
|
||||
//TFF 5/8/19 - sets Vorestation /obj/item/clothing/under sensor setting default?
|
||||
/obj/item/clothing/under
|
||||
sensor_mode = 3
|
||||
|
||||
@@ -4730,9 +4730,6 @@
|
||||
/mob/living/simple_mob
|
||||
var/kitchen_tag = "animal" //Used for cooking with animals
|
||||
|
||||
/mob/living/simple_mob/mouse
|
||||
kitchen_tag = "rodent"
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel
|
||||
slices_num = 8
|
||||
|
||||
|
||||
@@ -34,168 +34,169 @@
|
||||
/datum/material/steel/generate_recipes()
|
||||
..()
|
||||
recipes += new/datum/stack_recipe_list("office chairs",list( \
|
||||
new/datum/stack_recipe("dark office chair", /obj/structure/bed/chair/office/dark, 5, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("light office chair", /obj/structure/bed/chair/office/light, 5, one_per_turf = 1, on_floor = 1) \
|
||||
new/datum/stack_recipe("dark office chair", /obj/structure/bed/chair/office/dark, 5, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("light office chair", /obj/structure/bed/chair/office/light, 5, one_per_turf = 1, on_floor = 1, recycle_material = "[name]") \
|
||||
))
|
||||
recipes += new/datum/stack_recipe_list("comfy chairs", list( \
|
||||
new/datum/stack_recipe("beige comfy chair", /obj/structure/bed/chair/comfy/beige, 2, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("black comfy chair", /obj/structure/bed/chair/comfy/black, 2, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("brown comfy chair", /obj/structure/bed/chair/comfy/brown, 2, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("lime comfy chair", /obj/structure/bed/chair/comfy/lime, 2, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("teal comfy chair", /obj/structure/bed/chair/comfy/teal, 2, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("red comfy chair", /obj/structure/bed/chair/comfy/red, 2, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("blue comfy chair", /obj/structure/bed/chair/comfy/blue, 2, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("purple comfy chair", /obj/structure/bed/chair/comfy/purp, 2, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("green comfy chair", /obj/structure/bed/chair/comfy/green, 2, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("yellow comfy chair", /obj/structure/bed/chair/comfy/yellow, 2, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("orange comfy chair", /obj/structure/bed/chair/comfy/orange, 2, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("beige comfy chair", /obj/structure/bed/chair/comfy/beige, 2, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("black comfy chair", /obj/structure/bed/chair/comfy/black, 2, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("brown comfy chair", /obj/structure/bed/chair/comfy/brown, 2, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("lime comfy chair", /obj/structure/bed/chair/comfy/lime, 2, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("teal comfy chair", /obj/structure/bed/chair/comfy/teal, 2, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("red comfy chair", /obj/structure/bed/chair/comfy/red, 2, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("blue comfy chair", /obj/structure/bed/chair/comfy/blue, 2, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("purple comfy chair", /obj/structure/bed/chair/comfy/purp, 2, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("green comfy chair", /obj/structure/bed/chair/comfy/green, 2, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("yellow comfy chair", /obj/structure/bed/chair/comfy/yellow, 2, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("orange comfy chair", /obj/structure/bed/chair/comfy/orange, 2, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
))
|
||||
recipes += new/datum/stack_recipe("table frame", /obj/structure/table, 1, time = 10, one_per_turf = 1, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("bench frame", /obj/structure/table/bench, 1, time = 10, one_per_turf = 1, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("rack", /obj/structure/table/rack, 1, time = 5, one_per_turf = 1, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("closet", /obj/structure/closet, 2, time = 15, one_per_turf = 1, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("canister", /obj/machinery/portable_atmospherics/canister, 10, time = 15, one_per_turf = 1, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("cannon frame", /obj/item/weapon/cannonframe, 10, time = 15, one_per_turf = 0, on_floor = 0)
|
||||
recipes += new/datum/stack_recipe("regular floor tile", /obj/item/stack/tile/floor, 1, 4, 20)
|
||||
recipes += new/datum/stack_recipe("roofing tile", /obj/item/stack/tile/roofing, 3, 4, 20)
|
||||
recipes += new/datum/stack_recipe("metal rod", /obj/item/stack/rods, 1, 2, 60)
|
||||
recipes += new/datum/stack_recipe("frame", /obj/item/frame, 5, time = 25, one_per_turf = 1, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("mirror frame", /obj/item/frame/mirror, 1, time = 5, one_per_turf = 0, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("fire extinguisher cabinet frame", /obj/item/frame/extinguisher_cabinet, 4, time = 5, one_per_turf = 0, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("table frame", /obj/structure/table, 1, time = 10, one_per_turf = 1, on_floor = 1, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("bench frame", /obj/structure/table/bench, 1, time = 10, one_per_turf = 1, on_floor = 1, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("rack", /obj/structure/table/rack, 1, time = 5, one_per_turf = 1, on_floor = 1, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("closet", /obj/structure/closet, 2, time = 15, one_per_turf = 1, on_floor = 1, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("canister", /obj/machinery/portable_atmospherics/canister, 10, time = 15, one_per_turf = 1, on_floor = 1, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("cannon frame", /obj/item/weapon/cannonframe, 10, time = 15, one_per_turf = 0, on_floor = 0, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("regular floor tile", /obj/item/stack/tile/floor, 1, 4, 20, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("roofing tile", /obj/item/stack/tile/roofing, 3, 4, 20, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("metal rod", /obj/item/stack/rods, 1, 2, 60, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("frame", /obj/item/frame, 5, time = 25, one_per_turf = 1, on_floor = 1, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("mirror frame", /obj/item/frame/mirror, 1, time = 5, one_per_turf = 0, on_floor = 1, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("fire extinguisher cabinet frame", /obj/item/frame/extinguisher_cabinet, 4, time = 5, one_per_turf = 0, on_floor = 1, recycle_material = "[name]")
|
||||
//recipes += new/datum/stack_recipe("fire axe cabinet frame", /obj/item/frame/fireaxe_cabinet, 4, time = 5, one_per_turf = 0, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("railing", /obj/structure/railing, 2, time = 50, one_per_turf = 0, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = 1, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("railing", /obj/structure/railing, 2, time = 50, one_per_turf = 0, on_floor = 1, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = 1, on_floor = 1, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe_list("airlock assemblies", list( \
|
||||
new/datum/stack_recipe("standard airlock assembly", /obj/structure/door_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("command airlock assembly", /obj/structure/door_assembly/door_assembly_com, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("security airlock assembly", /obj/structure/door_assembly/door_assembly_sec, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("eng atmos airlock assembly", /obj/structure/door_assembly/door_assembly_eat, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("engineering airlock assembly", /obj/structure/door_assembly/door_assembly_eng, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("mining airlock assembly", /obj/structure/door_assembly/door_assembly_min, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("atmospherics airlock assembly", /obj/structure/door_assembly/door_assembly_atmo, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("research airlock assembly", /obj/structure/door_assembly/door_assembly_research, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("medical airlock assembly", /obj/structure/door_assembly/door_assembly_med, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("maintenance airlock assembly", /obj/structure/door_assembly/door_assembly_mai, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("external airlock assembly", /obj/structure/door_assembly/door_assembly_ext, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("freezer airlock assembly", /obj/structure/door_assembly/door_assembly_fre, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("airtight hatch assembly", /obj/structure/door_assembly/door_assembly_hatch, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("maintenance hatch assembly", /obj/structure/door_assembly/door_assembly_mhatch, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("high security airlock assembly", /obj/structure/door_assembly/door_assembly_highsecurity, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("voidcraft airlock assembly horizontal", /obj/structure/door_assembly/door_assembly_voidcraft, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("voidcraft airlock assembly vertical", /obj/structure/door_assembly/door_assembly_voidcraft/vertical, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("emergency shutter", /obj/structure/firedoor_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("multi-tile airlock assembly", /obj/structure/door_assembly/multi_tile, 4, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("standard airlock assembly", /obj/structure/door_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("command airlock assembly", /obj/structure/door_assembly/door_assembly_com, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("security airlock assembly", /obj/structure/door_assembly/door_assembly_sec, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("eng atmos airlock assembly", /obj/structure/door_assembly/door_assembly_eat, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("engineering airlock assembly", /obj/structure/door_assembly/door_assembly_eng, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("mining airlock assembly", /obj/structure/door_assembly/door_assembly_min, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("atmospherics airlock assembly", /obj/structure/door_assembly/door_assembly_atmo, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("research airlock assembly", /obj/structure/door_assembly/door_assembly_research, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("medical airlock assembly", /obj/structure/door_assembly/door_assembly_med, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("maintenance airlock assembly", /obj/structure/door_assembly/door_assembly_mai, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("external airlock assembly", /obj/structure/door_assembly/door_assembly_ext, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("freezer airlock assembly", /obj/structure/door_assembly/door_assembly_fre, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("airtight hatch assembly", /obj/structure/door_assembly/door_assembly_hatch, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("maintenance hatch assembly", /obj/structure/door_assembly/door_assembly_mhatch, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("high security airlock assembly", /obj/structure/door_assembly/door_assembly_highsecurity, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("voidcraft airlock assembly horizontal", /obj/structure/door_assembly/door_assembly_voidcraft, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("voidcraft airlock assembly vertical", /obj/structure/door_assembly/door_assembly_voidcraft/vertical, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("emergency shutter", /obj/structure/firedoor_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("multi-tile airlock assembly", /obj/structure/door_assembly/multi_tile, 4, time = 50, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
))
|
||||
//recipes += new/datum/stack_recipe("IV drip", /obj/machinery/iv_drip, 4, time = 20, one_per_turf = 1, on_floor = 1)//VOREStation Removal
|
||||
recipes += new/datum/stack_recipe("medical stand", /obj/structure/medical_stand, 4, time = 20, one_per_turf = 1, on_floor = 1)//VOREStation Replacement
|
||||
recipes += new/datum/stack_recipe("conveyor switch", /obj/machinery/conveyor_switch, 2, time = 20, one_per_turf = 1, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("grenade casing", /obj/item/weapon/grenade/chem_grenade)
|
||||
recipes += new/datum/stack_recipe("light fixture frame", /obj/item/frame/light, 2)
|
||||
recipes += new/datum/stack_recipe("small light fixture frame", /obj/item/frame/light/small, 1)
|
||||
recipes += new/datum/stack_recipe("floor lamp fixture frame", /obj/machinery/light_construct/flamp, 2)
|
||||
recipes += new/datum/stack_recipe("apc frame", /obj/item/frame/apc, 2)
|
||||
//recipes += new/datum/stack_recipe("IV drip", /obj/machinery/iv_drip, 4, time = 20, one_per_turf = 1, on_floor = 1, recycle_material = "[name]")//VOREStation Removal
|
||||
recipes += new/datum/stack_recipe("medical stand", /obj/structure/medical_stand, 4, time = 20, one_per_turf = 1, on_floor = 1, recycle_material = "[name]")//VOREStation Replacement
|
||||
recipes += new/datum/stack_recipe("conveyor switch", /obj/machinery/conveyor_switch, 2, time = 20, one_per_turf = 1, on_floor = 1, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("grenade casing", /obj/item/weapon/grenade/chem_grenade, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("light fixture frame", /obj/item/frame/light, 2, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("small light fixture frame", /obj/item/frame/light/small, 1, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("floor lamp fixture frame", /obj/machinery/light_construct/flamp, 2, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("apc frame", /obj/item/frame/apc, 2, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe_list("modular computer frames", list( \
|
||||
new/datum/stack_recipe("modular console frame", /obj/item/modular_computer/console, 20),\
|
||||
new/datum/stack_recipe("modular telescreen frame", /obj/item/modular_computer/telescreen, 10),\
|
||||
new/datum/stack_recipe("modular laptop frame", /obj/item/modular_computer/laptop, 10),\
|
||||
new/datum/stack_recipe("modular tablet frame", /obj/item/modular_computer/tablet, 5),\
|
||||
new/datum/stack_recipe("modular console frame", /obj/item/modular_computer/console, 20, recycle_material = "[name]"),\
|
||||
new/datum/stack_recipe("modular telescreen frame", /obj/item/modular_computer/telescreen, 10, recycle_material = "[name]"),\
|
||||
new/datum/stack_recipe("modular laptop frame", /obj/item/modular_computer/laptop, 10, recycle_material = "[name]"),\
|
||||
new/datum/stack_recipe("modular tablet frame", /obj/item/modular_computer/tablet, 5, recycle_material = "[name]"),\
|
||||
))
|
||||
recipes += new/datum/stack_recipe_list("filing cabinets", list( \
|
||||
new/datum/stack_recipe("filing cabinet", /obj/structure/filingcabinet, 4, time = 20, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("tall filing cabinet", /obj/structure/filingcabinet/filingcabinet, 4, time = 20, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("chest drawer", /obj/structure/filingcabinet/chestdrawer, 4, time = 20, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("filing cabinet", /obj/structure/filingcabinet, 4, time = 20, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("tall filing cabinet", /obj/structure/filingcabinet/filingcabinet, 4, time = 20, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("chest drawer", /obj/structure/filingcabinet/chestdrawer, 4, time = 20, one_per_turf = 1, on_floor = 1, recycle_material = "[name]"), \
|
||||
))
|
||||
recipes += new/datum/stack_recipe("desk bell", /obj/item/weapon/deskbell, 1, on_floor = 1, supplied_material = "[name]")
|
||||
|
||||
/datum/material/plasteel/generate_recipes()
|
||||
..()
|
||||
recipes += new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = 1)
|
||||
recipes += new/datum/stack_recipe("Metal crate", /obj/structure/closet/crate, 10, time = 50, one_per_turf = 1)
|
||||
recipes += new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = 1, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("Metal crate", /obj/structure/closet/crate, 10, time = 50, one_per_turf = 1, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("knife grip", /obj/item/weapon/material/butterflyhandle, 4, time = 20, one_per_turf = 0, on_floor = 1, supplied_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("dark floor tile", /obj/item/stack/tile/floor/dark, 1, 4, 20)
|
||||
recipes += new/datum/stack_recipe("roller bed", /obj/item/roller, 5, time = 30, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("whetstone", /obj/item/weapon/whetstone, 2, time = 10)
|
||||
recipes += new/datum/stack_recipe("dark floor tile", /obj/item/stack/tile/floor/dark, 1, 4, 20, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("roller bed", /obj/item/roller, 5, time = 30, on_floor = 1, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("whetstone", /obj/item/weapon/whetstone, 2, time = 10, recycle_material = "[name]")
|
||||
|
||||
/datum/material/stone/generate_recipes()
|
||||
..()
|
||||
recipes += new/datum/stack_recipe("planting bed", /obj/machinery/portable_atmospherics/hydroponics/soil, 3, time = 10, one_per_turf = 1, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("planting bed", /obj/machinery/portable_atmospherics/hydroponics/soil, 3, time = 10, one_per_turf = 1, on_floor = 1, recycle_material = "[name]")
|
||||
|
||||
/datum/material/stone/marble/generate_recipes()
|
||||
..()
|
||||
recipes += new/datum/stack_recipe("light marble floor tile", /obj/item/stack/tile/wmarble, 1, 4, 20)
|
||||
recipes += new/datum/stack_recipe("dark marble floor tile", /obj/item/stack/tile/bmarble, 1, 4, 20)
|
||||
recipes += new/datum/stack_recipe("light marble floor tile", /obj/item/stack/tile/wmarble, 1, 4, 20, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("dark marble floor tile", /obj/item/stack/tile/bmarble, 1, 4, 20, recycle_material = "[name]")
|
||||
|
||||
/datum/material/plastic/generate_recipes()
|
||||
..()
|
||||
recipes += new/datum/stack_recipe("plastic crate", /obj/structure/closet/crate/plastic, 10, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("plastic bag", /obj/item/weapon/storage/bag/plasticbag, 3, on_floor = 1, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("blood pack", /obj/item/weapon/reagent_containers/blood/empty, 4, on_floor = 0, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("reagent dispenser cartridge (large)", /obj/item/weapon/reagent_containers/chem_disp_cartridge, 5, on_floor=0, pass_stack_color = TRUE) // 500u
|
||||
recipes += new/datum/stack_recipe("reagent dispenser cartridge (med)", /obj/item/weapon/reagent_containers/chem_disp_cartridge/medium, 3, on_floor=0, pass_stack_color = TRUE) // 250u
|
||||
recipes += new/datum/stack_recipe("reagent dispenser cartridge (small)", /obj/item/weapon/reagent_containers/chem_disp_cartridge/small, 1, on_floor=0, pass_stack_color = TRUE) // 100u
|
||||
recipes += new/datum/stack_recipe("white floor tile", /obj/item/stack/tile/floor/white, 1, 4, 20, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("freezer floor tile", /obj/item/stack/tile/floor/freezer, 1, 4, 20, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("shower curtain", /obj/structure/curtain, 4, time = 15, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("plastic flaps", /obj/structure/plasticflaps, 4, time = 25, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("water-cooler", /obj/structure/reagent_dispensers/water_cooler, 4, time = 10, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("lampshade", /obj/item/weapon/lampshade, 1, time = 1, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("plastic net", /obj/item/weapon/material/fishing_net, 25, time = 1 MINUTE, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("plastic fishtank", /obj/item/glass_jar/fish/plastic, 2, time = 30 SECONDS)
|
||||
recipes += new/datum/stack_recipe("reagent tubing", /obj/item/stack/hose, 1, 4, 20, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("Feeder", /obj/machinery/feeder, 4, time = 20, one_per_turf = 1, on_floor = 1) //CHOMP Addition
|
||||
recipes += new/datum/stack_recipe("plastic crate", /obj/structure/closet/crate/plastic, 10, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("plastic bag", /obj/item/weapon/storage/bag/plasticbag, 3, on_floor = 1, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("blood pack", /obj/item/weapon/reagent_containers/blood/empty, 4, on_floor = 0, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("reagent dispenser cartridge (large)", /obj/item/weapon/reagent_containers/chem_disp_cartridge, 5, on_floor=0, pass_stack_color = TRUE, recycle_material = "[name]") // 500u
|
||||
recipes += new/datum/stack_recipe("reagent dispenser cartridge (med)", /obj/item/weapon/reagent_containers/chem_disp_cartridge/medium, 3, on_floor=0, pass_stack_color = TRUE, recycle_material = "[name]") // 250u
|
||||
recipes += new/datum/stack_recipe("reagent dispenser cartridge (small)", /obj/item/weapon/reagent_containers/chem_disp_cartridge/small, 1, on_floor=0, pass_stack_color = TRUE, recycle_material = "[name]") // 100u
|
||||
recipes += new/datum/stack_recipe("white floor tile", /obj/item/stack/tile/floor/white, 1, 4, 20, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("freezer floor tile", /obj/item/stack/tile/floor/freezer, 1, 4, 20, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("shower curtain", /obj/structure/curtain, 4, time = 15, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("plastic flaps", /obj/structure/plasticflaps, 4, time = 25, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("water-cooler", /obj/structure/reagent_dispensers/water_cooler, 4, time = 10, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("lampshade", /obj/item/weapon/lampshade, 1, time = 1, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("plastic net", /obj/item/weapon/material/fishing_net, 25, time = 1 MINUTE, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("plastic fishtank", /obj/item/glass_jar/fish/plastic, 2, time = 30 SECONDS, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("reagent tubing", /obj/item/stack/hose, 1, 4, 20, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("Feeder", /obj/machinery/feeder, 4, time = 20, one_per_turf = 1, on_floor = 1, recycle_material = "[name]") //CHOMP Addition
|
||||
|
||||
|
||||
/datum/material/wood/generate_recipes()
|
||||
..()
|
||||
recipes += new/datum/stack_recipe("oar", /obj/item/weapon/oar, 2, time = 30, supplied_material = "[name]", pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("boat", /obj/vehicle/boat, 20, time = 10 SECONDS, supplied_material = "[name]", pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("dragon boat", /obj/vehicle/boat/dragon, 50, time = 30 SECONDS, supplied_material = "[name]", pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("wooden sandals", /obj/item/clothing/shoes/sandal, 1, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("wood circlet", /obj/item/clothing/head/woodcirclet, 1, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("clipboard", /obj/item/weapon/clipboard, 1, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("wooden chair", /obj/structure/bed/chair/wood, 3, time = 10, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("crossbow frame", /obj/item/weapon/crossbowframe, 5, time = 25, one_per_turf = 0, on_floor = 0, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("coffin", /obj/structure/closet/coffin, 5, time = 15, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("beehive assembly", /obj/item/beehive_assembly, 4, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("beehive frame", /obj/item/honey_frame, 1, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("book shelf", /obj/structure/bookcase, 5, time = 15, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("noticeboard frame", /obj/item/frame/noticeboard, 4, time = 5, one_per_turf = 0, on_floor = 1, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("wooden bucket", /obj/item/weapon/reagent_containers/glass/bucket/wood, 2, time = 4, one_per_turf = 0, on_floor = 0, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("coilgun stock", /obj/item/weapon/coilgun_assembly, 5, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("crude fishing rod", /obj/item/weapon/material/fishing_rod/built, 8, time = 10 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("wooden standup figure", /obj/structure/barricade/cutout, 5, time = 10 SECONDS, pass_stack_color = TRUE) //VOREStation Add
|
||||
recipes += new/datum/stack_recipe("noticeboard", /obj/structure/noticeboard, 1)
|
||||
recipes += new/datum/stack_recipe("wooden sandals", /obj/item/clothing/shoes/sandal, 1, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("wood circlet", /obj/item/clothing/head/woodcirclet, 1, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("clipboard", /obj/item/weapon/clipboard, 1, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("wooden chair", /obj/structure/bed/chair/wood, 3, time = 10, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("crossbow frame", /obj/item/weapon/crossbowframe, 5, time = 25, one_per_turf = 0, on_floor = 0, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("coffin", /obj/structure/closet/coffin, 5, time = 15, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("beehive assembly", /obj/item/beehive_assembly, 4, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("beehive frame", /obj/item/honey_frame, 1, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("book shelf", /obj/structure/bookcase, 5, time = 15, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("noticeboard frame", /obj/item/frame/noticeboard, 4, time = 5, one_per_turf = 0, on_floor = 1, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("wooden bucket", /obj/item/weapon/reagent_containers/glass/bucket/wood, 2, time = 4, one_per_turf = 0, on_floor = 0, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("coilgun stock", /obj/item/weapon/coilgun_assembly, 5, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("crude fishing rod", /obj/item/weapon/material/fishing_rod/built, 8, time = 10 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("wooden standup figure", /obj/structure/barricade/cutout, 5, time = 10 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]") //VOREStation Add
|
||||
recipes += new/datum/stack_recipe("noticeboard", /obj/structure/noticeboard, 1, recycle_material = "[name]")
|
||||
|
||||
/datum/material/wood/log/generate_recipes()
|
||||
recipes = list()
|
||||
recipes += new/datum/stack_recipe("bonfire", /obj/structure/bonfire, 5, time = 50, supplied_material = "[name]", pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("bonfire", /obj/structure/bonfire, 5, time = 50, supplied_material = "[name]", pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
|
||||
/datum/material/cardboard/generate_recipes()
|
||||
..()
|
||||
recipes += new/datum/stack_recipe("box", /obj/item/weapon/storage/box, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("donut box", /obj/item/weapon/storage/box/donut/empty, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("egg box", /obj/item/weapon/storage/fancy/egg_box, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("light tubes box", /obj/item/weapon/storage/box/lights/tubes, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("light bulbs box", /obj/item/weapon/storage/box/lights/bulbs, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("mouse traps box", /obj/item/weapon/storage/box/mousetraps, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("cardborg suit", /obj/item/clothing/suit/cardborg, 3, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("cardborg helmet", /obj/item/clothing/head/cardborg, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("pizza box", /obj/item/pizzabox, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("box", /obj/item/weapon/storage/box, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("donut box", /obj/item/weapon/storage/box/donut/empty, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("egg box", /obj/item/weapon/storage/fancy/egg_box, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("light tubes box", /obj/item/weapon/storage/box/lights/tubes, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("light bulbs box", /obj/item/weapon/storage/box/lights/bulbs, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("mouse traps box", /obj/item/weapon/storage/box/mousetraps, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("cardborg suit", /obj/item/clothing/suit/cardborg, 3, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("cardborg helmet", /obj/item/clothing/head/cardborg, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("pizza box", /obj/item/pizzabox, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe_list("folders",list( \
|
||||
new/datum/stack_recipe("blue folder", /obj/item/weapon/folder/blue), \
|
||||
new/datum/stack_recipe("grey folder", /obj/item/weapon/folder), \
|
||||
new/datum/stack_recipe("red folder", /obj/item/weapon/folder/red), \
|
||||
new/datum/stack_recipe("white folder", /obj/item/weapon/folder/white), \
|
||||
new/datum/stack_recipe("yellow folder", /obj/item/weapon/folder/yellow), \
|
||||
new/datum/stack_recipe("blue folder", /obj/item/weapon/folder/blue, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("grey folder", /obj/item/weapon/folder, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("red folder", /obj/item/weapon/folder/red, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("white folder", /obj/item/weapon/folder/white, recycle_material = "[name]"), \
|
||||
new/datum/stack_recipe("yellow folder", /obj/item/weapon/folder/yellow, recycle_material = "[name]"), \
|
||||
))
|
||||
|
||||
/datum/material/snow/generate_recipes()
|
||||
recipes = list()
|
||||
recipes += new/datum/stack_recipe("snowball", /obj/item/weapon/material/snow/snowball, 1, time = 10)
|
||||
recipes += new/datum/stack_recipe("snow brick", /obj/item/stack/material/snowbrick, 2, time = 10)
|
||||
recipes += new/datum/stack_recipe("snowman", /obj/structure/snowman, 2, time = 15)
|
||||
recipes += new/datum/stack_recipe("snow robot", /obj/structure/snowman/borg, 2, time = 10)
|
||||
recipes += new/datum/stack_recipe("snow spider", /obj/structure/snowman/spider, 3, time = 20)
|
||||
recipes += new/datum/stack_recipe("snowball", /obj/item/weapon/material/snow/snowball, 1, time = 10, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("snow brick", /obj/item/stack/material/snowbrick, 2, time = 10, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("snowman", /obj/structure/snowman, 2, time = 15, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("snow robot", /obj/structure/snowman/borg, 2, time = 10, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("snow spider", /obj/structure/snowman/spider, 3, time = 20, recycle_material = "[name]")
|
||||
|
||||
/datum/material/snowbrick/generate_recipes()
|
||||
recipes = list()
|
||||
@@ -221,54 +222,54 @@
|
||||
|
||||
/datum/material/supermatter/generate_recipes()
|
||||
recipes = list()
|
||||
recipes += new/datum/stack_recipe("supermatter shard", /obj/machinery/power/supermatter/shard, 30 , one_per_turf = 1, time = 600, on_floor = 1)
|
||||
recipes += new/datum/stack_recipe("supermatter shard", /obj/machinery/power/supermatter/shard, 30 , one_per_turf = 1, time = 600, on_floor = 1, recycle_material = "[name]")
|
||||
|
||||
/datum/material/cloth/generate_recipes()
|
||||
recipes = list()
|
||||
recipes += new/datum/stack_recipe("woven net", /obj/item/weapon/material/fishing_net, 10, time = 30 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("bedsheet", /obj/item/weapon/bedsheet, 10, time = 30 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("uniform", /obj/item/clothing/under/color/white, 8, time = 15 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("foot wraps", /obj/item/clothing/shoes/footwraps, 2, time = 5 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("gloves", /obj/item/clothing/gloves/white, 2, time = 5 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("wig", /obj/item/clothing/head/powdered_wig, 4, time = 10 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("philosopher's wig", /obj/item/clothing/head/philosopher_wig, 50, time = 2 MINUTES, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("taqiyah", /obj/item/clothing/head/taqiyah, 3, time = 6 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("turban", /obj/item/clothing/head/turban, 3, time = 6 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("hijab", /obj/item/clothing/head/hijab, 3, time = 6 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("kippa", /obj/item/clothing/head/kippa, 3, time = 6 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("scarf", /obj/item/clothing/accessory/scarf/white, 4, time = 5 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("baggy pants", /obj/item/clothing/under/pants/baggy/white, 8, time = 10 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("belt pouch", /obj/item/weapon/storage/belt/fannypack/white, 25, time = 1 MINUTE, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("crude bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("bedsheet", /obj/item/weapon/bedsheet, 10, time = 30 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("uniform", /obj/item/clothing/under/color/white, 8, time = 15 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("foot wraps", /obj/item/clothing/shoes/footwraps, 2, time = 5 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("gloves", /obj/item/clothing/gloves/white, 2, time = 5 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("wig", /obj/item/clothing/head/powdered_wig, 4, time = 10 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("philosopher's wig", /obj/item/clothing/head/philosopher_wig, 50, time = 2 MINUTES, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("taqiyah", /obj/item/clothing/head/taqiyah, 3, time = 6 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("turban", /obj/item/clothing/head/turban, 3, time = 6 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("hijab", /obj/item/clothing/head/hijab, 3, time = 6 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("kippa", /obj/item/clothing/head/kippa, 3, time = 6 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("scarf", /obj/item/clothing/accessory/scarf/white, 4, time = 5 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("baggy pants", /obj/item/clothing/under/pants/baggy/white, 8, time = 10 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("belt pouch", /obj/item/weapon/storage/belt/fannypack/white, 25, time = 1 MINUTE, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("crude bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("empty sandbag", /obj/item/stack/emptysandbag, 2, time = 2 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]")
|
||||
|
||||
/datum/material/resin/generate_recipes()
|
||||
recipes = list()
|
||||
recipes += new/datum/stack_recipe("[display_name] door", /obj/structure/simple_door/resin, 10, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("[display_name] barricade", /obj/effect/alien/resin/wall, 5, time = 5 SECONDS, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("[display_name] barricade", /obj/effect/alien/resin/wall, 5, time = 5 SECONDS, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("[display_name] nest", /obj/structure/bed/nest, 2, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("[display_name] wall girders", /obj/structure/girder/resin, 2, time = 5 SECONDS, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("crude [display_name] bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("crude [display_name] bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("[display_name] net", /obj/item/weapon/material/fishing_net, 10, time = 5 SECONDS, supplied_material = "[name]", pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("[display_name] membrane", /obj/effect/alien/resin/membrane, 1, time = 2 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("[display_name] node", /obj/effect/alien/weeds/node, 1, time = 4 SECONDS)
|
||||
recipes += new/datum/stack_recipe("[display_name] membrane", /obj/effect/alien/resin/membrane, 1, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("[display_name] node", /obj/effect/alien/weeds/node, 1, time = 4 SECONDS, recycle_material = "[name]")
|
||||
|
||||
/datum/material/leather/generate_recipes()
|
||||
recipes = list()
|
||||
recipes += new/datum/stack_recipe("bedsheet", /obj/item/weapon/bedsheet, 10, time = 30 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("uniform", /obj/item/clothing/under/color/white, 8, time = 15 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("foot wraps", /obj/item/clothing/shoes/footwraps, 2, time = 5 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("gloves", /obj/item/clothing/gloves/white, 2, time = 5 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("wig", /obj/item/clothing/head/powdered_wig, 4, time = 10 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("philosopher's wig", /obj/item/clothing/head/philosopher_wig, 50, time = 2 MINUTES, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("taqiyah", /obj/item/clothing/head/taqiyah, 3, time = 6 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("turban", /obj/item/clothing/head/turban, 3, time = 6 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("hijab", /obj/item/clothing/head/hijab, 3, time = 6 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("kippa", /obj/item/clothing/head/kippa, 3, time = 6 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("scarf", /obj/item/clothing/accessory/scarf/white, 4, time = 5 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("baggy pants", /obj/item/clothing/under/pants/baggy/white, 8, time = 10 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("belt pouch", /obj/item/weapon/storage/belt/fannypack/white, 25, time = 1 MINUTE, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("crude [display_name] bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("bedsheet", /obj/item/weapon/bedsheet, 10, time = 30 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("uniform", /obj/item/clothing/under/color/white, 8, time = 15 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("foot wraps", /obj/item/clothing/shoes/footwraps, 2, time = 5 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("gloves", /obj/item/clothing/gloves/white, 2, time = 5 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("wig", /obj/item/clothing/head/powdered_wig, 4, time = 10 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("philosopher's wig", /obj/item/clothing/head/philosopher_wig, 50, time = 2 MINUTES, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("taqiyah", /obj/item/clothing/head/taqiyah, 3, time = 6 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("turban", /obj/item/clothing/head/turban, 3, time = 6 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("hijab", /obj/item/clothing/head/hijab, 3, time = 6 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("kippa", /obj/item/clothing/head/kippa, 3, time = 6 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("scarf", /obj/item/clothing/accessory/scarf/white, 4, time = 5 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("baggy pants", /obj/item/clothing/under/pants/baggy/white, 8, time = 10 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("belt pouch", /obj/item/weapon/storage/belt/fannypack/white, 25, time = 1 MINUTE, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("crude [display_name] bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]")
|
||||
recipes += new/datum/stack_recipe("[display_name] net", /obj/item/weapon/material/fishing_net, 10, time = 5 SECONDS, supplied_material = "[name]", pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("[display_name] ring", /obj/item/clothing/gloves/ring/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE)
|
||||
recipes += new/datum/stack_recipe("[display_name] bracelet", /obj/item/clothing/accessory/bracelet/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE)
|
||||
|
||||
@@ -8,14 +8,11 @@
|
||||
desc = "It's a g-g-g-g-ghooooost!" //jinkies!
|
||||
icon = 'icons/mob/ghost.dmi'
|
||||
icon_state = "ghost"
|
||||
layer = BELOW_MOB_LAYER
|
||||
plane = PLANE_GHOSTS
|
||||
alpha = 127
|
||||
stat = DEAD
|
||||
canmove = 0
|
||||
blinded = 0
|
||||
anchored = 1 // don't get pushed around
|
||||
invisibility = INVISIBILITY_OBSERVER
|
||||
|
||||
var/can_reenter_corpse
|
||||
var/datum/hud/living/carbon/hud = null // hud
|
||||
var/bootime = 0
|
||||
@@ -90,27 +87,22 @@
|
||||
var/cleanup_timer // Refernece to a timer that will delete this mob if no client returns
|
||||
|
||||
/mob/observer/dead/New(mob/body)
|
||||
|
||||
appearance = body
|
||||
invisibility = INVISIBILITY_OBSERVER
|
||||
layer = BELOW_MOB_LAYER
|
||||
plane = PLANE_GHOSTS
|
||||
alpha = 127
|
||||
|
||||
sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF
|
||||
see_invisible = SEE_INVISIBLE_OBSERVER
|
||||
see_in_dark = world.view //I mean. I don't even know if byond has occlusion culling... but...
|
||||
plane = PLANE_GHOSTS //Why doesn't the var above work...???
|
||||
verbs += /mob/observer/dead/proc/dead_tele
|
||||
|
||||
var/turf/T
|
||||
if(ismob(body))
|
||||
T = get_turf(body) //Where is the body located?
|
||||
attack_log = body.attack_log //preserve our attack logs by copying them to our ghost
|
||||
|
||||
if (ishuman(body))
|
||||
var/mob/living/carbon/human/H = body
|
||||
icon = H.icon
|
||||
icon_state = H.icon_state
|
||||
add_overlay(H.overlays_standing) //All our equipment sprites
|
||||
else
|
||||
icon = body.icon
|
||||
icon_state = body.icon_state
|
||||
add_overlay(body.overlays)
|
||||
|
||||
gender = body.gender
|
||||
if(body.mind && body.mind.name)
|
||||
name = body.mind.name
|
||||
@@ -125,6 +117,12 @@
|
||||
|
||||
mind = body.mind //we don't transfer the mind but we keep a reference to it.
|
||||
|
||||
// Fix for naked ghosts.
|
||||
// Unclear why this isn't being grabbed by appearance.
|
||||
if(ishuman(body))
|
||||
var/mob/living/carbon/human/H = body
|
||||
overlays = H.overlays_standing
|
||||
|
||||
if(!T) T = pick(latejoin) //Safety in case we cannot find the body's position
|
||||
forceMove(T)
|
||||
|
||||
|
||||
@@ -500,7 +500,7 @@
|
||||
message = "points to [M]."
|
||||
else
|
||||
m_type = 1
|
||||
|
||||
|
||||
if("crack")
|
||||
if(!restrained())
|
||||
message = "cracks [T.his] knuckles."
|
||||
@@ -906,3 +906,27 @@
|
||||
HTML +="<a href='?src=\ref[src];flavor_change=done'>\[Done\]</a>"
|
||||
HTML += "<tt>"
|
||||
src << browse(HTML, "window=flavor_changes;size=430x300")
|
||||
|
||||
/mob/living/carbon/human/proc/toggle_tail(var/setting,var/message = 0)
|
||||
if(!tail_style || !tail_style.ani_state)
|
||||
if(message)
|
||||
to_chat(src, "<span class='warning'>You don't have a tail that supports this.</span>")
|
||||
return 0
|
||||
|
||||
var/new_wagging = isnull(setting) ? !wagging : setting
|
||||
if(new_wagging != wagging)
|
||||
wagging = new_wagging
|
||||
update_tail_showing()
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/human/proc/toggle_wing(var/setting,var/message = 0)
|
||||
if(!wing_style || !wing_style.ani_state)
|
||||
if(message)
|
||||
to_chat(src, "<span class='warning'>You don't have a wingtype that supports this.</span>")
|
||||
return 0
|
||||
|
||||
var/new_flapping = isnull(setting) ? !flapping : setting
|
||||
if(new_flapping != flapping)
|
||||
flapping = setting
|
||||
update_wing_showing()
|
||||
return 1
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
switch(act)
|
||||
if("vwag")
|
||||
if(toggle_tail_vr(message = 1))
|
||||
if(toggle_tail(message = 1))
|
||||
m_type = 1
|
||||
message = "[wagging ? "starts" : "stops"] wagging their tail."
|
||||
else
|
||||
return 1
|
||||
if("vflap")
|
||||
if(toggle_wing_vr(message = 1))
|
||||
if(toggle_wing(message = 1))
|
||||
m_type = 1
|
||||
message = "[flapping ? "starts" : "stops"] flapping their wings."
|
||||
else
|
||||
@@ -241,30 +241,6 @@
|
||||
density = original_density
|
||||
pass_flags = original_passflags
|
||||
|
||||
/mob/living/carbon/human/proc/toggle_tail_vr(var/setting,var/message = 0)
|
||||
if(!tail_style || !tail_style.ani_state)
|
||||
if(message)
|
||||
to_chat(src, "<span class='warning'>You don't have a tail that supports this.</span>")
|
||||
return 0
|
||||
|
||||
var/new_wagging = isnull(setting) ? !wagging : setting
|
||||
if(new_wagging != wagging)
|
||||
wagging = new_wagging
|
||||
update_tail_showing()
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/human/proc/toggle_wing_vr(var/setting,var/message = 0)
|
||||
if(!wing_style || !wing_style.ani_state)
|
||||
if(message)
|
||||
to_chat(src, "<span class='warning'>You don't have a tail that supports this.</span>")
|
||||
return 0
|
||||
|
||||
var/new_flapping = isnull(setting) ? !flapping : setting
|
||||
if(new_flapping != flapping)
|
||||
flapping = setting
|
||||
update_wing_showing()
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/human/verb/toggle_gender_identity_vr()
|
||||
set name = "Set Gender Identity"
|
||||
set desc = "Sets the pronouns when examined and performing an emote."
|
||||
|
||||
@@ -118,3 +118,42 @@
|
||||
|
||||
inventory_panel_type = /datum/inventory_panel/human
|
||||
butchery_loot = list(/obj/item/stack/animalhide/human = 1)
|
||||
|
||||
// Horray Furries!
|
||||
var/datum/sprite_accessory/ears/ear_style = null
|
||||
var/r_ears = 30
|
||||
var/g_ears = 30
|
||||
var/b_ears = 30
|
||||
var/r_ears2 = 30
|
||||
var/g_ears2 = 30
|
||||
var/b_ears2 = 30
|
||||
var/r_ears3 = 30 //Trust me, we could always use more colour. No japes.
|
||||
var/g_ears3 = 30
|
||||
var/b_ears3 = 30
|
||||
var/datum/sprite_accessory/tail/tail_style = null
|
||||
var/r_tail = 30
|
||||
var/g_tail = 30
|
||||
var/b_tail = 30
|
||||
var/r_tail2 = 30
|
||||
var/g_tail2 = 30
|
||||
var/b_tail2 = 30
|
||||
var/r_tail3 = 30
|
||||
var/g_tail3 = 30
|
||||
var/b_tail3 = 30
|
||||
var/datum/sprite_accessory/wing/wing_style = null
|
||||
var/r_wing = 30
|
||||
var/g_wing = 30
|
||||
var/b_wing = 30
|
||||
var/r_wing2 = 30
|
||||
var/g_wing2 = 30
|
||||
var/b_wing2 = 30
|
||||
var/r_wing3 = 30
|
||||
var/g_wing3 = 30
|
||||
var/b_wing3 = 30
|
||||
|
||||
var/wagging = 0 //UGH.
|
||||
var/flapping = 0
|
||||
|
||||
// Custom Species Name
|
||||
var/custom_species
|
||||
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
g_skin = 206
|
||||
b_skin = 179
|
||||
|
||||
var/wagging = 0 //UGH.
|
||||
var/flapping = 0
|
||||
var/vantag_pref = VANTAG_NONE //What's my status?
|
||||
var/impersonate_bodytype //For impersonating a bodytype
|
||||
var/ability_flags = 0 //Shadekin abilities/potentially other species-based?
|
||||
|
||||
@@ -258,6 +258,27 @@
|
||||
/datum/mob_descriptor/build
|
||||
)
|
||||
|
||||
//This is used in character setup preview generation (prefences_setup.dm) and human mob
|
||||
//rendering (update_icons.dm)
|
||||
var/color_mult = 0
|
||||
|
||||
//This is for overriding tail rendering with a specific icon in icobase, for static
|
||||
//tails only, since tails would wag when dead if you used this
|
||||
var/icobase_tail = 0
|
||||
|
||||
var/wing_hair
|
||||
var/wing
|
||||
var/wing_animation
|
||||
var/icobase_wing
|
||||
var/wikilink = null //link to wiki page for species
|
||||
var/icon_height = 32
|
||||
var/agility = 20 //prob() to do agile things
|
||||
|
||||
/datum/species/proc/update_attack_types()
|
||||
unarmed_attacks = list()
|
||||
for(var/u_type in unarmed_types)
|
||||
unarmed_attacks += new u_type()
|
||||
|
||||
/datum/species/New()
|
||||
if(hud_type)
|
||||
hud = new hud_type()
|
||||
@@ -401,8 +422,9 @@
|
||||
"<span class='notice'>[H] boops [target]'s nose.</span>", \
|
||||
"<span class='notice'>You boop [target] on the nose.</span>", )
|
||||
//VOREStation Edit End
|
||||
else H.visible_message("<span class='notice'>[H] hugs [target] to make [t_him] feel better!</span>", \
|
||||
"<span class='notice'>You hug [target] to make [t_him] feel better!</span>") //End VOREStation Edit
|
||||
else
|
||||
H.visible_message("<span class='notice'>[H] hugs [target] to make [t_him] feel better!</span>", \
|
||||
"<span class='notice'>You hug [target] to make [t_him] feel better!</span>")
|
||||
|
||||
/datum/species/proc/remove_inherent_verbs(var/mob/living/carbon/human/H)
|
||||
if(inherent_verbs)
|
||||
|
||||
@@ -1,25 +1,10 @@
|
||||
/datum/species
|
||||
//This is used in character setup preview generation (prefences_setup.dm) and human mob
|
||||
//rendering (update_icons.dm)
|
||||
var/color_mult = 0
|
||||
|
||||
//This is for overriding tail rendering with a specific icon in icobase, for static
|
||||
//tails only, since tails would wag when dead if you used this
|
||||
var/icobase_tail = 0
|
||||
|
||||
//This is so that if a race is using the chimera revive they can't use it more than once.
|
||||
//Shouldn't really be seen in play too often, but it's case an admin event happens and they give a non chimera the chimera revive. Only one person can use the chimera revive at a time per race.
|
||||
//var/reviving = 0 //commented out 'cause moved to mob
|
||||
holder_type = /obj/item/weapon/holder/micro //This allows you to pick up crew
|
||||
min_age = 18
|
||||
descriptors = list()
|
||||
var/wing_hair
|
||||
var/wing
|
||||
var/wing_animation
|
||||
var/icobase_wing
|
||||
var/wikilink = null //link to wiki page for species
|
||||
var/icon_height = 32
|
||||
var/agility = 20 //prob() to do agile things
|
||||
|
||||
var/organic_food_coeff = 1
|
||||
var/synthetic_food_coeff = 0
|
||||
@@ -39,11 +24,6 @@
|
||||
|
||||
var/list/traits = list()
|
||||
|
||||
/datum/species/proc/update_attack_types()
|
||||
unarmed_attacks = list()
|
||||
for(var/u_type in unarmed_types)
|
||||
unarmed_attacks += new u_type()
|
||||
|
||||
/datum/species/proc/give_numbing_bite() //Holy SHIT this is hacky, but it works. Updating a mob's attacks mid game is insane.
|
||||
unarmed_attacks = list()
|
||||
unarmed_types += /datum/unarmed_attack/bite/sharp/numbing
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
name = "Cold-Adapted"
|
||||
desc = "You are able to withstand much colder temperatures than other species, and can even be comfortable in extremely cold environments. You are also more vulnerable to hot environments, and have a lower body temperature as a consequence of these adaptations."
|
||||
cost = 0
|
||||
var_changes = list("cold_level_1" = 200, "cold_level_2" = 150, "cold_level_3" = 90, "breath_cold_level_1" = 180, "breath_cold_level_2" = 100, "breath_cold_level_3" = 60, "cold_discomfort_level" = 210, "heat_level_1" = 305, "heat_level_2" = 360, "heat_level_3" = 700, "breath_heat_level_1" = 345, "breath_heat_level_2" = 380, "breath_heat_level_3" = 780, "heat_discomfort_level" = 295, "body_temperature" = 290)
|
||||
var_changes = list("cold_level_1" = 200, "cold_level_2" = 150, "cold_level_3" = 90, "breath_cold_level_1" = 180, "breath_cold_level_2" = 100, "breath_cold_level_3" = 60, "cold_discomfort_level" = 210, "heat_level_1" = 330, "heat_level_2" = 380, "heat_level_3" = 700, "breath_heat_level_1" = 360, "breath_heat_level_2" = 400, "breath_heat_level_3" = 850, "heat_discomfort_level" = 295, "body_temperature" = 290)
|
||||
excludes = list(/datum/trait/hotadapt)
|
||||
|
||||
/datum/trait/hotadapt
|
||||
@@ -234,66 +234,73 @@ YW change end */
|
||||
|
||||
/datum/trait/allergy/meat
|
||||
name = "Allergy: Meat"
|
||||
desc = "You're highly allergic to just about any form of meat. You're probably better off just sticking to vegetables."
|
||||
desc = "You're highly allergic to just about any form of meat. You're probably better off just sticking to vegetables. NB: By taking this trait, you acknowledge there is a risk your character may suffer a fatal reaction if exposed to this substance."
|
||||
cost = 0
|
||||
custom_only = FALSE
|
||||
allergen = MEAT
|
||||
|
||||
/datum/trait/allergy/fish
|
||||
name = "Allergy: Fish"
|
||||
desc = "You're highly allergic to fish. It's probably best to avoid seafood in general..."
|
||||
desc = "You're highly allergic to fish. It's probably best to avoid seafood in general. NB: By taking this trait, you acknowledge there is a risk your character may suffer a fatal reaction if exposed to this substance."
|
||||
cost = 0
|
||||
custom_only = FALSE
|
||||
allergen = FISH
|
||||
|
||||
/datum/trait/allergy/fruit
|
||||
name = "Allergy: Fruit"
|
||||
desc = "You're highly allergic to fruit. Vegetables are fine, but you should probably read up on how to tell the difference."
|
||||
desc = "You're highly allergic to fruit. Vegetables are fine, but you should probably read up on how to tell the difference. Remember, tomatoes are a fruit. NB: By taking this trait, you acknowledge there is a risk your character may suffer a fatal reaction if exposed to this substance."
|
||||
cost = 0
|
||||
custom_only = FALSE
|
||||
allergen = FRUIT
|
||||
|
||||
/datum/trait/allergy/vegetable
|
||||
name = "Allergy: Vegetable"
|
||||
desc = "You're highly allergic to vegetables. Fruit are fine, but you should probably read up on how to tell the difference."
|
||||
desc = "You're highly allergic to vegetables. Fruit are fine, but you should probably read up on how to tell the difference. NB: By taking this trait, you acknowledge there is a risk your character may suffer a fatal reaction if exposed to this substance."
|
||||
cost = 0
|
||||
custom_only = FALSE
|
||||
allergen = VEGETABLE
|
||||
|
||||
/datum/trait/allergy/nuts
|
||||
name = "Allergy: Nuts"
|
||||
desc = "You're highly allergic to hard-shell seeds, such as peanuts."
|
||||
desc = "You're highly allergic to hard-shell seeds, such as peanuts. NB: By taking this trait, you acknowledge there is a risk your character may suffer a fatal reaction if exposed to this substance."
|
||||
cost = 0
|
||||
custom_only = FALSE
|
||||
allergen = SEEDS
|
||||
|
||||
/datum/trait/allergy/soy
|
||||
name = "Allergy: Soy"
|
||||
desc = "You're highly allergic to soybeans, and some other kinds of bean."
|
||||
desc = "You're highly allergic to soybeans, and some other kinds of bean. NB: By taking this trait, you acknowledge there is a risk your character may suffer a fatal reaction if exposed to this substance."
|
||||
cost = 0
|
||||
custom_only = FALSE
|
||||
allergen = BEANS
|
||||
|
||||
/datum/trait/allergy/dairy
|
||||
name = "Allergy: Lactose"
|
||||
desc = "You're highly allergic to lactose, and consequently, just about all forms of dairy."
|
||||
desc = "You're highly allergic to lactose, and consequently, just about all forms of dairy. NB: By taking this trait, you acknowledge there is a risk your character may suffer a fatal reaction if exposed to this substance."
|
||||
cost = 0
|
||||
custom_only = FALSE
|
||||
allergen = DAIRY
|
||||
|
||||
/datum/trait/allergy/fungi
|
||||
name = "Allergy: Fungi"
|
||||
desc = "You're highly allergic to Fungi such as mushrooms."
|
||||
desc = "You're highly allergic to fungi such as mushrooms. NB: By taking this trait, you acknowledge there is a risk your character may suffer a fatal reaction if exposed to this substance."
|
||||
cost = 0
|
||||
custom_only = FALSE
|
||||
allergen = FUNGI
|
||||
|
||||
/datum/trait/allergy/coffee
|
||||
name = "Allergy: Coffee"
|
||||
desc = "You're highly allergic to coffee in specific."
|
||||
desc = "You're highly allergic to coffee in specific. NB: By taking this trait, you acknowledge there is a risk your character may suffer a fatal reaction if exposed to this substance."
|
||||
cost = 0
|
||||
custom_only = FALSE
|
||||
allergen = COFFEE
|
||||
|
||||
/datum/trait/allergen_reduced_effect
|
||||
name = "Reduced Allergen Reaction"
|
||||
desc = "This trait halves the lethality of allergen reactions. If you don't have any allergens set, it does nothing. It does not apply to nonlethal reactions or special reactions (such as unathi drowsiness from sugars)."
|
||||
cost = 0
|
||||
custom_only = FALSE
|
||||
var_changes = list("allergen_damage_severity" = 0.6)
|
||||
|
||||
// Spicy Food Traits, from negative to positive.
|
||||
/datum/trait/spice_intolerance_extreme
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
var/global/list/human_icon_cache = list() //key is incredibly complex, see update_icons_body()
|
||||
var/global/list/tail_icon_cache = list() //key is [species.race_key][r_skin][g_skin][b_skin]
|
||||
var/global/list/wing_icon_cache = list() // See tail.
|
||||
var/global/list/light_overlay_cache = list() //see make_worn_icon() on helmets
|
||||
var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
|
||||
@@ -87,8 +88,8 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
#define LEGCUFF_LAYER 26 //Same as handcuffs, for legcuffs
|
||||
#define L_HAND_LAYER 27 //Left-hand item
|
||||
#define R_HAND_LAYER 28 //Right-hand item
|
||||
#define WING_LAYER 29 //VOREStation edit. Simply move this up a number if things are added.
|
||||
#define TAIL_LAYER_ALT 30 //VOREStation edit. Simply move this up a number if things are added.
|
||||
#define WING_LAYER 29 //Wings or protrusions over the suit.
|
||||
#define TAIL_LAYER_ALT 30 //Modified tail-sprite layer. Tend to be larger.
|
||||
#define MODIFIER_EFFECTS_LAYER 31 //Effects drawn by modifiers
|
||||
#define FIRE_LAYER 32 //'Mob on fire' overlay layer
|
||||
#define WATER_LAYER 33 //'Mob submerged' overlay layer
|
||||
@@ -197,7 +198,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
|
||||
// blend the individual damage states with our icons
|
||||
for(var/obj/item/organ/external/O in organs)
|
||||
if(isnull(O) || O.is_stump())
|
||||
if(isnull(O) || O.is_stump() || O.is_hidden_by_tail())
|
||||
continue
|
||||
|
||||
O.update_icon()
|
||||
@@ -267,21 +268,20 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
icon_key += "[rgb(part.s_col[1],part.s_col[2],part.s_col[3])]"
|
||||
if(part.body_hair && part.h_col && part.h_col.len >= 3)
|
||||
icon_key += "[rgb(part.h_col[1],part.h_col[2],part.h_col[3])]"
|
||||
//VOREStation Edit - Different way of tracking add/mult species
|
||||
if(species.color_mult)
|
||||
icon_key += "[ICON_MULTIPLY]"
|
||||
else
|
||||
icon_key += "[ICON_ADD]"
|
||||
//VOREStation Edit End
|
||||
else
|
||||
icon_key += "#000000"
|
||||
|
||||
for(var/M in part.markings)
|
||||
icon_key += "[M][part.markings[M]["color"]]"
|
||||
|
||||
if(part.robotic >= ORGAN_ROBOT)
|
||||
icon_key += "2[part.model ? "-[part.model]": ""]"
|
||||
robolimb_count++
|
||||
if((part.robotic == ORGAN_ROBOT || part.robotic == ORGAN_LIFELIKE) && (part.organ_tag == BP_HEAD || part.organ_tag == BP_TORSO || part.organ_tag == BP_GROIN)) //VOREStation Edit - Not for nanoform parts
|
||||
if((part.robotic == ORGAN_ROBOT || part.robotic == ORGAN_LIFELIKE) && (part.organ_tag == BP_HEAD || part.organ_tag == BP_TORSO || part.organ_tag == BP_GROIN))
|
||||
robobody_count ++
|
||||
else if(part.status & ORGAN_DEAD)
|
||||
icon_key += "3"
|
||||
@@ -327,7 +327,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
//That part makes left and right legs drawn topmost and lowermost when human looks WEST or EAST
|
||||
//And no change in rendering for other parts (they icon_position is 0, so goes to 'else' part)
|
||||
if(part.icon_position & (LEFT | RIGHT))
|
||||
var/icon/temp2 = new(species.icon_template ? species.icon_template : 'icons/mob/human.dmi', icon_state = "blank") //VOREStation Edit.
|
||||
var/icon/temp2 = new(species.icon_template ? species.icon_template : 'icons/mob/human.dmi', icon_state = "blank")
|
||||
temp2.Insert(new/icon(temp,dir=NORTH),dir=NORTH)
|
||||
temp2.Insert(new/icon(temp,dir=SOUTH),dir=SOUTH)
|
||||
if(!(part.icon_position & LEFT))
|
||||
@@ -368,7 +368,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
|
||||
//tail
|
||||
update_tail_showing()
|
||||
update_wing_showing() // VOREStation Edit
|
||||
update_wing_showing()
|
||||
|
||||
/mob/living/carbon/human/proc/update_skin()
|
||||
if(QDESTROYING(src))
|
||||
@@ -452,7 +452,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
if(facial_hair_style && facial_hair_style.species_allowed && (src.species.get_bodytype(src) in facial_hair_style.species_allowed))
|
||||
var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
|
||||
if(facial_hair_style.do_colouration)
|
||||
facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_MULTIPLY) //VOREStation edit
|
||||
facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_MULTIPLY)
|
||||
|
||||
face_standing.Blend(facial_s, ICON_OVERLAY)
|
||||
|
||||
@@ -478,22 +478,16 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
|
||||
face_standing.Blend(hair_s, ICON_OVERLAY)
|
||||
|
||||
// VOREStation Edit - START
|
||||
if(head_organ.nonsolid || head_organ.transparent)
|
||||
face_standing += rgb(,,,120)
|
||||
|
||||
var/icon/ears_s = get_ears_overlay()
|
||||
if(ears_s)
|
||||
face_standing.Blend(ears_s, ICON_OVERLAY)
|
||||
if(istype(head_organ,/obj/item/organ/external/head/vr))
|
||||
var/obj/item/organ/external/head/vr/head_organ_vr = head_organ
|
||||
overlays_standing[HAIR_LAYER] = image(face_standing, layer = BODY_LAYER+HAIR_LAYER, "pixel_y" = head_organ_vr.head_offset)
|
||||
apply_layer(HAIR_LAYER)
|
||||
return
|
||||
// VOREStation Edit - END
|
||||
|
||||
if(head_organ.transparent) //VOREStation Edit. For better slime limbs.
|
||||
face_standing += rgb(,,,120)
|
||||
|
||||
overlays_standing[HAIR_LAYER] = image(face_standing, layer = BODY_LAYER+HAIR_LAYER)
|
||||
overlays_standing[HAIR_LAYER] = image(face_standing, layer = BODY_LAYER+HAIR_LAYER, "pixel_y" = head_organ.head_offset)
|
||||
apply_layer(HAIR_LAYER)
|
||||
return
|
||||
|
||||
// VOREStation Edit - START
|
||||
var/icon/hair_acc_s = get_hair_accessory_overlay()
|
||||
@@ -647,14 +641,12 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
uniform_sprite = "[INV_W_UNIFORM_DEF_ICON].dmi"
|
||||
|
||||
//Build a uniform sprite
|
||||
//VOREStation Edit start.
|
||||
var/icon/c_mask = tail_style?.clip_mask
|
||||
if(c_mask)
|
||||
var/obj/item/clothing/suit/S = wear_suit
|
||||
if((wear_suit?.flags_inv & HIDETAIL) || (istype(S) && S.taurized)) // Reasons to not mask: 1. If you're wearing a suit that hides the tail or if you're wearing a taurized suit.
|
||||
c_mask = null
|
||||
overlays_standing[UNIFORM_LAYER] = w_uniform.make_worn_icon(body_type = species.get_bodytype(src), slot_name = slot_w_uniform_str, default_icon = uniform_sprite, default_layer = UNIFORM_LAYER, clip_mask = c_mask)
|
||||
//VOREStation Edit end.
|
||||
apply_layer(UNIFORM_LAYER)
|
||||
|
||||
/mob/living/carbon/human/update_inv_wear_id()
|
||||
@@ -736,7 +728,6 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
if(!shoes || (wear_suit && wear_suit.flags_inv & HIDESHOES) || (w_uniform && w_uniform.flags_inv & HIDESHOES))
|
||||
return //Either nothing to draw, or it'd be hidden.
|
||||
|
||||
//VOREStation Edit
|
||||
for(var/f in list(BP_L_FOOT, BP_R_FOOT))
|
||||
var/obj/item/organ/external/foot/foot = get_organ(f)
|
||||
if(istype(foot) && foot.is_hidden_by_tail()) //If either foot is hidden by the tail, don't render footwear.
|
||||
@@ -818,7 +809,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
update_inv_w_uniform()
|
||||
update_inv_shoes()
|
||||
update_tail_showing()
|
||||
update_wing_showing() // VOREStation Edit
|
||||
update_wing_showing()
|
||||
|
||||
if(!wear_suit)
|
||||
return //No point, no suit.
|
||||
@@ -833,7 +824,6 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
else
|
||||
suit_sprite = "[INV_SUIT_DEF_ICON].dmi"
|
||||
|
||||
//VOREStation Edit start.
|
||||
var/icon/c_mask = null
|
||||
var/tail_is_rendered = (overlays_standing[TAIL_LAYER] || overlays_standing[TAIL_LAYER_ALT])
|
||||
var/valid_clip_mask = tail_style?.clip_mask
|
||||
@@ -842,8 +832,6 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
c_mask = valid_clip_mask
|
||||
overlays_standing[SUIT_LAYER] = wear_suit.make_worn_icon(body_type = species.get_bodytype(src), slot_name = slot_wear_suit_str, default_icon = suit_sprite, default_layer = SUIT_LAYER, clip_mask = c_mask)
|
||||
|
||||
//VOREStation Edit end.
|
||||
|
||||
apply_layer(SUIT_LAYER)
|
||||
|
||||
/mob/living/carbon/human/update_inv_pockets()
|
||||
@@ -955,24 +943,23 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
return
|
||||
|
||||
remove_layer(TAIL_LAYER)
|
||||
remove_layer(TAIL_LAYER_ALT) // VOREStation Edit - START - Alt Tail Layer
|
||||
remove_layer(TAIL_LAYER_ALT) // Alt Tail Layer
|
||||
|
||||
var/used_tail_layer = tail_alt ? TAIL_LAYER_ALT : TAIL_LAYER
|
||||
|
||||
var/image/vr_tail_image = get_tail_image()
|
||||
if(vr_tail_image)
|
||||
vr_tail_image.layer = BODY_LAYER+used_tail_layer
|
||||
overlays_standing[used_tail_layer] = vr_tail_image
|
||||
var/image/tail_image = get_tail_image()
|
||||
if(tail_image)
|
||||
tail_image.layer = BODY_LAYER+used_tail_layer
|
||||
overlays_standing[used_tail_layer] = tail_image
|
||||
apply_layer(used_tail_layer)
|
||||
return
|
||||
// VOREStation Edit - END
|
||||
|
||||
var/species_tail = species.get_tail(src) // Species tail icon_state prefix.
|
||||
|
||||
//This one is actually not that bad I guess.
|
||||
if(species_tail && !(wear_suit && wear_suit.flags_inv & HIDETAIL))
|
||||
var/icon/tail_s = get_tail_icon()
|
||||
overlays_standing[used_tail_layer] = image(icon = tail_s, icon_state = "[species_tail]_s", layer = BODY_LAYER+used_tail_layer) // VOREStation Edit - Alt Tail Layer
|
||||
overlays_standing[used_tail_layer] = image(icon = tail_s, icon_state = "[species_tail]_s", layer = BODY_LAYER+used_tail_layer) // Alt Tail Layer
|
||||
animate_tail_reset()
|
||||
|
||||
//TODO: Is this the appropriate place for this, and not on species...?
|
||||
@@ -982,22 +969,22 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
if(!tail_icon)
|
||||
//generate a new one
|
||||
var/species_tail_anim = species.get_tail_animation(src)
|
||||
if(!species_tail_anim && species.icobase_tail) species_tail_anim = species.icobase //VOREStation Code - Allow override of file for non-animated tails
|
||||
if(!species_tail_anim && species.icobase_tail) species_tail_anim = species.icobase //Allow override of file for non-animated tails
|
||||
if(!species_tail_anim) species_tail_anim = 'icons/effects/species.dmi'
|
||||
tail_icon = new/icon(species_tail_anim)
|
||||
tail_icon.Blend(rgb(r_skin, g_skin, b_skin), species.color_mult ? ICON_MULTIPLY : ICON_ADD) // VOREStation edit
|
||||
tail_icon.Blend(rgb(r_skin, g_skin, b_skin), species.color_mult ? ICON_MULTIPLY : ICON_ADD)
|
||||
// The following will not work with animated tails.
|
||||
var/use_species_tail = species.get_tail_hair(src)
|
||||
if(use_species_tail)
|
||||
var/icon/hair_icon = icon('icons/effects/species.dmi', "[species.get_tail(src)]_[use_species_tail]_s") //VOREStation edit -- Suffix icon state string with '_s' to compensate for diff in .dmi b/w us & Polaris.
|
||||
hair_icon.Blend(rgb(r_hair, g_hair, b_hair), species.color_mult ? ICON_MULTIPLY : ICON_ADD) //VOREStation edit -- Check for species color_mult
|
||||
var/icon/hair_icon = icon('icons/effects/species.dmi', "[species.get_tail(src)]_[use_species_tail]")
|
||||
hair_icon.Blend(rgb(r_hair, g_hair, b_hair), species.color_mult ? ICON_MULTIPLY : ICON_ADD) //Check for species color_mult
|
||||
tail_icon.Blend(hair_icon, ICON_OVERLAY)
|
||||
tail_icon_cache[icon_key] = tail_icon
|
||||
|
||||
return tail_icon
|
||||
|
||||
/mob/living/carbon/human/proc/set_tail_state(var/t_state)
|
||||
var/used_tail_layer = tail_alt ? TAIL_LAYER_ALT : TAIL_LAYER // VOREStation Edit - START - Alt Tail Layer
|
||||
var/used_tail_layer = tail_alt ? TAIL_LAYER_ALT : TAIL_LAYER // Alt Tail Layer
|
||||
var/image/tail_overlay = overlays_standing[used_tail_layer]
|
||||
|
||||
remove_layer(TAIL_LAYER)
|
||||
@@ -1009,7 +996,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
tail_overlay.icon_state = t_state
|
||||
. = tail_overlay
|
||||
|
||||
apply_layer(used_tail_layer) // VOREStation Edit - END
|
||||
apply_layer(used_tail_layer)
|
||||
|
||||
//Not really once, since BYOND can't do that.
|
||||
//Update this if the ability to flick() images or make looping animation start at the first frame is ever added.
|
||||
@@ -1019,9 +1006,9 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
return
|
||||
|
||||
var/t_state = "[species.get_tail(src)]_once"
|
||||
var/used_tail_layer = tail_alt ? TAIL_LAYER_ALT : TAIL_LAYER // VOREStation Edit - Alt Tail Layer
|
||||
var/used_tail_layer = tail_alt ? TAIL_LAYER_ALT : TAIL_LAYER // Alt Tail Layer
|
||||
|
||||
var/image/tail_overlay = overlays_standing[used_tail_layer] // VOREStation Edit - Alt Tail Layer
|
||||
var/image/tail_overlay = overlays_standing[used_tail_layer] // Alt Tail Layer
|
||||
if(tail_overlay && tail_overlay.icon_state == t_state)
|
||||
return //let the existing animation finish
|
||||
|
||||
@@ -1029,7 +1016,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
if(tail_overlay)
|
||||
spawn(20)
|
||||
//check that the animation hasn't changed in the meantime
|
||||
if(overlays_standing[used_tail_layer] == tail_overlay && tail_overlay.icon_state == t_state) // VOREStation Edit - Alt Tail Layer
|
||||
if(overlays_standing[used_tail_layer] == tail_overlay && tail_overlay.icon_state == t_state) // Alt Tail Layer
|
||||
animate_tail_stop()
|
||||
|
||||
/mob/living/carbon/human/proc/animate_tail_start()
|
||||
@@ -1052,7 +1039,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
set_tail_state("[species.get_tail(src)]_idle[rand(0,9)]")
|
||||
else
|
||||
set_tail_state("[species.get_tail(src)]_static")
|
||||
toggle_tail_vr(FALSE) //VOREStation Add - So tails stop when someone dies. TODO - Fix this hack ~Leshana
|
||||
toggle_tail(FALSE) //So tails stop when someone dies. TODO - Fix this hack ~Leshana
|
||||
|
||||
/mob/living/carbon/human/proc/animate_tail_stop()
|
||||
if(QDESTROYING(src))
|
||||
@@ -1060,20 +1047,18 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
|
||||
set_tail_state("[species.get_tail(src)]_static")
|
||||
|
||||
// VOREStation Edit - Wings! See update_icons_vr.dm for more wing procs
|
||||
/mob/living/carbon/human/proc/update_wing_showing()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
|
||||
remove_layer(WING_LAYER)
|
||||
|
||||
var/image/vr_wing_image = get_wing_image()
|
||||
if(vr_wing_image)
|
||||
vr_wing_image.layer = BODY_LAYER+WING_LAYER
|
||||
overlays_standing[WING_LAYER] = vr_wing_image
|
||||
var/image/wing_image = get_wing_image()
|
||||
if(wing_image)
|
||||
wing_image.layer = BODY_LAYER+WING_LAYER
|
||||
overlays_standing[WING_LAYER] = wing_image
|
||||
|
||||
apply_layer(WING_LAYER)
|
||||
// VOREStation Edit end
|
||||
|
||||
/mob/living/carbon/human/update_modifier_visuals()
|
||||
if(QDESTROYING(src))
|
||||
@@ -1140,6 +1125,117 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
||||
overlays_standing[SURGERY_LAYER] = total
|
||||
apply_layer(SURGERY_LAYER)
|
||||
|
||||
/mob/living/carbon/human/proc/get_wing_image()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
|
||||
//If you are FBP with wing style and didn't set a custom one
|
||||
if(synthetic && synthetic.includes_wing && !wing_style)
|
||||
var/icon/wing_s = new/icon("icon" = synthetic.icon, "icon_state" = "wing") //I dunno. If synths have some custom wing?
|
||||
wing_s.Blend(rgb(src.r_skin, src.g_skin, src.b_skin), species.color_mult ? ICON_MULTIPLY : ICON_ADD)
|
||||
return image(wing_s)
|
||||
|
||||
//If you have custom wings selected
|
||||
if(wing_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL))
|
||||
var/icon/wing_s = new/icon("icon" = wing_style.icon, "icon_state" = flapping && wing_style.ani_state ? wing_style.ani_state : wing_style.icon_state)
|
||||
if(wing_style.do_colouration)
|
||||
wing_s.Blend(rgb(src.r_wing, src.g_wing, src.b_wing), wing_style.color_blend_mode)
|
||||
if(wing_style.extra_overlay)
|
||||
var/icon/overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay)
|
||||
overlay.Blend(rgb(src.r_wing2, src.g_wing2, src.b_wing2), wing_style.color_blend_mode)
|
||||
wing_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
if(wing_style.extra_overlay2)
|
||||
var/icon/overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay2)
|
||||
if(wing_style.ani_state)
|
||||
overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay2_w)
|
||||
overlay.Blend(rgb(src.r_wing3, src.g_wing3, src.b_wing3), wing_style.color_blend_mode)
|
||||
wing_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
else
|
||||
overlay.Blend(rgb(src.r_wing3, src.g_wing3, src.b_wing3), wing_style.color_blend_mode)
|
||||
wing_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
return image(wing_s)
|
||||
|
||||
/mob/living/carbon/human/proc/get_ears_overlay()
|
||||
if(ear_style && !(head && (head.flags_inv & BLOCKHEADHAIR)))
|
||||
var/icon/ears_s = new/icon("icon" = ear_style.icon, "icon_state" = ear_style.icon_state)
|
||||
if(ear_style.do_colouration)
|
||||
ears_s.Blend(rgb(src.r_ears, src.g_ears, src.b_ears), ear_style.color_blend_mode)
|
||||
if(ear_style.extra_overlay)
|
||||
var/icon/overlay = new/icon("icon" = ear_style.icon, "icon_state" = ear_style.extra_overlay)
|
||||
overlay.Blend(rgb(src.r_ears2, src.g_ears2, src.b_ears2), ear_style.color_blend_mode)
|
||||
ears_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
if(ear_style.extra_overlay2) //MORE COLOURS IS BETTERER
|
||||
var/icon/overlay = new/icon("icon" = ear_style.icon, "icon_state" = ear_style.extra_overlay2)
|
||||
overlay.Blend(rgb(src.r_ears3, src.g_ears3, src.b_ears3), ear_style.color_blend_mode)
|
||||
ears_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
return ears_s
|
||||
return null
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/get_tail_image()
|
||||
//If you are FBP with tail style and didn't set a custom one
|
||||
var/datum/robolimb/model = isSynthetic()
|
||||
if(istype(model) && model.includes_tail && !tail_style)
|
||||
var/icon/tail_s = new/icon("icon" = synthetic.icon, "icon_state" = "tail")
|
||||
tail_s.Blend(rgb(src.r_skin, src.g_skin, src.b_skin), species.color_mult ? ICON_MULTIPLY : ICON_ADD)
|
||||
return image(tail_s)
|
||||
|
||||
//If you have a custom tail selected
|
||||
if(tail_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL && !isTaurTail(tail_style)))
|
||||
var/icon/tail_s = new/icon("icon" = tail_style.icon, "icon_state" = wagging && tail_style.ani_state ? tail_style.ani_state : tail_style.icon_state)
|
||||
if(tail_style.do_colouration)
|
||||
tail_s.Blend(rgb(src.r_tail, src.g_tail, src.b_tail), tail_style.color_blend_mode)
|
||||
if(tail_style.extra_overlay)
|
||||
var/icon/overlay = new/icon("icon" = tail_style.icon, "icon_state" = tail_style.extra_overlay)
|
||||
if(wagging && tail_style.ani_state)
|
||||
overlay = new/icon("icon" = tail_style.icon, "icon_state" = tail_style.extra_overlay_w)
|
||||
overlay.Blend(rgb(src.r_tail2, src.g_tail2, src.b_tail2), tail_style.color_blend_mode)
|
||||
tail_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
else
|
||||
overlay.Blend(rgb(src.r_tail2, src.g_tail2, src.b_tail2), tail_style.color_blend_mode)
|
||||
tail_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
|
||||
if(tail_style.extra_overlay2)
|
||||
var/icon/overlay = new/icon("icon" = tail_style.icon, "icon_state" = tail_style.extra_overlay2)
|
||||
if(wagging && tail_style.ani_state)
|
||||
overlay = new/icon("icon" = tail_style.icon, "icon_state" = tail_style.extra_overlay2_w)
|
||||
overlay.Blend(rgb(src.r_tail3, src.g_tail3, src.b_tail3), tail_style.color_blend_mode)
|
||||
tail_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
else
|
||||
overlay.Blend(rgb(src.r_tail3, src.g_tail3, src.b_tail3), tail_style.color_blend_mode)
|
||||
tail_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
|
||||
if(isTaurTail(tail_style))
|
||||
var/datum/sprite_accessory/tail/taur/taurtype = tail_style
|
||||
if(taurtype.can_ride && !riding_datum)
|
||||
riding_datum = new /datum/riding/taur(src)
|
||||
verbs |= /mob/living/carbon/human/proc/taur_mount
|
||||
verbs |= /mob/living/proc/toggle_rider_reins
|
||||
return image(tail_s, "pixel_x" = -16)
|
||||
else
|
||||
return image(tail_s)
|
||||
return null
|
||||
|
||||
// TODO - Move this to where it should go ~Leshana
|
||||
/mob/living/proc/stop_flying()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
flying = FALSE
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/human/stop_flying()
|
||||
if((. = ..()))
|
||||
update_wing_showing()
|
||||
|
||||
//Human Overlays Indexes/////////
|
||||
#undef MUTATIONS_LAYER
|
||||
#undef SKIN_LAYER
|
||||
|
||||
@@ -73,5 +73,10 @@
|
||||
|
||||
var/image/selected_image = null // Used for buildmode AI control stuff.
|
||||
|
||||
var/allow_self_surgery = FALSE // Used to determine if the mob can perform surgery on itself.
|
||||
|
||||
|
||||
var/tail_alt = 0
|
||||
var/flying = 0 // Allows flight
|
||||
var/inventory_panel_type = /datum/inventory_panel
|
||||
var/datum/inventory_panel/inventory_panel
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/mob/living/Check_Shoegrip()
|
||||
if(flying)
|
||||
return 1
|
||||
..()
|
||||
|
||||
/mob/living/verb/customsay()
|
||||
set category = "IC"
|
||||
set name = "Customize Speech Verbs"
|
||||
@@ -24,23 +29,6 @@
|
||||
else
|
||||
return
|
||||
|
||||
/mob/living/proc/toggle_rider_reins()
|
||||
set name = "Give Reins"
|
||||
set category = "Abilities"
|
||||
set desc = "Let people riding on you control your movement."
|
||||
|
||||
if(riding_datum)
|
||||
if(istype(riding_datum,/datum/riding))
|
||||
if(riding_datum.keytype)
|
||||
riding_datum.keytype = null
|
||||
to_chat(src, "Rider control enabled.")
|
||||
return
|
||||
else
|
||||
riding_datum.keytype = /obj/item/weapon/material/twohanded/fluff/riding_crop
|
||||
to_chat(src, "Rider control restricted.")
|
||||
return
|
||||
return
|
||||
|
||||
/mob/living/verb/set_metainfo()
|
||||
set name = "Set OOC Metainfo"
|
||||
set desc = "Sets OOC notes about yourself or your RP preferences or status."
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
/mob/living/proc/toggle_rider_reins()
|
||||
set name = "Give Reins"
|
||||
set category = "Abilities"
|
||||
set desc = "Let people riding on you control your movement."
|
||||
|
||||
if(riding_datum)
|
||||
if(istype(riding_datum,/datum/riding))
|
||||
if(riding_datum.keytype)
|
||||
riding_datum.keytype = null
|
||||
to_chat(src, "Rider control enabled.")
|
||||
return
|
||||
else
|
||||
riding_datum.keytype = /obj/item/weapon/material/twohanded/riding_crop
|
||||
to_chat(src, "Rider control restricted.")
|
||||
return
|
||||
return
|
||||
@@ -907,18 +907,21 @@
|
||||
if(!module_state_1)
|
||||
module_state_1 = O
|
||||
O.hud_layerise()
|
||||
O.equipped_robot()
|
||||
contents += O
|
||||
if(istype(module_state_1,/obj/item/borg/sight))
|
||||
sight_mode |= module_state_1:sight_mode
|
||||
else if(!module_state_2)
|
||||
module_state_2 = O
|
||||
O.hud_layerise()
|
||||
O.equipped_robot()
|
||||
contents += O
|
||||
if(istype(module_state_2,/obj/item/borg/sight))
|
||||
sight_mode |= module_state_2:sight_mode
|
||||
else if(!module_state_3)
|
||||
module_state_3 = O
|
||||
O.hud_layerise()
|
||||
O.equipped_robot()
|
||||
contents += O
|
||||
if(istype(module_state_3,/obj/item/borg/sight))
|
||||
sight_mode |= module_state_3:sight_mode
|
||||
|
||||
@@ -712,7 +712,8 @@
|
||||
R.wideborg = TRUE
|
||||
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
|
||||
R.verbs |= /mob/living/silicon/robot/proc/robot_mount
|
||||
// R.verbs |= /mob/living/proc/shred_limb - YW Edit
|
||||
R.verbs |= /mob/living/proc/toggle_rider_reins
|
||||
R.verbs |= /mob/living/proc/shred_limb
|
||||
R.verbs |= /mob/living/silicon/robot/proc/rest_style
|
||||
..()
|
||||
|
||||
@@ -789,6 +790,8 @@
|
||||
R.wideborg = TRUE
|
||||
R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill
|
||||
R.verbs |= /mob/living/silicon/robot/proc/robot_mount
|
||||
R.verbs |= /mob/living/proc/toggle_rider_reins
|
||||
R.verbs |= /mob/living/proc/shred_limb
|
||||
R.verbs |= /mob/living/silicon/robot/proc/rest_style
|
||||
..()
|
||||
|
||||
|
||||
@@ -145,9 +145,10 @@
|
||||
if(custom_sprite == TRUE)
|
||||
return
|
||||
if(wideborg == TRUE)
|
||||
if(icontype== "Drake") // Why, Why can't we have normal nice things
|
||||
|
||||
if(icontype == "Drake") // Why, Why can't we have normal nice things
|
||||
icon = 'icons/mob/drakeborg/drakeborg_vr.dmi'
|
||||
else if(icontype == "SecVale" || icontype == "vale2") //CH edit
|
||||
icon = 'icons/mob/widerobot_vr.dmi'
|
||||
else
|
||||
icon = wideborg_dept
|
||||
return
|
||||
@@ -176,7 +177,7 @@
|
||||
|
||||
//RIDING
|
||||
/datum/riding/dogborg
|
||||
keytype = /obj/item/weapon/material/twohanded/fluff/riding_crop // Crack!
|
||||
keytype = /obj/item/weapon/material/twohanded/riding_crop // Crack!
|
||||
nonhuman_key_exemption = FALSE // If true, nonhumans who can't hold keys don't need them, like borgs and simplemobs.
|
||||
key_name = "a riding crop" // What the 'keys' for the thing being rided on would be called.
|
||||
only_one_driver = TRUE // If true, only the person in 'front' (first on list of riding mobs) can drive.
|
||||
|
||||
@@ -277,7 +277,7 @@
|
||||
|
||||
// Riding
|
||||
/datum/riding/simple_mob
|
||||
keytype = /obj/item/weapon/material/twohanded/fluff/riding_crop // Crack!
|
||||
keytype = /obj/item/weapon/material/twohanded/riding_crop // Crack!
|
||||
nonhuman_key_exemption = FALSE // If true, nonhumans who can't hold keys don't need them, like borgs and simplemobs.
|
||||
key_name = "a riding crop" // What the 'keys' for the thing being rided on would be called.
|
||||
only_one_driver = TRUE // If true, only the person in 'front' (first on list of riding mobs) can drive.
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
item_state = "mouse_gray"
|
||||
icon_living = "mouse_gray"
|
||||
icon_dead = "mouse_gray_dead"
|
||||
kitchen_tag = "rodent"
|
||||
|
||||
maxHealth = 5
|
||||
health = 5
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/mob
|
||||
var/vantag_hud = 0 // Do I have the HUD enabled?
|
||||
var/flying = 0 // Allows flight
|
||||
var/mob/temporary_form // For holding onto a temporary form
|
||||
|
||||
var/disconnect_time = null //Time of client loss, set by Logout(), for timekeeping
|
||||
|
||||
@@ -460,8 +460,6 @@
|
||||
return dense_object
|
||||
|
||||
/mob/proc/Check_Shoegrip()
|
||||
if(flying) //VOREStation Edit. Checks to see if they and are flying.
|
||||
return 1 //VOREStation Edit. Checks to see if they are flying. Mostly for this to be ported to Polaris.
|
||||
return 0
|
||||
|
||||
/mob/proc/Process_Spaceslipping(var/prob_slip = 5)
|
||||
|
||||
@@ -252,6 +252,8 @@
|
||||
|
||||
/datum/preferences/proc/update_preview_icon()
|
||||
var/mob/living/carbon/human/dummy/mannequin/mannequin = get_mannequin(client_ckey)
|
||||
if(!mannequin.dna) // Special handling for preview icons before SSAtoms has initailized.
|
||||
mannequin.dna = new /datum/dna(null)
|
||||
mannequin.delete_inventory(TRUE)
|
||||
dress_preview_mob(mannequin)
|
||||
mannequin.update_transform() //VOREStation Edit to update size/shape stuff.
|
||||
|
||||
@@ -1,16 +1,3 @@
|
||||
/datum/preferences/update_preview_icon() // Lines up and un-overlaps character edit previews. Also un-splits taurs.
|
||||
var/mob/living/carbon/human/dummy/mannequin/mannequin = get_mannequin(client_ckey)
|
||||
if(!mannequin.dna) // Special handling for preview icons before SSAtoms has initailized.
|
||||
mannequin.dna = new /datum/dna(null)
|
||||
mannequin.delete_inventory(TRUE)
|
||||
dress_preview_mob(mannequin)
|
||||
mannequin.update_transform()
|
||||
mannequin.toggle_tail_vr(setting = TRUE)
|
||||
mannequin.toggle_wing_vr(setting = TRUE)
|
||||
COMPILE_OVERLAYS(mannequin)
|
||||
|
||||
update_character_previews(new /mutable_appearance(mannequin))
|
||||
|
||||
//TFF 5/8/19 - add randomised sensor setting for random button clicking
|
||||
/datum/preferences/randomize_appearance_and_body_for(var/mob/living/carbon/human/H)
|
||||
sensorpref = rand(1,5)
|
||||
@@ -1708,23 +1708,23 @@ shaved
|
||||
/datum/sprite_accessory/hair/skr_tentacle_veryshort
|
||||
name = "Skrell Short Tentacles"
|
||||
icon_state = "skrell_hair_short"
|
||||
species_allowed = list(SPECIES_SKRELL)
|
||||
species_allowed = list(SPECIES_SKRELL, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/hair/skr_tentacle_short
|
||||
name = "Skrell Average Tentacles"
|
||||
icon_state = "skrell_hair_average"
|
||||
species_allowed = list(SPECIES_SKRELL)
|
||||
species_allowed = list(SPECIES_SKRELL, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/hair/skr_tentacle_average
|
||||
name = "Skrell Long Tentacles"
|
||||
icon_state = "skrell_hair_long"
|
||||
species_allowed = list(SPECIES_SKRELL)
|
||||
species_allowed = list(SPECIES_SKRELL, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/hair/skr_tentacle_verylong
|
||||
name = "Skrell Very Long Tentacles"
|
||||
icon_state = "skrell_hair_verylong"
|
||||
species_allowed = list(SPECIES_SKRELL)
|
||||
species_allowed = list(SPECIES_SKRELL, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
//Tajaran hairstyles
|
||||
/datum/sprite_accessory/hair/taj_ears
|
||||
@@ -2006,6 +2006,8 @@ shaved
|
||||
//like Tajaran inner-ear coloring overlay stuff.
|
||||
species_allowed = list()
|
||||
|
||||
color_blend_mode = ICON_ADD
|
||||
|
||||
var/body_parts = list() //A list of bodyparts this covers, in organ_tag defines
|
||||
//Reminder: BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD
|
||||
|
||||
|
||||
@@ -0,0 +1,489 @@
|
||||
/*
|
||||
////////////////////////////
|
||||
/ =--------------------= /
|
||||
/ == Ear Definitions == /
|
||||
/ =--------------------= /
|
||||
////////////////////////////
|
||||
*/
|
||||
/datum/sprite_accessory/ears
|
||||
name = "You should not see this..."
|
||||
icon = 'icons/mob/human_races/sprite_accessories/ears.dmi'
|
||||
do_colouration = 0 // Set to 1 to blend (ICON_ADD) hair color
|
||||
|
||||
color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1
|
||||
var/extra_overlay // Icon state of an additional overlay to blend in.
|
||||
var/extra_overlay2
|
||||
var/desc = "You should not see this..."
|
||||
|
||||
species_allowed = list(SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/ears/shadekin
|
||||
name = "Shadekin Ears, colorable"
|
||||
desc = ""
|
||||
icon_state = "shadekin"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
apply_restrictions = TRUE
|
||||
|
||||
/datum/sprite_accessory/ears/taj_ears
|
||||
name = "Tajaran Ears"
|
||||
icon_state = "ears_plain"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
species_allowed = list(SPECIES_TAJ, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
extra_overlay = "ears_plain-inner"
|
||||
|
||||
/datum/sprite_accessory/ears/taj_ears_tall
|
||||
name = "Tajaran Tall Ears"
|
||||
icon_state = "msai_plain"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
species_allowed = list(SPECIES_TAJ, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
extra_overlay = "msai_plain-inner"
|
||||
|
||||
/datum/sprite_accessory/ears/squirrel_orange
|
||||
name = "squirel, orange"
|
||||
desc = ""
|
||||
icon_state = "squirrel-orange"
|
||||
|
||||
/datum/sprite_accessory/ears/squirrel_red
|
||||
name = "squirrel, red"
|
||||
desc = ""
|
||||
icon_state = "squirrel-red"
|
||||
|
||||
/datum/sprite_accessory/ears/bunny_white
|
||||
name = "bunny, white"
|
||||
desc = ""
|
||||
icon_state = "bunny"
|
||||
|
||||
/datum/sprite_accessory/ears/bear_brown
|
||||
name = "bear, brown"
|
||||
desc = ""
|
||||
icon_state = "bear-brown"
|
||||
|
||||
/datum/sprite_accessory/ears/bear_panda
|
||||
name = "bear, panda"
|
||||
desc = ""
|
||||
icon_state = "panda"
|
||||
|
||||
/datum/sprite_accessory/ears/wolf_grey
|
||||
name = "wolf, grey"
|
||||
desc = ""
|
||||
icon_state = "wolf-grey"
|
||||
|
||||
/datum/sprite_accessory/ears/wolf_green
|
||||
name = "wolf, green"
|
||||
desc = ""
|
||||
icon_state = "wolf-green"
|
||||
|
||||
/datum/sprite_accessory/ears/wisewolf
|
||||
name = "wolf, wise"
|
||||
desc = ""
|
||||
icon_state = "wolf-wise"
|
||||
|
||||
/datum/sprite_accessory/ears/mouse_grey
|
||||
name = "mouse, grey"
|
||||
desc = ""
|
||||
icon_state = "mouse-grey"
|
||||
|
||||
/datum/sprite_accessory/ears/bee
|
||||
name = "bee antennae"
|
||||
desc = ""
|
||||
icon_state = "bee"
|
||||
|
||||
/datum/sprite_accessory/ears/antennae
|
||||
name = "antennae, colorable"
|
||||
desc = ""
|
||||
icon_state = "antennae"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/curly_bug
|
||||
name = "curly antennae, colorable"
|
||||
desc = ""
|
||||
icon_state = "curly_bug"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/dual_robot
|
||||
name = "synth antennae, colorable"
|
||||
desc = ""
|
||||
icon_state = "dual_robot_antennae"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/right_robot
|
||||
name = "right synth, colorable"
|
||||
desc = ""
|
||||
icon_state = "right_robot_antennae"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/left_robot
|
||||
name = "left synth, colorable"
|
||||
desc = ""
|
||||
icon_state = "left_robot_antennae"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/oni_h1
|
||||
name = "oni horns"
|
||||
desc = ""
|
||||
icon_state = "oni-h1"
|
||||
|
||||
/datum/sprite_accessory/ears/oni_h1_c
|
||||
name = "oni horns, colorable"
|
||||
desc = ""
|
||||
icon_state = "oni-h1_c"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/demon_horns1
|
||||
name = "demon horns"
|
||||
desc = ""
|
||||
icon_state = "demon-horns1"
|
||||
|
||||
/datum/sprite_accessory/ears/demon_horns1_c
|
||||
name = "demon horns, colorable"
|
||||
desc = ""
|
||||
icon_state = "demon-horns1_c"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/demon_horns2
|
||||
name = "demon horns, colorable(outward)"
|
||||
desc = ""
|
||||
icon_state = "demon-horns2"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/dragon_horns
|
||||
name = "dragon horns, colorable"
|
||||
desc = ""
|
||||
icon_state = "dragon-horns"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/foxears
|
||||
name = "highlander zorren ears"
|
||||
desc = ""
|
||||
icon_state = "foxears"
|
||||
|
||||
/datum/sprite_accessory/ears/fenears
|
||||
name = "flatland zorren ears"
|
||||
desc = ""
|
||||
icon_state = "fenears"
|
||||
|
||||
/datum/sprite_accessory/ears/sergal //Redundant
|
||||
name = "Sergal ears"
|
||||
icon_state = "serg_plain_s"
|
||||
|
||||
/datum/sprite_accessory/ears/foxearshc
|
||||
name = "highlander zorren ears, colorable"
|
||||
desc = ""
|
||||
icon_state = "foxearshc"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/fenearshc
|
||||
name = "flatland zorren ears, colorable"
|
||||
desc = ""
|
||||
icon_state = "fenearshc"
|
||||
extra_overlay = "fenears-inner"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/sergalhc
|
||||
name = "Sergal ears, colorable"
|
||||
icon_state = "serg_plain_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/mousehc
|
||||
name = "mouse, colorable"
|
||||
desc = ""
|
||||
icon_state = "mouse"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "mouseinner"
|
||||
|
||||
/datum/sprite_accessory/ears/mousehcno
|
||||
name = "mouse, colorable, no inner"
|
||||
desc = ""
|
||||
icon_state = "mouse"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/wolfhc
|
||||
name = "wolf, colorable"
|
||||
desc = ""
|
||||
icon_state = "wolf"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "wolfinner"
|
||||
|
||||
/datum/sprite_accessory/ears/bearhc
|
||||
name = "bear, colorable"
|
||||
desc = ""
|
||||
icon_state = "bear"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/smallbear
|
||||
name = "small bear"
|
||||
desc = ""
|
||||
icon_state = "smallbear"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/squirrelhc
|
||||
name = "squirrel, colorable"
|
||||
desc = ""
|
||||
icon_state = "squirrel"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/kittyhc
|
||||
name = "kitty, colorable"
|
||||
desc = ""
|
||||
icon_state = "kitty"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "kittyinner"
|
||||
|
||||
/datum/sprite_accessory/ears/bunnyhc
|
||||
name = "bunny, colorable"
|
||||
desc = ""
|
||||
icon_state = "bunny"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/antlers
|
||||
name = "antlers"
|
||||
desc = ""
|
||||
icon_state = "antlers"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/antlers_e
|
||||
name = "antlers with ears"
|
||||
desc = ""
|
||||
icon_state = "cow-nohorns"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "antlers_mark"
|
||||
|
||||
/datum/sprite_accessory/ears/smallantlers
|
||||
name = "small antlers"
|
||||
desc = ""
|
||||
icon_state = "smallantlers"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/smallantlers_e
|
||||
name = "small antlers with ears"
|
||||
desc = ""
|
||||
icon_state = "smallantlers"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "deer"
|
||||
|
||||
/datum/sprite_accessory/ears/deer
|
||||
name = "deer ears"
|
||||
desc = ""
|
||||
icon_state = "deer"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/cow
|
||||
name = "cow, horns"
|
||||
desc = ""
|
||||
icon_state = "cow"
|
||||
|
||||
/datum/sprite_accessory/ears/cowc
|
||||
name = "cow, horns, colorable"
|
||||
desc = ""
|
||||
icon_state = "cow-c"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/cow_nohorns
|
||||
name = "cow, no horns"
|
||||
desc = ""
|
||||
icon_state = "cow-nohorns"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/caprahorns
|
||||
name = "caprine horns"
|
||||
desc = ""
|
||||
icon_state = "caprahorns"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/otie
|
||||
name = "otie, colorable"
|
||||
desc = ""
|
||||
icon_state = "otie"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "otie-inner"
|
||||
|
||||
/datum/sprite_accessory/ears/donkey
|
||||
name = "donkey, colorable"
|
||||
desc = ""
|
||||
icon_state = "donkey"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "otie-inner"
|
||||
|
||||
/datum/sprite_accessory/ears/zears
|
||||
name = "jagged ears"
|
||||
desc = ""
|
||||
icon_state = "zears"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/elfs
|
||||
name = "elven ears"
|
||||
desc = ""
|
||||
icon_state = "elfs"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
species_allowed = list(SPECIES_HUMAN, SPECIES_HUMAN_VATBORN, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/ears/sleek
|
||||
name = "sleek ears"
|
||||
desc = ""
|
||||
icon_state = "sleek"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/drake
|
||||
name = "drake frills"
|
||||
desc = ""
|
||||
icon_state = "drake"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/vulp
|
||||
name = "vulpkanin, dual-color"
|
||||
desc = ""
|
||||
icon_state = "vulp"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "vulp-inner"
|
||||
|
||||
/datum/sprite_accessory/ears/vulp_short
|
||||
name = "vulpkanin short"
|
||||
desc = ""
|
||||
icon_state = "vulp_terrier"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/vulp_short_dc
|
||||
name = "vulpkanin short, dual-color"
|
||||
desc = ""
|
||||
icon_state = "vulp_terrier"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "vulp_terrier-inner"
|
||||
|
||||
/datum/sprite_accessory/ears/vulp_jackal
|
||||
name = "vulpkanin thin, dual-color"
|
||||
desc = ""
|
||||
icon_state = "vulp_jackal"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "vulp_jackal-inner"
|
||||
|
||||
/datum/sprite_accessory/ears/bunny_floppy
|
||||
name = "floopy bunny ears (colorable)"
|
||||
desc = ""
|
||||
icon_state = "floppy_bun"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/teshari
|
||||
name = "Teshari (colorable fluff)"
|
||||
desc = ""
|
||||
icon_state = "teshari"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "teshariinner"
|
||||
species_allowed = list(SPECIES_TESHARI, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/ears/tesharihigh
|
||||
name = "Teshari upper ears (colorable fluff)"
|
||||
desc = ""
|
||||
icon_state = "tesharihigh"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "tesharihighinner"
|
||||
species_allowed = list(SPECIES_TESHARI, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/ears/tesharilow
|
||||
name = "Teshari lower ears (colorable fluff)"
|
||||
desc = ""
|
||||
icon_state = "tesharilow"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "tesharilowinner"
|
||||
species_allowed = list(SPECIES_TESHARI, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/ears/inkling
|
||||
name = "colorable mature inkling hair"
|
||||
desc = ""
|
||||
icon = 'icons/mob/human_face_alt.dmi'
|
||||
icon_state = "inkling-colorable"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/ears/large_dragon
|
||||
name = "Large dragon horns"
|
||||
desc = ""
|
||||
icon_state = "big_liz"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
// Special snowflake ears go below here.
|
||||
/datum/sprite_accessory/ears/elf_caprine_colorable
|
||||
name = "Caprine horns with pointy ears, colorable"
|
||||
desc = ""
|
||||
icon_state = "elfs"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "caprahorns"
|
||||
|
||||
/datum/sprite_accessory/ears/elf_oni_colorable
|
||||
name = "oni horns with pointy ears, colorable"
|
||||
desc = ""
|
||||
icon_state = "elfs"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "oni-h1_c"
|
||||
|
||||
/datum/sprite_accessory/ears/elf_demon_colorable
|
||||
name = "Demon horns with pointy ears, colorable"
|
||||
desc = ""
|
||||
icon_state = "elfs"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "demon-horns1_c"
|
||||
|
||||
/datum/sprite_accessory/ears/elf_demon_outwards_colorable
|
||||
name = "Demon horns with pointy ears, outwards, colourable"
|
||||
desc = ""
|
||||
icon_state = "elfs"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "demon-horns2"
|
||||
|
||||
/datum/sprite_accessory/ears/elf_dragon_colorable
|
||||
name = "Dragon horns with pointy ears, colourable"
|
||||
desc = ""
|
||||
icon_state = "elfs"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "dragon-horns"
|
||||
@@ -0,0 +1,708 @@
|
||||
/*
|
||||
////////////////////////////
|
||||
/ =--------------------= /
|
||||
/ == Ear Definitions == /
|
||||
/ =--------------------= /
|
||||
////////////////////////////
|
||||
*/
|
||||
/datum/sprite_accessory/ears
|
||||
name = "You should not see this..."
|
||||
icon = 'icons/mob/vore/ears_vr.dmi'
|
||||
do_colouration = 0 // Set to 1 to blend (ICON_ADD) hair color
|
||||
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) //This lets all races use
|
||||
color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1
|
||||
|
||||
// Species-unique ears
|
||||
|
||||
/datum/sprite_accessory/ears/shadekin
|
||||
name = "Shadekin Ears, colorable"
|
||||
desc = ""
|
||||
icon_state = "shadekin"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
apply_restrictions = TRUE
|
||||
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
|
||||
|
||||
// Ears avaliable to anyone
|
||||
|
||||
/datum/sprite_accessory/ears/alt_ram_horns
|
||||
name = "Solid ram horns"
|
||||
desc = ""
|
||||
icon_state = "ram_horns_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/hyena
|
||||
name = "hyena ears, dual-color"
|
||||
desc = ""
|
||||
icon_state = "hyena"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "hyena-inner"
|
||||
|
||||
/datum/sprite_accessory/ears/moth
|
||||
name = "moth antennae"
|
||||
desc = ""
|
||||
icon_state = "moth"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/squirrel_orange
|
||||
name = "squirel, orange"
|
||||
desc = ""
|
||||
icon_state = "squirrel-orange"
|
||||
|
||||
/datum/sprite_accessory/ears/squirrel_red
|
||||
name = "squirrel, red"
|
||||
desc = ""
|
||||
icon_state = "squirrel-red"
|
||||
|
||||
/datum/sprite_accessory/ears/bunny_white
|
||||
name = "bunny, white"
|
||||
desc = ""
|
||||
icon_state = "bunny"
|
||||
|
||||
/datum/sprite_accessory/ears/bear_brown
|
||||
name = "bear, brown"
|
||||
desc = ""
|
||||
icon_state = "bear-brown"
|
||||
|
||||
/datum/sprite_accessory/ears/bear_panda
|
||||
name = "bear, panda"
|
||||
desc = ""
|
||||
icon_state = "panda"
|
||||
|
||||
/datum/sprite_accessory/ears/wolf_grey
|
||||
name = "wolf, grey"
|
||||
desc = ""
|
||||
icon_state = "wolf-grey"
|
||||
|
||||
/datum/sprite_accessory/ears/wolf_green
|
||||
name = "wolf, green"
|
||||
desc = ""
|
||||
icon_state = "wolf-green"
|
||||
|
||||
/datum/sprite_accessory/ears/wisewolf
|
||||
name = "wolf, wise"
|
||||
desc = ""
|
||||
icon_state = "wolf-wise"
|
||||
|
||||
/datum/sprite_accessory/ears/mouse_grey
|
||||
name = "mouse, grey"
|
||||
desc = ""
|
||||
icon_state = "mouse-grey"
|
||||
|
||||
/datum/sprite_accessory/ears/bee
|
||||
name = "bee antennae"
|
||||
desc = ""
|
||||
icon_state = "bee"
|
||||
|
||||
/datum/sprite_accessory/ears/antennae
|
||||
name = "antennae, colorable"
|
||||
desc = ""
|
||||
icon_state = "antennae"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/curly_bug
|
||||
name = "curly antennae, colorable"
|
||||
desc = ""
|
||||
icon_state = "curly_bug"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/dual_robot
|
||||
name = "synth antennae, colorable"
|
||||
desc = ""
|
||||
icon_state = "dual_robot_antennae"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/right_robot
|
||||
name = "right synth, colorable"
|
||||
desc = ""
|
||||
icon_state = "right_robot_antennae"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/left_robot
|
||||
name = "left synth, colorable"
|
||||
desc = ""
|
||||
icon_state = "left_robot_antennae"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/oni_h1
|
||||
name = "oni horns"
|
||||
desc = ""
|
||||
icon_state = "oni-h1"
|
||||
|
||||
/datum/sprite_accessory/ears/oni_h1_c
|
||||
name = "oni horns, colorable"
|
||||
desc = ""
|
||||
icon_state = "oni-h1_c"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/demon_horns1
|
||||
name = "demon horns"
|
||||
desc = ""
|
||||
icon_state = "demon-horns1"
|
||||
|
||||
/datum/sprite_accessory/ears/demon_horns1_c
|
||||
name = "demon horns, colorable"
|
||||
desc = ""
|
||||
icon_state = "demon-horns1_c"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/demon_horns2
|
||||
name = "demon horns, colorable(outward)"
|
||||
desc = ""
|
||||
icon_state = "demon-horns2"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/dragon_horns
|
||||
name = "dragon horns, colorable"
|
||||
desc = ""
|
||||
icon_state = "dragon-horns"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/foxears
|
||||
name = "highlander zorren ears"
|
||||
desc = ""
|
||||
icon_state = "foxears"
|
||||
|
||||
/datum/sprite_accessory/ears/fenears
|
||||
name = "flatland zorren ears"
|
||||
desc = ""
|
||||
icon_state = "fenears"
|
||||
|
||||
/datum/sprite_accessory/ears/sergal //Redundant
|
||||
name = "Sergal ears"
|
||||
icon_state = "serg_plain_s"
|
||||
|
||||
/datum/sprite_accessory/ears/foxearshc
|
||||
name = "highlander zorren ears, colorable"
|
||||
desc = ""
|
||||
icon_state = "foxearshc"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/fenearshc
|
||||
name = "flatland zorren ears, colorable"
|
||||
desc = ""
|
||||
icon_state = "fenearshc"
|
||||
extra_overlay = "fenears-inner"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/sergalhc
|
||||
name = "Sergal ears, colorable"
|
||||
icon_state = "serg_plain_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/mousehc
|
||||
name = "mouse, colorable"
|
||||
desc = ""
|
||||
icon_state = "mouse"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "mouseinner"
|
||||
|
||||
/datum/sprite_accessory/ears/mousehcno
|
||||
name = "mouse, colorable, no inner"
|
||||
desc = ""
|
||||
icon_state = "mouse"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/wolfhc
|
||||
name = "wolf, colorable"
|
||||
desc = ""
|
||||
icon_state = "wolf"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "wolfinner"
|
||||
|
||||
/datum/sprite_accessory/ears/bearhc
|
||||
name = "bear, colorable"
|
||||
desc = ""
|
||||
icon_state = "bear"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/smallbear
|
||||
name = "small bear"
|
||||
desc = ""
|
||||
icon_state = "smallbear"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/squirrelhc
|
||||
name = "squirrel, colorable"
|
||||
desc = ""
|
||||
icon_state = "squirrel"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/kittyhc
|
||||
name = "kitty, colorable"
|
||||
desc = ""
|
||||
icon_state = "kitty"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "kittyinner"
|
||||
|
||||
/datum/sprite_accessory/ears/bunnyhc
|
||||
name = "bunny, colorable"
|
||||
desc = ""
|
||||
icon_state = "bunny"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/antlers
|
||||
name = "antlers"
|
||||
desc = ""
|
||||
icon_state = "antlers"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/antlers_e
|
||||
name = "antlers with ears"
|
||||
desc = ""
|
||||
icon_state = "cow-nohorns"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "antlers_mark"
|
||||
|
||||
/datum/sprite_accessory/ears/smallantlers
|
||||
name = "small antlers"
|
||||
desc = ""
|
||||
icon_state = "smallantlers"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/smallantlers_e
|
||||
name = "small antlers with ears"
|
||||
desc = ""
|
||||
icon_state = "smallantlers"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "deer"
|
||||
|
||||
/datum/sprite_accessory/ears/deer
|
||||
name = "deer ears"
|
||||
desc = ""
|
||||
icon_state = "deer"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/cow
|
||||
name = "cow, horns"
|
||||
desc = ""
|
||||
icon_state = "cow"
|
||||
|
||||
/datum/sprite_accessory/ears/cowc
|
||||
name = "cow, horns, colorable"
|
||||
desc = ""
|
||||
icon_state = "cow-c"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/cow_nohorns
|
||||
name = "cow, no horns"
|
||||
desc = ""
|
||||
icon_state = "cow-nohorns"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/caprahorns
|
||||
name = "caprine horns"
|
||||
desc = ""
|
||||
icon_state = "caprahorns"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/otie
|
||||
name = "otie, colorable"
|
||||
desc = ""
|
||||
icon_state = "otie"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "otie-inner"
|
||||
|
||||
/datum/sprite_accessory/ears/donkey
|
||||
name = "donkey, colorable"
|
||||
desc = ""
|
||||
icon_state = "donkey"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "otie-inner"
|
||||
|
||||
/datum/sprite_accessory/ears/zears
|
||||
name = "jagged ears"
|
||||
desc = ""
|
||||
icon_state = "zears"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/elfs
|
||||
name = "elven ears"
|
||||
desc = ""
|
||||
icon_state = "elfs"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/sleek
|
||||
name = "sleek ears"
|
||||
desc = ""
|
||||
icon_state = "sleek"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/drake
|
||||
name = "drake frills"
|
||||
desc = ""
|
||||
icon_state = "drake"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/vulp
|
||||
name = "vulpkanin, dual-color"
|
||||
desc = ""
|
||||
icon_state = "vulp"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "vulp-inner"
|
||||
|
||||
/datum/sprite_accessory/ears/vulp_short
|
||||
name = "vulpkanin short"
|
||||
desc = ""
|
||||
icon_state = "vulp_terrier"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/vulp_short_dc
|
||||
name = "vulpkanin short, dual-color"
|
||||
desc = ""
|
||||
icon_state = "vulp_terrier"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "vulp_terrier-inner"
|
||||
|
||||
/datum/sprite_accessory/ears/vulp_jackal
|
||||
name = "vulpkanin thin, dual-color"
|
||||
desc = ""
|
||||
icon_state = "vulp_jackal"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "vulp_jackal-inner"
|
||||
|
||||
/datum/sprite_accessory/ears/bunny_floppy
|
||||
name = "floopy bunny ears (colorable)"
|
||||
desc = ""
|
||||
icon_state = "floppy_bun"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/teshari
|
||||
name = "Teshari (colorable)"
|
||||
desc = ""
|
||||
icon_state = "teshari"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "teshariinner"
|
||||
|
||||
/datum/sprite_accessory/ears/tesharihigh
|
||||
name = "Teshari upper ears (colorable)"
|
||||
desc = ""
|
||||
icon_state = "tesharihigh"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "tesharihighinner"
|
||||
|
||||
/datum/sprite_accessory/ears/tesharilow
|
||||
name = "Teshari lower ears (colorable)"
|
||||
desc = ""
|
||||
icon_state = "tesharilow"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "tesharilowinner"
|
||||
|
||||
/datum/sprite_accessory/ears/tesh_pattern_ear_male
|
||||
name = "Teshari male ear pattern (colorable)"
|
||||
desc = ""
|
||||
icon_state = "teshari"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "teshari_male_pattern"
|
||||
|
||||
/datum/sprite_accessory/ears/tesh_pattern_ear_female
|
||||
name = "Teshari female ear pattern (colorable)"
|
||||
desc = ""
|
||||
icon_state = "teshari"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "teshari_female_pattern"
|
||||
|
||||
/datum/sprite_accessory/ears/inkling
|
||||
name = "colorable mature inkling hair"
|
||||
desc = ""
|
||||
icon = 'icons/mob/human_face_vr.dmi'
|
||||
icon_state = "inkling-colorable"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/ears/large_dragon
|
||||
name = "Large dragon horns"
|
||||
desc = ""
|
||||
icon_state = "big_liz"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
// Special snowflake ears go below here.
|
||||
|
||||
/datum/sprite_accessory/ears/molenar_kitsune
|
||||
name = "quintail kitsune ears (Molenar)"
|
||||
desc = ""
|
||||
icon_state = "molenar-kitsune"
|
||||
ckeys_allowed = list("molenar")
|
||||
|
||||
/datum/sprite_accessory/ears/lilimoth_antennae
|
||||
name = "citheronia antennae (Kira72)"
|
||||
desc = ""
|
||||
icon_state = "lilimoth_antennae"
|
||||
ckeys_allowed = list("kira72")
|
||||
|
||||
/datum/sprite_accessory/ears/molenar_deathclaw
|
||||
name = "deathclaw ears (Molenar)"
|
||||
desc = ""
|
||||
icon_state = "molenar-deathclaw"
|
||||
ckeys_allowed = list("molenar")
|
||||
|
||||
/datum/sprite_accessory/ears/miria_fluffdragon
|
||||
name = "fluffdragon ears (Miria Masters)"
|
||||
desc = ""
|
||||
icon_state = "miria-fluffdragonears"
|
||||
ckeys_allowed = list("miriamasters")
|
||||
|
||||
/datum/sprite_accessory/ears/miria_kitsune
|
||||
name = "kitsune ears (Miria Masters)"
|
||||
desc = ""
|
||||
icon_state = "miria-kitsuneears"
|
||||
ckeys_allowed = list("miriamasters")
|
||||
|
||||
/datum/sprite_accessory/ears/runac
|
||||
name = "fennecsune ears (Runac)"
|
||||
desc = ""
|
||||
icon_state = "runac"
|
||||
ckeys_allowed = list("rebcom1807")
|
||||
|
||||
/datum/sprite_accessory/ears/kerena
|
||||
name = "wingwolf ears (Kerena)"
|
||||
desc = ""
|
||||
icon_state = "kerena"
|
||||
ckeys_allowed = list("somekindofpony")
|
||||
|
||||
/datum/sprite_accessory/ears/rosey
|
||||
name = "tritail kitsune ears (Rosey)"
|
||||
desc = ""
|
||||
icon_state = "rosey"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
ckeys_allowed = list("joey4298")
|
||||
|
||||
/datum/sprite_accessory/ears/aronai
|
||||
name = "aronai ears/head (Aronai)"
|
||||
desc = ""
|
||||
icon_state = "aronai"
|
||||
ckeys_allowed = list("arokha")
|
||||
|
||||
/datum/sprite_accessory/ears/holly
|
||||
name = "tigress ears (Holly Sharp)"
|
||||
desc = ""
|
||||
icon_state = "tigressears"
|
||||
ckeys_allowed = list("hoodoo")
|
||||
|
||||
/datum/sprite_accessory/ears/molenar_inkling
|
||||
name = "teal mature inkling hair (Kari Akiren)"
|
||||
desc = ""
|
||||
icon_state = "molenar-tentacle"
|
||||
ckeys_allowed = list("molenar")
|
||||
|
||||
/datum/sprite_accessory/ears/shock
|
||||
name = "pharoah hound ears (Shock Diamond)"
|
||||
desc = ""
|
||||
icon_state = "shock"
|
||||
ckeys_allowed = list("icowom","cameron653")
|
||||
|
||||
/datum/sprite_accessory/ears/alurane
|
||||
name = "alurane ears/hair (Pumila)"
|
||||
desc = ""
|
||||
icon_state = "alurane-ears"
|
||||
ckeys_allowed = list("natje")
|
||||
|
||||
/datum/sprite_accessory/ears/frost
|
||||
name = "Frost antenna"
|
||||
desc = ""
|
||||
icon_state = "frosted_tips"
|
||||
ckeys_allowed = list("tucker0666")
|
||||
|
||||
/datum/sprite_accessory/ears/sylv_pip
|
||||
name = "sylveon ears and ribbons (Pip Shyner)"
|
||||
desc = ""
|
||||
icon_state = "pipears"
|
||||
ckeys_allowed = list("phoaly")
|
||||
|
||||
/datum/sprite_accessory/ears/elf_caprine_colorable
|
||||
name = "Caprine horns with pointy ears, colorable"
|
||||
desc = ""
|
||||
icon_state = "elfs"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "caprahorns"
|
||||
|
||||
/datum/sprite_accessory/ears/elf_oni_colorable
|
||||
name = "oni horns with pointy ears, colorable"
|
||||
desc = ""
|
||||
icon_state = "elfs"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "oni-h1_c"
|
||||
|
||||
/datum/sprite_accessory/ears/elf_demon_colorable
|
||||
name = "Demon horns with pointy ears, colorable"
|
||||
desc = ""
|
||||
icon_state = "elfs"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "demon-horns1_c"
|
||||
|
||||
/datum/sprite_accessory/ears/elf_demon_outwards_colorable
|
||||
name = "Demon horns with pointy ears, outwards, colourable"
|
||||
desc = ""
|
||||
icon_state = "elfs"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "demon-horns2"
|
||||
|
||||
/datum/sprite_accessory/ears/elf_dragon_colorable
|
||||
name = "Dragon horns with pointy ears, colourable"
|
||||
desc = ""
|
||||
icon_state = "elfs"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "dragon-horns"
|
||||
|
||||
/datum/sprite_accessory/ears/synthhorns_plain
|
||||
name = "Synth horns, plain"
|
||||
desc = ""
|
||||
icon_state = "synthhorns_plain"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "synthhorns_plain_light"
|
||||
|
||||
/datum/sprite_accessory/ears/synthhorns_thick
|
||||
name = "Synth horns, thick"
|
||||
desc = ""
|
||||
icon_state = "synthhorns_thick"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "synthhorns_thick_light"
|
||||
|
||||
/datum/sprite_accessory/ears/synthhorns_curly
|
||||
name = "Synth horns, curly"
|
||||
desc = ""
|
||||
icon_state = "synthhorns_curled"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
|
||||
/datum/sprite_accessory/ears/forward_curled_demon_horns_bony
|
||||
name = "Succubus horns, colourable"
|
||||
desc = ""
|
||||
icon_state = "succu-horns_b"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/forward_curled_demon_horns_bony_with_colorable_ears
|
||||
name = "Succubus horns with pointy ears, colourable"
|
||||
desc = ""
|
||||
icon_state = "elfs"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "succu-horns_b"
|
||||
|
||||
/datum/sprite_accessory/ears/chorns_nubbydogs
|
||||
name = "Nubby Chorns"
|
||||
desc = ""
|
||||
icon_state = "chorn_nubby"
|
||||
do_colouration = 0
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/chorns_herk
|
||||
name = "Herk Chorns"
|
||||
desc = ""
|
||||
icon_state = "chorn_herk"
|
||||
do_colouration = 0
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/chorns_bork
|
||||
name = "Bork Chorns"
|
||||
desc = ""
|
||||
icon_state = "chorn_bork"
|
||||
do_colouration = 0
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/chorns_bull
|
||||
name = "Bull Chorns"
|
||||
desc = ""
|
||||
icon_state = "chorn_bull"
|
||||
do_colouration = 0
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/chorns_bicarrot
|
||||
name = "Bicarrot Chorns"
|
||||
desc = ""
|
||||
icon_state = "chorn_bicarrot"
|
||||
do_colouration = 0
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/chorns_longcarrot
|
||||
name = "Long Carrot Chorns"
|
||||
desc = ""
|
||||
icon_state = "chorn_longcarrot"
|
||||
do_colouration = 0
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/chorns_shortcarrot
|
||||
name = "Short Carrot Chorns"
|
||||
desc = ""
|
||||
icon_state = "chorn_shortcarrot"
|
||||
do_colouration = 0
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/chorns_scorp
|
||||
name = "Scorp Chorns"
|
||||
desc = ""
|
||||
icon_state = "chorn_scorp"
|
||||
do_colouration = 0
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/chorns_ocean
|
||||
name = "Ocean Chorns"
|
||||
desc = ""
|
||||
icon_state = "chorn_ocean"
|
||||
do_colouration = 0
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/ears/chorns_chub
|
||||
name = "Chub Chorns"
|
||||
desc = ""
|
||||
icon_state = "chorn_chub"
|
||||
do_colouration = 0
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
@@ -0,0 +1,566 @@
|
||||
/datum/sprite_accessory/marking/vr
|
||||
icon = 'icons/mob/human_races/markings_alt.dmi'
|
||||
|
||||
species_allowed = list(SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_belly
|
||||
name = "belly fur (Vulp)"
|
||||
icon_state = "vulp_belly"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_fullbelly
|
||||
name = "full belly fur (Vulp)"
|
||||
icon_state = "vulp_fullbelly"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_crest
|
||||
name = "belly crest (Vulp)"
|
||||
icon_state = "vulp_crest"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_nose
|
||||
name = "nose (Vulp)"
|
||||
icon_state = "vulp_nose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_short_nose
|
||||
name = "nose, short (Vulp)"
|
||||
icon_state = "vulp_short_nose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/snoutstripe
|
||||
name = "snout stripe (Vulp)"
|
||||
icon_state = "snoutstripe"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_face
|
||||
name = "face (Vulp)"
|
||||
icon_state = "vulp_face"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_facealt
|
||||
name = "face, alt. (Vulp)"
|
||||
icon_state = "vulp_facealt"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_earsface
|
||||
name = "ears and face (Vulp)"
|
||||
icon_state = "vulp_earsface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_all
|
||||
name = "all head highlights (Vulp)"
|
||||
icon_state = "vulp_all"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/sergal_full
|
||||
name = "Sergal Markings"
|
||||
icon_state = "sergal_full"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
species_allowed = list("Sergal")
|
||||
|
||||
/datum/sprite_accessory/marking/vr/sergal_full_female
|
||||
name = "Sergal Markings (Female)"
|
||||
icon_state = "sergal_full_female"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
species_allowed = list("Sergal")
|
||||
|
||||
/datum/sprite_accessory/marking/vr/monoeye
|
||||
name = "Monoeye"
|
||||
icon_state = "monoeye"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/spidereyes
|
||||
name = "Spider Eyes"
|
||||
icon_state = "spidereyes"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/sergaleyes
|
||||
name = "Sergal Eyes"
|
||||
icon_state = "eyes_sergal"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/brows
|
||||
name = "Eyebrows"
|
||||
icon_state = "brows"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/nevrean_female
|
||||
name = "Female Nevrean beak"
|
||||
icon_state = "nevrean_f"
|
||||
body_parts = list(BP_HEAD)
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/marking/vr/nevrean_male
|
||||
name = "Male Nevrean beak"
|
||||
icon_state = "nevrean_m"
|
||||
body_parts = list(BP_HEAD)
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/marking/vr/spots
|
||||
name = "Spots"
|
||||
icon_state = "spots"
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/shaggy_mane
|
||||
name = "Shaggy mane/feathers"
|
||||
icon_state = "shaggy"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/jagged_teeth
|
||||
name = "Jagged teeth"
|
||||
icon_state = "jagged"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/blank_face
|
||||
name = "Blank round face (use with monster mouth)"
|
||||
icon_state = "blankface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/monster_mouth
|
||||
name = "Monster mouth"
|
||||
icon_state = "monster"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/saber_teeth
|
||||
name = "Saber teeth"
|
||||
icon_state = "saber"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/fangs
|
||||
name = "Fangs"
|
||||
icon_state = "fangs"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/tusks
|
||||
name = "Tusks"
|
||||
icon_state = "tusks"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/otie_face
|
||||
name = "Otie face"
|
||||
icon_state = "otieface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/otie_nose
|
||||
name = "Otie nose"
|
||||
icon_state = "otie_nose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/otienose_lite
|
||||
name = "Short otie nose"
|
||||
icon_state = "otienose_lite"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/backstripes
|
||||
name = "Back stripes"
|
||||
icon_state = "otiestripes"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/belly_butt
|
||||
name = "Belly and butt"
|
||||
icon_state = "bellyandbutt"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_GROIN,BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/fingers_toes
|
||||
name = "Fingers and toes"
|
||||
icon_state = "fingerstoes"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/otie_socks
|
||||
name = "Fingerless socks"
|
||||
icon_state = "otiesocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/corvid_beak
|
||||
name = "Corvid beak"
|
||||
icon_state = "corvidbeak"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/corvid_belly
|
||||
name = "Corvid belly"
|
||||
icon_state = "corvidbelly"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/cow_body
|
||||
name = "Cow markings"
|
||||
icon_state = "cowbody"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/cow_nose
|
||||
name = "Cow nose"
|
||||
icon_state = "cownose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zmask
|
||||
name = "Eye mask"
|
||||
icon_state = "zmask"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zbody
|
||||
name = "Thick jagged stripes"
|
||||
icon_state = "zbody"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_GROIN,BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/znose
|
||||
name = "Jagged snout"
|
||||
icon_state = "znose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/otter_nose
|
||||
name = "Otter nose"
|
||||
icon_state = "otternose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/otter_face
|
||||
name = "Otter face"
|
||||
icon_state = "otterface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/deer_face
|
||||
name = "Deer face"
|
||||
icon_state = "deerface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/sharkface
|
||||
name = "Akula snout"
|
||||
icon_state = "sharkface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/sheppy_face
|
||||
name = "Shepherd snout"
|
||||
icon_state = "shepface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/sheppy_back
|
||||
name = "Shepherd back"
|
||||
icon_state = "shepback"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_belly_male
|
||||
name = "Zorren Male Torso"
|
||||
icon_state = "zorren_belly"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_belly_female
|
||||
name = "Zorren Female Torso"
|
||||
icon_state = "zorren_belly_female"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_back_patch
|
||||
name = "Zorren Back Patch"
|
||||
icon_state = "zorren_backpatch"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_face_male
|
||||
name = "Zorren Male Face"
|
||||
icon_state = "zorren_face"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_face_female
|
||||
name = "Zorren Female Face"
|
||||
icon_state = "zorren_face_female"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_muzzle_male
|
||||
name = "Zorren Male Muzzle"
|
||||
icon_state = "zorren_muzzle"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_muzzle_female
|
||||
name = "Zorren Female Muzzle"
|
||||
icon_state = "zorren_muzzle_female"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_socks
|
||||
name = "Zorren Socks"
|
||||
icon_state = "zorren_socks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_longsocks
|
||||
name = "Zorren Longsocks"
|
||||
icon_state = "zorren_longsocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/tesh_feathers
|
||||
name = "Teshari Feathers"
|
||||
icon_state = "tesh-feathers"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/harpy_feathers
|
||||
name = "Rapala leg Feather"
|
||||
icon_state = "harpy-feathers"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/harpy_legs
|
||||
name = "Rapala leg coloring"
|
||||
icon_state = "harpy-leg"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/chooves
|
||||
name = "Cloven hooves"
|
||||
icon_state = "chooves"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/body_tone
|
||||
name = "Body toning (for emergency contrast loss)"
|
||||
icon_state = "btone"
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/gloss
|
||||
name = "Full body gloss"
|
||||
icon_state = "gloss"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/eboop_panels
|
||||
name = "Eggnerd FBP panels"
|
||||
icon_state = "eboop"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/osocks_rarm
|
||||
name = "Modular Longsock (right arm)"
|
||||
icon_state = "osocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_ARM,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/osocks_larm
|
||||
name = "Modular Longsock (left arm)"
|
||||
icon_state = "osocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_ARM,BP_L_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/osocks_rleg
|
||||
name = "Modular Longsock (right leg)"
|
||||
icon_state = "osocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_FOOT,BP_R_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/osocks_lleg
|
||||
name = "Modular Longsock (left leg)"
|
||||
icon_state = "osocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_L_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/animeeyesinner
|
||||
name = "Anime Eyes Inner"
|
||||
icon_state = "animeeyesinner"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/animeeyesouter
|
||||
name = "Anime Eyes Outer"
|
||||
icon_state = "animeeyesouter"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/panda_eye_marks
|
||||
name = "Panda Eye Markings"
|
||||
icon_state = "eyes_panda"
|
||||
body_parts = list(BP_HEAD)
|
||||
species_allowed = list(SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/catwomantorso
|
||||
name = "Catwoman chest stripes"
|
||||
icon_state = "catwomanchest"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/catwomangroin
|
||||
name = "Catwoman groin stripes"
|
||||
icon_state = "catwomangroin"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/catwoman_rleg
|
||||
name = "Catwoman right leg stripes"
|
||||
icon_state = "catwomanright"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/catwoman_lleg
|
||||
name = "Catwoman left leg stripes"
|
||||
icon_state = "catwomanleft"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/teshi_small_feathers
|
||||
name = "Teshari small wingfeathers"
|
||||
icon_state = "teshi_sf"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND,BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/spirit_lights
|
||||
name = "Ward - Spirit FBP Lights"
|
||||
icon_state = "lights"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/spirit_lights_body
|
||||
name = "Ward - Spirit FBP Lights (body)"
|
||||
icon_state = "lights"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/spirit_lights_head
|
||||
name = "Ward - Spirit FBP Lights (head)"
|
||||
icon_state = "lights"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/spirit_panels
|
||||
name = "Ward - Spirit FBP Panels"
|
||||
icon_state = "panels"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/spirit_panels_body
|
||||
name = "Ward - Spirit FBP Panels (body)"
|
||||
icon_state = "panels"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/spirit_panels_head
|
||||
name = "Ward - Spirit FBP Panels (head)"
|
||||
icon_state = "panels"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/tentacle_head
|
||||
name = "Squid Head"
|
||||
icon_state = "tentaclehead"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/tentacle_mouth
|
||||
name = "Tentacle Mouth"
|
||||
icon_state = "tentaclemouth"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/rosette
|
||||
name = "Rosettes"
|
||||
icon_state = "rosette"
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
/*
|
||||
werewolf_nose
|
||||
name = "Werewolf nose"
|
||||
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
|
||||
icon_state = "werewolf_nose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
species_allowed = list(SPECIES_WEREBEAST)
|
||||
|
||||
werewolf_face
|
||||
name = "Werewolf face"
|
||||
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
|
||||
icon_state = "werewolf"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
species_allowed = list(SPECIES_WEREBEAST)
|
||||
|
||||
werewolf_belly
|
||||
name = "Werewolf belly"
|
||||
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
|
||||
icon_state = "werewolf"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_GROIN,BP_TORSO)
|
||||
species_allowed = list(SPECIES_WEREBEAST)
|
||||
|
||||
werewolf_socks
|
||||
name = "Werewolf socks"
|
||||
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
|
||||
icon_state = "werewolf"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
|
||||
species_allowed = list(SPECIES_WEREBEAST)
|
||||
|
||||
shadekin_snoot
|
||||
name = "Shadekin Snoot"
|
||||
icon_state = "shadekin-snoot"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
|
||||
*/
|
||||
/datum/sprite_accessory/marking/vr/taj_nose_alt
|
||||
name = "Nose Color, alt. (Taj)"
|
||||
icon_state = "taj_nosealt"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/talons
|
||||
name = "Talons"
|
||||
icon_state = "talons"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/claws
|
||||
name = "Claws"
|
||||
icon_state = "claws"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_HAND,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/equine_snout //Why the long face? Works best with sergal bodytype.
|
||||
name = "Equine Snout"
|
||||
icon_state = "donkey"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/equine_nose
|
||||
name = "Equine Nose"
|
||||
icon_state = "dnose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
@@ -0,0 +1,725 @@
|
||||
//VOREStation Body Markings and Overrides
|
||||
//Reminder: BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD
|
||||
|
||||
/datum/sprite_accessory/marking //Override for base markings
|
||||
color_blend_mode = ICON_ADD
|
||||
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) //This lets all races use
|
||||
|
||||
/datum/sprite_accessory/marking/vr
|
||||
icon = 'icons/mob/human_races/markings_vr.dmi'
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_belly
|
||||
name = "belly fur (Vulp)"
|
||||
icon_state = "vulp_belly"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_fullbelly
|
||||
name = "full belly fur (Vulp)"
|
||||
icon_state = "vulp_fullbelly"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_crest
|
||||
name = "belly crest (Vulp)"
|
||||
icon_state = "vulp_crest"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_nose
|
||||
name = "nose (Vulp)"
|
||||
icon_state = "vulp_nose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_short_nose
|
||||
name = "nose, short (Vulp)"
|
||||
icon_state = "vulp_short_nose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/snoutstripe
|
||||
name = "snout stripe (Vulp)"
|
||||
icon_state = "snoutstripe"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_face
|
||||
name = "face (Vulp)"
|
||||
icon_state = "vulp_face"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_facealt
|
||||
name = "face, alt. (Vulp)"
|
||||
icon_state = "vulp_facealt"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_earsface
|
||||
name = "ears and face (Vulp)"
|
||||
icon_state = "vulp_earsface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vulp_all
|
||||
name = "all head highlights (Vulp)"
|
||||
icon_state = "vulp_all"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/sergal_full
|
||||
name = "Sergal Markings"
|
||||
icon_state = "sergal_full"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
species_allowed = list("Sergal")
|
||||
|
||||
/datum/sprite_accessory/marking/vr/sergal_full_female
|
||||
name = "Sergal Markings (Female)"
|
||||
icon_state = "sergal_full_female"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
species_allowed = list("Sergal")
|
||||
|
||||
/datum/sprite_accessory/marking/vr/monoeye
|
||||
name = "Monoeye"
|
||||
icon_state = "monoeye"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/spidereyes
|
||||
name = "Spider Eyes"
|
||||
icon_state = "spidereyes"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/sergaleyes
|
||||
name = "Sergal Eyes"
|
||||
icon_state = "eyes_sergal"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/brows
|
||||
name = "Eyebrows"
|
||||
icon_state = "brows"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/nevrean_female
|
||||
name = "Female Nevrean beak"
|
||||
icon_state = "nevrean_f"
|
||||
body_parts = list(BP_HEAD)
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/marking/vr/nevrean_male
|
||||
name = "Male Nevrean beak"
|
||||
icon_state = "nevrean_m"
|
||||
body_parts = list(BP_HEAD)
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/marking/vr/spots
|
||||
name = "Spots"
|
||||
icon_state = "spots"
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/shaggy_mane
|
||||
name = "Shaggy mane/feathers"
|
||||
icon_state = "shaggy"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/jagged_teeth
|
||||
name = "Jagged teeth"
|
||||
icon_state = "jagged"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/blank_face
|
||||
name = "Blank round face (use with monster mouth)"
|
||||
icon_state = "blankface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/monster_mouth
|
||||
name = "Monster mouth"
|
||||
icon_state = "monster"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/saber_teeth
|
||||
name = "Saber teeth"
|
||||
icon_state = "saber"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/fangs
|
||||
name = "Fangs"
|
||||
icon_state = "fangs"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/tusks
|
||||
name = "Tusks"
|
||||
icon_state = "tusks"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/otie_face
|
||||
name = "Otie face"
|
||||
icon_state = "otieface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/otie_nose
|
||||
name = "Otie nose"
|
||||
icon_state = "otie_nose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/otienose_lite
|
||||
name = "Short otie nose"
|
||||
icon_state = "otienose_lite"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/backstripes
|
||||
name = "Back stripes"
|
||||
icon_state = "otiestripes"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/belly_butt
|
||||
name = "Belly and butt"
|
||||
icon_state = "bellyandbutt"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_GROIN,BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/fingers_toes
|
||||
name = "Fingers and toes"
|
||||
icon_state = "fingerstoes"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/otie_socks
|
||||
name = "Fingerless socks"
|
||||
icon_state = "otiesocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/corvid_beak
|
||||
name = "Corvid beak"
|
||||
icon_state = "corvidbeak"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/corvid_belly
|
||||
name = "Corvid belly"
|
||||
icon_state = "corvidbelly"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/cow_body
|
||||
name = "Cow markings"
|
||||
icon_state = "cowbody"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/cow_nose
|
||||
name = "Cow nose"
|
||||
icon_state = "cownose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zmask
|
||||
name = "Eye mask"
|
||||
icon_state = "zmask"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zbody
|
||||
name = "Thick jagged stripes"
|
||||
icon_state = "zbody"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_GROIN,BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/znose
|
||||
name = "Jagged snout"
|
||||
icon_state = "znose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/otter_nose
|
||||
name = "Otter nose"
|
||||
icon_state = "otternose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/otter_face
|
||||
name = "Otter face"
|
||||
icon_state = "otterface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/deer_face
|
||||
name = "Deer face"
|
||||
icon_state = "deerface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/sharkface
|
||||
name = "Akula snout"
|
||||
icon_state = "sharkface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/sheppy_face
|
||||
name = "Shepherd snout"
|
||||
icon_state = "shepface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/sheppy_back
|
||||
name = "Shepherd back"
|
||||
icon_state = "shepback"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_belly_male
|
||||
name = "Zorren Male Torso"
|
||||
icon_state = "zorren_belly"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_belly_female
|
||||
name = "Zorren Female Torso"
|
||||
icon_state = "zorren_belly_female"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_back_patch
|
||||
name = "Zorren Back Patch"
|
||||
icon_state = "zorren_backpatch"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_face_male
|
||||
name = "Zorren Male Face"
|
||||
icon_state = "zorren_face"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_face_female
|
||||
name = "Zorren Female Face"
|
||||
icon_state = "zorren_face_female"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_muzzle_male
|
||||
name = "Zorren Male Muzzle"
|
||||
icon_state = "zorren_muzzle"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_muzzle_female
|
||||
name = "Zorren Female Muzzle"
|
||||
icon_state = "zorren_muzzle_female"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_socks
|
||||
name = "Zorren Socks"
|
||||
icon_state = "zorren_socks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/zorren_longsocks
|
||||
name = "Zorren Longsocks"
|
||||
icon_state = "zorren_longsocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/tesh_feathers
|
||||
name = "Teshari Feathers"
|
||||
icon_state = "tesh-feathers"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/harpy_feathers
|
||||
name = "Rapala leg Feather"
|
||||
icon_state = "harpy-feathers"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/harpy_legs
|
||||
name = "Rapala leg coloring"
|
||||
icon_state = "harpy-leg"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/chooves
|
||||
name = "Cloven hooves"
|
||||
icon_state = "chooves"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/body_tone
|
||||
name = "Body toning (for emergency contrast loss)"
|
||||
icon_state = "btone"
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/gloss
|
||||
name = "Full body gloss"
|
||||
icon_state = "gloss"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/eboop_panels
|
||||
name = "Eggnerd FBP panels"
|
||||
icon_state = "eboop"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/osocks_rarm
|
||||
name = "Modular Longsock (right arm)"
|
||||
icon_state = "osocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_ARM,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/osocks_larm
|
||||
name = "Modular Longsock (left arm)"
|
||||
icon_state = "osocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_ARM,BP_L_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/osocks_rleg
|
||||
name = "Modular Longsock (right leg)"
|
||||
icon_state = "osocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_FOOT,BP_R_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/osocks_lleg
|
||||
name = "Modular Longsock (left leg)"
|
||||
icon_state = "osocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_L_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/animeeyesinner
|
||||
name = "Anime Eyes Inner"
|
||||
icon_state = "animeeyesinner"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/animeeyesouter
|
||||
name = "Anime Eyes Outer"
|
||||
icon_state = "animeeyesouter"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/panda_eye_marks
|
||||
name = "Panda Eye Markings"
|
||||
icon_state = "eyes_panda"
|
||||
body_parts = list(BP_HEAD)
|
||||
species_allowed = list(SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/catwomantorso
|
||||
name = "Catwoman chest stripes"
|
||||
icon_state = "catwomanchest"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/catwomangroin
|
||||
name = "Catwoman groin stripes"
|
||||
icon_state = "catwomangroin"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/catwoman_rleg
|
||||
name = "Catwoman right leg stripes"
|
||||
icon_state = "catwomanright"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/catwoman_lleg
|
||||
name = "Catwoman left leg stripes"
|
||||
icon_state = "catwomanleft"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/teshi_small_feathers
|
||||
name = "Teshari small wingfeathers"
|
||||
icon_state = "teshi_sf"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND,BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/spirit_lights
|
||||
name = "Ward - Spirit FBP Lights"
|
||||
icon_state = "lights"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/spirit_lights_body
|
||||
name = "Ward - Spirit FBP Lights (body)"
|
||||
icon_state = "lights"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/spirit_lights_head
|
||||
name = "Ward - Spirit FBP Lights (head)"
|
||||
icon_state = "lights"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/spirit_panels
|
||||
name = "Ward - Spirit FBP Panels"
|
||||
icon_state = "panels"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/spirit_panels_body
|
||||
name = "Ward - Spirit FBP Panels (body)"
|
||||
icon_state = "panels"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/spirit_panels_head
|
||||
name = "Ward - Spirit FBP Panels (head)"
|
||||
icon_state = "panels"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/tentacle_head
|
||||
name = "Squid Head"
|
||||
icon_state = "tentaclehead"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/tentacle_mouth
|
||||
name = "Tentacle Mouth"
|
||||
icon_state = "tentaclemouth"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/rosette
|
||||
name = "Rosettes"
|
||||
icon_state = "rosette"
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/werewolf_nose
|
||||
name = "Werewolf nose"
|
||||
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
|
||||
icon_state = "werewolf_nose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
species_allowed = list(SPECIES_WEREBEAST)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/werewolf_face
|
||||
name = "Werewolf face"
|
||||
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
|
||||
icon_state = "werewolf"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
species_allowed = list(SPECIES_WEREBEAST)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/werewolf_belly
|
||||
name = "Werewolf belly"
|
||||
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
|
||||
icon_state = "werewolf"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_GROIN,BP_TORSO)
|
||||
species_allowed = list(SPECIES_WEREBEAST)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/werewolf_socks
|
||||
name = "Werewolf socks"
|
||||
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
|
||||
icon_state = "werewolf"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
|
||||
species_allowed = list(SPECIES_WEREBEAST)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/shadekin_snoot
|
||||
name = "Shadekin Snoot"
|
||||
icon_state = "shadekin-snoot"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/taj_nose_alt
|
||||
name = "Nose Color, alt. (Taj)"
|
||||
icon_state = "taj_nosealt"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/talons
|
||||
name = "Talons"
|
||||
icon_state = "talons"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/claws
|
||||
name = "Claws"
|
||||
icon_state = "claws"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_HAND,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/equine_snout //Why the long face? Works best with sergal bodytype.
|
||||
name = "Equine Snout"
|
||||
icon_state = "donkey"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/equine_nose
|
||||
name = "Equine Nose"
|
||||
icon_state = "dnose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/bee_stripes
|
||||
name = "bee stripes"
|
||||
icon_state = "beestripes"
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vas_toes
|
||||
name = "Bug Paws (Vasilissan)"
|
||||
icon_state = "vas_toes"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT)
|
||||
|
||||
//CitRP stuff
|
||||
/datum/sprite_accessory/marking/vr/vox_alt
|
||||
name = "Vox Alternate"
|
||||
icon_state = "bay_vox"
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD)
|
||||
species_allowed = list(SPECIES_VOX)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/vox_alt_eyes
|
||||
name = "Alternate Vox Eyes"
|
||||
icon_state = "bay_vox_eyes"
|
||||
body_parts = list(BP_HEAD)
|
||||
species_allowed = list(SPECIES_VOX)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/c_beast_body
|
||||
name = "Cyber Body"
|
||||
icon_state = "c_beast_body"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_TORSO,BP_GROIN)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/c_beast_plating
|
||||
name = "Cyber Plating (Use w/ Cyber Body)"
|
||||
icon_state = "c_beast_plating"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/c_beast_band
|
||||
name = "Cyber Band (Use w/ Cybertech head)"
|
||||
icon_state = "c_beast_band"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/c_beast_cheek_a
|
||||
name = "Cyber Beast Cheeks A (Use A, B and C)"
|
||||
icon_state = "c_beast_a"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/c_beast_cheek_b
|
||||
name = "Cyber Beast Cheeks B (Use A, B and C)"
|
||||
icon_state = "c_beast_b"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/c_beast_cheek_c
|
||||
name = "Cyber Beast Cheeks C (Use A, B and C)"
|
||||
icon_state = "c_beast_c"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/teshari_large_eyes
|
||||
name = "Teshari large eyes"
|
||||
icon_state = "teshlarge_eyes"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
species_allowed = list(SPECIES_TESHARI)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/teshari_coat
|
||||
name = "Teshari coat"
|
||||
icon_state = "tesh_coat"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_TORSO,BP_HEAD)
|
||||
species_allowed = list(SPECIES_TESHARI)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/teshari_pattern_male
|
||||
name = "Teshari male pattern"
|
||||
icon_state = "tesh-pattern-male"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD)
|
||||
species_allowed = list(SPECIES_TESHARI)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/teshari_pattern_female
|
||||
name = "Teshari female pattern"
|
||||
icon_state = "tesh-pattern-fem"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD)
|
||||
species_allowed = list(SPECIES_TESHARI)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/voxscales
|
||||
name = "Vox Scales"
|
||||
icon_state = "Voxscales"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/voxclaws
|
||||
name = "Vox Claws"
|
||||
icon_state = "Voxclaws"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/voxbeak
|
||||
name = "Vox Beak"
|
||||
icon_state = "Voxscales"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/unathihood
|
||||
name = "Cobra Hood"
|
||||
icon_state = "unathihood"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/unathidoublehorns
|
||||
name = "Double Unathi Horns"
|
||||
icon_state = "unathidoublehorns"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/unathihorns
|
||||
name = "Unathi Horns"
|
||||
icon_state = "unathihorns"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/unathiramhorns
|
||||
name = "Unathi Ram Horns"
|
||||
icon_state = "unathiramhorns"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/unathishortspines
|
||||
name = "Unathi Short Spines"
|
||||
icon_state = "unathishortspines"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/unathilongspines
|
||||
name = "Unathi Long Spines"
|
||||
icon_state = "unathilongspines"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/unathishortfrills
|
||||
name = "Unathi Short Frills"
|
||||
icon_state = "unathishortfrills"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
/datum/sprite_accessory/marking/vr/unathilongfrills
|
||||
name = "Unathi Long Frills"
|
||||
icon_state = "unathilongfrills"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
@@ -0,0 +1,941 @@
|
||||
/*
|
||||
////////////////////////////
|
||||
/ =--------------------= /
|
||||
/ == Tail Definitions == /
|
||||
/ =--------------------= /
|
||||
////////////////////////////
|
||||
*/
|
||||
/datum/sprite_accessory/tail
|
||||
name = "You should not see this..."
|
||||
icon = 'icons/mob/human_races/sprite_accessories/tails.dmi'
|
||||
do_colouration = 0 //Set to 1 to enable coloration using the tail color.
|
||||
|
||||
color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1
|
||||
var/extra_overlay // Icon state of an additional overlay to blend in.
|
||||
var/extra_overlay2 //Tertiary.
|
||||
var/show_species_tail = 0 // If false, do not render species' tail.
|
||||
var/clothing_can_hide = 1 // If true, clothing with HIDETAIL hides it
|
||||
var/desc = "You should not see this..."
|
||||
var/ani_state // State when wagging/animated
|
||||
var/extra_overlay_w // Wagging state for extra overlay
|
||||
var/extra_overlay2_w // Tertiary wagging.
|
||||
var/list/hide_body_parts = list() //Uses organ tag defines. Bodyparts in this list do not have their icons rendered, allowing for more spriter freedom when doing taur/digitigrade stuff.
|
||||
var/icon/clip_mask_icon = null //Icon file used for clip mask.
|
||||
var/clip_mask_state = null //Icon state to generate clip mask. Clip mask is used to 'clip' off the lower part of clothing such as jumpsuits & full suits.
|
||||
var/icon/clip_mask = null //Instantiated clip mask of given icon and state
|
||||
|
||||
species_allowed = list(SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/tail/New()
|
||||
. = ..()
|
||||
if(clip_mask_icon && clip_mask_state)
|
||||
clip_mask = icon(icon = clip_mask_icon, icon_state = clip_mask_state)
|
||||
|
||||
// Species-unique tails
|
||||
|
||||
// Everyone tails
|
||||
|
||||
/datum/sprite_accessory/tail/invisible
|
||||
name = "hide species-sprite tail"
|
||||
icon = null
|
||||
icon_state = null
|
||||
|
||||
species_allowed = list(SPECIES_TAJ, SPECIES_UNATHI, SPECIES_TESHARI, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/tail/squirrel_orange
|
||||
name = "squirel, orange"
|
||||
desc = ""
|
||||
icon_state = "squirrel-orange"
|
||||
|
||||
/datum/sprite_accessory/tail/squirrel_red
|
||||
name = "squirrel, red"
|
||||
desc = ""
|
||||
icon_state = "squirrel-red"
|
||||
|
||||
/datum/sprite_accessory/tail/squirrel
|
||||
name = "squirrel, colorable"
|
||||
desc = ""
|
||||
icon_state = "squirrel"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/kitty
|
||||
name = "kitty, colorable, downwards"
|
||||
desc = ""
|
||||
icon_state = "kittydown"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/kittyup
|
||||
name = "kitty, colorable, upwards"
|
||||
desc = ""
|
||||
icon_state = "kittyup"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/tiger_white
|
||||
name = "tiger, colorable"
|
||||
desc = ""
|
||||
icon_state = "tiger"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "tigerinnerwhite"
|
||||
|
||||
/datum/sprite_accessory/tail/stripey
|
||||
name = "stripey taj, colorable"
|
||||
desc = ""
|
||||
icon_state = "stripeytail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "stripeytail_mark"
|
||||
|
||||
species_allowed = list(SPECIES_TAJ, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/tail/stripeytail_brown
|
||||
name = "stripey taj, brown"
|
||||
desc = ""
|
||||
icon_state = "stripeytail-brown"
|
||||
|
||||
/datum/sprite_accessory/tail/chameleon
|
||||
name = "Chameleon, colorable"
|
||||
desc = ""
|
||||
icon_state = "chameleon"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/bunny
|
||||
name = "bunny, colorable"
|
||||
desc = ""
|
||||
icon_state = "bunny"
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/tail/bear_brown
|
||||
name = "bear, brown"
|
||||
desc = ""
|
||||
icon_state = "bear-brown"
|
||||
|
||||
/datum/sprite_accessory/tail/bear
|
||||
name = "bear, colorable"
|
||||
desc = ""
|
||||
icon_state = "bear"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/dragon
|
||||
name = "dragon, colorable"
|
||||
desc = ""
|
||||
icon_state = "dragon"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/wolf_grey
|
||||
name = "wolf, grey"
|
||||
desc = ""
|
||||
icon_state = "wolf-grey"
|
||||
|
||||
/datum/sprite_accessory/tail/wolf_green
|
||||
name = "wolf, green"
|
||||
desc = ""
|
||||
icon_state = "wolf-green"
|
||||
|
||||
/datum/sprite_accessory/tail/wisewolf
|
||||
name = "wolf, wise"
|
||||
desc = ""
|
||||
icon_state = "wolf-wise"
|
||||
|
||||
/datum/sprite_accessory/tail/blackwolf
|
||||
name = "wolf, black"
|
||||
desc = ""
|
||||
icon_state = "wolf"
|
||||
|
||||
/datum/sprite_accessory/tail/wolf
|
||||
name = "wolf, colorable"
|
||||
desc = ""
|
||||
icon_state = "wolf"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "wolfinner"
|
||||
|
||||
/datum/sprite_accessory/tail/mouse_pink
|
||||
name = "mouse, pink"
|
||||
desc = ""
|
||||
icon_state = "mouse-pink"
|
||||
|
||||
/datum/sprite_accessory/tail/mouse
|
||||
name = "mouse, colorable"
|
||||
desc = ""
|
||||
icon_state = "mouse"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/horse
|
||||
name = "horse tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "horse"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/cow
|
||||
name = "cow tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "cow"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/fantail
|
||||
name = "avian fantail, colorable"
|
||||
desc = ""
|
||||
icon_state = "fantail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/wagtail
|
||||
name = "avian wagtail, colorable"
|
||||
desc = ""
|
||||
icon_state = "wagtail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/nevreandc
|
||||
name = "nevrean tail, dual-color"
|
||||
desc = ""
|
||||
icon_state = "nevreantail_dc"
|
||||
extra_overlay = "nevreantail_dc_tail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/nevreanwagdc
|
||||
name = "nevrean wagtail, dual-color"
|
||||
desc = ""
|
||||
icon_state = "wagtail"
|
||||
extra_overlay = "wagtail_dc_tail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/nevreanwagdc_alt
|
||||
name = "nevrean wagtail, marked, dual-color"
|
||||
desc = ""
|
||||
icon_state = "wagtail2_dc"
|
||||
extra_overlay = "wagtail2_dc_mark"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/crossfox
|
||||
name = "cross fox"
|
||||
desc = ""
|
||||
icon_state = "crossfox"
|
||||
|
||||
/datum/sprite_accessory/tail/beethorax
|
||||
name = "bee thorax"
|
||||
desc = ""
|
||||
icon_state = "beethorax"
|
||||
|
||||
/datum/sprite_accessory/tail/doublekitsune
|
||||
name = "double kitsune tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "doublekitsune"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/spade_color
|
||||
name = "spade-tail (colorable)"
|
||||
desc = ""
|
||||
icon_state = "spadetail-black"
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/tail/snag
|
||||
name = "xenomorph tail 1"
|
||||
desc = ""
|
||||
icon_state = "snag"
|
||||
|
||||
/datum/sprite_accessory/tail/xenotail
|
||||
name = "xenomorph tail 2"
|
||||
desc = ""
|
||||
icon_state = "xenotail"
|
||||
|
||||
/datum/sprite_accessory/tail/eboop
|
||||
name = "EGN mech tail (dual color)"
|
||||
desc = ""
|
||||
icon_state = "eboop"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "eboop_mark"
|
||||
|
||||
/datum/sprite_accessory/tail/ketrai_wag
|
||||
name = "fennix tail (vwag)"
|
||||
desc = ""
|
||||
icon_state = "ketraitail"
|
||||
ani_state = "ketraitail_w"
|
||||
//ckeys_allowed = list("ketrai") //They requested it to be enabled for everyone.
|
||||
|
||||
/datum/sprite_accessory/tail/ketrainew_wag
|
||||
name = "new fennix tail (vwag)"
|
||||
desc = ""
|
||||
icon_state = "ketraitailnew"
|
||||
ani_state = "ketraitailnew_w"
|
||||
|
||||
/datum/sprite_accessory/tail/redpanda
|
||||
name = "red panda"
|
||||
desc = ""
|
||||
icon_state = "redpanda"
|
||||
|
||||
/datum/sprite_accessory/tail/ringtail
|
||||
name = "ringtail, colorable"
|
||||
desc = ""
|
||||
icon_state = "ringtail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "ringtail_mark"
|
||||
|
||||
/datum/sprite_accessory/tail/satyr
|
||||
name = "goat legs, colorable"
|
||||
desc = ""
|
||||
icon_state = "satyr"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
do_colouration = 1
|
||||
hide_body_parts = list(BP_L_LEG, BP_L_FOOT, BP_R_LEG, BP_R_FOOT) //Exclude pelvis just in case.
|
||||
clip_mask_icon = 'icons/mob/human_races/sprite_accessories/taurs.dmi'
|
||||
clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms.
|
||||
|
||||
/datum/sprite_accessory/tail/tailmaw
|
||||
name = "tailmaw, colorable"
|
||||
desc = ""
|
||||
icon_state = "tailmaw"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/tail/curltail
|
||||
name = "curltail (vwag)"
|
||||
desc = ""
|
||||
icon_state = "curltail"
|
||||
ani_state = "curltail_w"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "curltail_mark"
|
||||
extra_overlay_w = "curltail_mark_w"
|
||||
|
||||
/datum/sprite_accessory/tail/shorttail
|
||||
name = "shorttail (vwag)"
|
||||
desc = ""
|
||||
icon_state = "straighttail"
|
||||
ani_state = "straighttail_w"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/sneptail
|
||||
name = "Snep/Furry Tail (vwag)"
|
||||
desc = ""
|
||||
icon_state = "sneptail"
|
||||
ani_state = "sneptail_w"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "sneptail_mark"
|
||||
extra_overlay_w = "sneptail_mark_w"
|
||||
|
||||
|
||||
/datum/sprite_accessory/tail/tiger_new
|
||||
name = "tiger tail (vwag)"
|
||||
desc = ""
|
||||
icon_state = "tigertail"
|
||||
ani_state = "tigertail_w"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "tigertail_mark"
|
||||
extra_overlay_w = "tigertail_mark_w"
|
||||
|
||||
/datum/sprite_accessory/tail/vulp_new
|
||||
name = "new vulp tail (vwag)"
|
||||
desc = ""
|
||||
icon_state = "vulptail"
|
||||
ani_state = "vulptail_w"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "vulptail_mark"
|
||||
extra_overlay_w = "vulptail_mark_w"
|
||||
|
||||
/datum/sprite_accessory/tail/otietail
|
||||
name = "otie tail (vwag)"
|
||||
desc = ""
|
||||
icon_state = "otie"
|
||||
ani_state = "otie_w"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/newtailmaw
|
||||
name = "new tailmaw (vwag)"
|
||||
desc = ""
|
||||
icon_state = "newtailmaw"
|
||||
ani_state = "newtailmaw_w"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/ztail
|
||||
name = "jagged flufftail"
|
||||
desc = ""
|
||||
icon_state = "ztail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/snaketail
|
||||
name = "snake tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "snaketail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/vulpan_alt
|
||||
name = "vulpkanin alt style, colorable"
|
||||
desc = ""
|
||||
icon_state = "vulptail_alt"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/sergaltaildc
|
||||
name = "sergal, dual-color"
|
||||
desc = ""
|
||||
icon_state = "sergal"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "sergal_mark"
|
||||
|
||||
/datum/sprite_accessory/tail/skunktail
|
||||
name = "skunk, dual-color"
|
||||
desc = ""
|
||||
icon_state = "skunktail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "skunktail_mark"
|
||||
|
||||
/datum/sprite_accessory/tail/deertail
|
||||
name = "deer, dual-color"
|
||||
desc = ""
|
||||
icon_state = "deertail"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "deertail_mark"
|
||||
|
||||
/datum/sprite_accessory/tail/teshari_fluffytail
|
||||
name = "Teshari alternative, colorable"
|
||||
desc = ""
|
||||
icon_state = "teshari_fluffytail"
|
||||
extra_overlay = "teshari_fluffytail_mark"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
species_allowed = list(SPECIES_TESHARI, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/tail/nightstalker
|
||||
name = "Nightstalker, colorable"
|
||||
desc = ""
|
||||
icon_state = "nightstalker"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
//For all species tails. Includes haircolored tails.
|
||||
/datum/sprite_accessory/tail/special
|
||||
name = "Blank tail. Do not select."
|
||||
icon = 'icons/effects/species_tails.dmi'
|
||||
|
||||
/datum/sprite_accessory/tail/special/unathi
|
||||
name = "unathi tail"
|
||||
desc = ""
|
||||
icon_state = "sogtail_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
species_allowed = list(SPECIES_UNATHI, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/tail/special/tajaran
|
||||
name = "tajaran tail"
|
||||
desc = ""
|
||||
icon_state = "tajtail_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
species_allowed = list(SPECIES_TAJ, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/tail/special/sergal
|
||||
name = "sergal tail"
|
||||
desc = ""
|
||||
icon_state = "sergtail_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/special/akula
|
||||
name = "akula tail"
|
||||
desc = ""
|
||||
icon_state = "sharktail_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/special/nevrean
|
||||
name = "nevrean tail"
|
||||
desc = ""
|
||||
icon_state = "nevreantail_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/special/armalis
|
||||
name = "armalis tail"
|
||||
desc = ""
|
||||
icon_state = "armalis_tail_humanoid_s"
|
||||
|
||||
/datum/sprite_accessory/tail/special/xenodrone
|
||||
name = "xenomorph drone tail"
|
||||
desc = ""
|
||||
icon_state = "xenos_drone_tail_s"
|
||||
|
||||
/datum/sprite_accessory/tail/special/xenosentinel
|
||||
name = "xenomorph sentinel tail"
|
||||
desc = ""
|
||||
icon_state = "xenos_sentinel_tail_s"
|
||||
|
||||
/datum/sprite_accessory/tail/special/xenohunter
|
||||
name = "xenomorph hunter tail"
|
||||
desc = ""
|
||||
icon_state = "xenos_hunter_tail_s"
|
||||
|
||||
/datum/sprite_accessory/tail/special/xenoqueen
|
||||
name = "xenomorph queen tail"
|
||||
desc = ""
|
||||
icon_state = "xenos_queen_tail_s"
|
||||
|
||||
/datum/sprite_accessory/tail/special/monkey
|
||||
name = "monkey tail"
|
||||
desc = ""
|
||||
icon_state = "chimptail_s"
|
||||
|
||||
/datum/sprite_accessory/tail/special/seromitail
|
||||
name = "seromi tail"
|
||||
desc = ""
|
||||
icon_state = "seromitail_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
species_allowed = list(SPECIES_TESHARI, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/tail/special/seromitailfeathered
|
||||
name = "seromi tail w/ feathers"
|
||||
desc = ""
|
||||
icon_state = "seromitail_s"
|
||||
extra_overlay = "seromitail_feathers_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
species_allowed = list(SPECIES_TESHARI, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/tail/special/unathihc
|
||||
name = "unathi tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "sogtail_hc_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
species_allowed = list(SPECIES_UNATHI, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/tail/special/tajaranhc
|
||||
name = "tajaran tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "tajtail_hc_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
species_allowed = list(SPECIES_TAJ, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/tail/special/sergalhc
|
||||
name = "sergal tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "sergtail_hc_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/special/akulahc
|
||||
name = "akula tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "sharktail_hc_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/special/nevreanhc
|
||||
name = "nevrean tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "nevreantail_hc_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/special/foxhc
|
||||
name = "highlander zorren tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "foxtail_hc_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/special/fennechc
|
||||
name = "flatland zorren tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "fentail_hc_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/special/armalishc
|
||||
name = "armalis tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "armalis_tail_humanoid_hc_s"
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/tail/special/xenodronehc
|
||||
name = "xenomorph drone tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "xenos_drone_tail_hc_s"
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/tail/special/xenosentinelhc
|
||||
name = "xenomorph sentinel tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "xenos_sentinel_tail_hc_s"
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/tail/special/xenohunterhc
|
||||
name = "xenomorph hunter tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "xenos_hunter_tail_hc_s"
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/tail/special/xenoqueenhc
|
||||
name = "xenomorph queen tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "xenos_queen_tail_hc_s"
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/tail/special/monkeyhc
|
||||
name = "monkey tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "chimptail_hc_s"
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/tail/special/seromitailhc
|
||||
name = "seromi tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "seromitail_hc_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/special/seromitailfeatheredhc
|
||||
name = "seromi tail w/ feathers, colorable"
|
||||
desc = ""
|
||||
icon_state = "seromitail_feathers_hc_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/special/vulpan
|
||||
name = "vulpkanin, colorable"
|
||||
desc = ""
|
||||
icon_state = "vulptail_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
|
||||
/datum/sprite_accessory/tail/zenghu_taj
|
||||
name = "Zeng-Hu Tajaran Synth tail"
|
||||
desc = ""
|
||||
icon_state = "zenghu_taj"
|
||||
|
||||
//Taurs moved to a separate file due to extra code around them
|
||||
|
||||
//Buggo Abdomens!
|
||||
|
||||
/datum/sprite_accessory/tail/buggo
|
||||
name = "Bug abdomen, colorable"
|
||||
desc = ""
|
||||
icon_state = "buggo_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/buggobee
|
||||
name = "Bug abdomen, bee top, dual-colorable"
|
||||
desc = ""
|
||||
icon_state = "buggo_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggobee_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggobeefull
|
||||
name = "Bug abdomen, bee full, dual-colorable"
|
||||
desc = ""
|
||||
icon_state = "buggo_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggobeefull_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggounder
|
||||
name = "Bug abdomen, underside, dual-colorable"
|
||||
desc = ""
|
||||
icon_state = "buggo_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggounder_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggofirefly
|
||||
name = "Bug abdomen, firefly, dual-colorable"
|
||||
desc = ""
|
||||
icon_state = "buggo_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggofirefly_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggofat
|
||||
name = "Fat bug abdomen, colorable"
|
||||
desc = ""
|
||||
icon_state = "buggofat_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/buggofatbee
|
||||
name = "Fat bug abdomen, bee top, dual-colorable"
|
||||
desc = ""
|
||||
icon_state = "buggofat_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggofatbee_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggofatbeefull
|
||||
name = "Fat bug abdomen, bee full, dual-colorable"
|
||||
desc = ""
|
||||
icon_state = "buggofat_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggofatbeefull_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggofatunder
|
||||
name = "Fat bug abdomen, underside, dual-colorable"
|
||||
desc = ""
|
||||
icon_state = "buggofat_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggofatunder_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggofatfirefly
|
||||
name = "Fat bug abdomen, firefly, dual-colorable"
|
||||
desc = ""
|
||||
icon_state = "buggofat_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggofatfirefly_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggowag
|
||||
name = "Bug abdomen, colorable, vwag change"
|
||||
desc = ""
|
||||
icon_state = "buggo_s"
|
||||
ani_state = "buggofat_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/buggobeewag
|
||||
name = "Bug abdomen, bee top, dual color, vwag"
|
||||
desc = ""
|
||||
icon_state = "buggo_s"
|
||||
ani_state = "buggofat_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggobee_markings"
|
||||
extra_overlay_w = "buggofatbee_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggobeefullwag
|
||||
name = "Bug abdomen, bee full, dual color, vwag"
|
||||
desc = ""
|
||||
icon_state = "buggo_s"
|
||||
ani_state = "buggofat_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggobeefull_markings"
|
||||
extra_overlay_w = "buggofatbeefull_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggounderwag
|
||||
name = "Bug abdomen, underside, dual color, vwag"
|
||||
desc = ""
|
||||
icon_state = "buggo_s"
|
||||
ani_state = "buggofat_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggounder_markings"
|
||||
extra_overlay_w = "buggofatunder_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggofireflywag
|
||||
name = "Bug abdomen, firefly, dual color, vwag"
|
||||
desc = ""
|
||||
icon_state = "buggo_s"
|
||||
ani_state = "buggofat_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggofirefly_markings"
|
||||
extra_overlay_w = "buggofatfirefly_markings"
|
||||
|
||||
//Vass buggo variants!
|
||||
|
||||
/datum/sprite_accessory/tail/buggovass
|
||||
name = "Bug abdomen, vass, colorable"
|
||||
desc = ""
|
||||
icon_state = "buggo_vass_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/buggovassbee
|
||||
name = "Bug abdomen, bee top, dc, vass"
|
||||
desc = ""
|
||||
icon_state = "buggo_vass_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggobee_vass_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggovassbeefull
|
||||
name = "Bug abdomen, bee full, dc, vass"
|
||||
desc = ""
|
||||
icon_state = "buggo_vass_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggobeefull_vass_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggovassunder
|
||||
name = "Bug abdomen, underside, dc, vass"
|
||||
desc = ""
|
||||
icon_state = "buggo_vass_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggounder_vass_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggovassfirefly
|
||||
name = "Bug abdomen, firefly, dc, vass"
|
||||
desc = ""
|
||||
icon_state = "buggo_vass_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggofirefly_vass_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggovassfat
|
||||
name = "Fat bug abdomen, vass, colorable"
|
||||
desc = ""
|
||||
icon_state = "buggofat_vass_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/buggovassfatbee
|
||||
name = "Fat bug abdomen, bee top, dc, vass"
|
||||
desc = ""
|
||||
icon_state = "buggofat_vass_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggofatbee_vass_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggovassfatbeefull
|
||||
name = "Fat bug abdomen, bee full, dc, vass"
|
||||
desc = ""
|
||||
icon_state = "buggofat_vass_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggofatbeefull_vass_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggovassfatunder
|
||||
name = "Fat bug abdomen, underside, dc, vass"
|
||||
desc = ""
|
||||
icon_state = "buggofat_vass_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggofatunder_vass_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggovassfatfirefly
|
||||
name = "Fat bug abdomen, firefly, dc, vass"
|
||||
desc = ""
|
||||
icon_state = "buggofat_vass_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggofatfirefly_vass_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggovasswag
|
||||
name = "Bug abdomen, vass, colorable, vwag change"
|
||||
desc = ""
|
||||
icon_state = "buggo_vass_s"
|
||||
ani_state = "buggofat_vass_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/buggovassbeewag
|
||||
name = "Bug abdomen, bee top, dc, vass, vwag"
|
||||
desc = ""
|
||||
icon_state = "buggo_vass_s"
|
||||
ani_state = "buggofat_vass_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggobee_vass_markings"
|
||||
extra_overlay_w = "buggofatbee_vass_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggovassbeefullwag
|
||||
name = "Bug abdomen, bee full, dc, vass, vwag"
|
||||
desc = ""
|
||||
icon_state = "buggo_vass_s"
|
||||
ani_state = "buggofat_vass_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggobeefull_vass_markings"
|
||||
extra_overlay_w = "buggofatbeefull_vass_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggovassunderwag
|
||||
name = "Bug abdomen, underside, dc, vass, vwag"
|
||||
desc = ""
|
||||
icon_state = "buggo_vass_s"
|
||||
ani_state = "buggofat_vass_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggounder_vass_markings"
|
||||
extra_overlay_w = "buggofatunder_vass_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/buggovassfireflywag
|
||||
name = "Bug abdomen, firefly, dc, vass, vwag"
|
||||
desc = ""
|
||||
icon_state = "buggo_vass_s"
|
||||
ani_state = "buggofat_vass_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "buggofirefly_vass_markings"
|
||||
extra_overlay_w = "buggofatfirefly_vass_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/tail_smooth
|
||||
name = "Smooth Lizard Tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "tail_smooth"
|
||||
ani_state = "tail_smooth_w"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/triplekitsune_colorable
|
||||
name = "Kitsune 3 tails, colorable"
|
||||
desc = ""
|
||||
icon_state = "triplekitsune"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "triplekitsune_tips"
|
||||
|
||||
/datum/sprite_accessory/tail/ninekitsune_colorable
|
||||
name = "Kitsune 9 tails, colorable"
|
||||
desc = ""
|
||||
icon_state = "ninekitsune"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "ninekitsune-tips"
|
||||
|
||||
/datum/sprite_accessory/tail/shadekin_short
|
||||
name = "Shadekin Short Tail, colorable"
|
||||
desc = ""
|
||||
icon_state = "shadekin-short"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
//apply_restrictions = TRUE
|
||||
//species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
|
||||
|
||||
/datum/sprite_accessory/tail/wartacosushi_tail //brightened +20RGB from matching roboparts
|
||||
name = "Ward-Takahashi Tail"
|
||||
desc = ""
|
||||
icon_state = "wardtakahashi_vulp"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/tail/wartacosushi_tail_dc
|
||||
name = "Ward-Takahashi Tail, dual-color"
|
||||
desc = ""
|
||||
icon_state = "wardtakahashi_vulp_dc"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "wardtakahashi_vulp_dc_mark"
|
||||
+17
-983
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,349 @@
|
||||
/datum/riding/taur
|
||||
keytype = /obj/item/weapon/material/twohanded/riding_crop // Crack!
|
||||
nonhuman_key_exemption = FALSE // If true, nonhumans who can't hold keys don't need them, like borgs and simplemobs.
|
||||
key_name = "a riding crop" // What the 'keys' for the thing being rided on would be called.
|
||||
only_one_driver = TRUE // If true, only the person in 'front' (first on list of riding mobs) can drive.
|
||||
|
||||
/datum/riding/taur/handle_vehicle_layer()
|
||||
if(ridden.has_buckled_mobs())
|
||||
ridden.layer = initial(ridden.layer)
|
||||
else
|
||||
var/mob/living/L = ridden
|
||||
if(!(istype(L) && (L.status_flags & HIDING)))
|
||||
ridden.layer = initial(ridden.layer)
|
||||
|
||||
/datum/riding/taur/ride_check(mob/living/M)
|
||||
var/mob/living/L = ridden
|
||||
if(L.stat)
|
||||
force_dismount(M)
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/datum/riding/taur/force_dismount(mob/M)
|
||||
. = ..()
|
||||
ridden.visible_message("<span class='notice'>[M] stops riding [ridden]!</span>")
|
||||
|
||||
//Hoooo boy.
|
||||
/datum/riding/taur/get_offsets(pass_index) // list(dir = x, y, layer)
|
||||
var/mob/living/L = ridden
|
||||
var/scale_x = L.icon_scale_x
|
||||
var/scale_y = L.icon_scale_y
|
||||
|
||||
var/list/values = list(
|
||||
"[NORTH]" = list(0, 8*scale_y, ABOVE_MOB_LAYER),
|
||||
"[SOUTH]" = list(0, 8*scale_y, BELOW_MOB_LAYER),
|
||||
"[EAST]" = list(-10*scale_x, 8*scale_y, ABOVE_MOB_LAYER),
|
||||
"[WEST]" = list(10*scale_x, 8*scale_y, ABOVE_MOB_LAYER))
|
||||
|
||||
return values
|
||||
|
||||
//Human overrides for taur riding
|
||||
/mob/living/carbon/human
|
||||
max_buckled_mobs = 1 //Yeehaw
|
||||
can_buckle = TRUE
|
||||
buckle_movable = TRUE
|
||||
buckle_lying = FALSE
|
||||
|
||||
/mob/living/carbon/human/buckle_mob(mob/living/M, forced = FALSE, check_loc = TRUE)
|
||||
if(forced)
|
||||
return ..() // Skip our checks
|
||||
if(!isTaurTail(tail_style))
|
||||
return FALSE
|
||||
else
|
||||
var/datum/sprite_accessory/tail/taur/taurtype = tail_style
|
||||
if(!taurtype.can_ride)
|
||||
return FALSE
|
||||
if(lying)
|
||||
return FALSE
|
||||
if(!ishuman(M))
|
||||
return FALSE
|
||||
if(M in buckled_mobs)
|
||||
return FALSE
|
||||
// if(M.size_multiplier > size_multiplier * 1.2)
|
||||
// to_chat(M,"<span class='warning'>This isn't a pony show! You need to be bigger for them to ride.</span>")
|
||||
// return FALSE
|
||||
if(M.loc != src.loc)
|
||||
if(M.Adjacent(src))
|
||||
M.forceMove(get_turf(src))
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
if(isTaurTail(H.tail_style))
|
||||
to_chat(src,"<span class='warning'>Too many legs. TOO MANY LEGS!!</span>")
|
||||
return FALSE
|
||||
|
||||
. = ..()
|
||||
if(.)
|
||||
buckled_mobs[M] = "riding"
|
||||
|
||||
/mob/living/carbon/human/MouseDrop_T(mob/living/M, mob/living/user) //Prevention for forced relocation caused by can_buckle. Base proc has no other use.
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/proc/taur_mount(var/mob/living/M in living_mobs(1))
|
||||
set name = "Taur Mount/Dismount"
|
||||
set category = "Abilities"
|
||||
set desc = "Let people ride on you."
|
||||
|
||||
if(LAZYLEN(buckled_mobs))
|
||||
var/datum/riding/R = riding_datum
|
||||
for(var/rider in buckled_mobs)
|
||||
R.force_dismount(rider)
|
||||
return
|
||||
if (stat != CONSCIOUS)
|
||||
return
|
||||
if(!can_buckle || !istype(M) || !M.Adjacent(src) || M.buckled)
|
||||
return
|
||||
if(buckle_mob(M))
|
||||
visible_message("<span class='notice'>[M] starts riding [name]!</span>")
|
||||
|
||||
/mob/living/carbon/human/attack_hand(mob/user as mob)
|
||||
if(LAZYLEN(buckled_mobs))
|
||||
//We're getting off!
|
||||
if(user in buckled_mobs)
|
||||
riding_datum.force_dismount(user)
|
||||
//We're kicking everyone off!
|
||||
if(user == src)
|
||||
for(var/rider in buckled_mobs)
|
||||
riding_datum.force_dismount(rider)
|
||||
else
|
||||
. = ..()
|
||||
|
||||
/*
|
||||
////////////////////////////
|
||||
/ =--------------------= /
|
||||
/ == Taur Definitions == /
|
||||
/ =--------------------= /
|
||||
////////////////////////////
|
||||
*/
|
||||
|
||||
// Taur sprites are now a subtype of tail since they are mutually exclusive anyway.
|
||||
|
||||
/datum/sprite_accessory/tail/taur
|
||||
name = "You should not see this..."
|
||||
icon = 'icons/mob/human_races/sprite_accessories/taurs.dmi'
|
||||
do_colouration = 1 // Yes color, using tail color
|
||||
color_blend_mode = ICON_MULTIPLY // The sprites for taurs are designed for ICON_MULTIPLY
|
||||
|
||||
var/icon/suit_sprites = null //File for suit sprites, if any.
|
||||
var/icon/under_sprites = null
|
||||
|
||||
var/icon_sprite_tag // This is where we put stuff like _Horse, so we can assign icons easier.
|
||||
|
||||
var/can_ride = FALSE //whether we're real rideable taur or just in that category.
|
||||
|
||||
hide_body_parts = list(BP_L_LEG, BP_L_FOOT, BP_R_LEG, BP_R_FOOT) //Exclude pelvis just in case.
|
||||
clip_mask_icon = 'icons/mob/human_races/sprite_accessories/taurs.dmi'
|
||||
clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms.
|
||||
|
||||
// Species-unique long tails/taurhalves
|
||||
|
||||
// Tails/taurhalves for everyone
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf
|
||||
name = "Wolf (Taur)"
|
||||
icon_state = "wolf_s"
|
||||
under_sprites = 'icons/mob/taursuits_wolf.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_wolf.dmi'
|
||||
icon_sprite_tag = "wolf"
|
||||
|
||||
//TFF 22/11/19 - CHOMPStation port of fat taur sprites
|
||||
/datum/sprite_accessory/tail/taur/fatwolf
|
||||
name = "Fat Wolf (Taur)"
|
||||
icon_state = "fatwolf_s"
|
||||
icon_sprite_tag = "wolf" //This could be modified later.
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/wolf_2c
|
||||
name = "Wolf dual-color (Taur)"
|
||||
icon_state = "wolf_s"
|
||||
extra_overlay = "wolf_markings"
|
||||
//icon_sprite_tag = "wolf2c"
|
||||
|
||||
//TFF 22/11/19 - CHOMPStation port of fat taur sprites
|
||||
/datum/sprite_accessory/tail/taur/wolf/fatwolf_2c
|
||||
name = "Fat Wolf dual-color (Taur)"
|
||||
icon_state = "fatwolf_s"
|
||||
extra_overlay = "fatwolf_markings"
|
||||
//icon_sprite_tag = "fatwolf2c"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wolf/synthwolf
|
||||
name = "SynthWolf dual-color (Taur)"
|
||||
icon_state = "synthwolf_s"
|
||||
extra_overlay = "synthwolf_markings"
|
||||
//icon_sprite_tag = "synthwolf"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/naga
|
||||
name = "Naga (Taur)"
|
||||
icon_state = "naga_s"
|
||||
suit_sprites = 'icons/mob/taursuits_naga.dmi'
|
||||
//icon_sprite_tag = "naga"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/naga/naga_2c
|
||||
name = "Naga dual-color (Taur)"
|
||||
icon_state = "naga_s"
|
||||
extra_overlay = "naga_markings"
|
||||
//icon_sprite_tag = "naga2c"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/horse
|
||||
name = "Horse (Taur)"
|
||||
icon_state = "horse_s"
|
||||
under_sprites = 'icons/mob/taursuits_horse.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_horse.dmi'
|
||||
icon_sprite_tag = "horse"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/horse/synthhorse
|
||||
name = "SynthHorse dual-color (Taur)"
|
||||
icon_state = "synthhorse_s"
|
||||
extra_overlay = "synthhorse_markings"
|
||||
//icon_sprite_tag = "synthhorse"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/cow
|
||||
name = "Cow (Taur)"
|
||||
icon_state = "cow_s"
|
||||
suit_sprites = 'icons/mob/taursuits_cow.dmi'
|
||||
icon_sprite_tag = "cow"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/deer
|
||||
name = "Deer dual-color (Taur)"
|
||||
icon_state = "deer_s"
|
||||
extra_overlay = "deer_markings"
|
||||
suit_sprites = 'icons/mob/taursuits_deer.dmi'
|
||||
icon_sprite_tag = "deer"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard
|
||||
name = "Lizard (Taur)"
|
||||
icon_state = "lizard_s"
|
||||
suit_sprites = 'icons/mob/taursuits_lizard.dmi'
|
||||
icon_sprite_tag = "lizard"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard/lizard_2c
|
||||
name = "Lizard dual-color (Taur)"
|
||||
icon_state = "lizard_s"
|
||||
extra_overlay = "lizard_markings"
|
||||
//icon_sprite_tag = "lizard2c"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard/synthlizard
|
||||
name = "SynthLizard dual-color (Taur)"
|
||||
icon_state = "synthlizard_s"
|
||||
extra_overlay = "synthlizard_markings"
|
||||
//icon_sprite_tag = "synthlizard"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/spider
|
||||
name = "Spider (Taur)"
|
||||
icon_state = "spider_s"
|
||||
suit_sprites = 'icons/mob/taursuits_spider.dmi'
|
||||
icon_sprite_tag = "spider"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/tents
|
||||
name = "Tentacles (Taur)"
|
||||
icon_state = "tent_s"
|
||||
icon_sprite_tag = "tentacle"
|
||||
can_ride = 0
|
||||
|
||||
/datum/sprite_accessory/tail/taur/feline
|
||||
name = "Feline (Taur)"
|
||||
icon_state = "feline_s"
|
||||
suit_sprites = 'icons/mob/taursuits_feline.dmi'
|
||||
icon_sprite_tag = "feline"
|
||||
|
||||
//TFF 22/11/19 - CHOMPStation port of fat taur sprites
|
||||
/datum/sprite_accessory/tail/taur/fatfeline
|
||||
name = "Fat Feline (Taur)"
|
||||
icon_state = "fatfeline_s"
|
||||
//icon_sprite_tag = "fatfeline"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/fatfeline_wag
|
||||
name = "Fat Feline (Taur) (vwag)"
|
||||
icon_state = "fatfeline_s"
|
||||
ani_state = "fatfeline_w"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/feline/feline_2c
|
||||
name = "Feline dual-color (Taur)"
|
||||
icon_state = "feline_s"
|
||||
extra_overlay = "feline_markings"
|
||||
//icon_sprite_tag = "feline2c"
|
||||
|
||||
//TFF 22/11/19 - CHOMPStation port of fat taur sprites
|
||||
/datum/sprite_accessory/tail/taur/feline/fatfeline_2c
|
||||
name = "Fat Feline dual-color (Taur)"
|
||||
icon_state = "fatfeline_s"
|
||||
extra_overlay = "fatfeline_markings"
|
||||
//icon_sprite_tag = "fatfeline2c"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/feline/synthfeline
|
||||
name = "SynthFeline dual-color (Taur)"
|
||||
icon_state = "synthfeline_s"
|
||||
extra_overlay = "synthfeline_markings"
|
||||
//icon_sprite_tag = "synthfeline"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/slug
|
||||
name = "Slug (Taur)"
|
||||
icon_state = "slug_s"
|
||||
suit_sprites = 'icons/mob/taursuits_slug.dmi'
|
||||
icon_sprite_tag = "slug"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/frog
|
||||
name = "Frog (Taur)"
|
||||
icon_state = "frog_s"
|
||||
icon_sprite_tag = "frog"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/thicktentacles
|
||||
name = "Thick Tentacles (Taur)"
|
||||
icon_state = "tentacle_s"
|
||||
can_ride = 0
|
||||
icon_sprite_tag = "thick_tentacles"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/drake //Enabling on request, no suit compatibility but then again see 2 above.
|
||||
name = "Drake (Taur)"
|
||||
icon_state = "drake_s"
|
||||
extra_overlay = "drake_markings"
|
||||
suit_sprites = 'icons/mob/taursuits_drake.dmi'
|
||||
icon_sprite_tag = "drake"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/otie
|
||||
name = "Otie (Taur)"
|
||||
icon_state = "otie_s"
|
||||
extra_overlay = "otie_markings"
|
||||
suit_sprites = 'icons/mob/taursuits_otie.dmi'
|
||||
icon_sprite_tag = "otie"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/alraune/alraune_2c
|
||||
name = "Alraune (dual color)"
|
||||
icon_state = "alraunecolor_s"
|
||||
ani_state = "alraunecolor_closed_s"
|
||||
ckeys_allowed = null
|
||||
do_colouration = 1
|
||||
extra_overlay = "alraunecolor_markings"
|
||||
extra_overlay_w = "alraunecolor_closed_markings"
|
||||
clip_mask_state = "taur_clip_mask_alraune"
|
||||
icon_sprite_tag = "alraune"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/wasp
|
||||
name = "Wasp (dual color)"
|
||||
icon_state = "wasp_s"
|
||||
extra_overlay = "wasp_markings"
|
||||
clip_mask_state = "taur_clip_mask_wasp"
|
||||
icon_sprite_tag = "wasp"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/mermaid
|
||||
name = "Mermaid (Taur)"
|
||||
icon_state = "mermaid_s"
|
||||
can_ride = 0
|
||||
icon_sprite_tag = "mermaid"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/shadekin_tail
|
||||
name = "Shadekin Tail"
|
||||
icon_state = "shadekin_s"
|
||||
can_ride = 0
|
||||
hide_body_parts = null
|
||||
clip_mask_icon = null
|
||||
clip_mask_state = null
|
||||
//apply_restrictions = TRUE
|
||||
//species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
|
||||
|
||||
/datum/sprite_accessory/tail/taur/shadekin_tail/shadekin_tail_2c
|
||||
name = "Shadekin Tail (dual color)"
|
||||
extra_overlay = "shadekin_markings"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/shadekin_tail/shadekin_tail_long
|
||||
name = "Shadekin Long Tail"
|
||||
icon_state = "shadekin_long_s"
|
||||
+1
-120
@@ -1,117 +1,3 @@
|
||||
/datum/riding/taur
|
||||
keytype = /obj/item/weapon/material/twohanded/fluff/riding_crop // Crack!
|
||||
nonhuman_key_exemption = FALSE // If true, nonhumans who can't hold keys don't need them, like borgs and simplemobs.
|
||||
key_name = "a riding crop" // What the 'keys' for the thing being rided on would be called.
|
||||
only_one_driver = TRUE // If true, only the person in 'front' (first on list of riding mobs) can drive.
|
||||
|
||||
/datum/riding/taur/handle_vehicle_layer()
|
||||
if(ridden.has_buckled_mobs())
|
||||
ridden.layer = initial(ridden.layer)
|
||||
else
|
||||
var/mob/living/L = ridden
|
||||
if(!(istype(L) && (L.status_flags & HIDING)))
|
||||
ridden.layer = initial(ridden.layer)
|
||||
|
||||
/datum/riding/taur/ride_check(mob/living/M)
|
||||
var/mob/living/L = ridden
|
||||
if(L.stat)
|
||||
force_dismount(M)
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/datum/riding/taur/force_dismount(mob/M)
|
||||
. = ..()
|
||||
ridden.visible_message("<span class='notice'>[M] stops riding [ridden]!</span>")
|
||||
|
||||
//Hoooo boy.
|
||||
/datum/riding/taur/get_offsets(pass_index) // list(dir = x, y, layer)
|
||||
var/mob/living/L = ridden
|
||||
var/scale = L.size_multiplier
|
||||
|
||||
var/list/values = list(
|
||||
"[NORTH]" = list(0, 8*scale, ABOVE_MOB_LAYER),
|
||||
"[SOUTH]" = list(0, 8*scale, BELOW_MOB_LAYER),
|
||||
"[EAST]" = list(-10*scale, 8*scale, ABOVE_MOB_LAYER),
|
||||
"[WEST]" = list(10*scale, 8*scale, ABOVE_MOB_LAYER))
|
||||
|
||||
return values
|
||||
|
||||
//Human overrides for taur riding
|
||||
/mob/living/carbon/human
|
||||
max_buckled_mobs = 1 //Yeehaw
|
||||
can_buckle = TRUE
|
||||
buckle_movable = TRUE
|
||||
buckle_lying = FALSE
|
||||
|
||||
/mob/living/carbon/human/buckle_mob(mob/living/M, forced = FALSE, check_loc = TRUE)
|
||||
if(forced)
|
||||
return ..() // Skip our checks
|
||||
if(!isTaurTail(tail_style))
|
||||
return FALSE
|
||||
else
|
||||
var/datum/sprite_accessory/tail/taur/taurtype = tail_style
|
||||
if(!taurtype.can_ride)
|
||||
return FALSE
|
||||
if(lying)
|
||||
return FALSE
|
||||
if(!ishuman(M))
|
||||
return FALSE
|
||||
if(M in buckled_mobs)
|
||||
return FALSE
|
||||
if(M.size_multiplier > size_multiplier * 1.2)
|
||||
to_chat(M,"<span class='warning'>This isn't a pony show! You need to be bigger for them to ride.</span>")
|
||||
return FALSE
|
||||
if(M.loc != src.loc)
|
||||
if(M.Adjacent(src))
|
||||
M.forceMove(get_turf(src))
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
|
||||
if(isTaurTail(H.tail_style))
|
||||
var/datum/sprite_accessory/tail/taur/ridertype = H.tail_style
|
||||
if(ridertype.can_ride)
|
||||
if(istype(ridertype, /datum/sprite_accessory/tail/taur/naga) || istype(ridertype, /datum/sprite_accessory/tail/taur/slug))
|
||||
to_chat(src,"<span class='warning'>Too few legs. TOO FEW LEGS!!</span>")
|
||||
return FALSE
|
||||
to_chat(src,"<span class='warning'>Too many legs. TOO MANY LEGS!!</span>")
|
||||
return FALSE
|
||||
|
||||
. = ..()
|
||||
if(.)
|
||||
buckled_mobs[M] = "riding"
|
||||
|
||||
/mob/living/carbon/human/MouseDrop_T(mob/living/M, mob/living/user) //Prevention for forced relocation caused by can_buckle. Base proc has no other use.
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/proc/taur_mount(var/mob/living/M in living_mobs(1))
|
||||
set name = "Taur Mount/Dismount"
|
||||
set category = "Abilities"
|
||||
set desc = "Let people ride on you."
|
||||
|
||||
if(LAZYLEN(buckled_mobs))
|
||||
var/datum/riding/R = riding_datum
|
||||
for(var/rider in buckled_mobs)
|
||||
R.force_dismount(rider)
|
||||
return
|
||||
if (stat != CONSCIOUS)
|
||||
return
|
||||
if(!can_buckle || !istype(M) || !M.Adjacent(src) || M.buckled)
|
||||
return
|
||||
if(buckle_mob(M))
|
||||
visible_message("<span class='notice'>[M] starts riding [name]!</span>")
|
||||
|
||||
/mob/living/carbon/human/attack_hand(mob/user as mob)
|
||||
if(LAZYLEN(buckled_mobs))
|
||||
//We're getting off!
|
||||
if(user in buckled_mobs)
|
||||
riding_datum.force_dismount(user)
|
||||
//We're kicking everyone off!
|
||||
if(user == src)
|
||||
for(var/rider in buckled_mobs)
|
||||
riding_datum.force_dismount(rider)
|
||||
else
|
||||
. = ..()
|
||||
|
||||
/*
|
||||
////////////////////////////
|
||||
/ =--------------------= /
|
||||
@@ -128,12 +14,7 @@
|
||||
do_colouration = 1 // Yes color, using tail color
|
||||
color_blend_mode = ICON_MULTIPLY // The sprites for taurs are designed for ICON_MULTIPLY
|
||||
|
||||
var/icon/suit_sprites = null //File for suit sprites, if any.
|
||||
var/icon/under_sprites = null
|
||||
|
||||
var/icon_sprite_tag // This is where we put stuff like _Horse, so we can assign icons easier.
|
||||
|
||||
var/can_ride = 1 //whether we're real rideable taur or just in that category
|
||||
can_ride = TRUE //whether we're real rideable taur or just in that category
|
||||
|
||||
//Could do nested lists but it started becoming a nightmare. It'd be more fun for lookups of a_intent and m_intent, but then subtypes need to
|
||||
//duplicate all the messages, and it starts getting awkward. These are singletons, anyway!
|
||||
@@ -603,739 +603,29 @@
|
||||
species_allowed = list(SPECIES_VULPKANIN)
|
||||
gender = NEUTER
|
||||
|
||||
//VOREStation Body Markings and Overrides
|
||||
//Reminder: BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD
|
||||
|
||||
/datum/sprite_accessory/marking //Override for base markings
|
||||
color_blend_mode = ICON_ADD
|
||||
|
||||
/datum/sprite_accessory/marking/vr
|
||||
icon = 'icons/mob/human_races/markings_vr.dmi'
|
||||
|
||||
vulp_belly
|
||||
name = "belly fur (Vulp)"
|
||||
icon_state = "vulp_belly"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
vulp_fullbelly
|
||||
name = "full belly fur (Vulp)"
|
||||
icon_state = "vulp_fullbelly"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
vulp_crest
|
||||
name = "belly crest (Vulp)"
|
||||
icon_state = "vulp_crest"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
vulp_nose
|
||||
name = "nose (Vulp)"
|
||||
icon_state = "vulp_nose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
vulp_short_nose
|
||||
name = "nose, short (Vulp)"
|
||||
icon_state = "vulp_short_nose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
snoutstripe
|
||||
name = "snout stripe (Vulp)"
|
||||
icon_state = "snoutstripe"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
vulp_face
|
||||
name = "face (Vulp)"
|
||||
icon_state = "vulp_face"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
vulp_facealt
|
||||
name = "face, alt. (Vulp)"
|
||||
icon_state = "vulp_facealt"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
vulp_earsface
|
||||
name = "ears and face (Vulp)"
|
||||
icon_state = "vulp_earsface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
vulp_all
|
||||
name = "all head highlights (Vulp)"
|
||||
icon_state = "vulp_all"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
sergal_full
|
||||
name = "Sergal Markings"
|
||||
icon_state = "sergal_full"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
species_allowed = list("Sergal")
|
||||
|
||||
sergal_full_female
|
||||
name = "Sergal Markings (Female)"
|
||||
icon_state = "sergal_full_female"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
species_allowed = list("Sergal")
|
||||
|
||||
monoeye
|
||||
name = "Monoeye"
|
||||
icon_state = "monoeye"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
spidereyes
|
||||
name = "Spider Eyes"
|
||||
icon_state = "spidereyes"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
sergaleyes
|
||||
name = "Sergal Eyes"
|
||||
icon_state = "eyes_sergal"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
closedeyes
|
||||
name = "Closed Eyes"
|
||||
icon_state = "eyes_closed"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
brows
|
||||
name = "Eyebrows"
|
||||
icon_state = "brows"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
nevrean_female
|
||||
name = "Female Nevrean beak"
|
||||
icon_state = "nevrean_f"
|
||||
body_parts = list(BP_HEAD)
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
gender = FEMALE
|
||||
|
||||
nevrean_male
|
||||
name = "Male Nevrean beak"
|
||||
icon_state = "nevrean_m"
|
||||
body_parts = list(BP_HEAD)
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
gender = MALE
|
||||
|
||||
spots
|
||||
name = "Spots"
|
||||
icon_state = "spots"
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
|
||||
|
||||
shaggy_mane
|
||||
name = "Shaggy mane/feathers"
|
||||
icon_state = "shaggy"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO)
|
||||
|
||||
jagged_teeth
|
||||
name = "Jagged teeth"
|
||||
icon_state = "jagged"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
blank_face
|
||||
name = "Blank round face (use with monster mouth)"
|
||||
icon_state = "blankface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
monster_mouth
|
||||
name = "Monster mouth"
|
||||
icon_state = "monster"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
saber_teeth
|
||||
name = "Saber teeth"
|
||||
icon_state = "saber"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
fangs
|
||||
name = "Fangs"
|
||||
icon_state = "fangs"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
tusks
|
||||
name = "Tusks"
|
||||
icon_state = "tusks"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
otie_face
|
||||
name = "Otie face"
|
||||
icon_state = "otieface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
otie_nose
|
||||
name = "Otie nose"
|
||||
icon_state = "otie_nose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
otienose_lite
|
||||
name = "Short otie nose"
|
||||
icon_state = "otienose_lite"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
backstripes
|
||||
name = "Back stripes"
|
||||
icon_state = "otiestripes"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_HEAD)
|
||||
|
||||
belly_butt
|
||||
name = "Belly and butt"
|
||||
icon_state = "bellyandbutt"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_GROIN,BP_TORSO)
|
||||
|
||||
fingers_toes
|
||||
name = "Fingers and toes"
|
||||
icon_state = "fingerstoes"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
otie_socks
|
||||
name = "Fingerless socks"
|
||||
icon_state = "otiesocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
corvid_beak
|
||||
name = "Corvid beak"
|
||||
icon_state = "corvidbeak"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
corvid_belly
|
||||
name = "Corvid belly"
|
||||
icon_state = "corvidbelly"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
cow_body
|
||||
name = "Cow markings"
|
||||
icon_state = "cowbody"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
cow_nose
|
||||
name = "Cow nose"
|
||||
icon_state = "cownose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
zmask
|
||||
name = "Eye mask"
|
||||
icon_state = "zmask"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
zbody
|
||||
name = "Thick jagged stripes"
|
||||
icon_state = "zbody"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_GROIN,BP_TORSO)
|
||||
|
||||
znose
|
||||
name = "Jagged snout"
|
||||
icon_state = "znose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
otter_nose
|
||||
name = "Otter nose"
|
||||
icon_state = "otternose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
otter_face
|
||||
name = "Otter face"
|
||||
icon_state = "otterface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
deer_face
|
||||
name = "Deer face"
|
||||
icon_state = "deerface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
sharkface
|
||||
name = "Akula snout"
|
||||
icon_state = "sharkface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
sheppy_face
|
||||
name = "Shepherd snout"
|
||||
icon_state = "shepface"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
sheppy_back
|
||||
name = "Shepherd back"
|
||||
icon_state = "shepback"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
zorren_belly_male
|
||||
name = "Zorren Male Torso"
|
||||
icon_state = "zorren_belly"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
zorren_belly_female
|
||||
name = "Zorren Female Torso"
|
||||
icon_state = "zorren_belly_female"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
zorren_back_patch
|
||||
name = "Zorren Back Patch"
|
||||
icon_state = "zorren_backpatch"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO)
|
||||
|
||||
zorren_face_male
|
||||
name = "Zorren Male Face"
|
||||
icon_state = "zorren_face"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
gender = MALE
|
||||
|
||||
zorren_face_female
|
||||
name = "Zorren Female Face"
|
||||
icon_state = "zorren_face_female"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
gender = FEMALE
|
||||
|
||||
zorren_muzzle_male
|
||||
name = "Zorren Male Muzzle"
|
||||
icon_state = "zorren_muzzle"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
gender = MALE
|
||||
|
||||
zorren_muzzle_female
|
||||
name = "Zorren Female Muzzle"
|
||||
icon_state = "zorren_muzzle_female"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
gender = FEMALE
|
||||
|
||||
zorren_socks
|
||||
name = "Zorren Socks"
|
||||
icon_state = "zorren_socks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
zorren_longsocks
|
||||
name = "Zorren Longsocks"
|
||||
icon_state = "zorren_longsocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
tesh_feathers
|
||||
name = "Teshari Feathers"
|
||||
icon_state = "tesh-feathers"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
harpy_feathers
|
||||
name = "Rapala leg Feather"
|
||||
icon_state = "harpy-feathers"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG)
|
||||
|
||||
harpy_legs
|
||||
name = "Rapala leg coloring"
|
||||
icon_state = "harpy-leg"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG)
|
||||
|
||||
chooves
|
||||
name = "Cloven hooves"
|
||||
icon_state = "chooves"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT)
|
||||
|
||||
alurane
|
||||
name = "Alurane Body"
|
||||
icon_state = "alurane"
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
ckeys_allowed = list("natje")
|
||||
|
||||
body_tone
|
||||
name = "Body toning (for emergency contrast loss)"
|
||||
icon_state = "btone"
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
|
||||
|
||||
gloss
|
||||
name = "Full body gloss"
|
||||
icon_state = "gloss"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
eboop_panels
|
||||
name = "Eggnerd FBP panels"
|
||||
icon_state = "eboop"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
osocks_rarm
|
||||
name = "Modular Longsock (right arm)"
|
||||
icon_state = "osocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_ARM,BP_R_HAND)
|
||||
|
||||
osocks_larm
|
||||
name = "Modular Longsock (left arm)"
|
||||
icon_state = "osocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_ARM,BP_L_HAND)
|
||||
|
||||
osocks_rleg
|
||||
name = "Modular Longsock (right leg)"
|
||||
icon_state = "osocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_FOOT,BP_R_LEG)
|
||||
|
||||
osocks_lleg
|
||||
name = "Modular Longsock (left leg)"
|
||||
icon_state = "osocks"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_L_LEG)
|
||||
|
||||
animeeyesinner
|
||||
name = "Anime Eyes Inner"
|
||||
icon_state = "animeeyesinner"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
animeeyesouter
|
||||
name = "Anime Eyes Outer"
|
||||
icon_state = "animeeyesouter"
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
panda_eye_marks
|
||||
name = "Panda Eye Markings"
|
||||
icon_state = "eyes_panda"
|
||||
body_parts = list(BP_HEAD)
|
||||
species_allowed = list("Human")
|
||||
|
||||
catwomantorso
|
||||
name = "Catwoman chest stripes"
|
||||
icon_state = "catwomanchest"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_TORSO)
|
||||
|
||||
catwomangroin
|
||||
name = "Catwoman groin stripes"
|
||||
icon_state = "catwomangroin"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_GROIN)
|
||||
|
||||
catwoman_rleg
|
||||
name = "Catwoman right leg stripes"
|
||||
icon_state = "catwomanright"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_R_LEG)
|
||||
|
||||
catwoman_lleg
|
||||
name = "Catwoman left leg stripes"
|
||||
icon_state = "catwomanleft"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG)
|
||||
|
||||
teshi_small_feathers
|
||||
name = "Teshari small wingfeathers"
|
||||
icon_state = "teshi_sf"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND,BP_TORSO)
|
||||
|
||||
spirit_lights
|
||||
name = "Ward - Spirit FBP Lights"
|
||||
icon_state = "lights"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_HEAD)
|
||||
|
||||
spirit_lights_body
|
||||
name = "Ward - Spirit FBP Lights (body)"
|
||||
icon_state = "lights"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO)
|
||||
|
||||
spirit_lights_head
|
||||
name = "Ward - Spirit FBP Lights (head)"
|
||||
icon_state = "lights"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
spirit_panels
|
||||
name = "Ward - Spirit FBP Panels"
|
||||
icon_state = "panels"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
spirit_panels_body
|
||||
name = "Ward - Spirit FBP Panels (body)"
|
||||
icon_state = "panels"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
|
||||
|
||||
spirit_panels_head
|
||||
name = "Ward - Spirit FBP Panels (head)"
|
||||
icon_state = "panels"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
tentacle_head
|
||||
name = "Squid Head"
|
||||
icon_state = "tentaclehead"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
tentacle_mouth
|
||||
name = "Tentacle Mouth"
|
||||
icon_state = "tentaclemouth"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
rosette
|
||||
name = "Rosettes"
|
||||
icon_state = "rosette"
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO,BP_HEAD)
|
||||
|
||||
werewolf_nose
|
||||
name = "Werewolf nose"
|
||||
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
|
||||
icon_state = "werewolf_nose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
species_allowed = list(SPECIES_WEREBEAST)
|
||||
|
||||
werewolf_face
|
||||
name = "Werewolf face"
|
||||
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
|
||||
icon_state = "werewolf"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
species_allowed = list(SPECIES_WEREBEAST)
|
||||
|
||||
werewolf_belly
|
||||
name = "Werewolf belly"
|
||||
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
|
||||
icon_state = "werewolf"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_GROIN,BP_TORSO)
|
||||
species_allowed = list(SPECIES_WEREBEAST)
|
||||
|
||||
werewolf_socks
|
||||
name = "Werewolf socks"
|
||||
icon = 'icons/mob/species/werebeast/werebeast_markings.dmi'
|
||||
icon_state = "werewolf"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
|
||||
species_allowed = list(SPECIES_WEREBEAST)
|
||||
|
||||
shadekin_snoot
|
||||
name = "Shadekin Snoot"
|
||||
icon_state = "shadekin-snoot"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_SHADEKIN_YW) //YW edits
|
||||
|
||||
taj_nose_alt
|
||||
name = "Nose Color, alt. (Taj)"
|
||||
icon_state = "taj_nosealt"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
talons
|
||||
name = "Talons"
|
||||
icon_state = "talons"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG)
|
||||
|
||||
claws
|
||||
name = "Claws"
|
||||
icon_state = "claws"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_HAND,BP_R_HAND)
|
||||
|
||||
equine_snout //Why the long face? Works best with sergal bodytype.
|
||||
name = "Equine Snout"
|
||||
icon_state = "donkey"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
equine_nose
|
||||
name = "Equine Nose"
|
||||
icon_state = "dnose"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
bee_stripes
|
||||
name = "bee stripes"
|
||||
icon_state = "beestripes"
|
||||
body_parts = list(BP_TORSO,BP_GROIN)
|
||||
|
||||
vas_toes
|
||||
name = "Bug Paws (Vasilissan)"
|
||||
icon_state = "vas_toes"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT)
|
||||
|
||||
//CitRP stuff
|
||||
vox_alt
|
||||
name = "Vox Alternate"
|
||||
icon_state = "bay_vox"
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD)
|
||||
species_allowed = list(SPECIES_VOX)
|
||||
|
||||
vox_alt_eyes
|
||||
name = "Alternate Vox Eyes"
|
||||
icon_state = "bay_vox_eyes"
|
||||
body_parts = list(BP_HEAD)
|
||||
species_allowed = list(SPECIES_VOX)
|
||||
|
||||
c_beast_body
|
||||
name = "Cyber Body"
|
||||
icon_state = "c_beast_body"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_TORSO,BP_GROIN)
|
||||
|
||||
c_beast_plating
|
||||
name = "Cyber Plating (Use w/ Cyber Body)"
|
||||
icon_state = "c_beast_plating"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM)
|
||||
|
||||
c_beast_band
|
||||
name = "Cyber Band (Use w/ Cybertech head)"
|
||||
icon_state = "c_beast_band"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
c_beast_cheek_a
|
||||
name = "Cyber Beast Cheeks A (Use A, B and C)"
|
||||
icon_state = "c_beast_a"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
c_beast_cheek_b
|
||||
name = "Cyber Beast Cheeks B (Use A, B and C)"
|
||||
icon_state = "c_beast_b"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
c_beast_cheek_c
|
||||
name = "Cyber Beast Cheeks C (Use A, B and C)"
|
||||
icon_state = "c_beast_c"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
teshari_large_eyes
|
||||
name = "Teshari large eyes"
|
||||
icon_state = "teshlarge_eyes"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
species_allowed = list(SPECIES_TESHARI)
|
||||
|
||||
teshari_coat
|
||||
name = "Teshari coat"
|
||||
icon_state = "tesh_coat"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_TORSO,BP_HEAD)
|
||||
species_allowed = list(SPECIES_TESHARI)
|
||||
|
||||
teshari_pattern_male
|
||||
name = "Teshari male pattern"
|
||||
icon_state = "tesh-pattern-male"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD)
|
||||
species_allowed = list(SPECIES_TESHARI)
|
||||
|
||||
teshari_pattern_female
|
||||
name = "Teshari female pattern"
|
||||
icon_state = "tesh-pattern-fem"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD)
|
||||
species_allowed = list(SPECIES_TESHARI)
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT)
|
||||
|
||||
voxscales
|
||||
name = "Vox Scales"
|
||||
icon_state = "Voxscales"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_HEAD)
|
||||
|
||||
voxclaws
|
||||
name = "Vox Claws"
|
||||
icon_state = "Voxclaws"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND)
|
||||
|
||||
voxbeak
|
||||
name = "Vox Beak"
|
||||
icon_state = "Voxscales"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
unathihood
|
||||
name = "Cobra Hood"
|
||||
icon_state = "unathihood"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
unathidoublehorns
|
||||
name = "Double Unathi Horns"
|
||||
icon_state = "unathidoublehorns"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
unathihorns
|
||||
name = "Unathi Horns"
|
||||
icon_state = "unathihorns"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
unathiramhorns
|
||||
name = "Unathi Ram Horns"
|
||||
icon_state = "unathiramhorns"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
unathishortspines
|
||||
name = "Unathi Short Spines"
|
||||
icon_state = "unathishortspines"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
unathilongspines
|
||||
name = "Unathi Long Spines"
|
||||
icon_state = "unathilongspines"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
unathishortfrills
|
||||
name = "Unathi Short Frills"
|
||||
icon_state = "unathishortfrills"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
|
||||
unathilongfrills
|
||||
name = "Unathi Long Frills"
|
||||
icon_state = "unathilongfrills"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
body_parts = list(BP_HEAD)
|
||||
/*
|
||||
////////////////////////////
|
||||
/ =--------------------= /
|
||||
/ == Misc Definitions == /
|
||||
/ =--------------------= /
|
||||
////////////////////////////
|
||||
*/
|
||||
|
||||
// Yes, I have to add all of this just to make some glowy hair.
|
||||
// No, this isn't a character creation option, but... I guess in the future it could be, if anyone wants that?
|
||||
|
||||
/datum/sprite_accessory/hair_accessory
|
||||
name = "You should not see this..."
|
||||
icon = 'icons/mob/vore/hair_accessories_vr.dmi'
|
||||
do_colouration = 0 // Set to 1 to blend (ICON_ADD) hair color
|
||||
|
||||
var/ignores_lighting = 0 // Whether or not this hair accessory will ignore lighting and glow in the dark.
|
||||
color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1
|
||||
var/desc = "You should not see this..."
|
||||
|
||||
/datum/sprite_accessory/hair_accessory/verie_hair_glow
|
||||
name = "verie's hair glow"
|
||||
desc = ""
|
||||
icon_state = "verie_hair_glow"
|
||||
ignores_lighting = 1
|
||||
//ckeys_allowed = list("vitoras") // This probably won't come into play EVER but better safe than sorry
|
||||
|
||||
@@ -0,0 +1,152 @@
|
||||
/*
|
||||
////////////////////////////
|
||||
/ =--------------------= /
|
||||
/ == Wing Definitions == /
|
||||
/ =--------------------= /
|
||||
////////////////////////////
|
||||
*/
|
||||
/datum/sprite_accessory/wing
|
||||
name = "You should not see this..."
|
||||
icon = 'icons/mob/human_races/sprite_accessories/wings.dmi'
|
||||
do_colouration = 0 //Set to 1 to enable coloration using the tail color.
|
||||
|
||||
color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1
|
||||
var/extra_overlay // Icon state of an additional overlay to blend in.
|
||||
var/extra_overlay2 //Tertiary.
|
||||
var/clothing_can_hide = 1 // If true, clothing with HIDETAIL hides it. If the clothing is bulky enough to hide a tail, it should also hide wings.
|
||||
// var/show_species_tail = 1 // Just so // TODO - Seems not needed ~Leshana
|
||||
var/desc = "You should not see this..."
|
||||
var/ani_state // State when flapping/animated
|
||||
var/extra_overlay_w // Flapping state for extra overlay
|
||||
var/extra_overlay2_w
|
||||
|
||||
species_allowed = list(SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
|
||||
|
||||
/datum/sprite_accessory/wing/featheredlarge //Made by Natje!
|
||||
name = "large feathered wings (colorable)"
|
||||
desc = ""
|
||||
icon_state = "feathered2"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/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"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/moth
|
||||
name = "moth wings"
|
||||
desc = ""
|
||||
icon_state = "moth"
|
||||
|
||||
/datum/sprite_accessory/wing/mothc
|
||||
name = "moth wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "moth"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/dragonfly
|
||||
name = "dragonfly"
|
||||
desc = ""
|
||||
icon_state = "dragonfly"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/feathered
|
||||
name = "feathered wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "feathered"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/feathered_medium
|
||||
name = "medium feathered wings, colorable" // Keekenox made these feathery things with a little bit more shape to them than the other wings. They are medium sized wing boys.
|
||||
desc = ""
|
||||
icon_state = "feathered3"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/bat_black
|
||||
name = "bat wings, black"
|
||||
desc = ""
|
||||
icon_state = "bat-black"
|
||||
|
||||
/datum/sprite_accessory/wing/bat_color
|
||||
name = "bat wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "bat-color"
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/wing/bat_red
|
||||
name = "bat wings, red"
|
||||
desc = ""
|
||||
icon_state = "bat-red"
|
||||
|
||||
/datum/sprite_accessory/wing/harpywings
|
||||
name = "harpy wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "harpywings"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/feathered
|
||||
name = "feathered wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "feathered"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/beewings
|
||||
name = "bee wings"
|
||||
desc = ""
|
||||
icon_state = "beewings"
|
||||
|
||||
/datum/sprite_accessory/wing/liquidfirefly_gazer //I g-guess this could be considered wings?
|
||||
name = "gazer eyestalks"
|
||||
desc = ""
|
||||
icon_state = "liquidfirefly-eyestalks"
|
||||
//ckeys_allowed = list("liquidfirefly","seiga") //At request.
|
||||
|
||||
/datum/sprite_accessory/wing/moth_full
|
||||
name = "moth antenna and wings"
|
||||
desc = ""
|
||||
icon_state = "moth_full"
|
||||
|
||||
/datum/sprite_accessory/wing/moth_full_gray
|
||||
name = "moth antenna and wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "moth_full_gray"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/snag
|
||||
name = "xenomorph backplate"
|
||||
desc = ""
|
||||
icon_state = "snag-backplate"
|
||||
|
||||
/datum/sprite_accessory/wing/sepulchre_c_yw
|
||||
name = "demon wings (colorable)"
|
||||
desc = ""
|
||||
icon_state = "sepulchre_wingsc"
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/wing/cyberdragon
|
||||
name = "Cyber dragon wing (colorable)"
|
||||
desc = ""
|
||||
icon_state = "cyberdragon_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/cyberdragon_red
|
||||
name = "Cyber dragon wing (red)"
|
||||
desc = ""
|
||||
icon_state = "cyberdragon_red_s"
|
||||
do_colouration = 0
|
||||
|
||||
/datum/sprite_accessory/wing/cyberdoe
|
||||
name = "Cyber doe wing"
|
||||
desc = ""
|
||||
icon_state = "cyberdoe_s"
|
||||
do_colouration = 0
|
||||
@@ -0,0 +1,227 @@
|
||||
/*
|
||||
////////////////////////////
|
||||
/ =--------------------= /
|
||||
/ == Wing Definitions == /
|
||||
/ =--------------------= /
|
||||
////////////////////////////
|
||||
*/
|
||||
/datum/sprite_accessory/wing
|
||||
name = "You should not see this..."
|
||||
icon = 'icons/mob/vore/wings_vr.dmi'
|
||||
do_colouration = 0 //Set to 1 to enable coloration using the tail color.
|
||||
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) //This lets all races use
|
||||
color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1
|
||||
|
||||
/datum/sprite_accessory/wing/shock //Unable to split the tail from the wings in the sprite, so let's just classify it as wings.
|
||||
name = "pharoah hound tail (Shock Diamond)"
|
||||
desc = ""
|
||||
icon_state = "shock"
|
||||
ckeys_allowed = list("icowom")
|
||||
|
||||
/datum/sprite_accessory/wing/featheredlarge //Made by Natje!
|
||||
name = "large feathered wings (colorable)"
|
||||
desc = ""
|
||||
icon_state = "feathered2"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/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"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/moth
|
||||
name = "moth wings"
|
||||
desc = ""
|
||||
icon_state = "moth"
|
||||
|
||||
/datum/sprite_accessory/wing/mothc
|
||||
name = "moth wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "moth"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/dragonfly
|
||||
name = "dragonfly"
|
||||
desc = ""
|
||||
icon_state = "dragonfly"
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/citheroniamoth
|
||||
name = "citheronia wings"
|
||||
desc = ""
|
||||
icon_state = "citheronia_wings"
|
||||
ckeys_allowed = list("kira72")
|
||||
|
||||
/datum/sprite_accessory/wing/feathered
|
||||
name = "feathered wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "feathered"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/feathered_medium
|
||||
name = "medium feathered wings, colorable" // Keekenox made these feathery things with a little bit more shape to them than the other wings. They are medium sized wing boys.
|
||||
desc = ""
|
||||
icon_state = "feathered3"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/bat_black
|
||||
name = "bat wings, black"
|
||||
desc = ""
|
||||
icon_state = "bat-black"
|
||||
|
||||
/datum/sprite_accessory/wing/bat_color
|
||||
name = "bat wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "bat-color"
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/wing/bat_red
|
||||
name = "bat wings, red"
|
||||
desc = ""
|
||||
icon_state = "bat-red"
|
||||
|
||||
/datum/sprite_accessory/wing/harpywings
|
||||
name = "harpy wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "harpywings"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/harpywings_alt
|
||||
name = "harpy wings alt, archeopteryx"
|
||||
desc = ""
|
||||
icon_state = "harpywings_alt"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "harpywings_altmarkings"
|
||||
|
||||
/datum/sprite_accessory/wing/harpywings_alt_neckfur
|
||||
name = "harpy wings alt, archeopteryx & neckfur"
|
||||
desc = ""
|
||||
icon_state = "harpywings_alt"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "harpywings_altmarkings"
|
||||
extra_overlay2 = "neckfur"
|
||||
|
||||
/datum/sprite_accessory/wing/harpywings_bat
|
||||
name = "harpy wings, bat"
|
||||
desc = ""
|
||||
icon_state = "harpywings_bat"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "harpywings_batmarkings"
|
||||
|
||||
/datum/sprite_accessory/wing/harpywings_bat_neckfur
|
||||
name = "harpy wings, bat & neckfur"
|
||||
desc = ""
|
||||
icon_state = "harpywings_bat"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "harpywings_batmarkings"
|
||||
extra_overlay2 = "neckfur"
|
||||
|
||||
/datum/sprite_accessory/wing/neckfur
|
||||
name = "neck fur"
|
||||
desc = ""
|
||||
icon_state = "neckfur"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/feathered
|
||||
name = "feathered wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "feathered"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/beewings
|
||||
name = "bee wings"
|
||||
desc = ""
|
||||
icon_state = "beewings"
|
||||
|
||||
/datum/sprite_accessory/wing/sepulchre
|
||||
name = "demon wings (Sepulchre)"
|
||||
desc = ""
|
||||
icon_state = "sepulchre_wings"
|
||||
ckeys_allowed = list("sepulchre")
|
||||
|
||||
/datum/sprite_accessory/wing/miria_fluffdragon
|
||||
name = "fluffdragon wings (Miria Masters)"
|
||||
desc = ""
|
||||
icon_state = "miria-fluffdragontail"
|
||||
ckeys_allowed = list("miriamasters")
|
||||
|
||||
/datum/sprite_accessory/wing/scree
|
||||
name = "green taj wings (Scree)"
|
||||
desc = ""
|
||||
icon_state = "scree-wings"
|
||||
ckeys_allowed = list("scree")
|
||||
|
||||
/datum/sprite_accessory/wing/liquidfirefly_gazer //I g-guess this could be considered wings?
|
||||
name = "gazer eyestalks"
|
||||
desc = ""
|
||||
icon_state = "liquidfirefly-eyestalks"
|
||||
//ckeys_allowed = list("liquidfirefly","seiga") //At request.
|
||||
|
||||
/datum/sprite_accessory/wing/moth_full
|
||||
name = "moth antenna and wings"
|
||||
desc = ""
|
||||
icon_state = "moth_full"
|
||||
|
||||
/datum/sprite_accessory/wing/moth_full_gray
|
||||
name = "moth antenna and wings, colorable"
|
||||
desc = ""
|
||||
icon_state = "moth_full_gray"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/kerena
|
||||
name = "wingwolf wings (Kerena)"
|
||||
desc = ""
|
||||
icon_state = "kerena-wings"
|
||||
ckeys_allowed = list("somekindofpony")
|
||||
|
||||
/datum/sprite_accessory/wing/snag
|
||||
name = "xenomorph backplate"
|
||||
desc = ""
|
||||
icon_state = "snag-backplate"
|
||||
|
||||
/datum/sprite_accessory/wing/sepulchre_c_yw
|
||||
name = "demon wings (colorable)"
|
||||
desc = ""
|
||||
icon_state = "sepulchre_wingsc"
|
||||
do_colouration = 1
|
||||
|
||||
/datum/sprite_accessory/wing/cyberdragon
|
||||
name = "Cyber dragon wing (colorable)"
|
||||
desc = ""
|
||||
icon_state = "cyberdragon_s"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
|
||||
/datum/sprite_accessory/wing/cyberdragon_red
|
||||
name = "Cyber dragon wing (red)"
|
||||
desc = ""
|
||||
icon_state = "cyberdragon_red_s"
|
||||
do_colouration = 0
|
||||
|
||||
/datum/sprite_accessory/wing/cyberdoe
|
||||
name = "Cyber doe wing"
|
||||
desc = ""
|
||||
icon_state = "cyberdoe_s"
|
||||
do_colouration = 0
|
||||
|
||||
/datum/sprite_accessory/wing/drago_wing
|
||||
name = "Cybernetic Dragon wings"
|
||||
desc = ""
|
||||
icon_state = "drago_wing"
|
||||
do_colouration = 1
|
||||
color_blend_mode = ICON_MULTIPLY
|
||||
extra_overlay = "drago_wing_2"
|
||||
@@ -82,7 +82,7 @@
|
||||
return 0
|
||||
|
||||
else if(ismob(src)) //VOREStation Edit Start. Are they a mob, and are they currently flying??
|
||||
var/mob/H = src
|
||||
var/mob/living/H = src
|
||||
if(H.flying)
|
||||
if(H.incapacitated(INCAPACITATION_ALL))
|
||||
to_chat(src, "<span class='notice'>You can't fly in your current state.</span>")
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
|
||||
// Appearance vars.
|
||||
var/nonsolid // Snowflake warning, reee. Used for slime limbs.
|
||||
var/transparent // As above, so below. Used for transparent limbs.
|
||||
var/icon_name = null // Icon state base.
|
||||
var/body_part = null // Part flag
|
||||
var/icon_position = 0 // Used in mob overlay layering calculations.
|
||||
@@ -1399,4 +1400,8 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
for(var/obj/item/organ/external/L in organs)
|
||||
for(var/obj/item/I in L.implants)
|
||||
if(!istype(I,/obj/item/weapon/implant) && !istype(I,/obj/item/device/nif)) //VOREStation Add - NIFs
|
||||
return 1
|
||||
return 1
|
||||
|
||||
/obj/item/organ/external/proc/is_hidden_by_tail()
|
||||
if(owner && owner.tail_style && owner.tail_style.hide_body_parts && (organ_tag in owner.tail_style.hide_body_parts))
|
||||
return 1
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
/obj/item/organ/external
|
||||
var/transparent = 0 //For better slime limbs
|
||||
|
||||
//Sideways override for nanoform limbs (ugh)
|
||||
/obj/item/organ/external/robotize(var/company, var/skip_prosthetics = FALSE, var/keep_organs = FALSE)
|
||||
var/original_robotic = robotic
|
||||
@@ -16,7 +13,3 @@
|
||||
min_broken_damage = o_min_broken_damage
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/organ/external/proc/is_hidden_by_tail()
|
||||
if(owner && owner.tail_style && owner.tail_style.hide_body_parts && (organ_tag in owner.tail_style.hide_body_parts))
|
||||
return 1
|
||||
@@ -0,0 +1,175 @@
|
||||
/datum/robolimb
|
||||
var/includes_tail //Cyberlimbs dmi includes a tail sprite to wear.
|
||||
var/includes_wing //Cyberlimbs dmi includes a wing sprite to wear.
|
||||
var/list/whitelisted_to //List of ckeys that are allowed to pick this in charsetup.
|
||||
|
||||
//////////////// For-specific-character fluff ones ///////////////// May be viable to place these into a custom_item subfolder, in order to allow CI Repo integration.
|
||||
|
||||
// verkister : Rahwoof Boop
|
||||
/datum/robolimb/eggnerdltd
|
||||
company = "Eggnerd Prototyping Ltd."
|
||||
desc = "This limb has a slight salvaged handicraft vibe to it. The CE-marking on it is definitely not the standardized one, it looks more like a hand-written sharpie monogram."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/_fluff_vr/rahboop.dmi'
|
||||
blood_color = "#5e280d"
|
||||
includes_tail = 1
|
||||
unavailable_to_build = 1
|
||||
|
||||
/obj/item/weapon/disk/limb/eggnerdltd
|
||||
company = "Eggnerd Prototyping Ltd."
|
||||
// icon = 'icons/obj/items_vr.dmi'
|
||||
// icon_state = "verkdisk"
|
||||
|
||||
//////////////// General VS-only ones /////////////////
|
||||
/datum/robolimb/talon //They're buildable by default due to being extremely basic.
|
||||
company = "Talon LLC"
|
||||
desc = "This metallic limb is sleek and featuresless apart from some exposed motors"
|
||||
icon = 'icons/mob/human_races/cyberlimbs/talon/talon_main.dmi' //Sprited by: Viveret
|
||||
|
||||
/obj/item/weapon/disk/limb/talon
|
||||
company = "Talon LLC"
|
||||
|
||||
/datum/robolimb/zenghu_taj //This wasn't indented. At all. It's a miracle this didn't break literally everything.
|
||||
company = "Zeng-Hu - Tajaran"
|
||||
desc = "This limb has a rubbery fleshtone covering with visible seams."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/zenghu/zenghu_taj.dmi'
|
||||
unavailable_to_build = 1
|
||||
parts = list(BP_HEAD)
|
||||
|
||||
/datum/robolimb/eggnerdltdred
|
||||
company = "Eggnerd Prototyping Ltd. (Red)"
|
||||
desc = "A slightly more refined limb variant from Eggnerd Prototyping. Its got red plating instead of orange."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/rahboopred/rahboopred.dmi'
|
||||
blood_color = "#5e280d"
|
||||
includes_tail = 1
|
||||
unavailable_to_build = 1
|
||||
|
||||
/obj/item/weapon/disk/limb/eggnerdltdred
|
||||
company = "Eggnerd Prototyping Ltd. (Red)"
|
||||
// icon = 'icons/obj/items_vr.dmi'
|
||||
// icon_state = "verkdisk"
|
||||
|
||||
|
||||
//Darkside Incorperated synthetic augmentation list! Many current most used fuzzy and notsofuzzy races made into synths here.
|
||||
|
||||
/datum/robolimb/dsi_tajaran
|
||||
company = "DSI - Tajaran"
|
||||
desc = "This limb feels soft and fluffy, realistic design and squish. By Darkside Incorperated."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/DSITajaran/dsi_tajaran.dmi'
|
||||
blood_color = "#ffe2ff"
|
||||
lifelike = 1
|
||||
unavailable_to_build = 1
|
||||
includes_tail = 1
|
||||
skin_tone = 1
|
||||
suggested_species = "Tajara"
|
||||
|
||||
/datum/robolimb/dsi_tajaran/New()
|
||||
species_cannot_use = GLOB.all_species.Copy()
|
||||
// species_cannot_use -= SPECIES_TAJ
|
||||
|
||||
/obj/item/weapon/disk/limb/dsi_tajaran
|
||||
company = "DSI - Tajaran"
|
||||
|
||||
/datum/robolimb/dsi_lizard
|
||||
company = "DSI - Lizard"
|
||||
desc = "This limb feels smooth and scalie, realistic design and squish. By Darkside Incorperated."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/DSILizard/dsi_lizard.dmi'
|
||||
blood_color = "#ffe2ff"
|
||||
lifelike = 1
|
||||
unavailable_to_build = 1
|
||||
includes_tail = 1
|
||||
skin_tone = 1
|
||||
suggested_species = "Unathi"
|
||||
|
||||
/datum/robolimb/dsi_lizard/New()
|
||||
species_cannot_use = GLOB.all_species.Copy()
|
||||
// species_cannot_use -= SPECIES_UNATHI
|
||||
|
||||
/obj/item/weapon/disk/limb/dsi_lizard
|
||||
company = "DSI - Lizard"
|
||||
/*
|
||||
/datum/robolimb/dsi_sergal
|
||||
company = "DSI - Sergal"
|
||||
desc = "This limb feels soft and fluffy, realistic design and toned muscle. By Darkside Incorperated."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/DSISergal/dsi_sergal.dmi'
|
||||
blood_color = "#ffe2ff"
|
||||
lifelike = 1
|
||||
unavailable_to_build = 1
|
||||
includes_tail = 1
|
||||
skin_tone = 1
|
||||
suggested_species = "Sergal"
|
||||
|
||||
/obj/item/weapon/disk/limb/dsi_sergal
|
||||
company = "DSI - Sergal"
|
||||
|
||||
/datum/robolimb/dsi_nevrean
|
||||
company = "DSI - Nevrean"
|
||||
desc = "This limb feels soft and feathery, lightweight, realistic design and squish. By Darkside Incorperated."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/DSINevrean/dsi_nevrean.dmi'
|
||||
blood_color = "#ffe2ff"
|
||||
lifelike = 1
|
||||
unavailable_to_build = 1
|
||||
includes_tail = 1
|
||||
skin_tone = 1
|
||||
suggested_species = "Nevrean"
|
||||
|
||||
/obj/item/weapon/disk/limb/dsi_nevrean
|
||||
company = "DSI - Nevrean"
|
||||
|
||||
/datum/robolimb/dsi_vulpkanin
|
||||
company = "DSI - Vulpkanin"
|
||||
desc = "This limb feels soft and fluffy, realistic design and squish. Seems a little mischievous. By Darkside Incorperated."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/DSIVulpkanin/dsi_vulpkanin.dmi'
|
||||
blood_color = "#ffe2ff"
|
||||
lifelike = 1
|
||||
unavailable_to_build = 1
|
||||
includes_tail = 1
|
||||
skin_tone = 1
|
||||
suggested_species = "Vulpkanin"
|
||||
|
||||
/obj/item/weapon/disk/limb/dsi_vulpkanin
|
||||
company = "DSI - Vulpkanin"
|
||||
|
||||
/datum/robolimb/dsi_akula
|
||||
company = "DSI - Akula"
|
||||
desc = "This limb feels soft and fleshy, realistic design and squish. Seems a little mischievous. By Darkside Incorperated."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/DSIAkula/dsi_akula.dmi'
|
||||
blood_color = "#ffe2ff"
|
||||
lifelike = 1
|
||||
unavailable_to_build = 1
|
||||
includes_tail = 1
|
||||
skin_tone = 1
|
||||
suggested_species = "Akula"
|
||||
|
||||
/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
|
||||
skin_tone = 1
|
||||
suggested_species = "Vasilissan"
|
||||
|
||||
/obj/item/weapon/disk/limb/dsi_spider
|
||||
company = "DSI - Vasilissan"
|
||||
*/
|
||||
/datum/robolimb/dsi_teshari
|
||||
company = "DSI - Teshari"
|
||||
desc = "This limb has a thin synthflesh casing with a few connection ports."
|
||||
icon = 'icons/mob/human_races/cyberlimbs/DSITeshari/dsi_teshari.dmi'
|
||||
lifelike = 1
|
||||
skin_tone = 1
|
||||
suggested_species = "Teshari"
|
||||
|
||||
/datum/robolimb/dsi_teshari/New()
|
||||
species_cannot_use = GLOB.all_species.Copy()
|
||||
// species_cannot_use -= SPECIES_TESHARI
|
||||
// species_cannot_use -= SPECIES_CUSTOM
|
||||
..()
|
||||
|
||||
/obj/item/weapon/disk/limb/dsi_teshari
|
||||
company = "DSI - Teshari"
|
||||
@@ -1,8 +1,3 @@
|
||||
/datum/robolimb
|
||||
var/includes_tail //Cyberlimbs dmi includes a tail sprite to wear.
|
||||
var/includes_wing //Cyberlimbs dmi includes a wing sprite to wear.
|
||||
var/list/whitelisted_to //List of ckeys that are allowed to pick this in charsetup.
|
||||
|
||||
//CitRP Port
|
||||
var/const/cyberbeast_monitor_styles = "blank=cyber_blank;\
|
||||
default=cyber_default;\
|
||||
|
||||
@@ -266,6 +266,8 @@
|
||||
encased = "skull"
|
||||
base_miss_chance = 40
|
||||
var/can_intake_reagents = 1
|
||||
var/eye_icons = 'icons/mob/human_face_alt.dmi'
|
||||
var/head_offset = 0
|
||||
var/eye_icon = "eyes_s"
|
||||
force = 3
|
||||
throwforce = 7
|
||||
@@ -324,6 +326,54 @@
|
||||
"<span class='notice'>You make \the [I] kiss \the [src]!.</span>")
|
||||
return ..()
|
||||
|
||||
/obj/item/organ/external/head/get_icon()
|
||||
..()
|
||||
overlays.Cut()
|
||||
if(!owner || !owner.species)
|
||||
return
|
||||
|
||||
for(var/M in markings)
|
||||
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
||||
var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
|
||||
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode)
|
||||
overlays |= mark_s //So when it's not on your body, it has icons
|
||||
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
|
||||
icon_cache_key += "[M][markings[M]["color"]]"
|
||||
|
||||
if(owner.should_have_organ(O_EYES))//Moved on top of markings.
|
||||
var/obj/item/organ/internal/eyes/eyes = owner.internal_organs_by_name[O_EYES]
|
||||
if(eye_icon)
|
||||
var/icon/eyes_icon = new/icon(eye_icons, eye_icon)
|
||||
if(eyes)
|
||||
if(owner.species.appearance_flags & HAS_EYE_COLOR)
|
||||
eyes_icon.Blend(rgb(eyes.eye_colour[1], eyes.eye_colour[2], eyes.eye_colour[3]), ICON_ADD)
|
||||
else
|
||||
eyes_icon.Blend(rgb(128,0,0), ICON_ADD)
|
||||
mob_icon.Blend(eyes_icon, ICON_OVERLAY)
|
||||
overlays |= eyes_icon
|
||||
|
||||
if(owner.lip_style && (species && (species.appearance_flags & HAS_LIPS)))
|
||||
var/icon/lip_icon = new/icon('icons/mob/human_face.dmi', "lips_[owner.lip_style]_s")
|
||||
overlays |= lip_icon
|
||||
mob_icon.Blend(lip_icon, ICON_OVERLAY)
|
||||
|
||||
if(owner.f_style)
|
||||
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[owner.f_style]
|
||||
if(facial_hair_style && facial_hair_style.species_allowed && (species.get_bodytype(owner) in facial_hair_style.species_allowed))
|
||||
var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
|
||||
if(facial_hair_style.do_colouration)
|
||||
facial_s.Blend(rgb(owner.r_facial, owner.g_facial, owner.b_facial), ICON_ADD)
|
||||
overlays |= image(facial_s, "pixel_y" = head_offset)
|
||||
|
||||
if(owner.h_style && !(owner.head && (owner.head.flags_inv & BLOCKHEADHAIR)))
|
||||
var/datum/sprite_accessory/hair_style = hair_styles_list[owner.h_style]
|
||||
if(hair_style && (species.get_bodytype(owner) in hair_style.species_allowed))
|
||||
var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
|
||||
if(hair_style.do_colouration && islist(h_col) && h_col.len >= 3)
|
||||
hair_s.Blend(rgb(h_col[1], h_col[2], h_col[3]), ICON_MULTIPLY)
|
||||
overlays |= image(hair_s, "pixel_y" = head_offset)
|
||||
return mob_icon
|
||||
|
||||
/obj/item/organ/external/head/skrell
|
||||
eye_icon = "skrell_eyes_s"
|
||||
|
||||
|
||||
@@ -1,58 +1,8 @@
|
||||
//For custom heads with custom parts since the base code is restricted to a single icon file.
|
||||
|
||||
/obj/item/organ/external/head/vr/get_icon()
|
||||
|
||||
..()
|
||||
overlays.Cut()
|
||||
if(!owner || !owner.species)
|
||||
return
|
||||
|
||||
for(var/M in markings)
|
||||
var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
|
||||
var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
|
||||
mark_s.Blend(markings[M]["color"], mark_style.color_blend_mode)
|
||||
overlays |= mark_s //So when it's not on your body, it has icons
|
||||
mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
|
||||
icon_cache_key += "[M][markings[M]["color"]]"
|
||||
|
||||
if(owner.should_have_organ(O_EYES))//Moved on top of markings.
|
||||
var/obj/item/organ/internal/eyes/eyes = owner.internal_organs_by_name[O_EYES]
|
||||
if(eye_icon)
|
||||
var/icon/eyes_icon = new/icon(eye_icons_vr, eye_icon_vr)
|
||||
if(eyes)
|
||||
if(owner.species.appearance_flags & HAS_EYE_COLOR)
|
||||
eyes_icon.Blend(rgb(eyes.eye_colour[1], eyes.eye_colour[2], eyes.eye_colour[3]), ICON_ADD)
|
||||
else
|
||||
eyes_icon.Blend(rgb(128,0,0), ICON_ADD)
|
||||
mob_icon.Blend(eyes_icon, ICON_OVERLAY)
|
||||
overlays |= eyes_icon
|
||||
|
||||
if(owner.lip_style && (species && (species.appearance_flags & HAS_LIPS)))
|
||||
var/icon/lip_icon = new/icon('icons/mob/human_face.dmi', "lips_[owner.lip_style]_s")
|
||||
overlays |= lip_icon
|
||||
mob_icon.Blend(lip_icon, ICON_OVERLAY)
|
||||
|
||||
if(owner.f_style)
|
||||
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[owner.f_style]
|
||||
if(facial_hair_style && facial_hair_style.species_allowed && (species.get_bodytype(owner) in facial_hair_style.species_allowed))
|
||||
var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
|
||||
if(facial_hair_style.do_colouration)
|
||||
facial_s.Blend(rgb(owner.r_facial, owner.g_facial, owner.b_facial), ICON_ADD)
|
||||
overlays |= image(facial_s, "pixel_y" = head_offset)
|
||||
|
||||
if(owner.h_style && !(owner.head && (owner.head.flags_inv & BLOCKHEADHAIR)))
|
||||
var/datum/sprite_accessory/hair_style = hair_styles_list[owner.h_style]
|
||||
if(hair_style && (species.get_bodytype(owner) in hair_style.species_allowed))
|
||||
var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
|
||||
if(hair_style.do_colouration && islist(h_col) && h_col.len >= 3)
|
||||
hair_s.Blend(rgb(h_col[1], h_col[2], h_col[3]), ICON_MULTIPLY)
|
||||
overlays |= image(hair_s, "pixel_y" = head_offset)
|
||||
return mob_icon
|
||||
|
||||
/obj/item/organ/external/head/vr
|
||||
var/eye_icons_vr = 'icons/mob/human_face_vr.dmi'
|
||||
var/eye_icon_vr = "blank_eyes"
|
||||
var/head_offset = 0
|
||||
eye_icon = "blank_eyes"
|
||||
|
||||
/obj/item/organ/external/head/vr/sergal
|
||||
|
||||
@@ -67,9 +67,19 @@ other types of metals and chemistry for reagents).
|
||||
/datum/design/item
|
||||
build_type = PROTOLATHE
|
||||
|
||||
//Make sure items don't get free power
|
||||
//Make sure items don't get free power, or resources. Also make things be recycled with proper values.
|
||||
/datum/design/item/Fabricate()
|
||||
var/obj/item/I = ..()
|
||||
|
||||
if(LAZYLEN(materials))
|
||||
if(!LAZYLEN(I.matter))
|
||||
I.matter = list()
|
||||
else
|
||||
I.matter.Cut()
|
||||
|
||||
for(var/matname in materials)
|
||||
I.matter[matname] = materials[matname]
|
||||
|
||||
var/obj/item/weapon/cell/C = I.get_cell()
|
||||
if(C)
|
||||
C.charge = 0
|
||||
|
||||
@@ -385,9 +385,6 @@
|
||||
ASSERT(istype(B))
|
||||
var/datum/category_item/player_setup_item/general/basic/G = CG.items_by_name["Basic"]
|
||||
ASSERT(istype(G))
|
||||
CG = CC.categories_by_name["VORE"]
|
||||
var/datum/category_item/player_setup_item/vore/ears/E = CG.items_by_name["Appearance"]
|
||||
ASSERT(istype(E))
|
||||
|
||||
if(params["target_href"] == "bio_gender")
|
||||
var/new_gender = input(user, "Choose your character's biological gender:", "Character Preference", active_br.bodygender) as null|anything in G.get_genders()
|
||||
@@ -408,12 +405,6 @@
|
||||
active_br.mydna.dna.ResetUIFrom(mannequin)
|
||||
update_preview_icon()
|
||||
return 1
|
||||
action = E.OnTopic(list2params(href_list), href_list, user)
|
||||
if(action & TOPIC_UPDATE_PREVIEW && mannequin && active_br)
|
||||
E.copy_to_mob(mannequin)
|
||||
active_br.mydna.dna.ResetUIFrom(mannequin)
|
||||
update_preview_icon()
|
||||
return 1
|
||||
|
||||
// Fake subtype of preferences we can use to steal code from player_setup
|
||||
/datum/preferences/designer/New()
|
||||
|
||||
@@ -61,7 +61,7 @@ GLOBAL_DATUM_INIT(tgui_default_state, /datum/tgui_state/default, new)
|
||||
|
||||
return STATUS_CLOSE
|
||||
|
||||
/mob/living/simple_animal/default_can_use_tgui_topic(src_object)
|
||||
/mob/living/simple_mob/default_can_use_tgui_topic(src_object)
|
||||
. = shared_tgui_interaction(src_object)
|
||||
if(. > STATUS_CLOSE)
|
||||
. = min(., shared_living_tgui_distance(src_object)) //simple animals can only use things they're near.
|
||||
@@ -74,6 +74,6 @@ GLOBAL_DATUM_INIT(tgui_default_state, /datum/tgui_state/default, new)
|
||||
return ..()
|
||||
|
||||
/mob/observer/dead/default_can_use_tgui_topic()
|
||||
if(can_admin_interact())
|
||||
if(check_rights(R_ADMIN|R_EVENT, 0, src))
|
||||
return STATUS_INTERACTIVE // Admins are more equal
|
||||
return STATUS_UPDATE // Ghosts can view updates
|
||||
|
||||
@@ -9,7 +9,7 @@ GLOBAL_DATUM_INIT(tgui_observer_state, /datum/tgui_state/observer_state, new)
|
||||
/datum/tgui_state/observer_state/can_use_topic(src_object, mob/user)
|
||||
if(isobserver(user))
|
||||
return STATUS_INTERACTIVE
|
||||
if(check_rights(R_ADMIN, 0, src))
|
||||
if(check_rights(R_ADMIN|R_EVENT, 0, src))
|
||||
return STATUS_INTERACTIVE
|
||||
return STATUS_CLOSE
|
||||
|
||||
|
||||
@@ -20,36 +20,3 @@
|
||||
var/r_acc3 = 30
|
||||
var/g_acc3 = 30
|
||||
var/b_acc3 = 30
|
||||
var/datum/sprite_accessory/ears/ear_style = null
|
||||
var/r_ears = 30
|
||||
var/g_ears = 30
|
||||
var/b_ears = 30
|
||||
var/r_ears2 = 30
|
||||
var/g_ears2 = 30
|
||||
var/b_ears2 = 30
|
||||
var/r_ears3 = 30 //Trust me, we could always use more colour. No japes.
|
||||
var/g_ears3 = 30
|
||||
var/b_ears3 = 30
|
||||
var/datum/sprite_accessory/tail/tail_style = null
|
||||
var/r_tail = 30
|
||||
var/g_tail = 30
|
||||
var/b_tail = 30
|
||||
var/r_tail2 = 30
|
||||
var/g_tail2 = 30
|
||||
var/b_tail2 = 30
|
||||
var/r_tail3 = 30
|
||||
var/g_tail3 = 30
|
||||
var/b_tail3 = 30
|
||||
var/datum/sprite_accessory/wing/wing_style = null
|
||||
var/r_wing = 30
|
||||
var/g_wing = 30
|
||||
var/b_wing = 30
|
||||
var/r_wing2 = 30
|
||||
var/g_wing2 = 30
|
||||
var/b_wing2 = 30
|
||||
var/r_wing3 = 30
|
||||
var/g_wing3 = 30
|
||||
var/b_wing3 = 30
|
||||
|
||||
// Custom Species Name
|
||||
var/custom_species
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
/datum/sprite_accessory/tail/taur/naga/alt
|
||||
name = "Naga alt (Taur)"
|
||||
icon_state = "naga_alt_s"
|
||||
icon = 'icons/mob/vore/taurs_ch.dmi'
|
||||
suit_sprites = 'icons/mob/taursuits_naga_ch.dmi'
|
||||
|
||||
/datum/sprite_accessory/tail/taur/naga/alt_2c
|
||||
name = "Naga dual-color alt (Taur)"
|
||||
icon_state = "naga_alt_s"
|
||||
icon = 'icons/mob/vore/taurs_ch.dmi'
|
||||
extra_overlay = "naga_alt_markings"
|
||||
suit_sprites = 'icons/mob/taursuits_naga_ch.dmi'
|
||||
|
||||
/datum/sprite_accessory/tail/taur/horse/scoli
|
||||
name = "Scolipede (Taur)"
|
||||
icon_state = "scoli_s"
|
||||
icon = 'icons/mob/vore/taurs_ch.dmi'
|
||||
extra_overlay = "scoli_markings1"
|
||||
extra_overlay2 = "scoli_markings2"
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard/fat
|
||||
name = "Fat Lizard (Taur)"
|
||||
icon_state = "fatlizard_s"
|
||||
icon = 'icons/mob/vore/taurs_ch.dmi'
|
||||
|
||||
/datum/sprite_accessory/tail/taur/lizard/fat_2c
|
||||
name = "Fat Lizard (Taur, dual-color)"
|
||||
icon_state = "fatlizard_s"
|
||||
icon = 'icons/mob/vore/taurs_ch.dmi'
|
||||
extra_overlay= "fatlizard_markings"
|
||||
@@ -1,25 +1,3 @@
|
||||
var/global/list/wing_icon_cache = list()
|
||||
|
||||
/mob/living/carbon/human/proc/get_ears_overlay()
|
||||
if(ear_style && !(head && (head.flags_inv & BLOCKHEADHAIR)))
|
||||
var/icon/ears_s = new/icon("icon" = ear_style.icon, "icon_state" = ear_style.icon_state)
|
||||
if(ear_style.do_colouration)
|
||||
ears_s.Blend(rgb(src.r_ears, src.g_ears, src.b_ears), ear_style.color_blend_mode)
|
||||
|
||||
if(ear_style.extra_overlay)
|
||||
var/icon/overlay = new/icon("icon" = ear_style.icon, "icon_state" = ear_style.extra_overlay)
|
||||
overlay.Blend(rgb(src.r_ears2, src.g_ears2, src.b_ears2), ear_style.color_blend_mode)
|
||||
ears_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
|
||||
if(ear_style.extra_overlay2) //MORE COLOURS IS BETTERER
|
||||
var/icon/overlay = new/icon("icon" = ear_style.icon, "icon_state" = ear_style.extra_overlay2)
|
||||
overlay.Blend(rgb(src.r_ears3, src.g_ears3, src.b_ears3), ear_style.color_blend_mode)
|
||||
ears_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
return ears_s
|
||||
return null
|
||||
|
||||
/mob/living/carbon/human/proc/get_hair_accessory_overlay()
|
||||
if(hair_accessory_style && !(head && (head.flags_inv & BLOCKHEADHAIR)))
|
||||
var/icon/hair_acc_s = icon(hair_accessory_style.icon, hair_accessory_style.icon_state)
|
||||
@@ -27,99 +5,3 @@ var/global/list/wing_icon_cache = list()
|
||||
hair_acc_s.Blend(rgb(src.r_ears, src.g_ears, src.b_ears), hair_accessory_style.color_blend_mode)
|
||||
return hair_acc_s
|
||||
return null
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/get_tail_image()
|
||||
//If you are FBP with tail style and didn't set a custom one
|
||||
var/datum/robolimb/model = isSynthetic()
|
||||
if(istype(model) && model.includes_tail && !tail_style)
|
||||
var/icon/tail_s = new/icon("icon" = synthetic.icon, "icon_state" = "tail")
|
||||
tail_s.Blend(rgb(src.r_skin, src.g_skin, src.b_skin), species.color_mult ? ICON_MULTIPLY : ICON_ADD)
|
||||
return image(tail_s)
|
||||
|
||||
//If you have a custom tail selected
|
||||
if(tail_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL && !isTaurTail(tail_style)))
|
||||
var/icon/tail_s = new/icon("icon" = tail_style.icon, "icon_state" = wagging && tail_style.ani_state ? tail_style.ani_state : tail_style.icon_state)
|
||||
if(tail_style.do_colouration)
|
||||
tail_s.Blend(rgb(src.r_tail, src.g_tail, src.b_tail), tail_style.color_blend_mode)
|
||||
if(tail_style.extra_overlay)
|
||||
var/icon/overlay = new/icon("icon" = tail_style.icon, "icon_state" = tail_style.extra_overlay)
|
||||
if(wagging && tail_style.ani_state)
|
||||
overlay = new/icon("icon" = tail_style.icon, "icon_state" = tail_style.extra_overlay_w)
|
||||
overlay.Blend(rgb(src.r_tail2, src.g_tail2, src.b_tail2), tail_style.color_blend_mode)
|
||||
tail_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
else
|
||||
overlay.Blend(rgb(src.r_tail2, src.g_tail2, src.b_tail2), tail_style.color_blend_mode)
|
||||
tail_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
|
||||
if(tail_style.extra_overlay2)
|
||||
var/icon/overlay = new/icon("icon" = tail_style.icon, "icon_state" = tail_style.extra_overlay2)
|
||||
if(wagging && tail_style.ani_state)
|
||||
overlay = new/icon("icon" = tail_style.icon, "icon_state" = tail_style.extra_overlay2_w)
|
||||
overlay.Blend(rgb(src.r_tail3, src.g_tail3, src.b_tail3), tail_style.color_blend_mode)
|
||||
tail_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
else
|
||||
overlay.Blend(rgb(src.r_tail3, src.g_tail3, src.b_tail3), tail_style.color_blend_mode)
|
||||
tail_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
|
||||
if(isTaurTail(tail_style))
|
||||
var/datum/sprite_accessory/tail/taur/taurtype = tail_style
|
||||
if(taurtype.can_ride && !riding_datum)
|
||||
riding_datum = new /datum/riding/taur(src)
|
||||
verbs |= /mob/living/carbon/human/proc/taur_mount
|
||||
verbs |= /mob/living/proc/toggle_rider_reins
|
||||
return image(tail_s, "pixel_x" = -16)
|
||||
else
|
||||
return image(tail_s)
|
||||
return null
|
||||
|
||||
/mob/living/carbon/human/proc/get_wing_image()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
|
||||
//If you are FBP with wing style and didn't set a custom one
|
||||
if((synthetic && synthetic.includes_wing && !wing_style) && !wings_hidden)
|
||||
var/icon/wing_s = new/icon("icon" = synthetic.icon, "icon_state" = "wing") //I dunno. If synths have some custom wing?
|
||||
wing_s.Blend(rgb(src.r_skin, src.g_skin, src.b_skin), species.color_mult ? ICON_MULTIPLY : ICON_ADD)
|
||||
return image(wing_s)
|
||||
|
||||
//If you have custom wings selected
|
||||
if((wing_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL)) && !wings_hidden)
|
||||
var/icon/wing_s = new/icon("icon" = wing_style.icon, "icon_state" = flapping && wing_style.ani_state ? wing_style.ani_state : wing_style.icon_state)
|
||||
if(wing_style.do_colouration)
|
||||
wing_s.Blend(rgb(src.r_wing, src.g_wing, src.b_wing), wing_style.color_blend_mode)
|
||||
if(wing_style.extra_overlay)
|
||||
var/icon/overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay)
|
||||
overlay.Blend(rgb(src.r_wing2, src.g_wing2, src.b_wing2), wing_style.color_blend_mode)
|
||||
wing_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
|
||||
if(wing_style.extra_overlay2)
|
||||
var/icon/overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay2)
|
||||
if(wing_style.ani_state)
|
||||
overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay2_w)
|
||||
overlay.Blend(rgb(src.r_wing3, src.g_wing3, src.b_wing3), wing_style.color_blend_mode)
|
||||
wing_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
else
|
||||
overlay.Blend(rgb(src.r_wing3, src.g_wing3, src.b_wing3), wing_style.color_blend_mode)
|
||||
wing_s.Blend(overlay, ICON_OVERLAY)
|
||||
qdel(overlay)
|
||||
|
||||
return image(wing_s)
|
||||
|
||||
|
||||
// TODO - Move this to where it should go ~Leshana
|
||||
/mob/proc/stop_flying()
|
||||
if(QDESTROYING(src))
|
||||
return
|
||||
flying = FALSE
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/human/stop_flying()
|
||||
if((. = ..()))
|
||||
update_wing_showing()
|
||||
@@ -18,7 +18,6 @@
|
||||
var/vore_verb = "ingest" // Verb for eating with this in messages
|
||||
var/human_prey_swallow_time = 100 // Time in deciseconds to swallow /mob/living/carbon/human
|
||||
var/nonhuman_prey_swallow_time = 30 // Time in deciseconds to swallow anything else
|
||||
var/emote_time = 60 SECONDS // How long between stomach emotes at prey
|
||||
var/nutrition_percent = 100 // Nutritional percentage per tick in digestion mode
|
||||
var/digest_brute = 0.5 // Brute damage per tick in digestion mode
|
||||
var/digest_burn = 0.5 // Burn damage per tick in digestion mode
|
||||
@@ -41,6 +40,10 @@
|
||||
var/obj/item/weapon/storage/vore_egg/ownegg // Is this belly creating an egg?
|
||||
var/egg_type = "Egg" // Default egg type and path.
|
||||
var/egg_path = /obj/item/weapon/storage/vore_egg
|
||||
var/list/emote_lists = list() // Idle emotes that happen on their own, depending on the bellymode. Contains lists of strings indexed by bellymode
|
||||
var/emote_time = 60 // How long between stomach emotes at prey (in seconds)
|
||||
var/emote_active = TRUE // Are we even giving emotes out at all or not?
|
||||
var/next_emote = 0 // When we're supposed to print our next emote, as a world.time
|
||||
|
||||
//I don't think we've ever altered these lists. making them static until someone actually overrides them somewhere.
|
||||
//Actual full digest modes
|
||||
@@ -56,7 +59,6 @@
|
||||
var/tmp/mob/living/owner // The mob whose belly this is.
|
||||
var/tmp/digest_mode = DM_HOLD // Current mode the belly is set to from digest_modes (+transform_modes if human)
|
||||
var/tmp/list/items_preserved = list() // Stuff that wont digest so we shouldn't process it again.
|
||||
var/tmp/next_emote = 0 // When we're supposed to print our next emote, as a world.time
|
||||
var/tmp/recent_sound = FALSE // Prevent audio spam
|
||||
|
||||
// Don't forget to watch your commas at the end of each line if you change these.
|
||||
@@ -113,11 +115,6 @@
|
||||
var/contamination_flavor = "Generic" // Determines descriptions of contaminated items
|
||||
var/contamination_color = "green" // Color of contamination overlay
|
||||
|
||||
//Mostly for being overridden on precreated bellies on mobs. Could be VV'd into
|
||||
//a carbon's belly if someone really wanted. No UI for carbons to adjust this.
|
||||
//List has indexes that are the digestion mode strings, and keys that are lists of strings.
|
||||
var/tmp/list/emote_lists = list()
|
||||
|
||||
// Lets you do a fullscreen overlay. Set to an icon_state string.
|
||||
var/belly_fullscreen = ""
|
||||
var/disable_hud = FALSE
|
||||
@@ -152,6 +149,8 @@
|
||||
"digest_messages_prey",
|
||||
"examine_messages",
|
||||
"emote_lists",
|
||||
"emote_time",
|
||||
"emote_active",
|
||||
"mode_flags",
|
||||
"item_digest_mode",
|
||||
"contaminates",
|
||||
@@ -164,6 +163,7 @@
|
||||
"belly_fullscreen",
|
||||
"disable_hud",
|
||||
"reagent_mode_flags", //CHOMP start of variables from CHOMP
|
||||
"belly_fullscreen_color",
|
||||
"reagentbellymode",
|
||||
"liquid_fullness1_messages",
|
||||
"liquid_fullness2_messages",
|
||||
@@ -840,6 +840,7 @@
|
||||
dupe.wet_loop = wet_loop
|
||||
|
||||
dupe.reagent_mode_flags = reagent_mode_flags //CHOMP start of variables from CHOMP
|
||||
dupe.belly_fullscreen_color = belly_fullscreen_color
|
||||
dupe.reagentbellymode = reagentbellymode
|
||||
dupe.vorefootsteps_sounds = vorefootsteps_sounds
|
||||
dupe.liquid_fullness1_messages = liquid_fullness1_messages
|
||||
@@ -862,6 +863,8 @@
|
||||
dupe.belly_fullscreen = belly_fullscreen
|
||||
dupe.disable_hud = disable_hud
|
||||
dupe.egg_type = egg_type
|
||||
dupe.emote_time = emote_time
|
||||
dupe.emote_active = emote_active
|
||||
|
||||
//// Object-holding variables
|
||||
//struggle_messages_outside - strings
|
||||
|
||||
@@ -56,8 +56,8 @@
|
||||
|
||||
///////////////////// Early Non-Mode Handling /////////////////////
|
||||
var/list/EL = emote_lists[digest_mode]
|
||||
if(LAZYLEN(EL) && touchable_mobs && next_emote <= world.time)
|
||||
next_emote = world.time + emote_time
|
||||
if(LAZYLEN(EL) && touchable_mobs && next_emote <= world.time && emote_active)
|
||||
next_emote = world.time + (emote_time SECONDS)
|
||||
for(var/mob/living/M in contents)
|
||||
if(digest_mode == DM_DIGEST && !M.digestable)
|
||||
continue // don't give digesty messages to indigestible people
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
var/vore_footstep_chance = 0
|
||||
var/vore_footstep_volume_cooldown = 0 //goes up each time a step isnt heard, and will proc update of list of viable bellies to determine the most filled and loudest one to base audio on.
|
||||
|
||||
var/parasitic = FALSE //Digestion immunity and nutrition leeching variable
|
||||
var/parasitic = FALSE //Digestion immunity and nutrition leeching variable
|
||||
|
||||
|
||||
mob/living/proc/check_vorefootstep(var/m_intent, var/turf/T)
|
||||
@@ -66,6 +66,16 @@ mob/living/proc/check_vorefootstep(var/m_intent, var/turf/T)
|
||||
|
||||
return message
|
||||
|
||||
/mob/living/proc/vore_check_reagents()
|
||||
set name = "Check Belly Liquid (Vore)"
|
||||
set category = "Abilities"
|
||||
set desc = "Check the amount of liquid in your belly."
|
||||
|
||||
var/obj/belly/RTB = input("Choose which vore belly to check") as null|anything in src.vore_organs
|
||||
if(!RTB)
|
||||
return FALSE
|
||||
|
||||
to_chat(src, "<span class='notice'>[RTB] has [RTB.reagents.total_volume] units of liquid.</span>")
|
||||
|
||||
/mob/living/proc/vore_transfer_reagents()
|
||||
set name = "Transfer Liquid (Vore)"
|
||||
@@ -111,9 +121,9 @@ mob/living/proc/check_vorefootstep(var/m_intent, var/turf/T)
|
||||
return FALSE
|
||||
|
||||
if(TG == user)
|
||||
user.visible_message("<span class='notice'>[user] [RTB.reagent_transfer_verb]'s [RTB.reagent_name] from their [RTB] into their [TB].</span>")
|
||||
user.custom_emote_vr(1, "<span class='notice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from their [RTB] into their [TB].</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] [RTB.reagent_transfer_verb]'s [RTB.reagent_name] from [TG]'s [RTB] into their [TB].</span>")
|
||||
user.custom_emote_vr(1, "<span class='notice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from [TG]'s [RTB] into their [TB].</span>")
|
||||
add_attack_logs(user,TR,"Transfered [RTB.reagent_name] from [TG]'s [RTB] to [TR]'s [TB]") //Bonus for staff so they can see if people have abused transfer and done pref breaks
|
||||
RTB.reagents.vore_trans_to_mob(TR, transfer_amount, CHEM_VORE, 1, 0, TB)
|
||||
|
||||
@@ -132,9 +142,9 @@ mob/living/proc/check_vorefootstep(var/m_intent, var/turf/T)
|
||||
return FALSE
|
||||
|
||||
if(TG == user)
|
||||
user.visible_message("<span class='notice'>[user] [RTB.reagent_transfer_verb]'s [RTB.reagent_name] from their [RTB] into [TR]'s [TB].</span>")
|
||||
user.custom_emote_vr(1, "<span class='notice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from their [RTB] into [TR]'s [TB].</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] [RTB.reagent_transfer_verb]'s [RTB.reagent_name] from [TG]s [RTB] into [TR]'s [TB].</span>")
|
||||
user.custom_emote_vr(1, "<span class='notice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from [TG]s [RTB] into [TR]'s [TB].</span>")
|
||||
|
||||
RTB.reagents.vore_trans_to_mob(TR, transfer_amount, CHEM_VORE, 1, 0, TB)
|
||||
add_attack_logs(user,TR,"Transfered reagents from [TG]'s [RTB] to [TR]'s [TB]") //Bonus for staff so they can see if people have abused transfer and done pref breaks
|
||||
@@ -148,9 +158,9 @@ mob/living/proc/check_vorefootstep(var/m_intent, var/turf/T)
|
||||
|
||||
if(TR == user) //Proceed, we dont need to have prefs enabled for transfer within user
|
||||
if(TG == user)
|
||||
user.visible_message("<span class='notice'>[user] [RTB.reagent_transfer_verb]'s [RTB.reagent_name] from their [RTB] into their stomach.</span>")
|
||||
user.custom_emote_vr(1, "<span class='notice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from their [RTB] into their stomach.</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] [RTB.reagent_transfer_verb]'s [RTB.reagent_name] from [TG]'s [RTB] into their stomach.</span>")
|
||||
user.custom_emote_vr(1, "<span class='notice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from [TG]'s [RTB] into their stomach.</span>")
|
||||
RTB.reagents.vore_trans_to_mob(TR, transfer_amount, CHEM_INGEST, 1, 0, null)
|
||||
add_attack_logs(user,TR,"Transfered [RTB.reagent_name] from [TG]'s [RTB] to [TR]'s Stomach")
|
||||
|
||||
@@ -160,9 +170,9 @@ mob/living/proc/check_vorefootstep(var/m_intent, var/turf/T)
|
||||
|
||||
else
|
||||
if(TG == user)
|
||||
user.visible_message("<span class='notice'>[user] [RTB.reagent_transfer_verb]'s [RTB.reagent_name] from their [RTB] into [TR]'s stomach.</span>")
|
||||
user.custom_emote_vr(1, "<span class='notice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from their [RTB] into [TR]'s stomach.</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] [RTB.reagent_transfer_verb]'s [RTB.reagent_name] from [TG]'s [RTB] into [TR]'s stomach.</span>")
|
||||
user.custom_emote_vr(1, "<span class='notice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from [TG]'s [RTB] into [TR]'s stomach.</span>")
|
||||
|
||||
RTB.reagents.vore_trans_to_mob(TR, transfer_amount, CHEM_INGEST, 1, 0, null)
|
||||
add_attack_logs(user,TR,"Transfered [RTB.reagent_name] from [TG]'s [RTB] to [TR]'s Stomach") //Bonus for staff so they can see if people have abused transfer and done pref breaks
|
||||
@@ -178,9 +188,9 @@ mob/living/proc/check_vorefootstep(var/m_intent, var/turf/T)
|
||||
return //No long distance transfer
|
||||
|
||||
if(TG == user)
|
||||
user.visible_message("<span class='notice'>[user] [RTB.reagent_transfer_verb]'s [RTB.reagent_name] from their [RTB] into [T].</span>")
|
||||
user.custom_emote_vr(1, "<span class='notice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from their [RTB] into [T].</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] [RTB.reagent_transfer_verb]'s [RTB.reagent_name] from [TG]'s [RTB] into [T].</span>")
|
||||
user.custom_emote_vr(1, "<span class='notice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from [TG]'s [RTB] into [T].</span>")
|
||||
|
||||
RTB.reagents.vore_trans_to_con(T, transfer_amount, 1, 0)
|
||||
add_attack_logs(user, T,"Transfered [RTB.reagent_name] from [TG]'s [RTB] to a [T]") //Bonus for staff so they can see if people have abused transfer and done pref breaks
|
||||
@@ -195,9 +205,9 @@ mob/living/proc/check_vorefootstep(var/m_intent, var/turf/T)
|
||||
return
|
||||
|
||||
if(TG == user)
|
||||
user.visible_message("<span class='notice'>[user] spills [RTB.reagent_name] from their [RTB] onto the floor!</span>")
|
||||
user.custom_emote_vr(1, "<span class='notice'>spills [RTB.reagent_name] from their [RTB] onto the floor!</span>")
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] spills [RTB.reagent_name] from [TG]'s [RTB] onto the floor!</span>")
|
||||
user.custom_emote_vr(1, "<span class='notice'>spills [RTB.reagent_name] from [TG]'s [RTB] onto the floor!</span>")
|
||||
|
||||
var/obj/effect/decal/cleanable/blood/reagent/puddle = new /obj/effect/decal/cleanable/blood/reagent(RTB.reagent_name, RTB.reagentcolor, RTB.reagentid, puddle_amount, user.ckey, TG.ckey)
|
||||
puddle.loc = TG.loc
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
var/absorbing_prey = 0 // Determines if the person is using the succubus drain or not. See station_special_abilities_vr.
|
||||
var/drain_finalized = 0 // Determines if the succubus drain will be KO'd/absorbed. Can be toggled on at any time.
|
||||
var/fuzzy = 1 // Preference toggle for sharp/fuzzy icon.
|
||||
var/tail_alt = 0 // Tail layer toggle.
|
||||
var/permit_healbelly = TRUE
|
||||
var/can_be_drop_prey = FALSE
|
||||
var/can_be_drop_pred = TRUE // Mobs are pred by default.
|
||||
@@ -48,6 +47,7 @@
|
||||
M.vorePanel = new(M)
|
||||
M.verbs += /mob/living/proc/insidePanel
|
||||
M.verbs += /mob/living/proc/vore_transfer_reagents //CHOMP If mob doesnt have bellies it cant use this verb for anything
|
||||
M.verbs += /mob/living/proc/vore_check_reagents //CHOMP If mob doesnt have bellies it cant use this verb for anything
|
||||
|
||||
//return TRUE to hook-caller
|
||||
return TRUE
|
||||
|
||||
@@ -158,6 +158,8 @@
|
||||
"digest_burn" = selected.digest_burn,
|
||||
"bulge_size" = selected.bulge_size,
|
||||
"shrink_grow_size" = selected.shrink_grow_size,
|
||||
"emote_time" = selected.emote_time,
|
||||
"emote_active" = selected.emote_active,
|
||||
"belly_fullscreen" = selected.belly_fullscreen,
|
||||
"belly_fullscreen_color" = selected.belly_fullscreen_color, //CHOMPEdit
|
||||
"mapRef" = map_name, //CHOMPEdit
|
||||
@@ -902,6 +904,16 @@
|
||||
var/new_new_damage = CLAMP(new_damage, 0, 6)
|
||||
host.vore_selected.digest_brute = new_new_damage
|
||||
. = TRUE
|
||||
if("b_emoteactive")
|
||||
host.vore_selected.emote_active = !host.vore_selected.emote_active
|
||||
. = TRUE
|
||||
if("b_emotetime")
|
||||
var/new_time = input(user, "Choose the period it takes for idle belly emotes to be shown to prey. Measured in seconds, Minimum 1 minute, Maximum 10 minutes.", "Set Belly Emote Delay.", host.vore_selected.digest_brute)
|
||||
if(new_time == null)
|
||||
return FALSE
|
||||
var/new_new_time = CLAMP(new_time, 60, 600)
|
||||
host.vore_selected.emote_time = new_new_time
|
||||
. = TRUE
|
||||
if("b_escapable")
|
||||
if(host.vore_selected.escapable == 0) //Possibly escapable and special interactions.
|
||||
host.vore_selected.escapable = 1
|
||||
@@ -1040,7 +1052,7 @@
|
||||
host.vore_selected.reagent_name = new_name
|
||||
. = TRUE
|
||||
if("b_liq_reagent_transfer_verb")
|
||||
var/new_verb = html_encode(input(usr,"New verb when liquid is transfered from this belly (infinitive tense, e.g. pump or inject):","New Verb") as text|null)
|
||||
var/new_verb = html_encode(input(usr,"New verb when liquid is transfered from this belly:","New Verb") as text|null)
|
||||
|
||||
if(length(new_verb) > BELLIES_NAME_MAX || length(new_verb) < BELLIES_NAME_MIN)
|
||||
alert("Entered verb length invalid (must be longer than [BELLIES_NAME_MIN], no longer than [BELLIES_NAME_MAX]).","Error")
|
||||
|
||||
@@ -952,23 +952,6 @@
|
||||
/obj/item/weapon/material/twohanded/fluff/New(var/newloc)
|
||||
..(newloc," ") //See materials_vr_dmi for more information as to why this is a blank space.
|
||||
|
||||
//General use.
|
||||
/obj/item/weapon/material/twohanded/fluff/riding_crop
|
||||
name = "riding crop"
|
||||
desc = "A steel rod, a little over a foot long with a widened grip and a thick, leather patch at the end. Made to smack naughty submissives."
|
||||
//force_wielded = 0.05 //Stings, but does jack shit for damage, provided you don't hit someone 100 times. 1 damage with hardness of 60.
|
||||
force_divisor = 0.05 //Required in order for the X attacks Y message to pop up.
|
||||
unwielded_force_divisor = 1 // One here, too.
|
||||
applies_material_colour = 0
|
||||
unbreakable = 1
|
||||
base_icon = "riding_crop"
|
||||
icon_state = "riding_crop0"
|
||||
attack_verb = list("cropped","spanked","swatted","smacked","peppered")
|
||||
//1R1S: Malady Blanche
|
||||
/obj/item/weapon/material/twohanded/fluff/riding_crop/malady
|
||||
name = "Malady's riding crop"
|
||||
desc = "An infernum made riding crop with Malady Blanche engraved in the shaft. It's a little worn from how many butts it has spanked."
|
||||
|
||||
//jacknoir413:Areax Third
|
||||
/obj/item/weapon/melee/baton/fluff/stunstaff
|
||||
name = "Electrostaff"
|
||||
|
||||
@@ -40,6 +40,12 @@
|
||||
-->
|
||||
<div class="commit sansserif">
|
||||
|
||||
<h2 class="date">20 March 2021</h2>
|
||||
<h3 class="author">None updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="tweak">Fixes tracking implant cost to 0, not 10, as a VS edit.</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">12 March 2021</h2>
|
||||
<h3 class="author">CHOMPStationBot updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
|
||||
@@ -5517,3 +5517,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
|
||||
- bugfix: Fixed laptop vendors not selling tesla relays on tablets
|
||||
- rscadd: Tested. Appears to have been changed unintentionally in the nanoui ->
|
||||
tgui switchover.
|
||||
2021-03-20:
|
||||
null:
|
||||
- tweak: Fixes tracking implant cost to 0, not 10, as a VS edit.
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 7.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 59 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 103 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 101 KiB |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user