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

This commit is contained in:
xxalpha
2016-02-05 01:27:26 +00:00
25 changed files with 306 additions and 217 deletions
+19 -23
View File
@@ -150,29 +150,25 @@
/obj/machinery/computer/holodeck/Topic(href, list/href_list)
if(..())
return
if(Adjacent(usr) || istype(usr, /mob/living/silicon))
usr.set_machine(src)
src.add_fingerprint(usr)
if(href_list["loadarea"])
var/typepath = text2path(href_list["loadarea"])
if(ispath(typepath,/area))
var/area/target = locate(typepath)
if(istype(target))
load_program(target)
else
world.log << "area not ready: [typepath]"
else
world.log << "bad area argument: [href_list["loadarea"]]"
else if("safety" in href_list)
var/oe = emagged
emagged = !text2num(href_list["safety"])
if(oe == emagged) return
if(program && !stat)
if(!emagged && program.restricted)
load_program(offline_program)
else
nerf(!emagged)
src.updateUsrDialog()
if(!Adjacent(usr) && !istype(usr, /mob/living/silicon))
return
usr.set_machine(src)
src.add_fingerprint(usr)
if(href_list["loadarea"])
var/areapath = text2path(href_list["loadarea"])
if(!ispath(areapath, /area/holodeck))
return
var/area/holodeck/area = locate(areapath)
if(!istype(area))
return
if((area in program_cache) || (emagged && (area in emag_programs)))
load_program(area)
else if("safety" in href_list)
var/safe = text2num(href_list["safety"])
if(!program)
return
nerf(safe)
src.updateUsrDialog()
/obj/machinery/computer/holodeck/proc/nerf(active)
for(var/obj/item/I in spawned)
+1 -1
View File
@@ -46,7 +46,7 @@
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/smes(null)
for(var/i in 1 to 5)
component_parts += new /obj/item/weapon/stock_parts/cell/high/empty(null)
component_parts += new /obj/item/weapon/stock_parts/cell/high(null)
component_parts += new /obj/item/stack/cable_coil(null, 5)
component_parts += new /obj/item/weapon/stock_parts/capacitor(null)
RefreshParts()
@@ -3,6 +3,12 @@
caliber = "357"
projectile_type = /obj/item/projectile/bullet
/obj/item/ammo_casing/a762
desc = "A 7.62 bullet casing."
icon_state = "762-casing"
caliber = "a762"
projectile_type = /obj/item/projectile/bullet
/obj/item/ammo_casing/a50
desc = "A .50AE bullet casing."
caliber = ".50"
@@ -142,6 +148,12 @@
icon_state = "mshell"
projectile_type = /obj/item/projectile/bullet/meteorshot
/obj/item/ammo_casing/shotgun/breaching
name = "breaching shell"
desc = "An economic version of the meteorshot, utilizing similar technologies. Great for busting down doors."
icon_state = "mshell"
projectile_type = /obj/item/projectile/bullet/meteorshot/weak
/obj/item/ammo_casing/shotgun/pulseslug
name = "pulse slug"
desc = "A delicate device which can be loaded into a shotgun. The primer acts as a button which triggers the gain medium and fires a powerful \
@@ -304,6 +304,11 @@ obj/item/ammo_box/magazine/tommygunm45
icon_state = "m12gt"
ammo_type = /obj/item/ammo_casing/shotgun/dart/bioterror
/obj/item/ammo_box/magazine/m12g/breach
name = "shotgun magazine (12g breacher slugs)"
icon_state = "m12gbc"
ammo_type = /obj/item/projectile/bullet/meteorshot/weak
/obj/item/ammo_box/magazine/toy
name = "foam force META magazine"
ammo_type = /obj/item/ammo_casing/caseless/foam_dart
+47 -40
View File
@@ -1,12 +1,12 @@
/obj/item/weapon/gun/projectile/automatic/l6_saw
name = "\improper L6 SAW"
desc = "A heavily modified 7.62 light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation."
desc = "A heavily modified 5.56x45mm light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation."
icon_state = "l6closed100"
item_state = "l6closedmag"
w_class = 5
slot_flags = 0
origin_tech = "combat=5;materials=1;syndicate=2"
mag_type = /obj/item/ammo_box/magazine/m762
mag_type = /obj/item/ammo_box/magazine/mm556x45
heavy_weapon = 1
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
var/cover_open = 0
@@ -27,6 +27,7 @@
/obj/item/weapon/gun/projectile/automatic/l6_saw/update_icon()
icon_state = "l6[cover_open ? "open" : "closed"][magazine ? Ceiling(get_ammo(0)/12.5)*25 : "-empty"]"
item_state = "l6[cover_open ? "openmag" : "closedmag"]"
/obj/item/weapon/gun/projectile/automatic/l6_saw/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) //what I tried to do here is just add a check to see if the cover is open or not and add an icon_state change because I can't figure out how c-20rs do it with overlays
@@ -64,70 +65,77 @@
/obj/item/projectile/bullet/saw
damage = 35
damage = 45
armour_penetration = 5
/obj/item/projectile/bullet/saw/bleeding
damage = 15
damage = 20
armour_penetration = 0
/obj/item/projectile/bullet/saw/bleeding/on_hit(atom/target, blocked = 0, hit_zone)
if((blocked != 100) && istype(target, /mob/living/carbon/human))
var/mob/living/carbon/human/H = target
H.drip(25)
H.drip(35)
/obj/item/projectile/bullet/saw/hollow
damage = 45
armour_penetration = 0
damage = 60
armour_penetration = -10
/obj/item/projectile/bullet/saw/ap
damage = 30
armour_penetration = 35
damage = 40
armour_penetration = 75
/obj/item/projectile/bullet/saw/incen
damage = 5
damage = 7
armour_penetration = 0
obj/item/projectile/bullet/saw/incen/Move()
..()
var/turf/location = get_turf(src)
if(location)
PoolOrNew(/obj/effect/hotspot, location)
location.hotspot_expose(700, 50, 1)
/obj/item/projectile/bullet/saw/incen/on_hit(atom/target, blocked = 0)
. = ..()
if(iscarbon(target))
var/mob/living/carbon/M = target
M.adjust_fire_stacks(1)
M.adjust_fire_stacks(3)
M.IgniteMob()
//magazines//
/obj/item/ammo_box/magazine/m762
name = "box magazine (7.62mm)"
/obj/item/ammo_box/magazine/mm556x45
name = "box magazine (5.56x45mm)"
icon_state = "a762-50"
origin_tech = "combat=2"
ammo_type = /obj/item/ammo_casing/a762
caliber = "a762"
ammo_type = /obj/item/ammo_casing/mm556x45
caliber = "mm55645"
max_ammo = 50
/obj/item/ammo_box/magazine/m762/bleeding
name = "box magazine (Bleeding 7.62mm)"
/obj/item/ammo_box/magazine/mm556x45/bleeding
name = "box magazine (Bleeding 5.56x45mm)"
origin_tech = "combat=3"
ammo_type = /obj/item/ammo_casing/a762/bleeding
ammo_type = /obj/item/ammo_casing/mm556x45/bleeding
/obj/item/ammo_box/magazine/m762/hollow
name = "box magazine (Hollow-Point 7.62mm)"
/obj/item/ammo_box/magazine/mm556x45/hollow
name = "box magazine (Hollow-Point 5.56x45mm)"
origin_tech = "combat=3"
ammo_type = /obj/item/ammo_casing/a762/hollow
ammo_type = /obj/item/ammo_casing/mm556x45/hollow
/obj/item/ammo_box/magazine/m762/ap
name = "box magazine (Armor Penetrating 7.62mm)"
/obj/item/ammo_box/magazine/mm556x45/ap
name = "box magazine (Armor Penetrating 5.56x45mm)"
origin_tech = "combat=4"
ammo_type = /obj/item/ammo_casing/a762/ap
ammo_type = /obj/item/ammo_casing/mm556x45/ap
/obj/item/ammo_box/magazine/m762/incen
name = "box magazine (Incendiary 7.62mm)"
/obj/item/ammo_box/magazine/mm556x45/incen
name = "box magazine (Incendiary 5.56x45mm)"
origin_tech = "combat=4"
ammo_type = /obj/item/ammo_casing/a762/incen
ammo_type = /obj/item/ammo_casing/mm556x45/incen
/obj/item/ammo_box/magazine/m762/update_icon()
/obj/item/ammo_box/magazine/mm556x45/update_icon()
..()
icon_state = "a762-[round(ammo_count(),10)]"
@@ -135,28 +143,27 @@
//casings//
/obj/item/ammo_casing/a762
desc = "A 7.62mm bullet casing."
/obj/item/ammo_casing/mm556x45
desc = "A 556x45mm bullet casing."
icon_state = "762-casing"
caliber = "a762"
caliber = "mm55645"
projectile_type = /obj/item/projectile/bullet/saw
/obj/item/ammo_casing/a762/bleeding
desc = "A 7.62mm bullet casing with specialized inner-casing, that when it makes contact with a target, release tiny shrapnel to induce internal bleeding."
/obj/item/ammo_casing/mm556x45/bleeding
desc = "A 556x45mm bullet casing with specialized inner-casing, that when it makes contact with a target, release tiny shrapnel to induce internal bleeding."
icon_state = "762-casing"
caliber = "a762"
projectile_type = /obj/item/projectile/bullet/saw/bleeding
/obj/item/ammo_casing/a762/hollow
desc = "A 7.62mm bullet casing designed to cause more damage to unarmored targets."
/obj/item/ammo_casing/mm556x45/hollow
desc = "A 556x45mm bullet casing designed to cause more damage to unarmored targets."
projectile_type = /obj/item/projectile/bullet/saw/hollow
/obj/item/ammo_casing/a762/ap
desc = "A 7.62mm bullet casing designed with a hardened-tipped core to help penetrate armored targets."
/obj/item/ammo_casing/mm556x45/ap
desc = "A 556x45mm bullet casing designed with a hardened-tipped core to help penetrate armored targets."
projectile_type = /obj/item/projectile/bullet/saw/ap
/obj/item/ammo_casing/a762/incen
desc = "A 7.62mm bullet casing designed with a chemical-filled capsule on the tip that when bursted, reacts with the atmosphere to produce a fireball, engulfing the target in flames. "
/obj/item/ammo_casing/mm556x45/incen
desc = "A 556x45mm bullet casing designed with a chemical-filled capsule on the tip that when bursted, reacts with the atmosphere to produce a fireball, engulfing the target in flames. "
projectile_type = /obj/item/projectile/bullet/saw/incen
@@ -298,7 +298,7 @@
item_state = "bulldog"
w_class = 3
origin_tech = "combat=5;materials=4;syndicate=6"
mag_type = /obj/item/ammo_box/magazine/m12g
mag_type = /obj/item/ammo_box/magazine/m12g/stun
fire_sound = 'sound/weapons/Gunshot.ogg'
can_suppress = 0
burst_size = 1
@@ -72,7 +72,7 @@
. = ..()
if(iscarbon(target))
var/mob/living/carbon/M = target
M.adjust_fire_stacks(1)
M.adjust_fire_stacks(4)
M.IgniteMob()
@@ -101,6 +101,11 @@
stun = 8
hitsound = 'sound/effects/meteorimpact.ogg'
/obj/item/projectile/bullet/meteorshot/weak
damage = 10
weaken = 4
stun = 4
/obj/item/projectile/bullet/meteorshot/on_hit(atom/target, blocked = 0)
. = ..()
if(istype(target, /atom/movable))
@@ -2,6 +2,7 @@
/datum/reagent/blob
name = "Unknown"
description = "shouldn't exist and you should adminhelp immediately."
color = "#FFFFFF"
var/shortdesc = null //just damage and on_mob effects, doesn't include special, blob-tile only effects
var/blobbernaut_message = "slams" //blobbernaut attack verb
var/message = "The blob strikes you" //message sent to any mob hit by the blob
@@ -16,7 +17,7 @@
/datum/reagent/blob/proc/death_reaction(obj/effect/blob/B, cause) //when a blob dies, do this
return
/datum/reagent/blob/proc/expand_reaction(obj/effect/blob/B, turf/T) //when the blob expands, do this
/datum/reagent/blob/proc/expand_reaction(obj/effect/blob/B, obj/effect/blob/newB, turf/T) //when the blob expands, do this
return
//does brute and a little stamina damage
@@ -24,7 +25,7 @@
name = "Ripping Tendrils"
id = "ripping_tendrils"
description = "will do medium brute and stamina damage."
color = "#890000"
color = "#991010"
blobbernaut_message = "rips"
message_living = ", and you feel your skin ripping and tearing off"
@@ -60,12 +61,12 @@
B.overmind.blob_mobs.Add(BS)
return ..()
/datum/reagent/blob/sporing_pods/expand_reaction(obj/effect/blob/B, turf/T)
/datum/reagent/blob/sporing_pods/expand_reaction(obj/effect/blob/B, obj/effect/blob/newB, turf/T)
if(prob(10))
var/mob/living/simple_animal/hostile/blob/blobspore/weak/BS = new/mob/living/simple_animal/hostile/blob/blobspore/weak(T)
BS.overmind = B.overmind
BS.update_icons()
B.overmind.blob_mobs.Add(BS)
newB.overmind.blob_mobs.Add(BS)
//does brute damage but can replicate when damaged and has a chance of expanding again
/datum/reagent/blob/replicating_foam
@@ -82,15 +83,15 @@
/datum/reagent/blob/replicating_foam/damage_reaction(obj/effect/blob/B, original_health, damage, damage_type, cause)
if(damage > 0 && original_health - damage > 0)
var/obj/effect/blob/newB = B.expand()
var/obj/effect/blob/newB = B.expand(null, 0)
if(newB)
newB.health = original_health - damage
newB.check_health(cause)
newB.update_icon()
return ..()
/datum/reagent/blob/replicating_foam/expand_reaction(obj/effect/blob/B, turf/T)
B.expand() //do it again!
/datum/reagent/blob/replicating_foam/expand_reaction(obj/effect/blob/B, obj/effect/blob/newB, turf/T)
newB.expand() //do it again!
//does low burn and a lot of stamina damage, reacts to stamina damage
/datum/reagent/blob/energized_fibers
@@ -98,7 +99,7 @@
id = "energized_fibers"
description = "will do low burn and high stamina damage, and react to stamina damage."
shortdesc = "will do low burn and high stamina damage."
color = "#FFDC73"
color = "#EFD65A"
blobbernaut_message = "shocks"
message_living = ", and you feel a strong tingling sensation"
@@ -228,6 +229,29 @@
if(M)
M.adjustStaminaLoss(0.4*reac_volume)
//does burn damage and EMPs, slightly fragile
/datum/reagent/blob/electromagnetic_web
name = "Electromagnetic Web"
id = "electromagnetic_web"
description = "will do low burn damage and EMP targets, but is somewhat fragile."
color = "#83ECEC"
blobbernaut_message = "lashes"
message = "The blob lashes you"
message_living = ", and you hear a faint buzzing"
/datum/reagent/blob/electromagnetic_web/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
reac_volume = ..()
M.emp_act(2)
if(M)
M.apply_damage(0.6*reac_volume, BURN)
/datum/reagent/blob/electromagnetic_web/damage_reaction(obj/effect/blob/B, original_health, damage, damage_type, cause)
return damage * 1.2 //a laser will do 24 damage, which will kill any recently-made normal blob
/datum/reagent/blob/electromagnetic_web/death_reaction(obj/effect/blob/B, cause)
if(!isnull(cause))
empulse(B.loc, 2, 3) //less than screen range, so you can stand out of range to avoid it
//does brute damage, bonus damage for each nearby blob, and spreads damage out
/datum/reagent/blob/synchronous_mesh
name = "Synchronous Mesh"
@@ -260,9 +284,9 @@
for(var/obj/effect/blob/C in orange(1, B))
if(C.overmind && C.overmind.blob_reagent_datum == B.overmind.blob_reagent_datum && !istype(C, /obj/effect/blob/core)) //only hurt blobs that have the same overmind chemical and aren't cores
C.take_damage(damage/damagesplit, CLONE, B, 0)
return damage/damagesplit
return damage / damagesplit
else
return damage*1.25
return damage * 1.25
//does low brute damage, oxygen damage, and stamina damage and wets tiles when damaged
/datum/reagent/blob/pressurized_slime
+26 -19
View File
@@ -190,9 +190,9 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
/datum/uplink_item/dangerous/machinegun
name = "L6 Squad Automatic Weapon"
desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \
This deadly weapon has a massive 50-round magazine of devastating 7.62x51mm ammunition."
This deadly weapon has a massive 50-round magazine of devastating 5.56x45mm ammunition."
item = /obj/item/weapon/gun/projectile/automatic/l6_saw
cost = 23
cost = 18
surplus = 0
include_modes = list(/datum/game_mode/nuclear)
@@ -394,14 +394,14 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
name = "12g Slug Drum"
desc = "An additional 8-round slug magazine for use with the Bulldog shotgun. \
Now 8 times less likely to shoot your pals."
cost = 3
item = /obj/item/ammo_box/magazine/m12g
/datum/uplink_item/ammo/shotgun/slug
/datum/uplink_item/ammo/shotgun/stun
name = "12 Stun Slug Drum"
desc = "An alternative 8-round stun slug magazine for use with the Bulldog shotgun. \
Saying that they're completely non-lethal would be lying."
item = /obj/item/ammo_box/magazine/m12g/stun
cost = 3
include_modes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/shotgun/dragon
@@ -411,6 +411,13 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
item = /obj/item/ammo_box/magazine/m12g/dragon
include_modes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/shotgun/breach
name = "12g Breaching Shells"
desc = "An economic variant of the CMC meteorshot slugs, not as effective for knocking \
down targets, but still great for blasting airlocks off their frames."
item = /obj/item/ammo_box/magazine/m12g/breach
include_modes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/shotgun/bag
name = "12g Ammo Duffelbag"
desc = "A duffelbag filled with enough 12g ammo to supply an entire team, at a discounted price."
@@ -454,34 +461,34 @@ var/list/uplink_items = list() // Global list so we only initialize this once.
include_modes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/machinegun/basic
name = "7.62x51mm Box Magazine"
desc = "A 50-round magazine of 7.62x51mm ammunition for use with the L6 SAW. \
name = "5.56x45mm Box Magazine"
desc = "A 50-round magazine of 5.56x45mm ammunition for use with the L6 SAW. \
By the time you need to use this, you'll already be on a pile of corpses."
item = /obj/item/ammo_box/magazine/m762
item = /obj/item/ammo_box/magazine/mm556x45
/datum/uplink_item/ammo/machinegun/bleeding
name = "7.62x51mm (Bleeding) Box Magazine"
desc = "A 50-round magazine of 7.62x51mm ammunition for use in the L6 SAW; equipped with special properties \
name = "5.56x45mm (Bleeding) Box Magazine"
desc = "A 50-round magazine of 5.56x45mm ammunition for use in the L6 SAW; equipped with special properties \
to induce internal bleeding on targets."
item = /obj/item/ammo_box/magazine/m762/bleeding
item = /obj/item/ammo_box/magazine/mm556x45/bleeding
/datum/uplink_item/ammo/machinegun/hollow
name = "7.62x51mm (Hollow-Point) Box Magazine"
desc = "A 50-round magazine of 7.62x51mm ammunition for use in the L6 SAW; equipped with hollow-point tips to help \
name = "5.56x45mm (Hollow-Point) Box Magazine"
desc = "A 50-round magazine of 5.56x45mm ammunition for use in the L6 SAW; equipped with hollow-point tips to help \
with the unarmored masses of crew."
item = /obj/item/ammo_box/magazine/m762/hollow
item = /obj/item/ammo_box/magazine/mm556x45/hollow
/datum/uplink_item/ammo/machinegun/ap
name = "7.62x51mm (Armor Penetrating) Box Magazine"
desc = "A 50-round magazine of 7.62x51mm ammunition for use in the L6 SAW; equipped with special properties \
name = "5.56x45mm (Armor Penetrating) Box Magazine"
desc = "A 50-round magazine of 5.56x45mm ammunition for use in the L6 SAW; equipped with special properties \
to puncture even the most durable armor."
item = /obj/item/ammo_box/magazine/m762/ap
item = /obj/item/ammo_box/magazine/mm556x45/ap
/datum/uplink_item/ammo/machinegun/incen
name = "7.62x51mm (Incendiary) Box Magazine"
desc = "A 50-round magazine of 7.62x51mm ammunition for use in the L6 SAW; tipped with a special flammable \
name = "5.56x45mm (Incendiary) Box Magazine"
desc = "A 50-round magazine of 5.56x45mm ammunition for use in the L6 SAW; tipped with a special flammable \
mixture that'll ignite anyone struck by the bullet. Some men just want to watch the world burn."
item = /obj/item/ammo_box/magazine/m762/incen
item = /obj/item/ammo_box/magazine/mm556x45/incen
/datum/uplink_item/ammo/sniper
cost = 4