diff --git a/code/game/machinery/adv_med_vr.dm b/code/game/machinery/adv_med_vr.dm new file mode 100644 index 0000000000..fc3433bc87 --- /dev/null +++ b/code/game/machinery/adv_med_vr.dm @@ -0,0 +1,17 @@ +/* + +/obj/machinery/bodyscanner/proc/get_occupant_data_vr(list/incoming = list(),mob/living/carbon/human/H) + incoming["Weight"] = H.weight + return + + + +/obj/machinery/body_scanconsole/proc/med_info2(var/list/occ, var/dat = "Scan performed at [occ["stationtime"]]
") + dat += text("Body Weight (to scale): [occ["weight"]]lbs / [occ["weight"] / 2.20463]kg

") + +*/ +//WIP sleeper code. + +//attempt_vr(src,"get_occupant_data_vr",list(occupant_data,H)) //VOREStation Code + +//attempt_vr(src,"med_info2",list(occupant_data,occ)) //VOREStation Code \ No newline at end of file diff --git a/code/modules/client/preferences_vr.dm b/code/modules/client/preferences_vr.dm new file mode 100644 index 0000000000..e69de29bb2 diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 5b694f2323..8c0f615328 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -4,7 +4,9 @@ var/datum/belly/vore_selected // Default to no vore capability. var/list/vore_organs = list() // List of vore containers inside a mob var/absorbed = 0 // If a mob is absorbed into another - var/weight = 100 // Weight for mobs for weightgain system + var/weight = 137 // Weight for mobs for weightgain system + var/weight_gain = 1 //How fast you gain weight + var/weight_loss = 0.5 //How fast you lose weight // // Hook for generic creation of stuff on new creatures diff --git a/code/modules/vore/eating/vore_vr.dm b/code/modules/vore/eating/vore_vr.dm index edd07a0cd3..06b49f9510 100644 --- a/code/modules/vore/eating/vore_vr.dm +++ b/code/modules/vore/eating/vore_vr.dm @@ -35,6 +35,8 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE /datum/vore_preferences var/digestable = 1 var/list/belly_prefs = list() + var/weight_gain = 1 + var/weight_loss = 0.5 // // Adding procs to types to support vore diff --git a/code/modules/vore/weight/fit_vr.dmi b/code/modules/vore/weight/fit_vr.dmi new file mode 100644 index 0000000000..79ff63d148 Binary files /dev/null and b/code/modules/vore/weight/fit_vr.dmi differ diff --git a/code/modules/vore/weight/fitness_machines_vr.dm b/code/modules/vore/weight/fitness_machines_vr.dm new file mode 100644 index 0000000000..dcfa2c1fb4 --- /dev/null +++ b/code/modules/vore/weight/fitness_machines_vr.dm @@ -0,0 +1,154 @@ +/obj/machinery/workout + name = "fitness lifter" + icon = 'code/modules/vore/weight/fit_vr.dmi' + icon_state = "fitnesslifter" //Sprites ripped from goon. + desc = "A utility often used to lose weight." + anchored = 1 + use_power = 0 + idle_power_usage = 0 + active_power_usage = 0 + +/obj/machinery/workout/attackby(obj/item/W, var/mob/living/user) + if(istype(W, /obj/item/weapon/wrench)) + src.add_fingerprint(user) + user.visible_message("[user] has [anchored ? "un" : ""]secured \the [src].", "You [anchored ? "un" : ""]secure \the [src].") + anchored = !anchored + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + return + +/obj/machinery/workout/attack_hand(var/mob/living/user) + if(!anchored) + user << "For safety reasons, you are required to have this equipment wrenched down before using it!" + return + if(user.loc != src.loc) + user << "For safety reasons, you need to be sitting in the fitness lifter for it to work!" + return + if(user.nutrition > 70 && user.weight > 70) //If they have enough nutrition and body weight, they can exercise. + user.dir = src.dir + user.nutrition = user.nutrition - 20 //Working out burns a lot of calories! + user.weight = user.weight - 0.05 //Burn a bit of weight. Not much, but quite a bit. This can't be spammed, as they'll need nutrition to be able to work out. + icon_state = "fitnesslifter2" + user << "You lift some weights." + sleep(50) + icon_state = "fitnesslifter" + + + else if(user.nutrition < 70) + user << "You need more energy to workout on the mat!" + + else if(user.weight < 70) + user << "You're too skinny to risk losing any more weight!" + + else + user << "You're unable to use the fitness lifter." + return //Something went wrong. They shouldn't see this. + +/obj/machinery/workout/shipped + anchored = 0 // For cargo. + + +/obj/machinery/punching_bag + name = "punching bag" + icon = 'code/modules/vore/weight/fit_vr.dmi' + icon_state = "punchingbag" + desc = "A bag often used to releive stress and burn fat." + anchored = 1 + density = 1 + use_power = 0 + idle_power_usage = 0 + active_power_usage = 0 + +/obj/machinery/punching_bag/attack_hand(var/mob/living/user) + + if(user.nutrition > 35 && user.weight > 70) //If they have enough nutrition and body weight, they can exercise. + var/workout = rand(1,2) + user.nutrition = user.nutrition - 10 //A punching bag uses less calories. + user.weight = user.weight - 0.025 //And burns less weight. + icon_state = "punchingbag2" + switch(workout) + if(1) + user << "You slam your fist into the punching bag." + if(2) + user << "You jab the punching bag with your elbow." + playsound(src.loc, "punch", 50, 1) + sleep(50) + icon_state = "punchingbag" + + + else if(user.nutrition < 35) + user << "You need more energy to workout on the mat!" + + else if(user.weight < 70) + user << "You're too skinny to risk losing any more weight!" + + else + user << "You're unable to use the punching bag." + return //Something went wrong. They shouldn't see this. + + +/obj/machinery/punching_clown + name = "clown punching bag" + icon = 'code/modules/vore/weight/fit_vr.dmi' + icon_state = "bopbag" + desc = "A bag often used to releive stress and burn fat. It has a clown on the front of it." + anchored = 0 + density = 1 + use_power = 0 + idle_power_usage = 0 + active_power_usage = 0 + +/obj/machinery/punching_clown/attack_hand(var/mob/living/user) + + if(user.nutrition > 35 && user.weight > 70) //If they have enough nutrition and body weight, they can exercise. + var/workout = rand(1,4) + user.nutrition = user.nutrition - 10 + user.weight = user.weight - 0.025 + icon_state = "bopbag2" + switch(workout) + if(1) + user << "You slam your fist into the punching bag." + if(2) + user << "You jab the punching bag with your elbow." + if(3) + user << "You hammer the clown right in it's face with your fist." + if(4) + user << "A honk emits from the punching bag as you hit it." + playsound(src.loc, "punch", 50, 1) + playsound(src.loc, "clownstep", 50, 1) + playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1) + sleep(50) + icon_state = "bopbag" + + + else if(user.nutrition < 35) + user << "You need more energy to workout on the mat!" + + else if(user.weight < 70) + user << "You're too skinny to risk losing any more weight!" + + else + user << "You're unable to use the punching bag." + return //Something went wrong. They shouldn't see this. + + + + +/obj/machinery/scale + name = "scale" + icon = 'code/modules/vore/weight/fit_vr.dmi' + icon_state = "scale" + desc = "A scale used to measure ones weight relative to their size and species." + anchored = 1 // Set to 0 when we can construct or dismantle these. + use_power = 0 + idle_power_usage = 0 + active_power_usage = 0 + var/kilograms + +/obj/machinery/scale/attack_hand(var/mob/living/user) + if(user.loc != src.loc) + user << "You need to be standing on top of the scale for it to work!" + return + if(user.weight) //Just in case. + kilograms = round(text2num(user.weight),4) / 2.20463 + user << "Your relative weight is [user.weight]lb / [kilograms]kg." + user.visible_message("[user]'s relative weight is [user.weight]lb / [kilograms]kg.") diff --git a/vorestation.dme b/vorestation.dme index 0085f19409..8fe9400a3f 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -374,6 +374,7 @@ #include "code\game\jobs\job\security.dm" #include "code\game\jobs\job\silicon.dm" #include "code\game\machinery\adv_med.dm" +#include "code\game\machinery\adv_med_vr.dm" #include "code\game\machinery\ai_slipper.dm" #include "code\game\machinery\alarm.dm" #include "code\game\machinery\atmo_control.dm" @@ -990,6 +991,7 @@ #include "code\modules\client\preferences_savefile.dm" #include "code\modules\client\preferences_spawnpoints.dm" #include "code\modules\client\preferences_toggle_procs.dm" +#include "code\modules\client\preferences_vr.dm" #include "code\modules\client\ui_style.dm" #include "code\modules\client\preference_setup\preference_setup.dm" #include "code\modules\client\preference_setup\antagonism\01_basic.dm" @@ -1889,6 +1891,7 @@ #include "code\modules\vore\eating\vore_vr.dm" #include "code\modules\vore\eating\vorehooks_vr.dm" #include "code\modules\vore\eating\vorepanel_vr.dm" +#include "code\modules\vore\weight\fitness_machines_vr.dm" #include "code\modules\xgm\xgm_gas_data.dm" #include "code\modules\xgm\xgm_gas_mixture.dm" #include "code\unit_tests\loadout_tests.dm"