mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 05:57:24 +01:00
Praise Be and Skkula: The PR (Skkulakin Race 2025) [READY FOR REVIEW] (#30744)
* skulk.dm placeholder for testing purposes
* Made an oopsie, fixed
* Skulk flesh color and language color testing
* Adding working language key, fixed language color
* Changed skulk flesh color, may change it again soon
* Ran tgui, hopefully fixed language color
* Changed skulk language color, hopefully for good this time
* Missed a spot
* Tgui fuckery
* If at first you don't succeed, cry to yourself for a bit then try again
* Tgui makes me violent
* Eyewear no longer save Skkulakin from flashes
* Skulk bones now hurt really bad
* Adds Skulk Sprites, Back Accessories, and other Placeholders
* Desperately trying to get body_accessories to work
* Minor name changes
* Skkulakin now have colorable eyes
* Makes the silk-spinning ability somewhat work, more changes need to be made
* Fixes the Skulks' ability to spin silk, however still needs changes
* Changed Skulks easier bone breaks into a trait
* Skulks (Now with 100% ethically sourced back spines!)
* Gives Skkulakin the Vox clothing sprites (Not counting head, glasses, or masks)
* Added update_spines_layer() for testing and help purposes
* Working on getting Skulk Backspines to change color depending on preset
* Skulk Backspines are now colored the same as your preset up spawning in (Thank you, Qwerty)
* Undefines SILK_NUTRITION_AMOUNT (I made a woopsie)
* Readds a return I may have accidentally removed at some point
* Skkulakin can now chitter
* Silk now be used to craft cloth and has an icon
* TGUI is going to make me do things
* Fixes the Brittle Bones Trait to work with Frail Quirk
* Sprite Fix
* Adds masking helpers
* Made a small woopsie
* I'm genuinely a fucking idiot
* Adds a bunch of new clothing
* Changes some clothing descriptions
* Fixes more placeholders and adds two new outfits
* Made small mistake, fixed
* Temporary change (Will revert soon)
* Reverted previous changes as the event is now over
* New Skulk Clothing, added some to the racial tab in the loadout, and made low-inquis robes orderable from cargo
* Adds High-Inquis Robes into cargo console
* Adds Skkulakin Flag (Orderable From Merch Vendor)
* Made small mistake, fixed it
* Inquisitorial Crate only has Low-Inquisitor clothing again
* Commits all offered suggestions
* Converts spans to defines and sorts out the rest of Skulk clothing (No MODs just yet)
* Gives Skulks the Nian Butt Sprite for now
* Fixes a small error with biosuits
* Fixes small coding error
* Fixes a few mor small coding errors
* Update code/modules/mob/living/carbon/human/appearance.dm
Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Signed-off-by: AVeryReluctantSpider <102713858+AVeryReluctantSpider@users.noreply.github.com>
* Update code/game/objects/items/stacks/sheets/sheet_types.dm
Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Signed-off-by: AVeryReluctantSpider <102713858+AVeryReluctantSpider@users.noreply.github.com>
* Update code/modules/economy/merch_items.dm
Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Signed-off-by: AVeryReluctantSpider <102713858+AVeryReluctantSpider@users.noreply.github.com>
* Removes 'collective' from outfit_admin.dm
* Basic Pixel-Shifting (Not Yet Complete)
* improve skulk headwear offset
* Revert "improve skulk headwear offset"
This reverts commit 2d93d61699.
* improve skulk headwear offset
* Cleans up some code and fixes ALL hats for Skkulakin
* Lets the AI speak Skkula-Runespeak, fixes Bomber Jackets and Winter Coats, makes Backpacks look better, fixes other small sprite issues
* Let them wear pants
* Update code/modules/mob/language.dm
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: AVeryReluctantSpider <102713858+AVeryReluctantSpider@users.noreply.github.com>
* Fixes masks and glasses for skkulakin
* Fixes Inquisitor Masks and adds missing Engineering Outfits
* Fixes Explorer Suits and HECK Suit for Skulks
* Fixes a few small issues and resolves some suggested changes
* Rebuilds TGUI
* Fixes Science Jumpsuits & Radsuits
* Fix Skkulakin chef belt disappearance.
* fix string assoc lookups for alists
* Update code/game/objects/structures/mirror.dm
Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Signed-off-by: AVeryReluctantSpider <102713858+AVeryReluctantSpider@users.noreply.github.com>
* Update code/modules/mob/living/carbon/human/species/skulk.dm
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: AVeryReluctantSpider <102713858+AVeryReluctantSpider@users.noreply.github.com>
---------
Signed-off-by: AVeryReluctantSpider <102713858+AVeryReluctantSpider@users.noreply.github.com>
Co-authored-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Co-authored-by: Alfalfa Scout <alfalfascout@proton.me>
This commit is contained in:
co-authored by
Contrabang
DGamerL
PollardTheDragon
warriorstar-orion
Alfalfa Scout
parent
9e7a98cefb
commit
6a1fc4f5c2
@@ -265,7 +265,7 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
|
||||
preview_icon.Blend(temp, ICON_OVERLAY)
|
||||
|
||||
//Tail
|
||||
if(H.body_accessory && (istype(H.body_accessory, /datum/body_accessory/tail) || istype(H.body_accessory, /datum/body_accessory/wing)))
|
||||
if(H.body_accessory && (istype(H.body_accessory, /datum/body_accessory/tail) || istype(H.body_accessory, /datum/body_accessory/wing) || istype(H.body_accessory, /datum/body_accessory/spines)))
|
||||
temp = new/icon("icon" = H.body_accessory.icon, "icon_state" = H.body_accessory.icon_state)
|
||||
preview_icon.Blend(temp, ICON_OVERLAY)
|
||||
else if(H.tail && H.dna.species.bodyflags & HAS_TAIL)
|
||||
@@ -274,6 +274,9 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
|
||||
else if(H.wing && H.dna.species.bodyflags & HAS_WING)
|
||||
temp = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[H.wing]_s")
|
||||
preview_icon.Blend(temp, ICON_OVERLAY)
|
||||
else if(H.spines && H.dna.species.bodyflags & HAS_BACK_SPINES)
|
||||
temp = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[H.spines]_s")
|
||||
preview_icon.Blend(temp, ICON_OVERLAY)
|
||||
|
||||
for(var/obj/item/organ/external/E in H.bodyparts)
|
||||
preview_icon.Blend(E.get_icon(), ICON_OVERLAY)
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
desc = "If left untreated the subject will mutate to a different species."
|
||||
severity = VIRUS_BIOHAZARD
|
||||
var/list/virspecies = list(/datum/species/human, /datum/species/tajaran, /datum/species/unathi,/datum/species/skrell, /datum/species/vulpkanin, /datum/species/diona,
|
||||
/datum/species/slime, /datum/species/kidan, /datum/species/drask, /datum/species/grey, /datum/species/moth) // No IPCs (not organic), or vox+plasmemes because of air requirements
|
||||
/datum/species/slime, /datum/species/kidan, /datum/species/drask, /datum/species/grey, /datum/species/moth, /datum/species/skulk) // No IPCs (not organic), or vox+plasmemes because of air requirements
|
||||
var/list/virsuffix = list("pox", "rot", "flu", "cough", "-gitis", "cold", "rash", "itch", "decay")
|
||||
var/datum/species/chosentype
|
||||
var/chosensuff
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
/datum/element/clothing_adjustment/monitor_headgear/on_item_dropped(datum/source, mob/target)
|
||||
UnregisterSignal(target, COMSIG_CARBON_APPLY_OVERLAY)
|
||||
|
||||
/datum/element/clothing_adjustment/monitor_headgear/proc/on_carbon_apply_overlay(mob/living/carbon/source, cache_index, mutable_appearance/overlay)
|
||||
/datum/element/clothing_adjustment/monitor_headgear/proc/on_carbon_apply_overlay(mob/living/carbon/human/source, cache_index)
|
||||
SIGNAL_HANDLER // COMSIG_CARBON_APPLY_OVERLAY
|
||||
if(cache_index != HEAD_LAYER || !istype(source))
|
||||
return
|
||||
@@ -58,5 +58,153 @@
|
||||
if(!robohead?.is_monitor)
|
||||
return
|
||||
|
||||
var/mutable_appearance/overlay = source.overlays_standing[cache_index]
|
||||
overlay.pixel_x = pixel_x
|
||||
overlay.pixel_y = pixel_y
|
||||
|
||||
// Clothing Adjustments Handling Skkulakin
|
||||
|
||||
/datum/element/clothing_adjustment/skulk_headgear
|
||||
var/alist/directions
|
||||
|
||||
/datum/element/clothing_adjustment/skulk_headgear/Attach(datum/target, alist/_directions)
|
||||
if(!istype(_directions))
|
||||
return ELEMENT_INCOMPATIBLE
|
||||
|
||||
. = ..()
|
||||
|
||||
directions = _directions
|
||||
|
||||
/datum/element/clothing_adjustment/skulk_headgear/on_item_equipped(datum/source, mob/target)
|
||||
RegisterSignal(target, COMSIG_CARBON_APPLY_OVERLAY, PROC_REF(on_carbon_apply_overlay), override = TRUE)
|
||||
|
||||
/datum/element/clothing_adjustment/skulk_headgear/on_item_dropped(datum/source, mob/target)
|
||||
UnregisterSignal(target, list(COMSIG_CARBON_APPLY_OVERLAY))
|
||||
|
||||
var/mob/living/carbon/human/human = target
|
||||
if(!istype(human))
|
||||
return
|
||||
|
||||
human.update_inv_head()
|
||||
|
||||
/datum/element/clothing_adjustment/skulk_headgear/proc/on_carbon_apply_overlay(mob/living/carbon/human/source, cache_index)
|
||||
SIGNAL_HANDLER // COMSIG_CARBON_APPLY_OVERLAY
|
||||
if(cache_index != HEAD_LAYER || !istype(source))
|
||||
return
|
||||
|
||||
var/datum/species = source.dna?.species
|
||||
if(!istype(species))
|
||||
return
|
||||
|
||||
if(!istype(species, /datum/species/skulk))
|
||||
return
|
||||
|
||||
var/icon/I = new()
|
||||
var/image/overlay = source.overlays_standing[cache_index]
|
||||
for(var/dir in GLOB.cardinal)
|
||||
var/icon/dir_image = icon(overlay.icon, overlay.icon_state)
|
||||
dir_image.Shift(NORTH, directions[dir][1])
|
||||
dir_image.Shift(WEST, directions[dir][2])
|
||||
I.Insert(dir_image, dir = dir)
|
||||
|
||||
source.overlays_standing[cache_index] = I
|
||||
|
||||
/obj/item/clothing/head/Initialize(mapload)
|
||||
. = ..()
|
||||
var/skulk_adjustment = string_assoc_list(alist(SOUTH = list(-1, 0), NORTH = list(-1, 0), EAST = list(0, -2), WEST = list(0, 2)))
|
||||
AddElement(/datum/element/clothing_adjustment/skulk_headgear, skulk_adjustment)
|
||||
|
||||
/datum/element/clothing_adjustment/skulk_mask
|
||||
var/alist/directions
|
||||
|
||||
/datum/element/clothing_adjustment/skulk_mask/Attach(datum/target, alist/_directions)
|
||||
if(!istype(_directions))
|
||||
return ELEMENT_INCOMPATIBLE
|
||||
|
||||
. = ..()
|
||||
|
||||
directions = _directions
|
||||
|
||||
/datum/element/clothing_adjustment/skulk_mask/on_item_equipped(datum/source, mob/target)
|
||||
RegisterSignal(target, COMSIG_CARBON_APPLY_OVERLAY, PROC_REF(on_carbon_apply_overlay), override = TRUE)
|
||||
|
||||
/datum/element/clothing_adjustment/skulk_mask/on_item_dropped(datum/source, mob/target)
|
||||
UnregisterSignal(target, list(COMSIG_CARBON_APPLY_OVERLAY))
|
||||
|
||||
var/mob/living/carbon/human/human = target
|
||||
if(!istype(human))
|
||||
return
|
||||
|
||||
human.update_inv_wear_mask()
|
||||
|
||||
/datum/element/clothing_adjustment/skulk_mask/proc/on_carbon_apply_overlay(mob/living/carbon/human/source, cache_index)
|
||||
SIGNAL_HANDLER // COMSIG_CARBON_APPLY_OVERLAY
|
||||
if(cache_index != FACEMASK_LAYER || !istype(source))
|
||||
return
|
||||
|
||||
var/datum/species = source.dna?.species
|
||||
if(!istype(species))
|
||||
return
|
||||
|
||||
if(!istype(species, /datum/species/skulk))
|
||||
return
|
||||
|
||||
var/icon/I = new()
|
||||
var/image/overlay = source.overlays_standing[cache_index]
|
||||
for(var/dir in GLOB.cardinal)
|
||||
var/icon/dir_image = icon(overlay.icon, overlay.icon_state)
|
||||
dir_image.Shift(NORTH, directions[dir][1])
|
||||
dir_image.Shift(WEST, directions[dir][2])
|
||||
I.Insert(dir_image, dir = dir)
|
||||
|
||||
source.overlays_standing[cache_index] = I
|
||||
|
||||
/obj/item/clothing/mask/Initialize(mapload)
|
||||
. = ..()
|
||||
var/skulk_adjustment = string_assoc_list(alist(SOUTH = list(-1, 0), NORTH = list(-1, 0), EAST = list(0, -2), WEST = list(0, 2)))
|
||||
AddElement(/datum/element/clothing_adjustment/skulk_mask, skulk_adjustment)
|
||||
|
||||
/datum/element/clothing_adjustment/skulk_glasses
|
||||
var/alist/directions
|
||||
|
||||
/datum/element/clothing_adjustment/skulk_glasses/Attach(datum/target, alist/_directions)
|
||||
if(!istype(_directions))
|
||||
return ELEMENT_INCOMPATIBLE
|
||||
|
||||
. = ..()
|
||||
|
||||
directions = _directions
|
||||
|
||||
/datum/element/clothing_adjustment/skulk_glasses/on_item_equipped(datum/source, mob/target)
|
||||
RegisterSignal(target, COMSIG_CARBON_APPLY_OVERLAY, PROC_REF(on_carbon_apply_overlay), override = TRUE)
|
||||
|
||||
/datum/element/clothing_adjustment/skulk_glasses/on_item_dropped(datum/source, mob/target)
|
||||
UnregisterSignal(target, list(COMSIG_CARBON_APPLY_OVERLAY))
|
||||
|
||||
var/mob/living/carbon/human/human = target
|
||||
if(!istype(human))
|
||||
return
|
||||
|
||||
human.update_inv_glasses()
|
||||
|
||||
/datum/element/clothing_adjustment/skulk_glasses/proc/on_carbon_apply_overlay(mob/living/carbon/human/source, cache_index)
|
||||
SIGNAL_HANDLER // COMSIG_CARBON_APPLY_OVERLAY
|
||||
if(cache_index != GLASSES_OVER_LAYER || !istype(source))
|
||||
return
|
||||
|
||||
var/datum/species = source.dna?.species
|
||||
if(!istype(species))
|
||||
return
|
||||
|
||||
if(!istype(species, /datum/species/skulk))
|
||||
return
|
||||
|
||||
var/icon/I = new()
|
||||
var/image/overlay = source.overlays_standing[cache_index]
|
||||
for(var/dir in GLOB.cardinal)
|
||||
var/icon/dir_image = icon(overlay.icon, overlay.icon_state)
|
||||
dir_image.Shift(NORTH, directions[dir][1])
|
||||
dir_image.Shift(WEST, directions[dir][2])
|
||||
I.Insert(dir_image, dir = dir)
|
||||
|
||||
source.overlays_standing[cache_index] = I
|
||||
|
||||
@@ -481,6 +481,10 @@
|
||||
linked_emote = /datum/emote/living/carbon/human/flutter
|
||||
name = "Flutter"
|
||||
|
||||
/datum/keybinding/emote/carbon/human/chitter
|
||||
linked_emote = /datum/emote/living/carbon/human/chitter
|
||||
name = "Chitter"
|
||||
|
||||
/datum/keybinding/emote/carbon/human/quill
|
||||
linked_emote = /datum/emote/living/carbon/human/quill
|
||||
name = "Quill"
|
||||
|
||||
@@ -1664,3 +1664,38 @@
|
||||
P.owner = H.real_name
|
||||
P.ownjob = "Tourist"
|
||||
P.name = "PDA-[H.real_name] ([P.ownjob])"
|
||||
|
||||
/datum/outfit/admin/supreme
|
||||
name = "Supreme-Inquisitor"
|
||||
uniform = /obj/item/clothing/under/skulk/skulkcasual
|
||||
suit = /obj/item/clothing/suit/supremeinquis
|
||||
r_ear = /obj/item/radio/headset/alt
|
||||
head = /obj/item/clothing/head/supremeinquis
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
back = /obj/item/storage/backpack/satchel
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
belt = /obj/item/melee/baton/loaded
|
||||
l_pocket = /obj/item/melee/energy/sword/saber/purple
|
||||
suit_store = /obj/item/gun/energy/plasma_pistol
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/survival = 1,
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/survival = 1
|
||||
)
|
||||
|
||||
/datum/outfit/admin/low
|
||||
name = "Low-Inquisitor"
|
||||
uniform = /obj/item/clothing/under/skulk/skulkcasual
|
||||
suit = /obj/item/clothing/suit/hooded/lowinquis
|
||||
r_ear = /obj/item/radio/headset/alt
|
||||
mask = /obj/item/clothing/mask/lowinquis
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
back = /obj/item/storage/backpack/satchel
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
belt = /obj/item/melee/baton/loaded
|
||||
suit_store = /obj/item/gun/energy/plasma_pistol
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/handcuffs = 1,
|
||||
/obj/item/storage/box/survival = 1,
|
||||
/obj/item/shield/energy = 1,
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/survival = 1
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user