diff --git a/code/game/objects/structures/gym/punching_bag.dm b/code/game/objects/structures/gym/punching_bag.dm index 9c67bd89cfc..f441887f2c1 100644 --- a/code/game/objects/structures/gym/punching_bag.dm +++ b/code/game/objects/structures/gym/punching_bag.dm @@ -44,17 +44,22 @@ flick("[icon_state]-punch", src) playsound(loc, pick(hit_sounds), 25, TRUE, -1) + if(!iscarbon(user)) + return + + var/is_heavy_gravity = user.has_gravity() > STANDARD_GRAVITY + var/stamina_exhaustion = 3 if(ishuman(user)) var/mob/living/carbon/human/boxer = user var/obj/item/clothing/gloves/boxing/boxing_gloves = boxer.get_item_by_slot(ITEM_SLOT_GLOVES) if(istype(boxing_gloves)) stamina_exhaustion = 2 + if (is_heavy_gravity) + stamina_exhaustion *= 1.5 - if(!iscarbon(user)) - return user.adjustStaminaLoss(stamina_exhaustion) - user.mind?.adjust_experience(/datum/skill/fitness, 0.1) + user.mind?.adjust_experience(/datum/skill/fitness, is_heavy_gravity ? 0.2 : 0.1) user.apply_status_effect(/datum/status_effect/exercised) /obj/structure/punching_bag/wrench_act_secondary(mob/living/user, obj/item/tool) diff --git a/code/game/objects/structures/gym/weight_machine.dm b/code/game/objects/structures/gym/weight_machine.dm index 055c9788c95..d3614ee6815 100644 --- a/code/game/objects/structures/gym/weight_machine.dm +++ b/code/game/objects/structures/gym/weight_machine.dm @@ -133,8 +133,9 @@ user.adjust_nutrition(-5) // feel the burn if(iscarbon(user)) + var/gravity_modifier = user.has_gravity() > STANDARD_GRAVITY ? 2 : 1 // remember the real xp gain is from sleeping after working out - user.mind.adjust_experience(/datum/skill/fitness, WORKOUT_XP) + user.mind.adjust_experience(/datum/skill/fitness, WORKOUT_XP * gravity_modifier) user.apply_status_effect(/datum/status_effect/exercised, EXERCISE_STATUS_DURATION) end_workout() @@ -161,8 +162,13 @@ if(!iscarbon(user) || isnull(user.mind)) return TRUE + + var/affected_gravity = user.has_gravity() + if (!affected_gravity) + return TRUE // No weight? I could do this all day + var/gravity_modifier = affected_gravity > STANDARD_GRAVITY ? 0.75 : 1 // the amount of workouts you can do before you hit stamcrit - var/workout_reps = total_workout_reps[user.mind.get_skill_level(/datum/skill/fitness)] + var/workout_reps = total_workout_reps[user.mind.get_skill_level(/datum/skill/fitness)] * gravity_modifier // total stamina drain of 1 workout calculated based on the workout length var/stamina_exhaustion = FLOOR(user.maxHealth / workout_reps / WORKOUT_LENGTH, 0.1) user.adjustStaminaLoss(stamina_exhaustion * seconds_per_tick)