Merge remote-tracking branch 'upstream/master' into bay_equipping

Conflicts:
	code/modules/client/preference/preferences.dm
This commit is contained in:
Tigercat2000
2016-06-19 16:28:57 -07:00
200 changed files with 4836 additions and 3248 deletions
@@ -6,6 +6,7 @@
density = 0
anchored = 1
layer = 20 //DEBUG
plane = HUD_PLANE //DEBUG
var/health = 10
var/stage = 1
var/obj/effect/rift/originalRift = null //the originating rift of that biomass
+1
View File
@@ -12,6 +12,7 @@
density = 0
anchored = 1
layer = 50
plane = HUD_PLANE
/obj/effect/decal/chempuff
name = "chemicals"
+1
View File
@@ -31,6 +31,7 @@
icon_state = "blank"
anchored = 1
layer = 99
plane = HUD_PLANE
mouse_opacity = 0
unacidable = 1//Just to be sure.
@@ -165,10 +165,12 @@
P.loc = usr
usr.r_hand = P
P.layer = 20
P.plane = HUD_PLANE
else if(!usr.l_hand)
P.loc = usr
usr.l_hand = P
P.layer = 20
P.plane = HUD_PLANE
if(istype(usr,/mob/living/carbon/human))
usr:update_inv_l_hand()
+23 -12
View File
@@ -1,38 +1,45 @@
/obj/item/latexballon
name = "Latex glove"
name = "latex glove"
desc = "" //todo
icon_state = "latexballon"
item_state = "lgloves"
force = 0
throwforce = 0
w_class = 1.0
w_class = 1
throw_speed = 1
throw_range = 15
throw_range = 7
var/state
var/datum/gas_mixture/air_contents = null
/obj/item/latexballon/proc/blow(obj/item/weapon/tank/tank)
if (icon_state == "latexballon_bursted")
/obj/item/latexballon/proc/blow(obj/item/weapon/tank/tank, mob/user)
if(icon_state == "latexballon_bursted")
return
src.air_contents = tank.remove_air_volume(3)
icon_state = "latexballon_blow"
item_state = "latexballon"
user.update_inv_r_hand()
user.update_inv_l_hand()
to_chat(user, "<span class='notice'>You blow up [src] with [tank].</span>")
air_contents = tank.remove_air_volume(3)
/obj/item/latexballon/proc/burst()
if (!air_contents)
if(!air_contents || icon_state != "latexballon_blow")
return
playsound(src, 'sound/weapons/Gunshot.ogg', 100, 1)
icon_state = "latexballon_bursted"
item_state = "lgloves"
if(isliving(loc))
var/mob/living/user = loc
user.update_inv_r_hand()
user.update_inv_l_hand()
loc.assume_air(air_contents)
/obj/item/latexballon/ex_act(severity)
burst()
switch(severity)
if (1)
if(1)
qdel(src)
if (2)
if (prob(50))
if(2)
if(prob(50))
qdel(src)
/obj/item/latexballon/bullet_act()
@@ -43,6 +50,10 @@
burst()
return
/obj/item/latexballon/attackby(obj/item/W as obj, mob/user as mob, params)
if (can_puncture(W))
/obj/item/latexballon/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/weapon/tank))
var/obj/item/weapon/tank/T = W
blow(T, user)
return
if(is_sharp(W) || is_hot(W) || can_puncture(W))
burst()
+8 -4
View File
@@ -331,6 +331,8 @@
H.updatehealth() //forces health update before next life tick
playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1)
H.emote("gasp")
if(!H.heart_attack && (prob(10) || defib.combat)) // Your heart explodes.
H.heart_attack = 1
add_logs(M, user, "stunned", object="defibrillator")
defib.deductcharge(revivecost)
cooldown = 1
@@ -354,8 +356,8 @@
qdel(ghost)
ghost = null
var/tplus = world.time - H.timeofdeath
var/tlimit = 6000 //past this much time the patient is unrecoverable (in deciseconds)
var/tloss = 3000 //brain damage starts setting in on the patient after some time left rotting
var/tlimit = 1800 //past this much time the patient is unrecoverable (in deciseconds)
var/tloss = 600 //brain damage starts setting in on the patient after some time left rotting
var/total_burn = 0
var/total_brute = 0
if(do_after(user, 20, target = M)) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total
@@ -470,6 +472,8 @@
H.adjustStaminaLoss(50)
H.Weaken(5)
H.updatehealth() //forces health update before next life tick
if(!H.heart_attack && prob(10)) // Your heart explodes.
H.heart_attack = 1
playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1)
H.emote("gasp")
add_logs(M, user, "stunned", object="defibrillator")
@@ -499,8 +503,8 @@
qdel(ghost)
ghost = null
var/tplus = world.time - H.timeofdeath
var/tlimit = 6000 //past this much time the patient is unrecoverable (in deciseconds)
var/tloss = 3000 //brain damage starts setting in on the patient after some time left rotting
var/tlimit = 1800 //past this much time the patient is unrecoverable (in deciseconds)
var/tloss = 600 //brain damage starts setting in on the patient after some time left rotting
var/total_burn = 0
var/total_brute = 0
if(do_after(user, 20, target = M)) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total
+9 -3
View File
@@ -127,10 +127,16 @@
icon = 'icons/obj/items.dmi'
icon_state = "red_phone"
flags = CONDUCT
force = 3.0
throwforce = 2.0
force = 3
throwforce = 2
throw_speed = 1
throw_range = 4
w_class = 2
attack_verb = list("called", "rang")
hitsound = 'sound/weapons/ring.ogg'
hitsound = 'sound/weapons/ring.ogg'
var/cooldown = 0
/obj/item/weapon/phone/attack_self(mob/user)
if(cooldown < world.time - 20)
playsound(user.loc, 'sound/weapons/ring.ogg', 50, 1)
cooldown = world.time
@@ -135,6 +135,7 @@
affected_mob.adjustBruteLoss(-12)
affected_mob.adjustFireLoss(-12)
affected_mob.adjustToxLoss(-5)
affected_mob.setStaminaLoss(0)
var/status = CANSTUN | CANWEAKEN | CANPARALYSE
affected_mob.status_flags &= ~status
affected_mob.dizziness = max(0, affected_mob.dizziness-10)
@@ -20,34 +20,34 @@
attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/card/id))
if(src.broken)
to_chat(user, "\red It appears to be broken.")
to_chat(user, "<span class='warning'>It appears to be broken.</span>")
return
if(src.allowed(user))
src.locked = !( src.locked )
if(src.locked)
src.icon_state = src.icon_locked
to_chat(user, "\red You lock the [src.name]!")
to_chat(user, "<span class='warning'>You lock the [src.name]!</span>")
return
else
src.icon_state = src.icon_closed
to_chat(user, "\red You unlock the [src.name]!")
to_chat(user, "<span class='warning'>You unlock the [src.name]!</span>")
origin_tech = null //wipe out any origin tech if it's unlocked in any way so you can't double-dip tech levels at R&D.
return
else
to_chat(user, "\red Access Denied")
to_chat(user, "<span class='warning'>Access Denied</span>")
else if((istype(W, /obj/item/weapon/card/emag) || istype(W, /obj/item/weapon/melee/energy/blade)) && !broken)
emag_act(user)
return
if(!locked)
..()
else
to_chat(user, "\red Its locked!")
to_chat(user, "<span class='warning'>It's locked!</span>")
return
show_to(mob/user as mob)
if(locked)
to_chat(user, "\red Its locked!")
to_chat(user, "<span class='warning'>It's locked!</span>")
else
..()
return
@@ -156,14 +156,19 @@
// -----------------------------
/obj/item/weapon/storage/secure/briefcase
name = "secure briefcase"
desc = "A large briefcase with a digital locking system."
icon = 'icons/obj/storage.dmi'
icon_state = "secure"
item_state = "sec-case"
desc = "A large briefcase with a digital locking system."
flags = CONDUCT
hitsound = "swing_hit"
force = 8.0
throw_speed = 1
throw_speed = 2
throw_range = 4
w_class = 4.0
max_w_class = 3
max_combined_w_class = 21
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked")
New()
..()
@@ -151,6 +151,7 @@
for(var/obj/O in src.contents)
O.screen_loc = "[cx],[cy]"
O.layer = 20
O.plane = HUD_PLANE
cx++
if (cx > mx)
cx = tx
@@ -170,6 +171,7 @@
ND.sample_object.screen_loc = "[cx]:16,[cy]:16"
ND.sample_object.maptext = "<font color='white'>[(ND.number > 1)? "[ND.number]" : ""]</font>"
ND.sample_object.layer = 20
ND.sample_object.plane = HUD_PLANE
cx++
if (cx > (4+cols))
cx = 4
@@ -180,6 +182,7 @@
O.screen_loc = "[cx]:16,[cy]:16"
O.maptext = ""
O.layer = 20
O.plane = HUD_PLANE
cx++
if (cx > (4+cols))
cx = 4
@@ -337,8 +340,10 @@
W.dropped(usr)
if(ismob(new_location))
W.layer = 20
W.plane = HUD_PLANE
else
W.layer = initial(W.layer)
W.plane = initial(W.plane)
W.loc = new_location
else
W.loc = get_turf(src)
@@ -445,6 +450,7 @@
src.closer.master = src
src.closer.icon_state = "x"
src.closer.layer = 20
src.closer.plane = HUD_PLANE
orient2hud()
return
@@ -89,10 +89,6 @@
if ((istype(W, /obj/item/device/analyzer)) && get_dist(user, src) <= 1)
atmosanalyzer_scan(air_contents, user)
else if (istype(W,/obj/item/latexballon))
var/obj/item/latexballon/LB = W
LB.blow(src)
if(istype(W, /obj/item/device/assembly_holder))
bomb_assemble(W,user)
@@ -418,4 +418,9 @@
if(istype(src.loc, /obj/structure/bigDelivery)) //nullspace ect.. read the comment above
var/obj/structure/bigDelivery/BD = src.loc
BD.attack_hand(usr)
open()
open()
/obj/structure/closet/tesla_act(var/power)
..()
visible_message("<span class='danger'>[src] is blown apart by the bolt of electricity!</span>", "<span class='danger'>You hear a metallic screeching sound.</span>")
qdel(src)
@@ -157,6 +157,7 @@
new /obj/item/weapon/gun/energy/gun/advtaser(src)
new /obj/item/weapon/storage/belt/security/sec(src)
new /obj/item/weapon/storage/box/holobadge(src)
new /obj/item/clothing/gloves/color/black/krav_maga/sec(src)
@@ -53,6 +53,9 @@
new /obj/item/clothing/head/beret/sec(src)
new /obj/item/clothing/head/beret/sec(src)
new /obj/item/clothing/head/beret/sec(src)
new /obj/item/clothing/head/officer(src)
new /obj/item/clothing/head/officer(src)
new /obj/item/clothing/head/officer(src)
/obj/structure/closet/redcorp
name = "corporate security wardrobe"
+1
View File
@@ -3,6 +3,7 @@
desc = "A sturdy metal ladder."
icon = 'icons/obj/structures.dmi'
icon_state = "ladder11"
anchored = 1
var/id = null
var/height = 0 //the 'height' of the ladder. higher numbers are considered physically higher
var/obj/structure/ladder/down = null //the ladder below this one
+5 -2
View File
@@ -63,8 +63,11 @@
return
var/obj/item/weapon/reagent_containers/RG = I
if(RG.is_open_container())
RG.reagents.add_reagent("toiletwater", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this))
to_chat(user, "<span class='notice'>You fill [RG] from [src]. Gross.</span>")
if(RG.reagents.total_volume >= RG.volume)
to_chat(user, "<span class='warning'>\The [RG] is full.</span>")
else
RG.reagents.add_reagent("toiletwater", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this))
to_chat(user, "<span class='notice'>You fill [RG] from [src]. Gross.</span>")
return
if(istype(I, /obj/item/weapon/grab))