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
This commit is contained in:
Datraen
2016-05-25 15:09:23 -04:00
46 changed files with 284 additions and 92 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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())

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View 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)

View File

@@ -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))

View File

@@ -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)

View File

@@ -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"

View File

@@ -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")

View File

@@ -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"

View File

@@ -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)

View File

@@ -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

View File

@@ -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"

View File

@@ -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)

View File

@@ -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()

View File

@@ -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())

View File

@@ -23,7 +23,6 @@
owner = newowner
loc = null
verbs.Cut()
toggle_permission(TARGET_CAN_RADIO)
/obj/aiming_overlay/proc/toggle_permission(var/perm)

View File

@@ -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)

View File

@@ -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."

View File

@@ -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

View File

@@ -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()

View File

@@ -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."

View File

@@ -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)

View File

@@ -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)

View File

@@ -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))

View 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."

View 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."

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 389 KiB

After

Width:  |  Height:  |  Size: 390 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 432 KiB

After

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -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"

BIN
sound/weapons/towelwhip.ogg Normal file

Binary file not shown.

BIN
sound/weapons/towelwipe.ogg Normal file

Binary file not shown.