diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index 39036252f0..68b313d9a1 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -13,7 +13,6 @@ #define GODMODE 0x1000 #define FAKEDEATH 0x2000 // Replaces stuff like changeling.changeling_fakedeath. #define DISFIGURED 0x4000 // Set but never checked. Remove this sometime and replace occurences with the appropriate organ code -#define XENO_HOST 0x8000 // Tracks whether we're gonna be a baby alien's mummy. // Grab levels. #define GRAB_PASSIVE 1 diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm index a50680ef8d..a4553403bc 100644 --- a/code/game/machinery/computer/guestpass.dm +++ b/code/game/machinery/computer/guestpass.dm @@ -148,9 +148,9 @@ if(reas) reason = reas if ("duration") - var/dur = input("Duration (in minutes) during which pass is valid (up to 30 minutes).", "Duration") as num|null + var/dur = input("Duration (in minutes) during which pass is valid (up to 120 minutes).", "Duration") as num|null if (dur) - if (dur > 0 && dur <= 30) + if (dur > 0 && dur <= 120) duration = dur else usr << "Invalid duration." @@ -158,7 +158,7 @@ var/A = text2num(href_list["access"]) if (A in accesses) accesses.Remove(A) - else + else if(A in giver.access) //Let's make sure the ID card actually has the access. accesses.Add(A) else diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 912bacb817..439d0199d7 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -1047,3 +1047,24 @@ /obj/item/weapon/screwdriver = 5,/obj/item/weapon/crowbar = 5) //everything after the power cell had no amounts, I improvised. -Sayu +/obj/machinery/vending/fitness + name = "SweatMAX" + desc = "Fueled by your inner inadequacy!" + icon_state = "fitness" + products = list(/obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton = 8, + /obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton/chocolate = 8, + /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake = 8, + /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask = 8, + /obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar = 8, + /obj/item/weapon/reagent_containers/food/snacks/liquidfood = 8, + /obj/item/weapon/reagent_containers/pill/diet = 8) + + prices = list(/obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton = 3, + /obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton/chocolate = 3, + /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake = 20, + /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask = 5, + /obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar = 5, + /obj/item/weapon/reagent_containers/food/snacks/liquidfood = 5, + /obj/item/weapon/reagent_containers/pill/diet = 25) + + contraband = list(/obj/item/weapon/reagent_containers/syringe/steroid = 4) diff --git a/code/game/mecha/medical/odysseus.dm b/code/game/mecha/medical/odysseus.dm index ede4ccf410..65ed711f2f 100644 --- a/code/game/mecha/medical/odysseus.dm +++ b/code/game/mecha/medical/odysseus.dm @@ -101,8 +101,6 @@ holder = patient.hud_list[STATUS_HUD] if(patient.stat == 2) holder.icon_state = "huddead" - else if(patient.status_flags & XENO_HOST) - holder.icon_state = "hudxeno" else if(foundVirus) holder.icon_state = "hudill" else if(patient.has_brain_worms()) diff --git a/code/game/objects/effects/decals/posters/bs12.dm b/code/game/objects/effects/decals/posters/bs12.dm index a727e2804c..091b8cb2c9 100644 --- a/code/game/objects/effects/decals/posters/bs12.dm +++ b/code/game/objects/effects/decals/posters/bs12.dm @@ -91,7 +91,7 @@ /datum/poster/bay_19 icon_state="bsposter19" - name = "Respect a Unathi" + name = "Respect an Unathi" desc = "This poster depicts a well dressed looking Unathi receiving a prestigious award. It appears to espouse greater co-operation and harmony between the two races." /datum/poster/bay_20 diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index 34181486e4..1d171d9dbe 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -9,11 +9,15 @@ /obj/item/trash/raisins name = "\improper 4no raisins" - icon_state= "4no_raisins" + icon_state = "4no_raisins" /obj/item/trash/candy name = "candy" - icon_state= "candy" + icon_state = "candy" + +/obj/item/trash/candy/proteinbar + name = "protein bar" + icon_state = "proteinbar" /obj/item/trash/cheesie name = "\improper Cheesie Honkers" diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 478272b8b2..c0469cd9f8 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -187,7 +187,8 @@ /obj/item/device/flash, /obj/item/weapon/flame/lighter, /obj/item/weapon/reagent_containers/food/snacks/donut/, - /obj/item/ammo_magazine + /obj/item/ammo_magazine, + /obj/item/weapon/gun/projectile/colt/detective ) /obj/item/weapon/storage/belt/soulstone diff --git a/code/game/objects/items/weapons/towels.dm b/code/game/objects/items/weapons/towels.dm new file mode 100644 index 0000000000..180ccf2af9 --- /dev/null +++ b/code/game/objects/items/weapons/towels.dm @@ -0,0 +1,14 @@ +/obj/item/weapon/towel + name = "towel" + icon = 'icons/obj/weapons.dmi' + icon_state = "towel" + slot_flags = SLOT_HEAD | SLOT_BELT | SLOT_OCLOTHING + force = 3.0 + w_class = 3.0 + attack_verb = list("whipped") + hitsound = "towelwhip" + desc = "A soft cotton towel." + +/obj/item/weapon/towel/attack_self(mob/living/user as mob) + user.visible_message(text("[] uses [] to towel themselves off.", user, src)) + playsound(user, 'sound/weapons/towelwipe.ogg', 25, 1) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 23c5961b66..c7dc8f4ae1 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -910,7 +910,7 @@ proc/admin_notice(var/message, var/rights) for(var/datum/antagonist/antag in ticker.mode.antag_templates) if(antag.is_antagonist(M)) return 2 - else if(M.special_role) + if(M.special_role) return 1 if(isrobot(character)) diff --git a/code/modules/client/preference_setup/loadout/loadout_general.dm b/code/modules/client/preference_setup/loadout/loadout_general.dm index 2b1c4bbb6b..c68037704e 100644 --- a/code/modules/client/preference_setup/loadout/loadout_general.dm +++ b/code/modules/client/preference_setup/loadout/loadout_general.dm @@ -61,3 +61,11 @@ lunchboxes[initial(lunchbox.name)] = lunchbox_type gear_tweaks += new/datum/gear_tweak/path(sortAssoc(lunchboxes)) gear_tweaks += new/datum/gear_tweak/contents(lunchables_lunches(), lunchables_snacks(), lunchables_drinks()) + +/datum/gear/towel + display_name = "towel" + path = /obj/item/weapon/towel + +/datum/gear/towel/New() + ..() + gear_tweaks = list(gear_tweak_free_color_choice) \ No newline at end of file diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm index a86f0e214f..01209c7329 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm @@ -143,7 +143,7 @@ /datum/gear/suit/roles/poncho/science display_name = "poncho, science" path = /obj/item/clothing/suit/poncho/roles/science - allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobotanist") + allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist") /datum/gear/suit/roles/poncho/cargo display_name = "poncho, cargo" @@ -218,7 +218,7 @@ /datum/gear/suit/wintercoat/science display_name = "winter coat, science" path = /obj/item/clothing/suit/storage/hooded/wintercoat/science - allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobotanist") + allowed_roles = list("Research Director","Scientist", "Roboticist", "Xenobiologist") /datum/gear/suit/wintercoat/engineering display_name = "winter coat, engineering" @@ -233,7 +233,7 @@ /datum/gear/suit/wintercoat/hydro display_name = "winter coat, hydroponics" path = /obj/item/clothing/suit/storage/hooded/wintercoat/hydro - allowed_roles = list("Botanist", "Xenobotanist") + allowed_roles = list("Botanist", "Xenobiologist") /datum/gear/suit/wintercoat/cargo display_name = "winter coat, cargo" diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform.dm b/code/modules/client/preference_setup/loadout/loadout_uniform.dm index 1ef69de38a..a6665d0bb5 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uniform.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uniform.dm @@ -88,72 +88,72 @@ shorts[initial(short_type.name)] = short_type gear_tweaks += new/datum/gear_tweak/path(sortAssoc(shorts)) -/datum/gear/uniform/skirt/ce +/datum/gear/uniform/job_skirt/ce display_name = "skirt, ce" path = /obj/item/clothing/under/rank/engineer/chief_engineer/skirt allowed_roles = list("Chief Engineer") -/datum/gear/uniform/skirt/atmos +/datum/gear/uniform/job_skirt/atmos display_name = "skirt, atmos" path = /obj/item/clothing/under/rank/engineer/atmospheric_technician/skirt allowed_roles = list("Chief Engineer","Atmospheric Technician") -/datum/gear/uniform/skirt/eng +/datum/gear/uniform/job_skirt/eng display_name = "skirt, engineer" path = /obj/item/clothing/under/rank/engineer/skirt allowed_roles = list("Chief Engineer","Station Engineer") -/datum/gear/uniform/skirt/roboticist +/datum/gear/uniform/job_skirt/roboticist display_name = "skirt, roboticist" path = /obj/item/clothing/under/rank/roboticist/skirt allowed_roles = list("Research Director","Roboticist") -/datum/gear/uniform/skirt/cmo +/datum/gear/uniform/job_skirt/cmo display_name = "skirt, cmo" path = /obj/item/clothing/under/rank/medical/chief_medical_officer/skirt allowed_roles = list("Chief Medical Officer") -/datum/gear/uniform/skirt/chem +/datum/gear/uniform/job_skirt/chem display_name = "skirt, chemist" path = /obj/item/clothing/under/rank/medical/chemist/skirt allowed_roles = list("Chief Medical Officer","Chemist") -/datum/gear/uniform/skirt/viro +/datum/gear/uniform/job_skirt/viro display_name = "skirt, virologist" path = /obj/item/clothing/under/rank/medical/virologist/skirt allowed_roles = list("Chief Medical Officer","Medical Doctor") -/datum/gear/uniform/skirt/med +/datum/gear/uniform/job_skirt/med display_name = "skirt, medical" path = /obj/item/clothing/under/rank/medical/skirt allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic") -/datum/gear/uniform/skirt/sci +/datum/gear/uniform/job_skirt/sci display_name = "skirt, scientist" path = /obj/item/clothing/under/rank/scientist/skirt - allowed_roles = list("Research Director","Scientist") + allowed_roles = list("Research Director","Scientist", "Xenobiologist") -/datum/gear/uniform/skirt/cargo +/datum/gear/uniform/job_skirt/cargo display_name = "skirt, cargo" path = /obj/item/clothing/under/rank/cargotech/skirt allowed_roles = list("Quartermaster","Cargo Technician") -/datum/gear/uniform/skirt/qm +/datum/gear/uniform/job_skirt/qm display_name = "skirt, QM" path = /obj/item/clothing/under/rank/cargo/skirt allowed_roles = list("Quartermaster") -/datum/gear/uniform/skirt/warden +/datum/gear/uniform/job_skirt/warden display_name = "skirt, warden" path = /obj/item/clothing/under/rank/security/warden/skirt allowed_roles = list("Head of Security", "Warden") -/datum/gear/uniform/skirt/security +/datum/gear/uniform/job_skirt/security display_name = "skirt, security" path = /obj/item/clothing/under/rank/security/skirt allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer") -/datum/gear/uniform/skirt/head_of_security +/datum/gear/uniform/job_skirt/head_of_security display_name = "skirt, hos" path = /obj/item/clothing/under/rank/security/head_of_security/skirt allowed_roles = list("Head of Security") diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 8c6fd55c69..dd16651136 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -678,27 +678,16 @@ if (src.loc == usr) switch(sensor_mode) if(0) - usr << "You disable your suit's remote sensing equipment." + usr.visible_message("[usr] adjusts their sensors.", "You disable your suit's remote sensing equipment.") if(1) - usr << "Your suit will now report whether you are live or dead." + usr.visible_message("[usr] adjusts their sensors.", "Your suit will now report whether you are live or dead.") if(2) - usr << "Your suit will now report your vital lifesigns." + usr.visible_message("[usr] adjusts their sensors.", "Your suit will now report your vital lifesigns.") if(3) - usr << "Your suit will now report your vital lifesigns as well as your coordinate position." + usr.visible_message("[usr] adjusts their sensors.", "Your suit will now report your vital lifesigns as well as your coordinate position.") + else if (istype(src.loc, /mob)) - switch(sensor_mode) - if(0) - for(var/mob/V in viewers(usr, 1)) - V.show_message("\red [usr] disables [src.loc]'s remote sensing equipment.", 1) - if(1) - for(var/mob/V in viewers(usr, 1)) - V.show_message("[usr] turns [src.loc]'s remote sensors to binary.", 1) - if(2) - for(var/mob/V in viewers(usr, 1)) - V.show_message("[usr] sets [src.loc]'s sensors to track vitals.", 1) - if(3) - for(var/mob/V in viewers(usr, 1)) - V.show_message("[usr] sets [src.loc]'s sensors to maximum.", 1) + usr.visible_message("[usr] adjusts [src.loc]'s sensors.", "You adjust [src.loc]'s sensors.") /obj/item/clothing/under/verb/toggle() set name = "Toggle Suit Sensors" diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index 26d7de9082..4d90082708 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -133,7 +133,6 @@ chest = new chest_type(src) if(allowed) chest.allowed = allowed - chest.slowdown = offline_slowdown verbs |= /obj/item/weapon/rig/proc/toggle_chest for(var/obj/item/piece in list(gloves,helmet,boots,chest)) @@ -332,14 +331,14 @@ offline = 0 if(istype(wearer) && !wearer.wearing_rig) wearer.wearing_rig = src - chest.slowdown = initial(slowdown) + slowdown = initial(slowdown) if(offline) if(offline == 1) for(var/obj/item/rig_module/module in installed_modules) module.deactivate() offline = 2 - chest.slowdown = offline_slowdown + slowdown = offline_slowdown return if(cell && cell.charge > 0 && electrified > 0) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index bfcde568e9..b856f8a8bb 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -46,14 +46,14 @@ desc = "An armoured jacket with silver rank pips and livery." icon_state = "warden_jacket" item_state = "armor" - body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS /obj/item/clothing/suit/armor/vest/warden/alt name = "Warden's jacket" desc = "An armoured jacket with silver rank pips and livery." icon_state = "warden_alt" item_state = "warden_alt" - body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS /obj/item/clothing/suit/armor/riot diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm index c4b712c4c3..b04621bdfe 100644 --- a/code/modules/clothing/under/shorts.dm +++ b/code/modules/clothing/under/shorts.dm @@ -116,26 +116,31 @@ name = "khaki skirt" desc = "A skirt that is a khaki color." icon_state = "skirt_khaki" + worn_state = "skirt_khaki" /obj/item/clothing/under/skirt/black name = "short black skirt" desc = "A skirt that is a shiny black." icon_state = "skirt_short_black" + worn_state = "skirt_short_black" /obj/item/clothing/under/skirt/blue name = "short blue skirt" desc = "A skirt that is a shiny blue." icon_state = "skirt_short_blue" + worn_state = "skirt_short_blue" /obj/item/clothing/under/skirt/red name = "short red skirt" desc = "A skirt that is a shiny red." icon_state = "skirt_short_red" + worn_state = "skirt_short_red" /obj/item/clothing/under/skirt/swept name = "swept skirt" desc = "A skirt that is swept to one side." icon_state = "skirt_swept" + worn_state = "skirt_swept" /obj/item/clothing/under/skirt/plaid_blue name = "blue plaid skirt" diff --git a/code/modules/detectivework/tools/rag.dm b/code/modules/detectivework/tools/rag.dm index 6887ef1fba..b279ab63d5 100644 --- a/code/modules/detectivework/tools/rag.dm +++ b/code/modules/detectivework/tools/rag.dm @@ -49,7 +49,7 @@ if(!on_fire && istype(W, /obj/item/weapon/flame)) var/obj/item/weapon/flame/F = W if(F.lit) - ignite() + src.ignite() if(on_fire) visible_message("\The [user] lights [src] with [W].") else @@ -151,7 +151,7 @@ /obj/item/weapon/reagent_containers/glass/rag/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature >= 50 + T0C) - ignite() + src.ignite() if(exposed_temperature >= 900 + T0C) new /obj/effect/decal/cleanable/ash(get_turf(src)) qdel(src) diff --git a/code/modules/flufftext/Dreaming.dm b/code/modules/flufftext/Dreaming.dm index 69032cd5ce..6ac9483e2f 100644 --- a/code/modules/flufftext/Dreaming.dm +++ b/code/modules/flufftext/Dreaming.dm @@ -11,7 +11,7 @@ var/list/dreams = list( "the quartermaster","a cargo technician","the botanist","a shaft miner","the psychologist","the chemist","the geneticist", "the virologist","the roboticist","the chef","the bartender","the chaplain","the librarian","a mouse","an ert member", "a beach","the holodeck","a smokey room","a voice","the cold","a mouse","an operating table","the bar","the rain","a skrell", - "a unathi","a tajaran","the ai core","the mining station","the research station","a beaker of strange liquid", + "an unathi","a tajaran","the ai core","the mining station","the research station","a beaker of strange liquid", ) mob/living/carbon/proc/dream() diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 9790559edf..0ecc6219ff 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -154,21 +154,6 @@ if(stat != CONSCIOUS) //Let's not worry about tourettes if you're not conscious. return - //Vision - if(species.vision_organ) - if(internal_organs_by_name[species.vision_organ]) // Vision organs cut out? Permablind. - eye_blind = 0 - blinded = 0 - eye_blurry = 0 - else - eye_blind = 1 - blinded = 1 - eye_blurry = 1 - else // Presumably if a species has no vision organs, they see via some other means. - eye_blind = 0 - blinded = 0 - eye_blurry = 0 - if (disabilities & EPILEPSY) if ((prob(1) && paralysis < 1)) src << "\red You have a seizure!" @@ -970,19 +955,18 @@ if(species.vision_organ) vision = internal_organs_by_name[species.vision_organ] - if(!vision) // Presumably if a species has no vision organs, they see via some other means. + if(!species.vision_organ) // Presumably if a species has no vision organs, they see via some other means. eye_blind = 0 blinded = 0 eye_blurry = 0 - else if(vision.is_broken()) // Vision organs cut out or broken? Permablind. + else if(!vision || vision.is_broken()) // Vision organs cut out or broken? Permablind. eye_blind = 1 blinded = 1 eye_blurry = 1 - else - //blindness - if(sdisabilities & BLIND) // Disabled-blind, doesn't get better on its own + else //You have the requisite organs + if(sdisabilities & BLIND) // Disabled-blind, doesn't get better on its own blinded = 1 - else if(eye_blind) // Blindness, heals slowly over time + else if(eye_blind) // Blindness, heals slowly over time eye_blind = max(eye_blind-1,0) blinded = 1 else if(istype(glasses, /obj/item/clothing/glasses/sunglasses/blindfold)) //resting your eyes with a blindfold heals blurry eyes faster @@ -1584,9 +1568,6 @@ if(stat == DEAD) holder.icon_state = "huddead" holder2.icon_state = "huddead" - else if(status_flags & XENO_HOST) - holder.icon_state = "hudxeno" - holder2.icon_state = "hudxeno" else if(foundVirus) holder.icon_state = "hudill" else if(has_brain_worms()) diff --git a/code/modules/projectiles/targeting/targeting_overlay.dm b/code/modules/projectiles/targeting/targeting_overlay.dm index b0577bdf5f..8c87751de7 100644 --- a/code/modules/projectiles/targeting/targeting_overlay.dm +++ b/code/modules/projectiles/targeting/targeting_overlay.dm @@ -23,7 +23,6 @@ owner = newowner loc = null verbs.Cut() - toggle_permission(TARGET_CAN_RADIO) /obj/aiming_overlay/proc/toggle_permission(var/perm) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm index be96e6665a..469c34a1c1 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm @@ -548,6 +548,20 @@ cup_name = "cup of milk" cup_desc = "White and nutritious goodness!" +/datum/reagent/drink/milk/chocolate + name = "Chocolate Milk" + id = "chocolate_milk" + description = "A delicious mixture of perfectly healthy mix and terrible chocolate." + color = "#74533b" + + glass_icon_state = "glass_brown" + glass_name = "glass of chocolate milk" + glass_desc = "Delciously fattening!" + + cup_icon_state = "cup_brown" + cup_name = "cup of chocolate milk" + cup_desc = "Deliciously fattening!" + /datum/reagent/drink/milk/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() if(alien == IS_DIONA) diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm index c934343e77..3b78dc7326 100644 --- a/code/modules/reagents/reagent_containers/food/drinks.dm +++ b/code/modules/reagents/reagent_containers/food/drinks.dm @@ -123,6 +123,23 @@ ..() reagents.add_reagent("soymilk", 50) +/obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton + name = "Small Carton of Milk" + volume = 30 + icon_state = "mini-milk" +/obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton/New() + ..() + reagents.add_reagent("milk", 30) + +/obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton/chocolate + name = "Small Carton of Chocolate Milk" + desc = "It's milk! This one is in delicious chocolate flavour." + +/obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton/chocolate/New() + ..() + reagents.add_reagent("chocolate_milk", 30) + + /obj/item/weapon/reagent_containers/food/drinks/coffee name = "Robust Coffee" desc = "Careful, the beverage you're about to enjoy is extremely hot." diff --git a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm index a9e55b26fe..712772a54b 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm @@ -40,7 +40,7 @@ if(!isGlass || !smash_duration) return 0 - var/list/chance_table = list(90, 90, 85, 85, 60, 35, 15) //starting from distance 0 + var/list/chance_table = list(100, 95, 90, 85, 75, 55, 35) //starting from distance 0 var/idx = max(distance + 1, 1) //since list indices start at 1 if(idx > chance_table.len) return 0 diff --git a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm index cdf495405f..b10feb2b59 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm @@ -133,3 +133,46 @@ name = "shot glass of " + reagents.get_master_reagent_name() //No matter what, the glass will tell you the reagent's name. Might be too abusable in the future. else name = "shot glass" + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask + name = "fitness shaker" + desc = "Big enough to contain enough protein to get perfectly swole. Don't mind the bits." + icon_state = "fitness-cup_black" + volume = 100 + matter = list("plastic" = 2000) + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask/New() + ..() + icon_state = pick("fitness-cup_black", "fitness-cup_red", "fitness-cup_black") + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask/on_reagent_change() + overlays.Cut() + + if(reagents.total_volume) + var/image/filling = image('icons/obj/reagentfillings.dmi', src, "fitness-cup10") + + switch(reagents.total_volume) + if(0 to 10) filling.icon_state = "fitness-cup10" + if(11 to 20) filling.icon_state = "fitness-cup20" + if(21 to 29) filling.icon_state = "fitness-cup30" + if(30 to 39) filling.icon_state = "fitness-cup40" + if(40 to 49) filling.icon_state = "fitness-cup50" + if(50 to 59) filling.icon_state = "fitness-cup60" + if(60 to 69) filling.icon_state = "fitness-cup70" + if(70 to 79) filling.icon_state = "fitness-cup80" + if(80 to 89) filling.icon_state = "fitness-cup90" + if(90 to INFINITY) filling.icon_state = "fitness-cup100" + + filling.color += reagents.get_color() + overlays += filling + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake + name = "protein shake" + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake/New() + ..() + reagents.add_reagent("nutriment", 30) + reagents.add_reagent("iron", 10) + reagents.add_reagent("protein", 15) + reagents.add_reagent("water", 45) + on_reagent_change() \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 98ce8751aa..854e6b7281 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -273,6 +273,19 @@ reagents.add_reagent("sugar", 3) bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar + name = "protein bar" + desc = "SwoleMAX brand protein bars, guaranteed to get you feeling perfectly overconfident." + icon_state = "proteinbar" + trash = /obj/item/trash/candy/proteinbar + +/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar/New() + ..() + reagents.add_reagent("nutriment", 9) + reagents.add_reagent("protein", 4) + reagents.add_reagent("sugar", 4) + bitesize = 6 + /obj/item/weapon/reagent_containers/food/snacks/candy/donor name = "Donor Candy" desc = "A little treat for blood donors." diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 89598898f8..9e22362872 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -294,3 +294,12 @@ /obj/item/weapon/reagent_containers/pill/spaceacillin/New() ..() reagents.add_reagent("spaceacillin", 15) + +/obj/item/weapon/reagent_containers/pill/diet + name = "diet pill" + desc = "Guaranteed to get you slim!" + icon_state = "pill9" + +/obj/item/weapon/reagent_containers/pill/diet/New() + ..() + reagents.add_reagent("lipozine", 2) \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 7c291f1906..3c51df071e 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -344,3 +344,12 @@ reagents.add_reagent("chloralhydrate", 50) mode = SYRINGE_INJECT update_icon() + +/obj/item/weapon/reagent_containers/syringe/steroid + name = "Syringe (anabolic steroids)" + desc = "Contains drugs for muscle growth." + +/obj/item/weapon/reagent_containers/syringe/steroid/New() + ..() + reagents.add_reagent("adrenaline",5) + reagents.add_reagent("hyperzine",10) diff --git a/code/modules/spells/spellbook.dm b/code/modules/spells/spellbook.dm index 822bc8da7c..b54b243609 100644 --- a/code/modules/spells/spellbook.dm +++ b/code/modules/spells/spellbook.dm @@ -42,8 +42,6 @@ This spell temporarly blinds a single person and does not require wizard garb.
Subjugation (30)
This spell temporarily subjugates a target's mind and does not require wizard garb.
- Mind Transfer (60)
- This spell allows the user to switch bodies with a target. Careful to not lose your memory in the process.
Forcewall (10)
This spell creates an unbreakable wall that lasts for 30 seconds and does not need wizard garb.
Blink (2)
@@ -56,8 +54,6 @@ This spell creates your ethereal form, temporarily making you invisible and able to pass through walls.
Knock (10)
This spell opens nearby doors and does not require wizard garb.
- Curse of the Horseman (15)
- This spell will curse a person to wear an unremovable horse mask (it has glue on the inside) and speak like a horse. It does not require wizard garb.
Remove Clothes Requirement Warning: this takes away 2 spell choices.

Artefacts:
@@ -174,10 +170,10 @@ feedback_add_details("wizard_spell_learned","SJ") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells H.add_spell(new/spell/targeted/subjugation) temp = "You have learned subjugate." - if("mindswap") - feedback_add_details("wizard_spell_learned","MT") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.add_spell(new/spell/targeted/mind_transfer) - temp = "You have learned mindswap." +// if("mindswap") +// feedback_add_details("wizard_spell_learned","MT") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells +// H.add_spell(new/spell/targeted/mind_transfer) +// temp = "You have learned mindswap." if("forcewall") feedback_add_details("wizard_spell_learned","FW") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells H.add_spell(new/spell/aoe_turf/conjure/forcewall) @@ -202,10 +198,10 @@ feedback_add_details("wizard_spell_learned","KN") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells H.add_spell(new/spell/aoe_turf/knock) temp = "You have learned knock." - if("horseman") - feedback_add_details("wizard_spell_learned","HH") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.add_spell(new/spell/targeted/equip_item/horsemask) - temp = "You have learned curse of the horseman." +// if("horseman") +// feedback_add_details("wizard_spell_learned","HH") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells +// H.add_spell(new/spell/targeted/equip_item/horsemask) +// temp = "You have learned curse of the horseman." if("mentalfocus") feedback_add_details("wizard_spell_learned","MF") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells new /obj/item/weapon/gun/energy/staff/focus(get_turf(H)) diff --git a/html/changelogs/Yoshax - suitsensors.yml b/html/changelogs/Yoshax - suitsensors.yml new file mode 100644 index 0000000000..bac6fe3ff8 --- /dev/null +++ b/html/changelogs/Yoshax - suitsensors.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Yoshax + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "Adjusting your suit sensors now displays a message to other people in range that you did so. In addition, seeing someone else adjust someone's suit sensors no longer informs you to what level." diff --git a/html/changelogs/Yoshax - towels.yml b/html/changelogs/Yoshax - towels.yml new file mode 100644 index 0000000000..2de7e3fa8c --- /dev/null +++ b/html/changelogs/Yoshax - towels.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Yoshax + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added towels to the loadout. These can be worn on the head, belt or outwear slots. You can also whip people with them for a special message and sound! In addition, using them in-hand will produce an emote where your towel yourself off." diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi index 88976b245d..5f8e67691e 100644 Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 628f549548..788fed60d8 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/items/lefthand.dmi b/icons/mob/items/lefthand.dmi index f9e7ebdfa1..a1dde7b433 100644 Binary files a/icons/mob/items/lefthand.dmi and b/icons/mob/items/lefthand.dmi differ diff --git a/icons/mob/items/righthand.dmi b/icons/mob/items/righthand.dmi index d6bda4726a..105b1fe5a5 100644 Binary files a/icons/mob/items/righthand.dmi and b/icons/mob/items/righthand.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index a94deb0f13..d9c9f1deb9 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 8a4aed28d9..4e00173df0 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 24dbb10edc..5d61df9dff 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi index d0364f237a..7354bd311b 100644 Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ diff --git a/icons/obj/reagentfillings.dmi b/icons/obj/reagentfillings.dmi index d6f6ed1707..c99de40c15 100644 Binary files a/icons/obj/reagentfillings.dmi and b/icons/obj/reagentfillings.dmi differ diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index 37785865d1..0f56c51d23 100644 Binary files a/icons/obj/toy.dmi and b/icons/obj/toy.dmi differ diff --git a/icons/obj/trash.dmi b/icons/obj/trash.dmi index 18b34ee20c..9b8a5c2584 100644 Binary files a/icons/obj/trash.dmi and b/icons/obj/trash.dmi differ diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi index 2bdbfc601d..e4157037b9 100755 Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index c428ddfc74..15152c2159 100644 Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ diff --git a/polaris.dme b/polaris.dme index 91a8c27b4d..2dcdece072 100644 --- a/polaris.dme +++ b/polaris.dme @@ -703,6 +703,7 @@ #include "code\game\objects\items\weapons\tape.dm" #include "code\game\objects\items\weapons\teleportation.dm" #include "code\game\objects\items\weapons\tools.dm" +#include "code\game\objects\items\weapons\towels.dm" #include "code\game\objects\items\weapons\traps.dm" #include "code\game\objects\items\weapons\trays.dm" #include "code\game\objects\items\weapons\weaponry.dm" diff --git a/sound/weapons/towelwhip.ogg b/sound/weapons/towelwhip.ogg new file mode 100644 index 0000000000..49dab750a8 Binary files /dev/null and b/sound/weapons/towelwhip.ogg differ diff --git a/sound/weapons/towelwipe.ogg b/sound/weapons/towelwipe.ogg new file mode 100644 index 0000000000..2bee55c38d Binary files /dev/null and b/sound/weapons/towelwipe.ogg differ