Merge branch 'master' of https://github.com/tgstation/-tg-station into planes_on_a_snake

This commit is contained in:
MrPerson
2016-04-27 17:03:32 -07:00
405 changed files with 76657 additions and 10331 deletions
+4 -3
View File
@@ -178,7 +178,8 @@
if(locked)
if(istype(W, /obj/item/weapon/card/emag))
boom(user)
if(istype(W, /obj/item/device/multitool))
return
else if(istype(W, /obj/item/device/multitool))
user << "<span class='notice'>DECA-CODE LOCK REPORT:</span>"
if(attempts == 1)
user << "<span class='warning'>* Anti-Tamper Bomb will activate on next failed access attempt.</span>"
@@ -199,8 +200,8 @@
else if(a)
++cows
user << "<span class='notice'>Last code attempt had [bulls] correct digits at correct positions and [cows] correct digits at incorrect positions.</span>"
else ..()
else ..()
return
return ..()
/obj/structure/closet/crate/secure/loot/togglelock(mob/user)
if(locked)
+70 -38
View File
@@ -93,7 +93,7 @@
if (!powered())
return
if(istype(W,/obj/item/weapon/card/id))
var/obj/item/weapon/card/id/I = usr.get_active_hand()
var/obj/item/weapon/card/id/I = user.get_active_hand()
if(istype(I) && !istype(inserted_id))
if(!user.drop_item())
return
@@ -112,12 +112,13 @@
if(default_deconstruction_screwdriver(user, "ore_redemption-open", "ore_redemption", W))
updateUsrDialog()
return
if(panel_open)
if(istype(W, /obj/item/weapon/crowbar))
empty_content()
default_deconstruction_crowbar(W)
return 1
..()
if(default_deconstruction_crowbar(W))
return
return ..()
/obj/machinery/mineral/ore_redemption/deconstruction()
empty_content()
/obj/machinery/mineral/ore_redemption/proc/SmeltMineral(obj/item/weapon/ore/O)
if(O.refined_type)
@@ -288,6 +289,7 @@
new /datum/data/mining_equipment("Hivelord Stabilizer", /obj/item/weapon/hivelordstabilizer , 400),
new /datum/data/mining_equipment("Shelter Capsule", /obj/item/weapon/survivalcapsule , 400),
new /datum/data/mining_equipment("GAR scanners", /obj/item/clothing/glasses/meson/gar, 500),
new /datum/data/mining_equipment("Explorer Belt", /obj/item/weapon/storage/belt/mining, 500),
new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/weapon/storage/firstaid/brute, 600),
new /datum/data/mining_equipment("Jaunter", /obj/item/device/wormhole_jaunter, 600),
new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 750),
@@ -406,19 +408,17 @@
if(default_deconstruction_screwdriver(user, "mining-open", "mining", I))
updateUsrDialog()
return
if(panel_open)
if(istype(I, /obj/item/weapon/crowbar))
default_deconstruction_crowbar(I)
return 1
..()
if(default_deconstruction_crowbar(I))
return
return ..()
/obj/machinery/mineral/equipment_vendor/proc/RedeemVoucher(obj/item/weapon/mining_voucher/voucher, mob/redeemer)
var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in list("Two Survival Capsules", "Resonator", "Mining Drone", "Advanced Scanner")
var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in list("Survival Capsule and Explorer Belt", "Resonator", "Mining Drone", "Advanced Scanner")
if(!selection || !Adjacent(redeemer) || qdeleted(voucher) || voucher.loc != redeemer)
return
switch(selection)
if("Two Survival Capsules")
new /obj/item/weapon/survivalcapsule(src.loc)
if("Survival Capsule and Explorer Belt")
new /obj/item/weapon/storage/belt/mining(src.loc)
new /obj/item/weapon/survivalcapsule(src.loc)
if("Resonator")
new /obj/item/weapon/resonator(src.loc)
@@ -474,7 +474,7 @@
/obj/item/device/wormhole_jaunter
name = "wormhole jaunter"
desc = "A single use device harnessing outdated wormhole technology, Nanotrasen has since turned its eyes to blue space for more accurate teleportation. The wormholes it creates are unpleasant to travel through, to say the least."
desc = "A single use device harnessing outdated wormhole technology, Nanotrasen has since turned its eyes to blue space for more accurate teleportation. The wormholes it creates are unpleasant to travel through, to say the least.\nThanks to modifications provided by the Free Golems, this jaunter can be worn on the belt to provide protection from chasms."
icon = 'icons/obj/mining.dmi'
icon_state = "Jaunter"
item_state = "electronic"
@@ -483,28 +483,58 @@
throw_speed = 3
throw_range = 5
origin_tech = "bluespace=2"
slot_flags = SLOT_BELT
/obj/item/device/wormhole_jaunter/attack_self(mob/user)
user.visible_message("<span class='notice'>[user.name] activates the [src.name]!</span>")
activate(user)
/obj/item/device/wormhole_jaunter/proc/turf_check(mob/user)
var/turf/device_turf = get_turf(user)
if(!device_turf||device_turf.z==2||device_turf.z>=7)
user << "<span class='notice'>You're having difficulties getting the [src.name] to work.</span>"
return FALSE
return TRUE
/obj/item/device/wormhole_jaunter/proc/activate(mob/user)
if(!turf_check(user))
return
var/list/L = list()
for(var/obj/item/device/radio/beacon/B in world)
var/turf/T = get_turf(B)
if(T.z == ZLEVEL_STATION)
L += B
if(!L.len)
user << "<span class='notice'>The [src.name] found no beacons in the world to anchor a wormhole to.</span>"
return
var/chosen_beacon = pick(L)
var/obj/effect/portal/wormhole/jaunt_tunnel/J = new /obj/effect/portal/wormhole/jaunt_tunnel(get_turf(src), chosen_beacon, lifespan=100)
J.target = chosen_beacon
try_move_adjacent(J)
playsound(src,'sound/effects/sparks4.ogg',50,1)
qdel(src)
/obj/item/device/wormhole_jaunter/emp_act(power)
var/triggered = FALSE
if(usr.get_item_by_slot(slot_belt) == src)
if(power == 1)
triggered = TRUE
else if(power == 2 && prob(50))
triggered = TRUE
if(triggered)
usr.visible_message("<span class='warning'>The [src] overloads and activates!</span>")
activate(usr)
/obj/item/device/wormhole_jaunter/proc/chasm_react(mob/user)
if(user.get_item_by_slot(slot_belt) == src)
user << "Your [src] activates, saving you from the chasm!</span>"
activate(user)
else
user.visible_message("<span class='notice'>[user.name] activates the [src.name]!</span>")
var/list/L = list()
for(var/obj/item/device/radio/beacon/B in world)
var/turf/T = get_turf(B)
if(T.z == ZLEVEL_STATION)
L += B
if(!L.len)
user << "<span class='notice'>The [src.name] failed to create a wormhole.</span>"
return
var/chosen_beacon = pick(L)
var/obj/effect/portal/wormhole/jaunt_tunnel/J = new /obj/effect/portal/wormhole/jaunt_tunnel(get_turf(src), chosen_beacon, lifespan=100)
J.target = chosen_beacon
try_move_adjacent(J)
playsound(src,'sound/effects/sparks4.ogg',50,1)
qdel(src)
user << "The [src] is not attached to your belt, preventing it from saving you from the chasm. RIP.</span>"
/obj/effect/portal/wormhole/jaunt_tunnel
name = "jaunt tunnel"
@@ -517,6 +547,8 @@
return
if(istype(M, /atom/movable))
if(do_teleport(M, target, 6))
// KERPLUNK
playsound(M,'sound/weapons/resonator_blast.ogg',50,1)
if(iscarbon(M))
var/mob/living/carbon/L = M
L.Weaken(3)
@@ -766,8 +798,8 @@
icon_state = "door_electronics"
icon = 'icons/obj/module.dmi'
/obj/item/device/mine_bot_ugprade/afterattack(mob/living/simple_animal/hostile/mining_drone/M, mob/user)
if(!istype(M))
/obj/item/device/mine_bot_ugprade/afterattack(mob/living/simple_animal/hostile/mining_drone/M, mob/user, proximity)
if(!istype(M) || !proximity)
return
upgrade_bot(M, user)
@@ -1019,20 +1051,20 @@
/*********************Hivelord stabilizer****************/
/obj/item/weapon/hivelordstabilizer
name = "hivelord stabilizer"
name = "stabilizing serum"
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle19"
desc = "Inject a hivelord core with this stabilizer to preserve its healing powers indefinitely."
desc = "Inject certain types of monster organs with this stabilizer to preserve their healing powers indefinitely."
w_class = 1
origin_tech = "biotech=1"
/obj/item/weapon/hivelordstabilizer/afterattack(obj/item/organ/internal/M, mob/user)
var/obj/item/organ/internal/hivelord_core/C = M
if(!istype(C, /obj/item/organ/internal/hivelord_core))
user << "<span class='warning'>The stabilizer only works on hivelord cores.</span>"
user << "<span class='warning'>The stabilizer only works on certain types of monster organs, generally regenerative in nature.</span>"
return ..()
C.preserved = 1
user << "<span class='notice'>You inject the hivelord core with the stabilizer. It will no longer go inert.</span>"
user << "<span class='notice'>You inject the [M] with the stabilizer. It will no longer go inert.</span>"
qdel(src)
@@ -1081,7 +1113,7 @@
new /datum/data/mining_equipment("Alien Toy", /obj/item/clothing/mask/facehugger/toy, 300),
new /datum/data/mining_equipment("Monkey Cube", /obj/item/weapon/reagent_containers/food/snacks/monkeycube, 300),
new /datum/data/mining_equipment("Toolbelt", /obj/item/weapon/storage/belt/utility, 350),
new /datum/data/mining_equipment("Hivelord Stabilizer", /obj/item/weapon/hivelordstabilizer, 400),
new /datum/data/mining_equipment("Stabilizing Serum", /obj/item/weapon/hivelordstabilizer, 400),
new /datum/data/mining_equipment("Shelter Capsule", /obj/item/weapon/survivalcapsule, 400),
new /datum/data/mining_equipment("GAR scanners", /obj/item/clothing/glasses/meson/gar, 500),
new /datum/data/mining_equipment("Sulphuric Acid", /obj/item/weapon/reagent_containers/glass/beaker/sulphuric, 500),
@@ -61,7 +61,8 @@
/obj/machinery/mineral/labor_claim_console/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/card/id))
return attack_hand(user)
..()
else
return ..()
/obj/machinery/mineral/labor_claim_console/emag_act(mob/user)
if(!emagged)
@@ -169,5 +170,5 @@
user << "<span class='notice'>Collect points by bringing smelted minerals to the Labor Shuttle stacking machine. Reach your quota to earn your release.</span>"
else
user << "<span class='warning'>Error: Invalid ID</span>"
return
..()
else
return ..()
@@ -38,7 +38,7 @@
if(11)
new /obj/vehicle/lavaboat/dragon(src)
if(12)
new /obj/item/upgradescroll(src)
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker(src)
if(13)
new /obj/item/weapon/sord(src)
if(14)
@@ -68,6 +68,7 @@
new /obj/item/weapon/spellbook/oneuse/smoke(src)
//Spooky special loot
/obj/item/device/wisp_lantern
@@ -368,14 +369,14 @@
result = /obj/item/weapon/oar
reqs = list(/obj/item/stack/sheet/bone = 2)
time = 15
category = CAT_MISC
category = CAT_PRIMAL
/datum/table_recipe/boat
name = "goliath hide boat"
result = /obj/vehicle/lavaboat
reqs = list(/obj/item/asteroid/goliath_hide = 3)
reqs = list(/obj/item/stack/sheet/animalhide/goliath_hide = 3)
time = 50
category = CAT_MISC
category = CAT_PRIMAL
//Dragon Boat
+11
View File
@@ -563,12 +563,23 @@
/turf/open/chasm/Entered(atom/movable/AM)
if(istype(AM, /obj/singularity) || istype(AM, /obj/item/projectile))
return
if(istype(AM, /obj/effect/portal))
// Portals aren't affected by gravity. Probably.
return
// Flies right over the chasm
if(istype(AM, /mob/living/simple_animal))
// apparently only simple_animals can fly??
var/mob/living/simple_animal/SA = AM
if(SA.flying)
return
if(istype(AM, /mob/living/carbon/human))
var/mob/living/carbon/human/H = AM
if(istype(H.belt, /obj/item/device/wormhole_jaunter))
var/obj/item/device/wormhole_jaunter/J = H.belt
// To freak out any bystanders
visible_message("[H] falls into [src]!")
J.chasm_react(H)
return
drop(AM)
+5 -4
View File
@@ -9,17 +9,17 @@
density = 1
pressure_resistance = 5*ONE_ATMOSPHERE
/obj/structure/ore_box/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
/obj/structure/ore_box/attackby(obj/item/weapon/W, mob/user, params)
if (istype(W, /obj/item/weapon/ore))
if(!user.drop_item())
return
W.loc = src
if (istype(W, /obj/item/weapon/storage))
else if (istype(W, /obj/item/weapon/storage))
var/obj/item/weapon/storage/S = W
for(var/obj/item/weapon/ore/O in S.contents)
S.remove_from_storage(O, src) //This will move the item to this item's contents
user << "<span class='notice'>You empty the ore in [S] into \the [src].</span>"
if(istype(W, /obj/item/weapon/crowbar))
else if(istype(W, /obj/item/weapon/crowbar))
playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
var/obj/item/weapon/crowbar/C = W
var/time = 50
@@ -30,7 +30,8 @@
var/obj/item/stack/sheet/mineral/wood/wo = new (loc, 4)
wo.add_fingerprint(user)
deconstruct()
return
else
return ..()
/obj/structure/ore_box/attack_hand(mob/user)
if(Adjacent(user))