Merge branch 'master' into development

This commit is contained in:
Lohikar
2017-10-20 13:30:03 -05:00
56 changed files with 355 additions and 300 deletions

View File

@@ -1,7 +1,7 @@
#ifdef AO_USE_LIGHTING_OPACITY
#define AO_TURF_CHECK(T) (!T.has_opaque_atom)
#define AO_TURF_CHECK(T) (!T.has_opaque_atom || !T.permit_ao)
#else
#define AO_TURF_CHECK(T) (!T.density || !T.opacity)
#define AO_TURF_CHECK(T) (!T.density || !T.opacity || !T.permit_ao)
#endif
/turf

View File

@@ -31,7 +31,9 @@
"toggles",
"asfx_togs",
"lastmotd" = "motd_hash",
"lastmemo" = "memo_hash"
"lastmemo" = "memo_hash",
"parallax_toggles" = "parallax_togs",
"parallax_speed"
),
"args" = list("ckey")
)

View File

@@ -64,7 +64,7 @@ var/list/gear_datums = list()
continue
if(G.whitelisted && preference_mob)
for(var/species in G.whitelisted)
if(is_alien_whitelisted(preference_mob, species))
if(is_alien_whitelisted(preference_mob, global.all_species[species]))
. += gear_name
break
else

View File

@@ -206,7 +206,7 @@ All custom items with worn sprites must follow the contained sprite system: http
contained_sprite = TRUE
gender = NEUTER
body_parts_covered = null
fingerprint_chance = 50
/obj/structure/bed/chair/wheelchair/fluff/nomak_scooter //Mobility Scooter - Dubaku Nomak - demonofthefall
name = "mobility scooter"
@@ -491,7 +491,7 @@ All custom items with worn sprites must follow the contained sprite system: http
species_restricted = null
gender = NEUTER
body_parts_covered = null
fingerprint_chance = 100
/obj/item/clothing/under/dress/fluff/sayyidah_dress //Traditional Jumper Dress - Sayyidah Al-Kateb - alberyk
name = "traditional jumper dress"
@@ -1403,15 +1403,15 @@ All custom items with worn sprites must follow the contained sprite system: http
if (use_check(usr)) return
var/style = input("You change the shirt to;","Change the shirt style") as null|anything in list("Eiffel Tower Diner","Pyramids of Giza Caf<EFBFBD>","Phoenixport","New Parthenon")
var/style = input("You change the shirt to;","Change the shirt style") as null|anything in list("Eiffel Tower Diner","Pyramids of Giza Café","Phoenixport","New Parthenon")
switch(style)
if("Eiffel Tower Diner")
item_state = "harley_uniform"
desc = "A white t-shirt with the writing \"Eiffel Tower Diner\" on it in a small font, below a recreation of the famous monument in question, the Eiffel Tower."
if("Pyramids of Giza Caf<EFBFBD>")
if("Pyramids of Giza Café")
item_state = "harley_uniform_1"
desc = "A white t-shirt with \"GIZA CAF<EFBFBD>\" written in large, retro font, with a small background. It looks slightly well-worn."
desc = "A white t-shirt with \"GIZA CAFÉ\" written in large, retro font, with a small background. It looks slightly well-worn."
if("Phoenixport")
item_state = "harley_uniform_2"
@@ -1424,3 +1424,25 @@ All custom items with worn sprites must follow the contained sprite system: http
usr.update_inv_w_uniform()
usr.visible_message("<span class='notice'>[user] fumbles with \the [src], changing the shirt..</span>",
"<span class='notice'>You change \the [src]'s style to be '[style]'.</span>")
/obj/item/clothing/gloves/watch/fluff/rex_watch //Engraved Wristwatch - Rex Winters - tailson
name = "engraved wristwatch"
desc = " A fine gold watch. On the inside is an engraving that reads \"Happy birthday dad, thinking of you always\"."
icon = 'icons/obj/custom_items/rex_watch.dmi'
icon_state = "rex_watch"
/obj/item/device/camera/fluff/hadley_camera //Hadley's Camera - Hadley Dawson - fekkor
name = "customized camera"
desc = "A early 2450's Sunny camera with an adjustable lens, this one has a sticker with the name \"Hadley\" on the back."
icon = 'icons/obj/custom_items/hadley_camera.dmi'
icon_state = "hadley_camera"
icon_on = "hadley_camera"
icon_off = "hadley_camera_off"
/obj/item/clothing/accessory/medal/silver/fluff/kalren_medal //Silver Star of Merit - Kalren Halstere - brutishcrab51
name = "silver star of merit"
desc = "The Biesel Silver Star of Merit, rewarded for bravery and professionalism in the line of duty."
icon_state = "silver_sword"

View File

@@ -50,7 +50,7 @@ var/list/ghost_traps
/datum/ghosttrap/proc/request_player(var/mob/target, var/request_string, var/request_timeout)
if(request_timeout)
request_timeouts[target] = world.time + request_timeout
target.OnDestroy(CALLBACK(src, .proc/target_destroyed))
destroyed_event.register(target, src, /datum/ghosttrap/proc/target_destroyed)
else
request_timeouts -= target

View File

@@ -91,7 +91,8 @@
for(var/i = 1 to outputs.len)
set_pin_data(IC_OUTPUT, i, i == output_index ? output : null)
push_data()
activate_pin(2)
/obj/item/integrated_circuit/transfer/demultiplexer/medium

View File

@@ -166,6 +166,7 @@
else
set_pin_data(IC_OUTPUT, 1, null)
push_data()
activate_pin(2)
/obj/item/integrated_circuit/input/adjacent_locator
@@ -185,6 +186,7 @@
var/atom/A = get_pin_data_as_type(IC_INPUT, 1, /atom)
if(!A)
set_pin_data(IC_OUTPUT, 1, null)
push_data()
return
var/desired_type = A.type
@@ -197,6 +199,7 @@
if(valid_things.len)
set_pin_data(IC_OUTPUT, 1, pick(valid_things))
push_data()
/obj/item/integrated_circuit/input/signaler
name = "integrated signaler"

View File

@@ -170,14 +170,14 @@
// These procs do not relocate the grenade, that's the callers responsibility
/obj/item/integrated_circuit/manipulation/grenade/proc/attach_grenade(var/obj/item/weapon/grenade/G)
attached_grenade = G
attached_grenade.OnDestroy(CALLBACK(src, .proc/detach_grenade))
destroyed_event.register(attached_grenade, src, .proc/detach_grenade)
size += G.w_class
desc += " \An [attached_grenade] is attached to it!"
/obj/item/integrated_circuit/manipulation/grenade/proc/detach_grenade()
if(!attached_grenade)
return
attached_grenade.UnregisterOnDestroy(src)
destroyed_event.unregister(attached_grenade, src)
attached_grenade = null
size = initial(size)
desc = initial(desc)

View File

@@ -41,7 +41,7 @@
for(var/i = 1 to inputs.len)
var/data = get_pin_data(IC_INPUT, i)
set_pin_data(IC_OUTPUT, i, data)
push_data()
activate_pin(2)
/obj/item/integrated_circuit/memory/storage/medium
@@ -85,6 +85,7 @@
/obj/item/integrated_circuit/memory/constant/do_work()
set_pin_data(IC_OUTPUT, 1, data)
push_data()
activate_pin(2)
/obj/item/integrated_circuit/memory/constant/attack_self(mob/user)

View File

@@ -272,6 +272,7 @@
if(camera)
set_camera_status(0)
set_pin_data(IC_INPUT, 2, FALSE)
push_data()
/obj/item/integrated_circuit/output/led
name = "light-emitting diode"
@@ -292,6 +293,7 @@
/obj/item/integrated_circuit/output/led/power_fail()
set_pin_data(IC_INPUT, 1, FALSE)
push_data()
/obj/item/integrated_circuit/output/led/any_examine(mob/user)
var/text_output = list()

View File

@@ -20,11 +20,14 @@
set_pin_data(IC_OUTPUT, 1, null)
if(!isweakref(I.data))
push_data()
return
var/atom/A = I.data.resolve()
if(!A)
push_data()
return
if(!(A in view(get_turf(src))))
push_data()
return // Can't see the target.
var/desired_dir = get_dir(get_turf(src), A)

View File

@@ -357,8 +357,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
stop_following()
following = target
following.OnMove(CALLBACK(src, /atom/movable/.proc/move_to_destination))
following.OnDestroy(CALLBACK(src, .proc/stop_following))
moved_event.register(following, src, /atom/movable/proc/move_to_destination)
destroyed_event.register(following, src, /mob/dead/observer/proc/stop_following)
src << "<span class='notice'>Now following \the [following]</span>"
move_to_destination(following, following.loc, following.loc)
@@ -366,8 +366,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/dead/observer/proc/stop_following()
if(following)
src << "<span class='notice'>No longer following \the [following]</span>"
following.UnregisterOnMove(src)
following.UnregisterOnDestroy(src)
moved_event.unregister(following, src)
destroyed_event.unregister(following, src)
following = null
/mob/dead/observer/move_to_destination(var/atom/movable/am, var/old_loc, var/new_loc)

View File

@@ -36,7 +36,7 @@
/mob/living/death(gibbed, deathmessage="seizes up and falls limp...")
. = ..()
if (.)
if(.)
// If true, the mob went from living to dead (assuming everyone has been overriding as they should...)
cultnet.updateVisibility(src)

View File

@@ -205,12 +205,8 @@
asleep = 1
icon_state = "sarlacc_asleep"
sarlacc.deployed = 0
var/make_loot = loot_count
visible_message("<span class='danger'>With a contented heave, \the [src] slides into the earth and begins regurgitating several treasures before shutting tight.</span>")
while(make_loot)
for(var/turf/simulated/floor/F in orange(1,src))
new /obj/random/loot(F)
make_loot--
new/obj/random/loot(get_turf(src))
/mob/living/simple_animal/hostile/greatworm/FindTarget()
if(eating)

View File

@@ -23,7 +23,7 @@
/mob/living/death(gibbed,deathmessage="seizes up and falls limp...")
. = ..()
if (.)
if(.)
stop_aiming(no_message=1)
/mob/living/update_canmove()

View File

@@ -173,9 +173,9 @@ obj/aiming_overlay/proc/update_aiming_deferred()
locked = 0
update_icon()
lock_time = world.time + 35
owner.OnMove(CALLBACK(src, .proc/update_aiming))
aiming_at.OnMove(CALLBACK(src, .proc/target_moved))
aiming_at.OnDestroy(CALLBACK(src, .proc/cancel_aiming))
moved_event.register(owner, src, /obj/aiming_overlay/proc/update_aiming)
moved_event.register(aiming_at, src, /obj/aiming_overlay/proc/target_moved)
destroyed_event.register(aiming_at, src, /obj/aiming_overlay/proc/cancel_aiming)
/obj/aiming_overlay/proc/aim_cooldown(var/seconds)
aimcooldown = world.time + seconds SECONDS
@@ -213,10 +213,10 @@ obj/aiming_overlay/proc/update_aiming_deferred()
if(!no_message)
owner.visible_message("<span class='notice'>\The [owner] lowers \the [aiming_with].</span>")
owner.UnregisterOnMove(src)
moved_event.unregister(owner, src)
if(aiming_at)
aiming_at.UnregisterOnMove(src)
aiming_at.UnregisterOnDestroy(src)
moved_event.unregister(aiming_at, src)
destroyed_event.unregister(aiming_at, src)
aiming_at.aimed -= src
aiming_at = null