Merge branch 'master' into upstream-2026-06-23
@@ -293,6 +293,10 @@
|
||||
path = "/obj/item/bodypart/[part_type]"
|
||||
else
|
||||
path = "/obj/item/bodypart/[part_type]/[species]"
|
||||
//BUBBER ADDITION BEGIN - Mutant limb types.
|
||||
if(!text2path(path) && part_type)
|
||||
path = "/obj/item/bodypart/[part_type]/mutant/[species]"
|
||||
//BUBBER ADDITION END
|
||||
return text2path(path)
|
||||
|
||||
/obj/machinery/limbgrower/RefreshParts()
|
||||
|
||||
@@ -106,30 +106,6 @@
|
||||
new /obj/item/clothing/head/hats/hos/cap(src)
|
||||
new /obj/item/clothing/mask/gas/sechailer/swat(src)
|
||||
new /obj/item/clothing/neck/cloak/hos(src)
|
||||
//BUBBER ADDITION BEGIN
|
||||
new /obj/item/clothing/neck/cloak/hos/redsec(src)
|
||||
new /obj/item/clothing/under/rank/security/head_of_security/redsec(src)
|
||||
new /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch/redsec(src)
|
||||
new /obj/item/clothing/shoes/jackboots/sec/redsec(src)
|
||||
new /obj/item/clothing/head/hos_kepi(src)
|
||||
//BUBBER ADDITION END
|
||||
//Duplication from Commdrobe
|
||||
new /obj/item/clothing/head/hats/warden/drill/hos(src)
|
||||
new /obj/item/clothing/under/rank/security/head_of_security/alt/roselia(src)
|
||||
new /obj/item/clothing/glasses/hud/security/sunglasses/gars/giga/roselia(src)
|
||||
new /obj/item/clothing/under/rank/security/head_of_security/parade/redsec(src)
|
||||
new /obj/item/clothing/under/rank/security/head_of_security/parade/female/redsec(src)
|
||||
new /obj/item/clothing/head/hats/hos/elofy(src)
|
||||
new /obj/item/clothing/suit/armor/hos/elofy(src)
|
||||
new /obj/item/clothing/gloves/elofy(src)
|
||||
new /obj/item/clothing/shoes/jackboots/elofy(src)
|
||||
new /obj/item/clothing/head/playbunnyears/hos(src)
|
||||
new /obj/item/clothing/under/rank/security/head_of_security/bunnysuit(src)
|
||||
new /obj/item/clothing/suit/armor/hos_tailcoat(src)
|
||||
new /obj/item/clothing/head/hats/hos/beret/navyhos(src)
|
||||
new /obj/item/clothing/under/rank/security/head_of_security/peacekeeper(src)
|
||||
new /obj/item/clothing/suit/jacket/hos/blue(src)
|
||||
new /obj/item/clothing/neck/mantle/hosmantle(src)
|
||||
|
||||
/obj/item/storage/bag/garment/warden/PopulateContents()
|
||||
new /obj/item/clothing/suit/armor/vest/warden(src)
|
||||
|
||||
@@ -573,7 +573,7 @@
|
||||
var/mob/living/spawn_instance
|
||||
if(ispath(spawn_type, /mob/living/silicon/ai))
|
||||
// This is unfortunately necessary because of snowflake AI init code. To be refactored.
|
||||
spawn_instance = new spawn_type(get_turf(spawn_point), null, player_client.mob)
|
||||
spawn_instance = new spawn_type(get_turf(spawn_point), null, player_client.mob, TRUE)
|
||||
else
|
||||
spawn_instance = spawn_point.JoinPlayerHere(spawn_type, TRUE)
|
||||
spawn_instance.apply_prefs_job(player_client, src)
|
||||
|
||||
@@ -464,8 +464,6 @@
|
||||
var/head_update = FALSE
|
||||
var/list/new_limbs = list()
|
||||
var/datum/component/transformation/transform = GetComponent(/datum/component/transformation) // BUBBER EDIT START - Transformation component override.
|
||||
if(transform)
|
||||
transform.on_transform_limb_icon(src)
|
||||
for(var/body_zone, limb_untyped in transform ? transform.dummy.get_bodyparts_by_zones() : get_bodyparts_by_zones()) // BUBBER EDIT END | ORG: for(var/body_zone, limb_untyped in get_bodyparts_by_zones())
|
||||
var/obj/item/bodypart/limb = limb_untyped
|
||||
var/obj/item/bodypart/stump_limb_check = get_bodypart(body_zone, TRUE) // BUBBER EDIT START
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define CHARACTER_TYPE_SELF "My Character"
|
||||
#define CHARACTER_TYPE_CREWMEMBER "Station Member"
|
||||
|
||||
/mob/living/silicon/ai/Initialize(mapload, datum/ai_laws/L, mob/target_ai)
|
||||
/mob/living/silicon/ai/Initialize(mapload, datum/ai_laws/L, mob/target_ai, latejoining = FALSE)
|
||||
. = ..()
|
||||
if(!target_ai) //If there is no player/brain inside.
|
||||
new/obj/structure/ai_core(loc, CORE_STATE_FINISHED) //New empty terminal.
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
create_eye()
|
||||
|
||||
if((target_ai.mind && target_ai.mind.active) || SSticker.current_state == GAME_STATE_SETTING_UP)
|
||||
if((target_ai.mind && target_ai.mind.active) || SSticker.current_state == GAME_STATE_SETTING_UP || latejoining)
|
||||
target_ai.mind.transfer_to(src)
|
||||
if(is_antag())
|
||||
to_chat(src, span_userdanger("You have been installed as an AI! "))
|
||||
|
||||
@@ -749,6 +749,9 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE)
|
||||
/obj/item/clothing/shoes/laceup = 3,
|
||||
/obj/item/clothing/shoes/jackboots = 3,
|
||||
/obj/item/clothing/gloves/combat = 3,
|
||||
/obj/item/clothing/under/rank/centcom/ba_cheerleader/centcom = 3,
|
||||
/obj/item/clothing/gloves/ba_cheerleader/centcom = 3,
|
||||
/obj/item/clothing/shoes/sneakers/ba_cheerleader/centcom = 3,
|
||||
)
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/cent_wardrobe
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
author: "Robwo"
|
||||
delete-after: True
|
||||
changes:
|
||||
- map: "Risk of Pubby Station Returns"
|
||||
@@ -1,5 +0,0 @@
|
||||
author: "KateAnbolho, vinylspiders"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "The VOSKHOD Modular Suit, and the systems needed to create it."
|
||||
- rscadd: "Depowered VOSKHOD armor can be sourced from \"questionable\" sources."
|
||||
@@ -1,5 +0,0 @@
|
||||
author: "UvvU"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Added dynamic uniform support"
|
||||
- rscadd: "Added black varients for the sec huds, belt, and gloves"
|
||||
@@ -1,5 +0,0 @@
|
||||
author: "nikothedude"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Re-adds the modular laser weapons to the game, with the rifle being found in a traitor's uplink, and the carbine being crewsided."
|
||||
- balance: "Tweaked the modular weapons to be less powerful overall."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Ghommie"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Fixed invisible fish tails from DNA infusions."
|
||||
@@ -188,3 +188,41 @@
|
||||
with the Space Ninja Dojo. The Syndicate now make targets that get successfully
|
||||
sent to them alive by their on site Contractors unable to remember the lead
|
||||
up to their abduction.
|
||||
2026-06-24:
|
||||
KateAnbolho, vinylspiders:
|
||||
- rscadd: The VOSKHOD Modular Suit, and the systems needed to create it.
|
||||
- rscadd: Depowered VOSKHOD armor can be sourced from "questionable" sources.
|
||||
Robwo:
|
||||
- map: Risk of Pubby Station Returns
|
||||
UvvU:
|
||||
- rscadd: Added dynamic uniform support
|
||||
- rscadd: Added black varients for the sec huds, belt, and gloves
|
||||
nikothedude:
|
||||
- rscadd: Re-adds the modular laser weapons to the game, with the rifle being found
|
||||
in a traitor's uplink, and the carbine being crewsided.
|
||||
- balance: Tweaked the modular weapons to be less powerful overall.
|
||||
- bugfix: Silver hurts lycans more again
|
||||
2026-06-25:
|
||||
Impish_Delights:
|
||||
- bugfix: Stripping voice mod gas mask properly clears speech changes
|
||||
Odairu:
|
||||
- bugfix: fixes runtime and cyborgs should get claimed by latejoin AIs now
|
||||
Robwo:
|
||||
- rscadd: Limb growers can print teshari limbs/organs now.
|
||||
nikothedude:
|
||||
- bugfix: The hoshi no longer self charges
|
||||
2026-06-26:
|
||||
NanoCats:
|
||||
- rscadd: Added the Cheerleading Outfit, a recolorable GAGS costume available from
|
||||
the ClotheMate and loadout system in four designer colors.
|
||||
- image: Added sprites for the cheerleading outfit set, courtesy of Onule
|
||||
StrangeWeirdKitten:
|
||||
- bugfix: fixes protean transformation hair not changing
|
||||
muchatras:
|
||||
- rscadd: Re-added the hos plate carrier and sec helmets from viro (in vendor)
|
||||
- bugfix: Fixed certain missing/broken icons from sec outfits
|
||||
- bugfix: Fixed the viro sec helmets
|
||||
- bugfix: Removed all the duplicates from the hos outfit bag
|
||||
2026-06-27:
|
||||
Swan:
|
||||
- rscadd: more wintercoats in the loadout menu.
|
||||
|
||||
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 4.6 KiB |
@@ -39,7 +39,7 @@
|
||||
color_src = USE_ONE_COLOR
|
||||
|
||||
/datum/sprite_accessory/tails/fish
|
||||
icon = 'modular_skyrat/master_files/icons/mob/sprite_accessory/fish_tails.dmi'
|
||||
organ_type = /obj/item/organ/tail/fake_fish //copypasta of dna infusion fish tails but without the quirks (beside butchering)
|
||||
|
||||
/datum/sprite_accessory/tails/xeno/default
|
||||
icon = 'modular_skyrat/master_files/icons/mob/sprite_accessory/xeno_tail.dmi'
|
||||
|
||||
@@ -64,3 +64,46 @@
|
||||
name = "fluffy tail"
|
||||
|
||||
/obj/item/organ/tail/fluffy/no_wag
|
||||
|
||||
///A tail that replicates the appearance of fish tails from DNA infusion, but without most of the code that makes them so special.
|
||||
/obj/item/organ/tail/fake_fish
|
||||
name = /obj/item/organ/tail/fish::name
|
||||
desc = /obj/item/organ/tail/fish::desc
|
||||
icon = /obj/item/organ/tail/fish::icon
|
||||
icon_state = /obj/item/organ/tail/fish::icon_state
|
||||
post_init_icon_state = /obj/item/organ/tail/fish::post_init_icon_state
|
||||
greyscale_config = /obj/item/organ/tail/fish::greyscale_config
|
||||
greyscale_colors = /obj/item/organ/tail/fish::greyscale_colors
|
||||
|
||||
bodypart_overlay = /obj/item/organ/tail/fish::bodypart_overlay
|
||||
wag_flags = /obj/item/organ/tail/fish::wag_flags
|
||||
restyle_flags = /obj/item/organ/tail/fish::restyle_flags
|
||||
|
||||
// Fishlike reagents, you could serve it raw like fish
|
||||
food_reagents = /obj/item/organ/tail/fish::food_reagents
|
||||
// Seafood instead of meat, because it's a fish organ
|
||||
foodtype_flags = /obj/item/organ/tail/fish::foodtype_flags
|
||||
// Also just tastes like fish
|
||||
food_tastes = /obj/item/organ/tail/fish::food_tastes
|
||||
/// The fillet type this fish tail is processable into
|
||||
var/fillet_type = /obj/item/food/fishmeat/fish_tail
|
||||
/// The amount of fillets this gets processed into
|
||||
var/fillet_amount = 3
|
||||
|
||||
/obj/item/organ/tail/fake_fish/Initialize(mapload)
|
||||
. = ..()
|
||||
var/time_to_fillet = fillet_amount * 0.5 SECONDS
|
||||
AddElement(/datum/element/processable, TOOL_KNIFE, fillet_type, fillet_amount, time_to_fillet, screentip_verb = "Cut")
|
||||
|
||||
/obj/item/organ/tail/fake_fish/on_mob_insert(mob/living/carbon/owner)
|
||||
. = ..()
|
||||
RegisterSignal(owner, COMSIG_LIVING_GIBBER_ACT, PROC_REF(on_gibber_processed))
|
||||
|
||||
/obj/item/organ/tail/fake_fish/on_mob_remove(mob/living/carbon/owner)
|
||||
. = ..()
|
||||
UnregisterSignal(owner, COMSIG_LIVING_GIBBER_ACT)
|
||||
|
||||
/obj/item/organ/tail/fake_fish/proc/on_gibber_processed(mob/living/carbon/owner, mob/living/user, obj/machinery/gibber, list/results)
|
||||
SIGNAL_HANDLER
|
||||
for(var/iteration in 1 to fillet_amount * 0.5)
|
||||
results += new fillet_type
|
||||
|
||||
@@ -38,6 +38,9 @@
|
||||
/obj/item/clothing/gloves/combat/maid = 5,
|
||||
/obj/item/clothing/head/costume/maid_headband/syndicate = 5,
|
||||
/obj/item/storage/box/nif_ghost_box/ghost_role = 10,
|
||||
/obj/item/clothing/under/syndicate/ba_cheerleader = 5,
|
||||
/obj/item/clothing/gloves/ba_cheerleader/syndicate = 5,
|
||||
/obj/item/clothing/shoes/sneakers/ba_cheerleader/syndicate = 5,
|
||||
)
|
||||
|
||||
refill_canister = /obj/item/vending_refill/wardrobe/syndie_wardrobe
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
inhand_icon_state = "hyeseong_kill"
|
||||
worn_icon = 'modular_skyrat/modules/modular_weapons/icons/mob/company_and_or_faction_based/saibasan/guns_worn.dmi'
|
||||
worn_icon_state = "hyeseong_kill"
|
||||
selfcharge = FALSE
|
||||
cell_type = /obj/item/stock_parts/power_store/cell/hyeseong_internal_cell
|
||||
modifystate = FALSE
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/cybersun_big_kill)
|
||||
@@ -276,6 +275,7 @@
|
||||
/datum/laser_weapon_mode/shotgun_small,
|
||||
/datum/laser_weapon_mode/trickshot_disabler,
|
||||
)
|
||||
selfcharge = FALSE
|
||||
default_selected_mode = "kill"
|
||||
speech_json_file = SHORT_MOD_LASER_SPEECH
|
||||
expanded_examine_text = "The Hoshi carbine is the latest line of man-portable Martian weapons platforms from \
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
)
|
||||
|
||||
/obj/item/organ/tongue/teshari
|
||||
name = "teshari tongue"
|
||||
liked_foodtypes = SEAFOOD | VEGETABLES | NUTS
|
||||
disliked_foodtypes = GROSS | GRAIN
|
||||
|
||||
|
||||
@@ -83,15 +83,24 @@
|
||||
owner.quad_eyes_offset = original.quad_eyes_offset
|
||||
owner.quad_eyes_offset_width = original.quad_eyes_offset_width
|
||||
|
||||
var/obj/item/bodypart/head/head = original.get_bodypart(BODY_ZONE_HEAD)
|
||||
dummy.set_hairstyle(original.hairstyle, FALSE)
|
||||
dummy.set_haircolor(original.hair_color)
|
||||
dummy.set_facial_hairstyle(original.facial_hairstyle, FALSE)
|
||||
dummy.set_facial_haircolor(original.facial_hair_color)
|
||||
dummy.set_hair_gradient_style(head.gradient_styles[GRADIENT_HAIR_KEY], FALSE)
|
||||
dummy.set_hair_gradient_color(head.gradient_colors[GRADIENT_FACIAL_HAIR_KEY])
|
||||
dummy.set_facial_hair_gradient_style(head.gradient_styles[GRADIENT_FACIAL_HAIR_KEY], FALSE)
|
||||
dummy.set_facial_hair_gradient_color(head.gradient_colors[GRADIENT_FACIAL_HAIR_KEY])
|
||||
cached_features["hair"] += list(
|
||||
"hair_style" = owner.hairstyle,
|
||||
"hair_color" = owner.hair_color,
|
||||
"facial_style" = owner.facial_hairstyle,
|
||||
"facial_color" = owner.facial_hair_color,
|
||||
"hair_gradient_style" = owner.get_hair_gradient_style(GRADIENT_HAIR_KEY),
|
||||
"hair_gradient_color" = owner.get_hair_gradient_color(GRADIENT_HAIR_KEY),
|
||||
"facial_gradient_style" = owner.get_hair_gradient_style(GRADIENT_FACIAL_HAIR_KEY),
|
||||
"facial_gradient_color" = owner.get_hair_gradient_color(GRADIENT_FACIAL_HAIR_KEY))
|
||||
|
||||
owner.set_hairstyle(original.hairstyle, FALSE)
|
||||
owner.set_haircolor(original.hair_color)
|
||||
owner.set_facial_hairstyle(original.facial_hairstyle, FALSE)
|
||||
owner.set_facial_haircolor(original.facial_hair_color)
|
||||
owner.set_hair_gradient_style(original.get_hair_gradient_style(GRADIENT_HAIR_KEY), FALSE)
|
||||
owner.set_hair_gradient_color(original.get_hair_gradient_color(GRADIENT_HAIR_KEY))
|
||||
owner.set_facial_hair_gradient_style(original.get_hair_gradient_style(GRADIENT_FACIAL_HAIR_KEY), FALSE)
|
||||
owner.set_facial_hair_gradient_color(original.get_hair_gradient_color(GRADIENT_FACIAL_HAIR_KEY))
|
||||
|
||||
owner.regenerate_icons()
|
||||
|
||||
@@ -123,20 +132,21 @@
|
||||
owner.quad_eyes_offset = cached_features["quadoffset"]
|
||||
owner.quad_eyes_offset_width = cached_features["quadoffwidth"]
|
||||
|
||||
// Reset our hair
|
||||
var/list/hair = cached_features["hair"]
|
||||
owner.set_hairstyle(hair["hair_style"], FALSE)
|
||||
owner.set_haircolor(hair["hair_color"])
|
||||
owner.set_facial_hairstyle(hair["facial_style"], FALSE)
|
||||
owner.set_facial_haircolor(hair["facial_color"])
|
||||
owner.set_hair_gradient_style(hair["hair_gradient_style"], FALSE)
|
||||
owner.set_hair_gradient_color(hair["hair_gradient_color"])
|
||||
owner.set_facial_hair_gradient_style(hair["facial_gradient_style"], FALSE)
|
||||
owner.set_facial_hair_gradient_color(hair["facial_gradient_color"])
|
||||
|
||||
original = null
|
||||
QDEL_NULL(dummy)
|
||||
owner.regenerate_icons()
|
||||
|
||||
/// TODO: Digigrade legs and bodyshape
|
||||
/datum/component/transformation/proc/on_transform_limb_icon(mob/source) // Easy way to properly reflect icon events.
|
||||
var/mob/living/carbon/human/owner = source
|
||||
var/list/old_abstractions = dummy.get_equipped_items()
|
||||
QDEL_LIST(old_abstractions)
|
||||
for(var/obj/item/item in owner.get_equipped_items())
|
||||
if(item.slot_flags & (ITEM_SLOT_ICLOTHING|ITEM_SLOT_OCLOTHING|ITEM_SLOT_HEAD|ITEM_SLOT_BACK))
|
||||
var/obj/item/abstraction = new item.type
|
||||
abstraction.flags_inv = item.flags_inv
|
||||
abstraction.equip_to_best_slot(dummy)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"ba_cheerleader_gloves": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "ba_cheerleader_gloves_icon_gags",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "ba_cheerleader_gloves_icon_gags_color",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 2 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"ba_cheerleader_gloves": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "ba_cheerleader_gloves_gags",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "ba_cheerleader_gloves_gags_color",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 2 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"ba_cheerleader": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "suits_lefthand_gags",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "suits_lefthand_gags_color",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 2 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"ba_cheerleader": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "suits_righthand_gags",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "suits_righthand_gags_color",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 2 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"ba_cheerleader": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "ba_cheerleader_under_gags",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "ba_cheerleader_under_gags_color",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 2 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"ba_cheerleader": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "ba_cheerleader_gags",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "ba_cheerleader_gags_color",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 2 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"ba_cheerleader_shoes": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "ba_cheerleader_shoes_icon_gags",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "ba_cheerleader_shoes_icon_gags_color",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 2 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"ba_cheerleader_shoes": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "ba_cheerleader_shoes_gags",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "ba_cheerleader_shoes_gags_color",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 2 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -11,18 +11,30 @@
|
||||
. = ..()
|
||||
new /obj/item/clothing/under/rank/security/viro/head_of_security/viro(src)
|
||||
new /obj/item/clothing/under/rank/security/viro/head_of_security/skirt(src)
|
||||
new /obj/item/clothing/under/rank/security/viro/head_of_security/alt(src)
|
||||
new /obj/item/clothing/under/rank/security/head_of_security/alt/skirt(src)
|
||||
new /obj/item/clothing/under/rank/security/viro/head_of_security/formal(src)
|
||||
new /obj/item/clothing/under/rank/security/viro/head_of_security/formal/skirt(src)
|
||||
new /obj/item/clothing/suit/armor/hos/viro/trenchcoat/winter(src)
|
||||
new /obj/item/clothing/suit/armor/hos/viro/trenchcoat(src)
|
||||
new /obj/item/clothing/suit/armor/hos/viro(src)
|
||||
new /obj/item/clothing/head/helmet/viro/hos(src)
|
||||
new /obj/item/clothing/under/rank/security/head_of_security/battledress/red(src)
|
||||
new /obj/item/clothing/suit/armor/hos/viro/vest(src)
|
||||
new /obj/item/clothing/head/helmet/sec/viro/hos(src)
|
||||
new /obj/item/clothing/under/rank/security/head_of_security/turtleneck/red(src)
|
||||
new /obj/item/clothing/under/rank/security/head_of_security/turtleneck/red/skirt(src)
|
||||
new /obj/item/clothing/under/rank/security/head_of_security/suit/red(src)
|
||||
new /obj/item/clothing/under/rank/security/head_of_security/redsec(src)
|
||||
new /obj/item/clothing/shoes/jackboots/sec/redsec(src)
|
||||
new /obj/item/clothing/head/hos_kepi(src)
|
||||
new /obj/item/clothing/head/hats/warden/drill/hos(src)
|
||||
new /obj/item/clothing/under/rank/security/head_of_security/alt/roselia(src)
|
||||
new /obj/item/clothing/head/hats/hos/elofy(src)
|
||||
new /obj/item/clothing/suit/armor/hos/elofy(src)
|
||||
new /obj/item/clothing/gloves/elofy(src)
|
||||
new /obj/item/clothing/shoes/jackboots/elofy(src)
|
||||
new /obj/item/clothing/head/playbunnyears/hos(src)
|
||||
new /obj/item/clothing/under/rank/security/head_of_security/bunnysuit(src)
|
||||
new /obj/item/clothing/suit/armor/hos_tailcoat(src)
|
||||
new /obj/item/clothing/under/rank/security/head_of_security/suit/red(src)
|
||||
new /obj/item/clothing/head/hats/hos/beret/navyhos(src)
|
||||
new /obj/item/clothing/suit/jacket/hos/blue(src)
|
||||
new /obj/item/clothing/neck/mantle/hosmantle(src)
|
||||
|
||||
/obj/item/storage/bag/garment/warden/PopulateContents()
|
||||
. = ..()
|
||||
|
||||
@@ -455,3 +455,46 @@
|
||||
name = "'Dagger' Designer Mantle (Worn)"
|
||||
json_config = 'modular_zubbers/code/datums/greyscale/json_configs/neck/dagger_mantle/dagger_mantle_worn.json'
|
||||
///Greyscale clothing Nova port end
|
||||
|
||||
// Aeri's Cheerleader Outfit
|
||||
// Sprites by Onule
|
||||
|
||||
/datum/greyscale_config/ba_cheerleader
|
||||
name = "BA Cheerleader Outfit"
|
||||
icon_file = 'modular_zubbers/icons/obj/clothing/under/ba_cheerleader.dmi'
|
||||
json_config = 'modular_zubbers/code/datums/greyscale/json_configs/under/ba_cheerleader/outfit.json'
|
||||
|
||||
/datum/greyscale_config/ba_cheerleader/worn
|
||||
name = "BA Cheerleader Outfit (Worn)"
|
||||
icon_file = 'modular_zubbers/icons/mob/clothing/under/ba_cheerleader.dmi'
|
||||
json_config = 'modular_zubbers/code/datums/greyscale/json_configs/under/ba_cheerleader/outfit_worn.json'
|
||||
|
||||
/datum/greyscale_config/ba_cheerleader/inhand_left
|
||||
name = "BA Cheerleader Outfit (Left Hand)"
|
||||
icon_file = 'modular_zubbers/icons/obj/clothing/under/ba_cheerleader.dmi'
|
||||
json_config = 'modular_zubbers/code/datums/greyscale/json_configs/under/ba_cheerleader/inhand_left.json'
|
||||
|
||||
/datum/greyscale_config/ba_cheerleader/inhand_right
|
||||
name = "BA Cheerleader Outfit (Right Hand)"
|
||||
icon_file = 'modular_zubbers/icons/obj/clothing/under/ba_cheerleader.dmi'
|
||||
json_config = 'modular_zubbers/code/datums/greyscale/json_configs/under/ba_cheerleader/inhand_right.json'
|
||||
|
||||
/datum/greyscale_config/ba_cheerleader_gloves
|
||||
name = "BA Cheerleader Gloves"
|
||||
icon_file = 'modular_zubbers/icons/obj/clothing/under/ba_cheerleader.dmi'
|
||||
json_config = 'modular_zubbers/code/datums/greyscale/json_configs/under/ba_cheerleader/gloves.json'
|
||||
|
||||
/datum/greyscale_config/ba_cheerleader_gloves/worn
|
||||
name = "BA Cheerleader Gloves (Worn)"
|
||||
icon_file = 'modular_zubbers/icons/mob/clothing/under/ba_cheerleader.dmi'
|
||||
json_config = 'modular_zubbers/code/datums/greyscale/json_configs/under/ba_cheerleader/gloves_worn.json'
|
||||
|
||||
/datum/greyscale_config/ba_cheerleader_shoes
|
||||
name = "BA Cheerleader Sneakers"
|
||||
icon_file = 'modular_zubbers/icons/obj/clothing/under/ba_cheerleader.dmi'
|
||||
json_config = 'modular_zubbers/code/datums/greyscale/json_configs/under/ba_cheerleader/shoes.json'
|
||||
|
||||
/datum/greyscale_config/ba_cheerleader_shoes/worn
|
||||
name = "BA Cheerleader Sneakers (Worn)"
|
||||
icon_file = 'modular_zubbers/icons/mob/clothing/under/ba_cheerleader.dmi'
|
||||
json_config = 'modular_zubbers/code/datums/greyscale/json_configs/under/ba_cheerleader/shoes_worn.json'
|
||||
|
||||
@@ -720,17 +720,21 @@
|
||||
|
||||
// virosec helmets, sprites by axietheaxolotl
|
||||
|
||||
/obj/item/clothing/head/helmet/viro
|
||||
/obj/item/clothing/head/helmet/sec/viro
|
||||
name = "helmet"
|
||||
desc = "Standard Security gear. Protects the head from impacts."
|
||||
base_icon_state = "security_helmet"
|
||||
icon = 'modular_zubbers/icons/obj/clothing/head/hats.dmi'
|
||||
worn_icon = 'modular_zubbers/icons/mob/clothing/head/hats.dmi'
|
||||
icon_state = "security_helmet"
|
||||
|
||||
/obj/item/clothing/head/helmet/viro/hos
|
||||
name = "helmet"
|
||||
/obj/item/clothing/head/helmet/sec/viro/hos
|
||||
name = "head of security's helmet"
|
||||
desc = "Standard Security gear. Protects the head from impacts. This one has a golden stripe."
|
||||
base_icon_state = "hos_helmet"
|
||||
icon = 'modular_zubbers/icons/obj/clothing/head/hats.dmi'
|
||||
worn_icon = 'modular_zubbers/icons/mob/clothing/head/hats.dmi'
|
||||
icon_state = "hos_helmet"
|
||||
armor_type = /datum/armor/hats_hos
|
||||
|
||||
|
||||
|
||||
@@ -54,6 +54,11 @@
|
||||
UnregisterSignal(user, list(COMSIG_MOB_SAY, SIGNAL_ADDTRAIT(TRAIT_SIGN_LANG), SIGNAL_REMOVETRAIT(TRAIT_SIGN_LANG)))
|
||||
update_voice(user)
|
||||
|
||||
/obj/item/clothing/mask/gas/modulator/doStrip(mob/stripper, mob/user)
|
||||
. = ..()
|
||||
UnregisterSignal(user, list(COMSIG_MOB_SAY, SIGNAL_ADDTRAIT(TRAIT_SIGN_LANG), SIGNAL_REMOVETRAIT(TRAIT_SIGN_LANG)))
|
||||
update_voice(user)
|
||||
|
||||
/obj/item/clothing/mask/gas/modulator/add_context(atom/source, list/context, obj/item/held_item, mob/user)
|
||||
. = ..()
|
||||
context[SCREENTIP_CONTEXT_ALT_LMB] = "[modulate_voice ? "Disable":"Enable"] voice modulator"
|
||||
|
||||
@@ -194,6 +194,12 @@
|
||||
heat_protection = CHEST|GROIN|LEGS|ARMS
|
||||
strip_delay = 8 SECONDS
|
||||
|
||||
/obj/item/clothing/suit/armor/hos/viro/vest
|
||||
name = "Head of Security's Plate Carrier"
|
||||
desc = "A plate carrier enhanced with a special alloy for some extra protection and style for those with a commanding presence."
|
||||
icon_state = "hos_platecarrier"
|
||||
inhand_icon_state = "armor"
|
||||
|
||||
/datum/armor/armor_hos
|
||||
melee = 30
|
||||
bullet = 30
|
||||
|
||||
@@ -0,0 +1,260 @@
|
||||
// Aeri's Cheerleader Outfit - Sprites by Onule
|
||||
|
||||
// ---- ARMOR DATUMS ----
|
||||
|
||||
/datum/armor/clothing_under/cc_cheerleader
|
||||
melee = 10
|
||||
laser = 10
|
||||
energy = 15
|
||||
fire = 50
|
||||
acid = 40
|
||||
wound = 10
|
||||
|
||||
/datum/armor/clothing_under/centcom_cheerleader
|
||||
melee = 35
|
||||
bullet = 40
|
||||
laser = 40
|
||||
energy = 50
|
||||
bomb = 35
|
||||
bio = 10
|
||||
fire = 10
|
||||
acid = 60
|
||||
|
||||
/datum/armor/clothing_under/syndie_cheerleader
|
||||
melee = 15
|
||||
bullet = 10
|
||||
laser = 10
|
||||
energy = 15
|
||||
fire = 50
|
||||
acid = 40
|
||||
wound = 10
|
||||
|
||||
/datum/armor/clothing_gloves/cc_cheerleader
|
||||
melee = 5
|
||||
fire = 10
|
||||
acid = 10
|
||||
|
||||
/datum/armor/clothing_gloves/centcom_cheerleader
|
||||
melee = 35
|
||||
bullet = 40
|
||||
laser = 40
|
||||
energy = 50
|
||||
bomb = 35
|
||||
bio = 10
|
||||
fire = 10
|
||||
acid = 60
|
||||
|
||||
/datum/armor/clothing_gloves/syndie_cheerleader
|
||||
melee = 5
|
||||
bullet = 5
|
||||
laser = 5
|
||||
fire = 10
|
||||
acid = 10
|
||||
|
||||
/datum/armor/clothing_shoes/cc_cheerleader
|
||||
melee = 5
|
||||
bio = 50
|
||||
acid = 10
|
||||
|
||||
/datum/armor/clothing_shoes/centcom_cheerleader
|
||||
melee = 35
|
||||
bullet = 40
|
||||
laser = 40
|
||||
energy = 50
|
||||
bomb = 35
|
||||
bio = 10
|
||||
fire = 10
|
||||
acid = 60
|
||||
|
||||
/datum/armor/clothing_shoes/syndie_cheerleader
|
||||
melee = 5
|
||||
bullet = 5
|
||||
bio = 50
|
||||
acid = 10
|
||||
|
||||
// ---- OUTFITS ----
|
||||
|
||||
/obj/item/clothing/under/costume/ba_cheerleader
|
||||
name = "NT cheerleading outfit"
|
||||
desc = "A Nanotrasen cheer uniform issued for company sporting events, morale drives, and mandatory victory \
|
||||
ceremonies. フレーフレー! 今です! Nobody on the design committee knows what that means, but it tested \
|
||||
extremely well with focus groups."
|
||||
icon = 'modular_zubbers/icons/obj/clothing/under/ba_cheerleader.dmi'
|
||||
icon_state = "ba_cheerleader_under"
|
||||
post_init_icon_state = "ba_cheerleader"
|
||||
inhand_icon_state = "ba_cheerleader"
|
||||
worn_icon = 'modular_zubbers/icons/mob/clothing/under/ba_cheerleader.dmi'
|
||||
worn_icon_state = "ba_cheerleader"
|
||||
greyscale_config = /datum/greyscale_config/ba_cheerleader
|
||||
greyscale_config_worn = /datum/greyscale_config/ba_cheerleader/worn
|
||||
greyscale_config_inhand_left = /datum/greyscale_config/ba_cheerleader/inhand_left
|
||||
greyscale_config_inhand_right = /datum/greyscale_config/ba_cheerleader/inhand_right
|
||||
greyscale_colors = "#FFFFFF#2980b9"
|
||||
flags_1 = IS_PLAYER_COLORABLE_1
|
||||
body_parts_covered = CHEST|GROIN
|
||||
female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY
|
||||
can_adjust = FALSE
|
||||
|
||||
/obj/item/clothing/under/costume/ba_cheerleader/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/gags_recolorable)
|
||||
update_icon(UPDATE_OVERLAYS)
|
||||
|
||||
/obj/item/clothing/under/rank/centcom/ba_cheerleader
|
||||
name = "NT command cheerleading uniform"
|
||||
desc = "A command-grade Nanotrasen cheer uniform tailored for heads of staff, public appearances, and strategic \
|
||||
morale deployment. The nano-kevlar weave is sturdier than expected, presumably in case you are being boarded \
|
||||
by the opposing team. フレーフレー! 今です!"
|
||||
icon = 'modular_zubbers/icons/obj/clothing/under/ba_cheerleader.dmi'
|
||||
icon_state = "ba_cheerleader_under"
|
||||
post_init_icon_state = "ba_cheerleader"
|
||||
inhand_icon_state = "ba_cheerleader"
|
||||
worn_icon = 'modular_zubbers/icons/mob/clothing/under/ba_cheerleader.dmi'
|
||||
worn_icon_state = "ba_cheerleader"
|
||||
greyscale_config = /datum/greyscale_config/ba_cheerleader
|
||||
greyscale_config_worn = /datum/greyscale_config/ba_cheerleader/worn
|
||||
greyscale_config_inhand_left = /datum/greyscale_config/ba_cheerleader/inhand_left
|
||||
greyscale_config_inhand_right = /datum/greyscale_config/ba_cheerleader/inhand_right
|
||||
greyscale_colors = "#FFFFFF#1a3a6b"
|
||||
flags_1 = IS_PLAYER_COLORABLE_1
|
||||
body_parts_covered = CHEST|GROIN
|
||||
female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY
|
||||
can_adjust = FALSE
|
||||
armor_type = /datum/armor/clothing_under/cc_cheerleader
|
||||
|
||||
/obj/item/clothing/under/rank/centcom/ba_cheerleader/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/gags_recolorable)
|
||||
update_icon(UPDATE_OVERLAYS)
|
||||
|
||||
/obj/item/clothing/under/rank/centcom/ba_cheerleader/centcom
|
||||
name = "CentCom cheerleading uniform"
|
||||
desc = "A Central Command cheer uniform. フレーフレー! 今です! The nanoweave lining is inexplicably rated \
|
||||
against small arms fire, laser discharge, and moderate explosive yield. The exposed midriff remains \
|
||||
completely unprotected, by design. Watchdog groups believe this may be an attempt to induce brain \
|
||||
aneurisms in Syndicate agents who observe it."
|
||||
greyscale_colors = "#FFFFFF#2ecc71"
|
||||
armor_type = /datum/armor/clothing_under/centcom_cheerleader
|
||||
|
||||
/obj/item/clothing/under/syndicate/ba_cheerleader
|
||||
name = "Syndicate cheerleading uniform"
|
||||
desc = "A Syndicate cheer uniform reinforced with kevlar. フレーフレー! 今です! Your fellow operatives \
|
||||
aren't going to encourage themselves. Cybersun Industries proudly supports morale, wellness, and \
|
||||
hostile takeover spirit."
|
||||
icon = 'modular_zubbers/icons/obj/clothing/under/ba_cheerleader.dmi'
|
||||
icon_state = "ba_cheerleader_under"
|
||||
post_init_icon_state = "ba_cheerleader"
|
||||
inhand_icon_state = "ba_cheerleader"
|
||||
worn_icon = 'modular_zubbers/icons/mob/clothing/under/ba_cheerleader.dmi'
|
||||
worn_icon_state = "ba_cheerleader"
|
||||
greyscale_config = /datum/greyscale_config/ba_cheerleader
|
||||
greyscale_config_worn = /datum/greyscale_config/ba_cheerleader/worn
|
||||
greyscale_config_inhand_left = /datum/greyscale_config/ba_cheerleader/inhand_left
|
||||
greyscale_config_inhand_right = /datum/greyscale_config/ba_cheerleader/inhand_right
|
||||
greyscale_colors = "#1a1a1a#7b241c"
|
||||
flags_1 = IS_PLAYER_COLORABLE_1
|
||||
body_parts_covered = CHEST|GROIN
|
||||
female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY
|
||||
can_adjust = FALSE
|
||||
has_sensor = NO_SENSORS
|
||||
armor_type = /datum/armor/clothing_under/syndie_cheerleader
|
||||
|
||||
/obj/item/clothing/under/syndicate/ba_cheerleader/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/gags_recolorable)
|
||||
update_icon(UPDATE_OVERLAYS)
|
||||
|
||||
// ---- GLOVES ----
|
||||
|
||||
/obj/item/clothing/gloves/ba_cheerleader
|
||||
name = "NT cheerleading gloves"
|
||||
desc = "Soft cotton cheer gloves. Go team!"
|
||||
icon = 'modular_zubbers/icons/obj/clothing/under/ba_cheerleader.dmi'
|
||||
icon_state = "ba_cheerleader_gloves_icon"
|
||||
post_init_icon_state = "ba_cheerleader_gloves"
|
||||
worn_icon = 'modular_zubbers/icons/mob/clothing/under/ba_cheerleader.dmi'
|
||||
worn_icon_state = "ba_cheerleader_gloves"
|
||||
greyscale_config = /datum/greyscale_config/ba_cheerleader_gloves
|
||||
greyscale_config_worn = /datum/greyscale_config/ba_cheerleader_gloves/worn
|
||||
greyscale_config_inhand_left = null
|
||||
greyscale_config_inhand_right = null
|
||||
greyscale_colors = "#FFFFFF#2980b9"
|
||||
flags_1 = IS_PLAYER_COLORABLE_1
|
||||
body_parts_covered = HANDS
|
||||
|
||||
/obj/item/clothing/gloves/ba_cheerleader/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/gags_recolorable)
|
||||
update_icon(UPDATE_OVERLAYS)
|
||||
|
||||
/obj/item/clothing/gloves/ba_cheerleader/command
|
||||
name = "NT command cheerleading gloves"
|
||||
desc = "Cheer gloves with a discreet nano-kevlar lining. Comfortable and authoritative."
|
||||
greyscale_colors = "#FFFFFF#1a3a6b"
|
||||
body_parts_covered = HANDS|ARMS
|
||||
siemens_coefficient = 0
|
||||
armor_type = /datum/armor/clothing_gloves/cc_cheerleader
|
||||
|
||||
/obj/item/clothing/gloves/ba_cheerleader/centcom
|
||||
name = "CentCom cheerleading gloves"
|
||||
desc = "Cheer gloves of unmistakably high-grade nanoweave construction. They feel less like costume accessories \
|
||||
and more like evidence in an appropriations hearing; it would be cheaper to make them out of actual gold."
|
||||
greyscale_colors = "#FFFFFF#2ecc71"
|
||||
body_parts_covered = HANDS|ARMS
|
||||
siemens_coefficient = 0
|
||||
armor_type = /datum/armor/clothing_gloves/centcom_cheerleader
|
||||
|
||||
/obj/item/clothing/gloves/ba_cheerleader/syndicate
|
||||
name = "Syndicate cheerleading gloves"
|
||||
desc = "Cheer gloves reinforced across the knuckles with kevlar. Ideal for \"encouraging\" hostile targets \
|
||||
to be unconscious."
|
||||
greyscale_colors = "#1a1a1a#7b241c"
|
||||
body_parts_covered = HANDS|ARMS
|
||||
siemens_coefficient = 0
|
||||
armor_type = /datum/armor/clothing_gloves/syndie_cheerleader
|
||||
|
||||
// ---- SNEAKERS ----
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/ba_cheerleader
|
||||
name = "NT cheerleading sneakers"
|
||||
desc = "A pair of sporty sneakers. Good for cheering. Usefulness for running not evaluated by Nanotrasen \
|
||||
Corporation; sprint at your own risk."
|
||||
icon = 'modular_zubbers/icons/obj/clothing/under/ba_cheerleader.dmi'
|
||||
icon_state = "ba_cheerleader_shoes_icon"
|
||||
post_init_icon_state = "ba_cheerleader_shoes"
|
||||
worn_icon = 'modular_zubbers/icons/mob/clothing/under/ba_cheerleader.dmi'
|
||||
worn_icon_state = "ba_cheerleader_shoes"
|
||||
greyscale_config = /datum/greyscale_config/ba_cheerleader_shoes
|
||||
greyscale_config_worn = /datum/greyscale_config/ba_cheerleader_shoes/worn
|
||||
greyscale_colors = "#FFFFFF#2980b9"
|
||||
flags_1 = IS_PLAYER_COLORABLE_1
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/ba_cheerleader/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/gags_recolorable)
|
||||
update_icon(UPDATE_OVERLAYS)
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/ba_cheerleader/command
|
||||
name = "NT command cheerleading sneakers"
|
||||
desc = "A pair of sporty sneakers. Good for cheering. Usefulness for running not evaluated by Nanotrasen \
|
||||
Corporation; sprint at your own risk."
|
||||
greyscale_colors = "#FFFFFF#1a3a6b"
|
||||
body_parts_covered = FEET|LEGS
|
||||
armor_type = /datum/armor/clothing_shoes/cc_cheerleader
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/ba_cheerleader/centcom
|
||||
name = "CentCom cheerleading sneakers"
|
||||
desc = "CentCom cheer sneakers with custom anti-fatigue inserts, rated for zero-gravity routines."
|
||||
greyscale_colors = "#FFFFFF#2ecc71"
|
||||
body_parts_covered = FEET|LEGS
|
||||
armor_type = /datum/armor/clothing_shoes/centcom_cheerleader
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/ba_cheerleader/syndicate
|
||||
name = "Syndicate cheerleading sneakers"
|
||||
desc = "Cheer sneakers with blood-red orthopedic gel inserts and slip resistant soles rated for \"Performing\" \
|
||||
even in environments with normally untenable levels of blood, lubricant, and several surfaces \
|
||||
Cybersun Legal advised against listing."
|
||||
greyscale_colors = "#1a1a1a#7b241c"
|
||||
body_parts_covered = FEET|LEGS
|
||||
armor_type = /datum/armor/clothing_shoes/syndie_cheerleader
|
||||
clothing_traits = list(TRAIT_NO_SLIP_WATER)
|
||||
@@ -1,4 +1,5 @@
|
||||
#define DOAFTER_SOURCE_LYCAN_DOOR_PRY "lycan door pry"
|
||||
#define FORCE_TO_BURN_RATIO 1.5
|
||||
|
||||
/datum/species/lycan
|
||||
id = SPECIES_LYCAN
|
||||
@@ -193,11 +194,19 @@
|
||||
|
||||
// already lost the limb shit
|
||||
|
||||
/datum/species/lycan/proc/on_baned(mob/living/carbon/human/baned, mob/user)
|
||||
/datum/species/lycan/proc/on_baned(mob/living/carbon/human/baned, obj/source, mob/user)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
baned.visible_message(span_warning("[baned] seems to react negatively to the silver, [baned.p_their()] flesh scorching and burning on contact!"), ignored_mobs = list(baned))
|
||||
to_chat(baned, span_bolddanger("The sister moon casts its light on you, and you feel your flesh scorch!"))
|
||||
INVOKE_ASYNC(baned, TYPE_PROC_REF(/mob, emote), "scream")
|
||||
|
||||
var/target_zone
|
||||
var/mob/living/living_user = user
|
||||
if (istype(living_user))
|
||||
target_zone = living_user.zone_selected
|
||||
|
||||
baned.apply_damage(source.force * FORCE_TO_BURN_RATIO, BURN, target_zone, attacking_item = source)
|
||||
|
||||
#undef DOAFTER_SOURCE_LYCAN_DOOR_PRY
|
||||
#undef FORCE_TO_BURN_RATIO
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
/*
|
||||
//Silver debuff Code vs Lycans temporarily disabled for for the bane refactor.
|
||||
|
||||
/datum/material/silver/on_applied(atom/source, mat_amount, multiplier, from_slot)
|
||||
. = ..()
|
||||
|
||||
if (isitem(source))
|
||||
source.AddElement(/datum/element/bane, /datum/species/lycan, damage_multiplier = 2, requires_combat_mode = FALSE, bane_damage_override = BURN)
|
||||
source.AddComponent( \
|
||||
/datum/component/bane, \
|
||||
should_bane_callback = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(is_viable_for_lycan_bane)), \
|
||||
damage_multiplier = 1.25, \
|
||||
)
|
||||
|
||||
/datum/material/silver/on_removed(atom/source, mat_amount, multiplier, from_slot)
|
||||
. = ..()
|
||||
|
||||
source.RemoveElement(/datum/element/bane, /datum/species/lycan, damage_multiplier = 2, requires_combat_mode = FALSE, bane_damage_override = BURN)
|
||||
|
||||
*/
|
||||
/proc/is_viable_for_lycan_bane(atom/target)
|
||||
return islycan(target)
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
var/component = species_modsuit.wearer?.GetComponent(/datum/component/transformation)
|
||||
if(component)
|
||||
playsound(owner, 'sound/machines/click.ogg', 25)
|
||||
UnregisterSignal(species_modsuit, COMSIG_ITEM_PRE_UNEQUIP)
|
||||
qdel(component)
|
||||
else if(species_modsuit.wearer == owner)
|
||||
to_chat(owner, span_notice("You already look like yourself!"))
|
||||
|
||||
@@ -75,9 +75,70 @@
|
||||
name = "Tajaran Organ Design Disk"
|
||||
limb_designs = list(/datum/design/tajaran_eyes, /datum/design/tajaran_tongue, /datum/design/tajaran_ears)
|
||||
|
||||
//Teshari organs
|
||||
//Pour one out for the birds.
|
||||
/datum/design/leftarm/New()
|
||||
category += list(SPECIES_TESHARI)
|
||||
return ..()
|
||||
|
||||
/datum/design/rightarm/New()
|
||||
category += list(SPECIES_TESHARI)
|
||||
return ..()
|
||||
|
||||
/datum/design/leftleg/New()
|
||||
category += list(SPECIES_TESHARI)
|
||||
return ..()
|
||||
|
||||
/datum/design/rightleg/New()
|
||||
category += list(SPECIES_TESHARI)
|
||||
return ..()
|
||||
|
||||
/datum/design/teshari_eyes
|
||||
name = "Teshari eyes"
|
||||
id = "tesharieyes"
|
||||
build_type = LIMBGROWER
|
||||
reagents_list = list(/datum/reagent/medicine/c2/synthflesh = 10)
|
||||
build_path = /obj/item/organ/eyes/teshari
|
||||
category = list(SPECIES_TESHARI)
|
||||
|
||||
/datum/design/teshari_ears
|
||||
name = "Teshari ears"
|
||||
id = "teshariears"
|
||||
build_type = LIMBGROWER
|
||||
reagents_list = list(/datum/reagent/medicine/c2/synthflesh = 10)
|
||||
build_path = /obj/item/organ/ears/teshari
|
||||
category = list(SPECIES_TESHARI)
|
||||
|
||||
/datum/design/teshari_tongue
|
||||
name = "Teshari tongue"
|
||||
id = "tesharitongue"
|
||||
build_type = LIMBGROWER
|
||||
reagents_list = list(/datum/reagent/medicine/c2/synthflesh = 10)
|
||||
build_path = /obj/item/organ/tongue/teshari
|
||||
category = list(SPECIES_TESHARI)
|
||||
|
||||
/datum/design/cold_lungs
|
||||
name = "Cold-Adapted Lungs"
|
||||
id = "coldlungs"
|
||||
build_type = LIMBGROWER
|
||||
reagents_list = list(/datum/reagent/medicine/c2/synthflesh = 20)
|
||||
build_path = /obj/item/organ/lungs/adaptive/cold
|
||||
category = list(SPECIES_TESHARI)
|
||||
|
||||
/datum/design/limb_disk/teshari
|
||||
name = "Teshari Organ Design Disk"
|
||||
desc = "Contains designs for teshari organs for the limbgrower - Ears, tounges, and eyes."
|
||||
id = "limbdesign_teshari"
|
||||
build_path = /obj/item/disk/design_disk/limbs/teshari
|
||||
|
||||
/obj/item/disk/design_disk/limbs/teshari
|
||||
name = "Teshari Organ Design Disk"
|
||||
limb_designs = list(/datum/design/teshari_eyes, /datum/design/teshari_ears, /datum/design/teshari_tongue, /datum/design/cold_lungs)
|
||||
|
||||
/obj/machinery/limbgrower/Initialize(mapload)
|
||||
categories += list(
|
||||
SPECIES_HEMOPHAGE,
|
||||
SPECIES_TAJARAN
|
||||
SPECIES_TAJARAN,
|
||||
SPECIES_TESHARI
|
||||
)
|
||||
. = ..()
|
||||
|
||||
@@ -191,6 +191,15 @@
|
||||
item_path = /obj/item/clothing/gloves/ring/hypno/bippys
|
||||
ckeywhitelist = list("bippys")
|
||||
|
||||
/datum/loadout_item/gloves/ba_cheerleader
|
||||
name = "NT Cheerleading Gloves"
|
||||
item_path = /obj/item/clothing/gloves/ba_cheerleader
|
||||
|
||||
/datum/loadout_item/gloves/ba_cheerleader_command
|
||||
name = "NT Command Cheerleading Gloves"
|
||||
item_path = /obj/item/clothing/gloves/ba_cheerleader/command
|
||||
restricted_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_HEAD_OF_SECURITY, JOB_RESEARCH_DIRECTOR, JOB_CHIEF_ENGINEER, JOB_CHIEF_MEDICAL_OFFICER, JOB_QUARTERMASTER, JOB_NT_REP)
|
||||
|
||||
/datum/loadout_item/gloves/latex_gloves
|
||||
name = "Latex Gloves"
|
||||
item_path = /obj/item/clothing/gloves/latex_gloves
|
||||
|
||||
@@ -349,6 +349,15 @@
|
||||
restricted_roles = list(JOB_CLOWN)
|
||||
//ckeywhitelist = list("bloodrite")
|
||||
|
||||
/datum/loadout_item/shoes/ba_cheerleader
|
||||
name = "NT Cheerleading Sneakers"
|
||||
item_path = /obj/item/clothing/shoes/sneakers/ba_cheerleader
|
||||
|
||||
/datum/loadout_item/shoes/ba_cheerleader_command
|
||||
name = "NT Command Cheerleading Sneakers"
|
||||
item_path = /obj/item/clothing/shoes/sneakers/ba_cheerleader/command
|
||||
restricted_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_HEAD_OF_SECURITY, JOB_RESEARCH_DIRECTOR, JOB_CHIEF_ENGINEER, JOB_CHIEF_MEDICAL_OFFICER, JOB_QUARTERMASTER, JOB_NT_REP)
|
||||
|
||||
/datum/loadout_item/shoes/fun/bubber/clown/pink/squeak //Unlike the rest, these make noise. Job locked.
|
||||
name = "Pink Clown Heels"
|
||||
item_path = /obj/item/clothing/shoes/clown_shoes/bubber/clussy
|
||||
|
||||
@@ -257,3 +257,45 @@
|
||||
/datum/loadout_item/suit/greyscale/furred_trench
|
||||
name = "Furred Trenchcoat"
|
||||
item_path = /obj/item/clothing/suit/greyscale/furred_trenchcoat
|
||||
|
||||
/datum/loadout_item/suit/coat_chemist
|
||||
name = "Chemistry winter coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/medical/chemistry
|
||||
|
||||
/datum/loadout_item/suit/coat_coroner
|
||||
name = "Coroner winter coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/medical/coroner
|
||||
|
||||
/datum/loadout_item/suit/coat_virologist
|
||||
name = "Virologists winter coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/medical/viro
|
||||
|
||||
/datum/loadout_item/suit/coat_ce
|
||||
name = "Chief Engineers winter coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/engineering/ce
|
||||
restricted_roles = list(JOB_CHIEF_ENGINEER)
|
||||
|
||||
/datum/loadout_item/suit/coat_cmo
|
||||
name = "Chief Medical Officers winter coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/medical/cmo
|
||||
restricted_roles = list(JOB_CHIEF_MEDICAL_OFFICER)
|
||||
|
||||
/datum/loadout_item/suit/coat_rd
|
||||
name = "Research Directors winter coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/science/rd
|
||||
restricted_roles = list(JOB_RESEARCH_DIRECTOR)
|
||||
|
||||
/datum/loadout_item/suit/coat_qm
|
||||
name = "Quartermasters winter coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/cargo/qm
|
||||
restricted_roles = list(JOB_QUARTERMASTER)
|
||||
|
||||
/datum/loadout_item/suit/coat_hop
|
||||
name = "Head of Personnel winter coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/hop
|
||||
restricted_roles = list(JOB_HEAD_OF_PERSONNEL)
|
||||
|
||||
/datum/loadout_item/suit/coat_captain
|
||||
name = "Captains winter coat"
|
||||
item_path = /obj/item/clothing/suit/hooded/wintercoat/captain
|
||||
restricted_roles = list(JOB_CAPTAIN)
|
||||
|
||||
@@ -145,6 +145,15 @@
|
||||
item_path = /obj/item/clothing/under/rank/security/corrections_officer/sweater/skirt
|
||||
restricted_roles = list(JOB_CORRECTIONS_OFFICER, JOB_WARDEN)
|
||||
|
||||
/datum/loadout_item/uniform/miscellaneous/ba_cheerleader
|
||||
name = "NT Cheerleading Outfit"
|
||||
item_path = /obj/item/clothing/under/costume/ba_cheerleader
|
||||
|
||||
/datum/loadout_item/uniform/command/ba_cheerleader
|
||||
name = "NT Command Cheerleading Uniform"
|
||||
item_path = /obj/item/clothing/under/rank/centcom/ba_cheerleader
|
||||
restricted_roles = list(JOB_CAPTAIN, JOB_HEAD_OF_PERSONNEL, JOB_HEAD_OF_SECURITY, JOB_RESEARCH_DIRECTOR, JOB_CHIEF_ENGINEER, JOB_CHIEF_MEDICAL_OFFICER, JOB_QUARTERMASTER, JOB_NT_REP)
|
||||
|
||||
/datum/loadout_item/uniform/miscellaneous/tactical_maid //Donor item for skyefree
|
||||
name = "Tactical Maid Costume"
|
||||
item_path = /obj/item/clothing/under/misc/maid/tactical
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
/datum/species/ghoul
|
||||
name = "Ghoul"
|
||||
name = "\improper Ghoul"
|
||||
id = SPECIES_GHOUL
|
||||
examine_limb_id = SPECIES_GHOUL
|
||||
can_have_genitals = FALSE //WHY WOULD YOU WANT TO FUCK ONE OF THESE THINGS?
|
||||
mutant_bodyparts = list("ghoulcolor" = "Tan Necrotic")
|
||||
mutanttongue = /obj/item/organ/tongue/ghoul
|
||||
can_have_genitals = FALSE
|
||||
inherent_traits = list(
|
||||
TRAIT_ADVANCEDTOOLUSER,
|
||||
TRAIT_RADIMMUNE,
|
||||
TRAIT_CAN_STRIP,
|
||||
TRAIT_EASYDISMEMBER,
|
||||
TRAIT_EASILY_WOUNDED, //theyre like fuckin skin and bones
|
||||
TRAIT_EASILY_WOUNDED,
|
||||
TRAIT_LITERATE,
|
||||
TRAIT_MUTANT_COLORS,
|
||||
TRAIT_FIXED_MUTANT_COLORS,
|
||||
)
|
||||
payday_modifier = 1.0 //-- "Equality"
|
||||
stunmod = 1.25 //multiplier for stun durations
|
||||
bodytemp_normal = T20C
|
||||
|
||||
payday_modifier = 1.0
|
||||
stunmod = 1.25
|
||||
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT
|
||||
mutanttongue = /obj/item/organ/tongue/ghoul
|
||||
fixed_mut_color = "#FFFFFF"
|
||||
|
||||
bodypart_overrides = list(
|
||||
BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/mutant/ghoul,
|
||||
BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/mutant/ghoul,
|
||||
@@ -27,44 +27,24 @@
|
||||
BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/mutant/ghoul,
|
||||
BODY_ZONE_CHEST = /obj/item/bodypart/chest/mutant/ghoul,
|
||||
)
|
||||
//the chest and head cannot be turned into meat
|
||||
//i dont have to worry about sprites due to limbs_icon, thank god
|
||||
//also the head needs to be normal for hair to work
|
||||
|
||||
/// Body parts that the ghoul can pull off or have reattached
|
||||
bodytemp_normal = T20C
|
||||
|
||||
// The chest and head cannot be turned into meat.
|
||||
// Also, the head needs to be normal for hair to work.
|
||||
|
||||
/// Body parts that the ghoul can pull off or have reattached.
|
||||
var/static/list/swappable_parts = list(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
|
||||
|
||||
/datum/species/ghoul/get_default_mutant_bodyparts()
|
||||
return list(
|
||||
"tail" = list("None", FALSE),
|
||||
"ears" = list("None", FALSE),
|
||||
"legs" = list("Normal Legs", FALSE),
|
||||
)
|
||||
|
||||
/datum/species/ghoul/get_species_description()
|
||||
return list(placeholder_description,)
|
||||
|
||||
/proc/proof_ghoul_features(list/inFeatures)
|
||||
// Missing Defaults in DNA? Randomize!
|
||||
if(inFeatures["ghoulcolor"] == null || inFeatures["ghoulcolor"] == "")
|
||||
inFeatures["ghoulcolor"] = GLOB.color_list_ghoul[pick(GLOB.color_list_ghoul)]
|
||||
|
||||
/datum/species/ghoul/proc/set_ghoul_color(mob/living/carbon/human/human_ghoul)
|
||||
// Called on Assign, or on Color Change (or any time proof_ghoul_features() is used)
|
||||
fixed_mut_color = human_ghoul.dna.features["ghoulcolor"]
|
||||
|
||||
/datum/species/ghoul/on_species_gain(mob/living/carbon/new_ghoul, datum/species/old_species, pref_load, regenerate_icons)
|
||||
// Missing Defaults in DNA? Randomize!
|
||||
proof_ghoul_features(new_ghoul.dna.features)
|
||||
|
||||
. = ..()
|
||||
|
||||
if(ishuman(new_ghoul))
|
||||
var/mob/living/carbon/human/human_ghoul = new_ghoul
|
||||
|
||||
set_ghoul_color(human_ghoul)
|
||||
|
||||
// 2) BODYPARTS
|
||||
RegisterSignal(human_ghoul, COMSIG_ATOM_ITEM_INTERACTION, PROC_REF(attach_meat))
|
||||
human_ghoul.part_default_head = /obj/item/bodypart/head/mutant/ghoul
|
||||
human_ghoul.part_default_chest = /obj/item/bodypart/chest/mutant/ghoul
|
||||
@@ -76,7 +56,6 @@
|
||||
/datum/species/ghoul/on_species_loss(mob/living/carbon/human/former_ghoul, datum/species/new_species, pref_load)
|
||||
. = ..()
|
||||
|
||||
// 2) BODYPARTS
|
||||
UnregisterSignal(former_ghoul, COMSIG_ATOM_ITEM_INTERACTION)
|
||||
former_ghoul.part_default_head = /obj/item/bodypart/head
|
||||
former_ghoul.part_default_chest = /obj/item/bodypart/chest
|
||||
@@ -86,11 +65,10 @@
|
||||
former_ghoul.part_default_r_leg = /obj/item/bodypart/leg/right
|
||||
|
||||
/*
|
||||
* ATTACK PROCS
|
||||
* ATTACK PROCS
|
||||
*/
|
||||
|
||||
/datum/species/ghoul/disarm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style)
|
||||
// Targeting Self? With "DISARM"
|
||||
if (user != target)
|
||||
return ..()
|
||||
|
||||
@@ -104,20 +82,18 @@
|
||||
to_chat(user, span_alert("You can't get a good enough grip with your hands bound."))
|
||||
return FALSE
|
||||
|
||||
// Robot Arms Fail
|
||||
// Robotic limbs cannot be detatched this way.
|
||||
if (!IS_ORGANIC_LIMB(affecting))
|
||||
to_chat(user, "That thing is on there good. It's not coming off with a gentle tug.")
|
||||
return FALSE
|
||||
|
||||
// Pry it off...
|
||||
user.visible_message("[user] grabs onto [p_their()] own [affecting.name] and pulls.", span_notice("You grab hold of your [affecting.name] and yank hard."))
|
||||
if (!do_after(user, 3 SECONDS, target))
|
||||
return FALSE
|
||||
|
||||
user.visible_message("[user]'s [affecting.name] comes right off in their hand.", span_notice("Your [affecting.name] pops right off."))
|
||||
playsound(get_turf(user), 'sound/effects/meatslap.ogg', 40, 1) //ill change these sounds later
|
||||
playsound(get_turf(user), 'sound/effects/meatslap.ogg', 40, 1)
|
||||
|
||||
// Destroy Limb, Drop Meat, Pick Up
|
||||
var/obj/item/I = affecting.drop_limb()
|
||||
if (istype(I, /obj/item/food/meat/slab))
|
||||
user.put_in_hands(I)
|
||||
@@ -134,12 +110,12 @@
|
||||
if(!istype(target))
|
||||
return NONE
|
||||
|
||||
// MEAT LIMBS: If our limb is missing, and we're using meat, stick it in!
|
||||
// Meat can be used as a suitable limb replacement.
|
||||
if(target.stat == DEAD || !istype(tool, /obj/item/food/meat/slab))
|
||||
return NONE
|
||||
|
||||
var/target_zone = user.zone_selected
|
||||
if(target.get_bodypart(target_zone)) // we already have a limb here
|
||||
if(target.get_bodypart(target_zone))
|
||||
return NONE
|
||||
|
||||
if(!(target_zone in swappable_parts))
|
||||
@@ -147,20 +123,17 @@
|
||||
|
||||
user.visible_message("[user] begins mashing [tool] into [target]'s torso.", span_notice("You begin mashing [tool] into [target == user ? "your" : "[target]'s"] torso."))
|
||||
|
||||
// Leave Melee Chain (so deleting the meat doesn't throw an error) <--- aka, deleting the meat that called this very proc.
|
||||
ASYNC
|
||||
if(do_after(user, 3 SECONDS, target))
|
||||
// Attach the part!
|
||||
var/obj/item/bodypart/newBP = target.newBodyPart(target_zone, FALSE)
|
||||
target.visible_message("The meat sprouts digits and becomes [target]'s new [newBP.name]!", span_notice("The meat sprouts digits and becomes your new [newBP.name]!"))
|
||||
newBP.try_attach_limb(target)
|
||||
var/obj/item/bodypart/new_limb = target.newBodyPart(target_zone, FALSE)
|
||||
target.visible_message("The meat sprouts digits and becomes [target]'s new [new_limb.name]!", span_notice("The meat sprouts digits and becomes your new [new_limb.name]!"))
|
||||
new_limb.try_attach_limb(target)
|
||||
qdel(tool)
|
||||
playsound(get_turf(target), 'sound/effects/meatslap.ogg', 50, 1)
|
||||
|
||||
return ITEM_INTERACT_SUCCESS
|
||||
|
||||
/mob/living/carbon
|
||||
// Type References for Bodyparts
|
||||
var/obj/item/bodypart/head/part_default_head = /obj/item/bodypart/head
|
||||
var/obj/item/bodypart/chest/part_default_chest = /obj/item/bodypart/chest
|
||||
var/obj/item/bodypart/arm/left/part_default_l_arm = /obj/item/bodypart/arm/left
|
||||
|
||||
@@ -69,6 +69,7 @@
|
||||
design_ids += list(
|
||||
"limbdesign_hemophage",
|
||||
"limbdesign_tajaran",
|
||||
"limbdesign_teshari",
|
||||
)
|
||||
|
||||
/datum/techweb_node/cyber/cyber_implants/New()
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
// Syndicate Cheerleader Outfit - Traitor Uplink Entry
|
||||
|
||||
/datum/uplink_item/badass/syndie_cheerleader
|
||||
name = "Syndicate Cheerleader Outfit"
|
||||
desc = "Cybersun Industries is proud to support operative wellness. \
|
||||
Studies show that having someone in your corner makes contract completion 12% more likely."
|
||||
item = /obj/item/storage/box/syndie_cheerleader
|
||||
cost = 6
|
||||
uplink_item_flags = SYNDIE_TRIPS_CONTRABAND
|
||||
|
||||
/obj/item/storage/box/syndie_cheerleader
|
||||
name = "suspicious red box"
|
||||
desc = "A sleek, sturdy box. The Cybersun logo is printed on the side for some reason."
|
||||
icon_state = "syndiebox"
|
||||
|
||||
/obj/item/storage/box/syndie_cheerleader/PopulateContents()
|
||||
. = ..()
|
||||
new /obj/item/clothing/under/syndicate/ba_cheerleader(src)
|
||||
new /obj/item/clothing/gloves/ba_cheerleader/syndicate(src)
|
||||
new /obj/item/clothing/shoes/sneakers/ba_cheerleader/syndicate(src)
|
||||
@@ -47,6 +47,7 @@
|
||||
/obj/item/clothing/glasses/rosecolored = 5,
|
||||
/obj/item/clothing/glasses/thin = 5,
|
||||
/obj/item/clothing/glasses/welding/steampunk_goggles = 5,
|
||||
/obj/item/clothing/gloves/ba_cheerleader = 5,
|
||||
/obj/item/clothing/gloves/bracer/wraps = 5,
|
||||
/obj/item/clothing/gloves/cat = 5,
|
||||
/obj/item/clothing/gloves/elofy = 5,
|
||||
@@ -76,6 +77,7 @@
|
||||
"name" = "Under",
|
||||
"icon" = "shirt",
|
||||
"products" = list(
|
||||
/obj/item/clothing/under/costume/ba_cheerleader = 5,
|
||||
/obj/item/clothing/under/caged_dress/skirt = 5,
|
||||
/obj/item/clothing/under/costume/skyrat/kilt/royal = 5,
|
||||
/obj/item/clothing/under/costume/skyrat/kimono/sigmar = 5,
|
||||
@@ -207,6 +209,7 @@
|
||||
"name" = "Shoes",
|
||||
"icon" = "socks",
|
||||
"products" = list(
|
||||
/obj/item/clothing/shoes/sneakers/ba_cheerleader = 5,
|
||||
/obj/item/clothing/shoes/colorable_laceups = 5,
|
||||
/obj/item/clothing/shoes/colorable_sandals = 5,
|
||||
/obj/item/clothing/shoes/fancy_heels/drag = 5,
|
||||
|
||||
@@ -214,8 +214,9 @@
|
||||
/obj/item/clothing/under/rank/security/viro/head_of_security/formal/skirt = 1,
|
||||
/obj/item/clothing/suit/armor/hos/viro/trenchcoat/winter = 1,
|
||||
/obj/item/clothing/suit/armor/hos/viro/trenchcoat = 1,
|
||||
/obj/item/clothing/suit/armor/hos/viro/vest = 1,
|
||||
/obj/item/clothing/suit/armor/hos/viro = 1,
|
||||
/obj/item/clothing/head/helmet/viro/hos = 1,
|
||||
/obj/item/clothing/head/helmet/sec/viro/hos = 1,
|
||||
/obj/item/clothing/under/rank/security/head_of_security/battledress/red = 1,
|
||||
/obj/item/clothing/under/rank/security/head_of_security/turtleneck/red = 1,
|
||||
/obj/item/clothing/under/rank/security/head_of_security/turtleneck/red/skirt = 1,
|
||||
@@ -277,6 +278,9 @@
|
||||
)
|
||||
|
||||
access_lists["[ACCESS_COMMAND]"] = list(
|
||||
/obj/item/clothing/under/rank/centcom/ba_cheerleader = 1,
|
||||
/obj/item/clothing/gloves/ba_cheerleader/command = 1,
|
||||
/obj/item/clothing/shoes/sneakers/ba_cheerleader/command = 1,
|
||||
/obj/item/clothing/head/hats/caphat/naval/fleet_admiral = 5,
|
||||
/obj/item/clothing/suit/armor/vest/bridge = 5,
|
||||
/obj/item/clothing/suit/armor/skyy = 5,
|
||||
|
||||
@@ -82,6 +82,7 @@
|
||||
/obj/item/clothing/suit/armor/vest/viro/leatherjacket = 6,
|
||||
/obj/item/clothing/suit/armor/vest/viro/softshell = 6,
|
||||
/obj/item/clothing/head/sec/viro = 6,
|
||||
/obj/item/clothing/head/helmet/sec/viro = 6,
|
||||
/obj/item/clothing/head/sec/viro/beanie = 6,
|
||||
|
||||
),
|
||||
|
||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
@@ -9668,6 +9668,7 @@
|
||||
#include "modular_zubbers\code\modules\clothing\suits\nerd.dm"
|
||||
#include "modular_zubbers\code\modules\clothing\suits\wintercoats.dm"
|
||||
#include "modular_zubbers\code\modules\clothing\under\_under.dm"
|
||||
#include "modular_zubbers\code\modules\clothing\under\ba_cheerleader.dm"
|
||||
#include "modular_zubbers\code\modules\clothing\under\clown.dm"
|
||||
#include "modular_zubbers\code\modules\clothing\under\costume.dm"
|
||||
#include "modular_zubbers\code\modules\clothing\under\misc.dm"
|
||||
@@ -10294,6 +10295,7 @@
|
||||
#include "modular_zubbers\code\modules\uplink\uplink_items\uplinkitems.dm"
|
||||
#include "modular_zubbers\code\modules\uplink\uplink_items\species\lycan_booster.dm"
|
||||
#include "modular_zubbers\code\modules\uplink\uplink_items\syndicat\_syndicat.dm"
|
||||
#include "modular_zubbers\code\modules\uplink\uplink_items\syndie_cheerleader\_syndie_cheerleader.dm"
|
||||
#include "modular_zubbers\code\modules\uplink\uplink_items\syndimaid\_syndimaid.dm"
|
||||
#include "modular_zubbers\code\modules\uplink\uplink_items\syndimaid\clothes.dm"
|
||||
#include "modular_zubbers\code\modules\vehicles\mech_fabricator.dm"
|
||||
|
||||