Merge branch 'master' of https://github.com/tgstation/-tg-station into doesrussellsteapotapplytorussellsteapot

Conflicts:
	icons/obj/closet.dmi
This commit is contained in:
Jordie0608
2015-04-28 22:31:11 +10:00
480 changed files with 4295 additions and 3398 deletions
+6 -6
View File
@@ -66,11 +66,11 @@
return
if( istype(I, /obj/item/weapon/screwdriver))
if(!panel_open)
user << "You open the maintenance panel."
user << "<span class='notice'>You open the maintenance panel.</span>"
set_sign(new /datum/barsign/hiddensigns/signoff)
panel_open = 1
else
user << "You close the maintenance panel."
user << "<span class='notice'>You close the maintenance panel.</span>"
if(!broken && !emagged)
set_sign(pick(barsigns))
else if(emagged)
@@ -82,17 +82,17 @@
if(istype(I, /obj/item/stack/cable_coil) && panel_open)
var/obj/item/stack/cable_coil/C = I
if(emagged) //Emagged, not broken by EMP
user << "Sign has been damaged beyond repair."
user << "<span class='warning'>Sign has been damaged beyond repair!</span>"
return
else if(!broken)
user << "This sign is functioning properly."
user << "<span class='warning'>This sign is functioning properly!</span>"
return
if(C.use(2))
user << "<span class='notice'>You replace the burnt wiring.</span>"
broken = 0
else
user << "<span class='warning'>You need at least two lengths of cable.</span>"
user << "<span class='warning'>You need at least two lengths of cable!</span>"
@@ -105,7 +105,7 @@
/obj/structure/sign/barsign/emag_act(mob/user)
if(broken || emagged)
user << "Nothing interesting happens."
user << "<span class='warning'>Nothing interesting happens!</span>"
return
user << "<span class='notice'>You emag the barsign. Takeover in progress...</span>"
sleep(100) //10 seconds
+1 -1
View File
@@ -202,7 +202,7 @@ LINEN BINS
update_icon()
else if(amount && !hidden && I.w_class < 4) //make sure there's sheets to hide it among, make sure nothing else is hidden in there.
if(!user.drop_item())
user << "<span class='notice'>\The [I] is stuck to your hand, you cannot hide it among the sheets!</span>"
user << "<span class='warning'>\The [I] is stuck to your hand, you cannot hide it among the sheets!</span>"
return
I.loc = src
hidden = I
@@ -47,16 +47,16 @@
. = ..(O, user, 0, 0, 0)
if(.)
if(O != user)
user.visible_message("<span class='danger'>[user] tries to stuff [O] into [src].</span>", \
user.visible_message("<span class='warning'>[user] tries to stuff [O] into [src].</span>", \
"<span class='danger'>You try to stuff [O] into [src].</span>", \
"<span class='danger'>You hear clanging.</span>")
"<span class='italics'>You hear clanging.</span>")
if (!do_after(user, 40))
return
if(!..(O, user, 0, 0))
return
user.visible_message("<span class='notice'>[user] stuffs [O] into[src].</span>", \
user.visible_message("<span class='warning'>[user] stuffs [O] into[src].</span>", \
"<span class='notice'>You stuff [O] into [src].</span>", \
"<span class='notice'>You hear a loud metal bang.</span>")
"<span class='italics'>You hear a loud metal bang.</span>")
insert(O, 1, !opened)
if(opened)
close()
@@ -211,7 +211,7 @@
return
playsound(loc, 'sound/items/Welder2.ogg', 50, 1)
new /obj/item/stack/sheet/metal(src.loc)
visible_message("<span class='notice'>[user] has cut \the [src] apart with \the [WT].</span>", "You hear welding.")
visible_message("[user] has cut \the [src] apart with \the [WT].", "<span class='italics'>You hear welding.</span>")
qdel(src)
return
if(isrobot(user))
@@ -231,9 +231,9 @@
return
playsound(loc, 'sound/items/welder.ogg', 50, 1)
welded = !welded
user << "<span class='notice'>You [welded ? "welded [src] shut":"unwelded [src]"].</span>"
user << "<span class='notice'>You [welded ? "weld [src] shut":"unweld [src]"].</span>"
update_icon()
user.visible_message("<span class='warning'>[user.name] has [welded ? "welded [src] shut":"unwelded [src]"].</span>")
user.visible_message("[user.name] has [welded ? "welded [src] shut":"unwelded [src]"].", "<span class='warning'>You [welded ? "weld [src] shut":"unweld [src]"].</span>")
return
if(secure && broken)
user << "<span class='notice'>The locker appears to be broken.</span>"
@@ -337,8 +337,7 @@
welded = 0 //applies to all lockers lockers
locked = 0 //applies to critter crates and secure lockers only
broken = 1 //applies to secure lockers only
visible_message("<span class='danger'>[user] successfully broke out of [src]!</span>")
user << "<span class='notice'>You successfully break out of [src]!</span>"
user.visible_message("<span class='danger'>[user] successfully broke out of [src]!</span>", "<span class='notice'>You successfully break out of [src]!</span>")
if(istype( src.loc, /obj/structure/bigDelivery))
var/obj/structure/bigDelivery/D = src.loc
qdel(D)
@@ -397,4 +396,4 @@
O.show_message("<span class='warning'>The locker has been broken by [user] with an electromagnetic card!</span>", 1, "You hear a faint electrical spark.", 2)
overlays += "sparking"
spawn(4) //overlays don't support flick so we have to cheat
update_icon()
update_icon()
@@ -4,4 +4,4 @@
locked = 1
icon_state = "secure"
health = 200
secure = 1
secure = 1
@@ -249,7 +249,7 @@
if(isrobot(user))
return
if(!user.drop_item()) //couldn't drop the item
user << "<span class='notice'>\The [W] is stuck to your hand, you cannot put it in \the [src]!</span>"
user << "<span class='warning'>\The [W] is stuck to your hand, you cannot put it in \the [src]!</span>"
return
if(W)
W.loc = src.loc
@@ -257,14 +257,14 @@
return
else if(istype(W, /obj/item/stack/cable_coil))
if(rigged)
user << "<span class='notice'>[src] is already rigged!</span>"
user << "<span class='warning'>[src] is already rigged!</span>"
return
var/obj/item/stack/cable_coil/C = W
if (C.use(5))
user << "<span class='notice'>You rig [src].</span>"
rigged = 1
else
user << "<span class='warning'>You need 5 lengths of cable to rig [src].</span>"
user << "<span class='warning'>You need 5 lengths of cable to rig [src]!</span>"
return
else if(istype(W, /obj/item/device/electropack))
if(rigged)
@@ -6,7 +6,7 @@
density = 1
/obj/structure/largecrate/attack_hand(mob/user as mob)
user << "<span class='notice'>You need a crowbar to pry this open!</span>"
user << "<span class='warning'>You need a crowbar to pry this open!</span>"
return
/obj/structure/largecrate/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
@@ -15,9 +15,9 @@
var/turf/T = get_turf(src)
for(var/obj/O in contents)
O.loc = T
user.visible_message("<span class='notice'>[user] pries \the [src] open.</span>", \
user.visible_message("[user] pries \the [src] open.", \
"<span class='notice'>You pry open \the [src].</span>", \
"<span class='notice'>You hear splitting wood.</span>")
"<span class='italics'>You hear splitting wood.</span>")
qdel(src)
else
return attack_hand(user)
+33 -33
View File
@@ -440,14 +440,14 @@ obj/structure/door_assembly/New()
else if(istype(W, /obj/item/weapon/weldingtool) && !anchored )
var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0,user))
user.visible_message("<span class='warning'>[user] dissassembles the airlock assembly.</span>", \
"You start to dissassemble the airlock assembly.")
user.visible_message("<span class='warning'>[user] disassembles the airlock assembly.</span>", \
"You start to disassemble the airlock assembly...")
playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
if(do_after(user, 40))
if( !WT.isOn() )
return
user << "<span class='notice'> You've disassembled the airlock assembly.</span>"
user << "<span class='notice'> You disassemble the airlock assembly.</span>"
new /obj/item/stack/sheet/metal(get_turf(src), 4)
if (mineral)
if (mineral == "glass")
@@ -469,14 +469,14 @@ obj/structure/door_assembly/New()
if(door_check)
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
user.visible_message("<span class='warning'>[user] secures the airlock assembly to the floor.</span>", \
"You start to secure the airlock assembly to the floor.", \
"You hear wrenching")
user.visible_message("[user] secures the airlock assembly to the floor.", \
"<span class='notice'>You start to secure the airlock assembly to the floor...</span>", \
"<span class='italics'>You hear wrenching.</span>")
if(do_after(user, 40))
if( src.anchored )
return
user << "<span class='notice'> You've secured the airlock assembly.</span>"
user << "<span class='notice'> You secure the airlock assembly.</span>"
src.name = "secured airlock assembly"
src.anchored = 1
else
@@ -484,47 +484,47 @@ obj/structure/door_assembly/New()
else if(istype(W, /obj/item/weapon/wrench) && anchored )
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
user.visible_message("<span class='warning'>[user] unsecures the airlock assembly from the floor.</span>", \
"You start to unsecure the airlock assembly from the floor.", \
"You hear wrenching")
user.visible_message("[user] unsecures the airlock assembly from the floor.", \
"<span class='notice'>You start to unsecure the airlock assembly from the floor...</span>", \
"<span class='italics'>You hear wrenching.</span>")
if(do_after(user, 40))
if( !src.anchored )
return
user << "<span class='notice'> You've unsecured the airlock assembly.</span>"
user << "<span class='notice'> You unsecure the airlock assembly.</span>"
src.name = "airlock assembly"
src.anchored = 0
else if(istype(W, /obj/item/stack/cable_coil) && state == 0 && anchored )
var/obj/item/stack/cable_coil/C = W
if (C.get_amount() < 1)
user << "<span class='warning'>You need one length of cable to wire the airlock assembly.</span>"
user << "<span class='warning'>You need one length of cable to wire the airlock assembly!</span>"
return
user.visible_message("<span class='warning'>[user] wires the airlock assembly.</span>", \
"You start to wire the airlock assembly.")
user.visible_message("[user] wires the airlock assembly.", \
"<span class='notice'>You start to wire the airlock assembly...</span>")
if(do_after(user, 40))
if(C.get_amount() < 1 || state != 0) return
C.use(1)
src.state = 1
user << "<span class='notice'>You've wired the airlock assembly.</span>"
user << "<span class='notice'>You wire the airlock assembly.</span>"
src.name = "wired airlock assembly"
else if(istype(W, /obj/item/weapon/wirecutters) && state == 1 )
playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
user.visible_message("<span class='warning'>[user] cuts the wires from the airlock assembly.</span>", \
"You start to cut the wires from the airlock assembly.")
user.visible_message("[user] cuts the wires from the airlock assembly.", \
"<span class='notice'>You start to cut the wires from the airlock assembly...</span>")
if(do_after(user, 40))
if( src.state != 1 )
return
user << "<span class='notice'> You've cut the wires from the airlock assembly.</span>"
user << "<span class='notice'> You cut the wires from the airlock assembly.</span>"
new/obj/item/stack/cable_coil(get_turf(user), 1)
src.state = 0
src.name = "secured airlock assembly"
else if(istype(W, /obj/item/weapon/airlock_electronics) && state == 1 )
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
user.visible_message("<span class='warning'>[user] installs the electronics into the airlock assembly.</span>", \
"You start to install electronics into the airlock assembly.")
user.visible_message("[user] installs the electronics into the airlock assembly.", \
"<span class='notice'>You start to install electronics into the airlock assembly...</span>")
if(do_after(user, 40))
@@ -533,7 +533,7 @@ obj/structure/door_assembly/New()
user.drop_item()
W.loc = src
user << "<span class='notice'> You've installed the airlock electronics.</span>"
user << "<span class='notice'> You install the airlock electronics.</span>"
src.state = 2
src.name = "near finished airlock assembly"
src.electronics = W
@@ -541,13 +541,13 @@ obj/structure/door_assembly/New()
else if(istype(W, /obj/item/weapon/crowbar) && state == 2 )
playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
user.visible_message("<span class='warning'>[user] removes the electronics from the airlock assembly.</span>", \
"You start to remove electronics from the airlock assembly.")
user.visible_message("[user] removes the electronics from the airlock assembly.", \
"<span class='notice'>You start to remove electronics from the airlock assembly...</span>")
if(do_after(user, 40))
if( src.state != 2 )
return
user << "<span class='notice'> You've removed the airlock electronics.</span>"
user << "<span class='notice'> You remove the airlock electronics.</span>"
src.state = 1
src.name = "wired airlock assembly"
var/obj/item/weapon/airlock_electronics/ae
@@ -563,11 +563,11 @@ obj/structure/door_assembly/New()
if(G.get_amount() >= 1)
if(G.type == /obj/item/stack/sheet/rglass)
playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
user.visible_message("<span class='warning'>[user] adds [G.name] to the airlock assembly.</span>", \
"You start to install [G.name] into the airlock assembly.")
user.visible_message("[user] adds [G.name] to the airlock assembly.", \
"<span class='notice'>You start to install [G.name] into the airlock assembly...</span>")
if(do_after(user, 40))
if(G.get_amount() < 1 || mineral) return
user << "<span class='notice'>You've installed reinforced glass windows into the airlock assembly.</span>"
user << "<span class='notice'>You install reinforced glass windows into the airlock assembly.</span>"
G.use(1)
mineral = "glass"
name = "near finished window airlock assembly"
@@ -587,11 +587,11 @@ obj/structure/door_assembly/New()
var/M = G.sheettype
if(G.get_amount() >= 2)
playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
user.visible_message("<span class='warning'>[user] adds [G.name] to the airlock assembly.</span>", \
"You start to install [G.name] into the airlock assembly.")
user.visible_message("[user] adds [G.name] to the airlock assembly.", \
"<span class='notice'>You start to install [G.name] into the airlock assembly...</span>")
if(do_after(user, 40))
if(G.get_amount() < 2 || mineral) return
user << "<span class='notice'>You've installed [M] plating into the airlock assembly.</span>"
user << "<span class='notice'>You install [M] plating into the airlock assembly.</span>"
G.use(2)
mineral = "[M]"
name = "near finished [M] airlock assembly"
@@ -602,12 +602,12 @@ obj/structure/door_assembly/New()
else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 )
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
user.visible_message("<span class='warning'>[user] finishes the airlock.</span>", \
"You start finishing the airlock.")
user.visible_message("[user] finishes the airlock.", \
"<span class='notice'>You start finishing the airlock...</span>")
if(do_after(user, 40))
if(src.loc && state == 2)
user << "<span class='notice'> You've finished the airlock.</span>"
user << "<span class='notice'> You finish the airlock.</span>"
var/obj/machinery/door/airlock/door
if(mineral == "glass")
door = new src.glass_type( src.loc )
@@ -49,10 +49,10 @@
s.start()
if(buckled_mob)
buckled_mob.burn_skin(85)
buckled_mob << "<span class='danger'>You feel a deep shock course through your body!</span>"
buckled_mob << "<span class='userdanger'>You feel a deep shock course through your body!</span>"
sleep(1)
buckled_mob.burn_skin(85)
visible_message("<span class='danger'>The electric chair went off!</span>", "<span class='danger'>You hear a deep sharp shock!</span>")
visible_message("<span class='danger'>The electric chair went off!</span>", "<span class='italics'>You hear a deep sharp shock!</span>")
A.power_light = light
A.updateicon()
+3 -3
View File
@@ -97,7 +97,7 @@
/obj/structure/falsewall/attackby(obj/item/weapon/W, mob/user, params)
if(opening)
user << "<span class='warning'>You must wait until the door has stopped moving.</span>"
user << "<span class='warning'>You must wait until the door has stopped moving!</span>"
return
if(density)
@@ -109,7 +109,7 @@
if (!istype(T, /turf/simulated/floor))
user << "<span class='warning'>[src] bolts must be tightened on the floor!</span>"
return
user.visible_message("<span class='notice'>[user] tightens some bolts on the wall.</span>", "<span class='warning'>You tighten the bolts on the wall.</span>")
user.visible_message("<span class='notice'>[user] tightens some bolts on the wall.</span>", "<span class='notice'>You tighten the bolts on the wall.</span>")
ChangeToWall()
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
@@ -131,7 +131,7 @@
dismantle(user)
/obj/structure/falsewall/proc/dismantle(mob/user)
user.visible_message("<span class='notice'>[user] dismantles the false wall.</span>", "<span class='warning'>You dismantle the false wall.</span>")
user.visible_message("<span class='notice'>[user] dismantles the false wall.</span>", "<span class='notice'>You dismantle the false wall.</span>")
new /obj/structure/girder/displaced(loc)
if(mineral == "metal")
if(istype(src, /obj/structure/falsewall/reinforced))
+13 -13
View File
@@ -40,8 +40,8 @@
user.do_attack_animation(src)
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
user.visible_message("<span class='warning'>[user] hits [src].</span>", \
"<span class='warning'>You hit [src].</span>", \
"You hear twisting metal.")
"<span class='danger'>You hit [src].</span>", \
"<span class='italics'>You hear twisting metal.</span>")
if(shock(user, 70))
return
@@ -55,8 +55,8 @@
user.changeNext_move(CLICK_CD_MELEE)
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
user.visible_message("<span class='warning'>[user] mangles [src].</span>", \
"<span class='warning'>You mangle [src].</span>", \
"You hear twisting metal.")
"<span class='danger'>You mangle [src].</span>", \
"<span class='italics'>You hear twisting metal.</span>")
if(!shock(user, 70))
health -= 5
@@ -70,8 +70,8 @@
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
user.visible_message("<span class='warning'>[user] smashes against [src].</span>", \
"<span class='warning'>You smash against [src].</span>", \
"You hear twisting metal.")
"<span class='danger'>You smash against [src].</span>", \
"<span class='italics'>You hear twisting metal.</span>")
health -= rand(1,2)
healthcheck()
@@ -83,8 +83,8 @@
M.do_attack_animation(src)
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
M.visible_message("<span class='warning'>[M] smashes against [src].</span>", \
"<span class='warning'>You smash against [src].</span>", \
"You hear twisting metal.")
"<span class='danger'>You smash against [src].</span>", \
"<span class='italics'>You hear twisting metal.</span>")
health -= M.melee_damage_upper
healthcheck()
@@ -145,7 +145,7 @@
playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
anchored = !anchored
user.visible_message("<span class='notice'>[user] [anchored ? "fastens" : "unfastens"] [src].</span>", \
"<span class='notice'>You have [anchored ? "fastened [src] to" : "unfastened [src] from"] the floor.</span>")
"<span class='notice'>You [anchored ? "fasten [src] to" : "unfasten [src] from"] the floor.</span>")
return
else if(istype(W, /obj/item/stack/rods) && destroyed)
var/obj/item/stack/rods/R = W
@@ -164,16 +164,16 @@
if (!destroyed)
var/obj/item/stack/ST = W
if (ST.get_amount() < 2)
user << "<span class='warning'>You need at least two sheets of glass for that.</span>"
user << "<span class='warning'>You need at least two sheets of glass for that!</span>"
return
var/dir_to_set = SOUTHWEST
if(!anchored)
user << "<span class='warning'>[src] needs to be fastened to the floor first.</span>"
user << "<span class='warning'>[src] needs to be fastened to the floor first!</span>"
return
for(var/obj/structure/window/WINDOW in loc)
user << "<span class='warning'>There is already a window there.</span>"
user << "<span class='warning'>There is already a window there!</span>"
return
user << "<span class='notice'>You start placing the window.</span>"
user << "<span class='notice'>You start placing the window...</span>"
if(do_after(user,20))
if(!src.loc || !anchored) //Grille destroyed or unanchored while waiting
return
+3 -3
View File
@@ -37,7 +37,7 @@
/obj/structure/janitorialcart/attackby(obj/item/I, mob/user, params)
var/fail_msg = "<span class='notice'>There is already one of those in [src].</span>"
var/fail_msg = "<span class='warning'>There is already one of those in [src]!</span>"
if(istype(I, /obj/item/weapon/mop))
var/obj/item/weapon/mop/m=I
@@ -74,11 +74,11 @@
signs++
update_icon()
else
user << "<span class='notice'>[src] can't hold any more signs.</span>"
user << "<span class='warning'>[src] can't hold any more signs!</span>"
else if(mybag)
mybag.attackby(I, user)
else if(istype(I, /obj/item/weapon/crowbar))
user.visible_message("<span class='warning'>[user] begins to empty the contents of [src].</span>")
user.visible_message("[user] begins to empty the contents of [src].", "<span class='notice'>You begin to empty the contents of [src]...</span>")
if(do_after(user, 30))
usr << "<span class='notice'>You empty the contents of [src]'s bucket onto the floor.</span>"
reagents.reaction(src.loc)
@@ -88,45 +88,45 @@
if(src.skin >= 1)
src.skin--
new /obj/item/stack/sheet/animalhide/monkey(src.loc)
user << "You remove the hide from the monkey!"
user << "<span class='notice'>You remove the hide from the monkey.</span>"
else if(src.meat > 1)
src.meat--
new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey(src.loc )
usr << "You remove some meat from the monkey."
usr << "<span class='notice'>You remove some meat from the monkey.</span>"
else if(src.meat == 1)
src.meat--
new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey(src.loc)
usr << "You remove the last piece of meat from the monkey!"
usr << "<span class='notice'>You remove the last piece of meat from the monkey.</span>"
src.icon_state = "spike"
src.occupied = 0
else if(src.meattype == MEATTYPE_ALIEN && src.skintype == SKINTYPE_ALIEN)
if(src.skin >= 1)
src.skin--
new /obj/item/stack/sheet/animalhide/xeno(src.loc)
user << "You remove the hide from the alien!"
user << "<span class='notice'>You remove the hide from the alien.</span>"
else if(src.meat > 1)
src.meat--
new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno(src.loc )
usr << "You remove some meat from the alien."
usr << "<span class='notice'>You remove some meat from the alien.</span>"
else if(src.meat == 1)
src.meat--
new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno(src.loc)
usr << "You remove the last piece of meat from the alien!"
usr << "<span class='notice'>You remove the last piece of meat from the alien.</span>"
src.icon_state = "spike"
src.occupied = 0
else if(src.meattype == MEATTYPE_BEAR && src.skintype == SKINTYPE_BEAR)
if(src.skin >= 1)
src.skin--
new /obj/item/clothing/head/bearpelt(src.loc)
user << "You remove the hide from the bear!"
user << "<span class='notice'>You remove the hide from the bear.</span>"
else if(src.meat > 1)
src.meat--
new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear(src.loc )
usr << "You remove some meat from the bear."
usr << "<span class='notice'>You remove some meat from the bear.</span>"
else if(src.meat == 1)
src.meat--
new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear(src.loc)
usr << "You remove the last piece of meat from the bear!"
usr << "<span class='notice'>You remove the last piece of meat from the bear.</span>"
src.icon_state = "spike"
src.occupied = 0
+8 -8
View File
@@ -40,27 +40,27 @@
if(up && down)
switch( alert("Go up or down the ladder?", "Ladder", "Up", "Down", "Cancel") )
if("Up")
user.visible_message("<span class='notice'>[user] climbs up \the [src]!</span>", \
"<span class='notice'>You climb up \the [src]!</span>")
user.visible_message("[user] climbs up \the [src].", \
"<span class='notice'>You climb up \the [src].</span>")
user.loc = get_turf(up)
up.add_fingerprint(user)
if("Down")
user.visible_message("<span class='notice'>[user] climbs down \the [src]!</span>", \
"<span class='notice'>You climb down \the [src]!</span>")
user.visible_message("[user] climbs down \the [src].", \
"<span class='notice'>You climb down \the [src].</span>")
user.loc = get_turf(down)
down.add_fingerprint(user)
if("Cancel")
return
else if(up)
user.visible_message("<span class='notice'>[user] climbs up \the [src]!</span>", \
"<span class='notice'>You climb up \the [src]!</span>")
user.visible_message("[user] climbs up \the [src].", \
"<span class='notice'>You climb up \the [src].</span>")
user.loc = get_turf(up)
up.add_fingerprint(user)
else if(down)
user.visible_message("<span class='notice'>[user] climbs down \the [src]!</span>", \
"<span class='notice'>You climb down \the [src]!</span>")
user.visible_message("[user] climbs down \the [src].", \
"<span class='notice'>You climb down \the [src].</span>")
user.loc = get_turf(down)
down.add_fingerprint(user)
+2 -2
View File
@@ -75,8 +75,8 @@
if (src.destroyed)
return
else
user.visible_message("<span class='danger'>[user] kicks the lab cage.</span>", \
"<span class='notice'>You kick the lab cage.</span>")
user.visible_message("<span class='warning'>[user] kicks the lab cage.</span>", \
"<span class='danger'>You kick the lab cage.</span>")
src.health -= 2
healthcheck()
return
@@ -125,13 +125,13 @@
/obj/structure/mineral_door/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W,/obj/item/weapon/pickaxe))
var/obj/item/weapon/pickaxe/digTool = W
user << "You start digging the [name]."
user << "<span class='notice'>You start digging the [name]...</span>"
if(do_after(user,digTool.digspeed*hardness) && src)
user << "You finished digging."
user << "<span class='notice'>You finish digging.</span>"
Dismantle()
else if(istype(W,/obj/item/weapon)) //not sure, can't not just weapons get passed to this proc?
hardness -= W.force/100
user << "You hit the [name] with your [W.name]!"
user << "<span class='danger'>You hit the [name] with your [W.name]!</span>"
CheckHardness()
else
attack_hand(user)
+1 -1
View File
@@ -65,7 +65,7 @@
return
if(prob(I.force * 2))
visible_message("<span class='warning'>[user] smashes [src] with [I]!</span>")
visible_message("<span class='warning'>[user] smashes [src] with [I].</span>")
shatter()
else
visible_message("<span class='warning'>[user] hits [src] with [I]!</span>")
+4 -4
View File
@@ -164,11 +164,11 @@ var/global/list/crematoriums = new/list()
return //don't let you cremate something twice or w/e
if(contents.len <= 1)
audible_message("<span class='danger'>You hear a hollow crackle.</span>")
audible_message("<span class='italics'>You hear a hollow crackle.</span>")
return
else
audible_message("<span class='danger'>You hear a roar as the crematorium activates.</span>")
audible_message("<span class='italics'>You hear a roar as the crematorium activates.</span>")
locked = 1
update_icon()
@@ -243,7 +243,7 @@ Crematorium Switch
connected.close()
add_fingerprint(user)
else
user << "That's not connected to anything."
user << "<span class='warning'>That's not connected to anything!</span>"
/obj/structure/tray/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
if(!istype(O, /atom/movable) || O.anchored || !Adjacent(user) || !user.Adjacent(O) || O.loc == user)
@@ -259,7 +259,7 @@ Crematorium Switch
return
O.loc = src.loc
if (user != O)
visible_message("<span class='warning'>[user] stuffs [O] into [src]!</span>")
visible_message("<span class='warning'>[user] stuffs [O] into [src].</span>")
return
/*
+5 -5
View File
@@ -330,7 +330,7 @@
/obj/structure/piano/attack_hand(mob/user as mob)
if(!user.IsAdvancedToolUser())
user << "<span class='danger'>You don't have the dexterity to do this!</span>"
user << "<span class='warning'>You don't have the dexterity to do this!</span>"
return 1
interact(user)
@@ -352,8 +352,8 @@
if (do_after(user, 20))
user.visible_message( \
"[user] tightens \the [src]'s casters.", \
"<span class='notice'> You have tightened \the [src]'s casters. Now it can be played again.</span>", \
"You hear ratchet.")
"<span class='notice'> You tighten \the [src]'s casters. Now it can be played again.</span>", \
"<span class='italics'>You hear ratchet.</span>")
anchored = 1
else if(anchored)
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
@@ -361,8 +361,8 @@
if (do_after(user, 40))
user.visible_message( \
"[user] loosens \the [src]'s casters.", \
"<span class='notice'> You have loosened \the [src]. Now it can be pulled somewhere else.</span>", \
"You hear ratchet.")
"<span class='notice'> You loosen \the [src]. Now it can be pulled somewhere else.</span>", \
"<span class='italics'>You hear ratchet.</span>")
anchored = 0
else
..()
+10 -10
View File
@@ -42,11 +42,11 @@ FLOOR SAFES
/obj/structure/safe/proc/check_unlocked(mob/user as mob, canhear)
if(user && canhear)
if(tumbler_1_pos == tumbler_1_open)
user << "<span class='notice'>You hear a [pick("tonk", "krunk", "plunk")] from [src].</span>"
user << "<span class='italics'>You hear a [pick("tonk", "krunk", "plunk")] from [src].</span>"
if(tumbler_2_pos == tumbler_2_open)
user << "<span class='notice'>You hear a [pick("tink", "krink", "plink")] from [src].</span>"
user << "<span class='italics'>You hear a [pick("tink", "krink", "plink")] from [src].</span>"
if(tumbler_1_pos == tumbler_1_open && tumbler_2_pos == tumbler_2_open)
if(user) visible_message("<b>[pick("Spring", "Sprang", "Sproing", "Clunk", "Krunk")]!</b>")
if(user) visible_message("<i><b>[pick("Spring", "Sprang", "Sproing", "Clunk", "Krunk")]!</b></i>")
return 1
return 0
@@ -101,7 +101,7 @@ FLOOR SAFES
updateUsrDialog()
return
else
user << "<span class='notice'>You can't [open ? "close" : "open"] [src], the lock is engaged!</span>"
user << "<span class='warning'>You can't [open ? "close" : "open"] [src], the lock is engaged!</span>"
return
if(href_list["decrement"])
@@ -109,11 +109,11 @@ FLOOR SAFES
if(dial == tumbler_1_pos + 1 || dial == tumbler_1_pos - 71)
tumbler_1_pos = decrement(tumbler_1_pos)
if(canhear)
user << "<span class='notice'>You hear a [pick("clack", "scrape", "clank")] from [src].</span>"
user << "<span class='italics'>You hear a [pick("clack", "scrape", "clank")] from [src].</span>"
if(tumbler_1_pos == tumbler_2_pos + 37 || tumbler_1_pos == tumbler_2_pos - 35)
tumbler_2_pos = decrement(tumbler_2_pos)
if(canhear)
user << "<span class='notice'>You hear a [pick("click", "chink", "clink")] from [src].</span>"
user << "<span class='italics'>You hear a [pick("click", "chink", "clink")] from [src].</span>"
check_unlocked(user, canhear)
updateUsrDialog()
return
@@ -123,11 +123,11 @@ FLOOR SAFES
if(dial == tumbler_1_pos - 1 || dial == tumbler_1_pos + 71)
tumbler_1_pos = increment(tumbler_1_pos)
if(canhear)
user << "<span class='notice'>You hear a [pick("clack", "scrape", "clank")] from [src].</span>"
user << "<span class='italics'>You hear a [pick("clack", "scrape", "clank")] from [src].</span>"
if(tumbler_1_pos == tumbler_2_pos - 37 || tumbler_1_pos == tumbler_2_pos + 35)
tumbler_2_pos = increment(tumbler_2_pos)
if(canhear)
user << "<span class='notice'>You hear a [pick("click", "chink", "clink")] from [src].</span>"
user << "<span class='italics'>You hear a [pick("click", "chink", "clink")] from [src].</span>"
check_unlocked(user, canhear)
updateUsrDialog()
return
@@ -147,7 +147,7 @@ FLOOR SAFES
if(I.w_class + space <= maxspace)
space += I.w_class
if(!user.drop_item())
user << "<span class='notice'>\The [I] is stuck to your hand, you cannot put it in the safe!</span>"
user << "<span class='warning'>\The [I] is stuck to your hand, you cannot put it in the safe!</span>"
return
I.loc = src
user << "<span class='notice'>You put [I] in [src].</span>"
@@ -158,7 +158,7 @@ FLOOR SAFES
return
else
if(istype(I, /obj/item/clothing/tie/stethoscope))
user << "Hold [I] in one of your hands while you manipulate the dial."
user << "<span class='warning'>Hold [I] in one of your hands while you manipulate the dial!</span>"
return
+16 -16
View File
@@ -22,60 +22,60 @@
if(istype(W, /obj/item/weapon/wrench))
if(anchored)
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
user.visible_message("<span class='notice'>[user] is loosening the [name]'s bolts...</span>", \
user.visible_message("[user] is loosening the [name]'s bolts.", \
"<span class='notice'>You are loosening the [name]'s bolts...</span>")
if(do_after(user,40))
if(!src.loc || !anchored)
return
user.visible_message("<span class='notice'>[user] loosened the [name]'s bolts!</span>", \
"<span class='notice'>You loosened the [name]'s bolts!</span>")
user.visible_message("[user] loosened the [name]'s bolts!", \
"<span class='notice'>You loosen the [name]'s bolts!</span>")
anchored = 0
else
if (!istype(src.loc, /turf/simulated/floor))
user.visible_message("<span class='danger'>A floor must be present to secure the [name]!</span>")
user.visible_message("<span class='warning'>A floor must be present to secure the [name]!</span>")
return
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
user.visible_message("<span class='notice'>[user] is securing the [name]'s bolts...</span>", \
user.visible_message("[user] is securing the [name]'s bolts...", \
"<span class='notice'>You are securing the [name]'s bolts...</span>")
if(do_after(user, 40))
if(!src.loc || anchored)
return
user.visible_message("<span class='notice'>[user] has secured the [name]'s bolts!</span>", \
"<span class='notice'>You have secured the [name]'s bolts!</span>")
user.visible_message("[user] has secured the [name]'s bolts.", \
"<span class='notice'>You have secured the [name]'s bolts.</span>")
anchored = 1
else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter))
user.visible_message("<span class='notice'>[user] is slicing apart the [name]...</span>", \
user.visible_message("[user] is slicing apart the [name]...", \
"<span class='notice'>You are slicing apart the [name]...</span>")
if(do_after(user,30))
if(!src.loc)
return
user.visible_message("<span class='notice'>[user] slices apart the [name]!</span>", \
"<span class='notice'>You slice apart the [name]!</span>")
user.visible_message("[user] slices apart the [name].", \
"<span class='notice'>You slice apart the [name].</span>")
Dismantle(1)
else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer))
var/obj/item/weapon/pickaxe/drill/jackhammer/D = W
if(!D.bcell.use(D.drillcost))
user << "<span class='notice'>Your [D.name] doesn't have enough power to break through the [name].</span>"
user << "<span class='warning!'>Your [D.name] doesn't have enough power to break through the [name]!</span>"
return
D.update_icon()
if(!src.loc)
return
user.visible_message("<span class='notice'>[user] destroys the [name]!</span>", \
"<span class='notice'>You destroy the [name]!</span>")
user.visible_message("[user] destroys the [name]!", \
"<span class='notice'>You destroy the [name].</span>")
D.playDigSound()
qdel(src)
else if(istype(W, /obj/item/weapon/weldingtool) && !anchored)
playsound(loc, 'sound/items/Welder.ogg', 40, 1)
user.visible_message("<span class='notice'>[user] is slicing apart the [name]...</span>", \
user.visible_message("[user] is slicing apart the [name].", \
"<span class='notice'>You are slicing apart the [name]...</span>")
if(do_after(user, 40))
if(!src.loc)
return
playsound(loc, 'sound/items/Welder2.ogg', 50, 1)
user.visible_message("<span class='notice'>[user] slices apart the [name]!</span>", \
user.visible_message("[user] slices apart the [name].", \
"<span class='notice'>You slice apart the [name]!</span>")
Dismantle(1)
@@ -87,7 +87,7 @@
/obj/structure/statue/attack_hand(mob/living/user as mob)
user.changeNext_move(CLICK_CD_MELEE)
add_fingerprint(user)
user.visible_message("<span class='notice'>[user] rubs some dust off from the [name]'s surface.</span>", \
user.visible_message("[user] rubs some dust off from the [name]'s surface.", \
"<span class='notice'>You rub some dust off from the [name]'s surface.</span>")
/obj/structure/statue/CanAtmosPass()
@@ -12,14 +12,14 @@
var/mob/living/M = buckled_mob
if(M != user)
M.visible_message(\
"<span class='notice'>[user.name] pulls [M.name] free from the sticky nest!</span>",\
"[user.name] pulls [M.name] free from the sticky nest!",\
"<span class='notice'>[user.name] pulls you free from the gelatinous resin.</span>",\
"You hear squelching...")
"<span class='italics'>You hear squelching...</span>")
else
M.visible_message(\
"<span class='warning'>[M.name] struggles to break free from the gelatinous resin!</span>",\
"<span class='warning'>You struggle to break free from the gelatinous resin. (Stay still for two minutes.)</span>",\
"You hear squelching...")
"<span class='notice'>You struggle to break free from the gelatinous resin... (Stay still for two minutes.)</span>",\
"<span class='italics'>You hear squelching...</span>")
if(!do_after(M, 1200))
if(M && M.buckled)
M << "<span class='warning'>You fail to unbuckle yourself!</span>"
@@ -28,8 +28,8 @@
return
M.visible_message(\
"<span class='warning'>[M.name] breaks free from the gelatinous resin!</span>",\
"<span class='warning'>You break free from the gelatinous resin!</span>",\
"You hear squelching...")
"<span class='notice'>You break free from the gelatinous resin!</span>",\
"<span class='italics'>You hear squelching...</span>")
unbuckle_mob()
add_fingerprint(user)
@@ -47,9 +47,9 @@
if(buckle_mob(M))
M.visible_message(\
"<span class='notice'>[user.name] secretes a thick vile goo, securing [M.name] into [src]!</span>",\
"<span class='warning'>[user.name] drenches you in a foul-smelling resin, trapping you in [src]!</span>",\
"<span class='notice'>You hear squelching...</span>")
"[user.name] secretes a thick vile goo, securing [M.name] into [src]!",\
"<span class='danger'>[user.name] drenches you in a foul-smelling resin, trapping you in [src]!</span>",\
"<span class='italics'>You hear squelching...</span>")
/obj/structure/stool/bed/nest/post_buckle_mob(mob/living/M)
if(M == buckled_mob)
@@ -92,7 +92,7 @@
return
if(buckled_mob)
return 0
visible_message("<span class='notice'>[usr] collapses \the [src.name].</span>")
usr.visible_message("[usr] collapses \the [src.name].", "<span class='notice'>You collapse \the [src.name].</span>")
new/obj/item/roller(get_turf(src))
qdel(src)
return
@@ -114,7 +114,7 @@
if(loaded)
var/obj/structure/stool/bed/roller/R = loaded
R.loc = user.loc
user.visible_message("<span class='notice'>[user] deploys [loaded].</span>")
user.visible_message("[user] deploys [loaded].", "<span class='notice'>You deploy [loaded].</span>")
loaded = null
else
user << "<span class='warning'>The dock is empty!</span>"
@@ -124,7 +124,7 @@
if(!proximity)
return
if(loaded)
user << "<span class='notice'>You already have a roller bed docked!</span>"
user << "<span class='warning'>You already have a roller bed docked!</span>"
return
var/obj/structure/stool/bed/roller/R = target
@@ -133,6 +133,6 @@
loaded = target
target.loc = src
user.visible_message("<span class='notice'>[user] collects [loaded].</span>")
user.visible_message("[user] collects [loaded].", "<span class='notice'>You collect [loaded].</span>")
..()
+6 -6
View File
@@ -22,7 +22,7 @@
/obj/structure/table_frame/attackby(var/obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/wrench))
user << "<span class='notice'>Now disassembling [src].</span>"
user << "<span class='notice'>You start disassembling [src]...</span>"
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 30))
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
@@ -32,7 +32,7 @@
return
if(istype(I, /obj/item/stack/sheet/plasteel))
var/obj/item/stack/sheet/plasteel/P = I
user << "<span class='notice'>Now adding [P] to [src].</span>"
user << "<span class='notice'>You start adding [P] to [src]...</span>"
if(do_after(user, 50))
new /obj/structure/table/reinforced(src.loc)
qdel(src)
@@ -40,7 +40,7 @@
return
if(istype(I, /obj/item/stack/sheet/metal))
var/obj/item/stack/sheet/metal/M = I
user << "<span class='notice'>Now adding [M] to [src].</span>"
user << "<span class='notice'>You start adding [M] to [src]...</span>"
if(do_after(user, 20))
new /obj/structure/table(src.loc)
qdel(src)
@@ -48,7 +48,7 @@
return
if(istype(I, /obj/item/stack/sheet/glass))
var/obj/item/stack/sheet/glass/G = I
user << "<span class='notice'>Now adding [G] to [src].</span>"
user << "<span class='notice'>You start adding [G] to [src]...</span>"
if(do_after(user, 20))
new /obj/structure/table/glass(src.loc)
qdel(src)
@@ -71,7 +71,7 @@
..()
if(istype(I, /obj/item/stack/sheet/mineral/wood))
var/obj/item/stack/sheet/mineral/wood/W = I
user << "<span class='notice'>Now adding [W] to [src].</span>"
user << "<span class='notice'>You start adding [W] to [src]...</span>"
if(do_after(user, 20))
new /obj/structure/table/wood(src.loc)
qdel(src)
@@ -79,7 +79,7 @@
return
if(istype(I, /obj/item/stack/tile/carpet))
var/obj/item/stack/tile/carpet/C = I
user << "<span class='notice'>Now adding [C] to [src].</span>"
user << "<span class='notice'>You start adding [C] to [src]...</span>"
if(do_after(user, 20))
new /obj/structure/table/wood/poker(src.loc)
qdel(src)
+15 -15
View File
@@ -222,7 +222,7 @@
user.changeNext_move(CLICK_CD_MELEE)
if(tableclimber && tableclimber != user)
tableclimber.Weaken(2)
tableclimber.visible_message("<span class='warning'>[tableclimber.name] has been knocked off the table", "You've been knocked off the table", "You see [tableclimber.name] get knocked off the table</span>")
tableclimber.visible_message("<span class='warning'>[tableclimber.name] has been knocked off the table", "You're knocked off the table!", "You see [tableclimber.name] get knocked off the table</span>")
/obj/structure/table/attack_tk() // no telehulk sorry
@@ -307,7 +307,7 @@
for(var/obj/item/C in oldContents)
C.loc = src.loc
user.visible_message("<span class='notice'>[user] empties [I] on [src].</span>")
user.visible_message("[user] empties [I] on [src].")
return
// If the tray IS empty, continue on (tray will be placed on the table like other items)
@@ -345,7 +345,7 @@
return
if(destroy_type == TBL_DISASSEMBLE)
user << "<span class='notice'>Now disassembling [src].</span>"
user << "<span class='notice'>You start disassembling [src]...</span>"
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
new frame(src.loc)
@@ -355,7 +355,7 @@
return
if(destroy_type == TBL_DECONSTRUCT)
user << "<span class='notice'>Now deconstructing [src].</span>"
user << "<span class='notice'>You start deconstructing [src]...</span>"
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 40))
for(var/i = 1, i <= framestackamount, i++)
@@ -374,7 +374,7 @@
/obj/structure/table/proc/climb_table(mob/user)
src.add_fingerprint(user)
user.visible_message("<span class='warning'>[user] starts climbing onto [src].</span>", \
"<span class='notice'>You start climbing onto [src].</span>")
"<span class='notice'>You start climbing onto [src]...</span>")
var/climb_time = 20
if(user.restrained()) //Table climbing takes twice as long when restrained.
climb_time *= 2
@@ -454,18 +454,18 @@
var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0, user))
if(src.status == 2)
user << "<span class='notice'>Now weakening the reinforced table</span>"
user << "<span class='notice'>You start weakening the reinforced table...</span>"
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
if (do_after(user, 50))
if(!src || !WT.isOn()) return
user << "<span class='notice'>Table weakened</span>"
user << "<span class='notice'>You weaken the table.</span>"
src.status = 1
else
user << "<span class='notice'>Now strengthening the reinforced table</span>"
user << "<span class='notice'>You start strengthening the reinforced table...</span>"
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
if (do_after(user, 50))
if(!src || !WT.isOn()) return
user << "<span class='notice'>Table strengthened</span>"
user << "<span class='notice'>You strengthen the table.</span>"
src.status = 2
return
..()
@@ -534,7 +534,7 @@
if(isrobot(user))
return
if(!user.drop_item())
user << "<span class='notice'>\The [O] is stuck to your hand, you cannot put it in the rack!</span>"
user << "<span class='warning'>\The [O] is stuck to your hand, you cannot put it in the rack!</span>"
return
if (O.loc != src.loc)
step(O, get_dir(O, src))
@@ -549,7 +549,7 @@
if(isrobot(user))
return
if(!user.drop_item())
user << "<span class='notice'>\The [W] is stuck to your hand, you cannot put it in the rack!</span>"
user << "<span class='warning'>\The [W] is stuck to your hand, you cannot put it in the rack!</span>"
return
W.Move(loc)
return 1
@@ -568,20 +568,20 @@
user.do_attack_animation(src)
playsound(loc, 'sound/items/dodgeball.ogg', 80, 1)
user.visible_message("<span class='warning'>[user] kicks [src].</span>", \
"<span class='warning'>You kick [src].</span>")
"<span class='danger'>You kick [src].</span>")
health -= rand(1,2)
healthcheck()
/obj/structure/rack/attack_alien(mob/living/user)
user.do_attack_animation(src)
visible_message("<span class='danger'>[user] slices [src] apart!</span>")
visible_message("<span class='warning'>[user] slices [src] apart.</span>")
rack_destroy()
/obj/structure/rack/attack_animal(mob/living/simple_animal/user)
if(user.environment_smash)
user.do_attack_animation(src)
visible_message("<span class='danger'>[user] smashes [src] apart!</span>")
visible_message("<span class='warning'>[user] smashes [src] apart.</span>")
rack_destroy()
/obj/structure/rack/attack_tk() // no telehulk sorry
return
@@ -615,7 +615,7 @@
return
/obj/item/weapon/rack_parts/attack_self(mob/user as mob)
user << "<span class='notice'>Constructing rack...</span>"
user << "<span class='notice'>You start constructing rack...</span>"
if (do_after(user, 50))
var/obj/structure/rack/R = new /obj/structure/rack( user.loc )
R.add_fingerprint(user)
@@ -36,7 +36,7 @@
/obj/structure/dispenser/attack_hand(mob/user as mob)
if(!user.IsAdvancedToolUser())
user << "<span class='danger'>You don't have the dexterity to do this!</span>"
user << "<span class='warning'>You don't have the dexterity to do this!</span>"
return 1
user.set_machine(src)
var/dat = "[src]<br><br>"
+3 -3
View File
@@ -30,7 +30,7 @@
W.loc = loc
W.layer = 3.1
pinned_target = W
user << "You slide the target into the stake."
user << "<span class='notice'>You slide the target into the stake.</span>"
return
/obj/structure/target_stake/attack_hand(mob/user as mob)
@@ -44,9 +44,9 @@
if(ishuman(user))
if(!user.get_active_hand())
user.put_in_hands(pinned_target)
user << "You take the target out of the stake."
user << "<span class='notice'>You take the target out of the stake.</span>"
else
pinned_target.loc = get_turf(user)
user << "You take the target out of the stake."
user << "<span class='notice'>You take the target out of the stake.</span>"
pinned_target = null
@@ -54,7 +54,7 @@
T.add_fingerprint(user)
T.loc = src.loc
T.dir = turn(src.dir, -90)
user.visible_message("<span class='notice'>[user] inserts the [R].</span>", "<span class='notice'>You insert the [R].</span>")
user.visible_message("[user] inserts the [R].", "<span class='notice'>You insert the [R].</span>")
qdel(R)
@@ -67,7 +67,7 @@
else if(icon_state == "open")
if(pod.contents.len && user.loc != pod)
user.visible_message("<span class='warning'>[user] starts emptying [pod]'s contents onto the floor!</span>")
user.visible_message("[user] starts emptying [pod]'s contents onto the floor.", "<span class='notice'>You start emptying [pod]'s contents onto the floor...</span>")
if(do_after(user, 10)) //So it doesn't default to close_animation() on fail
if(pod.loc == loc)
for(var/atom/movable/AM in pod)
@@ -96,9 +96,9 @@
if(istype(W, /obj/item/weapon/crowbar))
for(var/obj/structure/transit_tube_pod/pod in loc)
if(pod.contents)
user << "<span class='notice'>Empty the pod first.</span>"
user << "<span class='warning'>Empty the pod first!</span>"
return
user.visible_message("<span class='notice'>[user] removes the [pod].</span>", "<span class='notice'>You remove the [pod].</span>")
user.visible_message("[user] removes the [pod].", "<span class='notice'>You remove the [pod].</span>")
var/obj/structure/c_transit_tube_pod/R = new/obj/structure/c_transit_tube_pod(src.loc)
pod.transfer_fingerprints_to(R)
R.add_fingerprint(user)
@@ -42,12 +42,12 @@ obj/structure/transit_tube/ex_act(severity, target)
if(istype(W, /obj/item/weapon/wrench))
if(copytext(icon_state, 1, 3) != "D-") //decorative diagonals cannot be unwrenched directly
for(var/obj/structure/transit_tube_pod/pod in src.loc)
user << "<span class='notice'>Remove the pod first.</span>"
user << "<span class='warning'>Remove the pod first!</span>"
return
user.visible_message("<span class='warning'>[user] starts to deattach \the [src]!</span>", "<span class='notice'>You start deattaching the [name]...</span>")
user.visible_message("[user] starts to deattach \the [src].", "<span class='notice'>You start to deattach the [name]...</span>")
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 35))
user << "<span class='notice'>You deattach the [name]!</span>"
user << "<span class='notice'>You deattach the [name].</span>"
var/obj/structure/R = new tube_construction(src.loc)
R.icon_state = src.icon_state
src.transfer_fingerprints_to(R)
@@ -83,7 +83,7 @@
src.add_fingerprint(user)
if(do_after(user, 40))
if(!src) return
user << "<span class='notice'>You attach the [name]!</span>"
user << "<span class='notice'>You attach the [name].</span>"
var/obj/structure/transit_tube/R = src.buildtube()
src.transfer_fingerprints_to(R)
qdel(src)
@@ -31,7 +31,7 @@
for(var/obj/structure/transit_tube/station/T in loc)
return
if(src.contents.len)
user.visible_message("<span class='notice'>[user] empties \the [src].</span>", "<span class='notice'>You empty \the [src].</span>")
user.visible_message("[user] empties \the [src].", "<span class='notice'>You empty \the [src].</span>")
src.empty()
return
else
@@ -46,7 +46,7 @@
if(!moving)
user.changeNext_move(CLICK_CD_BREAKOUT)
user.last_special = world.time + CLICK_CD_BREAKOUT
user << "<span class='notice'>You start trying to escape from the pod.</span>"
user << "<span class='notice'>You start trying to escape from the pod...</span>"
if(do_after(user, 600))
user << "<span class='notice'>You manage to open the pod.</span>"
src.empty()
+18 -18
View File
@@ -20,7 +20,7 @@
if(swirlie)
user.changeNext_move(CLICK_CD_MELEE)
playsound(src.loc, "swing_hit", 25, 1)
swirlie.visible_message("<span class='danger'>[user] slams the toilet seat onto [swirlie]'s head!</span>", "<span class='userdanger'>[user] slams the toilet seat onto [swirlie]'s head!</span>", "You hear reverberating porcelain.")
swirlie.visible_message("<span class='danger'>[user] slams the toilet seat onto [swirlie]'s head!</span>", "<span class='userdanger'>[user] slams the toilet seat onto [swirlie]'s head!</span>", "<span class='italics'>You hear reverberating porcelain.</span>")
swirlie.adjustBruteLoss(5)
return
@@ -48,10 +48,10 @@
/obj/structure/toilet/attackby(obj/item/I, mob/living/user, params)
if(istype(I, /obj/item/weapon/crowbar))
user << "<span class='notice'>You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"].</span>"
user << "<span class='notice'>You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]...</span>"
playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1)
if(do_after(user, 30))
user.visible_message("<span class='notice'>[user] [cistern ? "replaces the lid on the cistern" : "lifts the lid off the cistern"]!</span>", "<span class='notice'>You [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]!</span>", "You hear grinding porcelain.")
user.visible_message("[user] [cistern ? "replaces the lid on the cistern" : "lifts the lid off the cistern"]!", "<span class='notice'>You [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]!</span>", "<span class='italics'>You hear grinding porcelain.</span>")
cistern = !cistern
update_icon()
return
@@ -65,14 +65,14 @@
var/mob/living/GM = G.affecting
if(G.state >= GRAB_AGGRESSIVE)
if(GM.loc != get_turf(src))
user << "<span class='notice'>[GM] needs to be on [src].</span>"
user << "<span class='warning'>[GM] needs to be on [src]!</span>"
return
if(!swirlie)
if(open)
GM.visible_message("<span class='danger'>[user] starts to give [GM] a swirlie!</span>", "<span class='userdanger'>[user] starts to give [GM] a swirlie!</span>")
GM.visible_message("<span class='danger'>[user] starts to give [GM] a swirlie!</span>", "<span class='userdanger'>[user] starts to give [GM] a swirlie...</span>")
swirlie = GM
if(do_after(user, 30, 5, 0))
GM.visible_message("<span class='danger'>[user] gives [GM] a swirlie!</span>", "<span class='userdanger'>[user] gives [GM] a swirlie!</span>", "You hear a toilet flushing.")
GM.visible_message("<span class='danger'>[user] gives [GM] a swirlie!</span>", "<span class='userdanger'>[user] gives [GM] a swirlie!</span>", "<span class='italics'>You hear a toilet flushing.</span>")
if(iscarbon(GM))
var/mob/living/carbon/C = GM
if(!C.internal)
@@ -85,17 +85,17 @@
GM.visible_message("<span class='danger'>[user] slams [GM.name] into [src]!</span>", "<span class='userdanger'>[user] slams [GM.name] into [src]!</span>")
GM.adjustBruteLoss(5)
else
user << "<span class='notice'>You need a tighter grip.</span>"
user << "<span class='warning'>You need a tighter grip!</span>"
if(cistern)
if(I.w_class > 3)
user << "<span class='notice'>[I] does not fit.</span>"
user << "<span class='warning'>[I] does not fit!</span>"
return
if(w_items + I.w_class > 5)
user << "<span class='notice'>The cistern is full.</span>"
user << "<span class='warning'>The cistern is full!</span>"
return
if(!user.drop_item())
user << "<span class='notice'>\The [I] is stuck to your hand, you cannot put it in the cistern!</span>"
user << "<span class='warning'>\The [I] is stuck to your hand, you cannot put it in the cistern!</span>"
return
I.loc = src
w_items += I.w_class
@@ -127,7 +127,7 @@
user.visible_message("<span class='danger'>[user] slams [GM] into [src]!</span>", "<span class='notice'>You slam [GM] into [src]!</span>")
GM.adjustBruteLoss(8)
else
user << "<span class='notice'>You need a tighter grip.</span>"
user << "<span class='warning'>You need a tighter grip!</span>"
/obj/machinery/shower
@@ -171,7 +171,7 @@
if(I.type == /obj/item/device/analyzer)
user << "<span class='notice'>The water temperature seems to be [watertemp].</span>"
if(istype(I, /obj/item/weapon/wrench))
user << "<span class='notice'>You begin to adjust the temperature valve with \the [I].</span>"
user << "<span class='notice'>You begin to adjust the temperature valve with \the [I]...</span>"
if(do_after(user, 50))
switch(watertemp)
if("normal")
@@ -236,7 +236,7 @@
var/mob/living/L = O
L.ExtinguishMob()
L.fire_stacks = -20 //Douse ourselves with water to avoid fire more easily
L << "<span class='warning'>You've been drenched in water!</span>"
L << "<span class='warning'>You're drenched in water!</span>"
if(iscarbon(O))
var/mob/living/carbon/M = O
if(M.r_hand)
@@ -363,7 +363,7 @@
user << "<span class='notice'>Someone's already washing here.</span>"
return
user << "<span class='notice'>You start washing your hands.</span>"
user << "<span class='notice'>You start washing your hands...</span>"
busy = 1
sleep(40)
@@ -372,12 +372,12 @@
if(!Adjacent(user)) return //Person has moved away from the sink
user.clean_blood()
user.visible_message("<span class='notice'>[user] washes their hands in [src].</span>")
user.visible_message("[user] washes their hands in [src].", "<span class='notice'>You wash your hands in [src].</span>")
/obj/structure/sink/attackby(obj/item/O, mob/user, params)
if(busy)
user << "<span class='notice'>Someone's already washing here.</span>"
user << "<span class='warning'>Someone's already washing here!</span>"
return
if(istype(O, /obj/item/weapon/reagent_containers))
@@ -410,7 +410,7 @@
var/obj/item/I = O
if(!I || !istype(I,/obj/item)) return
usr << "<span class='notice'>You start washing [I].</span>"
usr << "<span class='notice'>You start washing [I]...</span>"
busy = 1
sleep(40)
@@ -422,7 +422,7 @@
O.clean_blood()
user.visible_message( \
"<span class='notice'>[user] washes [I] using [src].</span>", \
"[user] washes [I] using [src].", \
"<span class='notice'>You wash [I] using [src].</span>")
@@ -76,12 +76,12 @@ obj/structure/windoor_assembly/Destroy()
if(istype(W, /obj/item/weapon/weldingtool) && !anchored )
var/obj/item/weapon/weldingtool/WT = W
if (WT.remove_fuel(0,user))
user.visible_message("<span class='warning'>[user] dissassembles the windoor assembly.</span>", "<span class='notice'>You start to dissassemble the windoor assembly.</span>")
user.visible_message("[user] disassembles the windoor assembly.", "<span class='notice'>You start to disassemble the windoor assembly...</span>")
playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
if(do_after(user, 40))
if(!src || !WT.isOn()) return
user << "<span class='notice'>You dissasembled the windoor assembly!</span>"
user << "<span class='notice'>You disassemble the windoor assembly.</span>"
var/obj/item/stack/sheet/rglass/RG = new (get_turf(src), 5)
RG.add_fingerprint(user)
if(secure)
@@ -95,19 +95,19 @@ obj/structure/windoor_assembly/Destroy()
if(istype(W, /obj/item/weapon/wrench) && !anchored)
for(var/obj/machinery/door/window/WD in src.loc)
if(WD.dir == src.dir)
user << "<span class='warning'>There is already a windoor in that location.</span>"
user << "<span class='warning'>There is already a windoor in that location!</span>"
return
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
user.visible_message("[user] secures the windoor assembly to the floor.", "You start to secure the windoor assembly to the floor.")
user.visible_message("[user] secures the windoor assembly to the floor.", "<span class='notice'>You start to secure the windoor assembly to the floor...</span>")
if(do_after(user, 40))
if(!src || src.anchored)
return
for(var/obj/machinery/door/window/WD in src.loc)
if(WD.dir == src.dir)
user << "<span class='warning'>There is already a windoor in that location.</span>"
user << "<span class='warning'>There is already a windoor in that location!</span>"
return
user << "<span class='notice'>You've secured the windoor assembly!</span>"
user << "<span class='notice'>You secure the windoor assembly.</span>"
src.anchored = 1
if(src.secure)
src.name = "secure anchored windoor assembly"
@@ -117,12 +117,12 @@ obj/structure/windoor_assembly/Destroy()
//Unwrenching an unsecure assembly un-anchors it. Step 4 undone
else if(istype(W, /obj/item/weapon/wrench) && anchored)
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
user.visible_message("[user] unsecures the windoor assembly to the floor.", "You start to unsecure the windoor assembly to the floor.")
user.visible_message("[user] unsecures the windoor assembly to the floor.", "<span class='notice'>You start to unsecure the windoor assembly to the floor...</span>")
if(do_after(user, 40))
if(!src || !src.anchored)
return
user << "<span class='notice'>You've unsecured the windoor assembly!</span>"
user << "<span class='notice'>You unsecure the windoor assembly.</span>"
src.anchored = 0
if(src.secure)
src.name = "secure windoor assembly"
@@ -133,9 +133,9 @@ obj/structure/windoor_assembly/Destroy()
else if(istype(W, /obj/item/stack/sheet/plasteel) && !secure)
var/obj/item/stack/sheet/plasteel/P = W
if(P.amount < 2)
user << "<span class='danger'>You need more plasteel to do this.</span>"
user << "<span class='warning'>You need more plasteel to do this!</span>"
return
user << "<span class='notice'>You start to reinforce the windoor with plasteel.</span>"
user << "<span class='notice'>You start to reinforce the windoor with plasteel...</span>"
if(do_after(user,40))
if(!src || secure)
@@ -151,14 +151,14 @@ obj/structure/windoor_assembly/Destroy()
//Adding cable to the assembly. Step 5 complete.
else if(istype(W, /obj/item/stack/cable_coil) && anchored)
user.visible_message("[user] wires the windoor assembly.", "You start to wire the windoor assembly.")
user.visible_message("[user] wires the windoor assembly.", "<span class='notice'>You start to wire the windoor assembly...</span>")
if(do_after(user, 40))
if(!src || !src.anchored || src.state != "01")
return
var/obj/item/stack/cable_coil/CC = W
CC.use(1)
user << "<span class='notice'>You wire the windoor!</span>"
user << "<span class='notice'>You wire the windoor.</span>"
src.state = "02"
if(src.secure)
src.name = "secure wired windoor assembly"
@@ -172,13 +172,13 @@ obj/structure/windoor_assembly/Destroy()
//Removing wire from the assembly. Step 5 undone.
if(istype(W, /obj/item/weapon/wirecutters))
playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
user.visible_message("[user] cuts the wires from the airlock assembly.", "You start to cut the wires from airlock assembly.")
user.visible_message("[user] cuts the wires from the airlock assembly.", "<span class='notice'>You start to cut the wires from airlock assembly...</span>")
if(do_after(user, 40))
if(!src || src.state != "02")
return
user << "<span class='notice'>You cut the windoor wires!</span>"
user << "<span class='notice'>You cut the windoor wires.</span>"
new/obj/item/stack/cable_coil(get_turf(user), 1)
src.state = "01"
if(src.secure)
@@ -189,7 +189,7 @@ obj/structure/windoor_assembly/Destroy()
//Adding airlock electronics for access. Step 6 complete.
else if(istype(W, /obj/item/weapon/airlock_electronics))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly.")
user.visible_message("[user] installs the electronics into the airlock assembly.", "<span class='notice'>You start to install electronics into the airlock assembly...</span>")
user.drop_item()
W.loc = src
@@ -197,7 +197,7 @@ obj/structure/windoor_assembly/Destroy()
if(!src || src.electronics)
W.loc = src.loc
return
user << "<span class='notice'>You've installed the airlock electronics!</span>"
user << "<span class='notice'>You install the airlock electronics.</span>"
src.name = "near finished windoor assembly"
src.electronics = W
else
@@ -209,12 +209,12 @@ obj/structure/windoor_assembly/Destroy()
return
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to uninstall electronics from the airlock assembly.")
user.visible_message("[user] removes the electronics from the airlock assembly.", "<span class='notice'>You start to uninstall electronics from the airlock assembly...</span>")
if(do_after(user, 40))
if(!src || !electronics)
return
user << "<span class='notice'>You've removed the airlock electronics!</span>"
user << "<span class='notice'>You remove the airlock electronics.</span>"
src.name = "wired windoor assembly"
var/obj/item/weapon/airlock_electronics/ae
ae = electronics
@@ -235,18 +235,18 @@ obj/structure/windoor_assembly/Destroy()
//Crowbar to complete the assembly, Step 7 complete.
else if(istype(W, /obj/item/weapon/crowbar))
if(!src.electronics)
usr << "<span class='danger'>The assembly is missing electronics.</span>"
usr << "<span class='warning'>The assembly is missing electronics!</span>"
return
usr << browse(null, "window=windoor_access")
playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
user.visible_message("[user] pries the windoor into the frame.", "You start prying the windoor into the frame.")
user.visible_message("[user] pries the windoor into the frame.", "<span class='notice'>You start prying the windoor into the frame...</span>")
if(do_after(user, 40))
if(src.loc && src.electronics)
density = 1 //Shouldn't matter but just incase
user << "<span class='notice'>You finish the windoor!</span>"
user << "<span class='notice'>You finish the windoor.</span>"
if(secure)
var/obj/machinery/door/window/brigdoor/windoor = new /obj/machinery/door/window/brigdoor(src.loc)
@@ -306,7 +306,7 @@ obj/structure/windoor_assembly/Destroy()
if(usr.stat || !usr.canmove || usr.restrained())
return
if (src.anchored)
usr << "It is fastened to the floor; therefore, you can't rotate it!"
usr << "<span class='warning'>It is fastened to the floor; therefore, you can't rotate it!</span>"
return 0
//if(src.state != "01")
//update_nearby_tiles(need_rebuild=1) //Compel updates before
@@ -329,11 +329,11 @@ obj/structure/windoor_assembly/Destroy()
return
if(src.facing == "l")
usr << "The windoor will now slide to the right."
usr << "<span class='notice'>The windoor will now slide to the right.</span>"
src.facing = "r"
else
src.facing = "l"
usr << "The windoor will now slide to the left."
usr << "<span class='notice'>The windoor will now slide to the left.</span>"
update_icon()
return
+14 -14
View File
@@ -136,7 +136,7 @@
if(!can_be_reached(user))
return
user.changeNext_move(CLICK_CD_MELEE)
user.visible_message("<span class='notice'>[user] knocks on [src].</span>")
user.visible_message("[user] knocks on [src].")
add_fingerprint(user)
playsound(loc, 'sound/effects/Glassknock.ogg', 50, 1)
@@ -191,51 +191,51 @@
if(istype(I, /obj/item/weapon/screwdriver))
playsound(loc, 'sound/items/Screwdriver.ogg', 75, 1)
if(reinf && (state == 2 || state == 1))
user << (state == 2 ? "<span class='notice'>You begin to unscrew the window from the frame.</span>" : "<span class='notice'>You begin to screw the window to the frame.</span>")
user << (state == 2 ? "<span class='notice'>You begin to unscrew the window from the frame...</span>" : "<span class='notice'>You begin to screw the window to the frame...</span>")
else if(reinf && state == 0)
user << (anchored ? "<span class='notice'>You begin to unscrew the frame from the floor.</span>" : "<span class='notice'>You begin to screw the frame to the floor.</span>")
user << (anchored ? "<span class='notice'>You begin to unscrew the frame from the floor...</span>" : "<span class='notice'>You begin to screw the frame to the floor...</span>")
else if(!reinf)
user << (anchored ? "<span class='notice'>You begin to unscrew the window from the floor.</span>" : "<span class='notice'>You begin to screw the window to the floor.</span>")
user << (anchored ? "<span class='notice'>You begin to unscrew the window from the floor...</span>" : "<span class='notice'>You begin to screw the window to the floor...</span>")
if(do_after(user, 40))
if(reinf && (state == 1 || state == 2))
//If state was unfastened, fasten it, else do the reverse
state = (state == 1 ? 2 : 1)
user << (state == 1 ? "<span class='notice'>You have unfastened the window from the frame.</span>" : "<span class='notice'>You have fastened the window to the frame.</span>")
user << (state == 1 ? "<span class='notice'>You unfasten the window from the frame.</span>" : "<span class='notice'>You fasten the window to the frame.</span>")
else if(reinf && state == 0)
anchored = !anchored
update_nearby_icons()
user << (anchored ? "<span class='notice'>You have fastened the frame to the floor.</span>" : "<span class='notice'>You have unfastened the frame from the floor.</span>")
user << (anchored ? "<span class='notice'>You fasten the frame to the floor.</span>" : "<span class='notice'>You unfasten the frame from the floor.</span>")
else if(!reinf)
anchored = !anchored
update_nearby_icons()
user << (anchored ? "<span class='notice'>You have fastened the window to the floor.</span>" : "<span class='notice'>You have unfastened the window.</span>")
user << (anchored ? "<span class='notice'>You fasten the window to the floor.</span>" : "<span class='notice'>You unfasten the window.</span>")
else if (istype(I, /obj/item/weapon/crowbar) && reinf && (state == 0 || state == 1))
user << (state == 0 ? "<span class='notice'>You begin to lever the window into the frame.</span>" : "<span class='notice'>You begin to lever the window out of the frame.</span>")
user << (state == 0 ? "<span class='notice'>You begin to lever the window into the frame...</span>" : "<span class='notice'>You begin to lever the window out of the frame...</span>")
playsound(loc, 'sound/items/Crowbar.ogg', 75, 1)
if(do_after(user, 40))
//If state was out of frame, put into frame, else do the reverse
state = (state == 0 ? 1 : 0)
user << (state == 1 ? "<span class='notice'>You have pried the window into the frame.</span>" : "<span class='notice'>You have pried the window out of the frame.</span>")
user << (state == 1 ? "<span class='notice'>You pry the window into the frame.</span>" : "<span class='notice'>You pry the window out of the frame.</span>")
else if(istype(I, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = I
if(user.a_intent == "help") //so you can still break windows with welding tools
if(health < maxhealth)
if(WT.remove_fuel(0,user))
user << "<span class='notice'>You begin repairing [src].</span>"
user << "<span class='notice'>You begin repairing [src]...</span>"
playsound(loc, 'sound/items/Welder.ogg', 40, 1)
if(do_after(user, 40))
health = maxhealth
playsound(loc, 'sound/items/Welder2.ogg', 50, 1)
else
user << "<span class='notice'>[src] is already in good condition.</span>"
user << "<span class='warning'>[src] is already in good condition!</span>"
update_nearby_icons()
else if(istype(I, /obj/item/weapon/wrench) && !anchored)
playsound(loc, 'sound/items/Ratchet.ogg', 75, 1)
user << "<span class='notice'> You begin to disassemble [src].</span>"
user << "<span class='notice'> You begin to disassemble [src]...</span>"
if(do_after(user, 40))
if(disassembled)
return //Prevents multiple deconstruction attempts
@@ -311,7 +311,7 @@
return
if(anchored)
usr << "It is fastened to the floor therefore you can't rotate it!"
usr << "<span class='warning'>It is fastened to the floor therefore you can't rotate it!</span>"
return 0
dir = turn(dir, 90)
@@ -331,7 +331,7 @@
return
if(anchored)
usr << "It is fastened to the floor therefore you can't rotate it!"
usr << "<span class='warning'>It is fastened to the floor therefore you can't rotate it!</span>"
return 0
dir = turn(dir, 270)