Final merge

Merge branch 'development-2' into development

# Conflicts:
#	baystation12.dme
#	code/_helpers/icons.dm
#	code/controllers/master_controller.dm
#	code/game/machinery/Sleeper.dm
#	code/game/machinery/computer3/laptop.dm
#	code/game/machinery/doors/door.dm
#	code/game/machinery/floorlayer.dm
#	code/game/machinery/vending.dm
#	code/game/mecha/mech_fabricator.dm
#	code/game/objects/effects/decals/contraband.dm
#	code/game/objects/explosion.dm
#	code/game/objects/items/robot/robot_upgrades.dm
#	code/game/objects/items/weapons/melee/misc.dm
#	code/game/objects/items/weapons/storage/boxes.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/game/objects/structures/window.dm
#	code/modules/clothing/spacesuits/rig/rig.dm
#	code/modules/clothing/suits/jobs.dm
#	code/modules/mob/freelook/update_triggers.dm
#	code/modules/mob/living/carbon/human/human_defense.dm
#	code/modules/mob/living/carbon/human/human_movement.dm
#	code/modules/mob/living/carbon/human/life.dm
#	code/modules/mob/living/carbon/human/species/species.dm
#	code/modules/mob/living/carbon/human/species/station/station.dm
#	code/modules/mob/living/living_defines.dm
#	code/modules/mob/mob_helpers.dm
#	code/modules/mob/mob_movement.dm
#	code/modules/projectiles/ammunition/boxes.dm
#	nano/templates/sleeper.tmpl
This commit is contained in:
skull132
2016-11-12 00:10:21 +02:00
187 changed files with 6193 additions and 1183 deletions
+17 -1
View File
@@ -324,4 +324,20 @@
ammo_type = /obj/item/ammo_casing/cap
matter = list(DEFAULT_WALL_MATERIAL = 600)
max_ammo = 7
multiple_sprites = 1
multiple_sprites = 1
//dragunov magazine
/obj/item/ammo_magazine/d762
name = "magazine (7.62mm)"
icon = 'icons/obj/dragunov.dmi'
icon_state = "SVD"
mag_type = MAGAZINE
caliber = "a762"
matter = list(DEFAULT_WALL_MATERIAL = 1200)
ammo_type = /obj/item/ammo_casing/a762
max_ammo = 10
multiple_sprites = 1
/obj/item/ammo_magazine/d762/empty
initial_ammo = 0
@@ -19,7 +19,7 @@
load_method = SINGLE_CASING
/obj/item/weapon/gun/projectile/shotgun/improvised/special_check(var/mob/living/carbon/human/M)
if(prob(60 - (loaded.len * 10)))
if(prob(35))
M.visible_message("<span class='danger'>[M]'s weapon blows up, shattering into pieces!</span>","<span class='danger'>[src] blows up in your face!</span>", "You hear a loud bang!")
M.take_organ_damage(0,30)
M.drop_item()
@@ -140,7 +140,7 @@
origin_tech = "combat=2;materials=2"
fire_sound = 'sound/weapons/Gunshot_light.ogg'
load_method = MAGAZINE
jam_chance = 55
jam_chance = 30
/obj/item/weapon/stock/update_icon()
icon_state = "ipistol[buildstate]"
@@ -0,0 +1,64 @@
/obj/item/weapon/gun/projectile/dragunov
name = "\improper dragunov sniper rifle"
desc = "An old semi-automatic marksman rifle. Uses 7.62mm rounds."
icon = 'icons/obj/dragunov.dmi'
icon_state = "dragunov"
item_state = "dragunov"
contained_sprite = 1
w_class = 4
force = 10
slot_flags = SLOT_BACK
origin_tech = "combat=8;materials=3;syndicate=5"
caliber = "a762"
recoil = 2
fire_sound = 'sound/weapons/svd_shot.ogg'
load_method = MAGAZINE
max_shells = 10
magazine_type = /obj/item/ammo_magazine/d762
allowed_magazines = list(/obj/item/ammo_magazine/d762)
accuracy = -4
scoped_accuracy = 2
recoil_wielded = 1
accuracy_wielded = 0
//action button for wielding
icon_action_button = "action_blank"
action_button_name = "Wield rifle"
/obj/item/weapon/gun/projectile/dragunov/update_icon()
if(ammo_magazine)
icon_state = "dragunov"
else
icon_state = "dragunov-empty"
/obj/item/weapon/gun/projectile/dragunov/can_wield()
return 1
/obj/item/weapon/gun/projectile/dragunov/ui_action_click()
if(src in usr)
toggle_wield(usr)
/obj/item/weapon/gun/projectile/dragunov/verb/wield_rifle()
set name = "Wield rifle"
set category = "Object"
set src in usr
toggle_wield(usr)
/obj/item/weapon/gun/projectile/dragunov/special_check(mob/user)
if(!wielded)
user << "<span class='warning'>You can't fire without stabilizing the rifle!</span>"
return 0
return ..()
/obj/item/weapon/gun/projectile/dragunov/verb/scope()
set category = "Object"
set name = "Use Scope"
set popup_menu = 1
if(wielded)
toggle_scope(2.0)
else
usr << "<span class='warning'>You can't look through the scope without stabilizing the rifle!</span>"
+22 -8
View File
@@ -176,24 +176,38 @@
..()
/obj/item/projectile/beam/mousegun/proc/mousepulse(turf/epicenter, range, log=0)
if(!epicenter) return
if (!epicenter)
return
if(!istype(epicenter, /turf))
if (!istype(epicenter, /turf))
epicenter = get_turf(epicenter.loc)
for(var/atom/T in range(range, epicenter))
var/distance = get_dist(epicenter, T)
if(distance < 0)
for (var/mob/living/M in range(range, epicenter))
var/distance = get_dist(epicenter, M)
if (distance < 0)
distance = 0
if(distance <= range)
var/mob/living/M = T
if (distance <= range)
if (M.mob_size <= 2 && (M.find_type() & TYPE_ORGANIC))
M.visible_message("<span class='danger'>[M] bursts like a balloon!</span>")
M.gib()
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(3, 1, M)
s.start()
T << 'sound/effects/basscannon.ogg'
else if (iscarbon(M) && M.contents.len)
for (var/obj/item/weapon/holder/H in M.contents)
if (!H.contained)
continue
var/mob/living/A = H.contained
if (!istype(A))
continue
if (A.mob_size <= 2 && (A.find_type() & TYPE_ORGANIC))
H.release_mob()
A.visible_message("<span class='danger'>[A] bursts like a balloon!</span>")
A.gib()
M << 'sound/effects/basscannon.ogg'
return 1
/obj/item/projectile/beam/shotgun
+8 -11
View File
@@ -131,7 +131,7 @@
icon = 'icons/obj/apiary_bees_etc.dmi'
icon_state = "beegun"
check_armour = "bio"
damage = 0
damage = 5
damage_type = BRUTE
pass_flags = PASSTABLE | PASSGRILLE
embed = 0
@@ -139,16 +139,13 @@
/obj/item/projectile/energy/bee/on_impact(var/atom/A)
playsound(src.loc, pick('sound/effects/Buzz1.ogg','sound/effects/Buzz2.ogg'), 70, 1)
for(var/i=1, i<=8, i++)
var/mob/living/simple_animal/bee/x = new /mob/living/simple_animal/bee
x.loc = A
x.feral = 25
if(ismob(A))
x.target_mob = A
if(prob(50))
for(var/j = 1, j <= rand(1, 3), j++)
step(x, pick(NORTH,SOUTH,EAST,WEST))
var/turf/T = get_turf(A)
if(!istype(T, /turf/simulated/wall) && !istype(T, /turf/simulated/shuttle/wall) && !istype(A, /obj/structure/window) && !istype(A, /obj/machinery/door))
for(var/i=1, i<=8, i++)
var/atom/movable/x = new /mob/living/simple_animal/bee/beegun //hackmaster pro, butt fuck it
x.forceMove(T)
else
src.visible_message("<span class='danger'>[src] splat sickly against [T]!</span>")
..()
/obj/item/projectile/energy/blaster