Merge remote-tracking branch 'remotes/upstream/master' into airlock_charge_buff

This commit is contained in:
Xhuis
2015-09-21 22:18:24 -04:00
49 changed files with 613 additions and 411 deletions
+8 -5
View File
@@ -1,9 +1,9 @@
/obj/item/ammo_casing/proc/fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, params, distro, quiet)
/obj/item/ammo_casing/proc/fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, params, distro, quiet, zone_override = "")
distro += variance
for (var/i = max(1, pellets), i > 0, i--)
var/curloc = user.loc
var/targloc = get_turf(target)
ready_proj(target, user, quiet)
ready_proj(target, user, quiet, zone_override)
if(distro)
targloc = spread(targloc, curloc, distro)
if(!throw_proj(targloc, user, params))
@@ -15,12 +15,15 @@
update_icon()
return 1
/obj/item/ammo_casing/proc/ready_proj(atom/target as mob|obj|turf, mob/living/user, quiet)
/obj/item/ammo_casing/proc/ready_proj(atom/target as mob|obj|turf, mob/living/user, quiet, zone_override = "")
if (!BB)
return
BB.original = target
BB.firer = user
BB.def_zone = user.zone_sel.selecting
if (zone_override)
BB.def_zone = zone_override
else
BB.def_zone = user.zone_sel.selecting
BB.suppressed = quiet
if(reagents && BB.reagents)
@@ -33,7 +36,7 @@
return 0
if(targloc == curloc)
if(BB.original == user) //if we target ourselves we go straight to bullet_act()
user.bullet_act(BB)
user.bullet_act(BB, BB.def_zone)
qdel(BB)
return 1
BB.loc = get_turf(user)
+6 -5
View File
@@ -134,7 +134,8 @@
var/mob/living/M = user
if (M.disabilities & CLUMSY && prob(40))
user << "<span class='userdanger'>You shoot yourself in the foot with \the [src]!</span>"
process_fire(user,user,0,params)
var/shot_leg = pick("l_leg", "r_leg")
process_fire(user,user,0,params, zone_override = shot_leg)
M.drop_item()
return
@@ -178,7 +179,7 @@
return 0
/obj/item/weapon/gun/proc/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params)
/obj/item/weapon/gun/proc/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override)
add_fingerprint(user)
if(semicd)
@@ -196,7 +197,7 @@
if( i>1 && !(src in get_both_hands(user))) //for burst firing
break
if(chambered)
if(!chambered.fire(target, user, params, , suppressed))
if(!chambered.fire(target, user, params, , suppressed, zone_override))
shoot_with_empty_chamber(user)
break
else
@@ -212,7 +213,7 @@
sleep(fire_delay)
else
if(chambered)
if(!chambered.fire(target, user, params, , suppressed))
if(!chambered.fire(target, user, params, , suppressed, zone_override))
shoot_with_empty_chamber(user)
return
else
@@ -360,4 +361,4 @@
if(src && input && !M.stat && in_range(M,src) && !M.restrained() && M.canmove)
name = input
M << "You name the gun [input]. Say hello to your new friend."
return
return
@@ -98,13 +98,14 @@
M << "<span class='danger'>You feel a wave of heat wash over you.</span>"
M.irradiate(300)
fail_state = 2 //break the gun so it stops recharging
crit_fail = 1 //So that it may be properly perfected in this state.
SSobj.processing.Remove(src)
update_icon()
return 0
/obj/item/weapon/gun/energy/gun/nuclear/emp_act(severity)
..()
reliability -= round(15/severity)
reliability = max(reliability - round(15/severity), 0) //Do not allow it to go negative!
/obj/item/weapon/gun/energy/gun/nuclear/update_icon()
..()
+2 -2
View File
@@ -139,7 +139,7 @@
user.visible_message("<span class='suicide'>[user] is putting the barrel of the [src.name] in \his mouth. It looks like \he's trying to commit suicide.</span>")
sleep(25)
if(user.l_hand == src || user.r_hand == src)
process_fire(user, user, 0)
process_fire(user, user, 0, zone_override = "head")
user.visible_message("<span class='suicide'>[user] blows \his brains out with the [src.name]!</span>")
return(BRUTELOSS)
else
@@ -157,4 +157,4 @@
icon_state = "suppressor"
w_class = 2
var/oldsound = null
var/initial_w_class = null
var/initial_w_class = null
@@ -119,6 +119,9 @@
can_suppress = 0
burst_size = 0
/obj/item/weapon/gun/projectile/automatic/wt550/ui_action_click()
return
/obj/item/weapon/gun/projectile/automatic/wt550/update_icon()
..()
icon_state = "wt550[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]"
@@ -74,7 +74,7 @@
options["The Peacemaker"] = "detective_peacemaker"
options["Cancel"] = null
/obj/item/weapon/gun/projectile/revolver/detective/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params)
/obj/item/weapon/gun/projectile/revolver/detective/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, message = 1, params, zone_override = "")
if(magazine.caliber != initial(magazine.caliber))
if(prob(70 - (magazine.ammo_count() * 10))) //minimum probability of 10, maximum of 60
playsound(user, fire_sound, 50, 1)