diff --git a/code/datums/gods/patrons/divine_pantheon.dm b/code/datums/gods/patrons/divine_pantheon.dm index e943c64f9a9..06262adb907 100644 --- a/code/datums/gods/patrons/divine_pantheon.dm +++ b/code/datums/gods/patrons/divine_pantheon.dm @@ -30,8 +30,26 @@ GLOBAL_LIST_INIT(patron_sound_themes, list( if(!cross.obj_broken) return TRUE - if(istype(follower.wear_wrists, associated_psycross) || istype(follower.wear_neck, associated_psycross) || istype(follower.get_active_held_item(), associated_psycross)) - return TRUE + var/list/check_items = list( + follower.wear_wrists, + follower.wear_neck, + follower.get_active_held_item() + ) + + var/list/valid_crosses + + if(islist(associated_psycross)) + valid_crosses = associated_psycross + else + valid_crosses = list(associated_psycross) + + for(var/obj/item/check_item in check_items) + if(!check_item) + continue + + for(var/cross_type in valid_crosses) + if(istype(check_item, cross_type)) + return TRUE to_chat(follower, span_danger("I need an amulet of my patron, or a nearby Pantheon Cross, for my prayers to be heard...")) @@ -53,7 +71,10 @@ GLOBAL_LIST_INIT(patron_sound_themes, list( "THE TEN PROTECT US!", "I SERVE THE DIVINE TEN!", ) - associated_psycross = /obj/item/clothing/neck/psycross/silver/divine + associated_psycross = list( + /obj/item/clothing/neck/psycross/silver/divine, + /obj/item/clothing/neck/psycross/wood/divine + ) /datum/patron/divine/astrata @@ -72,7 +93,11 @@ GLOBAL_LIST_INIT(patron_sound_themes, list( "I SERVE THE GLORY OF THE SUN!", ) storyteller = /datum/storyteller/astrata - associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/astrata + associated_psycross = list( + /obj/item/clothing/neck/psycross/silver/divine/astrata, + /obj/item/clothing/neck/psycross/wood/divine/astrata + ) + /datum/patron/divine/noc name = NOC @@ -90,7 +115,11 @@ GLOBAL_LIST_INIT(patron_sound_themes, list( "I SEEK THE MYSTERIES OF THE MOON!", ) storyteller = /datum/storyteller/noc - associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/noc + associated_psycross = list( + /obj/item/clothing/neck/psycross/silver/divine/noc, + /obj/item/clothing/neck/psycross/wood/divine/noc + ) + /datum/patron/divine/dendor name = DENDOR @@ -108,7 +137,11 @@ GLOBAL_LIST_INIT(patron_sound_themes, list( "I ANSWER THE CALL OF THE WILD!", ) storyteller = /datum/storyteller/dendor - associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/dendor + associated_psycross = list( + /obj/item/clothing/neck/psycross/silver/divine/dendor, + /obj/item/clothing/neck/psycross/wood/divine/dendor + ) + /datum/patron/divine/abyssor name = ABYSSOR @@ -126,7 +159,11 @@ GLOBAL_LIST_INIT(patron_sound_themes, list( "I AM DRAWN BY THE PULL OF THE TIDE!", ) storyteller = /datum/storyteller/abyssor - associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/abyssor + associated_psycross = list( + /obj/item/clothing/neck/psycross/silver/divine/abyssor, + /obj/item/clothing/neck/psycross/wood/divine/abyssor + ) + /datum/patron/divine/necra name = NECRA @@ -144,7 +181,11 @@ GLOBAL_LIST_INIT(patron_sound_themes, list( "I FEAR NOT DEATH, MY LADY AWAITS ME!", ) storyteller = /datum/storyteller/necra - associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/necra + associated_psycross = list( + /obj/item/clothing/neck/psycross/silver/divine/necra, + /obj/item/clothing/neck/psycross/wood/divine/necra + ) + /datum/patron/divine/ravox name = RAVOX @@ -162,7 +203,11 @@ GLOBAL_LIST_INIT(patron_sound_themes, list( "THE DRUMS OF WAR BEAT IN MY CHEST!", ) storyteller = /datum/storyteller/ravox - associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/ravox + associated_psycross = list( + /obj/item/clothing/neck/psycross/silver/divine/ravox, + /obj/item/clothing/neck/psycross/wood/divine/ravox + ) + /datum/patron/divine/xylix name = XYLIX @@ -187,7 +232,11 @@ GLOBAL_LIST_INIT(patron_sound_themes, list( "EORA BRINGS US TOGETHER!", ) storyteller = /datum/storyteller/xylix - associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/xylix + associated_psycross = list( + /obj/item/clothing/neck/psycross/silver/divine/xylix, + /obj/item/clothing/neck/psycross/wood/divine/xylix + ) + /datum/patron/divine/pestra name = PESTRA @@ -205,7 +254,11 @@ GLOBAL_LIST_INIT(patron_sound_themes, list( "MY AFFLICTION IS MY TESTAMENT!", ) storyteller = /datum/storyteller/pestra - associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/pestra + associated_psycross = list( + /obj/item/clothing/neck/psycross/silver/divine/pestra, + /obj/item/clothing/neck/psycross/wood/divine/pestra + ) + /datum/patron/divine/pestra/preference_accessible(datum/preferences/prefs) . = ..() @@ -231,7 +284,11 @@ GLOBAL_LIST_INIT(patron_sound_themes, list( "I AM AN INSTRUMENT OF CREATION!", ) storyteller = /datum/storyteller/malum - associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/malum + associated_psycross = list( + /obj/item/clothing/neck/psycross/silver/divine/malum, + /obj/item/clothing/neck/psycross/wood/divine/malum + ) + /datum/patron/divine/eora name = EORA @@ -249,4 +306,7 @@ GLOBAL_LIST_INIT(patron_sound_themes, list( "I LOVE YOU, EVEN AS YOU TRESPASS AGAINST ME!", ) storyteller = /datum/storyteller/eora - associated_psycross = /obj/item/clothing/neck/psycross/silver/divine/eora + associated_psycross = list( + /obj/item/clothing/neck/psycross/silver/divine/eora, + /obj/item/clothing/neck/psycross/wood/divine/eora + ) diff --git a/code/modules/clothing/neck/psycross.dm b/code/modules/clothing/neck/psycross.dm index c84f65bb104..a6a14938d50 100644 --- a/code/modules/clothing/neck/psycross.dm +++ b/code/modules/clothing/neck/psycross.dm @@ -5,8 +5,100 @@ icon_state = "psycross_wood" //dropshrink = 0.75 slot_flags = ITEM_SLOT_NECK|ITEM_SLOT_HIP|ITEM_SLOT_WRISTS - sellprice = 10 + sellprice = 5 experimental_onhip = TRUE + misc_flags = CRAFTING_TEST_EXCLUDE + +/obj/item/clothing/neck/psycross/wood + name = "unfinished amulet" + desc = "Free your God's emblem from this chunk of lumber." + icon_state = "unfinished_wood" + +/obj/item/clothing/neck/psycross/wood/attack_self(mob/user) + if(!user) return + + var/list/options = list( + "Undivided" = /obj/item/clothing/neck/psycross/wood/divine, + "Astrata" = /obj/item/clothing/neck/psycross/wood/divine/astrata, + "Noc" = /obj/item/clothing/neck/psycross/wood/divine/noc, + "Dendor" = /obj/item/clothing/neck/psycross/wood/divine/dendor, + "Abyssor" = /obj/item/clothing/neck/psycross/wood/divine/abyssor, + "Necra" = /obj/item/clothing/neck/psycross/wood/divine/necra, + "Ravox" = /obj/item/clothing/neck/psycross/wood/divine/ravox, + "Xylix" = /obj/item/clothing/neck/psycross/wood/divine/xylix, + "Eora" = /obj/item/clothing/neck/psycross/wood/divine/eora, + "Pestra" = /obj/item/clothing/neck/psycross/wood/divine/pestra, + "Malum" = /obj/item/clothing/neck/psycross/wood/divine/malum, + "Psydon" = /obj/item/clothing/neck/psycross + ) + + var/choice = input(user, "Choose what to carve:", "Amulet Crafting") as null|anything in options + if(!choice) return + + var/typepath = options[choice] + var/obj/item/new_item = new typepath(user.loc) + + if(!user.put_in_hands(new_item)) + new_item.loc = get_turf(user) + + qdel(src) + +/obj/item/clothing/neck/psycross/wood/divine + name = "wooden amulet of the Ten" + desc = "The Ten eternal, strength in unity. Stalwart for centuries against the darkness." + icon_state = "undivided_wood" + +/obj/item/clothing/neck/psycross/wood/divine/astrata + name = "wooden amulet of Astrata" + desc = "Blessed be everything the light of the sun touches, for it is protected by Her grace." + icon_state = "astrata_wood" + +/obj/item/clothing/neck/psycross/wood/divine/noc + name = "wooden amulet of Noc" + desc = "Diligence, study, pursuit of truth and wisdom. Let nothing deter you from it." + icon_state = "noc_wood" + +/obj/item/clothing/neck/psycross/wood/divine/dendor + name = "wooden amulet of Dendor" + desc = "Nature is a body of which we are but its entrails." + icon_state = "dendor_wood" + +/obj/item/clothing/neck/psycross/wood/divine/abyssor + name = "wooden amulet of Abyssor" + desc = "Oceanshaper and guardian of the seas, make them remember his name." + icon_state = "abyssor_wood" + +/obj/item/clothing/neck/psycross/wood/divine/necra + name = "wooden amulet of Necra" + desc = "Where, grave, thy victory? I triumph still while the Veiled Lady abides by me." + icon_state = "necra_wood" + +/obj/item/clothing/neck/psycross/wood/divine/ravox + name = "wooden amulet of Ravox" + desc = "Struggle. Challenge. And rise to struggle again. That is the sword of he who yet lives to fight again." + icon_state = "ravox_wood" + +/obj/item/clothing/neck/psycross/wood/divine/xylix + name = "wooden amulet of Xylix" + desc = "Be not fooled, and be not afraid to." + icon_state = "xylix_wood" + +/obj/item/clothing/neck/psycross/wood/divine/eora + name = "wooden amulet of Eora" + desc = "And I love thee because thou art love." + icon_state = "eora_wood" + +/obj/item/clothing/neck/psycross/wood/divine/pestra + name = "wooden amulet of Pestra" + desc = "When pure, alcohol is best used as a cleanser of wounds and a cleanser of the palate." + icon_state = "pestra_wood" + + +/obj/item/clothing/neck/psycross/wood/divine/malum + name = "wooden amulet of Malum" + desc = "Blessed be our works, made in His name." + icon_state = "malum_wood" + // Hunt /obj/item/clothing/neck/psycross/great_hunt diff --git a/code/modules/crafting/quality_of_crafting/crafting.dm b/code/modules/crafting/quality_of_crafting/crafting.dm index 6c5e664c0ed..9aca59688a3 100644 --- a/code/modules/crafting/quality_of_crafting/crafting.dm +++ b/code/modules/crafting/quality_of_crafting/crafting.dm @@ -521,18 +521,19 @@ starting_atom = /obj/item/natural/fibers output = /obj/item/broom -/datum/repeatable_crafting_recipe/crafting/wpsycross - name = "wooden psycross" +/datum/repeatable_crafting_recipe/crafting/unfinishedamulet + name = "unfinished amulet" requirements = list( - /obj/item/grown/log/tree/small= 1, + /obj/item/grown/log/tree/stick= 3, + /obj/item/natural/fibers = 2, ) tool_usage = list( /obj/item/weapon/knife = list(span_notice("starts to whittle"), span_notice("start to whittle"), 'sound/items/wood_sharpen.ogg'), ) - attacked_atom = /obj/item/grown/log/tree/small + attacked_atom = /obj/item/grown/log/tree/stick starting_atom = /obj/item/weapon/knife allow_inverse_start = FALSE - output = /obj/item/clothing/neck/psycross + output = /obj/item/clothing/neck/psycross/wood craft_time = 5 SECONDS /datum/repeatable_crafting_recipe/crafting/bone_amulet diff --git a/icons/roguetown/clothing/neck.dmi b/icons/roguetown/clothing/neck.dmi index 26ee6283217..9aa8792c6d3 100644 Binary files a/icons/roguetown/clothing/neck.dmi and b/icons/roguetown/clothing/neck.dmi differ diff --git a/icons/roguetown/clothing/onmob/neck.dmi b/icons/roguetown/clothing/onmob/neck.dmi index 71906a7b1bf..2780fbdbffc 100644 Binary files a/icons/roguetown/clothing/onmob/neck.dmi and b/icons/roguetown/clothing/onmob/neck.dmi differ