CHANGELOG && Dangercon Update:

•Fireaxes, extinguishers and fireaxe closets placed around the station. Functionality described in changelog. Airlock modifying is because you can use the fireaxe to crank open doors.
•Piano? Being able to be smashed? What are you talking about?
•The two handed system is purely experimental and subject to much cleaning up/proc making to enable it for other objects as well.
The mob modifications is because of the two handed system making it unable for you to switch hands.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1543 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
polyxenitopalidou@gmail.com
2011-05-07 16:39:13 +00:00
parent d062e68f4b
commit e55dd9c2f6
19 changed files with 9019 additions and 8531 deletions

View File

@@ -1066,7 +1066,7 @@ proc/move_mining_shuttle()
if(1)
usr << "The satchel now picks up all ore in a tile at once."
if(0)
usr << "The satchel now picks up ore one at a time."
usr << "The satchel now picks up one ore at a time."
/**********************Ore box**************************/
@@ -2634,11 +2634,11 @@ var/list/datum/material_recipe/MATERIAL_RECIPES = list(
..()
pixel_x = rand(0,4)-4
pixel_y = rand(0,4)-4
recipes = gold_recipes
/* recipes = gold_recipes //Commenting out until there's a proper sprite. The golden plaque is supposed to be a special item dedicated to a really good player. -Agouri
var/global/list/datum/stack_recipe/gold_recipes = list ( \
var/global/list/datum/stack_recipe/gold_recipes = list ( \
new/datum/stack_recipe("Plaque", /obj/item/weapon/plaque_assembly, 2), \
)
)*/
/obj/item/stack/sheet/silver

View File

@@ -275,7 +275,7 @@
opacity = 0
density = 0
/obj/item/weapon/plaque_assembly
/*/obj/item/weapon/plaque_assembly //commenting this out until there's a better rework
desc = "Put this on a wall and engrave an epitaph"
name = "Plaque Assembly"
icon = 'decals.dmi'
@@ -288,7 +288,7 @@
var/obj/sign/goldenplaque/gp = new/obj/sign/goldenplaque(A)
gp.name = epitaph
gp.layer = 2.9
del(src)
del(src)*/
/obj/sign/maltesefalcon1 //The sign is 64x32, so it needs two tiles. ;3
desc = "The Maltese Falcon, Space Bar and Grill"
@@ -343,6 +343,8 @@
var/burning = null
var/hitsound = null
var/w_class = 3.0
var/wielded = 0
var/twohanded = 0 ///Two handed and wielded off by default, nyoro~n -Agouri
flags = FPRINT | TABLEPASS
pressure_resistance = 50
var/obj/item/master = null

View File

@@ -36,6 +36,215 @@
icon_closed = "firecloset"
icon_opened = "fireclosetopen"
/obj/closet/hydrant //wall mounted fire closet
desc = "A wall mounted closet which comes with supplies to fight fire."
name = "Fire Closet"
icon_state = "hydrant"
icon_closed = "hydrant"
icon_opened = "hydrant_open"
/obj/closet/fireaxecabinet
name = "Fire Axe Cabinet"
desc = "There is small label that reads \"For Emergency use only\" along with details for safe use of the axe. As if."
var/obj/item/weapon/fireaxe/FIREAXE = new/obj/item/weapon/fireaxe
icon_state = "fireaxe1000"
icon_closed = "fireaxe1000"
icon_opened = "fireaxe1100"
anchored = 1
var/localopened = 0 //Setting this to keep it from behaviouring like a normal closet and obstructing movement in the map. -Agouri
opened = 1
var/hitstaken = 0
var/locked = 1
var/smashed = 0
attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri
//..() //That's very useful, Erro
var/hasaxe = 0 //gonna come in handy later~
if(FIREAXE)
hasaxe = 1
if (isrobot(usr) || src.locked)
if(istype(O, /obj/item/device/multitool))
user << "\red Resetting circuitry..."
playsound(user, 'lockreset.wav', 50, 1)
sleep(50) // Sleeping time~
src.locked = 0
user << "\blue You disable the locking modules."
update_icon()
return
if(istype(O, /obj/item/weapon))
var/obj/item/weapon/W = O
if(src.smashed)
return
else
playsound(user, 'Glasshit.ogg', 100, 1) //We don't want this playing every time
if(W.force < 15)
user << "\blue The cabinet's protective glass glances off the hit."
else
src.hitstaken++
if(src.hitstaken == 4)
playsound(user, 'Glassbr3.ogg', 100, 1) //Break cabinet, receive goodies. Cabinet's fucked for life after that.
src.smashed = 1
src.locked = 0
src.localopened = 1
update_icon()
return
if (istype(O, /obj/item/weapon/fireaxe) && src.localopened)
if(!FIREAXE)
if(O.wielded)
user << "\red Unwield the axe first."
return
FIREAXE = O
user.drop_item(O)
src.contents += O
user << "\blue You place the fire axe back in the [src.name]."
update_icon()
else
if(src.smashed)
return
else
localopened = !localopened
if(localopened)
icon_state = text("fireaxe[][][][]opening",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
else
icon_state = text("fireaxe[][][][]closing",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
else
if(src.smashed)
return
if(istype(O, /obj/item/device/multitool))
if(localopened)
localopened = 0
icon_state = text("fireaxe[][][][]closing",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
return
else
user << "\red Resetting circuitry..."
sleep(50)
src.locked = 1
user << "\blue You re-enable the locking modules."
playsound(user, 'lockenable.wav', 50, 1)
return
else
localopened = !localopened
if(localopened)
icon_state = text("fireaxe[][][][]opening",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
else
icon_state = text("fireaxe[][][][]closing",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
attack_hand(mob/user as mob)
var/hasaxe = 0
if(FIREAXE)
hasaxe = 1
if(src.locked)
user <<"\red The cabinet won't budge!"
return
if(localopened)
if(FIREAXE)
user.put_in_hand(FIREAXE)
FIREAXE = null
user << "\blue You take the fire axe from the [name]."
src.add_fingerprint(user)
update_icon()
else
if(src.smashed)
return
else
localopened = !localopened
if(localopened)
src.icon_state = text("fireaxe[][][][]opening",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
else
src.icon_state = text("fireaxe[][][][]closing",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
else
localopened = !localopened //I'm pretty sure we don't need an if(src.smashed) in here. In case I'm wrong and it fucks up teh cabinet, **MARKER**. -Agouri
if(localopened)
src.icon_state = text("fireaxe[][][][]opening",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
else
src.icon_state = text("fireaxe[][][][]closing",hasaxe,src.localopened,src.hitstaken,src.smashed)
spawn(10) update_icon()
verb/toggle_openness() //nice name, huh? HUH?! -Erro //YEAH -Agouri
set name = "Open/Close"
set category = "Object"
if (isrobot(usr) || src.locked || src.smashed)
if(src.locked)
usr << "\red The cabinet won't budge!"
else if(src.smashed)
usr << "\blue The protective glass is broken!"
return
localopened = !localopened
update_icon()
verb/remove_fire_axe()
set name = "Remove Fire Axe"
set category = "Object"
if (isrobot(usr))
return
if (localopened)
if(FIREAXE)
usr.put_in_hand(FIREAXE)
FIREAXE = null
usr << "\blue You take the Fire axe from the [name]."
else
usr << "\blue The [src.name] is empty."
else
usr << "\blue The [src.name] is closed."
update_icon()
attack_paw(mob/user as mob)
attack_hand(user)
return
attack_ai(mob/user as mob)
if(src.smashed)
user << "\red The security of the cabinet is compromised."
return
else
locked = !locked
if(locked)
user << "\red Cabinet locked."
else
user << "\blue Cabinet unlocked."
return
update_icon() //Template: fireaxe[has fireaxe][is opened][hits taken][is smashed]. If you want the opening or closing animations, add "opening" or "closing" right after the numbers
var/hasaxe = 0
if(FIREAXE)
hasaxe = 1
icon_state = text("fireaxe[][][][]",hasaxe,src.localopened,src.hitstaken,src.smashed)
open()
return
close()
return
/obj/closet/toolcloset
desc = "A bulky (yet mobile) closet. Contains tools."
name = "Tool Closet"
icon_state = "toolcloset"
icon_closed = "toolcloset"
icon_opened = "toolclosetopen"
/obj/closet/jcloset
desc = "A bulky (yet mobile) closet. Comes with janitor's clothes and biohazard gear."
name = "Custodial Closet"
@@ -112,8 +321,97 @@
// Inserting the gimmick clothing stuff here for generic items, IE Tacticool stuff
/obj/closet/extinguisher
name = "Extinguisher closet"
var/obj/item/weapon/extinguisher/EXTINGUISHER = new/obj/item/weapon/extinguisher
icon_state = "extinguisher10"
icon_opened = "extinguisher11"
icon_closed = "extinguisher10"
opened = 1
var/localopened = 1
desc = "Sure was nice of CentCom to install these everywhere."
anchored = 1
open()
return
close()
return
attackby(var/obj/item/O as obj, var/mob/user as mob)
//..() don't want it to behave like a normal closet.
if (isrobot(usr))
return
if (istype(O, /obj/item/weapon/extinguisher))
if(!EXTINGUISHER)
user.drop_item(O)
src.contents += O
EXTINGUISHER = O
user << "\blue You place the extinguisher in the [src.name]."
else
localopened = !localopened
else
localopened = !localopened
update_icon()
attack_hand(mob/user as mob)
if(localopened)
if(EXTINGUISHER)
user.put_in_hand(EXTINGUISHER)
EXTINGUISHER = null
user << "\blue You take the extinguisher from the [name]."
else
localopened = !localopened
else
localopened = !localopened
update_icon()
verb/toggle_openness() //nice name, huh? HUH?!
set name = "Open/Close"
set category = "Object"
if (isrobot(usr))
return
localopened = !localopened
update_icon()
verb/remove_extinguisher()
set name = "Remove Extinguisher"
set category = "Object"
if (isrobot(usr))
return
if (localopened)
if(EXTINGUISHER)
usr.put_in_hand(EXTINGUISHER)
EXTINGUISHER = null
usr << "\blue You take the extinguisher from the [name]."
else
usr << "\blue The [name] is empty."
else
usr << "\blue The [name] is closed."
update_icon()
attack_paw(mob/user as mob)
attack_hand(user)
return
attack_ai(mob/user as mob)
return
update_icon()
var/hasextinguisher = 0
if(EXTINGUISHER)
hasextinguisher = 1
icon_state = text("extinguisher[][]",hasextinguisher,src.localopened)
/obj/closet/gimmick
desc = "Administrative Supply Closet"
name = "Administrative Supply Closet"
icon_state = "syndicate1"
icon_closed = "syndicate1"
icon_opened = "syndicate1open"
@@ -121,14 +419,14 @@
anchored = 0
/obj/closet/gimmick/russian
desc = "Russian Surplus"
name = "Russian Surplus"
icon_state = "syndicate1"
icon_closed = "syndicate1"
icon_opened = "syndicate1open"
desc = "Russian Surplus Closet"
/obj/closet/gimmick/tacticool
desc = "Tacticool Gear"
name = "Tacticool Gear"
icon_state = "syndicate1"
icon_closed = "syndicate1"
icon_opened = "syndicate1open"
@@ -141,7 +439,7 @@
icon_state = "syndicate"
icon_closed = "syndicate"
icon_opened = "syndicateopen"
desc = "Thunderdome closet."
name = "Thunderdome closet."
anchored = 1
/obj/closet/thunderdome/tdred
@@ -149,14 +447,14 @@
icon_state = "syndicate"
icon_closed = "syndicate"
icon_opened = "syndicateopen"
desc = "Thunderdome closet."
name = "Thunderdome closet."
/obj/closet/thunderdome/tdgreen
desc = "Everything you need!"
icon_state = "syndicate1"
icon_closed = "syndicate1"
icon_opened = "syndicate1open"
desc = "Thunderdome closet."
name = "Thunderdome closet."
/obj/closet/malf/suits
desc = "Gear preparations closet."

View File

@@ -2,6 +2,12 @@
name = "weapon"
icon = 'weapons.dmi'
/obj/item/weapon/offhand
name = "Offhand"
var/linked_weapon_name = ""
w_class = 5.0
icon_state = "offhand"
/obj/item/weapon/shield
name = "shield"
@@ -490,6 +496,15 @@
icon = 'items.dmi'
icon_state = "red_crowbar"
/obj/item/weapon/fireaxe // DEM AXES MAN, marker -Agouri
icon_state = "fireaxe0"
name = "Fire axe"
desc = "Truly, the tool of a madman. Who would possibly think to fight fire with an axe?"
force = 5
w_class = 4.0
twohanded = 1
/obj/item/weapon/disk
name = "disk"
icon = 'items.dmi'

View File

@@ -867,8 +867,13 @@ About the new airlock wires panel:
return src.attack_hand(user)
else if (istype(C, /obj/item/device/radio/signaler))
return src.attack_hand(user)
else if (istype(C, /obj/item/weapon/crowbar))
if ((src.density) && ( src.welded ) && !( src.operating ) && src.p_open && (!src.arePowerSystemsOn() || (stat & NOPOWER)) && !src.locked)
else if (istype(C, /obj/item/weapon/crowbar) || istype(C, /obj/item/weapon/fireaxe) )
var/beingcrowbarred = null
if(istype(C, /obj/item/weapon/crowbar) )
beingcrowbarred = 1 //derp, Agouri
else
beingcrowbarred = 0
if ( ((src.density) && ( src.welded ) && !( src.operating ) && src.p_open && (!src.arePowerSystemsOn() || (stat & NOPOWER)) && !src.locked) && beingcrowbarred == 1 )
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to remove electronics into the airlock assembly.")
if(do_after(user,40))
@@ -898,32 +903,70 @@ About the new airlock wires panel:
else if (src.locked)
user << "\blue The airlock's bolts prevent it from being pried open."
if ((src.density) && (!( src.welded ) && !( src.operating ) && ((!src.arePowerSystemsOn()) || (stat & NOPOWER)) && !( src.locked )))
spawn( 0 )
src.operating = 1
animate("opening")
sleep(15)
if(beingcrowbarred == 0) //being fireaxe'd
var/obj/item/weapon/fireaxe/F = C
if(F.wielded == 1)
spawn( 0 )
src.operating = 1
animate("opening")
src.density = 0
update_icon()
sleep(15)
if (!istype(src, /obj/machinery/door/airlock/glass))
src.sd_SetOpacity(0)
src.operating = 0
src.density = 0
update_icon()
if (!istype(src, /obj/machinery/door/airlock/glass))
src.sd_SetOpacity(0)
src.operating = 0
return
user << "\red You need to be wielding the Fire axe to do that."
return
else
if ((!src.density) && (!( src.welded ) && !( src.operating ) && !( src.locked )))
else
spawn( 0 )
src.operating = 1
animate("closing")
animate("opening")
src.density = 1
sleep(15)
src.density = 0
update_icon()
if ((src.visible) && (!istype(src, /obj/machinery/door/airlock/glass)))
src.sd_SetOpacity(1)
if (!istype(src, /obj/machinery/door/airlock/glass))
src.sd_SetOpacity(0)
src.operating = 0
return
else
if ((!src.density) && (!( src.welded ) && !( src.operating ) && !( src.locked )))
if(beingcrowbarred == 0)
var/obj/item/weapon/fireaxe/F = C
if(F.wielded == 1)
spawn( 0 )
src.operating = 1
animate("closing")
src.density = 1
sleep(15)
update_icon()
if ((src.visible) && (!istype(src, /obj/machinery/door/airlock/glass)))
src.sd_SetOpacity(1)
src.operating = 0
else
user << "\red You need to be wielding the Fire axe to do that."
else
spawn( 0 )
src.operating = 1
animate("closing")
src.density = 1
sleep(15)
update_icon()
if ((src.visible) && (!istype(src, /obj/machinery/door/airlock/glass)))
src.sd_SetOpacity(1)
src.operating = 0
else
..()

View File

@@ -25,7 +25,7 @@
user << text("\red You [blocked?"welded":"unwelded"] the [src]")
update_icon()
return
if (istype(C, /obj/item/weapon/crowbar))
if (istype(C, /obj/item/weapon/crowbar) || (istype(C,/obj/item/weapon/fireaxe) && C.wielded == 1) )
if (!src.blocked && !src.operating)
if(src.density)
spawn( 0 )

View File

@@ -6,7 +6,7 @@
/obj/machinery/door/poddoor/attackby(obj/item/weapon/C as obj, mob/user as mob)
src.add_fingerprint(user)
if (!( istype(C, /obj/item/weapon/crowbar) ))
if (!( istype(C, /obj/item/weapon/crowbar || istype(C, /obj/item/weapon/fireaxe) && C.wielded == 1) ))
return
if ((src.density && (stat & NOPOWER) && !( src.operating )))
spawn( 0 )

View File

@@ -4,12 +4,15 @@ datum/song
var/list/lines = list()
/obj/device/piano
name = "space piano"
icon = 'musician.dmi'
icon_state = "piano"
anchored = 1
density = 1
var/hitstaken = 0
var/broken = 0
var
datum/song/song
playing = 0
@@ -52,25 +55,28 @@ datum/song
src.playing = 0
attack_hand(var/mob/user as mob)
usr.machine = src
//var/dat = "<HEAD><TITLE>Piano</TITLE></HEAD><BODY>\n <META HTTP-EQUIV='Refresh' CONTENT='10'>"
var/dat
var/calctempo = (10/tempo)*60
dat += "Tempo : [calctempo] BPM (<A href='?src=\ref[src];lowertempo=1'>-</A>/<A href='?src=\ref[src];raisetempo=1'>+</A>)"
dat += "<A href='?src=\ref[src];newsong=1'>(Start a New Song)</A><BR>"
if(src.song)
var/linecount = 0
for(var/line in song.lines)
linecount += 1
dat += "Bar [linecount]: [line]<BR>"//<A href='?src=\ref[src];deletebar=[linecount]'>(Delete bar)</A><BR>" // TODO: Replace delimeters with spaces, clean up display
dat += "<A href='?src=\ref[src];newbar=1'>(Write a new bar)</A><BR>"
if(src.song.lines.len > 0 && !(src.playing))
dat += "<A href='?src=\ref[src];play=1'>(Play song)</A><BR>"
if(src.playing)
dat += "<A href='?src=\ref[src];stop=1'>(Stop playing)</A><BR>"
dat += "<I><BR><BR><BR>Bars are a series of notes separated by asterisks (*)<BR><BR>Example: A*B*C*D*E*F*G will play a scale<BR>Chords can be played simply by listing more than one note before a pause : AB*CD*EF*GA<BR><BR>Bars may be up to 30 characters (including pauses)<BR>A song may only contain up to 10 bars<BR></I>"
user << browse(dat, "window=piano")
onclose(user, "piano")
if(src.broken)
return
else
usr.machine = src
//var/dat = "<HEAD><TITLE>Piano</TITLE></HEAD><BODY>\n <META HTTP-EQUIV='Refresh' CONTENT='10'>"
var/dat
var/calctempo = (10/tempo)*60
dat += "Tempo : [calctempo] BPM (<A href='?src=\ref[src];lowertempo=1'>-</A>/<A href='?src=\ref[src];raisetempo=1'>+</A>)"
dat += "<A href='?src=\ref[src];newsong=1'>(Start a New Song)</A><BR>"
if(src.song)
var/linecount = 0
for(var/line in song.lines)
linecount += 1
dat += "Bar [linecount]: [line]<BR>"//<A href='?src=\ref[src];deletebar=[linecount]'>(Delete bar)</A><BR>" // TODO: Replace delimeters with spaces, clean up display
dat += "<A href='?src=\ref[src];newbar=1'>(Write a new bar)</A><BR>"
if(src.song.lines.len > 0 && !(src.playing))
dat += "<A href='?src=\ref[src];play=1'>(Play song)</A><BR>"
if(src.playing)
dat += "<A href='?src=\ref[src];stop=1'>(Stop playing)</A><BR>"
dat += "<I><BR><BR><BR>Bars are a series of notes separated by asterisks (*)<BR><BR>Example: A*B*C*D*E*F*G will play a scale<BR>Chords can be played simply by listing more than one note before a pause : AB*CD*EF*GA<BR><BR>Bars may be up to 30 characters (including pauses)<BR>A song may only contain up to 10 bars<BR></I>"
user << browse(dat, "window=piano")
onclose(user, "piano")
Topic(href, href_list)
if(href_list["lowertempo"])
@@ -108,6 +114,20 @@ datum/song
src.updateUsrDialog()
return
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/fireaxe) && W.wielded == 1)
playsound(src.loc, 'woodhit.ogg', 50, 0)
for(var/mob/O in viewers(user, null))
O.show_message(text("\red <B> [] forcefully slams the [] with the Fire axe!</B>", user, src), 1)
if(!src.broken) //we don't want an already damaged piano to be more damageable
src.hitstaken++
if(prob(src.hitstaken*8))
src.broken = 1
src.icon_state = "pianobroken"
playsound(src.loc, 'pianocrash.ogg', 50, 0)
return
return
return
/* src.playing = 1

View File

@@ -1,10 +1,18 @@
/obj/closet/firecloset/full/New()
..()
sleep(4)
contents = list()
new /obj/item/clothing/suit/fire/firefighter(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/device/flashlight(src)
new /obj/item/weapon/tank/emergency_oxygen(src)
new /obj/item/weapon/extinguisher(src)
new /obj/item/clothing/head/helmet/hardhat(src)
/obj/closet/firecloset/New()
..()
if (prob (1))
del(src)
return
new /obj/item/clothing/mask/gas(src)
new /obj/item/weapon/tank/emergency_oxygen(src)
new /obj/item/weapon/extinguisher(src)
@@ -29,4 +37,36 @@
new /obj/item/weapon/tank/oxygen(src)
new /obj/item/weapon/extinguisher(src)
new /obj/item/clothing/suit/fire/firefighter(src)
new /obj/item/clothing/head/helmet/hardhat(src)*/
new /obj/item/clothing/head/helmet/hardhat(src)*/
/obj/closet/toolcloset/New()
if(prob(60))
new /obj/item/clothing/suit/hazardvest(src)
if(prob(70))
new /obj/item/device/flashlight(src)
if(prob(70))
new /obj/item/weapon/screwdriver(src)
if(prob(70))
new /obj/item/weapon/wrench(src)
if(prob(70))
new /obj/item/weapon/weldingtool(src)
if(prob(70))
new /obj/item/weapon/crowbar(src)
if(prob(70))
new /obj/item/weapon/wirecutters(src)
if(prob(70))
new /obj/item/device/t_scanner(src)
if(prob(50))
new /obj/item/weapon/storage/utilitybelt(src)
if(prob(30))
new /obj/item/weapon/cable_coil(src)
if(prob(30))
new /obj/item/weapon/cable_coil(src)
if(prob(30))
new /obj/item/weapon/cable_coil(src)
if(prob(30))
new /obj/item/device/multitool(src)
if(prob(10))
new /obj/item/clothing/gloves/yellow(src)
if(prob(60))
new /obj/item/clothing/head/helmet/hardhat(src)

View File

@@ -101,6 +101,12 @@
/mob/living/carbon/proc/swap_hand()
var/obj/item/item_in_hand = src.get_active_hand()
if(item_in_hand) //this segment checks if the item in your hand is twohanded.
if(item_in_hand.twohanded == 1)
if(item_in_hand.wielded == 1)
usr << text("Your other hand is too busy holding the []",item_in_hand.name)
return
src.hand = !( src.hand )
if (!( src.hand ))
src.hands.dir = NORTH

View File

@@ -1101,6 +1101,18 @@
/mob/proc/drop_item()
var/obj/item/W = src.equipped()
if(istype(W,/obj/item/weapon/fireaxe))
if(W.wielded)
if(src.hand)
var/obj/item/weapon/offhand/O = src.r_hand
del O
else
var/obj/item/weapon/offhand/O = src.l_hand
del O
W.wielded = 0 //Kinda crude, but gets the job done with minimal pain -Agouri
W.name = "Fire axe" //name reset so people don't see world fireaxes with (unwielded) or (wielded) tags
W.update_icon()
if (W)
u_equip(W)
if (src.client)
@@ -1202,6 +1214,7 @@
update_clothing()
/mob/proc/ret_grab(obj/list_container/mobl/L as obj, flag)
if ((!( istype(src.l_hand, /obj/item/weapon/grab) ) && !( istype(src.r_hand, /obj/item/weapon/grab) )))
if (!( L ))

View File

@@ -45,6 +45,50 @@ Stuff which is in development and not yet visible to players or just code relate
(is. code improvements for expandability, etc.) should not be listed here. They
should be listed in the changelog upon commit tho. Thanks. -->
<b><font color='blue'>6 May 2011, AMURRICA FUCK YEAH day</font><b>
<li><b><font color='red'>DANGERCON UPDATE:</font color><font color='blue'>Agouri and Erro updated(I'm in the DangerCon team now, nyoro~n :3):</font color></b>
<ul>
<li>Backpacks removed from all players. It was unrealistic. You can now had to the living quarters to get one from the personal closets there.</li>
<li>Any firearms now send you to critical in 1-2 shots. Doctors need to get the wounded man to surgery to provide good treatment. Guide for bullet removal is up on the wiki.</li>
<li>Brute packs and kelotane removed altogether to encourage use of surgery for heavy injury.</li>
<li>Just kidding</li>
<li>Fireaxe cabinets and Extinguisher wall-mounted closets now added around the station, thank Nanotransen for that.</li>
<li>Because of Nanotransen being Nanotransen, the fire cabinets are electrically operated. AIs can lock them and you can hack them if you want the precious axe inside and it's locked. The axe itself uses an experimental two-handed system, so while it's <u><font color='red'>FUCKING ROBUST</u></font color> you need to wield it to fully unlock its capabilities. Pick up axe and click it in your hand to wield it, click it again or drop to unwield and carry it.You can also use it as a crowbar for cranking doors and firedoors open when wielded, utilising the lever on the back of the blade. And I didn't lie to you. It's fucking robust.</li>
<li>Fireaxe, when wielded, fully takes up your other hand as well. You can't switch hands and the fireaxe itself is unwieldy and won't fit anywhere.
<li>A fireaxe cabinet can also be smashed if you've got a strong enough object in your hand.<li>
<li><b>EXTINGUISHER CLOSETS</b>, made by dear Erro, can be found in abundance around the station. Click once to open them, again to retrieve the extinguisher, attack with extinguisher to place it back. Limited uses, but we've got plans for our little friend.
<li><font color ='blue'><u>Sprite kudos go to: Cheridan for most of them, Khodoque for the fantastic fireaxe head. I merged those two. Also thanks to matty and Arcalane for giving it a shot.</font color></u></li>
<li><font size = '2'><i>Has the piano got TOO annoying? Try the fire axe...</font size></i></li>
<li>Oh, and tou can now construct Light floors! To do it: Use wires on glass, then metal on the produced assembly, then place it on an uncovered floor like you would when replacing broken floor tiles. To deconstruct: Crowbar on light floor, use crowbar on produced assembly to remove metal, wirecutters to seperate the wires from the glass. Sprites by delicious <font color ='blue'>Hempuli.</font color></li>
<li>Got something to bitch about? Got a bug to report? Want to create drama? Did the clown destroy your piano while you were playing an amazing space remix of the moonlight sonata? Give it <a href="http://code.google.com/p/tgstation13/source/detail?r=1543">here</a>
</ul>
</li>
<li><b>Rastaf.Zero updated:</b>
<ul>
<li>New uniforms added for captain and chaplain, in their respective lockers. Credits to <font color='blue'>Farart</font color>.</li>
</ul>
</li>
<li><b>Urist McDorf updated:</b>
<ul>
<li>Mime and Clown now spawn with Crayons. You can eat those crayons. And use them for other nefarious purposes.</li>
<li>Health Scanners (A new type of Goggles) now spawn in medbay. Use them, doctors!</li>
<li>New Arcade toy.</li>
<li>Glowshrooms! What other lifeform will threaten the welfare of the station now?!</li>
<li>Bananas growable in hydroponics. Also soap is now on-board.</li>
<li>Added new "Lights out!" random event.</li>
</ul>
</li>
<li><b>ConstantA updated:</b>
<ul>
<li>Mech pilots are now immune to zapping, thank you very much.</li>
</ul>
</li>
</br>
<b><font color='blue'>17 April 2011, World Hemophilia Day</font><b>
<li><b>Microwave updated:</b>
<ul>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 793 B

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because it is too large Load Diff