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

Conflicts:
	code/game/mecha/mecha.dm
This commit is contained in:
paprka
2014-08-06 15:22:56 -07:00
77 changed files with 412 additions and 258 deletions
+3
View File
@@ -111,6 +111,7 @@
/obj/structure/alien/resin/attack_alien(mob/user)
user.changeNext_move(CLICK_CD_MELEE)
if(islarva(user))
return
user.visible_message("<span class='danger'>[user] claws at the resin!</span>")
@@ -122,6 +123,7 @@
/obj/structure/alien/resin/attackby(obj/item/I, mob/user)
user.changeNext_move(CLICK_CD_MELEE)
health -= I.force
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
healthcheck()
@@ -196,6 +198,7 @@
/obj/structure/alien/weeds/attackby(obj/item/I, mob/user)
user.changeNext_move(CLICK_CD_MELEE)
if(I.attack_verb.len)
visible_message("<span class='danger'>[src] has been [pick(I.attack_verb)] with [I] by [user].</span>")
else
@@ -155,7 +155,7 @@
keyslot2 = new /obj/item/device/encryptionkey/headset_service
/obj/item/device/radio/headset/headset_cent
name = "centcom headset"
name = "\improper Centcom headset"
desc = "A headset used by the upper echelons of Nanotrasen. Channels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science."
icon_state = "cent_headset"
item_state = "headset"
@@ -142,7 +142,7 @@
recording = 0
update_icon()
else
usr << "<span class='notice'The tape is full.</span>"
usr << "<span class='notice'>The tape is full.</span>"
/obj/item/device/taperecorder/verb/stop()
@@ -4,6 +4,7 @@ Miscellaneous traitor devices
BATTERER
RADIOACTIVE MICROLASER
*/
@@ -56,6 +57,90 @@ effective or pretty fucking useless.
if(times_used >= max_uses)
icon_state = "battererburnt"
/*
The radioactive microlaser, a device disguised as a health analyzer used to irradiate people.
The strength of the radiation is determined by the 'intensity' setting, while the delay between
the scan and the irradiation kicking in is determined by the wavelength.
Each scan will cause the microlaser to have a brief cooldown period. Higher intensity will increase
the cooldown, while higher wavelength will decrease it.
Wavelength is also slightly increased by the intensity as well.
*/
/obj/item/device/rad_laser
name = "health analyzer"
icon_state = "health"
item_state = "analyzer"
desc = "A hand-held body scanner able to distinguish vital signs of the subject. A strange microlaser is hooked on to the scanning end."
flags = CONDUCT
slot_flags = SLOT_BELT
throwforce = 3
w_class = 1.0
throw_speed = 3
throw_range = 7
m_amt = 400
origin_tech = "magnets=3;biotech=5;syndicate=3"
var/intensity = 5 // how much damage the radiation does
var/wavelength = 10 // time it takes for the radiation to kick in, in seconds
var/used = 0 // is it cooling down?
/obj/item/device/rad_laser/attack(mob/living/M as mob, mob/living/user as mob)
if(!used)
..()
user.visible_message(text("<span class='notice'>[] has analyzed []'s vitals.</span>", user, M))
var/cooldown = round(max(100,(((intensity*8)-(wavelength/2))+(intensity*2))*10))
used = 1
icon_state = "health1"
handle_cooldown(cooldown) // splits off to handle the cooldown while handling wavelength
spawn((wavelength+(intensity*4))*10)
if(M)
if(intensity >= 5)
M.apply_effect(round(intensity/1.5), PARALYZE)
M.apply_effect(intensity*10, IRRADIATE)
else
user << "<span class='danger'>The radioactive microlaser is still recharging.</span>"
/obj/item/device/rad_laser/proc/handle_cooldown(var/cooldown)
spawn(cooldown)
used = 0
icon_state = "health"
/obj/item/device/rad_laser/attack_self(mob/user as mob)
..()
interact(user)
/obj/item/device/rad_laser/interact(mob/user as mob)
user.set_machine(src)
var/cooldown = round(max(10,((intensity*8)-(wavelength/2))+(intensity*2)))
var/dat = {"
Radiation Intensity: <A href='?src=\ref[src];radint=-5'>-</A><A href='?src=\ref[src];radint=-1'>-</A> [intensity] <A href='?src=\ref[src];radint=1'>+</A><A href='?src=\ref[src];radint=5'>+</A><BR>
Radiation Wavelength: <A href='?src=\ref[src];radwav=-5'>-</A><A href='?src=\ref[src];radwav=-1'>-</A> [(wavelength+(intensity*4))] <A href='?src=\ref[src];radwav=1'>+</A><A href='?src=\ref[src];radwav=5'>+</A><BR>
Laser Cooldown: [cooldown] Seconds<BR>
"}
var/datum/browser/popup = new(user, "radlaser", "Radioactive Microlaser Interface", 400, 240)
popup.set_content(dat)
popup.open()
/obj/item/device/rad_laser/Topic(href, href_list)
if(!usr.canUseTopic(src))
return 1
usr.set_machine(src)
if(href_list["radint"])
var/amount = text2num(href_list["radint"])
amount += intensity
intensity = max(1,(min(10,amount)))
else if(href_list["radwav"])
var/amount = text2num(href_list["radwav"])
amount += wavelength
wavelength = max(1,(min(120,amount)))
updateUsrDialog()
add_fingerprint(usr)
return
@@ -31,7 +31,7 @@
update_icon()
return
else if(istype(O, /obj/item/weapon))
user.changeNext_move(8)
user.changeNext_move(CLICK_CD_MELEE)
var/obj/item/weapon/W = O
if(src.smashed || src.localopened)
if(localopened)
+2 -2
View File
@@ -66,7 +66,7 @@
/obj/structure/displaycase/attackby(obj/item/weapon/W as obj, mob/user as mob)
user.changeNext_move(8)
user.changeNext_move(CLICK_CD_MELEE)
src.health -= W.force
src.healthcheck()
..()
@@ -76,7 +76,7 @@
return src.attack_hand(user)
/obj/structure/displaycase/attack_hand(mob/user as mob)
user.changeNext_move(8)
user.changeNext_move(CLICK_CD_MELEE)
if (src.destroyed && src.occupied)
new /obj/item/weapon/gun/energy/laser/captain( src.loc )
user << "\b You deactivate the hover field built into the case."
+5 -5
View File
@@ -26,7 +26,7 @@
attack_hand(user)
/obj/structure/grille/attack_hand(mob/user as mob)
user.changeNext_move(8)
user.changeNext_move(CLICK_CD_MELEE)
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>", \
@@ -42,7 +42,7 @@
/obj/structure/grille/attack_alien(mob/user as mob)
if(istype(user, /mob/living/carbon/alien/larva)) return
user.changeNext_move(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>", \
@@ -54,7 +54,7 @@
return
/obj/structure/grille/attack_slime(mob/living/carbon/slime/user as mob)
user.changeNext_move(8)
user.changeNext_move(CLICK_CD_MELEE)
if(!user.is_adult) return
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
@@ -67,7 +67,7 @@
return
/obj/structure/grille/attack_animal(var/mob/living/simple_animal/M as mob)
M.changeNext_move(8)
M.changeNext_move(CLICK_CD_MELEE)
if(M.melee_damage_upper == 0) return
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
@@ -100,7 +100,7 @@
return
/obj/structure/grille/attackby(obj/item/weapon/W as obj, mob/user as mob)
user.changeNext_move(8)
user.changeNext_move(CLICK_CD_MELEE)
add_fingerprint(user)
if(istype(W, /obj/item/weapon/wirecutters))
if(!shock(user, 100))
+2 -2
View File
@@ -61,7 +61,7 @@
/obj/structure/lamarr/attackby(obj/item/weapon/W as obj, mob/user as mob)
user.changeNext_move(8)
user.changeNext_move(CLICK_CD_MELEE)
src.health -= W.force
src.healthcheck()
..()
@@ -71,7 +71,7 @@
return src.attack_hand(user)
/obj/structure/lamarr/attack_hand(mob/user as mob)
user.changeNext_move(8)
user.changeNext_move(CLICK_CD_MELEE)
if (src.destroyed)
return
else
+5 -3
View File
@@ -521,6 +521,8 @@
if(istype(mover) && mover.checkpass(PASSTABLE))
return 1
if(locate(/obj/structure/table) in get_turf(mover))
return 1
else
return 0
@@ -559,16 +561,16 @@
if (istype(I, /obj/item/weapon/wrench))
table_destroy(2, user)
return
if (istype(I, /obj/item/weapon/storage/bag/tray))
var/obj/item/weapon/storage/bag/tray/T = I
if(T.contents.len > 0) // If the tray isn't empty
var/list/obj/item/oldContents = T.contents.Copy()
T.quick_empty()
for(var/obj/item/C in oldContents)
C.loc = src.loc
user.visible_message("<span class='notice'>[user] empties [I] on [src].</span>")
return
// If the tray IS empty, continue on (tray will be placed on the table like other items)
+3 -3
View File
@@ -109,7 +109,7 @@
R.add_fingerprint(user)
qdel(src)
else
user.changeNext_move(8)
user.changeNext_move(CLICK_CD_MELEE)
user.visible_message("<span class='notice'>[user] knocks on [src].</span>")
add_fingerprint(user)
playsound(loc, 'sound/effects/Glasshit.ogg', 50, 1)
@@ -122,7 +122,7 @@
/obj/structure/window/proc/attack_generic(mob/user as mob, damage = 0) //used by attack_alien, attack_animal, and attack_slime
if(!can_be_reached(user))
return
user.changeNext_move(8)
user.changeNext_move(CLICK_CD_MELEE)
health -= damage
if(health <= 0)
user.visible_message("<span class='danger'>[user] smashes through [src]!</span>")
@@ -191,7 +191,7 @@
qdel(src)
else
if(I.damtype == BRUTE || I.damtype == BURN)
user.changeNext_move(8)
user.changeNext_move(CLICK_CD_MELEE)
hit(I.force)
if(health <= 7)
anchored = 0