From f9330d2fd1d7d4048d70290e34c2ee1c5f326fbf Mon Sep 17 00:00:00 2001 From: bgobandit Date: Sat, 8 Jun 2019 15:58:13 -0400 Subject: [PATCH] Art produces moodlets, good or bad depending on quality. THE REMAKE (#44174) * Art produces moodlets, good or bad depending on quality. * makes more requested changes * makes requested changes/placates oranges * fuck this shit * this is my last will and testament, when I am dead and gone I request that my relatives make the changes that I will probably still be requested to make at that point --- .../mood_events/generic_negative_events.dm | 5 +++ .../mood_events/generic_positive_events.dm | 15 ++++++++ code/game/objects/items/weaponry.dm | 14 ++++++++ code/game/objects/structures/statues.dm | 34 ++++++++++++++++--- code/modules/photography/photos/frame.dm | 1 + 5 files changed, 65 insertions(+), 4 deletions(-) diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index daca0678052..750f09770f9 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -178,6 +178,11 @@ /datum/mood_event/sad_empath/add_effects(mob/sadtarget) description = "[sadtarget.name] seems upset...\n" +/datum/mood_event/artbad + description = "I've produced better art than that from my ass.\n" + mood_change = -2 + timeout = 1200 + //These are unused so far but I want to remember them to use them later /datum/mood_event/cloned_corpse description = "I recently saw my own corpse...\n" diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index f9e7097ace2..c76681beb9d 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -125,3 +125,18 @@ /datum/mood_event/clownshoes description = "The shoes are a clown's legacy, I never want to take them off!\n" mood_change = 5 + +/datum/mood_event/artok + description = "It's nice to see people are making art around here.\n" + mood_change = 2 + timeout = 2 MINUTES + +/datum/mood_event/artgood + description = "What a thought-provoking piece of art. I'll remember that for a while.\n" + mood_change = 3 + timeout = 3 MINUTES + +/datum/mood_event/artgreat + description = "That work of art was so great it made me believe in the goodness of humanity. Says a lot in a place like this.\n" + mood_change = 4 + timeout = 4 MINUTES \ No newline at end of file diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 40880543052..133762c57b6 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -474,6 +474,20 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 desc = "A bust of the famous Greek physician Hippocrates of Kos, often referred to as the father of western medicine." icon_state = "hippocratic" +/obj/item/statuebust/attack_self(mob/living/user) + add_fingerprint(user) + user.examinate(src) + +/obj/item/statuebust/examine(mob/living/user) + . = ..() + if(.) + return + if (!isliving(user)) + return + user.visible_message("[user] stops to admire [src].", \ + "You take in [src], admiring its fine craftsmanship.") + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "artgood", /datum/mood_event/artgood) + /obj/item/tailclub name = "tail club" desc = "For the beating to death of lizards with their own tails." diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 8160bbddf51..3e12d09725e 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -1,3 +1,8 @@ + +#define BAD_ART 12.5 +#define GOOD_ART 25 +#define GREAT_ART 50 + /obj/structure/statue name = "statue" desc = "Placeholder. Yell at Firecage if you SOMEHOW see this." @@ -8,12 +13,12 @@ max_integrity = 100 var/oreAmount = 5 var/material_drop_type = /obj/item/stack/sheet/metal + var/impressiveness = 15 CanAtmosPass = ATMOS_PASS_DENSITY /obj/structure/statue/attackby(obj/item/W, mob/living/user, params) add_fingerprint(user) - user.changeNext_move(CLICK_CD_MELEE) if(!(flags_1 & NODECONSTRUCT_1)) if(default_unfasten_wrench(user, W)) return @@ -34,10 +39,23 @@ . = ..() if(.) return - user.changeNext_move(CLICK_CD_MELEE) add_fingerprint(user) - user.visible_message("[user] rubs some dust off from the [name]'s surface.", \ - "You rub some dust off from the [name]'s surface.") + if(!do_after(user, 20, target = src)) + return + user.visible_message("[user] rubs some dust off [src].", \ + "You take in [src], rubbing some dust off its surface.") + if(!ishuman(user)) // only humans have the capacity to appreciate art + return + var/totalimpressiveness = (impressiveness *(obj_integrity/max_integrity)) + switch(totalimpressiveness) + if(GREAT_ART to 100) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "artgreat", /datum/mood_event/artgreat) + if (GOOD_ART to GREAT_ART) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "artgood", /datum/mood_event/artgood) + if (BAD_ART to GOOD_ART) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "artok", /datum/mood_event/artok) + if (0 to BAD_ART) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "artbad", /datum/mood_event/artbad) /obj/structure/statue/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) @@ -58,6 +76,8 @@ material_drop_type = /obj/item/stack/sheet/mineral/uranium var/last_event = 0 var/active = null + impressiveness = 25 // radiation makes an impression + /obj/structure/statue/uranium/nuke name = "statue of a nuclear fission explosive" @@ -100,6 +120,7 @@ /obj/structure/statue/plasma max_integrity = 200 material_drop_type = /obj/item/stack/sheet/mineral/plasma + impressiveness = 20 desc = "This statue is suitably made from plasma." /obj/structure/statue/plasma/scientist @@ -150,6 +171,7 @@ /obj/structure/statue/gold max_integrity = 300 material_drop_type = /obj/item/stack/sheet/mineral/gold + impressiveness = 25 desc = "This is a highly valuable statue made from gold." /obj/structure/statue/gold/hos @@ -177,6 +199,7 @@ /obj/structure/statue/silver max_integrity = 300 material_drop_type = /obj/item/stack/sheet/mineral/silver + impressiveness = 25 desc = "This is a valuable statue made from silver." /obj/structure/statue/silver/md @@ -204,6 +227,7 @@ /obj/structure/statue/diamond max_integrity = 1000 material_drop_type = /obj/item/stack/sheet/mineral/diamond + impressiveness = 50 desc = "This is a very expensive diamond statue." /obj/structure/statue/diamond/captain @@ -223,6 +247,7 @@ /obj/structure/statue/bananium max_integrity = 300 material_drop_type = /obj/item/stack/sheet/mineral/bananium + impressiveness = 50 desc = "A bananium statue with a small engraving:'HOOOOOOONK'." var/spam_flag = 0 @@ -258,6 +283,7 @@ /obj/structure/statue/sandstone max_integrity = 50 material_drop_type = /obj/item/stack/sheet/mineral/sandstone + impressiveness = 15 /obj/structure/statue/sandstone/assistant name = "statue of an assistant" diff --git a/code/modules/photography/photos/frame.dm b/code/modules/photography/photos/frame.dm index 7e42b45cc9e..8daff9fa148 100644 --- a/code/modules/photography/photos/frame.dm +++ b/code/modules/photography/photos/frame.dm @@ -109,6 +109,7 @@ /obj/structure/sign/picture_frame/examine(mob/user) if(in_range(src, user) && framed) framed.show(user) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "artok", /datum/mood_event/artok) else ..()