mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 19:47:22 +01:00
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:
@@ -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
|
||||
..()
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user