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
+60 -17
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
..()
+1 -1
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 )
+1 -1
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 )
+39 -19
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
+45 -5
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)