Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hearthkin Batch 1 (Hearthkin, Cryo, Stone and others) #28

Merged
merged 27 commits into from
Sep 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
0160217
first commit - 224 changes - my computer dies and I die
Kaostico Aug 31, 2024
2ce70a4
removing unnecesary stuff
Kaostico Sep 1, 2024
6c49358
tribal arrows now visible
Kaostico Sep 2, 2024
646a013
fixed some config stuff
Kaostico Sep 2, 2024
2e77613
modularize antagonist recipes
Kaostico Sep 2, 2024
49ef461
Merge branch 'master' into hearthkin
Kaostico Sep 2, 2024
1a1d745
fixes after merging and adding hearthkin to species
Kaostico Sep 3, 2024
60792c4
moved hearthkin dna definitions to doppler_defines
Kaostico Sep 3, 2024
01ec337
First batch of clothes - aka my personal hell
Kaostico Sep 3, 2024
cd653e5
Check needed for hearthkin so loadout clothes and accesories are not …
Kaostico Sep 3, 2024
8e1c1f9
Merge branch 'master' into hearthkin
Kaostico Sep 3, 2024
9db4d2d
modular_crafting with crafting_extended and added recipes. moved the …
Kaostico Sep 3, 2024
38ec5b0
Reworked modular mob spawn so it actually restricts species on restri…
Kaostico Sep 3, 2024
f48223b
Commented out the clothes for the next batch
Kaostico Sep 3, 2024
64ce917
last touches to finish this behemoth (IMSOSORRYNAAKA)
Kaostico Sep 4, 2024
63618f3
In theory, this should fix the indentation error
Kaostico Sep 4, 2024
eb49ff4
forgot this on this readme
Kaostico Sep 4, 2024
6dc1039
Update bitfields.dm
Kaostico Sep 4, 2024
1c72b64
Merge branch 'hearthkin' of https://github.com/Kaostico/DopplerShift …
Kaostico Sep 4, 2024
b2a925f
rings for the reagent forging god
Kaostico Sep 4, 2024
033f9c1
this should be it, PROMISE: the sad story of a boy who would forgor
Kaostico Sep 4, 2024
3ea5261
in my defense, I didn't even know this existed!
Kaostico Sep 4, 2024
4304c54
Update language.dm
Kaostico Sep 5, 2024
a48a57a
Merge branch 'master' into hearthkin
Kaostico Sep 6, 2024
331d800
forgor this changes from the merge
Kaostico Sep 6, 2024
d4576a5
reverting admins.txt and reordering tgstation.dme because Linters my …
Kaostico Sep 6, 2024
64016bf
fixed readmes
Kaostico Sep 6, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions code/__DEFINES/icon_smoothing.dm
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,10 @@ DEFINE_BITFIELD(smoothing_junction, list(
#define SMOOTH_GROUP_BAMBOO_WALLS S_TURF(17) //![/turf/closed/wall/mineral/bamboo, /obj/structure/falsewall/bamboo]
#define SMOOTH_GROUP_PLASTINUM_WALLS S_TURF(18) //![turf/closed/indestructible/riveted/plastinum]

//DOPPLER EDIT ADDITION
#define SMOOTH_GROUP_STONE_WALLS S_OBJ(20) ///turf/closed/wall/mineral/stone, /obj/structure/falsewall/stone
//DOPPLER EDIT END

#define SMOOTH_GROUP_PAPERFRAME S_OBJ(21) ///obj/structure/window/paperframe, /obj/structure/mineral_door/paperframe

#define SMOOTH_GROUP_WINDOW_FULLTILE S_OBJ(22) ///turf/closed/indestructible/fakeglass, /obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/reinforced/plasma/fulltile
Expand Down
4 changes: 4 additions & 0 deletions code/__DEFINES/~doppler_defines/is_helpers.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
//Species
#define isprimitivedemihuman(A) (is_species(A, /datum/species/human/felinid/primitive))
//Customization bases
#define isfeline(A) (isfelinid(A) || HAS_TRAIT(A, TRAIT_FELINE))
1 change: 1 addition & 0 deletions code/__DEFINES/~doppler_defines/keybindings.dm
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
#define COMSIG_KB_LIVING_COMBAT_INDICATOR "keybinding_living_combat_indicator"
#define COMSIG_KB_MOB_PIXEL_SHIFT_DOWN "keybinding_mob_pixel_shift_down"
#define COMSIG_KB_MOB_PIXEL_SHIFT_UP "keybinding_mob_pixel_shift_up"
2 changes: 2 additions & 0 deletions code/__DEFINES/~doppler_defines/obj_flags_doppler.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/// Whether something is repairable by the anvil
#define ANVIL_REPAIR (1<<0)
4 changes: 4 additions & 0 deletions code/__DEFINES/~doppler_defines/reagent_forging_tools.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#define TOOL_BILLOW "billow"
#define TOOL_TONG "tong"
#define TOOL_HAMMER "hammer"
#define TOOL_BLOWROD "blowrod"
8 changes: 8 additions & 0 deletions code/__DEFINES/~doppler_defines/reskin_defines.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#define RESKIN_ICON "reskin_icon"
#define RESKIN_ICON_STATE "reskin_icon_state"
#define RESKIN_WORN_ICON "reskin_worn_icon"
#define RESKIN_WORN_ICON_STATE "reskin_worn_icon_state"
#define RESKIN_SUPPORTS_VARIATIONS_FLAGS "reskin_supports_variations_flags"
#define RESKIN_INHAND_L "reskin_inhand_l"
#define RESKIN_INHAND_R "reskin_inhand_r"
#define RESKIN_INHAND_STATE "reskin_inhand_state"
2 changes: 2 additions & 0 deletions code/__DEFINES/~doppler_defines/signals.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
///Fired in combat_indicator.dm, used for syncing CI between mech and pilot
#define COMSIG_MOB_CI_TOGGLED "mob_ci_toggled"
6 changes: 6 additions & 0 deletions code/__DEFINES/~doppler_defines/sound.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/**
* Sound effect defines, used in modular_sounds on proc get_sfx.
*/

#define SFX_BRICK_DROP "brick_drop"
#define SFX_BRICK_PICKUP "brick_pickup"
1 change: 1 addition & 0 deletions code/__DEFINES/~doppler_defines/span.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#define span_italics(str) ("<span class='italics'>" + str + "</span>")
2 changes: 2 additions & 0 deletions code/__DEFINES/~doppler_defines/species.dm
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
// Hearthkin, from the Ice Moon
#define SPECIES_FELINE_PRIMITIVE "primitive_felinid"
// Slugcats, from Talon III.
#define SPECIES_SLUGCAT "slugcat"
4 changes: 4 additions & 0 deletions code/__DEFINES/~doppler_defines/techweb_nodes.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#define TECHWEB_NODE_XENOARCH_ADVANCED "adv_xenoarch"
#define TECHWEB_NODE_XENOARCH_BASIC "basic_xenoarch"
#define TECHWEB_NODE_XENOARCH_MACHINES "xenoarch_machines"
#define TECHWEB_NODE_XENOARCH_STORAGE "xenoarch_storage"
11 changes: 11 additions & 0 deletions code/__DEFINES/~doppler_defines/traits.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/// trait that lets you do xenoarch magnification
#define TRAIT_XENOARCH_QUALIFIED "trait_xenoarch_qualified"

/// Traits granted by glassblowing
#define TRAIT_GLASSBLOWING "glassblowing"

/// Trait that is applied whenever someone or something is glassblowing
#define TRAIT_CURRENTLY_GLASSBLOWING "currently_glassblowing"

// felinid traits
#define TRAIT_FELINE "feline_aspect"
1 change: 1 addition & 0 deletions code/__HELPERS/global_lists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
// I tried to eliminate this proc but I couldn't untangle their init-order interdependencies -Dominion/Cyberboss
init_keybindings()
GLOB.emote_list = init_emote_list() // WHY DOES THIS NEED TO GO HERE? IT JUST INITS DATUMS
init_doppler_stack_recipes() //DOPPLER EDIT ADDITION - MODULAR CRAFTING
init_crafting_recipes()
init_crafting_recipes_atoms()

Expand Down
29 changes: 29 additions & 0 deletions code/__HELPERS/~doppler_helpers/global_lists.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/proc/init_doppler_stack_recipes()
var/list/additional_stack_recipes = list(
/obj/item/stack/sheet/leather = list(GLOB.doppler_leather_recipes, GLOB.doppler_leather_belt_recipes),
/obj/item/stack/sheet/iron = list(GLOB.doppler_metal_recipes),
/obj/item/stack/sheet/plasteel = list(GLOB.doppler_plasteel_recipes),
/obj/item/stack/sheet/mineral/wood = list(GLOB.doppler_wood_recipes),
/obj/item/stack/sheet/cloth = list(GLOB.doppler_cloth_recipes),
/obj/item/stack/ore/glass = list(GLOB.doppler_sand_recipes),
/obj/item/stack/rods = list(GLOB.doppler_rod_recipes),
/obj/item/stack/sheet/mineral/stone = list(GLOB.stone_recipes),
/obj/item/stack/sheet/mineral/clay = list(GLOB.clay_recipes),
)
for(var/stack in additional_stack_recipes)
for(var/material_list in additional_stack_recipes[stack])
for(var/stack_recipe in material_list)
if(istype(stack_recipe, /datum/stack_recipe_list))
var/datum/stack_recipe_list/stack_recipe_list = stack_recipe
for(var/nested_recipe in stack_recipe_list.recipes)
if(!nested_recipe)
continue
var/datum/crafting_recipe/stack/recipe = new/datum/crafting_recipe/stack(stack, nested_recipe)
if(recipe.name != "" && recipe.result)
GLOB.crafting_recipes += recipe
else
if(!stack_recipe)
continue
var/datum/crafting_recipe/stack/recipe = new/datum/crafting_recipe/stack(stack, stack_recipe)
if(recipe.name != "" && recipe.result)
GLOB.crafting_recipes += recipe
8 changes: 8 additions & 0 deletions code/_globalvars/traits/_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -658,6 +658,14 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_TURF_IGNORE_SLIPPERY" = TRAIT_TURF_IGNORE_SLIPPERY,
"TRAIT_TURF_IGNORE_SLOWDOWN" = TRAIT_TURF_IGNORE_SLOWDOWN,
),
// DOPPLER EDIT ADDITION START - DOPPLER TRAITS
/obj/item/clothing/suit/jacket/doppler = list(
"TRAIT_CURRENTLY_GLASSBLOWING" = TRAIT_CURRENTLY_GLASSBLOWING,
"TRAIT_FELINE" = TRAIT_FELINE,
"TRAIT_GLASSBLOWING" = TRAIT_GLASSBLOWING,
"TRAIT_XENOARCH_QUALIFIED" = TRAIT_XENOARCH_QUALIFIED,
),
// DOPPLER EDIT ADDITION END
))

/// value -> trait name, list of ALL traits that exist in the game, used for any type of accessing.
Expand Down
8 changes: 8 additions & 0 deletions code/_globalvars/traits/admin_tooling.dm
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,14 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
/obj/item/organ/internal/lungs = list(
"TRAIT_SPACEBREATHING" = TRAIT_SPACEBREATHING,
),
// DOPPLER EDIT ADDITION START - DOPPLER TRAITS
/obj/item/clothing/suit/jacket/doppler = list(
"TRAIT_CURRENTLY_GLASSBLOWING" = TRAIT_CURRENTLY_GLASSBLOWING,
"TRAIT_FELINE" = TRAIT_FELINE,
"TRAIT_GLASSBLOWING" = TRAIT_GLASSBLOWING,
"TRAIT_XENOARCH_QUALIFIED" = TRAIT_XENOARCH_QUALIFIED,
),
// DOPPLER EDIT ADDITION END
))

/// value -> trait name, generated as needed for adminning.
Expand Down
4 changes: 4 additions & 0 deletions code/_globalvars/~doppler_globalvars/bitfields.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
///reagent forging module
DEFINE_BITFIELD(obj_flags_doppler, list(
"ANVIL_REPAIR" = ANVIL_REPAIR,
))
2 changes: 2 additions & 0 deletions code/_globalvars/~doppler_globalvars/objective.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
///new addition to cryosleep module
GLOBAL_LIST_EMPTY(objectives)
8 changes: 8 additions & 0 deletions code/_globalvars/~doppler_globalvars/religion.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/// list of weakrefs to highpriest successor candidates. Every chaplain who joins after the initial chaplain is added to this list. The next high priest is chosen from them by seniority.
GLOBAL_LIST(holy_successors)
/// A weakref to the current high priest mob
GLOBAL_VAR(current_highpriest)
/// The previous sect's favor value
GLOBAL_VAR(prev_favor)
/// The previous sect's typepath
GLOBAL_VAR(prev_sect_type)
3 changes: 3 additions & 0 deletions code/controllers/subsystem/processing/quirks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ GLOBAL_LIST_INIT_TYPED(quirk_blacklist, /list/datum/quirk, list(
list(/datum/quirk/photophobia, /datum/quirk/nyctophobia),
list(/datum/quirk/item_quirk/settler, /datum/quirk/freerunning),
list(/datum/quirk/numb, /datum/quirk/selfaware),
//DOPPLER EDIT ADDITION BEGIN
list(/datum/quirk/feline_aspect)
//DOPPLER EDIT ADDITION END
))

GLOBAL_LIST_INIT(quirk_string_blacklist, generate_quirk_string_blacklist())
Expand Down
10 changes: 10 additions & 0 deletions code/game/atom/atom_tool_acts.dm
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,16 @@
act_result = is_left_clicking ? welder_act(user, tool) : welder_act_secondary(user, tool)
if(TOOL_ANALYZER)
act_result = is_left_clicking ? analyzer_act(user, tool) : analyzer_act_secondary(user, tool)
// DOPPLER EDIT ADDITION START - REAGENT FORGING AND GLASSBLOWING TOOLS
if(TOOL_BILLOW)
act_result = is_left_clicking ? billow_act(user, tool) : billow_act_secondary(user, tool)
if(TOOL_TONG)
act_result = is_left_clicking ? tong_act(user, tool) : tong_act_secondary(user, tool)
if(TOOL_HAMMER)
act_result = is_left_clicking ? hammer_act(user, tool) : hammer_act_secondary(user, tool)
if(TOOL_BLOWROD)
act_result = is_left_clicking ? blowrod_act(user, tool) : blowrod_act_secondary(user, tool)
// DOPPLER EDIT ADDITION END

if(!act_result)
return NONE
Expand Down
1 change: 1 addition & 0 deletions code/game/sound.dm
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@
/proc/get_sfx(soundin)
if(!istext(soundin))
return soundin
soundin = get_sfx_doppler(soundin) // DOPPLER EDIT ADDITION - MODULAR SOUNDS
switch(soundin)
if(SFX_SHATTER)
soundin = pick('sound/effects/glassbr1.ogg','sound/effects/glassbr2.ogg','sound/effects/glassbr3.ogg')
Expand Down
15 changes: 12 additions & 3 deletions code/modules/mob_spawn/mob_spawn.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@
var/datum/weakref/spawned_mob_ref
/// DOPPLER SHIFT ADDITION: allowing players to have their current character loaded
var/allow_prefs = TRUE
/// DOPPLER SHIFT ADDITION: allowing players to have their current loadout and clothes loaded
var/allow_loadout = TRUE

/obj/effect/mob_spawn/Initialize(mapload)
. = ..()
Expand Down Expand Up @@ -100,14 +102,18 @@
if(allow_prefs && spawned_human.client)
spawned_human.client?.prefs.safe_transfer_prefs_to(spawned_human)
SSquirks.AssignQuirks(spawned_human, spawned_human.client)
spawned_human.equip_outfit_and_loadout(outfit, spawned_human.client?.prefs)
if(allow_loadout)
spawned_human.equip_outfit_and_loadout(outfit, spawned_human.client?.prefs)
else
spawned_human.equipOutfit(outfit)
else
spawned_human.equipOutfit(outfit)
else if(allow_prefs && spawned_mob.client)
var/mob/living/carbon/human/spawned_human = spawned_mob
spawned_human.client?.prefs.safe_transfer_prefs_to(spawned_human)
SSquirks.AssignQuirks(spawned_human, spawned_human.client)
spawned_human.equip_outfit_and_loadout(new /datum/outfit(), spawned_human.client?.prefs)
if(allow_loadout)
spawned_human.equip_outfit_and_loadout(new /datum/outfit(), spawned_human.client?.prefs)
/// DOPPLER SHIFT ADDITION END

///these mob spawn subtypes do not trigger until attacked by a ghost.
Expand Down Expand Up @@ -178,7 +184,10 @@
prompt += " (Warning, You can no longer be revived!)"
/// DOPPLER SHIFT ADDITION BEGIN
if(allow_prefs)
prompt += "\nYou will be loaded in with your current character, [realname] - loadout & quirks included! Make sure they fit the role!"
prompt += "\nYou will be loaded in with your current character, [realname] -"
if(allow_loadout)
prompt += " loadout &"
prompt += " quirks included! Make sure they fit the role!"
/// DOPPLER SHIFT ADDITION END
var/ghost_role = tgui_alert(usr, prompt, buttons = list("Yes", "No"), timeout = 10 SECONDS)
if(ghost_role != "Yes" || !loc || QDELETED(user))
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion code/modules/unit_tests/turf_icons.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/// Makes sure turf icons actually exist. :)
/datum/unit_test/turf_icons
var/modular_mineral_turf_file //= 'icons/turf/mining.dmi' //MODULARITY SUPPORT - insert your snowflake MAP_SWITCH icon file here if you use that define.
var/modular_mineral_turf_file = 'modular_doppler/xenoarch/icons/mining.dmi' //MODULARITY SUPPORT - insert your snowflake MAP_SWITCH icon file here if you use that define.

/datum/unit_test/turf_icons/Run()
for(var/turf/turf_path as anything in (subtypesof(/turf) - typesof(/turf/closed/mineral)))
Expand Down
1 change: 1 addition & 0 deletions config/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

$include game_options.txt
$include dbconfig.txt
$include doppler/config_doppler.txt
$include comms.txt
$include logging.txt
$include resources.txt
Expand Down
8 changes: 8 additions & 0 deletions config/doppler/config_doppler.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
## Combat indicator, comment out to disable it
COMBAT_INDICATOR

## How long until someone can be put in cryo if they are SSD, default is 9000 (15 minutes)
CRYO_MIN_SSD_TIME 9000

## Primitive demihumans
ROUNDSTART_RACES primitive_felinid
68 changes: 68 additions & 0 deletions modular_doppler/advanced_reskin/code/advanced_reskin.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
/obj/item
/// Does this use the advanced reskinning setup?
var/uses_advanced_reskins = FALSE

/obj/item/reskin_obj(mob/M)
if(!uses_advanced_reskins)
return ..()
if(!LAZYLEN(unique_reskin))
return

/// Is the obj a glasses icon with swappable item states?
var/is_swappable = FALSE
// /// if the item are glasses, this variable stores the item.
// var/obj/item/clothing/glasses/reskinned_glasses

// if(istype(src, /obj/item/clothing/glasses)) // TODO - Remove this mess about glasses, it shouldn't be necessary anymore.
// reskinned_glasses = src
// if(reskinned_glasses.can_switch_eye)
// is_swappable = TRUE

var/list/items = list()


for(var/reskin_option in unique_reskin)
var/image/item_image = image(icon = unique_reskin[reskin_option][RESKIN_ICON] ? unique_reskin[reskin_option][RESKIN_ICON] : icon, icon_state = "[unique_reskin[reskin_option][RESKIN_ICON_STATE]]")
items += list("[reskin_option]" = item_image)
sort_list(items)

var/pick = show_radial_menu(M, src, items, custom_check = CALLBACK(src, PROC_REF(check_reskin_menu), M), radius = 38, require_near = TRUE)
if(!pick)
return
if(!unique_reskin[pick])
return
current_skin = pick

if(unique_reskin[pick][RESKIN_ICON])
icon = unique_reskin[pick][RESKIN_ICON]

if(unique_reskin[pick][RESKIN_ICON_STATE])
if(is_swappable)
base_icon_state = unique_reskin[pick][RESKIN_ICON_STATE]
icon_state = base_icon_state
else
icon_state = unique_reskin[pick][RESKIN_ICON_STATE]

if(unique_reskin[pick][RESKIN_WORN_ICON])
worn_icon = unique_reskin[pick][RESKIN_WORN_ICON]

if(unique_reskin[pick][RESKIN_WORN_ICON_STATE])
worn_icon_state = unique_reskin[pick][RESKIN_WORN_ICON_STATE]

if(unique_reskin[pick][RESKIN_INHAND_L])
lefthand_file = unique_reskin[pick][RESKIN_INHAND_L]
if(unique_reskin[pick][RESKIN_INHAND_R])
righthand_file = unique_reskin[pick][RESKIN_INHAND_R]
if(unique_reskin[pick][RESKIN_INHAND_STATE])
inhand_icon_state = unique_reskin[pick][RESKIN_INHAND_STATE]
if(unique_reskin[pick][RESKIN_SUPPORTS_VARIATIONS_FLAGS])
supports_variations_flags = unique_reskin[pick][RESKIN_SUPPORTS_VARIATIONS_FLAGS]
if(ishuman(M))
var/mob/living/carbon/human/wearer = M
wearer.regenerate_icons() // update that mf
to_chat(M, "[src] is now skinned as '[pick].'")
post_reskin(M)

/// Automatically called after a reskin, for any extra variable changes.
/obj/item/proc/post_reskin(mob/our_mob)
return
25 changes: 25 additions & 0 deletions modular_doppler/advanced_reskin/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
## Title: Advanced Reskin

MODULE ID: ADVANCED_RESKIN

### Description:

This module adds more customization to the reskin function, as well as serving as a place to add more to it.

### TG Proc Changes:

N/A

### Defines:

- `code\__DEFINES\~doppler_defines\reskin_defines.dm` module's defines

### Master file additions

N/A

### Included files that are not contained in this module:

N/A

### Credits:
27 changes: 27 additions & 0 deletions modular_doppler/cryosleep/code/admin.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/// Send player in not-quiet cryopod. If with_paper = TRUE, place a paper with notification under player.
/mob/proc/send_to_cryo(with_paper = FALSE)
//effect
playsound(loc, 'sound/magic/Repulse.ogg', 100, 1)
var/datum/effect_system/spark_spread/quantum/sparks = new
sparks.set_up(10, 1, loc)
sparks.attach(loc)
sparks.start()

//make a paper if need
if(with_paper)
var/obj/item/paper/cryo_paper = new /obj/item/paper(loc)
cryo_paper.name = "Notification - [name]"
cryo_paper.add_raw_text("Our sincerest apologies, [name][job ? ", [job]," : ""] had to be sent back in Cryogenic Storage for reasons that cannot be elaborated on at the moment.<br><br>Sincerely,<br><i>Nanotrasen Anti-Sudden Sleep Disorder Agency</i>")
cryo_paper.update_appearance()
//find cryopod
for(var/obj/machinery/cryopod/cryo in GLOB.valid_cryopods)
if(!cryo.occupant && cryo.state_open && !cryo.panel_open) //free, opened, and panel closed?
if(buckled)
buckled.unbuckle_mob(src, TRUE)
if(buckled_mobs)
for(var/mob/buckled_mob in buckled_mobs)
unbuckle_mob(buckled_mob)
cryo.close_machine(src) //put player
break


Loading
Loading