From 7df3ffb4db6cf9ceead2464ce943e8544fb5fedc Mon Sep 17 00:00:00 2001 From: bgobandit Date: Mon, 30 Jul 2018 19:15:59 -0400 Subject: [PATCH] Fixes various small issues with moodlets; adds one for exercise. (#39437) Adds a slight positive moodlet for working out, the same effect as reading a book In the process refactors weight machines so they are actually object oriented, this creates map edits to Delta and Pubby as well as one ruin Changes the message "Nothing special has happened to me" to something that is hopefully less immersion-demolishing. Moodlet text for eating disgusting food no longer appears in positive green text Other various grammar fixes --- .../LavaRuins/lavaland_biodome_beach.dmm | 4 +- .../map_files/Deltastation/DeltaStation2.dmm | 10 +- _maps/map_files/PubbyStation/PubbyStation.dmm | 8 +- code/datums/components/mood.dm | 2 +- .../mood_events/generic_negative_events.dm | 2 +- .../mood_events/generic_positive_events.dm | 5 + code/datums/mood_events/needs_events.dm | 4 +- code/modules/mining/lavaland/ruins/gym.dm | 107 ++++++++---------- 8 files changed, 66 insertions(+), 76 deletions(-) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm index 04c4fae9fb6..ecaff8ad075 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm @@ -196,7 +196,7 @@ /turf/open/floor/plasteel/asteroid, /area/ruin/powered/beach) "aO" = ( -/obj/structure/stacklifter, +/obj/structure/weightmachine/stacklifter, /turf/open/floor/plating/beach/sand, /area/ruin/powered/beach) "aP" = ( @@ -249,7 +249,7 @@ /turf/open/floor/plating/beach/sand, /area/ruin/powered/beach) "bb" = ( -/obj/structure/weightlifter, +/obj/structure/weightmachine/weightlifter, /turf/open/floor/plating/beach/sand, /area/ruin/powered/beach) "bc" = ( diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index cc320196ff1..8822c407de5 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -15348,7 +15348,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/structure/weightlifter, +/obj/structure/weightmachine/weightlifter, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ icon_state = "platingdmg3" @@ -59730,7 +59730,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/weightlifter, +/obj/structure/weightmachine/weightlifter, /turf/open/floor/plasteel/neutral, /area/crew_quarters/fitness/recreation) "czj" = ( @@ -59746,7 +59746,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/structure/stacklifter, +/obj/structure/weightmachine/stacklifter, /turf/open/floor/plasteel/neutral, /area/crew_quarters/fitness/recreation) "czl" = ( @@ -61917,7 +61917,7 @@ }, /area/crew_quarters/fitness/recreation) "cDK" = ( -/obj/structure/stacklifter, +/obj/structure/weightmachine/stacklifter, /turf/open/floor/plasteel/neutral, /area/crew_quarters/fitness/recreation) "cDL" = ( @@ -61928,7 +61928,7 @@ /turf/open/floor/plasteel/neutral/side, /area/crew_quarters/fitness/recreation) "cDN" = ( -/obj/structure/weightlifter, +/obj/structure/weightmachine/weightlifter, /turf/open/floor/plasteel/neutral, /area/crew_quarters/fitness/recreation) "cDO" = ( diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index ac4e19272dc..63213acdd6b 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -9108,7 +9108,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/obj/structure/stacklifter, +/obj/structure/weightmachine/stacklifter, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "ayw" = ( @@ -9611,7 +9611,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, -/obj/structure/weightlifter, +/obj/structure/weightmachine/weightlifter, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "azE" = ( @@ -44190,7 +44190,7 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/main) "cnT" = ( -/obj/structure/weightlifter, +/obj/structure/weightmachine/weightlifter, /turf/open/floor/plasteel/showroomfloor, /area/security/main) "cnV" = ( @@ -50229,7 +50229,7 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "lGp" = ( -/obj/structure/weightlifter, +/obj/structure/weightmachine/weightlifter, /turf/open/floor/plasteel/dark, /area/security/prison) "lGv" = ( diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 4c814697b43..42b3083c68b 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -77,7 +77,7 @@ var/datum/mood_event/event = mood_events[i] msg += event.description else - msg += "Nothing special has happened to me lately!\n" + msg += "I don't have much of a reaction to anything right now.\n" to_chat(user || parent, msg) /datum/component/mood/proc/update_mood() //Called whenever a mood event is added or removed diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index 3ee3e9b0481..04be096439d 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -1,5 +1,5 @@ /datum/mood_event/handcuffed - description = "I guess my antics have finally caught up with me..\n" + description = "I guess my antics have finally caught up with me.\n" mood_change = -1 /datum/mood_event/broken_vow //Used for when mimes break their vow of silence diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index 54eb74f10f7..61bb29c5403 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -18,6 +18,11 @@ mood_change = 3 timeout = 3000 +/datum/mood_event/exercise + description = "Working out releases those endorphins!\n" + mood_change = 3 + timeout = 3000 + /datum/mood_event/pet_corgi description = "Corgis are adorable! I can't stop petting them!\n" mood_change = 3 diff --git a/code/datums/mood_events/needs_events.dm b/code/datums/mood_events/needs_events.dm index 6d0ac427695..82b69f58b95 100644 --- a/code/datums/mood_events/needs_events.dm +++ b/code/datums/mood_events/needs_events.dm @@ -39,12 +39,12 @@ timeout = 2400 /datum/mood_event/gross_food - description = "I really didn't like that food.\n" + description = "I really didn't like that food.\n" mood_change = -2 timeout = 2400 /datum/mood_event/disgusting_food - description = "That food was disgusting!\n" + description = "That food was disgusting!\n" mood_change = -4 timeout = 2400 diff --git a/code/modules/mining/lavaland/ruins/gym.dm b/code/modules/mining/lavaland/ruins/gym.dm index 634c2df859f..1c535fd9ab1 100644 --- a/code/modules/mining/lavaland/ruins/gym.dm +++ b/code/modules/mining/lavaland/ruins/gym.dm @@ -16,17 +16,20 @@ playsound(loc, pick(hit_sounds), 25, 1, -1) if(isliving(user)) var/mob/living/L = user + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "exercise", /datum/mood_event/exercise) L.apply_status_effect(STATUS_EFFECT_EXERCISED) -/obj/structure/stacklifter +/obj/structure/weightmachine name = "Weight Machine" desc = "Just looking at this thing makes you feel tired." - icon = 'goon/icons/obj/fitness.dmi' - icon_state = "fitnesslifter" density = TRUE anchored = TRUE + var/icon_state_inuse -/obj/structure/stacklifter/attack_hand(mob/living/user) +/obj/structure/weightmachine/proc/AnimateMachine(mob/living/user) + return + +/obj/structure/weightmachine/attack_hand(mob/living/user) . = ..() if(.) return @@ -35,76 +38,58 @@ return else obj_flags |= IN_USE - icon_state = "fitnesslifter2" + icon_state = icon_state_inuse user.setDir(SOUTH) user.Stun(80) user.forceMove(src.loc) var/bragmessage = pick("pushing it to the limit","going into overdrive","burning with determination","rising up to the challenge", "getting strong now","getting ripped") user.visible_message("[user] is [bragmessage]!") - var/lifts = 0 - while (lifts++ < 6) - if (user.loc != src.loc) - break - sleep(3) - animate(user, pixel_y = -2, time = 3) - sleep(3) - animate(user, pixel_y = -4, time = 3) - sleep(3) - playsound(user, 'goon/sound/effects/spring.ogg', 60, 1) + AnimateMachine(user) playsound(user, 'sound/machines/click.ogg', 60, 1) obj_flags &= ~IN_USE user.pixel_y = 0 var/finishmessage = pick("You feel stronger!","You feel like you can take on the world!","You feel robust!","You feel indestructible!") - icon_state = "fitnesslifter" + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "exercise", /datum/mood_event/exercise) + icon_state = initial(icon_state) to_chat(user, finishmessage) user.apply_status_effect(STATUS_EFFECT_EXERCISED) -/obj/structure/weightlifter - name = "Weight Machine" - desc = "Just looking at this thing makes you feel tired." +/obj/structure/weightmachine/stacklifter + icon = 'goon/icons/obj/fitness.dmi' + icon_state = "fitnesslifter" + icon_state_inuse = "fitnesslifter2" + +/obj/structure/weightmachine/stacklifter/AnimateMachine(mob/living/user) + var/lifts = 0 + while (lifts++ < 6) + if (user.loc != src.loc) + break + sleep(3) + animate(user, pixel_y = -2, time = 3) + sleep(3) + animate(user, pixel_y = -4, time = 3) + sleep(3) + playsound(user, 'goon/sound/effects/spring.ogg', 60, 1) + +/obj/structure/weightmachine/weightlifter icon = 'goon/icons/obj/fitness.dmi' icon_state = "fitnessweight" - density = TRUE - anchored = TRUE + icon_state_inuse = "fitnessweight-c" -/obj/structure/weightlifter/attack_hand(mob/living/user) - . = ..() - if(.) - return - if(obj_flags & IN_USE) - to_chat(user, "It's already in use - wait a bit.") - return - else - obj_flags |= IN_USE - icon_state = "fitnessweight-c" - user.setDir(SOUTH) - user.Stun(80) - user.forceMove(src.loc) - var/mutable_appearance/swole_overlay = mutable_appearance(icon, "fitnessweight-w", WALL_OBJ_LAYER) - add_overlay(swole_overlay) - var/bragmessage = pick("pushing it to the limit","going into overdrive","burning with determination","rising up to the challenge", "getting strong now","getting ripped") - user.visible_message("[user] is [bragmessage]!") - var/reps = 0 - user.pixel_y = 5 - while (reps++ < 6) - if (user.loc != src.loc) - break - - for (var/innerReps = max(reps, 1), innerReps > 0, innerReps--) - sleep(3) - animate(user, pixel_y = (user.pixel_y == 3) ? 5 : 3, time = 3) - - playsound(user, 'goon/sound/effects/spring.ogg', 60, 1) - - sleep(3) - animate(user, pixel_y = 2, time = 3) - sleep(3) - playsound(user, 'sound/machines/click.ogg', 60, 1) - obj_flags &= ~IN_USE - animate(user, pixel_y = 0, time = 3) - var/finishmessage = pick("You feel stronger!","You feel like you can take on the world!","You feel robust!","You feel indestructible!") - icon_state = "fitnessweight" - cut_overlay(swole_overlay) - to_chat(user, "[finishmessage]") - user.apply_status_effect(STATUS_EFFECT_EXERCISED) \ No newline at end of file +/obj/structure/weightmachine/weightlifter/AnimateMachine(mob/living/user) + var/mutable_appearance/swole_overlay = mutable_appearance(icon, "fitnessweight-w", WALL_OBJ_LAYER) + add_overlay(swole_overlay) + var/reps = 0 + user.pixel_y = 5 + while (reps++ < 6) + if (user.loc != src.loc) + break + for (var/innerReps = max(reps, 1), innerReps > 0, innerReps--) + sleep(3) + animate(user, pixel_y = (user.pixel_y == 3) ? 5 : 3, time = 3) + playsound(user, 'goon/sound/effects/spring.ogg', 60, 1) + sleep(3) + animate(user, pixel_y = 2, time = 3) + sleep(3) + cut_overlay(swole_overlay) \ No newline at end of file