Replaces /image with /mutable_appearance (#556)
* Replaces /image with /mutable_appearance, where appropriate * Update miscellaneous.dm * Delete miscellaneous.dm.rej * Delete pet.dm.rej * Update pet.dm * Update species.dm * Update miscellaneous.dm * Update species.dm * Update miscellaneous.dm * Delete species.dm.rej * Update species.dm pretty sure I got all the indentation correct THIS time, ffs * Update species.dm * Update species.dm fucking tabs man, fucking tabs.
This commit is contained in:
committed by
Poojawa
parent
a8c4c86e1c
commit
a905c15dad
@@ -1,7 +1,7 @@
|
||||
|
||||
//generic (by snowflake) tile smoothing code; smooth your icons with this!
|
||||
/*
|
||||
Each tile is divided in 4 corners, each corner has an image associated to it; the tile is then overlayed by these 4 images
|
||||
Each tile is divided in 4 corners, each corner has an appearance associated to it; the tile is then overlayed by these 4 appearances
|
||||
To use this, just set your atom's 'smooth' var to 1. If your atom can be moved/unanchored, set its 'can_be_unanchored' var to 1.
|
||||
If you don't want your atom's icon to smooth with anything but atoms of the same type, set the list 'canSmoothWith' to null;
|
||||
Otherwise, put all types you want the atom icon to smooth with in 'canSmoothWith' INCLUDING THE TYPE OF THE ATOM ITSELF.
|
||||
@@ -44,7 +44,6 @@
|
||||
|
||||
#define DEFAULT_UNDERLAY_ICON 'icons/turf/floors.dmi'
|
||||
#define DEFAULT_UNDERLAY_ICON_STATE "plating"
|
||||
#define DEFAULT_UNDERLAY_IMAGE image(DEFAULT_UNDERLAY_ICON, DEFAULT_UNDERLAY_ICON_STATE)
|
||||
|
||||
/atom/var/smooth = SMOOTH_FALSE
|
||||
/atom/var/top_left_corner
|
||||
@@ -157,14 +156,16 @@
|
||||
/turf/closed/wall/diagonal_smooth(adjacencies)
|
||||
adjacencies = reverse_ndir(..())
|
||||
if(adjacencies)
|
||||
var/list/U = list()
|
||||
var/mutable_appearance/underlay_appearance = mutable_appearance(layer = TURF_LAYER)
|
||||
var/list/U = list(underlay_appearance)
|
||||
if(fixed_underlay)
|
||||
if(fixed_underlay["space"])
|
||||
var/image/I = image('icons/turf/space.dmi', SPACE_ICON_STATE, layer=TURF_LAYER)
|
||||
I.plane = PLANE_SPACE
|
||||
U += I
|
||||
underlay_appearance.icon = 'icons/turf/space.dmi'
|
||||
underlay_appearance.icon_state = SPACE_ICON_STATE
|
||||
underlay_appearance.plane = PLANE_SPACE
|
||||
else
|
||||
U += image(fixed_underlay["icon"], fixed_underlay["icon_state"], layer=TURF_LAYER)
|
||||
underlay_appearance.icon = fixed_underlay["icon"]
|
||||
underlay_appearance.icon_state = fixed_underlay["icon_state"]
|
||||
else
|
||||
var/turf/T = get_step(src, turn(adjacencies, 180))
|
||||
if(T && (T.density || T.smooth))
|
||||
@@ -173,15 +174,18 @@
|
||||
T = get_step(src, turn(adjacencies, 225))
|
||||
|
||||
if(isspaceturf(T) && !istype(T, /turf/open/space/transit))
|
||||
var/image/I = image('icons/turf/space.dmi', SPACE_ICON_STATE, layer=TURF_LAYER)
|
||||
I.plane = PLANE_SPACE
|
||||
U += I
|
||||
underlay_appearance.icon = 'icons/turf/space.dmi'
|
||||
underlay_appearance.icon_state = SPACE_ICON_STATE
|
||||
underlay_appearance.plane = PLANE_SPACE
|
||||
else if(T && !T.density && !T.smooth)
|
||||
U += T
|
||||
underlay_appearance.icon = T.icon
|
||||
underlay_appearance.icon_state = T.icon_state
|
||||
else if(baseturf && !initial(baseturf.density) && !initial(baseturf.smooth))
|
||||
U += image(initial(baseturf.icon), initial(baseturf.icon_state), layer=TURF_LAYER)
|
||||
underlay_appearance.icon = initial(baseturf.icon)
|
||||
underlay_appearance.icon_state = initial(baseturf.icon_state)
|
||||
else
|
||||
U += DEFAULT_UNDERLAY_IMAGE
|
||||
underlay_appearance.icon = DEFAULT_UNDERLAY_ICON
|
||||
underlay_appearance.icon_state = DEFAULT_UNDERLAY_ICON_STATE
|
||||
underlays = U
|
||||
|
||||
|
||||
|
||||
@@ -1138,13 +1138,13 @@ B --><-- A
|
||||
if(location == src)
|
||||
return 1
|
||||
|
||||
/proc/flick_overlay_static(image/I, atom/A, duration)
|
||||
/proc/flick_overlay_static(O, atom/A, duration)
|
||||
set waitfor = 0
|
||||
if(!A || !I)
|
||||
if(!A || !O)
|
||||
return
|
||||
A.add_overlay(I)
|
||||
A.add_overlay(O)
|
||||
sleep(duration)
|
||||
A.cut_overlay(I)
|
||||
A.cut_overlay(O)
|
||||
|
||||
/proc/get_areas_in_z(zlevel)
|
||||
. = list()
|
||||
|
||||
@@ -57,8 +57,7 @@
|
||||
|
||||
/obj/screen/movable/action_button/hide_toggle/proc/UpdateIcon()
|
||||
cut_overlays()
|
||||
var/image/img = image(hide_icon, src, hidden ? show_state : hide_state)
|
||||
add_overlay(img)
|
||||
add_overlay(mutable_appearance(hide_icon, hidden ? show_state : hide_state))
|
||||
|
||||
|
||||
/obj/screen/movable/action_button/MouseEntered(location,control,params)
|
||||
|
||||
@@ -261,9 +261,9 @@
|
||||
for(var/y in -count to count)
|
||||
if(x == 0 && y == 0)
|
||||
continue
|
||||
var/image/I = image(icon, null, icon_state)
|
||||
I.transform = matrix(1, 0, x*480, 0, 1, y*480)
|
||||
new_overlays += I
|
||||
var/mutable_appearance/texture_overlay = mutable_appearance(icon, icon_state)
|
||||
texture_overlay.transform = matrix(1, 0, x*480, 0, 1, y*480)
|
||||
new_overlays += texture_overlay
|
||||
cut_overlays()
|
||||
add_overlay(new_overlays)
|
||||
view_sized = view
|
||||
|
||||
@@ -134,21 +134,16 @@
|
||||
icon_state = icon_empty
|
||||
|
||||
/obj/screen/inventory/hand
|
||||
var/image/active_overlay
|
||||
var/image/handcuff_overlay
|
||||
var/image/blocked_overlay
|
||||
var/mutable_appearance/handcuff_overlay
|
||||
var/static/mutable_appearance/blocked_overlay = mutable_appearance('icons/mob/screen_gen.dmi', "blocked")
|
||||
var/held_index = 0
|
||||
|
||||
/obj/screen/inventory/hand/update_icon()
|
||||
..()
|
||||
|
||||
if(!active_overlay)
|
||||
active_overlay = image("icon"=icon, "icon_state"="hand_active")
|
||||
if(!handcuff_overlay)
|
||||
var/state = (!(held_index % 2)) ? "markus" : "gabrielle"
|
||||
handcuff_overlay = image("icon"='icons/mob/screen_gen.dmi', "icon_state"=state)
|
||||
if(!blocked_overlay)
|
||||
blocked_overlay = image("icon"='icons/mob/screen_gen.dmi', "icon_state"="blocked")
|
||||
handcuff_overlay = mutable_appearance('icons/mob/screen_gen.dmi', state)
|
||||
|
||||
cut_overlays()
|
||||
|
||||
@@ -163,7 +158,7 @@
|
||||
add_overlay(blocked_overlay)
|
||||
|
||||
if(held_index == hud.mymob.active_hand_index)
|
||||
add_overlay(active_overlay)
|
||||
add_overlay("hand_active")
|
||||
|
||||
|
||||
/obj/screen/inventory/hand/Click(location, control, params)
|
||||
@@ -445,7 +440,7 @@
|
||||
|
||||
/obj/screen/zone_sel/update_icon(mob/user)
|
||||
cut_overlays()
|
||||
add_overlay(image('icons/mob/screen_gen.dmi', "[selecting]"))
|
||||
add_overlay(mutable_appearance('icons/mob/screen_gen.dmi', "[selecting]"))
|
||||
user.zone_selected = selecting
|
||||
|
||||
/obj/screen/zone_sel/alien
|
||||
@@ -453,7 +448,7 @@
|
||||
|
||||
/obj/screen/zone_sel/alien/update_icon(mob/user)
|
||||
cut_overlays()
|
||||
add_overlay(image('icons/mob/screen_alien.dmi', "[selecting]"))
|
||||
add_overlay(mutable_appearance('icons/mob/screen_alien.dmi', "[selecting]"))
|
||||
user.zone_selected = selecting
|
||||
|
||||
/obj/screen/zone_sel/robot
|
||||
|
||||
@@ -55,7 +55,7 @@ PROCESSING_SUBSYSTEM_DEF(overlays)
|
||||
|
||||
/proc/iconstate2appearance(icon, iconstate)
|
||||
var/static/image/stringbro = new()
|
||||
var/list/icon_states_cache = SSoverlays.overlay_icon_state_caches
|
||||
var/list/icon_states_cache = SSoverlays.overlay_icon_state_caches
|
||||
var/list/cached_icon = icon_states_cache[icon]
|
||||
if (cached_icon)
|
||||
var/cached_appearance = cached_icon["[iconstate]"]
|
||||
@@ -91,7 +91,7 @@ PROCESSING_SUBSYSTEM_DEF(overlays)
|
||||
new_overlays[i] = iconstate2appearance(icon, cached_overlay)
|
||||
else if(isicon(cached_overlay))
|
||||
new_overlays[i] = icon2appearance(cached_overlay)
|
||||
else //image probable
|
||||
else //image/mutable_appearance probable
|
||||
appearance_bro.appearance = cached_overlay
|
||||
if(!ispath(cached_overlay))
|
||||
appearance_bro.dir = cached_overlay.dir
|
||||
@@ -99,11 +99,11 @@ PROCESSING_SUBSYSTEM_DEF(overlays)
|
||||
return new_overlays
|
||||
|
||||
#define NOT_QUEUED_ALREADY (!(flags & OVERLAY_QUEUED))
|
||||
#define QUEUE_FOR_COMPILE flags |= OVERLAY_QUEUED; SSoverlays.processing += src;
|
||||
#define QUEUE_FOR_COMPILE flags |= OVERLAY_QUEUED; SSoverlays.processing += src;
|
||||
/atom/proc/cut_overlays(priority = FALSE)
|
||||
var/list/cached_overlays = our_overlays
|
||||
var/list/cached_priority = priority_overlays
|
||||
|
||||
|
||||
var/need_compile = FALSE
|
||||
|
||||
if(LAZYLEN(cached_overlays)) //don't queue empty lists, don't cut priority overlays
|
||||
@@ -165,7 +165,7 @@ PROCESSING_SUBSYSTEM_DEF(overlays)
|
||||
if(cut_old)
|
||||
cut_overlays()
|
||||
return
|
||||
|
||||
|
||||
var/list/cached_other = other.our_overlays
|
||||
if(cached_other)
|
||||
if(cut_old || !LAZYLEN(our_overlays))
|
||||
|
||||
@@ -110,12 +110,8 @@
|
||||
|
||||
/datum/action/proc/ApplyIcon(obj/screen/movable/action_button/current_button)
|
||||
if(icon_icon && button_icon_state && current_button.button_icon_state != button_icon_state)
|
||||
var/image/img
|
||||
img = image(icon_icon, current_button, button_icon_state)
|
||||
img.pixel_x = 0
|
||||
img.pixel_y = 0
|
||||
current_button.cut_overlays(TRUE)
|
||||
current_button.add_overlay(img)
|
||||
current_button.add_overlay(mutable_appearance(icon_icon, button_icon_state))
|
||||
current_button.button_icon_state = button_icon_state
|
||||
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
var/mob/living/silicon/ai/A = S
|
||||
A.can_be_carded = FALSE
|
||||
A.requires_power = POWER_REQ_CLOCKCULT
|
||||
var/list/AI_frame = list(image('icons/mob/clockwork_mobs.dmi', A, "aiframe")) //make the AI's cool frame
|
||||
var/list/AI_frame = list(mutable_appearance('icons/mob/clockwork_mobs.dmi', "aiframe")) //make the AI's cool frame
|
||||
for(var/d in GLOB.cardinal)
|
||||
AI_frame += image('icons/mob/clockwork_mobs.dmi', A, "eye[rand(1, 10)]", dir = d) //the eyes are randomly fast or slow
|
||||
A.add_overlay(AI_frame)
|
||||
|
||||
@@ -31,9 +31,9 @@
|
||||
if(speak_emote)
|
||||
D.speak_emote = speak_emote
|
||||
|
||||
/datum/dog_fashion/proc/get_image(var/dir)
|
||||
/datum/dog_fashion/proc/get_overlay(var/dir)
|
||||
if(icon_file && obj_icon_state)
|
||||
var/image/corgI = image(icon_file, icon_state = obj_icon_state, dir = dir)
|
||||
var/image/corgI = image(icon_file, obj_icon_state, dir = dir)
|
||||
corgI.alpha = obj_alpha
|
||||
corgI.color = obj_color
|
||||
return corgI
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
// Mutable appearances are an inbuilt byond datastructure. Read the documentation on them by hitting F1 in DM.
|
||||
// Basically use them instead of images for overlays/underlays and when changing an object's appearance if you're doing so with any regularity.
|
||||
// Unless you need the overlay/underlay to have a different direction than the base object. Then you have to use an image due to a bug.
|
||||
|
||||
// Mutable appearances are children of images, just so you know.
|
||||
|
||||
/mutable_appearance/New()
|
||||
..()
|
||||
plane = FLOAT_PLANE // No clue why this is 0 by default yet images are on FLOAT_PLANE
|
||||
// And yes this does have to be in the constructor, BYOND ignores it if you set it as a normal var
|
||||
|
||||
// Helper similar to image()
|
||||
/proc/mutable_appearance(icon, icon_state = "", layer = FLOAT_LAYER)
|
||||
var/mutable_appearance/MA = new()
|
||||
MA.icon = icon
|
||||
MA.icon_state = icon_state
|
||||
MA.layer = layer
|
||||
return MA
|
||||
@@ -15,7 +15,7 @@ GLOBAL_LIST_EMPTY(mutations_list)
|
||||
var/lowest_value = 256 * 8
|
||||
var/text_gain_indication = ""
|
||||
var/text_lose_indication = ""
|
||||
var/list/visual_indicators = list()
|
||||
var/list/mutable_appearance/visual_indicators = list()
|
||||
var/layer_used = MUTATIONS_LAYER //which mutation layer to use
|
||||
var/list/species_allowed = list() //to restrict mutation to only certain species
|
||||
var/health_req //minimum health required to acquire the mutation
|
||||
@@ -161,7 +161,7 @@ GLOBAL_LIST_EMPTY(mutations_list)
|
||||
|
||||
/datum/mutation/human/telekinesis/New()
|
||||
..()
|
||||
visual_indicators |= image("icon"='icons/effects/genetics.dmi', "icon_state"="telekinesishead", "layer"=-MUTATIONS_LAYER)
|
||||
visual_indicators |= mutable_appearance('icons/effects/genetics.dmi', "telekinesishead", -MUTATIONS_LAYER)
|
||||
|
||||
/datum/mutation/human/telekinesis/get_visual_indicator(mob/living/carbon/human/owner)
|
||||
return visual_indicators[1]
|
||||
@@ -180,7 +180,7 @@ GLOBAL_LIST_EMPTY(mutations_list)
|
||||
|
||||
/datum/mutation/human/cold_resistance/New()
|
||||
..()
|
||||
visual_indicators |= image("icon"='icons/effects/genetics.dmi', "icon_state"="fire", "layer"=-MUTATIONS_LAYER)
|
||||
visual_indicators |= mutable_appearance('icons/effects/genetics.dmi', "fire", -MUTATIONS_LAYER)
|
||||
|
||||
/datum/mutation/human/cold_resistance/get_visual_indicator(mob/living/carbon/human/owner)
|
||||
return visual_indicators[1]
|
||||
@@ -618,7 +618,7 @@ GLOBAL_LIST_EMPTY(mutations_list)
|
||||
|
||||
/datum/mutation/human/laser_eyes/New()
|
||||
..()
|
||||
visual_indicators |= image("icon"='icons/effects/genetics.dmi', "icon_state"="lasereyes", "layer"=-FRONT_MUTATIONS_LAYER)
|
||||
visual_indicators |= mutable_appearance('icons/effects/genetics.dmi', "lasereyes", -FRONT_MUTATIONS_LAYER)
|
||||
|
||||
/datum/mutation/human/laser_eyes/get_visual_indicator(mob/living/carbon/human/owner)
|
||||
return visual_indicators[1]
|
||||
@@ -640,11 +640,11 @@ GLOBAL_LIST_EMPTY(mutations_list)
|
||||
var/list/mut_overlay = list()
|
||||
if(overlays_standing[CM.layer_used])
|
||||
mut_overlay = overlays_standing[CM.layer_used]
|
||||
var/image/V = CM.get_visual_indicator(src)
|
||||
var/mutable_appearance/V = CM.get_visual_indicator(src)
|
||||
if(!mut_overlay.Find(V)) //either we lack the visual indicator or we have the wrong one
|
||||
remove_overlay(CM.layer_used)
|
||||
for(var/image/I in CM.visual_indicators)
|
||||
mut_overlay.Remove(I)
|
||||
for(var/mutable_appearance/MA in CM.visual_indicators)
|
||||
mut_overlay.Remove(MA)
|
||||
mut_overlay |= V
|
||||
overlays_standing[CM.layer_used] = mut_overlay
|
||||
apply_overlay(CM.layer_used)
|
||||
|
||||
@@ -179,11 +179,11 @@
|
||||
remove_atom_colour(FIXED_COLOUR_PRIORITY)
|
||||
if(is_zombie)
|
||||
copy_overlays(oldguy, TRUE)
|
||||
var/image/I = image('icons/mob/blob.dmi', icon_state = "blob_head")
|
||||
var/mutable_appearance/blob_head_overlay = mutable_appearance('icons/mob/blob.dmi', "blob_head")
|
||||
if(overmind)
|
||||
I.color = overmind.blob_reagent_datum.complementary_color
|
||||
blob_head_overlay.color = overmind.blob_reagent_datum.complementary_color
|
||||
color = initial(color)//looks better.
|
||||
add_overlay(I)
|
||||
add_overlay(blob_head_overlay)
|
||||
|
||||
/mob/living/simple_animal/hostile/blob/blobspore/weak
|
||||
name = "fragile blob spore"
|
||||
|
||||
@@ -33,12 +33,11 @@
|
||||
/obj/structure/blob/core/update_icon()
|
||||
cut_overlays()
|
||||
color = null
|
||||
var/image/I = new('icons/mob/blob.dmi', "blob")
|
||||
var/mutable_appearance/blob_overlay = mutable_appearance('icons/mob/blob.dmi', "blob")
|
||||
if(overmind)
|
||||
I.color = overmind.blob_reagent_datum.color
|
||||
add_overlay(I)
|
||||
var/image/C = new('icons/mob/blob.dmi', "blob_core_overlay")
|
||||
add_overlay(C)
|
||||
blob_overlay.color = overmind.blob_reagent_datum.color
|
||||
add_overlay(blob_overlay)
|
||||
add_overlay(mutable_appearance('icons/mob/blob.dmi', "blob_core_overlay"))
|
||||
|
||||
/obj/structure/blob/core/Destroy()
|
||||
GLOB.blob_cores -= src
|
||||
|
||||
@@ -21,12 +21,11 @@
|
||||
/obj/structure/blob/node/update_icon()
|
||||
cut_overlays()
|
||||
color = null
|
||||
var/image/I = new('icons/mob/blob.dmi', "blob")
|
||||
var/mutable_appearance/blob_overlay = mutable_appearance('icons/mob/blob.dmi', "blob")
|
||||
if(overmind)
|
||||
I.color = overmind.blob_reagent_datum.color
|
||||
add_overlay(I)
|
||||
var/image/C = new('icons/mob/blob.dmi', "blob_node_overlay")
|
||||
add_overlay(C)
|
||||
blob_overlay.color = overmind.blob_reagent_datum.color
|
||||
add_overlay(blob_overlay)
|
||||
add_overlay(mutable_appearance('icons/mob/blob.dmi', "blob_node_overlay"))
|
||||
|
||||
/obj/structure/blob/node/Destroy()
|
||||
GLOB.blob_nodes -= src
|
||||
|
||||
@@ -42,8 +42,7 @@
|
||||
icon_state = "geisbinding"
|
||||
mob_layer = M.layer
|
||||
layer = M.layer - 0.01
|
||||
var/image/GB = new('icons/effects/clockwork_effects.dmi', src, "geisbinding_top", M.layer + 0.01)
|
||||
add_overlay(GB)
|
||||
add_overlay(mutable_appearance('icons/effects/clockwork_effects.dmi', "geisbinding_top", M.layer + 0.01))
|
||||
for(var/obj/item/I in M.held_items)
|
||||
M.dropItemToGround(I)
|
||||
for(var/i in M.get_empty_held_indexes())
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
START_PROCESSING(SSobj, src)
|
||||
send_to_playing_players("<span class='ratvar'>\"[text2ratvar("ONCE AGAIN MY LIGHT SHALL SHINE ACROSS THIS PATHETIC REALM")]!!\"</span>")
|
||||
send_to_playing_players('sound/effects/ratvar_reveal.ogg')
|
||||
var/image/alert_overlay = image('icons/effects/clockwork_effects.dmi', "ratvar_alert")
|
||||
var/mutable_appearance/alert_overlay = mutable_appearance('icons/effects/clockwork_effects.dmi', "ratvar_alert")
|
||||
var/area/A = get_area(src)
|
||||
notify_ghosts("The Justiciar's light calls to you! Reach out to Ratvar in [A.name] to be granted a shell to spread his glory!", null, source = src, alert_overlay = alert_overlay)
|
||||
INVOKE_ASYNC(SSshuttle.emergency, /obj/docking_port/mobile/emergency..proc/request, null, 0)
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
debris = list(/obj/item/clockwork/alloy_shards/medium = 1, \
|
||||
/obj/item/clockwork/alloy_shards/small = 6, \
|
||||
/obj/item/clockwork/component/replicant_alloy/replication_plate = 1)
|
||||
var/image/daemon_glow
|
||||
var/image/component_glow
|
||||
var/static/mutable_appearance/daemon_glow = mutable_appearance('icons/obj/clockwork_objects.dmi', "tinkerglow")
|
||||
var/static/mutable_appearance/component_glow = mutable_appearance('icons/obj/clockwork_objects.dmi', "t_random_component")
|
||||
var/component_id_to_produce
|
||||
var/production_time = 0 //last time we produced a component
|
||||
var/production_cooldown = 120
|
||||
@@ -119,14 +119,9 @@
|
||||
. = ..()
|
||||
if(active)
|
||||
var/component_color = get_component_color(component_id_to_produce)
|
||||
if(!daemon_glow)
|
||||
daemon_glow = new('icons/obj/clockwork_objects.dmi', "tinkerglow")
|
||||
daemon_glow.color = component_color
|
||||
add_overlay(daemon_glow)
|
||||
if(!component_glow)
|
||||
component_glow = new('icons/obj/clockwork_objects.dmi', "t_[component_id_to_produce ? component_id_to_produce :"random_component"]")
|
||||
else
|
||||
component_glow.icon_state = "t_[component_id_to_produce ? component_id_to_produce :"random_component"]"
|
||||
component_glow.icon_state = "t_[component_id_to_produce ? component_id_to_produce :"random_component"]"
|
||||
component_glow.color = component_color
|
||||
add_overlay(component_glow)
|
||||
production_time = world.time + production_cooldown //don't immediately produce when turned on after being off
|
||||
|
||||
@@ -201,9 +201,9 @@
|
||||
return 0
|
||||
|
||||
/obj/item/clothing/suit/hooded/cultrobes/cult_shield/worn_overlays(isinhands)
|
||||
. = list()
|
||||
if(!isinhands && current_charges)
|
||||
. += image(layer = MOB_LAYER+0.01, icon = 'icons/effects/effects.dmi', icon_state = "shield-cult")
|
||||
. = list()
|
||||
if(!isinhands && current_charges)
|
||||
. += mutable_appearance('icons/effects/effects.dmi', "shield-cult", MOB_LAYER + 0.01)
|
||||
|
||||
/obj/item/clothing/suit/hooded/cultrobes/berserker
|
||||
name = "flagellant's robes"
|
||||
|
||||
@@ -775,11 +775,11 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
deltimer(density_timer)
|
||||
air_update_turf(1)
|
||||
if(density)
|
||||
var/image/I = image(layer = ABOVE_MOB_LAYER, icon = 'icons/effects/effects.dmi', icon_state = "barriershimmer")
|
||||
I.appearance_flags = RESET_COLOR
|
||||
I.alpha = 60
|
||||
I.color = "#701414"
|
||||
add_overlay(I)
|
||||
var/mutable_appearance/shimmer = mutable_appearance('icons/effects/effects.dmi', "barriershimmer", ABOVE_MOB_LAYER)
|
||||
shimmer.appearance_flags |= RESET_COLOR
|
||||
shimmer.alpha = 60
|
||||
shimmer.color = "#701414"
|
||||
add_overlay(shimmer)
|
||||
add_atom_colour("#FF0000", FIXED_COLOUR_PRIORITY)
|
||||
else
|
||||
cut_overlays()
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
return 0
|
||||
|
||||
/mob/living/carbon/true_devil/update_inv_hands()
|
||||
//TODO LORDPIDEY: Figure out how to make the hands line up properly. the l/r_hand_image should use the down sprite when facing down, left, or right, and the up sprite when facing up.
|
||||
//TODO LORDPIDEY: Figure out how to make the hands line up properly. the l/r_hand_overlay should use the down sprite when facing down, left, or right, and the up sprite when facing up.
|
||||
remove_overlay(DEVIL_HANDS_LAYER)
|
||||
var/list/hands_overlays = list()
|
||||
var/obj/item/l_hand = get_item_for_held_index(1) //hardcoded 2-hands only, for now.
|
||||
@@ -17,9 +17,9 @@
|
||||
if(!r_state)
|
||||
r_state = r_hand.icon_state
|
||||
|
||||
var/image/r_hand_image = r_hand.build_worn_icon(state = r_state, default_layer = DEVIL_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE)
|
||||
var/mutable_appearance/r_hand_overlay = r_hand.build_worn_icon(state = r_state, default_layer = DEVIL_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE)
|
||||
|
||||
hands_overlays += r_hand_image
|
||||
hands_overlays += r_hand_overlay
|
||||
|
||||
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
|
||||
r_hand.layer = ABOVE_HUD_LAYER
|
||||
@@ -33,9 +33,9 @@
|
||||
if(!l_state)
|
||||
l_state = l_hand.icon_state
|
||||
|
||||
var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = DEVIL_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE)
|
||||
var/mutable_appearance/l_hand_overlay = l_hand.build_worn_icon(state = l_state, default_layer = DEVIL_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE)
|
||||
|
||||
hands_overlays += l_hand_image
|
||||
hands_overlays += l_hand_overlay
|
||||
|
||||
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
|
||||
l_hand.layer = ABOVE_HUD_LAYER
|
||||
@@ -54,6 +54,5 @@
|
||||
|
||||
|
||||
/mob/living/carbon/true_devil/apply_overlay(cache_index)
|
||||
var/image/I = devil_overlays[cache_index]
|
||||
if(I)
|
||||
add_overlay(I)
|
||||
if((. = devil_overlays[cache_index]))
|
||||
add_overlay(.)
|
||||
|
||||
@@ -37,8 +37,8 @@
|
||||
var/previous_level = ""
|
||||
var/obj/item/nuke_core/core = null
|
||||
var/deconstruction_state = NUKESTATE_INTACT
|
||||
var/image/lights = null
|
||||
var/image/interior = null
|
||||
var/lights = ""
|
||||
var/interior = ""
|
||||
var/obj/effect/countdown/nuclearbomb/countdown
|
||||
var/static/bomb_set
|
||||
|
||||
@@ -201,30 +201,32 @@
|
||||
cut_overlay(interior)
|
||||
switch(deconstruction_state)
|
||||
if(NUKESTATE_UNSCREWED)
|
||||
interior = image(icon,"panel-unscrewed")
|
||||
interior = "panel-unscrewed"
|
||||
if(NUKESTATE_PANEL_REMOVED)
|
||||
interior = image(icon,"panel-removed")
|
||||
interior = "panel-removed"
|
||||
if(NUKESTATE_WELDED)
|
||||
interior = image(icon,"plate-welded")
|
||||
interior = "plate-welded"
|
||||
if(NUKESTATE_CORE_EXPOSED)
|
||||
interior = image(icon,"plate-removed")
|
||||
interior = "plate-removed"
|
||||
if(NUKESTATE_CORE_REMOVED)
|
||||
interior = image(icon,"core-removed")
|
||||
interior = "core-removed"
|
||||
if(NUKESTATE_INTACT)
|
||||
interior = null
|
||||
return
|
||||
add_overlay(interior)
|
||||
|
||||
/obj/machinery/nuclearbomb/proc/update_icon_lights()
|
||||
cut_overlay(lights)
|
||||
if(lights)
|
||||
cut_overlay(lights)
|
||||
switch(get_nuke_state())
|
||||
if(NUKE_OFF_LOCKED)
|
||||
lights = null
|
||||
lights = ""
|
||||
return
|
||||
if(NUKE_OFF_UNLOCKED)
|
||||
lights = image(icon,"lights-safety")
|
||||
lights = "lights-safety"
|
||||
if(NUKE_ON_TIMING)
|
||||
lights = image(icon,"lights-timing")
|
||||
lights = "lights-timing"
|
||||
if(NUKE_ON_EXPLODING)
|
||||
lights = image(icon,"lights-exploding")
|
||||
lights = "lights-exploding"
|
||||
add_overlay(lights)
|
||||
|
||||
/obj/machinery/nuclearbomb/process()
|
||||
|
||||
@@ -96,7 +96,6 @@
|
||||
return
|
||||
if(!usr || !usr.canUseTopic(src) || usr.incapacitated() || stat || QDELETED(src))
|
||||
return
|
||||
var/image/I = image(src) //For feedback message flavor
|
||||
if(href_list["authenticate"])
|
||||
var/obj/item/weapon/card/id/ID = usr.get_active_held_item()
|
||||
if(!istype(ID))
|
||||
@@ -117,24 +116,24 @@
|
||||
authenticated = FALSE
|
||||
auth_id = "\[NULL\]"
|
||||
if(href_list["restore_logging"])
|
||||
to_chat(usr, "<span class='robot notice'>\icon[I] Logging functionality restored from backup data.</span>")
|
||||
to_chat(usr, "<span class='robot notice'>\icon[src] Logging functionality restored from backup data.</span>")
|
||||
emagged = FALSE
|
||||
LAZYADD(logs, "<b>-=- Logging restored to full functionality at this point -=-</b>")
|
||||
if(href_list["access_apc"])
|
||||
playsound(src, "terminal_type", 50, 0)
|
||||
var/obj/machinery/power/apc/APC = locate(href_list["access_apc"]) in GLOB.apcs_list
|
||||
if(!APC || APC.aidisabled || APC.panel_open || QDELETED(APC))
|
||||
to_chat(usr, "<span class='robot danger'>\icon[I] APC does not return interface request. Remote access may be disabled.</span>")
|
||||
to_chat(usr, "<span class='robot danger'>\icon[src] APC does not return interface request. Remote access may be disabled.</span>")
|
||||
return
|
||||
if(active_apc)
|
||||
to_chat(usr, "<span class='robot danger'>\icon[I] Disconnected from [active_apc].</span>")
|
||||
to_chat(usr, "<span class='robot danger'>\icon[src] Disconnected from [active_apc].</span>")
|
||||
active_apc.say("Remote access canceled. Interface locked.")
|
||||
playsound(active_apc, 'sound/machines/BoltsDown.ogg', 25, 0)
|
||||
playsound(active_apc, 'sound/machines/terminal_alert.ogg', 50, 0)
|
||||
active_apc.locked = TRUE
|
||||
active_apc.update_icon()
|
||||
active_apc = null
|
||||
to_chat(usr, "<span class='robot notice'>\icon[I] Connected to APC in [get_area(APC)]. Interface request sent.</span>")
|
||||
to_chat(usr, "<span class='robot notice'>\icon[src] Connected to APC in [get_area(APC)]. Interface request sent.</span>")
|
||||
log_activity("remotely accessed APC in [get_area(APC)]")
|
||||
APC.interact(usr, GLOB.not_incapacitated_state)
|
||||
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
|
||||
|
||||
@@ -419,7 +419,7 @@
|
||||
to_chat(H, "\icon[customrecepient] <b>Message from [customsender] ([customjob]), </b>\"[custommessage]\" (<a href='byond://?src=\ref[src];choice=Message;skiprefresh=1;target=\ref[src]'>Reply</a>)")
|
||||
log_pda("[usr]/([usr.ckey]) (PDA: [customsender]) sent \"[custommessage]\" to [customrecepient.owner]")
|
||||
customrecepient.cut_overlays()
|
||||
customrecepient.add_overlay(image('icons/obj/pda.dmi', "pda-r"))
|
||||
customrecepient.add_overlay(mutable_appearance('icons/obj/pda.dmi', "pda-r"))
|
||||
//Sender is faking as someone who exists
|
||||
else
|
||||
src.linkedServer.send_pda_message("[customrecepient.owner]", "[PDARec.owner]","[custommessage]")
|
||||
@@ -432,7 +432,7 @@
|
||||
to_chat(H, "\icon[customrecepient] <b>Message from [PDARec.owner] ([customjob]), </b>\"[custommessage]\" (<a href='byond://?src=\ref[customrecepient];choice=Message;skiprefresh=1;target=\ref[PDARec]'>Reply</a>)")
|
||||
log_pda("[usr]/([usr.ckey]) (PDA: [PDARec.owner]) sent \"[custommessage]\" to [customrecepient.owner]")
|
||||
customrecepient.cut_overlays()
|
||||
customrecepient.add_overlay(image('icons/obj/pda.dmi', "pda-r"))
|
||||
customrecepient.add_overlay(mutable_appearance('icons/obj/pda.dmi', "pda-r"))
|
||||
//Finally..
|
||||
ResetMessage()
|
||||
|
||||
|
||||
@@ -366,13 +366,13 @@
|
||||
set_airlock_overlays(state)
|
||||
|
||||
/obj/machinery/door/airlock/proc/set_airlock_overlays(state)
|
||||
var/image/frame_overlay
|
||||
var/image/filling_overlay
|
||||
var/image/lights_overlay
|
||||
var/image/panel_overlay
|
||||
var/image/weld_overlay
|
||||
var/image/damag_overlay
|
||||
var/image/sparks_overlay
|
||||
var/mutable_appearance/frame_overlay
|
||||
var/mutable_appearance/filling_overlay
|
||||
var/mutable_appearance/lights_overlay
|
||||
var/mutable_appearance/panel_overlay
|
||||
var/mutable_appearance/weld_overlay
|
||||
var/mutable_appearance/damag_overlay
|
||||
var/mutable_appearance/sparks_overlay
|
||||
|
||||
switch(state)
|
||||
if(AIRLOCK_CLOSED)
|
||||
@@ -494,10 +494,8 @@
|
||||
pass(A) //suppress unused warning
|
||||
var/list/airlock_overlays = A.airlock_overlays
|
||||
var/iconkey = "[icon_state][icon_file]"
|
||||
if(airlock_overlays[iconkey])
|
||||
return airlock_overlays[iconkey]
|
||||
airlock_overlays[iconkey] = image(icon_file, icon_state)
|
||||
return airlock_overlays[iconkey]
|
||||
if((!(. = airlock_overlays[iconkey])))
|
||||
. = airlock_overlays[iconkey] = mutable_appearance(icon_file, icon_state)
|
||||
|
||||
/obj/machinery/door/airlock/do_animate(animation)
|
||||
switch(animation)
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
if(maptext)
|
||||
maptext = ""
|
||||
cut_overlays()
|
||||
add_overlay(image('icons/obj/status_display.dmi', icon_state=state))
|
||||
add_overlay(mutable_appearance('icons/obj/status_display.dmi', state))
|
||||
|
||||
|
||||
//Checks to see if there's 1 line or 2, adds text-icons-numbers/letters over display
|
||||
|
||||
@@ -36,27 +36,27 @@
|
||||
else
|
||||
add_overlay("beakeridle")
|
||||
if(beaker.reagents.total_volume)
|
||||
var/image/filling = image('icons/obj/iv_drip.dmi', src, "reagent")
|
||||
var/mutable_appearance/filling_overlay = mutable_appearance('icons/obj/iv_drip.dmi', "reagent")
|
||||
|
||||
var/percent = round((beaker.reagents.total_volume / beaker.volume) * 100)
|
||||
switch(percent)
|
||||
if(0 to 9)
|
||||
filling.icon_state = "reagent0"
|
||||
filling_overlay.icon_state = "reagent0"
|
||||
if(10 to 24)
|
||||
filling.icon_state = "reagent10"
|
||||
filling_overlay.icon_state = "reagent10"
|
||||
if(25 to 49)
|
||||
filling.icon_state = "reagent25"
|
||||
filling_overlay.icon_state = "reagent25"
|
||||
if(50 to 74)
|
||||
filling.icon_state = "reagent50"
|
||||
filling_overlay.icon_state = "reagent50"
|
||||
if(75 to 79)
|
||||
filling.icon_state = "reagent75"
|
||||
filling_overlay.icon_state = "reagent75"
|
||||
if(80 to 90)
|
||||
filling.icon_state = "reagent80"
|
||||
filling_overlay.icon_state = "reagent80"
|
||||
if(91 to INFINITY)
|
||||
filling.icon_state = "reagent100"
|
||||
filling_overlay.icon_state = "reagent100"
|
||||
|
||||
filling.icon += mix_color_from_reagents(beaker.reagents.reagent_list)
|
||||
add_overlay(filling)
|
||||
filling_overlay.color = list("#0000", "#0000", "#0000", "#000f", mix_color_from_reagents(beaker.reagents.reagent_list))
|
||||
add_overlay(filling_overlay)
|
||||
|
||||
/obj/machinery/iv_drip/MouseDrop(mob/living/target)
|
||||
if(!ishuman(usr) || !usr.canUseTopic(src,BE_CLOSE) || !isliving(target))
|
||||
|
||||
@@ -146,7 +146,7 @@
|
||||
/obj/machinery/status_display/proc/set_picture(state)
|
||||
picture_state = state
|
||||
remove_display()
|
||||
add_overlay(image('icons/obj/status_display.dmi', icon_state=picture_state))
|
||||
add_overlay(picture_state)
|
||||
|
||||
/obj/machinery/status_display/proc/update_display(line1, line2)
|
||||
var/new_text = {"<div style="font-size:[FONT_SIZE];color:[FONT_COLOR];font:'[FONT_STYLE]';text-align:center;" valign="top">[line1]<br>[line2]</div>"}
|
||||
@@ -278,7 +278,7 @@
|
||||
/obj/machinery/ai_status_display/proc/set_picture(state)
|
||||
picture_state = state
|
||||
cut_overlays()
|
||||
add_overlay(image('icons/obj/status_display.dmi', icon_state=picture_state))
|
||||
add_overlay(picture_state)
|
||||
|
||||
#undef CHARS_PER_LINE
|
||||
#undef FOND_SIZE
|
||||
|
||||
@@ -297,7 +297,7 @@
|
||||
to_chat(user, "<span class='notice'>You [panel_open ? "open" : "close"] the maintenance panel.</span>")
|
||||
cut_overlays()
|
||||
if(panel_open)
|
||||
add_overlay(image(icon, "[initial(icon_state)]-panel"))
|
||||
add_overlay("[initial(icon_state)]-panel")
|
||||
playsound(src.loc, W.usesound, 50, 1)
|
||||
updateUsrDialog()
|
||||
else
|
||||
|
||||
@@ -186,7 +186,7 @@
|
||||
var/full = contents.len ? 1 : 0
|
||||
icon_state = "wm_[state_open]_[full]"
|
||||
if(panel_open)
|
||||
add_overlay(image(icon, icon_state = "wm_panel"))
|
||||
add_overlay("wm_panel")
|
||||
|
||||
/obj/machinery/washing_machine/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(default_deconstruction_screwdriver(user, null, null, W))
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
AI.apply_damage(150, BURN) //Give the AI a bit of damage from the "shock" of being suddenly shut down
|
||||
AI.death() //The damage is not enough to kill the AI, but to be 'corrupted files' in need of repair.
|
||||
AI.forceMove(src) //Put the dead AI inside the wreckage for recovery
|
||||
add_overlay(image('icons/obj/projectiles.dmi', icon_state = "green_laser")) //Overlay for the recovery beacon
|
||||
add_overlay(mutable_appearance('icons/obj/projectiles.dmi', "green_laser")) //Overlay for the recovery beacon
|
||||
AI.controlled_mech = null
|
||||
AI.remote_control = null
|
||||
|
||||
|
||||
@@ -48,9 +48,9 @@
|
||||
if (hides)
|
||||
cut_overlays()
|
||||
if(hides < 3)
|
||||
add_overlay(image("icon" = "mecha.dmi", "icon_state" = occupant ? "ripley-g" : "ripley-g-open"))
|
||||
add_overlay(occupant ? "ripley-g" : "ripley-g-open")
|
||||
else
|
||||
add_overlay(image("icon" = "mecha.dmi", "icon_state" = occupant ? "ripley-g-full" : "ripley-g-full-open"))
|
||||
add_overlay(occupant ? "ripley-g-full" : "ripley-g-full-open")
|
||||
|
||||
|
||||
/obj/mecha/working/ripley/firefighter
|
||||
|
||||
@@ -161,23 +161,15 @@
|
||||
|
||||
for(var/Ddir in GLOB.cardinal)
|
||||
if(entered_dirs & Ddir)
|
||||
var/image/I
|
||||
if(GLOB.bloody_footprints_cache["entered-[blood_state]-[Ddir]"])
|
||||
I = GLOB.bloody_footprints_cache["entered-[blood_state]-[Ddir]"]
|
||||
else
|
||||
I = image(icon,"[blood_state]1",dir = Ddir)
|
||||
GLOB.bloody_footprints_cache["entered-[blood_state]-[Ddir]"] = I
|
||||
if(I)
|
||||
add_overlay(I)
|
||||
var/image/bloodstep_overlay = GLOB.bloody_footprints_cache["entered-[blood_state]-[Ddir]"]
|
||||
if(!bloodstep_overlay)
|
||||
GLOB.bloody_footprints_cache["entered-[blood_state]-[Ddir]"] = bloodstep_overlay = image(icon, "[blood_state]1", dir = Ddir)
|
||||
add_overlay(bloodstep_overlay)
|
||||
if(exited_dirs & Ddir)
|
||||
var/image/I
|
||||
if(GLOB.bloody_footprints_cache["exited-[blood_state]-[Ddir]"])
|
||||
I = GLOB.bloody_footprints_cache["exited-[blood_state]-[Ddir]"]
|
||||
else
|
||||
I = image(icon,"[blood_state]2",dir = Ddir)
|
||||
GLOB.bloody_footprints_cache["exited-[blood_state]-[Ddir]"] = I
|
||||
if(I)
|
||||
add_overlay(I)
|
||||
var/image/bloodstep_overlay = GLOB.bloody_footprints_cache["exited-[blood_state]-[Ddir]"]
|
||||
if(!bloodstep_overlay)
|
||||
GLOB.bloody_footprints_cache["exited-[blood_state]-[Ddir]"] = bloodstep_overlay = image(icon, "[blood_state]2", dir = Ddir)
|
||||
add_overlay(bloodstep_overlay)
|
||||
|
||||
alpha = BLOODY_FOOTPRINT_BASE_ALPHA+bloodiness
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
GLOBAL_DATUM_INIT(fire_overlay, /image, image("icon" = 'icons/effects/fire.dmi', "icon_state" = "fire"))
|
||||
GLOBAL_DATUM_INIT(fire_overlay, /mutable_appearance, mutable_appearance('icons/effects/fire.dmi', "fire"))
|
||||
|
||||
GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
|
||||
// if true, everyone item when created will have its name changed to be
|
||||
|
||||
@@ -521,7 +521,7 @@
|
||||
/obj/item/weapon/storage/crayons/update_icon()
|
||||
cut_overlays()
|
||||
for(var/obj/item/toy/crayon/crayon in contents)
|
||||
add_overlay(image('icons/obj/crayons.dmi',crayon.item_color))
|
||||
add_overlay(mutable_appearance('icons/obj/crayons.dmi', crayon.item_color))
|
||||
|
||||
/obj/item/weapon/storage/crayons/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/toy/crayon))
|
||||
@@ -667,10 +667,9 @@
|
||||
icon_state = is_capped ? icon_capped : icon_uncapped
|
||||
if(use_overlays)
|
||||
cut_overlays()
|
||||
var/image/I = image('icons/obj/crayons.dmi',
|
||||
icon_state = "[is_capped ? "spraycan_cap_colors" : "spraycan_colors"]")
|
||||
I.color = paint_color
|
||||
add_overlay(I)
|
||||
var/mutable_appearance/spray_overlay = mutable_appearance('icons/obj/crayons.dmi', "[is_capped ? "spraycan_cap_colors" : "spraycan_colors"]")
|
||||
spray_overlay.color = paint_color
|
||||
add_overlay(spray_overlay)
|
||||
|
||||
/obj/item/toy/crayon/spraycan/gang
|
||||
//desc = "A modified container containing suspicious paint."
|
||||
|
||||
@@ -51,7 +51,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
|
||||
var/obj/item/device/paicard/pai = null // A slot for a personal AI device
|
||||
|
||||
var/image/photo = null //Scanned photo
|
||||
var/icon/photo //Scanned photo
|
||||
|
||||
var/list/contained_item = list(/obj/item/weapon/pen, /obj/item/toy/crayon, /obj/item/weapon/lipstick, /obj/item/device/flashlight/pen, /obj/item/clothing/mask/cigarette)
|
||||
var/obj/item/inserted_item //Used for pen, crayon, and lipstick insertion or removal. Same as above.
|
||||
@@ -82,22 +82,24 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
|
||||
/obj/item/device/pda/update_icon()
|
||||
cut_overlays()
|
||||
var/mutable_appearance/overlay = new()
|
||||
overlay.pixel_x = overlays_x_offset
|
||||
if(id)
|
||||
var/image/I = image(icon_state = "id_overlay", pixel_x = overlays_x_offset)
|
||||
add_overlay(I)
|
||||
overlay.icon_state = "id_overlay"
|
||||
add_overlay(new /mutable_appearance(overlay))
|
||||
if(inserted_item)
|
||||
var/image/I = image(icon_state = "insert_overlay", pixel_x = overlays_x_offset)
|
||||
add_overlay(I)
|
||||
overlay.icon_state = "insert_overlay"
|
||||
add_overlay(new /mutable_appearance(overlay))
|
||||
if(fon)
|
||||
var/image/I = image(icon_state = "light_overlay", pixel_x = overlays_x_offset)
|
||||
add_overlay(I)
|
||||
overlay.icon_state = "light_overlay"
|
||||
add_overlay(new /mutable_appearance(overlay))
|
||||
if(pai)
|
||||
if(pai.pai)
|
||||
var/image/I = image(icon_state = "pai_overlay", pixel_x = overlays_x_offset)
|
||||
add_overlay(I)
|
||||
overlay.icon_state = "pai_overlay"
|
||||
add_overlay(new /mutable_appearance(overlay))
|
||||
else
|
||||
var/image/I = image(icon_state = "pai_off_overlay", pixel_x = overlays_x_offset)
|
||||
add_overlay(I)
|
||||
overlay.icon_state = "pai_off_overlay"
|
||||
add_overlay(new /mutable_appearance(overlay))
|
||||
|
||||
/obj/item/device/pda/MouseDrop(obj/over_object, src_location, over_location)
|
||||
var/mob/M = usr
|
||||
@@ -633,7 +635,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
to_chat(L, "\icon[src] <b>Message from [source.owner] ([source.ownjob]), </b>\"[msg.message]\"[msg.get_photo_ref()] (<a href='byond://?src=\ref[src];choice=Message;skiprefresh=1;target=\ref[source]'>Reply</a>)")
|
||||
|
||||
update_icon()
|
||||
add_overlay(image(icon, icon_alert))
|
||||
add_overlay(icon_alert)
|
||||
|
||||
/obj/item/device/pda/proc/show_to_ghosts(mob/living/user, datum/data_pda_msg/msg,multiple = 0)
|
||||
for(var/mob/M in GLOB.player_list)
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
update_icon() //Whatever happened, update the card's state (icon, name) to match.
|
||||
|
||||
/obj/item/device/aicard/update_icon()
|
||||
cut_overlays()
|
||||
if(AI)
|
||||
name = "[initial(name)]- [AI.name]"
|
||||
if(AI.stat == DEAD)
|
||||
@@ -30,12 +31,11 @@
|
||||
else
|
||||
icon_state = "aicard-full"
|
||||
if(!AI.control_disabled)
|
||||
add_overlay(image('icons/obj/aicards.dmi', "aicard-on"))
|
||||
add_overlay("aicard-on")
|
||||
AI.cancel_camera()
|
||||
else
|
||||
name = initial(name)
|
||||
icon_state = initial(icon_state)
|
||||
cut_overlays()
|
||||
|
||||
/obj/item/device/aicard/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \
|
||||
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.hands_state)
|
||||
|
||||
@@ -344,8 +344,9 @@
|
||||
cut_overlays()
|
||||
set_light(0)
|
||||
else if(on)
|
||||
var/image/I = image(icon,"glowstick-glow",color)
|
||||
add_overlay(I)
|
||||
var/mutable_appearance/glowstick_overlay = mutable_appearance(icon, "glowstick-glow")
|
||||
glowstick_overlay.color = color
|
||||
add_overlay(glowstick_overlay)
|
||||
item_state = "glowstick-on"
|
||||
set_light(brightness_on)
|
||||
else
|
||||
|
||||
@@ -493,7 +493,7 @@
|
||||
/obj/item/projectile/bullet/reusable/lollipop/New()
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/lollipop/S = new ammo_type(src)
|
||||
color2 = S.headcolor
|
||||
var/image/head = image(icon = 'icons/obj/projectiles.dmi', icon_state = "lollipop_2")
|
||||
var/mutable_appearance/head = mutable_appearance('icons/obj/projectiles.dmi', "lollipop_2")
|
||||
head.color = color2
|
||||
add_overlay(head)
|
||||
|
||||
|
||||
@@ -73,18 +73,18 @@
|
||||
if(hp <= 0)
|
||||
visible_message("<span class='danger'>[src] breaks into tiny pieces and collapses!</span>")
|
||||
qdel(src)
|
||||
var/image/I = image("icon"='icons/effects/effects.dmi', "icon_state"="scorch", "layer"=OBJ_LAYER+0.5)
|
||||
I.pixel_x = p_x - 1 //offset correction
|
||||
I.pixel_y = p_y - 1
|
||||
var/image/bullet_hole = image('icons/effects/effects.dmi', "scorch", OBJ_LAYER + 0.5)
|
||||
bullet_hole.pixel_x = p_x - 1 //offset correction
|
||||
bullet_hole.pixel_y = p_y - 1
|
||||
if(decaltype == DECALTYPE_SCORCH)
|
||||
I.setDir(pick(NORTH,SOUTH,EAST,WEST))// random scorch design
|
||||
bullet_hole.setDir(pick(NORTH,SOUTH,EAST,WEST))// random scorch design
|
||||
if(P.damage >= 20 || istype(P, /obj/item/projectile/beam/practice))
|
||||
I.setDir(pick(NORTH,SOUTH,EAST,WEST))
|
||||
bullet_hole.setDir(pick(NORTH,SOUTH,EAST,WEST))
|
||||
else
|
||||
I.icon_state = "light_scorch"
|
||||
bullet_hole.icon_state = "light_scorch"
|
||||
else
|
||||
I.icon_state = "dent"
|
||||
add_overlay(I)
|
||||
bullet_hole.icon_state = "dent"
|
||||
add_overlay(bullet_hole)
|
||||
return
|
||||
return -1
|
||||
|
||||
|
||||
@@ -155,7 +155,7 @@
|
||||
var/mob/living/captured = null
|
||||
var/obj/item/weapon/gun/energy/chrono_gun/gun = null
|
||||
var/tickstokill = 15
|
||||
var/image/mob_underlay = null
|
||||
var/mutable_appearance/mob_underlay
|
||||
var/preloaded = 0
|
||||
var/RPpos = null
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
mob_icon.Blend(removing_frame, ICON_MULTIPLY)
|
||||
cached_icon.Insert(mob_icon, "frame[i]")
|
||||
|
||||
mob_underlay = new(cached_icon, "frame1")
|
||||
mob_underlay = mutable_appearance(cached_icon, "frame1")
|
||||
update_icon()
|
||||
|
||||
desc = initial(desc) + "<br><span class='info'>It appears to contain [target.name].</span>"
|
||||
|
||||
@@ -496,11 +496,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
|
||||
/obj/item/weapon/lighter/greyscale/update_icon()
|
||||
cut_overlays()
|
||||
var/image/I = image(icon,"[initial(icon_state)]_base")
|
||||
I.appearance_flags = RESET_COLOR //the edging doesn't change color
|
||||
var/mutable_appearance/base_overlay = mutable_appearance(icon,"[initial(icon_state)]_base")
|
||||
base_overlay.appearance_flags = RESET_COLOR //the edging doesn't change color
|
||||
if(lit)
|
||||
I.icon_state = "[initial(icon_state)]_on"
|
||||
add_overlay(I)
|
||||
base_overlay.icon_state = "[initial(icon_state)]_on"
|
||||
add_overlay(base_overlay)
|
||||
|
||||
/obj/item/weapon/lighter/greyscale/ignition_effect(atom/A, mob/user)
|
||||
. = "<span class='notice'>After some fiddling, [user] manages to light [A] with [src].</span>"
|
||||
@@ -651,9 +651,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
screw = 1
|
||||
to_chat(user, "<span class='notice'>You open the cap on the [src]</span>")
|
||||
if(super)
|
||||
add_overlay(image(icon, "vapeopen_med"))
|
||||
add_overlay("vapeopen_med")
|
||||
else
|
||||
add_overlay(image(icon, "vapeopen_low"))
|
||||
add_overlay("vapeopen_low")
|
||||
else
|
||||
screw = 0
|
||||
to_chat(user, "<span class='notice'>You close the cap on the [src]</span>")
|
||||
@@ -665,12 +665,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
cut_overlays()
|
||||
super = 1
|
||||
to_chat(user, "<span class='notice'>You increase the voltage in the [src]</span>")
|
||||
add_overlay(image(icon, "vapeopen_med"))
|
||||
add_overlay("vapeopen_med")
|
||||
else
|
||||
cut_overlays()
|
||||
super = 0
|
||||
to_chat(user, "<span class='notice'>You decrease the voltage in the [src]</span>")
|
||||
add_overlay(image(icon, "vapeopen_low"))
|
||||
add_overlay("vapeopen_low")
|
||||
|
||||
if(screw && emagged)
|
||||
to_chat(user, "<span class='notice'>The [name] can't be modified!</span>")
|
||||
@@ -683,7 +683,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
emagged = 1
|
||||
super = 0
|
||||
to_chat(user, "<span class='warning'>You maximize the voltage in the [src]</span>")
|
||||
add_overlay(image(icon, "vapeopen_high"))
|
||||
add_overlay("vapeopen_high")
|
||||
var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread //for effect
|
||||
sp.set_up(5, 1, src)
|
||||
sp.start()
|
||||
|
||||
@@ -38,10 +38,10 @@
|
||||
to_chat(user, "<span class='notice'>You twist \the [src] [open ? "closed" : "open"].</span>")
|
||||
open = !open
|
||||
if(open)
|
||||
var/image/colored = image("icon"='icons/obj/items.dmi', "icon_state"="lipstick_uncap_color")
|
||||
colored.color = colour
|
||||
var/mutable_appearance/colored_overlay = mutable_appearance(icon, "lipstick_uncap_color")
|
||||
colored_overlay.color = colour
|
||||
icon_state = "lipstick_uncap"
|
||||
add_overlay(colored)
|
||||
add_overlay(colored_overlay)
|
||||
else
|
||||
icon_state = "lipstick"
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
/obj/item/weapon/c4/New()
|
||||
wires = new /datum/wires/explosive/c4(src)
|
||||
image_overlay = image('icons/obj/grenade.dmi', "plastic-explosive2")
|
||||
plastic_overlay = mutable_appearance(icon, "plastic-explosive2")
|
||||
..()
|
||||
|
||||
/obj/item/weapon/c4/Destroy()
|
||||
@@ -92,7 +92,7 @@
|
||||
message_admins(message,0,1)
|
||||
log_game("[key_name(user)] planted [name] on [target.name] at [COORD(target)] with [timer] second fuse")
|
||||
|
||||
target.add_overlay(image_overlay, 1)
|
||||
target.add_overlay(plastic_overlay, 1)
|
||||
to_chat(user, "<span class='notice'>You plant the bomb. Timer counting down from [timer].</span>")
|
||||
addtimer(CALLBACK(src, .proc/explode), timer * 10)
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
if(target)
|
||||
if(!QDELETED(target))
|
||||
location = get_turf(target)
|
||||
target.cut_overlay(image_overlay, TRUE)
|
||||
target.cut_overlay(plastic_overlay, TRUE)
|
||||
else
|
||||
location = get_turf(src)
|
||||
if(location)
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
/obj/item/weapon/grenade/iedcasing/New(loc)
|
||||
..()
|
||||
add_overlay(image('icons/obj/grenade.dmi', icon_state = "improvised_grenade_filled"))
|
||||
add_overlay(image('icons/obj/grenade.dmi', icon_state = "improvised_grenade_wired"))
|
||||
add_overlay("improvised_grenade_filled")
|
||||
add_overlay("improvised_grenade_wired")
|
||||
times = list("5" = 10, "-1" = 20, "[rand(30,80)]" = 50, "[rand(65,180)]" = 20)// "Premature, Dud, Short Fuse, Long Fuse"=[weighting value]
|
||||
det_time = text2num(pickweight(times))
|
||||
if(det_time < 0) //checking for 'duds'
|
||||
@@ -33,13 +33,10 @@
|
||||
..()
|
||||
var/obj/item/weapon/reagent_containers/food/drinks/soda_cans/can = locate() in contents
|
||||
if(can)
|
||||
var/muh_layer = can.layer
|
||||
var/muh_plane = can.plane
|
||||
can.layer = FLOAT_LAYER
|
||||
can.plane = FLOAT_PLANE
|
||||
underlays += can
|
||||
can.layer = muh_layer
|
||||
can.plane = muh_plane
|
||||
var/mutable_appearance/can_underlay = new(can)
|
||||
can_underlay.layer = FLOAT_LAYER
|
||||
can_underlay.plane = FLOAT_PLANE
|
||||
underlays += can_underlay
|
||||
|
||||
|
||||
/obj/item/weapon/grenade/iedcasing/attack_self(mob/user) //
|
||||
@@ -47,7 +44,7 @@
|
||||
if(clown_check(user))
|
||||
to_chat(user, "<span class='warning'>You light the [name]!</span>")
|
||||
active = 1
|
||||
cut_overlay(image('icons/obj/grenade.dmi', icon_state = "improvised_grenade_filled"), TRUE) //this line make no sense
|
||||
cut_overlay("improvised_grenade_filled")
|
||||
icon_state = initial(icon_state) + "_active"
|
||||
add_fingerprint(user)
|
||||
var/turf/bombturf = get_turf(src)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
det_time = 10
|
||||
display_timer = 0
|
||||
var/atom/target = null
|
||||
var/image_overlay = null
|
||||
var/mutable_appearance/plastic_overlay
|
||||
var/obj/item/device/assembly_holder/nadeassembly = null
|
||||
var/assemblyattacher
|
||||
var/directional = FALSE
|
||||
@@ -15,7 +15,7 @@
|
||||
var/boom_sizes = list(0, 0, 3)
|
||||
|
||||
/obj/item/weapon/grenade/plastic/New()
|
||||
image_overlay = image('icons/obj/grenade.dmi', "[item_state]2")
|
||||
plastic_overlay = mutable_appearance(icon, "[item_state]2")
|
||||
..()
|
||||
|
||||
/obj/item/weapon/grenade/plastic/Destroy()
|
||||
@@ -50,7 +50,7 @@
|
||||
if(target)
|
||||
if(!QDELETED(target))
|
||||
location = get_turf(target)
|
||||
target.cut_overlay(image_overlay, TRUE)
|
||||
target.cut_overlay(plastic_overlay, TRUE)
|
||||
else
|
||||
location = get_turf(src)
|
||||
if(location)
|
||||
@@ -111,7 +111,7 @@
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] planted [name] on [target.name] at [ADMIN_COORDJMP(target)] with [det_time] second fuse",0,1)
|
||||
log_game("[key_name(user)] planted [name] on [target.name] at [COORD(src)] with [det_time] second fuse")
|
||||
|
||||
target.add_overlay(image_overlay, 1)
|
||||
target.add_overlay(plastic_overlay, 1)
|
||||
if(!nadeassembly)
|
||||
to_chat(user, "<span class='notice'>You plant the bomb. Timer counting down from [det_time].</span>")
|
||||
addtimer(CALLBACK(src, .proc/prime), det_time*10)
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
/obj/item/weapon/nullrod/staff/worn_overlays(isinhands)
|
||||
. = list()
|
||||
if(isinhands)
|
||||
. += image(layer = MOB_LAYER+0.01, icon = 'icons/effects/effects.dmi', icon_state = "[shield_icon]")
|
||||
. += mutable_appearance('icons/effects/effects.dmi', shield_icon, MOB_LAYER + 0.01)
|
||||
|
||||
/obj/item/weapon/nullrod/staff/blue
|
||||
name = "blue holy staff"
|
||||
|
||||
@@ -162,5 +162,5 @@
|
||||
src.cut_overlays()
|
||||
if(!tank)
|
||||
return
|
||||
src.add_overlay(image('icons/obj/pneumaticCannon.dmi', "[tank.icon_state]"))
|
||||
add_overlay(tank.icon_state)
|
||||
src.update_icon()
|
||||
|
||||
@@ -334,14 +334,14 @@
|
||||
/obj/item/weapon/storage/bag/tray/proc/rebuild_overlays()
|
||||
cut_overlays()
|
||||
for(var/obj/item/I in contents)
|
||||
add_overlay(image("icon" = I.icon, "icon_state" = I.icon_state, "layer" = -1))
|
||||
add_overlay(mutable_appearance(I.icon, I.icon_state))
|
||||
|
||||
/obj/item/weapon/storage/bag/tray/remove_from_storage(obj/item/W as obj, atom/new_location)
|
||||
..()
|
||||
rebuild_overlays()
|
||||
|
||||
/obj/item/weapon/storage/bag/tray/handle_item_insertion(obj/item/I, prevent_warning = 0)
|
||||
add_overlay(image("icon" = I.icon, "icon_state" = I.icon_state, "layer" = -1))
|
||||
add_overlay(mutable_appearance(I.icon, I.icon_state))
|
||||
. = ..()
|
||||
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
. = ..()
|
||||
if(illustration)
|
||||
cut_overlays()
|
||||
add_overlay(image('icons/obj/storage.dmi', "[illustration]"))
|
||||
add_overlay(illustration)
|
||||
|
||||
/obj/item/weapon/storage/box/attack_self(mob/user)
|
||||
..()
|
||||
|
||||
@@ -141,12 +141,15 @@
|
||||
add_overlay("[icon_state]_open")
|
||||
var/i = contents.len
|
||||
for(var/C in contents)
|
||||
var/mutable_appearance/inserted_overlay = mutable_appearance(icon)
|
||||
inserted_overlay.pixel_x = 1 * (i - 1)
|
||||
if(istype(C, /obj/item/weapon/lighter/greyscale))
|
||||
add_overlay(image(icon = src.icon, icon_state = "lighter_in", pixel_x = 1 * (i -1)))
|
||||
inserted_overlay.icon_state = "lighter_in"
|
||||
else if(istype(C, /obj/item/weapon/lighter))
|
||||
add_overlay(image(icon = src.icon, icon_state = "zippo_in", pixel_x = 1 * (i -1)))
|
||||
inserted_overlay.icon_state = "zippo_in"
|
||||
else
|
||||
add_overlay(image(icon = src.icon, icon_state = "cigarette", pixel_x = 1 * (i -1)))
|
||||
inserted_overlay.icon_state = "cigarette"
|
||||
add_overlay(inserted_overlay)
|
||||
i--
|
||||
else
|
||||
cut_overlays()
|
||||
@@ -247,13 +250,14 @@
|
||||
spawn_type = /obj/item/clothing/mask/cigarette/cigar
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigarettes/cigars/update_icon()
|
||||
cut_overlays()
|
||||
if(fancy_open)
|
||||
cut_overlays()
|
||||
add_overlay("[icon_state]_open")
|
||||
var/mutable_appearance/cigar_overlay = mutable_appearance(icon, icon_type)
|
||||
for(var/c = contents.len, c >= 1, c--)
|
||||
add_overlay(image(icon = src.icon, icon_state = icon_type, pixel_x = 4 * (c -1)))
|
||||
cigar_overlay.pixel_x = 4 * (c - 1)
|
||||
add_overlay(cigar_overlay)
|
||||
else
|
||||
cut_overlays()
|
||||
icon_state = "cigarcase"
|
||||
|
||||
/obj/item/weapon/storage/fancy/cigarettes/cigars/cohiba
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
else if ((src.code == src.l_code) && (src.l_set == 1))
|
||||
src.locked = 0
|
||||
cut_overlays()
|
||||
add_overlay(image('icons/obj/storage.dmi', icon_opened))
|
||||
add_overlay(icon_opened)
|
||||
src.code = null
|
||||
else
|
||||
src.code = "ERROR"
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
..()
|
||||
cut_overlays()
|
||||
if(has_latches)
|
||||
add_overlay(image('icons/obj/storage.dmi', "[latches]"))
|
||||
add_overlay(latches)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/toolbox/suicide_act(mob/user)
|
||||
|
||||
@@ -370,7 +370,7 @@
|
||||
cut_overlays()
|
||||
|
||||
if(reagents.total_volume)
|
||||
var/image/filling = image('icons/obj/reagentfillings.dmi',icon_state = "backpack-10")
|
||||
var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "backpack-10")
|
||||
|
||||
var/percent = round((reagents.total_volume / volume) * 100)
|
||||
switch(percent)
|
||||
@@ -388,7 +388,7 @@
|
||||
. = list()
|
||||
//inhands + reagent_filling
|
||||
if(!isinhands && reagents.total_volume)
|
||||
var/image/filling = image('icons/obj/reagentfillings.dmi',icon_state = "backpackmob-10")
|
||||
var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "backpackmob-10")
|
||||
|
||||
var/percent = round((reagents.total_volume / volume) * 100)
|
||||
switch(percent)
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
|
||||
///// ACID
|
||||
|
||||
GLOBAL_DATUM_INIT(acid_overlay, /image, image("icon" = 'icons/effects/effects.dmi', "icon_state" = "acid"))
|
||||
GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/effects/effects.dmi', "acid"))
|
||||
|
||||
//the obj's reaction when touched by acid
|
||||
/obj/acid_act(acidpwr, acid_volume)
|
||||
|
||||
@@ -12,11 +12,7 @@
|
||||
canSmoothWith = null
|
||||
buildstacktype = null
|
||||
flags = NODECONSTRUCT
|
||||
var/image/nest_overlay
|
||||
|
||||
/obj/structure/bed/nest/New()
|
||||
nest_overlay = image('icons/mob/alien.dmi', "nestoverlay", layer=LYING_MOB_LAYER)
|
||||
return ..()
|
||||
var/static/mutable_appearance/nest_overlay = mutable_appearance('icons/mob/alien.dmi', "nestoverlay", LYING_MOB_LAYER)
|
||||
|
||||
/obj/structure/bed/nest/user_unbuckle_mob(mob/living/buckled_mob, mob/living/user)
|
||||
if(has_buckled_mobs())
|
||||
|
||||
@@ -145,11 +145,11 @@
|
||||
obj_integrity = 70
|
||||
max_integrity = 70
|
||||
buildstackamount = 2
|
||||
var/image/armrest = null
|
||||
var/mutable_appearance/armrest
|
||||
item_chair = null
|
||||
|
||||
/obj/structure/chair/comfy/Initialize()
|
||||
armrest = image("icons/obj/chairs.dmi", "comfychair_armrest")
|
||||
armrest = mutable_appearance('icons/obj/chairs.dmi', "comfychair_armrest")
|
||||
armrest.layer = ABOVE_MOB_LAYER
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
/obj/structure/chair/e_chair/New()
|
||||
..()
|
||||
add_overlay(image('icons/obj/chairs.dmi', src, "echair_over", MOB_LAYER + 1))
|
||||
add_overlay(mutable_appearance('icons/obj/chairs.dmi', "echair_over", MOB_LAYER + 1))
|
||||
|
||||
/obj/structure/chair/e_chair/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/wrench))
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
anchored = 0
|
||||
density = 1
|
||||
opacity = 0
|
||||
var/case_type = null
|
||||
var/case_type = ""
|
||||
var/gun_category = /obj/item/weapon/gun
|
||||
var/open = 1
|
||||
var/capacity = 4
|
||||
@@ -25,8 +25,10 @@
|
||||
/obj/structure/guncase/update_icon()
|
||||
cut_overlays()
|
||||
if(case_type && LAZYLEN(contents))
|
||||
var/mutable_appearance/gun_overlay = mutable_appearance(icon, case_type)
|
||||
for(var/i in 1 to contents.len)
|
||||
add_overlay(image(icon = src.icon, icon_state = "[case_type]", pixel_x = 3 * (i - 1) ))
|
||||
gun_overlay.pixel_x = 3 * (i - 1)
|
||||
add_overlay(gun_overlay)
|
||||
if(open)
|
||||
add_overlay("[icon_state]_open")
|
||||
else
|
||||
|
||||
@@ -143,21 +143,21 @@
|
||||
|
||||
|
||||
/obj/structure/transit_tube/proc/create_tube_overlay(direction, shift_dir)
|
||||
var/image/I
|
||||
var/image/tube_overlay = new(dir = direction)
|
||||
if(shift_dir)
|
||||
I = image(loc = src, icon_state = "decorative_diag", dir = direction)
|
||||
tube_overlay.icon_state = "decorative_diag"
|
||||
switch(shift_dir)
|
||||
if(NORTH)
|
||||
I.pixel_y = 32
|
||||
tube_overlay.pixel_y = 32
|
||||
if(SOUTH)
|
||||
I.pixel_y = -32
|
||||
tube_overlay.pixel_y = -32
|
||||
if(EAST)
|
||||
I.pixel_x = 32
|
||||
tube_overlay.pixel_x = 32
|
||||
if(WEST)
|
||||
I.pixel_x = -32
|
||||
tube_overlay.pixel_x = -32
|
||||
else
|
||||
I = image(loc = src, icon_state = "decorative", dir = direction)
|
||||
add_overlay(I)
|
||||
tube_overlay.icon_state = "decorative"
|
||||
add_overlay(tube_overlay)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -239,7 +239,7 @@
|
||||
qdel(mymist)
|
||||
|
||||
if(on)
|
||||
add_overlay(image('icons/obj/watercloset.dmi', src, "water", MOB_LAYER + 1, dir))
|
||||
add_overlay(mutable_appearance('icons/obj/watercloset.dmi', "water", MOB_LAYER + 1))
|
||||
if(watertemp == "freezing")
|
||||
return
|
||||
if(!ismist)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
var/fulltile = 0
|
||||
var/glass_type = /obj/item/stack/sheet/glass
|
||||
var/glass_amount = 1
|
||||
var/image/crack_overlay
|
||||
var/static/mutable_appearance/crack_overlay = mutable_appearance('icons/obj/structures.dmi')
|
||||
var/list/debris = list()
|
||||
can_be_unanchored = 1
|
||||
resistance_flags = ACID_PROOF
|
||||
@@ -377,10 +377,10 @@
|
||||
if(smooth)
|
||||
queue_smooth(src)
|
||||
|
||||
cut_overlay(crack_overlay)
|
||||
cut_overlays()
|
||||
if(ratio > 75)
|
||||
return
|
||||
crack_overlay = image('icons/obj/structures.dmi',"damage[ratio]",-(layer+0.1))
|
||||
crack_overlay.icon_state = "damage[ratio]"
|
||||
add_overlay(crack_overlay)
|
||||
|
||||
/obj/structure/window/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
|
||||
@@ -71,10 +71,8 @@
|
||||
/turf/closed/indestructible/fakeglass/Initialize()
|
||||
..()
|
||||
icon_state = null //set the icon state to null, so our base state isn't visible
|
||||
var/image/I = image('icons/obj/structures.dmi', loc = src, icon_state = "grille")
|
||||
underlays += I //add a grille underlay
|
||||
I = image('icons/turf/floors.dmi', loc = src, icon_state = "plating")
|
||||
underlays += I //add the plating underlay, below the grille
|
||||
underlays += mutable_appearance('icons/obj/structures.dmi', "grille") //add a grille underlay
|
||||
underlays += mutable_appearance('icons/turf/floors.dmi', "plating") //add the plating underlay, below the grille
|
||||
|
||||
/turf/closed/indestructible/fakedoor
|
||||
name = "Centcom Access"
|
||||
|
||||
+11
-6
@@ -3,7 +3,7 @@
|
||||
|
||||
var/wet = 0
|
||||
var/wet_time = 0 // Time in seconds that this floor will be wet for.
|
||||
var/image/wet_overlay = null
|
||||
var/mutable_appearance/wet_overlay
|
||||
|
||||
/turf/open/indestructible
|
||||
name = "floor"
|
||||
@@ -183,17 +183,22 @@
|
||||
if(wet_setting != TURF_DRY)
|
||||
if(wet_overlay)
|
||||
cut_overlay(wet_overlay)
|
||||
wet_overlay = null
|
||||
else
|
||||
wet_overlay = mutable_appearance()
|
||||
var/turf/open/floor/F = src
|
||||
if(istype(F))
|
||||
if(wet_setting == TURF_WET_PERMAFROST)
|
||||
wet_overlay = image('icons/effects/water.dmi', src, "ice_floor")
|
||||
wet_overlay.icon = 'icons/effects/water.dmi'
|
||||
wet_overlay.icon_state = "ice_floor"
|
||||
else if(wet_setting == TURF_WET_ICE)
|
||||
wet_overlay = image('icons/turf/overlays.dmi', src, "snowfloor")
|
||||
wet_overlay.icon = 'icons/turf/overlays.dmi'
|
||||
wet_overlay.icon_state = "snowfloor"
|
||||
else
|
||||
wet_overlay = image('icons/effects/water.dmi', src, "wet_floor_static")
|
||||
wet_overlay.icon = 'icons/effects/water.dmi'
|
||||
wet_overlay.icon_state = "wet_floor_static"
|
||||
else
|
||||
wet_overlay = image('icons/effects/water.dmi', src, "wet_static")
|
||||
wet_overlay.icon = 'icons/effects/water.dmi'
|
||||
wet_overlay.icon_state = "wet_static"
|
||||
add_overlay(wet_overlay)
|
||||
HandleWet()
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
var/spread = 0 //will the seam spread?
|
||||
var/spreadChance = 0 //the percentual chance of an ore spreading to the neighbouring tiles
|
||||
var/last_act = 0
|
||||
var/scan_state = null //Holder for the image we display when we're pinged by a mining scanner
|
||||
var/scan_state = "" //Holder for the image we display when we're pinged by a mining scanner
|
||||
var/defer_change = 0
|
||||
|
||||
/turf/closed/mineral/Initialize()
|
||||
@@ -380,7 +380,7 @@
|
||||
var/stage = 0 //How far into the lifecycle of gibtonite we are, 0 is untouched, 1 is active and attempting to detonate, 2 is benign and ready for extraction
|
||||
var/activated_ckey = null //These are to track who triggered the gibtonite deposit for logging purposes
|
||||
var/activated_name = null
|
||||
var/activated_image = null
|
||||
var/mutable_appearance/activated_overlay
|
||||
|
||||
/turf/closed/mineral/gibtonite/Initialize()
|
||||
det_time = rand(8,10) //So you don't know exactly when the hot potato will explode
|
||||
@@ -394,9 +394,8 @@
|
||||
|
||||
/turf/closed/mineral/gibtonite/proc/explosive_reaction(mob/user = null, triggered_by_explosion = 0)
|
||||
if(stage == 0)
|
||||
var/image/I = image('icons/turf/smoothrocks.dmi', loc = src, icon_state = "rock_Gibtonite_active", layer = ON_EDGED_TURF_LAYER)
|
||||
add_overlay(I)
|
||||
activated_image = I
|
||||
activated_overlay = mutable_appearance('icons/turf/smoothrocks.dmi', "rock_Gibtonite_active", ON_EDGED_TURF_LAYER)
|
||||
add_overlay(activated_overlay)
|
||||
name = "gibtonite deposit"
|
||||
desc = "An active gibtonite reserve. Run!"
|
||||
stage = 1
|
||||
@@ -433,9 +432,9 @@
|
||||
|
||||
/turf/closed/mineral/gibtonite/proc/defuse()
|
||||
if(stage == 1)
|
||||
cut_overlay(activated_image)
|
||||
var/image/I = image('icons/turf/smoothrocks.dmi', loc = src, icon_state = "rock_Gibtonite_inactive", layer = ON_EDGED_TURF_LAYER)
|
||||
add_overlay(I)
|
||||
cut_overlay(activated_overlay)
|
||||
activated_overlay.icon_state = "rock_Gibtonite_inactive"
|
||||
add_overlay(activated_overlay)
|
||||
desc = "An inactive gibtonite reserve. The ore can be extracted."
|
||||
stage = 2
|
||||
if(det_time < 0)
|
||||
|
||||
@@ -17,18 +17,18 @@
|
||||
if(src.client.handle_spam_prevention(msg,MUTE_PRAY))
|
||||
return
|
||||
|
||||
var/image/cross = image('icons/obj/storage.dmi',"bible")
|
||||
var/mutable_appearance/cross = mutable_appearance('icons/obj/storage.dmi', "bible")
|
||||
var/font_color = "purple"
|
||||
var/prayer_type = "PRAYER"
|
||||
var/deity
|
||||
if(usr.job == "Chaplain")
|
||||
cross = image('icons/obj/storage.dmi',"kingyellow")
|
||||
cross.icon_state = "kingyellow"
|
||||
font_color = "blue"
|
||||
prayer_type = "CHAPLAIN PRAYER"
|
||||
if(SSreligion.deity)
|
||||
deity = SSreligion.deity
|
||||
else if(iscultist(usr))
|
||||
cross = image('icons/obj/storage.dmi',"tome")
|
||||
cross.icon_state = "tome"
|
||||
font_color = "red"
|
||||
prayer_type = "CULTIST PRAYER"
|
||||
deity = "Nar-Sie"
|
||||
|
||||
@@ -44,14 +44,11 @@
|
||||
add_overlay("[O]_l")
|
||||
|
||||
if(a_right)
|
||||
var/list/images = list()
|
||||
images += image(icon, icon_state = "[a_right.icon_state]_left")
|
||||
var/mutable_appearance/right = mutable_appearance(icon, "[a_right.icon_state]_left")
|
||||
right.transform = matrix(-1, 0, 0, 0, 1, 0)
|
||||
for(var/O in a_right.attached_overlays)
|
||||
images += image(icon, icon_state = "[O]_l")
|
||||
var/matrix = matrix(-1, 0, 0, 0, 1, 0)
|
||||
for(var/image/I in images)
|
||||
I.transform = matrix
|
||||
add_overlay(I)
|
||||
right.add_overlay("[O]_l")
|
||||
add_overlay(right)
|
||||
|
||||
if(master)
|
||||
master.update_icon()
|
||||
|
||||
@@ -201,17 +201,10 @@ Pipelines + Other Objects -> Pipe network
|
||||
//Generate a unique identifier for this image combination
|
||||
var/identifier = iconsetids[iconset] + "_[iconstate]_[direction]_[col]"
|
||||
|
||||
var/image/img
|
||||
if(pipeimages[identifier] == null)
|
||||
img = image(iconset, icon_state=iconstate, dir=direction)
|
||||
img.color = col
|
||||
|
||||
pipeimages[identifier] = img
|
||||
|
||||
else
|
||||
img = pipeimages[identifier]
|
||||
|
||||
return img
|
||||
if((!(. = pipeimages[identifier])))
|
||||
var/image/pipe_overlay
|
||||
pipe_overlay = . = pipeimages[identifier] = image(iconset, iconstate, dir = direction)
|
||||
pipe_overlay.color = col
|
||||
|
||||
/obj/machinery/atmospherics/on_construction(pipe_type, obj_color)
|
||||
if(can_unwrench)
|
||||
|
||||
@@ -98,12 +98,11 @@
|
||||
/obj/machinery/atmospherics/miner/update_icon()
|
||||
overlays.Cut()
|
||||
if(broken)
|
||||
var/image/A = image(icon, "broken")
|
||||
add_overlay(A)
|
||||
add_overlay("broken")
|
||||
else if(active)
|
||||
var/image/A = image(icon, "on")
|
||||
A.color = overlay_color
|
||||
add_overlay(A)
|
||||
var/mutable_appearance/on_overlay = mutable_appearance(icon, "on")
|
||||
on_overlay.color = overlay_color
|
||||
add_overlay(on_overlay)
|
||||
|
||||
/obj/machinery/atmospherics/miner/process()
|
||||
update_power()
|
||||
|
||||
@@ -250,9 +250,9 @@ BLIND // can't see anything
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
if(damaged_clothes)
|
||||
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedgloves")
|
||||
. += mutable_appearance('icons/effects/item_damage.dmi', "damagedgloves")
|
||||
if(blood_DNA)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands")
|
||||
. += mutable_appearance('icons/effects/blood.dmi', "bloodyhands")
|
||||
|
||||
/obj/item/clothing/gloves/update_clothes_damaged_state(damaging = TRUE)
|
||||
..()
|
||||
@@ -278,9 +278,9 @@ BLIND // can't see anything
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
if(damaged_clothes)
|
||||
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedhelmet")
|
||||
. += mutable_appearance('icons/effects/item_damage.dmi', "damagedhelmet")
|
||||
if(blood_DNA)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="helmetblood")
|
||||
. += mutable_appearance('icons/effects/blood.dmi', "helmetblood")
|
||||
|
||||
/obj/item/clothing/head/update_clothes_damaged_state(damaging = TRUE)
|
||||
..()
|
||||
@@ -303,9 +303,9 @@ BLIND // can't see anything
|
||||
if(!isinhands)
|
||||
if(body_parts_covered & HEAD)
|
||||
if(damaged_clothes)
|
||||
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedmask")
|
||||
. += mutable_appearance('icons/effects/item_damage.dmi', "damagedmask")
|
||||
if(blood_DNA)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood")
|
||||
. += mutable_appearance('icons/effects/blood.dmi', "maskblood")
|
||||
|
||||
|
||||
//Mask
|
||||
@@ -325,9 +325,9 @@ BLIND // can't see anything
|
||||
if(!isinhands)
|
||||
if(body_parts_covered & HEAD)
|
||||
if(damaged_clothes)
|
||||
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedmask")
|
||||
. += mutable_appearance('icons/effects/item_damage.dmi', "damagedmask")
|
||||
if(blood_DNA)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood")
|
||||
. += mutable_appearance('icons/effects/blood.dmi', "maskblood")
|
||||
|
||||
/obj/item/clothing/mask/update_clothes_damaged_state(damaging = TRUE)
|
||||
..()
|
||||
@@ -399,9 +399,9 @@ BLIND // can't see anything
|
||||
bloody = bloody_shoes[BLOOD_STATE_HUMAN]
|
||||
|
||||
if(damaged_clothes)
|
||||
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damagedshoe")
|
||||
. += mutable_appearance('icons/effects/item_damage.dmi', "damagedshoe")
|
||||
if(bloody)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="shoeblood")
|
||||
. += mutable_appearance('icons/effects/blood.dmi', "shoeblood")
|
||||
|
||||
/obj/item/clothing/shoes/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
@@ -454,9 +454,9 @@ BLIND // can't see anything
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
if(damaged_clothes)
|
||||
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damaged[blood_overlay_type]")
|
||||
. += mutable_appearance('icons/effects/item_damage.dmi', "damaged[blood_overlay_type]")
|
||||
if(blood_DNA)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="[blood_overlay_type]blood")
|
||||
. += mutable_appearance('icons/effects/blood.dmi', "[blood_overlay_type]blood")
|
||||
|
||||
/obj/item/clothing/suit/update_clothes_damaged_state(damaging = TRUE)
|
||||
..()
|
||||
@@ -533,17 +533,17 @@ BLIND // can't see anything
|
||||
if(!isinhands)
|
||||
|
||||
if(damaged_clothes)
|
||||
. += image("icon"='icons/effects/item_damage.dmi', "icon_state"="damageduniform")
|
||||
. += mutable_appearance('icons/effects/item_damage.dmi', "damageduniform")
|
||||
if(blood_DNA)
|
||||
. += image("icon"='icons/effects/blood.dmi', "icon_state"="uniformblood")
|
||||
. += mutable_appearance('icons/effects/blood.dmi', "uniformblood")
|
||||
if(hastie)
|
||||
var/tie_color = hastie.item_color
|
||||
if(!tie_color)
|
||||
tie_color = hastie.icon_state
|
||||
var/image/tI = image("icon"='icons/mob/ties.dmi', "icon_state"="[tie_color]")
|
||||
tI.alpha = hastie.alpha
|
||||
tI.color = hastie.color
|
||||
. += tI
|
||||
var/mutable_appearance/tie = mutable_appearance('icons/mob/ties.dmi', "[tie_color]")
|
||||
tie.alpha = hastie.alpha
|
||||
tie.color = hastie.color
|
||||
. += tie
|
||||
|
||||
/obj/item/clothing/under/update_clothes_damaged_state(damaging = TRUE)
|
||||
..()
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
var/list/hands_nodrop = list()
|
||||
var/obj/item/clothing/head/helmet/space/chronos/helmet = null
|
||||
var/obj/effect/chronos_cam/camera = null
|
||||
var/image/phase_underlay = null
|
||||
var/datum/action/innate/chrono_teleport/teleport_now = new
|
||||
var/activating = 0
|
||||
var/activated = 0
|
||||
@@ -97,10 +96,6 @@
|
||||
for(var/obj/item/I in user.held_items)
|
||||
if(I in hands_nodrop)
|
||||
I.flags &= ~NODROP
|
||||
if(phase_underlay && !QDELETED(phase_underlay))
|
||||
user.underlays -= phase_underlay
|
||||
qdel(phase_underlay)
|
||||
phase_underlay = null
|
||||
if(camera)
|
||||
camera.remove_target_ui()
|
||||
camera.loc = user
|
||||
@@ -133,8 +128,6 @@
|
||||
|
||||
user.ExtinguishMob()
|
||||
|
||||
phase_underlay = create_phase_underlay(user)
|
||||
|
||||
hands_nodrop = list()
|
||||
for(var/obj/item/I in user.held_items)
|
||||
if(!(I.flags & NODROP))
|
||||
@@ -171,15 +164,6 @@
|
||||
else
|
||||
finish_chronowalk(user, to_turf)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/proc/create_phase_underlay(var/mob/user)
|
||||
var/icon/user_icon = icon('icons/effects/alphacolors.dmi', "")
|
||||
user_icon.AddAlphaMask(getFlatIcon(user))
|
||||
var/image/phase = new(user_icon)
|
||||
phase.appearance_flags = RESET_COLOR|RESET_ALPHA
|
||||
user.underlays += phase
|
||||
return phase
|
||||
|
||||
/obj/item/clothing/suit/space/chronos/process()
|
||||
if(activated)
|
||||
var/mob/living/carbon/human/user = src.loc
|
||||
|
||||
@@ -597,9 +597,9 @@
|
||||
C.update_inv_wear_suit()
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/worn_overlays(isinhands)
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
. += image(layer = MOB_LAYER+0.01, icon = 'icons/effects/effects.dmi', icon_state = "[shield_state]")
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
. += mutable_appearance('icons/effects/effects.dmi', shield_state, MOB_LAYER + 0.01)
|
||||
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/shielded
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -47,15 +47,12 @@
|
||||
|
||||
icon_state = "evidence"
|
||||
|
||||
var/xx = I.pixel_x //save the offset of the item
|
||||
var/yy = I.pixel_y
|
||||
I.pixel_x = 0 //then remove it so it'll stay within the evidence bag
|
||||
I.pixel_y = 0
|
||||
var/image/img = image("icon"=I, "layer"=FLOAT_LAYER) //take a snapshot. (necessary to stop the underlays appearing under our inventory-HUD slots ~Carn
|
||||
img.plane = FLOAT_PLANE
|
||||
I.pixel_x = xx //and then return it
|
||||
I.pixel_y = yy
|
||||
add_overlay(img)
|
||||
var/mutable_appearance/in_evidence = new(I)
|
||||
in_evidence.plane = FLOAT_PLANE
|
||||
in_evidence.layer = FLOAT_LAYER
|
||||
in_evidence.pixel_x = 0
|
||||
in_evidence.pixel_y = 0
|
||||
add_overlay(in_evidence)
|
||||
add_overlay("evidence") //should look nicer for transparent stuff. not really that important, but hey.
|
||||
|
||||
desc = "An evidence bag containing [I]. [I.desc]"
|
||||
|
||||
@@ -34,10 +34,10 @@
|
||||
var/list/hostile_types = list()
|
||||
var/number_of_hostiles
|
||||
var/list/station_areas = list()
|
||||
var/image/storm
|
||||
var/mutable_appearance/storm
|
||||
|
||||
/datum/round_event/portal_storm/setup()
|
||||
storm = image('icons/obj/tesla_engine/energy_ball.dmi', "energy_ball_fast", layer=FLY_LAYER)
|
||||
storm = storm = mutable_appearance('icons/obj/tesla_engine/energy_ball.dmi', "energy_ball_fast", FLY_LAYER)
|
||||
storm.color = "#00FF00"
|
||||
|
||||
station_areas = get_areas_in_z(ZLEVEL_STATION)
|
||||
|
||||
@@ -22,9 +22,9 @@
|
||||
if(R.glass_icon_state)
|
||||
icon_state = R.glass_icon_state
|
||||
else
|
||||
var/image/I = image(icon, "glassoverlay")
|
||||
I.color = mix_color_from_reagents(reagents.reagent_list)
|
||||
add_overlay(I)
|
||||
var/mutable_appearance/reagent_overlay = mutable_appearance(icon, "glassoverlay")
|
||||
reagent_overlay.color = mix_color_from_reagents(reagents.reagent_list)
|
||||
add_overlay(reagent_overlay)
|
||||
else
|
||||
icon_state = "glass_empty"
|
||||
name = "drinking glass"
|
||||
@@ -64,9 +64,9 @@
|
||||
icon_state = largest_reagent.shot_glass_icon_state
|
||||
else
|
||||
icon_state = "shotglassclear"
|
||||
var/image/I = image(icon, "shotglassoverlay")
|
||||
I.color = mix_color_from_reagents(reagents.reagent_list)
|
||||
add_overlay(I)
|
||||
var/mutable_appearance/shot_overlay = mutable_appearance(icon, "shotglassoverlay")
|
||||
shot_overlay.color = mix_color_from_reagents(reagents.reagent_list)
|
||||
add_overlay(shot_overlay)
|
||||
|
||||
|
||||
else
|
||||
|
||||
@@ -101,37 +101,36 @@
|
||||
filling_color = rgb(rgbcolor[1], rgbcolor[2], rgbcolor[3], rgbcolor[4])
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/customizable/update_overlays(obj/item/weapon/reagent_containers/food/snacks/S)
|
||||
var/image/I = new(icon, "[initial(icon_state)]_filling")
|
||||
var/mutable_appearance/filling = mutable_appearance(icon, "[initial(icon_state)]_filling")
|
||||
if(S.filling_color == "#FFFFFF")
|
||||
I.color = pick("#FF0000","#0000FF","#008000","#FFFF00")
|
||||
filling.color = pick("#FF0000","#0000FF","#008000","#FFFF00")
|
||||
else
|
||||
I.color = S.filling_color
|
||||
filling.color = S.filling_color
|
||||
|
||||
switch(ingredients_placement)
|
||||
if(INGREDIENTS_SCATTER)
|
||||
I.pixel_x = rand(-1,1)
|
||||
I.pixel_y = rand(-1,1)
|
||||
filling.pixel_x = rand(-1,1)
|
||||
filling.pixel_y = rand(-1,1)
|
||||
if(INGREDIENTS_STACK)
|
||||
I.pixel_x = rand(-1,1)
|
||||
I.pixel_y = 2 * ingredients.len - 1
|
||||
filling.pixel_x = rand(-1,1)
|
||||
filling.pixel_y = 2 * ingredients.len - 1
|
||||
if(INGREDIENTS_STACKPLUSTOP)
|
||||
I.pixel_x = rand(-1,1)
|
||||
I.pixel_y = 2 * ingredients.len - 1
|
||||
filling.pixel_x = rand(-1,1)
|
||||
filling.pixel_y = 2 * ingredients.len - 1
|
||||
if(our_overlays)
|
||||
our_overlays.Cut(ingredients.len) //???, add overlay calls later in this proc will queue the compile if necessary
|
||||
var/image/TOP = new(icon, "[icon_state]_top")
|
||||
var/mutable_appearance/TOP = mutable_appearance(icon, "[icon_state]_top")
|
||||
TOP.pixel_y = 2 * ingredients.len + 3
|
||||
add_overlay(I)
|
||||
add_overlay(filling)
|
||||
add_overlay(TOP)
|
||||
return
|
||||
if(INGREDIENTS_FILL)
|
||||
cut_overlays()
|
||||
I.color = filling_color
|
||||
filling.color = filling_color
|
||||
if(INGREDIENTS_LINE)
|
||||
I.pixel_y = rand(-8,3)
|
||||
I.pixel_x = I.pixel_y
|
||||
filling.pixel_x = filling.pixel_y = rand(-8,3)
|
||||
|
||||
add_overlay(I)
|
||||
add_overlay(filling)
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/customizable/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/slice, reagents_per_slice)
|
||||
@@ -248,14 +247,14 @@
|
||||
name = "[customname] sandwich"
|
||||
BS.reagents.trans_to(src, BS.reagents.total_volume)
|
||||
ingMax = ingredients.len //can't add more ingredients after that
|
||||
var/image/TOP = new(icon, "[BS.icon_state]")
|
||||
var/mutable_appearance/TOP = mutable_appearance(icon, "[BS.icon_state]")
|
||||
TOP.pixel_y = 2 * ingredients.len + 3
|
||||
add_overlay(TOP)
|
||||
if(istype(BS, /obj/item/weapon/reagent_containers/food/snacks/breadslice/custom))
|
||||
var/image/O = new(icon, "[initial(BS.icon_state)]_filling")
|
||||
O.color = BS.filling_color
|
||||
O.pixel_y = 2 * ingredients.len + 3
|
||||
add_overlay(O)
|
||||
var/mutable_appearance/filling = new(icon, "[initial(BS.icon_state)]_filling")
|
||||
filling.color = BS.filling_color
|
||||
filling.pixel_y = 2 * ingredients.len + 3
|
||||
add_overlay(filling)
|
||||
qdel(BS)
|
||||
return
|
||||
else
|
||||
@@ -313,7 +312,7 @@
|
||||
/obj/item/weapon/reagent_containers/glass/bowl/update_icon()
|
||||
cut_overlays()
|
||||
if(reagents && reagents.total_volume)
|
||||
var/image/filling = image('icons/obj/food/soupsalad.dmi', "fullbowl")
|
||||
var/mutable_appearance/filling = mutable_appearance('icons/obj/food/soupsalad.dmi', "fullbowl")
|
||||
filling.color = mix_color_from_reagents(reagents.reagent_list)
|
||||
add_overlay(filling)
|
||||
else
|
||||
|
||||
@@ -234,13 +234,13 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/proc/update_overlays(obj/item/weapon/reagent_containers/food/snacks/S)
|
||||
cut_overlays()
|
||||
var/image/I = new(src.icon, "[initial(icon_state)]_filling")
|
||||
var/mutable_appearance/filling = mutable_appearance(icon, "[initial(icon_state)]_filling")
|
||||
if(S.filling_color == "#FFFFFF")
|
||||
I.color = pick("#FF0000","#0000FF","#008000","#FFFF00")
|
||||
filling.color = pick("#FF0000","#0000FF","#008000","#FFFF00")
|
||||
else
|
||||
I.color = S.filling_color
|
||||
filling.color = S.filling_color
|
||||
|
||||
add_overlay(I)
|
||||
add_overlay(filling)
|
||||
|
||||
// initialize_cooked_food() is called when microwaving the food
|
||||
/obj/item/weapon/reagent_containers/food/snacks/proc/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency = 1)
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/slab/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/slice, reagents_per_slice)
|
||||
..()
|
||||
var/image/I = new(icon, "rawcutlet_coloration")
|
||||
I.color = filling_color
|
||||
slice.add_overlay(I)
|
||||
var/mutable_appearance/filling = mutable_appearance(icon, "rawcutlet_coloration")
|
||||
filling.color = filling_color
|
||||
slice.add_overlay(filling)
|
||||
slice.filling_color = filling_color
|
||||
slice.name = "raw [name] cutlet"
|
||||
slice.meat_type = name
|
||||
|
||||
@@ -383,13 +383,13 @@
|
||||
icon = 'icons/obj/lollipop.dmi'
|
||||
icon_state = "lollipop_stick"
|
||||
list_reagents = list("nutriment" = 1, "vitamin" = 1, "iron" = 10, "sugar" = 5, "omnizine" = 2) //Honk
|
||||
var/image/head
|
||||
var/mutable_appearance/head
|
||||
var/headcolor = rgb(0, 0, 0)
|
||||
tastes = list("candy" = 1)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/lollipop/New()
|
||||
..()
|
||||
head = image(icon = 'icons/obj/lollipop.dmi', icon_state = "lollipop_head")
|
||||
head = mutable_appearance('icons/obj/lollipop.dmi', "lollipop_head")
|
||||
change_head_color(rgb(rand(0, 255), rand(0, 255), rand(0, 255)))
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/lollipop/proc/change_head_color(C)
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
if(ishuman(hit_atom))
|
||||
var/mob/living/carbon/human/H = hit_atom
|
||||
var/image/creamoverlay = image('icons/effects/creampie.dmi')
|
||||
var/mutable_appearance/creamoverlay = mutable_appearance('icons/effects/creampie.dmi')
|
||||
if(H.dna.species.id == "lizard")
|
||||
creamoverlay.icon_state = "creampie_lizard"
|
||||
else
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
/obj/machinery/gibber/New()
|
||||
..()
|
||||
src.add_overlay(image('icons/obj/kitchen.dmi', "grjam"))
|
||||
add_overlay("grjam")
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/gibber(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
@@ -72,15 +72,15 @@
|
||||
/obj/machinery/gibber/update_icon()
|
||||
cut_overlays()
|
||||
if (dirty)
|
||||
src.add_overlay(image('icons/obj/kitchen.dmi', "grbloody"))
|
||||
add_overlay("grbloody")
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
if (!occupant)
|
||||
src.add_overlay(image('icons/obj/kitchen.dmi', "grjam"))
|
||||
add_overlay("grjam")
|
||||
else if (operating)
|
||||
src.add_overlay(image('icons/obj/kitchen.dmi', "gruse"))
|
||||
add_overlay("gruse")
|
||||
else
|
||||
src.add_overlay(image('icons/obj/kitchen.dmi', "gridle"))
|
||||
add_overlay("gridle")
|
||||
|
||||
/obj/machinery/gibber/attack_paw(mob/user)
|
||||
return src.attack_hand(user)
|
||||
|
||||
@@ -59,21 +59,20 @@
|
||||
icon_state = "pizzabox_open"
|
||||
if(pizza)
|
||||
icon_state = "pizzabox_messy"
|
||||
var/image/pizzaimg = image(pizza.icon, icon_state = pizza.icon_state)
|
||||
pizzaimg.pixel_y = -3
|
||||
add_overlay(pizzaimg)
|
||||
var/mutable_appearance/pizza_overlay = mutable_appearance(pizza.icon, pizza.icon_state)
|
||||
pizza_overlay.pixel_y = -3
|
||||
add_overlay(pizza_overlay)
|
||||
if(bomb)
|
||||
bomb.icon_state = "pizzabomb_[bomb_active ? "active" : "inactive"]"
|
||||
var/image/bombimg = image(bomb.icon, icon_state = bomb.icon_state)
|
||||
bombimg.pixel_y = 5
|
||||
add_overlay(bombimg)
|
||||
else
|
||||
var/mutable_appearance/bomb_overlay = mutable_appearance(bomb.icon, bomb.icon_state)
|
||||
bomb_overlay.pixel_y = 5
|
||||
add_overlay(bomb_overlay)
|
||||
icon_state = "pizzabox[boxes.len + 1]"
|
||||
var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src
|
||||
if(box.boxtag != "")
|
||||
var/image/tagimg = image(icon, icon_state = "pizzabox_tag")
|
||||
tagimg.pixel_y = boxes.len * 3
|
||||
add_overlay(tagimg)
|
||||
var/mutable_appearance/tag_overlay = mutable_appearance(icon, "pizzabox_tag")
|
||||
tag_overlay.pixel_y = boxes.len * 3
|
||||
add_overlay(tag_overlay)
|
||||
|
||||
/obj/item/pizzabox/attack_self(mob/user)
|
||||
if(boxes.len > 0)
|
||||
|
||||
+14
-15
@@ -234,31 +234,30 @@
|
||||
|
||||
if (cards.len == 1)
|
||||
var/datum/playingcard/P = cards[1]
|
||||
var/image/I = new(src.icon, (concealed ? "card_back" : "[P.card_icon]") )
|
||||
var/mutable_appearance/card_overlay = mutable_appearance(icon, (concealed ? "card_back" : "[P.card_icon]") )
|
||||
|
||||
I.pixel_x = I.pixel_x + (-5 + rand(10))
|
||||
I.pixel_y = I.pixel_y + (-5 + rand(10))
|
||||
card_overlay.pixel_x = card_overlay.pixel_x + (-5 + rand(10))
|
||||
card_overlay.pixel_y = card_overlay.pixel_y + (-5 + rand(10))
|
||||
|
||||
add_overlay(I)
|
||||
add_overlay(card_overlay)
|
||||
else
|
||||
var/origin = -12
|
||||
var/offset = round(32 / cards.len)
|
||||
var/origin = -12
|
||||
var/offset = round(32 / cards.len)
|
||||
|
||||
var/i = 0
|
||||
var/image/I
|
||||
var/i = 0
|
||||
var/mutable_appearance/card_overlay
|
||||
|
||||
for(var/datum/playingcard/P in cards)
|
||||
I = new(src.icon, (concealed ? "card_back" : "[P.card_icon]") )
|
||||
I.pixel_x = origin + (offset * i)
|
||||
card_overlay = mutable_appearance(icon, (concealed ? "card_back" : P.card_icon))
|
||||
card_overlay.pixel_x = origin + (offset * i)
|
||||
|
||||
add_overlay(I)
|
||||
add_overlay(card_overlay)
|
||||
i = i + 1
|
||||
|
||||
i = i + 1
|
||||
|
||||
var/html = ""
|
||||
var/html = ""
|
||||
|
||||
for(var/datum/playingcard/card in cards)
|
||||
html = html + "<a href=\"byond://?src=\ref[src.hi]&action=play_card&card=\ref[card]\" class=\"card [card.suit] [card.number]\"></a>"
|
||||
html = html + "<a href=\"byond://?src=\ref[src.hi]&action=play_card&card=\ref[card]\" class=\"card [card.suit] [card.number]\"></a>"
|
||||
|
||||
src.hi.updateContent("hand", html)
|
||||
|
||||
|
||||
@@ -73,8 +73,8 @@
|
||||
|
||||
/obj/item/weapon/storage/bag/easterbasket/proc/countEggs()
|
||||
cut_overlays()
|
||||
add_overlay(image("icon" = icon, "icon_state" = "basket-grass", "layer" = -1))
|
||||
add_overlay(image("icon" = icon, "icon_state" = "basket-egg[contents.len <= 5 ? contents.len : 5]", "layer" = -1))
|
||||
add_overlay("basket-grass")
|
||||
add_overlay("basket-egg[min(contents.len, 5)]")
|
||||
|
||||
/obj/item/weapon/storage/bag/easterbasket/remove_from_storage(obj/item/W as obj, atom/new_location)
|
||||
..()
|
||||
|
||||
@@ -21,13 +21,11 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/honeycomb/update_icon()
|
||||
cut_overlays()
|
||||
var/image/honey
|
||||
var/mutable_appearance/honey_overlay = mutable_appearance(icon, "honey")
|
||||
if(honey_color)
|
||||
honey = image(icon = 'icons/obj/hydroponics/harvest.dmi', icon_state = "greyscale_honey")
|
||||
honey.color = honey_color
|
||||
else
|
||||
honey = image(icon = 'icons/obj/hydroponics/harvest.dmi', icon_state = "honey")
|
||||
add_overlay(honey)
|
||||
honey_overlay.icon_state = "greyscale_honey"
|
||||
honey_overlay.color = honey_color
|
||||
add_overlay(honey_overlay)
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/honeycomb/proc/set_reagent(reagent)
|
||||
|
||||
@@ -116,8 +116,9 @@
|
||||
can_buckle = 1
|
||||
buckle_requires_restraints = 1
|
||||
to_chat(user, "<span class='italics'>You add a rod to [src].")
|
||||
var/image/U = image(icon='icons/obj/hydroponics/equipment.dmi',icon_state="bonfire_rod",pixel_y=16)
|
||||
underlays += U
|
||||
var/mutable_appearance/rod_underlay = mutable_appearance('icons/obj/hydroponics/equipment.dmi', "bonfire_rod")
|
||||
rod_underlay.pixel_y = 16
|
||||
underlays += rod_underlay
|
||||
if(W.is_hot())
|
||||
StartBurning()
|
||||
|
||||
|
||||
@@ -259,7 +259,7 @@
|
||||
if(istype(src, /obj/machinery/hydroponics/soil))
|
||||
add_atom_colour(rgb(255, 175, 0), FIXED_COLOUR_PRIORITY)
|
||||
else
|
||||
add_overlay(image('icons/obj/hydroponics/equipment.dmi', icon_state = "gaia_blessing"))
|
||||
overlays += mutable_appearance('icons/obj/hydroponics/equipment.dmi', "gaia_blessing")
|
||||
set_light(3)
|
||||
|
||||
update_icon_hoses()
|
||||
@@ -287,31 +287,30 @@
|
||||
icon_state = "hoses-[n]"
|
||||
|
||||
/obj/machinery/hydroponics/proc/update_icon_plant()
|
||||
var/image/I
|
||||
var/mutable_appearance/plant_overlay = mutable_appearance(myseed.growing_icon, layer = OBJ_LAYER + 0.01)
|
||||
if(dead)
|
||||
I = image(icon = myseed.growing_icon, icon_state = myseed.icon_dead)
|
||||
plant_overlay.icon_state = myseed.icon_dead
|
||||
else if(harvest)
|
||||
if(!myseed.icon_harvest)
|
||||
I = image(icon = myseed.growing_icon, icon_state = "[myseed.icon_grow][myseed.growthstages]")
|
||||
plant_overlay.icon_state = "[myseed.icon_grow][myseed.growthstages]"
|
||||
else
|
||||
I = image(icon = myseed.growing_icon, icon_state = myseed.icon_harvest)
|
||||
plant_overlay.icon_state = myseed.icon_harvest
|
||||
else
|
||||
var/t_growthstate = min(round((age / myseed.maturation) * myseed.growthstages), myseed.growthstages)
|
||||
I = image(icon = myseed.growing_icon, icon_state = "[myseed.icon_grow][t_growthstate]")
|
||||
I.layer = OBJ_LAYER + 0.01
|
||||
add_overlay(I)
|
||||
plant_overlay.icon_state = "[myseed.icon_grow][t_growthstate]"
|
||||
add_overlay(plant_overlay)
|
||||
|
||||
/obj/machinery/hydroponics/proc/update_icon_lights()
|
||||
if(waterlevel <= 10)
|
||||
add_overlay(image('icons/obj/hydroponics/equipment.dmi', icon_state = "over_lowwater3"))
|
||||
add_overlay(mutable_appearance('icons/obj/hydroponics/equipment.dmi', "over_lowwater3"))
|
||||
if(nutrilevel <= 2)
|
||||
add_overlay(image('icons/obj/hydroponics/equipment.dmi', icon_state = "over_lownutri3"))
|
||||
add_overlay(mutable_appearance('icons/obj/hydroponics/equipment.dmi', "over_lownutri3"))
|
||||
if(plant_health <= (myseed.endurance / 2))
|
||||
add_overlay(image('icons/obj/hydroponics/equipment.dmi', icon_state = "over_lowhealth3"))
|
||||
add_overlay(mutable_appearance('icons/obj/hydroponics/equipment.dmi', "over_lowhealth3"))
|
||||
if(weedlevel >= 5 || pestlevel >= 5 || toxic >= 40)
|
||||
add_overlay(image('icons/obj/hydroponics/equipment.dmi', icon_state = "over_alert3"))
|
||||
add_overlay(mutable_appearance('icons/obj/hydroponics/equipment.dmi', "over_alert3"))
|
||||
if(harvest)
|
||||
add_overlay(image('icons/obj/hydroponics/equipment.dmi', icon_state = "over_harvest3"))
|
||||
add_overlay(mutable_appearance('icons/obj/hydroponics/equipment.dmi', "over_harvest3"))
|
||||
|
||||
|
||||
/obj/machinery/hydroponics/examine(user)
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
/obj/item/seeds/sample/New()
|
||||
..()
|
||||
if(sample_color)
|
||||
var/image/I = image(icon, icon_state = "sample-filling")
|
||||
I.color = sample_color
|
||||
add_overlay(I)
|
||||
var/mutable_appearance/filling = mutable_appearance(icon, "sample-filling")
|
||||
filling.color = sample_color
|
||||
add_overlay(filling)
|
||||
|
||||
/obj/item/seeds/sample/get_analyzer_text()
|
||||
return " The DNA of this sample is damaged beyond recovery, it can't support life on its own.\n*---------*"
|
||||
|
||||
@@ -513,7 +513,7 @@
|
||||
var/charged = 1
|
||||
var/charge_time = 16
|
||||
var/atom/mark = null
|
||||
var/marked_image = null
|
||||
var/mutable_appearance/marked_underlay
|
||||
|
||||
/obj/item/projectile/destabilizer
|
||||
name = "destabilizing force"
|
||||
@@ -530,15 +530,16 @@
|
||||
if(hammer_synced.mark == target)
|
||||
return ..()
|
||||
if(isliving(target))
|
||||
if(hammer_synced.mark && hammer_synced.marked_image)
|
||||
hammer_synced.mark.underlays -= hammer_synced.marked_image
|
||||
hammer_synced.marked_image = null
|
||||
if(hammer_synced.mark && hammer_synced.marked_underlay)
|
||||
hammer_synced.mark.underlays -= hammer_synced.marked_underlay
|
||||
hammer_synced.marked_underlay = null
|
||||
var/mob/living/L = target
|
||||
if(L.mob_size >= MOB_SIZE_LARGE)
|
||||
hammer_synced.mark = L
|
||||
var/image/I = image('icons/effects/effects.dmi', loc = L, icon_state = "shield2",pixel_y = (-L.pixel_y),pixel_x = (-L.pixel_x))
|
||||
L.underlays += I
|
||||
hammer_synced.marked_image = I
|
||||
hammer_synced.marked_underlay = mutable_appearance('icons/effects/effects.dmi', "shield2")
|
||||
hammer_synced.marked_underlay.pixel_x = -L.pixel_x
|
||||
hammer_synced.marked_underlay.pixel_y = -L.pixel_y
|
||||
L.underlays += hammer_synced.marked_underlay
|
||||
var/target_turf = get_turf(target)
|
||||
if(ismineralturf(target_turf))
|
||||
var/turf/closed/mineral/M = target_turf
|
||||
@@ -570,9 +571,8 @@
|
||||
new /obj/effect/overlay/temp/kinetic_blast(get_turf(L))
|
||||
mark = 0
|
||||
if(L.mob_size >= MOB_SIZE_LARGE)
|
||||
L.underlays -= marked_image
|
||||
qdel(marked_image)
|
||||
marked_image = null
|
||||
L.underlays -= marked_underlay
|
||||
QDEL_NULL(marked_underlay)
|
||||
var/backstab_dir = get_dir(user, L)
|
||||
var/def_check = L.getarmor(type = "bomb")
|
||||
if((user.dir & backstab_dir) && (L.dir & backstab_dir))
|
||||
|
||||
@@ -69,9 +69,9 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
|
||||
if(uses_left <= 0)
|
||||
user.drop_item(src)
|
||||
loc = A
|
||||
var/image/balloon
|
||||
var/image/balloon2
|
||||
var/image/balloon3
|
||||
var/mutable_appearance/balloon
|
||||
var/mutable_appearance/balloon2
|
||||
var/mutable_appearance/balloon3
|
||||
if(isliving(A))
|
||||
var/mob/living/M = A
|
||||
M.Weaken(16) // Keep them from moving during the duration of the extraction
|
||||
@@ -82,12 +82,12 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
|
||||
var/obj/effect/extraction_holder/holder_obj = new(A.loc)
|
||||
holder_obj.appearance = A.appearance
|
||||
A.loc = holder_obj
|
||||
balloon2 = image('icons/obj/fulton_balloon.dmi',"fulton_expand")
|
||||
balloon2 = mutable_appearance('icons/obj/fulton_balloon.dmi', "fulton_expand")
|
||||
balloon2.pixel_y = 10
|
||||
balloon2.appearance_flags = RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM
|
||||
holder_obj.add_overlay(balloon2)
|
||||
sleep(4)
|
||||
balloon = image('icons/obj/fulton_balloon.dmi',"fulton_balloon")
|
||||
balloon = mutable_appearance('icons/obj/fulton_balloon.dmi', "fulton_balloon")
|
||||
balloon.pixel_y = 10
|
||||
balloon.appearance_flags = RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM
|
||||
holder_obj.cut_overlay(balloon2)
|
||||
@@ -121,7 +121,7 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
|
||||
sleep(10)
|
||||
animate(holder_obj, pixel_z = 10, time = 10)
|
||||
sleep(10)
|
||||
balloon3 = image('icons/obj/fulton_balloon.dmi',"fulton_retract")
|
||||
balloon3 = mutable_appearance('icons/obj/fulton_balloon.dmi', "fulton_retract")
|
||||
balloon3.pixel_y = 10
|
||||
balloon3.appearance_flags = RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM
|
||||
holder_obj.cut_overlay(balloon)
|
||||
|
||||
@@ -68,9 +68,8 @@
|
||||
user.setDir(SOUTH)
|
||||
user.Stun(4)
|
||||
user.loc = src.loc
|
||||
var/image/W = image('goon/icons/obj/fitness.dmi',"fitnessweight-w")
|
||||
W.layer = WALL_OBJ_LAYER
|
||||
add_overlay(W)
|
||||
var/mutable_appearance/swole_overlay = mutable_appearance(icon, "fitnessweight-w", WALL_OBJ_LAYER)
|
||||
add_overlay(swole_overlay)
|
||||
var/bragmessage = pick("pushing it to the limit","going into overdrive","burning with determination","rising up to the challenge", "getting strong now","getting ripped")
|
||||
user.visible_message("<B>[user] is [bragmessage]!</B>")
|
||||
var/reps = 0
|
||||
@@ -93,5 +92,5 @@
|
||||
animate(user, pixel_y = 0, time = 3)
|
||||
var/finishmessage = pick("You feel stronger!","You feel like you can take on the world!","You feel robust!","You feel indestructible!")
|
||||
icon_state = "fitnessweight"
|
||||
cut_overlay(W)
|
||||
cut_overlay(swole_overlay)
|
||||
to_chat(user, "[finishmessage]")
|
||||
@@ -392,7 +392,7 @@
|
||||
return
|
||||
|
||||
if (CC.use(1))
|
||||
add_overlay(image('icons/obj/economy.dmi',"coin_string_overlay"))
|
||||
add_overlay("coin_string_overlay")
|
||||
string_attached = 1
|
||||
to_chat(user, "<span class='notice'>You attach a string to the coin.</span>")
|
||||
else
|
||||
|
||||
@@ -37,10 +37,10 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
|
||||
//These variables store hair data if the ghost originates from a species with head and/or facial hair.
|
||||
var/hair_style
|
||||
var/hair_color
|
||||
var/image/hair_image
|
||||
var/mutable_appearance/hair_overlay
|
||||
var/facial_hair_style
|
||||
var/facial_hair_color
|
||||
var/image/facial_hair_image
|
||||
var/mutable_appearance/facial_hair_overlay
|
||||
|
||||
var/updatedir = 1 //Do we have to update our dir as the ghost moves around?
|
||||
var/lastsetting = null //Stores the last setting that ghost_others was set to, for a little more efficiency when we update ghost images. Null means no update is necessary
|
||||
@@ -161,13 +161,13 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
|
||||
ghost_accs = client.prefs.ghost_accs
|
||||
ghost_others = client.prefs.ghost_others
|
||||
|
||||
if(hair_image)
|
||||
cut_overlay(hair_image)
|
||||
hair_image = null
|
||||
if(hair_overlay)
|
||||
cut_overlay(hair_overlay)
|
||||
hair_overlay = null
|
||||
|
||||
if(facial_hair_image)
|
||||
cut_overlay(facial_hair_image)
|
||||
facial_hair_image = null
|
||||
if(facial_hair_overlay)
|
||||
cut_overlay(facial_hair_overlay)
|
||||
facial_hair_overlay = null
|
||||
|
||||
|
||||
if(new_form)
|
||||
@@ -188,19 +188,19 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
|
||||
if(facial_hair_style)
|
||||
S = GLOB.facial_hair_styles_list[facial_hair_style]
|
||||
if(S)
|
||||
facial_hair_image = image("icon" = S.icon, "icon_state" = "[S.icon_state]", "layer" = -HAIR_LAYER)
|
||||
facial_hair_overlay = mutable_appearance(S.icon, "[S.icon_state]", -HAIR_LAYER)
|
||||
if(facial_hair_color)
|
||||
facial_hair_image.color = "#" + facial_hair_color
|
||||
facial_hair_image.alpha = 200
|
||||
add_overlay(facial_hair_image)
|
||||
facial_hair_overlay.color = "#" + facial_hair_color
|
||||
facial_hair_overlay.alpha = 200
|
||||
add_overlay(facial_hair_overlay)
|
||||
if(hair_style)
|
||||
S = GLOB.hair_styles_list[hair_style]
|
||||
if(S)
|
||||
hair_image = image("icon" = S.icon, "icon_state" = "[S.icon_state]", "layer" = -HAIR_LAYER)
|
||||
hair_overlay = mutable_appearance(S.icon, "[S.icon_state]", -HAIR_LAYER)
|
||||
if(hair_color)
|
||||
hair_image.color = "#" + hair_color
|
||||
hair_image.alpha = 200
|
||||
add_overlay(hair_image)
|
||||
hair_overlay.color = "#" + hair_color
|
||||
hair_overlay.alpha = 200
|
||||
add_overlay(hair_overlay)
|
||||
|
||||
/*
|
||||
* Increase the brightness of a color by calculating the average distance between the R, G and B values,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
/mob/living/carbon/alien/humanoid/update_icons()
|
||||
cut_overlays()
|
||||
for(var/image/I in overlays_standing)
|
||||
for(var/I in overlays_standing)
|
||||
add_overlay(I)
|
||||
|
||||
if(stat == DEAD)
|
||||
@@ -66,7 +66,7 @@
|
||||
dmi_file = 'icons/mob/alienqueen.dmi'
|
||||
|
||||
if(handcuffed)
|
||||
overlays_standing[HANDCUFF_LAYER] = image(dmi_file,icon_state= cuff_icon, layer =-HANDCUFF_LAYER)
|
||||
overlays_standing[HANDCUFF_LAYER] = mutable_appearance(dmi_file, cuff_icon, -HANDCUFF_LAYER)
|
||||
apply_overlay(HANDCUFF_LAYER)
|
||||
|
||||
//Royals have bigger sprites, so inhand things must be handled differently.
|
||||
@@ -80,16 +80,14 @@
|
||||
var/itm_state = l_hand.item_state
|
||||
if(!itm_state)
|
||||
itm_state = l_hand.icon_state
|
||||
var/image/I = image("icon" = alt_inhands_file , "icon_state"="[itm_state][caste]_l", "layer"=-HANDS_LAYER)
|
||||
hands += I
|
||||
hands += mutable_appearance(alt_inhands_file, "[itm_state][caste]_l", -HANDS_LAYER)
|
||||
|
||||
var/obj/item/r_hand = get_item_for_held_index(2)
|
||||
if(r_hand)
|
||||
var/itm_state = r_hand.item_state
|
||||
if(!itm_state)
|
||||
itm_state = r_hand.icon_state
|
||||
var/image/I = image("icon" = alt_inhands_file , "icon_state"="[itm_state][caste]_r", "layer"=-HANDS_LAYER)
|
||||
hands += I
|
||||
hands += mutable_appearance(alt_inhands_file, "[itm_state][caste]_r", -HANDS_LAYER)
|
||||
|
||||
overlays_standing[HANDS_LAYER] = hands
|
||||
apply_overlay(HANDS_LAYER)
|
||||
@@ -18,7 +18,6 @@
|
||||
return
|
||||
var/Qdir = get_dir(src, Q)
|
||||
var/Qdist = get_dist(src, Q)
|
||||
image(icon,loc,icon_state,layer,dir)
|
||||
var/finder_icon = "finder_center" //Overlay showed when adjacent to or on top of the queen!
|
||||
switch(Qdist)
|
||||
if(2 to 7)
|
||||
@@ -27,7 +26,7 @@
|
||||
finder_icon = "finder_med"
|
||||
if(21 to INFINITY)
|
||||
finder_icon = "finder_far"
|
||||
var/image/finder_eye = image('icons/mob/screen_alien.dmi', icon_state = finder_icon, dir = Qdir)
|
||||
var/image/finder_eye = image('icons/mob/screen_alien.dmi', finder_icon, dir = Qdir)
|
||||
hud_used.alien_queen_finder.add_overlay(finder_eye)
|
||||
|
||||
/mob/living/carbon/alien/humanoid/royal/queen/findQueen()
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
|
||||
var/mob/dead/observer/ghost = pick(candidates)
|
||||
|
||||
var/overlay = image('icons/mob/alien.dmi', loc = owner, icon_state = "burst_lie")
|
||||
var/mutable_appearance/overlay = mutable_appearance('icons/mob/alien.dmi', "burst_lie")
|
||||
owner.add_overlay(overlay)
|
||||
|
||||
var/atom/xeno_loc = get_turf(owner)
|
||||
|
||||
@@ -751,7 +751,7 @@
|
||||
..()
|
||||
|
||||
/mob/living/carbon/fakefire(var/fire_icon = "Generic_mob_burning")
|
||||
var/image/new_fire_overlay = image("icon"='icons/mob/OnFire.dmi', "icon_state"= fire_icon, "layer"=-FIRE_LAYER)
|
||||
var/mutable_appearance/new_fire_overlay = mutable_appearance('icons/mob/OnFire.dmi', fire_icon, -FIRE_LAYER)
|
||||
new_fire_overlay.appearance_flags = RESET_COLOR
|
||||
overlays_standing[FIRE_LAYER] = new_fire_overlay
|
||||
apply_overlay(FIRE_LAYER)
|
||||
|
||||
@@ -732,8 +732,8 @@
|
||||
|
||||
/mob/living/carbon/human/wash_cream()
|
||||
//clean both to prevent a rare bug
|
||||
cut_overlay(image('icons/effects/creampie.dmi', "creampie_lizard"))
|
||||
cut_overlay(image('icons/effects/creampie.dmi', "creampie_human"))
|
||||
cut_overlay(mutable_appearance('icons/effects/creampie.dmi', "creampie_lizard"))
|
||||
cut_overlay(mutable_appearance('icons/effects/creampie.dmi', "creampie_human"))
|
||||
|
||||
|
||||
//Turns a mob black, flashes a skeleton overlay
|
||||
@@ -742,17 +742,19 @@
|
||||
//Handle mutant parts if possible
|
||||
if(dna && dna.species)
|
||||
add_atom_colour("#000000", TEMPORARY_COLOUR_PRIORITY)
|
||||
var/static/image/electrocution_skeleton_anim = image(icon = icon, icon_state = "electrocuted_base")
|
||||
electrocution_skeleton_anim.appearance_flags = RESET_COLOR
|
||||
var/static/mutable_appearance/electrocution_skeleton_anim
|
||||
if(!electrocution_skeleton_anim)
|
||||
electrocution_skeleton_anim = mutable_appearance(icon, "electrocuted_base")
|
||||
electrocution_skeleton_anim.appearance_flags |= RESET_COLOR
|
||||
add_overlay(electrocution_skeleton_anim)
|
||||
addtimer(CALLBACK(src, .proc/end_electrocution_animation, electrocution_skeleton_anim), anim_duration)
|
||||
|
||||
else //or just do a generic animation
|
||||
flick_overlay_view(image(icon,src,"electrocuted_generic",ABOVE_MOB_LAYER), src, anim_duration)
|
||||
|
||||
/mob/living/carbon/human/proc/end_electrocution_animation(image/I)
|
||||
/mob/living/carbon/human/proc/end_electrocution_animation(mutable_appearance/MA)
|
||||
remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, "#000000")
|
||||
cut_overlay(I)
|
||||
cut_overlay(MA)
|
||||
|
||||
/mob/living/carbon/human/canUseTopic(atom/movable/M, be_close = 0)
|
||||
if(incapacitated() || lying )
|
||||
@@ -821,9 +823,9 @@
|
||||
if(hal_screwyhud == SCREWYHUD_HEALTHY)
|
||||
icon_num = 0
|
||||
if(icon_num)
|
||||
hud_used.healthdoll.add_overlay(image('icons/mob/screen_gen.dmi',"[BP.body_zone][icon_num]"))
|
||||
hud_used.healthdoll.add_overlay(mutable_appearance('icons/mob/screen_gen.dmi', "[BP.body_zone][icon_num]"))
|
||||
for(var/t in get_missing_limbs()) //Missing limbs
|
||||
hud_used.healthdoll.add_overlay(image('icons/mob/screen_gen.dmi',"[t]6"))
|
||||
hud_used.healthdoll.add_overlay(mutable_appearance('icons/mob/screen_gen.dmi', "[t]6"))
|
||||
else
|
||||
hud_used.healthdoll.icon_state = "healthdoll_DEAD"
|
||||
|
||||
|
||||
@@ -229,22 +229,22 @@
|
||||
fhair_state += dynamic_fhair_suffix
|
||||
fhair_file = 'icons/mob/facialhair_extensions.dmi'
|
||||
|
||||
var/image/img_facial = image("icon" = fhair_file, "icon_state" = fhair_state, "layer" = -HAIR_LAYER)
|
||||
var/mutable_appearance/facial_overlay = mutable_appearance(fhair_file, fhair_state, -HAIR_LAYER)
|
||||
|
||||
if(!forced_colour)
|
||||
if(hair_color)
|
||||
if(hair_color == "mutcolor")
|
||||
img_facial.color = "#" + H.dna.features["mcolor"]
|
||||
facial_overlay.color = "#" + H.dna.features["mcolor"]
|
||||
else
|
||||
img_facial.color = "#" + hair_color
|
||||
facial_overlay.color = "#" + hair_color
|
||||
else
|
||||
img_facial.color = "#" + H.facial_hair_color
|
||||
facial_overlay.color = "#" + H.facial_hair_color
|
||||
else
|
||||
img_facial.color = forced_colour
|
||||
facial_overlay.color = forced_colour
|
||||
|
||||
img_facial.alpha = hair_alpha
|
||||
facial_overlay.alpha = hair_alpha
|
||||
|
||||
standing += img_facial
|
||||
standing += facial_overlay
|
||||
|
||||
if(H.head)
|
||||
var/obj/item/I = H.head
|
||||
@@ -262,9 +262,11 @@
|
||||
hair_hidden = TRUE
|
||||
|
||||
if(!hair_hidden || dynamic_hair_suffix)
|
||||
var/mutable_appearance/hair_overlay = mutable_appearance(layer = -HAIR_LAYER)
|
||||
if(!hair_hidden && !H.getorgan(/obj/item/organ/brain)) //Applies the debrained overlay if there is no brain
|
||||
if(!(NOBLOOD in species_traits))
|
||||
standing += image("icon"='icons/mob/human_face.dmi', "icon_state" = "debrained", "layer" = -HAIR_LAYER)
|
||||
hair_overlay.icon = 'icons/mob/human_face.dmi'
|
||||
hair_overlay.icon_state = "debrained"
|
||||
|
||||
else if(H.hair_style && (HAIR in species_traits))
|
||||
S = GLOB.hair_styles_list[H.hair_style]
|
||||
@@ -286,70 +288,70 @@
|
||||
hair_state += dynamic_hair_suffix
|
||||
hair_file = 'icons/mob/hair_extensions.dmi'
|
||||
|
||||
var/image/img_hair = image("icon" = hair_file, "icon_state" = hair_state, "layer" = -HAIR_LAYER)
|
||||
hair_overlay.icon = hair_file
|
||||
hair_overlay.icon_state = hair_state
|
||||
|
||||
if(!forced_colour)
|
||||
if(hair_color)
|
||||
if(hair_color == "mutcolor")
|
||||
img_hair.color = "#" + H.dna.features["mcolor"]
|
||||
hair_overlay.color = "#" + H.dna.features["mcolor"]
|
||||
else
|
||||
img_hair.color = "#" + hair_color
|
||||
hair_overlay.color = "#" + hair_color
|
||||
else
|
||||
img_hair.color = "#" + H.hair_color
|
||||
hair_overlay.color = "#" + H.hair_color
|
||||
else
|
||||
img_hair.color = forced_colour
|
||||
img_hair.alpha = hair_alpha
|
||||
|
||||
img_hair.pixel_y += hair_y_offset
|
||||
standing += img_hair
|
||||
hair_overlay.color = forced_colour
|
||||
hair_overlay.alpha = hair_alpha
|
||||
hair_overlay.pixel_y += hair_y_offset
|
||||
if(hair_overlay.icon)
|
||||
standing += hair_overlay
|
||||
|
||||
if(standing.len)
|
||||
H.overlays_standing[HAIR_LAYER] = standing
|
||||
H.overlays_standing[HAIR_LAYER] = standing
|
||||
|
||||
H.apply_overlay(HAIR_LAYER)
|
||||
|
||||
/datum/species/proc/handle_body(mob/living/carbon/human/H)
|
||||
H.remove_overlay(BODY_LAYER)
|
||||
|
||||
var/list/standing = list()
|
||||
var/list/standing = list()
|
||||
|
||||
var/obj/item/bodypart/head/HD = H.get_bodypart("head")
|
||||
|
||||
if(!(H.disabilities & HUSK))
|
||||
// lipstick
|
||||
if(H.lip_style && (LIPS in species_traits) && HD)
|
||||
var/image/lips = image("icon"='icons/mob/human_face.dmi', "icon_state"="lips_[H.lip_style]", "layer" = -BODY_LAYER)
|
||||
lips.color = H.lip_color
|
||||
lips.pixel_y += face_y_offset
|
||||
standing += lips
|
||||
var/mutable_appearance/lip_overlay = mutable_appearance('icons/mob/human_face.dmi', "lips_[H.lip_style]", -BODY_LAYER)
|
||||
lip_overlay.color = H.lip_color
|
||||
lip_overlay.pixel_y += face_y_offset
|
||||
standing += lip_overlay
|
||||
|
||||
// eyes
|
||||
if((EYECOLOR in species_traits) && HD)
|
||||
var/image/img_eyes = image("icon" = 'icons/mob/human_face.dmi', "icon_state" = "eyes", "layer" = -BODY_LAYER)
|
||||
img_eyes.color = "#" + H.eye_color
|
||||
img_eyes.pixel_y += face_y_offset
|
||||
standing += img_eyes
|
||||
var/mutable_appearance/eye_overlay = mutable_appearance('icons/mob/human_face.dmi', "eyes", -BODY_LAYER)
|
||||
eye_overlay.color = "#" + H.eye_color
|
||||
eye_overlay.pixel_y += face_y_offset
|
||||
standing += eye_overlay
|
||||
|
||||
//Underwear, Undershirts & Socks
|
||||
/*This will be refactored at a later date
|
||||
if(H.underwear)
|
||||
var/datum/sprite_accessory/underwear/underwear = GLOB.underwear_list[H.underwear]
|
||||
if(underwear)
|
||||
standing += image("icon"=underwear.icon, "icon_state"="[underwear.icon_state]", "layer"=-BODY_LAYER)
|
||||
standing += mutable_appearance(underwear.icon, underwear.icon_state, -BODY_LAYER)
|
||||
|
||||
if(H.undershirt)
|
||||
var/datum/sprite_accessory/undershirt/undershirt = GLOB.undershirt_list[H.undershirt]
|
||||
if(undershirt)
|
||||
if(H.dna.species.sexes && H.gender == FEMALE)
|
||||
standing += wear_female_version("[undershirt.icon_state]", undershirt.icon, BODY_LAYER)
|
||||
standing += wear_female_version(undershirt.icon_state, undershirt.icon, -BODY_LAYER)
|
||||
else
|
||||
standing += image("icon"=undershirt.icon, "icon_state"="[undershirt.icon_state]", "layer"=-BODY_LAYER)
|
||||
standing += mutable_appearance(undershirt.icon, undershirt.icon_state, -BODY_LAYER)
|
||||
|
||||
if(H.socks && H.get_num_legs() >= 2 && !(DIGITIGRADE in species_traits))
|
||||
var/datum/sprite_accessory/socks/socks = GLOB.socks_list[H.socks]
|
||||
if(socks)
|
||||
standing += image("icon"=socks.icon, "icon_state"="[socks.icon_state]", "layer"=-BODY_LAYER)
|
||||
*/
|
||||
standing += mutable_appearance(socks.icon, socks.icon_state, -BODY_LAYER)
|
||||
|
||||
if(standing.len)
|
||||
H.overlays_standing[BODY_LAYER] = standing
|
||||
|
||||
@@ -486,8 +488,6 @@
|
||||
|
||||
var/g = (H.gender == FEMALE) ? "f" : "m"
|
||||
|
||||
var/image/I
|
||||
|
||||
for(var/layer in relevant_layers)
|
||||
var/layertext = mutant_bodyparts_layertext(layer)
|
||||
|
||||
@@ -552,7 +552,9 @@
|
||||
S = /datum/sprite_accessory/slimecoon_snout*/
|
||||
if(!S || S.icon_state == "none")
|
||||
continue
|
||||
|
||||
|
||||
var/mutable_appearance/accessory_overlay = mutable_appearance(S.icon, layer = -layer)
|
||||
|
||||
//A little rename so we don't have to use tail_lizard or tail_human when naming the sprites.
|
||||
if(bodypart == "tail_lizard" || bodypart == "tail_human" || bodypart == "mam_tail" || bodypart == "slimecoontail" || bodypart == "xenotail")
|
||||
bodypart = "tail"
|
||||
@@ -563,134 +565,136 @@
|
||||
if(bodypart == "xenohead")
|
||||
bodypart = "xhead"
|
||||
|
||||
|
||||
var/icon_string
|
||||
|
||||
if(S.gender_specific)
|
||||
icon_string = "[g]_[bodypart]_[S.icon_state]_[layertext]"
|
||||
accessory_overlay.icon_state = "[g]_[bodypart]_[S.icon_state]_[layertext]"
|
||||
else
|
||||
icon_string = "m_[bodypart]_[S.icon_state]_[layertext]"
|
||||
|
||||
I = image("icon" = S.icon, "icon_state" = icon_string, "layer" =- layer)
|
||||
accessory_overlay.icon_state = "m_[bodypart]_[S.icon_state]_[layertext]"
|
||||
|
||||
if(S.center)
|
||||
I = center_image(I,S.dimension_x,S.dimension_y)
|
||||
accessory_overlay = center_image(accessory_overlay, S.dimension_x, S.dimension_y)
|
||||
|
||||
if(!(H.disabilities & HUSK))
|
||||
if(!forced_colour)
|
||||
switch(S.color_src)
|
||||
if(MUTCOLORS)
|
||||
if(fixed_mut_color)
|
||||
I.color = "#[fixed_mut_color]"
|
||||
accessory_overlay.color = "#[fixed_mut_color]"
|
||||
else
|
||||
I.color = "#[H.dna.features["mcolor"]]"
|
||||
accessory_overlay.color = "#[H.dna.features["mcolor"]]"
|
||||
if(MUTCOLORS2)
|
||||
if(fixed_mut_color2)
|
||||
I.color = "#[fixed_mut_color2]"
|
||||
accessory_overlay.color = "#[fixed_mut_color2]"
|
||||
else
|
||||
I.color = "#[H.dna.features["mcolor2"]]"
|
||||
accessory_overlay.color = "#[H.dna.features["mcolor2"]]"
|
||||
if(MUTCOLORS3)
|
||||
if(fixed_mut_color3)
|
||||
I.color = "#[fixed_mut_color3]"
|
||||
accessory_overlay.color = "#[fixed_mut_color3]"
|
||||
else
|
||||
I.color = "#[H.dna.features["mcolor3"]]"
|
||||
|
||||
accessory_overlay.color = "#[H.dna.features["mcolor3"]]"
|
||||
if(HAIR)
|
||||
if(hair_color == "mutcolor")
|
||||
I.color = "#[H.dna.features["mcolor"]]"
|
||||
accessory_overlay.color = "#[H.dna.features["mcolor"]]"
|
||||
else
|
||||
I.color = "#[H.hair_color]"
|
||||
accessory_overlay.color = "#[H.hair_color]"
|
||||
if(FACEHAIR)
|
||||
I.color = "#[H.facial_hair_color]"
|
||||
accessory_overlay.color = "#[H.facial_hair_color]"
|
||||
if(EYECOLOR)
|
||||
I.color = "#[H.eye_color]"
|
||||
accessory_overlay.color = "#[H.eye_color]"
|
||||
else
|
||||
I.color = forced_colour
|
||||
standing += I
|
||||
accessory_overlay.color = forced_colour
|
||||
standing += accessory_overlay
|
||||
|
||||
if(S.hasinner)
|
||||
var/mutable_appearance/inner_accessory_overlay = mutable_appearance(S.icon, layer = -layer)
|
||||
if(S.gender_specific)
|
||||
icon_string = "[g]_[bodypart]inner_[S.icon_state]_[layertext]"
|
||||
inner_accessory_overlay.icon_state = "[g]_[bodypart]inner_[S.icon_state]_[layertext]"
|
||||
else
|
||||
icon_string = "m_[bodypart]inner_[S.icon_state]_[layertext]"
|
||||
|
||||
I = image("icon" = S.icon, "icon_state" = icon_string, "layer" =- layer)
|
||||
inner_accessory_overlay.icon_state = "m_[bodypart]inner_[S.icon_state]_[layertext]"
|
||||
|
||||
if(S.center)
|
||||
I = center_image(I,S.dimension_x,S.dimension_y)
|
||||
inner_accessory_overlay = center_image(inner_accessory_overlay, S.dimension_x, S.dimension_y)
|
||||
|
||||
standing += I
|
||||
standing += inner_accessory_overlay
|
||||
|
||||
if(S.extra) //apply the extra overlay, if there is one
|
||||
var/mutable_appearance/extra_accessory_overlay = mutable_appearance(S.icon, layer = -layer)
|
||||
if(S.gender_specific)
|
||||
icon_string = "[g]_[bodypart]_extra_[S.icon_state]_[layertext]"
|
||||
extra_accessory_overlay.icon_state = "[g]_[bodypart]_extra_[S.icon_state]_[layertext]"
|
||||
else
|
||||
icon_string = "m_[bodypart]_extra_[S.icon_state]_[layertext]"
|
||||
|
||||
I = image("icon" = S.icon, "icon_state" = icon_string, "layer" =- layer)
|
||||
extra_accessory_overlay.icon_state = "m_[bodypart]_extra_[S.icon_state]_[layertext]"
|
||||
|
||||
if(S.center)
|
||||
I = center_image(I,S.dimension_x,S.dimension_y)
|
||||
|
||||
switch(S.extra_color_src) //change the color of the extra overlay
|
||||
if(MUTCOLORS)
|
||||
if(fixed_mut_color)
|
||||
I.color = "#[fixed_mut_color]"
|
||||
else
|
||||
I.color = "#[H.dna.features["mcolor"]]"
|
||||
if(MUTCOLORS2)
|
||||
if(fixed_mut_color2)
|
||||
I.color = "#[fixed_mut_color2]"
|
||||
else
|
||||
I.color = "#[H.dna.features["mcolor2"]]"
|
||||
if(MUTCOLORS3)
|
||||
if(fixed_mut_color3)
|
||||
I.color = "#[fixed_mut_color3]"
|
||||
else
|
||||
I.color = "#[H.dna.features["mcolor3"]]"
|
||||
if(HAIR)
|
||||
if(hair_color == "mutcolor")
|
||||
I.color = "#[H.dna.features["mcolor"]]"
|
||||
else
|
||||
I.color = "#[H.hair_color]"
|
||||
if(FACEHAIR)
|
||||
I.color = "#[H.facial_hair_color]"
|
||||
if(EYECOLOR)
|
||||
I.color = "#[H.eye_color]"
|
||||
standing += I
|
||||
extra_accessory_overlay.icon_state = center_image(extra_accessory_overlay, S.dimension_x, S.dimension_y)
|
||||
|
||||
if(!forced_colour)
|
||||
switch(S.extra_color_src) //change the color of the extra overlay
|
||||
if(MUTCOLORS)
|
||||
if(fixed_mut_color)
|
||||
extra_accessory_overlay.color = "#[fixed_mut_color]"
|
||||
else
|
||||
extra_accessory_overlay.color = "#[H.dna.features["mcolor"]]"
|
||||
if(MUTCOLORS2)
|
||||
if(fixed_mut_color2)
|
||||
extra_accessory_overlay.color = "#[fixed_mut_color2]"
|
||||
else
|
||||
extra_accessory_overlay.color = "#[H.dna.features["mcolor2"]]"
|
||||
if(MUTCOLORS3)
|
||||
if(fixed_mut_color3)
|
||||
extra_accessory_overlay.color = "#[fixed_mut_color3]"
|
||||
else
|
||||
extra_accessory_overlay.color = "#[H.dna.features["mcolor3"]]"
|
||||
if(HAIR)
|
||||
if(hair_color == "mutcolor")
|
||||
extra_accessory_overlay.color = "#[H.dna.features["mcolor"]]"
|
||||
else
|
||||
extra_accessory_overlay.color = "#[H.hair_color]"
|
||||
if(FACEHAIR)
|
||||
extra_accessory_overlay.color = "#[H.facial_hair_color]"
|
||||
if(EYECOLOR)
|
||||
extra_accessory_overlay.color = "#[H.eye_color]"
|
||||
else
|
||||
extra_accessory_overlay.color = forced_colour
|
||||
standing += extra_accessory_overlay
|
||||
|
||||
if(S.extra2) //apply the extra overlay, if there is one
|
||||
var/mutable_appearance/extra2_accessory_overlay = mutable_appearance(S.icon, layer = -layer)
|
||||
if(S.gender_specific)
|
||||
icon_string = "[g]_[bodypart]_extra2_[S.icon_state]_[layertext]"
|
||||
extra2_accessory_overlay.icon_state = "[g]_[bodypart]_extra2_[S.icon_state]_[layertext]"
|
||||
else
|
||||
icon_string = "m_[bodypart]_extra2_[S.icon_state]_[layertext]"
|
||||
|
||||
I = image("icon" = S.icon, "icon_state" = icon_string, "layer" =- layer)
|
||||
extra2_accessory_overlay.icon_state = "m_[bodypart]_extra2_[S.icon_state]_[layertext]"
|
||||
|
||||
if(S.center)
|
||||
I = center_image(I,S.dimension_x,S.dimension_y)
|
||||
|
||||
switch(S.extra2_color_src) //change the color of the extra overlay
|
||||
if(MUTCOLORS)
|
||||
if(fixed_mut_color)
|
||||
I.color = "#[fixed_mut_color]"
|
||||
else
|
||||
I.color = "#[H.dna.features["mcolor"]]"
|
||||
if(MUTCOLORS2)
|
||||
if(fixed_mut_color2)
|
||||
I.color = "#[fixed_mut_color2]"
|
||||
else
|
||||
I.color = "#[H.dna.features["mcolor2"]]"
|
||||
if(MUTCOLORS3)
|
||||
if(fixed_mut_color3)
|
||||
I.color = "#[fixed_mut_color3]"
|
||||
else
|
||||
I.color = "#[H.dna.features["mcolor3"]]"
|
||||
if(HAIR)
|
||||
if(hair_color == "mutcolor")
|
||||
I.color = "#[H.dna.features["mcolor"]]"
|
||||
else
|
||||
I.color = "#[H.hair_color]"
|
||||
standing += I
|
||||
extra2_accessory_overlay.icon_state = center_image(extra2_accessory_overlay, S.dimension_x, S.dimension_y)
|
||||
|
||||
if(!forced_colour)
|
||||
switch(S.extra_color_src) //change the color of the extra overlay
|
||||
if(MUTCOLORS)
|
||||
if(fixed_mut_color)
|
||||
extra2_accessory_overlay.color = "#[fixed_mut_color]"
|
||||
else
|
||||
extra2_accessory_overlay.color = "#[H.dna.features["mcolor"]]"
|
||||
if(MUTCOLORS2)
|
||||
if(fixed_mut_color2)
|
||||
extra2_accessory_overlay.color = "#[fixed_mut_color2]"
|
||||
else
|
||||
extra2_accessory_overlay.color = "#[H.dna.features["mcolor2"]]"
|
||||
if(MUTCOLORS3)
|
||||
if(fixed_mut_color3)
|
||||
extra2_accessory_overlay.color = "#[fixed_mut_color3]"
|
||||
else
|
||||
extra2_accessory_overlay.color = "#[H.dna.features["mcolor3"]]"
|
||||
if(HAIR)
|
||||
if(hair_color == "mutcolor")
|
||||
extra2_accessory_overlay.color = "#[H.dna.features["mcolor"]]"
|
||||
else
|
||||
extra2_accessory_overlay.color = "#[H.hair_color]"
|
||||
if(FACEHAIR)
|
||||
extra2_accessory_overlay.color = "#[H.facial_hair_color]"
|
||||
if(EYECOLOR)
|
||||
extra2_accessory_overlay.color = "#[H.eye_color]"
|
||||
else
|
||||
extra2_accessory_overlay.color = forced_colour
|
||||
standing += extra2_accessory_overlay
|
||||
|
||||
H.overlays_standing[layer] = standing.Copy()
|
||||
standing = list()
|
||||
|
||||
@@ -126,17 +126,17 @@ There are several things that need to be remembered:
|
||||
else if(U.adjusted == DIGITIGRADE_STYLE)
|
||||
t_color = "[t_color]_l"
|
||||
|
||||
var/image/standing
|
||||
var/mutable_appearance/uniform_overlay
|
||||
|
||||
if(dna && dna.species.sexes)
|
||||
var/G = (gender == FEMALE) ? "f" : "m"
|
||||
if(G == "f" && U.fitted != NO_FEMALE_UNIFORM)
|
||||
standing = U.build_worn_icon(state = "[t_color]", default_layer = UNIFORM_LAYER, default_icon_file = 'icons/mob/uniform.dmi', isinhands = FALSE, femaleuniform = U.fitted)
|
||||
uniform_overlay = U.build_worn_icon(state = "[t_color]", default_layer = UNIFORM_LAYER, default_icon_file = 'icons/mob/uniform.dmi', isinhands = FALSE, femaleuniform = U.fitted)
|
||||
|
||||
if(!standing)
|
||||
standing = U.build_worn_icon(state = "[t_color]", default_layer = UNIFORM_LAYER, default_icon_file = 'icons/mob/uniform.dmi', isinhands = FALSE)
|
||||
if(!uniform_overlay)
|
||||
uniform_overlay = U.build_worn_icon(state = "[t_color]", default_layer = UNIFORM_LAYER, default_icon_file = 'icons/mob/uniform.dmi', isinhands = FALSE)
|
||||
|
||||
overlays_standing[UNIFORM_LAYER] = standing
|
||||
overlays_standing[UNIFORM_LAYER] = uniform_overlay
|
||||
|
||||
else if(!(dna && dna.species.nojumpsuit) && invdrop)
|
||||
// Automatically drop anything in store / id / belt if you're not wearing a uniform. //CHECK IF NECESARRY
|
||||
@@ -161,8 +161,7 @@ There are several things that need to be remembered:
|
||||
update_observer_view(wear_id)
|
||||
|
||||
//TODO: add an icon file for ID slot stuff, so it's less snowflakey
|
||||
var/image/standing = wear_id.build_worn_icon(state = wear_id.item_state, default_layer = ID_LAYER, default_icon_file = 'icons/mob/mob.dmi')
|
||||
overlays_standing[ID_LAYER] = standing
|
||||
overlays_standing[ID_LAYER] = wear_id.build_worn_icon(state = wear_id.item_state, default_layer = ID_LAYER, default_icon_file = 'icons/mob/mob.dmi')
|
||||
|
||||
apply_overlay(ID_LAYER)
|
||||
|
||||
@@ -170,20 +169,20 @@ There are several things that need to be remembered:
|
||||
/mob/living/carbon/human/update_inv_gloves()
|
||||
remove_overlay(GLOVES_LAYER)
|
||||
|
||||
if(get_num_arms() <2)
|
||||
if(!gloves && blood_DNA)
|
||||
if(has_left_hand())
|
||||
overlays_standing[GLOVES_LAYER] = image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands_left", "layer"=-GLOVES_LAYER)
|
||||
apply_overlay(GLOVES_LAYER)
|
||||
else if(has_right_hand())
|
||||
overlays_standing[GLOVES_LAYER] = image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands_right", "layer"=-GLOVES_LAYER)
|
||||
apply_overlay(GLOVES_LAYER)
|
||||
return
|
||||
|
||||
if(client && hud_used && hud_used.inv_slots[slot_gloves])
|
||||
var/obj/screen/inventory/inv = hud_used.inv_slots[slot_gloves]
|
||||
inv.update_icon()
|
||||
|
||||
if(!gloves && blood_DNA)
|
||||
var/mutable_appearance/bloody_overlay = mutable_appearance('icons/effects/blood.dmi', "bloodyhands", -GLOVES_LAYER)
|
||||
if(get_num_arms() < 2)
|
||||
if(has_left_hand())
|
||||
bloody_overlay.icon_state = "bloodyhands_left"
|
||||
else if(has_right_hand())
|
||||
bloody_overlay.icon_state = "bloodyhands_right"
|
||||
|
||||
overlays_standing[GLOVES_LAYER] = bloody_overlay
|
||||
|
||||
if(gloves)
|
||||
gloves.screen_loc = ui_gloves
|
||||
if(client && hud_used && hud_used.hud_shown)
|
||||
@@ -193,14 +192,7 @@ There are several things that need to be remembered:
|
||||
var/t_state = gloves.item_state
|
||||
if(!t_state)
|
||||
t_state = gloves.icon_state
|
||||
|
||||
var/image/standing = gloves.build_worn_icon(state = t_state, default_layer = GLOVES_LAYER, default_icon_file = 'icons/mob/hands.dmi')
|
||||
|
||||
overlays_standing[GLOVES_LAYER] = standing
|
||||
|
||||
else
|
||||
if(blood_DNA)
|
||||
overlays_standing[GLOVES_LAYER] = image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands", "layer"=-GLOVES_LAYER)
|
||||
overlays_standing[GLOVES_LAYER] = gloves.build_worn_icon(state = t_state, default_layer = GLOVES_LAYER, default_icon_file = 'icons/mob/hands.dmi')
|
||||
|
||||
apply_overlay(GLOVES_LAYER)
|
||||
|
||||
@@ -223,8 +215,7 @@ There are several things that need to be remembered:
|
||||
update_observer_view(glasses,1)
|
||||
if(!(head && (head.flags_inv & HIDEEYES)) && !(wear_mask && (wear_mask.flags_inv & HIDEEYES)))
|
||||
|
||||
var/image/standing = glasses.build_worn_icon(state = glasses.icon_state, default_layer = GLASSES_LAYER, default_icon_file = 'icons/mob/eyes.dmi')
|
||||
overlays_standing[GLASSES_LAYER] = standing
|
||||
overlays_standing[GLASSES_LAYER] = glasses.build_worn_icon(state = glasses.icon_state, default_layer = GLASSES_LAYER, default_icon_file = 'icons/mob/eyes.dmi')
|
||||
|
||||
apply_overlay(GLASSES_LAYER)
|
||||
|
||||
@@ -246,8 +237,7 @@ There are several things that need to be remembered:
|
||||
client.screen += ears //add it to the client's screen
|
||||
update_observer_view(ears,1)
|
||||
|
||||
var/image/standing = ears.build_worn_icon(state = ears.icon_state, default_layer = EARS_LAYER, default_icon_file = 'icons/mob/ears.dmi')
|
||||
overlays_standing[EARS_LAYER] = standing
|
||||
overlays_standing[EARS_LAYER] = ears.build_worn_icon(state = ears.icon_state, default_layer = EARS_LAYER, default_icon_file = 'icons/mob/ears.dmi')
|
||||
|
||||
apply_overlay(EARS_LAYER)
|
||||
|
||||
@@ -268,8 +258,7 @@ There are several things that need to be remembered:
|
||||
if(hud_used.inventory_shown) //if the inventory is open
|
||||
client.screen += shoes //add it to client's screen
|
||||
update_observer_view(shoes,1)
|
||||
var/image/standing = shoes.build_worn_icon(state = shoes.icon_state, default_layer = SHOES_LAYER, default_icon_file = 'icons/mob/feet.dmi')
|
||||
overlays_standing[SHOES_LAYER] = standing
|
||||
overlays_standing[SHOES_LAYER] = shoes.build_worn_icon(state = shoes.icon_state, default_layer = SHOES_LAYER, default_icon_file = 'icons/mob/feet.dmi')
|
||||
|
||||
apply_overlay(SHOES_LAYER)
|
||||
|
||||
@@ -289,7 +278,7 @@ There are several things that need to be remembered:
|
||||
var/t_state = s_store.item_state
|
||||
if(!t_state)
|
||||
t_state = s_store.icon_state
|
||||
overlays_standing[SUIT_STORE_LAYER] = image("icon"='icons/mob/belt_mirror.dmi', "icon_state"="[t_state]", "layer"=-SUIT_STORE_LAYER)
|
||||
overlays_standing[SUIT_STORE_LAYER] = mutable_appearance('icons/mob/belt_mirror.dmi', t_state, -SUIT_STORE_LAYER)
|
||||
|
||||
apply_overlay(SUIT_STORE_LAYER)
|
||||
|
||||
@@ -315,8 +304,7 @@ There are several things that need to be remembered:
|
||||
if(!t_state)
|
||||
t_state = belt.icon_state
|
||||
|
||||
var/image/standing = belt.build_worn_icon(state = t_state, default_layer = BELT_LAYER, default_icon_file = 'icons/mob/belt.dmi')
|
||||
overlays_standing[BELT_LAYER] = standing
|
||||
overlays_standing[BELT_LAYER] = belt.build_worn_icon(state = t_state, default_layer = BELT_LAYER, default_icon_file = 'icons/mob/belt.dmi')
|
||||
|
||||
|
||||
apply_overlay(BELT_LAYER)
|
||||
@@ -337,8 +325,7 @@ There are several things that need to be remembered:
|
||||
client.screen += wear_suit
|
||||
update_observer_view(wear_suit,1)
|
||||
|
||||
var/image/standing = wear_suit.build_worn_icon(state = wear_suit.icon_state, default_layer = SUIT_LAYER, default_icon_file = 'icons/mob/suit.dmi')
|
||||
overlays_standing[SUIT_LAYER] = standing
|
||||
overlays_standing[SUIT_LAYER] = wear_suit.build_worn_icon(state = wear_suit.icon_state, default_layer = SUIT_LAYER, default_icon_file = 'icons/mob/suit.dmi')
|
||||
|
||||
if(wear_suit.breakouttime) //suit is restraining
|
||||
drop_all_held_items()
|
||||
@@ -381,7 +368,7 @@ There are several things that need to be remembered:
|
||||
remove_overlay(LEGCUFF_LAYER)
|
||||
clear_alert("legcuffed")
|
||||
if(legcuffed)
|
||||
overlays_standing[LEGCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="legcuff1", "layer"=-LEGCUFF_LAYER)
|
||||
overlays_standing[LEGCUFF_LAYER] = mutable_appearance('icons/mob/mob.dmi', "legcuff1", -LEGCUFF_LAYER)
|
||||
apply_overlay(LEGCUFF_LAYER)
|
||||
throw_alert("legcuffed", /obj/screen/alert/restrained/legcuffed, new_master = src.legcuffed)
|
||||
|
||||
@@ -390,8 +377,7 @@ There are several things that need to be remembered:
|
||||
var/icon/female_clothing_icon = GLOB.female_clothing_icons[index]
|
||||
if(!female_clothing_icon) //Create standing/laying icons if they don't exist
|
||||
generate_female_clothing(index,t_color,icon,type)
|
||||
var/standing = image("icon"=GLOB.female_clothing_icons["[t_color]"], "layer"=-layer)
|
||||
return(standing)
|
||||
return mutable_appearance(GLOB.female_clothing_icons[t_color], layer = -layer)
|
||||
|
||||
/mob/living/carbon/human/proc/get_overlays_copy(list/unwantedLayers)
|
||||
var/list/out = new
|
||||
@@ -440,12 +426,12 @@ There are several things that need to be remembered:
|
||||
|
||||
|
||||
/*
|
||||
Does everything in relation to building the /image used in the mob's overlays list
|
||||
Does everything in relation to building the /mutable_appearance used in the mob's overlays list
|
||||
covers:
|
||||
inhands and any other form of worn item
|
||||
centering large images
|
||||
layering images on custom layers
|
||||
building images from custom icon files
|
||||
centering large appearances
|
||||
layering appearances on custom layers
|
||||
building appearances from custom icon files
|
||||
|
||||
By Remie Richards (yes I'm taking credit because this just removed 90% of the copypaste in update_icons())
|
||||
|
||||
@@ -480,13 +466,13 @@ generate/load female uniform sprites matching all previously decided variables
|
||||
if(!layer2use)
|
||||
layer2use = default_layer
|
||||
|
||||
var/image/standing
|
||||
var/mutable_appearance/standing
|
||||
if(femaleuniform)
|
||||
standing = wear_female_version(state,file2use,layer2use,femaleuniform)
|
||||
if(!standing)
|
||||
standing = image("icon"=file2use, "icon_state"=state,"layer"=-layer2use)
|
||||
standing = mutable_appearance(file2use, state, -layer2use)
|
||||
|
||||
//Get the overlay images for this item when it's being worn
|
||||
//Get the overlays for this item when it's being worn
|
||||
//eg: ammo counters, primed grenade flashes, etc.
|
||||
var/list/worn_overlays = worn_overlays(isinhands)
|
||||
if(worn_overlays && worn_overlays.len)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user