Merge branch 'master' into upstream-merge-33783

This commit is contained in:
LetterJay
2017-12-29 06:49:47 -06:00
committed by GitHub
55 changed files with 2371 additions and 17035 deletions
+14 -15
View File
@@ -452,11 +452,7 @@
for(var/device_id in A.air_scrub_names)
send_signal(device_id, list(
"power" = 1,
"co2_scrub" = 1,
"tox_scrub" = 0,
"n2o_scrub" = 0,
"rare_scrub"= 0,
"water_vapor_scrub"= 0,
"set_filters" = list(/datum/gas/carbon_dioxide),
"scrubbing" = 1,
"widenet" = 0,
))
@@ -470,11 +466,18 @@
for(var/device_id in A.air_scrub_names)
send_signal(device_id, list(
"power" = 1,
"co2_scrub" = 1,
"tox_scrub" = 1,
"n2o_scrub" = 1,
"rare_scrub"= 1,
"water_vapor_scrub"= 1,
"set_filters" = list(
/datum/gas/carbon_dioxide,
/datum/gas/plasma,
/datum/gas/water_vapor,
/datum/gas/hypernoblium,
/datum/gas/nitrous_oxide,
/datum/gas/nitryl,
/datum/gas/tritium,
/datum/gas/bz,
/datum/gas/stimulum,
/datum/gas/pluoxium
),
"scrubbing" = 1,
"widenet" = 1,
))
@@ -501,11 +504,7 @@
for(var/device_id in A.air_scrub_names)
send_signal(device_id, list(
"power" = 1,
"co2_scrub" = 1,
"tox_scrub" = 0,
"n2o_scrub" = 0,
"rare_scrub"= 0,
"water_vapor_scrub"= 0,
"set_filters" = list(/datum/gas/carbon_dioxide),
"scrubbing" = 1,
"widenet" = 0,
))
@@ -242,6 +242,11 @@
if("toggle_filter" in signal.data)
filter_types ^= gas_id2path(signal.data["toggle_filter"])
if("set_filters" in signal.data)
filter_types = list()
for(var/gas in signal.data["set_filters"])
filter_types += gas_id2path(gas)
if("init" in signal.data)
name = signal.data["init"]
return
@@ -26,6 +26,7 @@
flags_2 = SLOWS_WHILE_IN_HAND_2
var/team = WHITE_TEAM
var/reset_cooldown = 0
var/anyonecanpickup = TRUE
var/obj/effect/ctf/flag_reset/reset
var/reset_path = /obj/effect/ctf/flag_reset
@@ -48,7 +49,7 @@
STOP_PROCESSING(SSobj, src)
/obj/item/twohanded/ctf/attack_hand(mob/living/user)
if(!is_ctf_target(user))
if(!is_ctf_target(user) && !anyonecanpickup)
to_chat(user, "Non players shouldn't be moving the flag!")
return
if(team in user.faction)
+13
View File
@@ -72,6 +72,9 @@
freeze_projectile(A)
else
return FALSE
into_the_negative_zone(A)
return TRUE
/datum/proximity_monitor/advanced/timestop/proc/unfreeze_all()
@@ -106,6 +109,7 @@
return ..()
/datum/proximity_monitor/advanced/timestop/proc/unfreeze_projectile(obj/item/projectile/P)
escape_the_negative_zone(P)
frozen_projectiles -= P
P.paused = FALSE
@@ -123,9 +127,18 @@
H.LoseTarget()
/datum/proximity_monitor/advanced/timestop/proc/unfreeze_mob(mob/living/L)
escape_the_negative_zone(L)
L.AdjustStun(-20, 1, 1)
L.anchored = frozen_mobs[L]
frozen_mobs -= L
if(ishostile(L))
var/mob/living/simple_animal/hostile/H = L
H.toggle_ai(initial(H.AIStatus))
//you don't look quite right, is something the matter?
/datum/proximity_monitor/advanced/timestop/proc/into_the_negative_zone(atom/A)
A.add_atom_colour(list(-1,0,0,0, 0,-1,0,0, 0,0,-1,0, 0,0,0,1, 1,1,1,0), TEMPORARY_COLOUR_PRIORITY)
//let's put some colour back into your cheeks
/datum/proximity_monitor/advanced/timestop/proc/escape_the_negative_zone(atom/A)
A.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY)
@@ -641,7 +641,11 @@ $(function() {
opts.updatedVolume = newVolume;
sendVolumeUpdate();
internalOutput('<span class="internal boldnshit">Loaded music volume of: '+savedConfig.smusicVolume+'</span>', 'internal');
}
}
else{
$('#adminMusic').prop('volume', opts.defaultMusicVolume / 100);
}
if (savedConfig.smessagecombining) {
if (savedConfig.smessagecombining == 'false') {
opts.messageCombining = false;
@@ -649,9 +653,7 @@ $(function() {
opts.messageCombining = true;
}
}
else {
$('#adminMusic').prop('volume', opts.defaultMusicVolume / 100);
}
(function() {
var dataCookie = getCookie('connData');
+1 -1
View File
@@ -15,7 +15,6 @@
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/apple/gold)
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
juice_results = list("applejuice" = 0)
/obj/item/reagent_containers/food/snacks/grown/apple
seed = /obj/item/seeds/apple
@@ -25,6 +24,7 @@
filling_color = "#FF4500"
bitesize = 100 // Always eat the apple in one bite
foodtype = FRUIT
juice_results = list("applejuice" = 0)
// Posioned Apple
/obj/item/seeds/apple/poisoned
+1 -1
View File
@@ -13,7 +13,6 @@
genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/banana/mime, /obj/item/seeds/banana/bluespace)
reagents_add = list("banana" = 0.1, "potassium" = 0.1, "vitamin" = 0.04, "nutriment" = 0.02)
juice_results = list("banana" = 0)
/obj/item/reagent_containers/food/snacks/grown/banana
seed = /obj/item/seeds/banana
@@ -25,6 +24,7 @@
filling_color = "#FFFF00"
bitesize = 5
foodtype = FRUIT
juice_results = list("banana" = 0)
/obj/item/reagent_containers/food/snacks/grown/banana/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is aiming [src] at [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!</span>")
+1 -1
View File
@@ -17,7 +17,6 @@
genes = list(/datum/plant_gene/trait/battery)
mutatelist = list(/obj/item/seeds/potato/sweet)
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
juice_results = list("potato" = 0)
/obj/item/reagent_containers/food/snacks/grown/potato
seed = /obj/item/seeds/potato
@@ -27,6 +26,7 @@
filling_color = "#E9967A"
bitesize = 100
foodtype = VEGETABLES
juice_results = list("potato" = 0)
/obj/item/reagent_containers/food/snacks/grown/potato/wedges
@@ -12,7 +12,7 @@ Doesn't work on other aliens/AI.*/
var/plasma_cost = 0
var/check_turf = FALSE
has_action = TRUE
datum/action/spell_action/alien/action
base_action = /datum/action/spell_action/alien
action_icon = 'icons/mob/actions/actions_xeno.dmi'
action_icon_state = "spell_default"
action_background_icon_state = "bg_alien"
+3 -6
View File
@@ -430,20 +430,17 @@
/mob/living/silicon/ai/proc/switchCamera(obj/machinery/camera/C)
if(QDELETED(C))
return FALSE
if(!tracking)
cameraFollow = null
if (!C)
return FALSE
if(!src.eyeobj)
if(QDELETED(eyeobj))
view_core()
return
// ok, we're alive, camera is good and in our network...
eyeobj.setLoc(get_turf(C))
//machine = src
return TRUE
/mob/living/silicon/ai/proc/botcall()
@@ -80,8 +80,7 @@ GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new)
// Removes a camera from a chunk.
/datum/cameranet/proc/removeCamera(obj/machinery/camera/c)
if(c.can_use())
majorChunkChange(c, 0)
majorChunkChange(c, 0)
// Add a camera to a chunk.
+2 -1
View File
@@ -51,6 +51,7 @@
return
orbiter.loc = targetloc
orbiter.update_parallax_contents()
orbiter.update_light()
lastloc = orbiter.loc
for(var/other_orbit in orbiter.orbiters)
var/datum/orbit/OO = other_orbit
@@ -119,4 +120,4 @@
var/datum/orbit/O = thing
if(O.orbiter && isobserver(O.orbiter))
var/mob/dead/observer/D = O.orbiter
D.ManualFollow(target)
D.ManualFollow(target)
@@ -51,9 +51,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
if(reac_volume >= 5)
var/obj/item/book/affectedbook = O
affectedbook.dat = null
to_chat(usr, "<span class='notice'>Through thorough application, you wash away [affectedbook]'s writing.</span>")
O.visible_message("<span class='notice'>[O]'s writing is washed away by [name]!</span>")
else
to_chat(usr, "<span class='warning'>The ink smears, but doesn't wash away!</span>")
O.visible_message("<span class='warning'>[O]'s ink is smeared by [name], but doesn't wash away!</span>")
return
/datum/reagent/consumable/ethanol/reaction_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with ethanol isn't quite as good as fuel.
+3 -3
View File
@@ -13,11 +13,12 @@
var/action_icon = 'icons/mob/actions/actions_spells.dmi'
var/action_icon_state = "spell_default"
var/action_background_icon_state = "bg_spell"
var/base_action = /datum/action/spell_action
/obj/effect/proc_holder/Initialize()
. = ..()
if(has_action)
action = new(src)
action = new base_action(src)
/obj/effect/proc_holder/proc/on_gain(mob/living/user)
return
@@ -103,6 +104,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
pass_flags = PASSTABLE
density = FALSE
opacity = 0
base_action = /datum/action/spell_action/spell
var/school = "evocation" //not relevant at now, but may be important later if there are changes to how spells work. the ones I used for now will probably be changed... maybe spell presets? lacking flexibility but with some other benefit?
@@ -149,7 +151,6 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
action_icon = 'icons/mob/actions/actions_spells.dmi'
action_icon_state = "spell_default"
action_background_icon_state = "bg_spell"
datum/action/spell_action/spell/action
/obj/effect/proc_holder/spell/proc/cast_check(skipcharge = 0,mob/user = usr) //checks if the spell can be cast based on its settings; skipcharge is used when an additional cast_check is called inside the spell
@@ -255,7 +256,6 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
/obj/effect/proc_holder/spell/Initialize()
. = ..()
action = new(src)
START_PROCESSING(SSfastprocess, src)
still_recharging_msg = "<span class='notice'>[name] is still recharging.</span>"
@@ -23,6 +23,11 @@
charge_counter = 0
stoplag(1)
/obj/effect/proc_holder/spell/targeted/touch/can_cast(mob/user = usr)
if(attached_hand)
return TRUE
return ..()
/obj/effect/proc_holder/spell/targeted/touch/proc/ChargeHand(mob/living/carbon/user)
attached_hand = new hand_path(src)
if(!user.put_in_hands(attached_hand))