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

Conflicts:
	tgui/assets/tgui.js
This commit is contained in:
AndrewJacksonThe2nd
2016-09-02 15:42:17 -07:00
37 changed files with 298 additions and 130 deletions
+17 -1
View File
@@ -147,11 +147,27 @@
name = "NULL_ENTRY"
hidden = TRUE
cost = 14000
contains = list(/obj/item/weapon/storage/box/syndicate)
contains = list()
crate_name = "emergency crate"
crate_type = /obj/structure/closet/crate/internals
dangerous = TRUE
/datum/supply_pack/emergency/syndicate/fill(obj/structure/closet/crate/C)
var/static/list/uplink_items = get_uplink_items()
var/crate_value = 50
while(crate_value)
var/category = pick(uplink_items)
var/item = pick(uplink_items[category])
var/datum/uplink_item/I = uplink_items[category][item]
if(!I.surplus || prob(100 - I.surplus))
continue
if(crate_value < I.cost)
continue
crate_value -= I.cost
new I.item(C)
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Security ////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
-1
View File
@@ -110,7 +110,6 @@
return 1
/datum/personal_crafting/proc/construct_item(mob/user, datum/crafting_recipe/R)
for(var/A in R.parts)
var/list/contents = get_surroundings(user)
var/send_feedback = 1
if(check_contents(R, contents))
@@ -375,8 +375,10 @@
active = 1
var/turf/bombturf = get_turf(src)
var/area/bombarea = get_area(bombturf)
message_admins("[key_name(user)]<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A> has primed a [name] for detonation at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[bombarea] (JMP)</a>.")
log_game("[key_name(user)] has primed a [name] for detonation at [bombarea] ([bombturf.x],[bombturf.y],[bombturf.z]).")
var/message = "[ADMIN_LOOKUP(user)] has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)]."
bombers += message
message_admins(message)
log_game("[key_name(user)] has primed a [name] for detonation at [bombarea] [COORD(bombturf)].")
user << "<span class='info'>You light \the [src] on fire.</span>"
add_overlay(fire_overlay)
+8 -7
View File
@@ -154,17 +154,18 @@
return 1
//Called when you finish tablecrafting a snack.
/obj/item/weapon/reagent_containers/food/snacks/CheckParts(list/parts_list, datum/crafting_recipe/R)
/obj/item/weapon/reagent_containers/food/snacks/CheckParts(list/parts_list, datum/crafting_recipe/food/R)
..()
reagents.reagent_list.Cut()
for(var/obj/item/weapon/reagent_containers/RC in contents)
RC.reagents.trans_to(reagents, RC.reagents.maximum_volume)
contents_loop:
for(var/A in contents)
for(var/B in initial(R.parts))
if(istype(A, B))
continue contents_loop
qdel(A)
if(istype(R))
contents_loop:
for(var/A in contents)
for(var/B in R.real_parts)
if(istype(A, B))
continue contents_loop
qdel(A)
feedback_add_details("food_made","[type]")
if(bonus_reagents.len)
for(var/r_id in bonus_reagents)
+4 -1
View File
@@ -31,6 +31,7 @@
/obj/item/pizzabox/Destroy()
unprocess()
return ..()
/obj/item/pizzabox/update_icon()
// Description
@@ -106,7 +107,9 @@
bomb_timer = Clamp(Ceiling(bomb_timer / 2), BOMB_TIMER_MIN, BOMB_TIMER_MAX)
bomb_defused = FALSE
message_admins("[key_name_admin(user)]<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A> (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[user]'>FLW</A>) has trapped a [src] with [bomb] set to [bomb_timer * 2] seconds.")
var/message = "[ADMIN_LOOKUPFLW(user)] has trapped a [src] with [bomb] set to [bomb_timer * 2] seconds."
bombers += message
message_admins(message)
log_game("[key_name(user)] has trapped a [src] with [bomb] set to [bomb_timer * 2] seconds.")
bomb.adminlog = "The [bomb.name] in [src.name] that [key_name(user)] activated has detonated!"
@@ -1,4 +1,8 @@
/datum/crafting_recipe/food
var/real_parts
/datum/crafting_recipe/food/New()
real_parts = parts.Copy()
parts |= reqs
//////////////////////////////////////////FOOD MIXTURES////////////////////////////////////
+4 -2
View File
@@ -104,8 +104,10 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/firelemon/attack_self(mob/living/user)
var/area/A = get_area(user)
user.visible_message("<span class='warning'>[user] primes the [src]!</span>", "<span class='userdanger'>You prime the [src]!</span>")
message_admins("[user] ([user.key ? user.key : "no key"]) primed a combustible lemon for detonation at [A] ([user.x], [user.y], [user.z]) <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>(JMP)</a>")
log_game("[user] ([user.key ? user.key : "no key"]) primed a combustible lemon for detonation at [A] ([user.x],[user.y],[user.z]).")
var/message = "[ADMIN_LOOKUPFLW(user)] primed a combustible lemon for detonation at [A] [ADMIN_COORDJMP(user)]"
bombers += message
message_admins(message)
log_game("[key_name(user)] primed a combustible lemon for detonation at [A] [COORD(user)].")
if(iscarbon(user))
var/mob/living/carbon/C = user
C.throw_mode_on()
+8
View File
@@ -683,6 +683,14 @@
return
if(alert(user, "This will make [src] self-sustaining but consume [O] forever. Are you sure?", "[name]", "I'm Sure", "Abort") == "Abort" || !user)
return
if(!Adjacent(user))
return
if(self_sustaining)
user << "<span class='warning'>This [name] is already self-sustaining!</span>"
return
if(myseed || weedlevel)
user << "<span class='warning'>[src] needs to be clear of plants and weeds!</span>"
return
user.visible_message("<span class='notice'>[user] gently pulls open the soil for [O] and places it inside.</span>", "<span class='notice'>You tenderly root [O] into [src].</span>")
user.drop_item()
qdel(O)
@@ -4,6 +4,7 @@
name = "necropolis chest"
desc = "It's watching you closely."
icon_state = "necrocrate"
burn_state = LAVA_PROOF
/obj/structure/closet/crate/necropolis/tendril
desc = "It's watching you suspiciously."
@@ -236,7 +236,7 @@
else
src << "<span class='notice'>Unusable emote '[act]'. Say *help for a list.</span>"
if (message && src.stat == CONSCIOUS)
if (message && stat == CONSCIOUS)
log_emote("[name]/[key] : [message]")
if (m_type & 1)
visible_message(message)
@@ -248,9 +248,10 @@
set category = "Robot Commands"
set name = "Power Warning"
if(!cell || !cell.charge)
visible_message("The power warning light on <span class='name'>[src]</span> flashes urgently.",\
"You announce you are operating in low power mode.")
playsound(loc, 'sound/machines/buzz-two.ogg', 50, 0)
else
src << "<span class='warning'>You can only use this emote when you're out of charge.</span>"
if(stat == CONSCIOUS)
if(!cell || !cell.charge)
visible_message("The power warning light on <span class='name'>[src]</span> flashes urgently.",\
"You announce you are operating in low power mode.")
playsound(loc, 'sound/machines/buzz-two.ogg', 50, 0)
else
src << "<span class='warning'>You can only use this emote when you're out of charge.</span>"
+2 -1
View File
@@ -15,7 +15,8 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics,
/obj/machinery/field/containment,
/obj/structure/disposalpipe,
/obj/structure/sign,
/obj/machinery/gateway))
/obj/machinery/gateway,
/obj/structure/lattice))
/obj/singularity/energy_ball
name = "energy ball"
+28 -27
View File
@@ -12,22 +12,22 @@
/obj/structure/reagent_dispensers/ex_act(severity, target)
switch(severity)
if(1)
qdel(src)
boom()
return
if(2)
if (prob(50))
qdel(src)
boom()
return
if(3)
if (prob(5))
qdel(src)
boom()
return
else
return
/obj/structure/reagent_dispensers/blob_act(obj/effect/blob/B)
if(prob(50))
qdel(src)
boom()
/obj/structure/reagent_dispensers/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/weapon/reagent_containers))
@@ -48,42 +48,39 @@
user << "<span class='danger'>It's empty.</span>"
/obj/structure/reagent_dispensers/proc/boom()
qdel(src)
/obj/structure/reagent_dispensers/watertank
name = "water tank"
desc = "A water tank."
icon_state = "water"
/obj/structure/reagent_dispensers/watertank/ex_act(severity, target)
switch(severity)
if(1)
qdel(src)
return
if(2)
if (prob(50))
PoolOrNew(/obj/effect/particle_effect/water, src.loc)
qdel(src)
return
if(3)
if (prob(5))
PoolOrNew(/obj/effect/particle_effect/water, src.loc)
qdel(src)
return
else
return
/obj/structure/reagent_dispensers/waterank/bullet_act(obj/item/projectile/Proj)
..()
if(tank_volume && istype(Proj) && !Proj.nodamage && ((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE)))
boom()
/obj/structure/reagent_dispensers/watertank/boom()
playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6)
PoolOrNew(/obj/effect/particle_effect/water, loc)
for(var/turf/open/T in view(5,loc))
T.MakeSlippery(min_wet_time = 20, wet_time_to_add = 15)
for(var/mob/living/L in T)
L.adjust_fire_stacks(-20)
qdel(src)
/obj/structure/reagent_dispensers/watertank/blob_act(obj/effect/blob/B)
if(prob(50))
PoolOrNew(/obj/effect/particle_effect/water, loc)
qdel(src)
/obj/structure/reagent_dispensers/watertank/high
name = "high-capacity water tank"
desc = "A highly-pressurized water tank made to hold gargantuan amounts of water.."
icon_state = "water_high" //I was gonna clean my room...
tank_volume = 100000
/obj/structure/reagent_dispensers/fueltank
name = "fuel tank"
desc = "A tank full of industrial welding fuel. Do not consume."
@@ -93,11 +90,13 @@
/obj/structure/reagent_dispensers/fueltank/bullet_act(obj/item/projectile/Proj)
..()
if(istype(Proj) && !Proj.nodamage && ((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE)))
message_admins("[key_name_admin(Proj.firer)] triggered a fueltank explosion via projectile.")
var/boom_message = "[key_name_admin(Proj.firer)] triggered a fueltank explosion via projectile."
bombers += boom_message
message_admins(boom_message)
log_game("[key_name(Proj.firer)] triggered a fueltank explosion via projectile.")
boom()
/obj/structure/reagent_dispensers/fueltank/proc/boom()
/obj/structure/reagent_dispensers/fueltank/boom()
explosion(get_turf(src), 0, 1, 5, flame_range = 5)
qdel(src)
@@ -130,7 +129,9 @@
update_icon()
else
user.visible_message("<span class='warning'>[user] catastrophically fails at refilling \his [W.name]!</span>", "<span class='userdanger'>That was stupid of you.</span>")
message_admins("[key_name_admin(user)] triggered a fueltank explosion via welding tool.")
var/message = "[key_name_admin(user)] triggered a fueltank explosion via welding tool."
bombers += message
message_admins(message)
log_game("[key_name(user)] triggered a fueltank explosion via welding tool.")
boom()
return
@@ -189,4 +190,4 @@
desc = "A dispenser of low-potency virus mutagenic."
icon_state = "virus_food"
anchored = 1
reagent_id = "virusfood"
reagent_id = "virusfood"
+6 -3
View File
@@ -139,8 +139,11 @@
speculation += rand(-400, 0) / 1000 * speculation
if (prob(1) && prob(5)) // pop that bubble
speculation += rand(-4000, 0) / 1000 * speculation
current_value += (speculation / rand(25000, 50000) + performance / rand(100, 800)) * current_value
var/fucking_stock_spikes = current_value + 500
var/piece_of_shit_fuck = current_value - 500
var/i_hate_this_code = (speculation / rand(25000, 50000) + performance / rand(100, 800)) * current_value
if(i_hate_this_code < fucking_stock_spikes || i_hate_this_code > piece_of_shit_fuck)
current_value += i_hate_this_code
if (current_value < 5)
current_value = 5
@@ -306,4 +309,4 @@
return 0
/datum/stock/proc/displayValues(var/mob/user)
user << browse(plotBarGraph(values, "[name] share value per share"), "window=stock_[name];size=450x450")
user << browse(plotBarGraph(values, "[name] share value per share"), "window=stock_[name];size=450x450")