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

Some tail features #56

Merged
merged 5 commits into from
Sep 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 2 additions & 0 deletions code/__DEFINES/~doppler_defines/declarations.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@
#define TRAIT_TWITCH_ADAPTED "twitch_adapted"
/// Given to the detective, if they have this, they can see syndicate special descriptions.
#define TRAIT_DETECTIVE "detective_ability"
/// Trait for the excitable quirk, woof!
#define TRAIT_EXCITABLE "wagwag"
1 change: 1 addition & 0 deletions code/_globalvars/traits/_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -693,6 +693,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_GLASSBLOWING" = TRAIT_GLASSBLOWING,
"TRAIT_XENOARCH_QUALIFIED" = TRAIT_XENOARCH_QUALIFIED,
"TRAIT_DETECTIVE" = TRAIT_DETECTIVE,
"TRAIT_EXCITABLE" = TRAIT_EXCITABLE,
"TRAIT_TWITCH_ADAPTED" = TRAIT_TWITCH_ADAPTED,
),
// DOPPLER EDIT ADDITION END
Expand Down
1 change: 1 addition & 0 deletions code/_globalvars/traits/admin_tooling.dm
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_GLASSBLOWING" = TRAIT_GLASSBLOWING,
"TRAIT_XENOARCH_QUALIFIED" = TRAIT_XENOARCH_QUALIFIED,
"TRAIT_DETECTIVE" = TRAIT_DETECTIVE,
"TRAIT_EXCITABLE" = TRAIT_EXCITABLE,
"TRAIT_TWITCH_ADAPTED" = TRAIT_TWITCH_ADAPTED,
),
// DOPPLER EDIT ADDITION END
Expand Down
1 change: 1 addition & 0 deletions code/modules/asset_cache/assets/inventory.dm
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"inventory-suit_storage.png" = 'icons/ui/inventory/suit_storage.png',
"inventory-id.png" = 'icons/ui/inventory/id.png',
"inventory-belt.png" = 'icons/ui/inventory/belt.png',
"inventory-tail.png" = 'icons/ui/inventory/tail.png', // DOPPLER ADDITION - tail item slot
"inventory-back.png" = 'icons/ui/inventory/back.png',
"inventory-pocket.png" = 'icons/ui/inventory/pocket.png',
"inventory-collar.png" = 'icons/ui/inventory/collar.png',
Expand Down
6 changes: 6 additions & 0 deletions code/modules/mob/living/carbon/carbon_defense.dm
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,12 @@

if(HAS_TRAIT(src, TRAIT_BADTOUCH))
to_chat(helper, span_warning("[src] looks visibly upset as you pat [p_them()] on the head."))
//DOPPLER EDIT ADDITION BEGIN - Excitable quirk! 🐶
if(HAS_TRAIT(src, TRAIT_EXCITABLE))
var/obj/item/organ/external/tail/src_tail = get_organ_slot(ORGAN_SLOT_EXTERNAL_TAIL)
if(src_tail && !(src_tail.wag_flags & WAG_WAGGING))
emote("wag")
//DOPPLER EDIT ADDITION END

else if ((helper.zone_selected == BODY_ZONE_PRECISE_GROIN) && !isnull(src.get_organ_by_type(/obj/item/organ/external/tail)))
helper.visible_message(span_notice("[helper] pulls on [src]'s tail!"), \
Expand Down
Binary file added icons/ui/inventory/tail.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@
name = "Straight"
icon_state = "straighttail"

/datum/sprite_accessory/tails/dog/shortpup
name = "Short"
icon_state = "shortpup"

/datum/sprite_accessory/tails/fox
icon = 'modular_doppler/modular_customization/accessories/icons/non_species_specific/canine/canine_tail.dmi'

Expand Down
Binary file not shown.
62 changes: 48 additions & 14 deletions modular_doppler/modular_customization/organs/external/tail.dm
Original file line number Diff line number Diff line change
@@ -1,8 +1,56 @@
/// Tail storage datum
/datum/storage/tail
insert_preposition = "on"
silent = FALSE
max_slots = 1
max_specific_storage = WEIGHT_CLASS_SMALL
max_total_storage = 50
do_rustle = FALSE
screen_start_x = 12
screen_pixel_x = 22

/datum/storage/tail/New(
atom/parent,
max_slots,
max_specific_storage,
max_total_storage,
)
. = ..()
set_holdable(list(
/obj/item/,
))

/// Monkey tail
// now waggable!
/obj/item/organ/external/tail/monkey
name = "monkey tail"
wag_flags = WAG_ABLE

/obj/item/organ/external/tail/monkey/Initialize(mapload)
. = ..()
create_storage(storage_type = /datum/storage/tail)
AddComponent(/datum/component/accessable_storage/organ)

/// Mouse tail
// Monkey and mouse tail get a (secret) additional inventory slot
/obj/item/organ/external/tail/mouse
name = "mouse tail"
preference = "feature_mouse_tail"
dna_block = null
wag_flags = WAG_ABLE
bodypart_overlay = /datum/bodypart_overlay/mutant/tail/mouse

/obj/item/organ/external/tail/mouse/Initialize(mapload)
. = ..()
create_storage(storage_type = /datum/storage/tail)
AddComponent(/datum/component/accessable_storage/organ)

/datum/bodypart_overlay/mutant/tail/mouse
feature_key = "tail_other"

/datum/bodypart_overlay/mutant/tail/mouse/get_global_feature_list()
return SSaccessories.tails_list_mouse

/// Dog tail
// Buffs people if they're closeby while you're wagging it!
/obj/item/organ/external/tail/dog
Expand Down Expand Up @@ -77,20 +125,6 @@
/datum/bodypart_overlay/mutant/tail/bunny/get_global_feature_list()
return SSaccessories.tails_list_bunny

/// Mouse tail
//
/obj/item/organ/external/tail/mouse
preference = "feature_mouse_tail"
dna_block = null
wag_flags = WAG_ABLE
bodypart_overlay = /datum/bodypart_overlay/mutant/tail/mouse

/datum/bodypart_overlay/mutant/tail/mouse
feature_key = "tail_other"

/datum/bodypart_overlay/mutant/tail/mouse/get_global_feature_list()
return SSaccessories.tails_list_mouse

/// Bird tail
//
/obj/item/organ/external/tail/bird
Expand Down
9 changes: 9 additions & 0 deletions modular_doppler/modular_quirks/excitable/quirk.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/datum/quirk/excitable
name = "Excitable!"
desc = "Head patting makes your tail wag! You're very excitable! WAG WAG."
gain_text = span_notice("You crave for some headpats!")
lose_text = span_notice("You no longer care for headpats all that much...")
medical_record_text = "Patient seems to enjoy getting headpats."
value = 0
mob_trait = TRAIT_EXCITABLE
icon = FA_ICON_LAUGH_BEAM
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/obj/item/storage/box/spaceman_ration
name = "unlabeled ration container"
desc = "You get the feeling you sholdn't have been sent this one?"
icon = 'modular_doppler/paycheck_rations/icons/food_containers.dmi'
icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/food_containers.dmi'
icon_state = "plants"
illustration = null
/// How many storage slots this has, yes I'm being lazy
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
/obj/item/reagent_containers/condiment/flour/small_ration
name = "small flour sack"
desc = "A maritime ration-sized portion of flour, containing just enough to make a single good loaf of bread to fuel the day."
icon = 'modular_doppler/paycheck_rations/icons/food_containers.dmi'
icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/food_containers.dmi'
list_reagents = list(/datum/reagent/consumable/flour = 15)

/obj/item/reagent_containers/condiment/rice/small_ration
name = "small rice sack"
desc = "A maritime ration-sized portion of rice, containing just enough to make the universe's saddest rice dish."
icon = 'modular_doppler/paycheck_rations/icons/food_containers.dmi'
icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/food_containers.dmi'
list_reagents = list(/datum/reagent/consumable/rice = 10)

/obj/item/reagent_containers/condiment/sugar/small_ration
name = "small sugar sack"
desc = "A maritime ration-sized portion of sugar, containing just enough to make the day just a tiny bit sweeter."
icon = 'modular_doppler/paycheck_rations/icons/food_containers.dmi'
icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/food_containers.dmi'
list_reagents = list(/datum/reagent/consumable/sugar = 10)

/obj/item/reagent_containers/condiment/small_ration_korta_flour
name = "small korta flour sack"
desc = "A maritime ration-sized portion of korta flour, containing just enough to make a single good loaf of bread to fuel the day."
icon = 'modular_doppler/paycheck_rations/icons/food_containers.dmi'
icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/food_containers.dmi'
icon_state = "flour_korta"
inhand_icon_state = "carton"
lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi'
Expand All @@ -30,13 +30,13 @@
/obj/item/reagent_containers/condiment/soymilk/small_ration
name = "small soy milk"
desc = "It's soy milk. White and nutritious goodness! This one is significantly smaller than normal cartons; just enough to make some rootdough with."
icon = 'modular_doppler/paycheck_rations/icons/food_containers.dmi'
icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/food_containers.dmi'
list_reagents = list(/datum/reagent/consumable/soymilk = 15)

/obj/item/reagent_containers/condiment/milk/small_ration
name = "small milk"
desc = "It's milk. White and nutritious goodness! This one is significantly smaller than normal cartons; just enough to make some cheese with."
icon = 'modular_doppler/paycheck_rations/icons/food_containers.dmi'
icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/food_containers.dmi'
list_reagents = list(/datum/reagent/consumable/milk = 15)

/obj/item/reagent_containers/cup/glass/bottle/small/tiny
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/obj/item/storage/ration_ticket_book
name = "ration ticket book"
desc = "A small booklet able to hold all your ration tickets. More will be available here as your paychecks come in."
icon = 'modular_doppler/paycheck_rations/icons/tickets.dmi'
icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/tickets.dmi'
icon_state = "ticket_book"
w_class = WEIGHT_CLASS_SMALL

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/obj/item/paper/paperslip/ration_ticket
name = "ration ticket - standard"
desc = "A little slip of paper that'll slot right into any cargo console and put your alotted food ration on the next shuttle to the station."
icon = 'modular_doppler/paycheck_rations/icons/tickets.dmi'
icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/tickets.dmi'
icon_state = "ticket_food"
default_raw_text = "Redeem this ticket in the nearest supply console to receive benefits."
color = COLOR_OFF_WHITE
Expand All @@ -24,9 +24,9 @@

// List of meat options we get
var/list/radial_meat_options = list(
"Standard Meats" = image(icon = 'modular_doppler/paycheck_rations/icons/food_containers.dmi', icon_state = "meats"),
"Seafood Meats" = image(icon = 'modular_doppler/paycheck_rations/icons/food_containers.dmi', icon_state = "meats_fish"),
"Tizirian Meats" = image(icon = 'modular_doppler/paycheck_rations/icons/food_containers.dmi', icon_state = "meats_lizard"),
"Standard Meats" = image(icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/food_containers.dmi', icon_state = "meats"),
"Seafood Meats" = image(icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/food_containers.dmi', icon_state = "meats_fish"),
"Tizirian Meats" = image(icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/food_containers.dmi', icon_state = "meats_lizard"),
)

var/meats_choice = show_radial_menu(user, object_we_attack, radial_meat_options, require_near = TRUE)
Expand All @@ -47,10 +47,10 @@

// List of produce options we get
var/list/radial_produce_options = list(
"Standard Produce" = image(icon = 'modular_doppler/paycheck_rations/icons/food_containers.dmi', icon_state = "plants"),
"Alternative Produce" = image(icon = 'modular_doppler/paycheck_rations/icons/food_containers.dmi', icon_state = "plants_alt"),
"Mothic Produce" = image(icon = 'modular_doppler/paycheck_rations/icons/food_containers.dmi', icon_state = "plants_moth"),
"Tizirian Produce" = image(icon = 'modular_doppler/paycheck_rations/icons/food_containers.dmi', icon_state = "plants_lizard"),
"Standard Produce" = image(icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/food_containers.dmi', icon_state = "plants"),
"Alternative Produce" = image(icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/food_containers.dmi', icon_state = "plants_alt"),
"Mothic Produce" = image(icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/food_containers.dmi', icon_state = "plants_moth"),
"Tizirian Produce" = image(icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/food_containers.dmi', icon_state = "plants_lizard"),
)

var/produce_choice = show_radial_menu(user, object_we_attack, radial_produce_options, require_near = TRUE)
Expand All @@ -77,8 +77,8 @@

// List of flour options we get
var/list/radial_flour_options = list(
"Standard Flour" = image(icon = 'modular_doppler/paycheck_rations/icons/food_containers.dmi', icon_state = "flour"),
"Korta Flour" = image(icon = 'modular_doppler/paycheck_rations/icons/food_containers.dmi', icon_state = "flour_korta"),
"Standard Flour" = image(icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/food_containers.dmi', icon_state = "flour"),
"Korta Flour" = image(icon = 'modular_doppler/modular_quirks/paycheck_rations/icons/food_containers.dmi', icon_state = "flour_korta"),
)

var/flour_choice = show_radial_menu(user, object_we_attack, radial_flour_options, require_near = TRUE)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,7 @@
var/list/features = ..()
features["tail_monkey"] = /datum/sprite_accessory/tails/monkey/default::name
return features

/mob/living/carbon/human/species/monkey/punpun/Initialize(mapload)
. = ..()
add_quirk(/datum/quirk/excitable)
Binary file modified modular_doppler/overwrites/huds/hud.dmi
Binary file not shown.
11 changes: 6 additions & 5 deletions tgstation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -6757,6 +6757,12 @@
#include "modular_doppler\modular_medical\wounds\muscle.dm"
#include "modular_doppler\modular_medical\wounds\wound_effects.dm"
#include "modular_doppler\modular_mob_spawn\code\mob_spawn.dm"
#include "modular_doppler\modular_quirks\excitable\quirk.dm"
#include "modular_doppler\modular_quirks\paycheck_rations\code\quirk.dm"
#include "modular_doppler\modular_quirks\paycheck_rations\code\rationpacks.dm"
#include "modular_doppler\modular_quirks\paycheck_rations\code\reagents.dm"
#include "modular_doppler\modular_quirks\paycheck_rations\code\ticket_book.dm"
#include "modular_doppler\modular_quirks\paycheck_rations\code\tickets.dm"
#include "modular_doppler\modular_sounds\code\sounds.dm"
#include "modular_doppler\modular_species\code\bloodsplatter.dm"
#include "modular_doppler\modular_species\overwrites\code\species.dm"
Expand Down Expand Up @@ -6786,11 +6792,6 @@
#include "modular_doppler\objects_and_structures\code\sauna_oven.dm"
#include "modular_doppler\objects_and_structures\code\towel_bins.dm"
#include "modular_doppler\objects_and_structures\code\watercloset.dm"
#include "modular_doppler\paycheck_rations\code\quirk.dm"
#include "modular_doppler\paycheck_rations\code\rationpacks.dm"
#include "modular_doppler\paycheck_rations\code\reagents.dm"
#include "modular_doppler\paycheck_rations\code\ticket_book.dm"
#include "modular_doppler\paycheck_rations\code\tickets.dm"
#include "modular_doppler\pixel_shift\living.dm"
#include "modular_doppler\pixel_shift\living_movement.dm"
#include "modular_doppler\pixel_shift\code\pixel_shift_component.dm"
Expand Down
2 changes: 1 addition & 1 deletion tgui/packages/tgui/interfaces/StripMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ const SLOTS: Record<
tail: {
displayName: 'tail',
gridSpot: getGridSpotKey([3, 3]),
image: 'inventory-belt.png',
image: 'inventory-tail.png',
},
/* Doppler station addition end */
};
Expand Down
Loading