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
-1
View File
@@ -1527,7 +1527,6 @@
var/client/C = usr.client
if(!isobserver(usr)) C.admin_ghost()
var/mob/dead/observer/A = C.mob
sleep(2)
A.ManualFollow(M)
log_admin("[key_name(usr)] followed [key_name(M)]")
message_admins("[key_name_admin(usr)] followed [key_name_admin(M)]")
+4
View File
@@ -51,6 +51,10 @@
/obj/item/weapon/paper/examine(mob/user)
..()
if(istype(src, /obj/item/weapon/paper/talisman)) //Talismans cannot be read
if(!iscultist(user) && !user.stat)
user << "<span class='danger'>There are indecipherable images scrawled on the paper in what looks to be... <i>blood?</i></span>"
return
if(in_range(user, src) || isobserver(user))
if( !(ishuman(user) || isobserver(user) || issilicon(user)) )
user << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[stars(info)]<HR>[stamps]</BODY></HTML>", "window=[name]")
+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)
@@ -695,6 +695,16 @@
construction_time = 120
category = list("Cyborg Upgrade Modules")
/datum/design/borg_upgrade_selfrepair
name = "Cyborg Upgrade (Self-repair)"
id = "borg_upgrade_selfrepair"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/selfrepair
req_tech = list("materials" = 4, "engineering" = 4)
materials = list(MAT_METAL=15000, MAT_GLASS=15000)
construction_time = 120
category = list("Cyborg Upgrade Modules")
//Misc
/datum/design/mecha_tracking
name = "Exosuit Tracking Beacon"
+17 -17
View File
@@ -190,31 +190,31 @@
category = list("Ammo")
/datum/design/mag_oldsmg/ap_mag
name = "Submachine Gun Armour Piercing Magazine (9mmAP)"
name = "WT-550 Auto Gun Armour Piercing Magazine (9mmAP)"
desc = "A 20 round armour piercing magazine for the out of date security WT-550 Auto Rifle"
id = "mag_oldsmg_ap"
materials = list(MAT_METAL = 6000, MAG_SILVER = 200)
materials = list(MAT_METAL = 6000, MAT_SILVER = 200)
build_path = /obj/item/ammo_box/magazine/wt550m9/wtap
/datum/design/mag_oldsmg/ic_mag
name = "Submachine Gun Incindiary Magazine (9mmIC)"
name = "WT-550 Auto Gun Incendiary Magazine (9mmIC)"
desc = "A 20 round armour piercing magazine for the out of date security WT-550 Auto Rifle"
id = "mag_oldsmg_ic"
materials = list(MAT_METAL = 6000, MAG_SILVER = 200, MAT_GLASS = 800)
materials = list(MAT_METAL = 6000, MAT_SILVER = 200, MAT_GLASS = 800)
build_path = /obj/item/ammo_box/magazine/wt550m9/wtic
/datum/design/mag_oldsmg/tx_mag
name = "Submachine Gun Urnaium Magazine (9mmTX)"
name = "WT-550 Auto Gun Urnaium Magazine (9mmTX)"
desc = "A 20 round urnaium tipped magazine for the out of date security WT-550 Auto Rifle"
id = "mag_oldsmg_tx"
materials = list(MAT_METAL = 6000, MAG_SILVER = 400, MAG_URNAIUM = 2000)
materials = list(MAT_METAL = 6000, MAT_SILVER = 400, MAT_URANIUM = 2000)
build_path = /obj/item/ammo_box/magazine/wt550m9/wttx
//SABR Mags
/datum/design/mag_smg
name = "Submachine Gun Magazine (9mm)"
desc = "A 42-round magazine for the prototype submachine gun."
name = "SABR SMG Magazine (9mm)"
desc = "A 30-round magazine for the prototype submachine gun."
id = "mag_smg"
req_tech = list("combat" = 4, "materials" = 3)
build_type = PROTOLATHE
@@ -223,24 +223,24 @@
category = list("Ammo")
/datum/design/mag_smg/ap_mag
name = "Submachine Gun Armour Piercing Magazine (9mmAP)"
desc = "A 42-round armour piercing magazine for the prototype submachine gun. Deals slightly less damage by bypasses most armour"
name = "SABR SMG Armour Piercing Magazine (9mmAP)"
desc = "A 30-round armour piercing magazine for the prototype submachine gun. Deals slightly less damage by bypasses most armour"
id = "mag_smg_ap"
materials = list(MAT_METAL = 3000, MAG_SILVER = 100)
materials = list(MAT_METAL = 3000, MAT_SILVER = 100)
build_path = /obj/item/ammo_box/magazine/smgm9mm/ap
/datum/design/mag_smg/incin_mag
name = "Submachine Gun Incindiary Magazine (9mmIC)"
desc = "A 42-round incindiary round magazine for the prototype submachine gun. Deals significanlty less damage but sets the target on fire"
name = "SABR SMG Incendiary Magazine (9mmIC)"
desc = "A 30-round incindiary round magazine for the prototype submachine gun. Deals significanlty less damage but sets the target on fire"
id = "mag_smg_ic"
materials = list(MAT_METAL = 3000, MAG_SILVER = 100, MAT_GLASS = 400)
materials = list(MAT_METAL = 3000, MAT_SILVER = 100, MAT_GLASS = 400)
build_path = /obj/item/ammo_box/magazine/smgm9mm/fire
/datum/design/mag_smg/incin_tox
name = "Submachine Gun Urnaium Magazine (9mmIC)"
desc = "A 42-round urnaium tipped round magazine for the prototype submachine gun. Deals toxin damage, but less overall damage."
name = "SABR SMG Urnaium Magazine (9mmTX)"
desc = "A 30-round urnaium tipped round magazine for the prototype submachine gun. Deals toxin damage, but less overall damage."
id = "mag_smg_tx"
materials = list(MAT_METAL = 3000, MAT_GLASS = 200, MAG_URNAIUM = 1000)
materials = list(MAT_METAL = 3000, MAT_GLASS = 200, MAT_URANIUM = 1000)
build_path = /obj/item/ammo_box/magazine/smgm9mm/toxin
/datum/design/stunshell