Merge branch 'master' into upstream-merge-36442

This commit is contained in:
LetterJay
2018-04-01 19:50:37 -05:00
committed by GitHub
132 changed files with 1560 additions and 536 deletions
+13 -3
View File
@@ -9,6 +9,7 @@
icon_state = "blueprints"
attack_verb = list("attacked", "bapped", "hit")
var/fluffnotice = "Nobody's gonna read this stuff!"
var/in_use = FALSE
/obj/item/areaeditor/attack_self(mob/user)
add_fingerprint(user)
@@ -25,12 +26,16 @@
/obj/item/areaeditor/Topic(href, href_list)
if(..())
return
return TRUE
if(!usr.canUseTopic(src))
usr << browse(null, "window=blueprints")
return
return TRUE
if(href_list["create_area"])
if(in_use)
return
in_use = TRUE
create_area(usr)
in_use = FALSE
updateUsrDialog()
//Station blueprints!!!
@@ -79,11 +84,16 @@
/obj/item/areaeditor/blueprints/Topic(href, href_list)
..()
if(..())
return
if(href_list["edit_area"])
if(get_area_type()!=AREA_STATION)
return
if(in_use)
return
in_use = TRUE
edit_area()
in_use = FALSE
if(href_list["exit_legend"])
legend = FALSE;
if(href_list["view_legend"])
@@ -28,7 +28,10 @@
disrupt()
/obj/item/device/chameleon/attack_self(mob/user)
toggle(user)
if (isturf(user.loc) || istype(user.loc, /obj/structure) || active_dummy)
toggle(user)
else
to_chat(user, "<span class='userwarning'>You can't use [src] while inside something.</span>")
/obj/item/device/chameleon/afterattack(atom/target, mob/user , proximity)
if(!proximity)
@@ -27,6 +27,18 @@
/obj/item/grenade/chem_grenade/examine(mob/user)
display_timer = (stage == READY && !nadeassembly) //show/hide the timer based on assembly state
..()
if(user.can_see_reagents())
var/count = 0
if(beakers.len)
to_chat(user, "<span class='notice'>You scan the grenade and detect the following reagents:</span>")
for(var/obj/item/reagent_containers/glass/G in beakers)
var/textcount = thtotext(++count)
for(var/datum/reagent/R in G.reagents.reagent_list)
to_chat(user, "<span class='notice'>[R.volume] units of [R.name] in the [textcount] beaker.</span>")
if(beakers.len == 1)
to_chat(user, "<span class='notice'>You detect no second beaker in the grenade.</span>")
else
to_chat(user, "<span class='notice'>You scan the grenade, but detect nothing.</span>")
/obj/item/grenade/chem_grenade/attack_self(mob/user)
+33 -14
View File
@@ -23,8 +23,31 @@
var/detonate_flash_range = 5
var/detonate_fire_range = 5
var/active = FALSE
var/color_val = FALSE
var/datum/weakref/current
/obj/item/hot_potato/Destroy()
if(active)
deactivate()
return ..()
/obj/item/hot_potato/proc/colorize(mob/target)
//Clear color from old target
if(current)
var/mob/M = current.resolve()
if(istype(M))
M.remove_atom_colour(FIXED_COLOUR_PRIORITY)
//Give to new target
current = null
//Swap colors
color_val = !color_val
if(istype(target))
current = WEAKREF(target)
target.add_atom_colour(color_val? "#ffff00" : "#00ffff", FIXED_COLOUR_PRIORITY)
/obj/item/hot_potato/proc/detonate()
var/atom/location = loc
location.visible_message("<span class='userdanger'>[src] [detonate_explosion? "explodes" : "activates"]!</span>", "<span class='userdanger'>[src] activates! You've ran out of time!</span>")
@@ -37,9 +60,6 @@
M.dropItemToGround(src, TRUE)
qdel(src)
/obj/item/hot_potato/proc/is_active()
return isnull(detonation_timerid)? FALSE : TRUE
/obj/item/hot_potato/attack_self(mob/user)
if(activate(timer, user))
user.visible_message("<span class='boldwarning'>[user] squeezes [src], which promptly starts to flash red-hot colors!</span>", "<span class='boldwarning'>You squeeze [src], activating its countdown and attachment mechanism!</span>",
@@ -56,19 +76,18 @@
L.SetSleeping(0)
L.SetUnconscious(0)
L.reagents.add_reagent("muscle_stimulant", CLAMP(5 - L.reagents.get_reagent_amount("muscle_stimulant"), 0, 5)) //If you don't have legs or get bola'd, tough luck!
color_val = !color_val
L.add_atom_colour(color_val? "#ffff00" : "#00ffff", FIXED_COLOUR_PRIORITY)
colorize(L)
/obj/item/hot_potato/examine(mob/user)
. = ..()
if(is_active())
if(active)
to_chat(user, "<span class='warning'>[src] is flashing red-hot! You should probably get rid of it!</span>")
if(show_timer)
to_chat(user, "<span class='warning'>[src]'s timer looks to be at [DisplayTimeText(activation_time - world.time)]!</span>")
/obj/item/hot_potato/equipped(mob/user)
. = ..()
if(is_active())
if(active)
to_chat(user, "<span class='userdanger'>You have a really bad feeling about [src]!</span>")
/obj/item/hot_potato/afterattack(atom/target, mob/user, adjacent, params)
@@ -99,7 +118,7 @@
if(.)
add_logs(user, victim, "forced a hot potato with explosive variables ([detonate_explosion]-[detonate_dev_range]/[detonate_heavy_range]/[detonate_light_range]/[detonate_flash_range]/[detonate_fire_range]) onto")
user.visible_message("<span class='userdanger'>[user] forces [src] onto [victim]!</span>", "<span class='userdanger'>You force [src] onto [victim]!</span>", "<span class='boldwarning'>You hear a mechanical click and a beep.</span>")
user.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY)
colorize(null)
else
add_logs(user, victim, "tried to force a hot potato with explosive variables ([detonate_explosion]-[detonate_dev_range]/[detonate_heavy_range]/[detonate_light_range]/[detonate_flash_range]/[detonate_fire_range]) onto")
user.visible_message("<span class='boldwarning'>[user] tried to force [src] onto [victim], but it could not attach!</span>", "<span class='boldwarning'>You try to force [src] onto [victim], but it is unable to attach!</span>", "<span class='boldwarning'>You hear a mechanical click and two buzzes.</span>")
@@ -107,10 +126,10 @@
/obj/item/hot_potato/dropped(mob/user)
. = ..()
user.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY)
colorize(null)
/obj/item/hot_potato/proc/activate(delay, mob/user)
if(is_active())
if(active)
return
update_icon()
if(sticky)
@@ -122,6 +141,7 @@
var/turf/T = get_turf(src)
message_admins("[user? "[ADMIN_LOOKUPFLW(user)] has primed [src]" : "A [src] has been primed"] (Timer:[delay],Explosive:[detonate_explosion],Range:[detonate_dev_range]/[detonate_heavy_range]/[detonate_light_range]/[detonate_fire_range]) for detonation at [COORD(T)]([T.loc])")
log_game("[user? "[user] has primed [src]" : "A [src] has been primed"] ([detonate_dev_range]/[detonate_heavy_range]/[detonate_light_range]/[detonate_fire_range]) for detonation at [COORD(T)]([T.loc])")
active = TRUE
/obj/item/hot_potato/proc/deactivate()
update_icon()
@@ -130,12 +150,11 @@
deltimer(detonation_timerid)
STOP_PROCESSING(SSfastprocess, src)
detonation_timerid = null
if(ismob(loc))
var/mob/user = loc
user.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY)
colorize(null)
active = FALSE
/obj/item/hot_potato/update_icon()
icon_state = is_active()? icon_on : icon_off
icon_state = active? icon_on : icon_off
/obj/item/hot_potato/syndicate
detonate_light_range = 4
+1 -1
View File
@@ -70,7 +70,7 @@
H.sec_hud_set_implants()
if(user)
add_logs(user, target, "implanted", object="[name]")
add_logs(user, target, "implanted", "\a [name]")
return 1
@@ -61,6 +61,7 @@
icon = 'icons/obj/telescience.dmi'
icon_state = "polycrystal"
item_state = "sheet-polycrystal"
singular_name = "bluespace polycrystal"
desc = "A stable polycrystal, made of fused-together bluespace crystals. You could probably break one off."
materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT)
attack_verb = list("bluespace polybashed", "bluespace polybattered", "bluespace polybludgeoned", "bluespace polythrashed", "bluespace polysmashed")
@@ -78,6 +78,15 @@
icon_state = "toolbox_blue_old"
has_latches = FALSE
/obj/item/storage/toolbox/mechanical/old/heirloom
name = "toolbox" //this will be named "X family toolbox"
desc = "It's seen better days."
force = 5
w_class = WEIGHT_CLASS_NORMAL
/obj/item/storage/toolbox/mechanical/old/heirloom/PopulateContents()
return
/obj/item/storage/toolbox/electrical
name = "electrical toolbox"
icon_state = "yellow"