Merge branch 'master' of https://github.com/PolarisSS13/Polaris into Slime_Rework_3
# Conflicts: # icons/mob/items/lefthand.dmi # icons/mob/items/righthand.dmi # icons/obj/weapons.dmi
@@ -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
|
||||
|
||||
@@ -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 << "<span class='warning'>Invalid duration.</span>"
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
14
code/game/objects/items/weapons/towels.dm
Normal file
@@ -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("<span class='notice'>[] uses [] to towel themselves off.</span>", user, src))
|
||||
playsound(user, 'sound/weapons/towelwipe.ogg', 25, 1)
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
@@ -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"
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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("<span class='warning'>\The [user] lights [src] with [W].</span>")
|
||||
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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
owner = newowner
|
||||
loc = null
|
||||
verbs.Cut()
|
||||
toggle_permission(TARGET_CAN_RADIO)
|
||||
|
||||
/obj/aiming_overlay/proc/toggle_permission(var/perm)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
@@ -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."
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
|
||||
@@ -42,8 +42,6 @@
|
||||
<I>This spell temporarly blinds a single person and does not require wizard garb.</I><BR>
|
||||
<A href='byond://?src=\ref[src];spell_choice=subjugation'>Subjugation</A> (30)<BR>
|
||||
<I>This spell temporarily subjugates a target's mind and does not require wizard garb.</I><BR>
|
||||
<A href='byond://?src=\ref[src];spell_choice=mindswap'>Mind Transfer</A> (60)<BR>
|
||||
<I>This spell allows the user to switch bodies with a target. Careful to not lose your memory in the process.</I><BR>
|
||||
<A href='byond://?src=\ref[src];spell_choice=forcewall'>Forcewall</A> (10)<BR>
|
||||
<I>This spell creates an unbreakable wall that lasts for 30 seconds and does not need wizard garb.</I><BR>
|
||||
<A href='byond://?src=\ref[src];spell_choice=blink'>Blink</A> (2)<BR>
|
||||
@@ -56,8 +54,6 @@
|
||||
<I>This spell creates your ethereal form, temporarily making you invisible and able to pass through walls.</I><BR>
|
||||
<A href='byond://?src=\ref[src];spell_choice=knock'>Knock</A> (10)<BR>
|
||||
<I>This spell opens nearby doors and does not require wizard garb.</I><BR>
|
||||
<A href='byond://?src=\ref[src];spell_choice=horseman'>Curse of the Horseman</A> (15)<BR>
|
||||
<I>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.</I><BR>
|
||||
<A href='byond://?src=\ref[src];spell_choice=noclothes'>Remove Clothes Requirement</A> <b>Warning: this takes away 2 spell choices.</b><BR>
|
||||
<HR>
|
||||
<B>Artefacts:</B><BR>
|
||||
@@ -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))
|
||||
|
||||
36
html/changelogs/Yoshax - suitsensors.yml
Normal file
@@ -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."
|
||||
36
html/changelogs/Yoshax - towels.yml
Normal file
@@ -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."
|
||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 154 KiB After Width: | Height: | Size: 154 KiB |
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 120 KiB |
|
Before Width: | Height: | Size: 389 KiB After Width: | Height: | Size: 390 KiB |
|
Before Width: | Height: | Size: 432 KiB After Width: | Height: | Size: 434 KiB |
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 72 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
@@ -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"
|
||||
|
||||