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
@@ -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)
|
||||
|
||||
@@ -34,8 +34,7 @@
|
||||
hair_hidden = 1
|
||||
if(!hair_hidden)
|
||||
if(!getorgan(/obj/item/organ/brain)) //Applies the debrained overlay if there is no brain
|
||||
var/image/I = image("icon"='icons/mob/human_face.dmi', "icon_state" = "debrained", "layer" = -HAIR_LAYER)
|
||||
overlays_standing[HAIR_LAYER] = I
|
||||
overlays_standing[HAIR_LAYER] = mutable_appearance('icons/mob/human_face.dmi', "debrained", -HAIR_LAYER)
|
||||
apply_overlay(HAIR_LAYER)
|
||||
|
||||
|
||||
@@ -45,9 +44,9 @@
|
||||
/mob/living/carbon/monkey/update_inv_legcuffed()
|
||||
remove_overlay(LEGCUFF_LAYER)
|
||||
if(legcuffed)
|
||||
var/image/standing = image("icon"='icons/mob/mob.dmi', "icon_state"="legcuff1", "layer"=-LEGCUFF_LAYER)
|
||||
standing.pixel_y = 8
|
||||
overlays_standing[LEGCUFF_LAYER] = standing
|
||||
var/mutable_appearance/legcuff_overlay = mutable_appearance('icons/mob/mob.dmi', "legcuff1", -LEGCUFF_LAYER)
|
||||
legcuff_overlay.pixel_y = 8
|
||||
overlays_standing[LEGCUFF_LAYER] = legcuff_overlay
|
||||
apply_overlay(LEGCUFF_LAYER)
|
||||
|
||||
|
||||
|
||||
@@ -30,9 +30,8 @@
|
||||
var/list/overlays_standing[TOTAL_LAYERS]
|
||||
|
||||
/mob/living/carbon/proc/apply_overlay(cache_index)
|
||||
var/I = overlays_standing[cache_index]
|
||||
if(I)
|
||||
add_overlay(I)
|
||||
if((. = overlays_standing[cache_index]))
|
||||
add_overlay(.)
|
||||
|
||||
/mob/living/carbon/proc/remove_overlay(cache_index)
|
||||
var/I = overlays_standing[cache_index]
|
||||
@@ -79,8 +78,7 @@
|
||||
if(get_held_index_of_item(I) % 2 == 0)
|
||||
icon_file = I.righthand_file
|
||||
|
||||
var/image/standing = I.build_worn_icon(state = t_state, default_layer = HANDS_LAYER, default_icon_file = icon_file, isinhands = TRUE)
|
||||
hands += standing
|
||||
hands += I.build_worn_icon(state = t_state, default_layer = HANDS_LAYER, default_icon_file = icon_file, isinhands = TRUE)
|
||||
|
||||
overlays_standing[HANDS_LAYER] = hands
|
||||
apply_overlay(HANDS_LAYER)
|
||||
@@ -89,7 +87,7 @@
|
||||
/mob/living/carbon/update_fire(var/fire_icon = "Generic_mob_burning")
|
||||
remove_overlay(FIRE_LAYER)
|
||||
if(on_fire)
|
||||
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
|
||||
|
||||
@@ -100,16 +98,16 @@
|
||||
/mob/living/carbon/update_damage_overlays()
|
||||
remove_overlay(DAMAGE_LAYER)
|
||||
|
||||
var/image/standing = image("icon"='icons/mob/dam_mob.dmi', "icon_state"="blank", "layer"=-DAMAGE_LAYER)
|
||||
overlays_standing[DAMAGE_LAYER] = standing
|
||||
var/mutable_appearance/damage_overlay = mutable_appearance('icons/mob/dam_mob.dmi', "blank", -DAMAGE_LAYER)
|
||||
overlays_standing[DAMAGE_LAYER] = damage_overlay
|
||||
|
||||
for(var/X in bodyparts)
|
||||
var/obj/item/bodypart/BP = X
|
||||
if(BP.dmg_overlay_type)
|
||||
if(BP.brutestate)
|
||||
standing.add_overlay("[BP.dmg_overlay_type]_[BP.body_zone]_[BP.brutestate]0") //we're adding icon_states of the base image as overlays
|
||||
damage_overlay.add_overlay("[BP.dmg_overlay_type]_[BP.body_zone]_[BP.brutestate]0") //we're adding icon_states of the base image as overlays
|
||||
if(BP.burnstate)
|
||||
standing.add_overlay("[BP.dmg_overlay_type]_[BP.body_zone]_0[BP.burnstate]")
|
||||
damage_overlay.add_overlay("[BP.dmg_overlay_type]_[BP.body_zone]_0[BP.burnstate]")
|
||||
|
||||
apply_overlay(DAMAGE_LAYER)
|
||||
|
||||
@@ -126,8 +124,7 @@
|
||||
|
||||
if(wear_mask)
|
||||
if(!(head && (head.flags_inv & HIDEMASK)))
|
||||
var/image/standing = wear_mask.build_worn_icon(state = wear_mask.icon_state, default_layer = FACEMASK_LAYER, default_icon_file = 'icons/mob/mask.dmi')
|
||||
overlays_standing[FACEMASK_LAYER] = standing
|
||||
overlays_standing[FACEMASK_LAYER] = wear_mask.build_worn_icon(state = wear_mask.icon_state, default_layer = FACEMASK_LAYER, default_icon_file = 'icons/mob/mask.dmi')
|
||||
update_hud_wear_mask(wear_mask)
|
||||
|
||||
apply_overlay(FACEMASK_LAYER)
|
||||
@@ -141,8 +138,7 @@
|
||||
|
||||
if(wear_neck)
|
||||
if(!(head && (head.flags_inv & HIDENECK)))
|
||||
var/image/standing = wear_neck.build_worn_icon(state = wear_neck.icon_state, default_layer = NECK_LAYER, default_icon_file = 'icons/mob/neck.dmi')
|
||||
overlays_standing[NECK_LAYER] = standing
|
||||
overlays_standing[NECK_LAYER] = wear_neck.build_worn_icon(state = wear_neck.icon_state, default_layer = NECK_LAYER, default_icon_file = 'icons/mob/neck.dmi')
|
||||
update_hud_neck(wear_neck)
|
||||
|
||||
apply_overlay(NECK_LAYER)
|
||||
@@ -155,8 +151,7 @@
|
||||
inv.update_icon()
|
||||
|
||||
if(back)
|
||||
var/image/standing = back.build_worn_icon(state = back.icon_state, default_layer = BACK_LAYER, default_icon_file = 'icons/mob/back.dmi')
|
||||
overlays_standing[BACK_LAYER] = standing
|
||||
overlays_standing[BACK_LAYER] = back.build_worn_icon(state = back.icon_state, default_layer = BACK_LAYER, default_icon_file = 'icons/mob/back.dmi')
|
||||
update_hud_back(back)
|
||||
apply_overlay(BACK_LAYER)
|
||||
|
||||
@@ -171,8 +166,7 @@
|
||||
inv.update_icon()
|
||||
|
||||
if(head)
|
||||
var/image/standing = head.build_worn_icon(state = head.icon_state, default_layer = HEAD_LAYER, default_icon_file = 'icons/mob/head.dmi')
|
||||
overlays_standing[HEAD_LAYER] = standing
|
||||
overlays_standing[HEAD_LAYER] = head.build_worn_icon(state = head.icon_state, default_layer = HEAD_LAYER, default_icon_file = 'icons/mob/head.dmi')
|
||||
update_hud_head(head)
|
||||
|
||||
apply_overlay(HEAD_LAYER)
|
||||
@@ -181,7 +175,7 @@
|
||||
/mob/living/carbon/update_inv_handcuffed()
|
||||
remove_overlay(HANDCUFF_LAYER)
|
||||
if(handcuffed)
|
||||
overlays_standing[HANDCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="handcuff1", "layer"=-HANDCUFF_LAYER)
|
||||
overlays_standing[HANDCUFF_LAYER] = mutable_appearance('icons/mob/mob.dmi', "handcuff1", -HANDCUFF_LAYER)
|
||||
apply_overlay(HANDCUFF_LAYER)
|
||||
|
||||
|
||||
@@ -250,9 +244,7 @@
|
||||
var/list/new_limbs = list()
|
||||
for(var/X in bodyparts)
|
||||
var/obj/item/bodypart/BP = X
|
||||
var/image/temp = BP.get_limb_icon()
|
||||
if(temp)
|
||||
new_limbs += temp
|
||||
new_limbs += BP.get_limb_icon()
|
||||
if(new_limbs.len)
|
||||
overlays_standing[BODYPARTS_LAYER] = new_limbs
|
||||
limb_icon_cache[icon_render_key] = new_limbs
|
||||
|
||||
@@ -491,7 +491,7 @@
|
||||
for(var/obj/effect/decal/cleanable/trail_holder/TH in src.loc)
|
||||
if((!(newdir in TH.existing_dirs) || trail_type == "trails_1" || trail_type == "trails_2") && TH.existing_dirs.len <= 16) //maximum amount of overlays is 16 (all light & heavy directions filled)
|
||||
TH.existing_dirs += newdir
|
||||
TH.overlays.Add(image('icons/effects/blood.dmi',trail_type,dir = newdir))
|
||||
TH.add_overlay(image('icons/effects/blood.dmi', trail_type, dir = newdir))
|
||||
TH.transfer_mob_blood_dna(src)
|
||||
|
||||
/mob/living/carbon/human/makeTrail(turf/T)
|
||||
@@ -930,4 +930,4 @@
|
||||
/mob/living/ConveyorMove()
|
||||
if((movement_type & FLYING) && !stat)
|
||||
return
|
||||
..()
|
||||
..()
|
||||
|
||||
@@ -102,11 +102,11 @@
|
||||
return
|
||||
|
||||
/mob/living/silicon/robot/update_fire()
|
||||
var/I = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Generic_mob_burning")
|
||||
var/mutable_appearance/fire_overlay = mutable_appearance('icons/mob/OnFire.dmi', "Generic_mob_burning")
|
||||
if(on_fire)
|
||||
add_overlay(I)
|
||||
add_overlay(fire_overlay)
|
||||
else
|
||||
cut_overlay(I)
|
||||
cut_overlay(fire_overlay)
|
||||
|
||||
/mob/living/silicon/robot/update_canmove()
|
||||
if(stat || buckled || lockcharge)
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
var/obj/item/module_active = null
|
||||
held_items = list(null, null, null) //we use held_items for the module holding, because that makes sense to do!
|
||||
|
||||
var/image/eye_lights
|
||||
var/mutable_appearance/eye_lights
|
||||
|
||||
var/mob/living/silicon/ai/connected_ai = null
|
||||
var/obj/item/weapon/stock_parts/cell/cell = null
|
||||
@@ -629,7 +629,7 @@
|
||||
else
|
||||
add_overlay("ov-opencover -c")
|
||||
if(hat)
|
||||
var/image/head_overlay = hat.build_worn_icon(state = hat.icon_state, default_layer = 20, default_icon_file = 'icons/mob/head.dmi')
|
||||
var/mutable_appearance/head_overlay = hat.build_worn_icon(state = hat.icon_state, default_layer = 20, default_icon_file = 'icons/mob/head.dmi')
|
||||
head_overlay.pixel_y += hat_offset
|
||||
add_overlay(head_overlay)
|
||||
update_fire()
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
..()
|
||||
spawn(5)
|
||||
if(skin)
|
||||
add_overlay(image('icons/mob/aibots.dmi', "kit_skin_[skin]"))
|
||||
add_overlay("kit_skin_[skin]")
|
||||
|
||||
/obj/item/weapon/storage/firstaid/attackby(obj/item/bodypart/S, mob/user, params)
|
||||
|
||||
@@ -333,7 +333,7 @@
|
||||
build_step++
|
||||
to_chat(user, "<span class='notice'>You add the health sensor to [src].</span>")
|
||||
name = "First aid/robot arm/health analyzer assembly"
|
||||
add_overlay(image('icons/mob/aibots.dmi', "na_scanner"))
|
||||
add_overlay("na_scanner")
|
||||
|
||||
if(1)
|
||||
if(isprox(W))
|
||||
|
||||
@@ -358,7 +358,7 @@ Auto Patrol[]"},
|
||||
|
||||
var/obj/item/weapon/ed209_assembly/Sa = new /obj/item/weapon/ed209_assembly(Tsec)
|
||||
Sa.build_step = 1
|
||||
Sa.add_overlay(image('icons/mob/aibots.dmi', "hs_hole"))
|
||||
Sa.add_overlay("hs_hole")
|
||||
Sa.created_name = name
|
||||
new /obj/item/device/assembly/prox_sensor(Tsec)
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
update_icon()
|
||||
|
||||
if(skin)
|
||||
add_overlay(image('icons/mob/aibots.dmi', "medskin_[skin]"))
|
||||
add_overlay("medskin_[skin]")
|
||||
|
||||
var/datum/job/doctor/J = new /datum/job/doctor
|
||||
access_card.access += J.get_access()
|
||||
|
||||
@@ -407,7 +407,7 @@
|
||||
cut_overlays()
|
||||
if(inventory_head)
|
||||
var/image/head_icon
|
||||
var/datum/dog_fashion.DF = new inventory_head.dog_fashion(src)
|
||||
var/datum/dog_fashion/DF = new inventory_head.dog_fashion(src)
|
||||
|
||||
if(!DF.obj_icon_state)
|
||||
DF.obj_icon_state = inventory_head.icon_state
|
||||
@@ -417,17 +417,17 @@
|
||||
DF.obj_color = inventory_head.color
|
||||
|
||||
if(health <= 0)
|
||||
head_icon = DF.get_image(dir = EAST)
|
||||
head_icon = DF.get_overlay(dir = EAST)
|
||||
head_icon.pixel_y = -8
|
||||
head_icon.transform = turn(head_icon.transform, 180)
|
||||
else
|
||||
head_icon = DF.get_image()
|
||||
head_icon = DF.get_overlay()
|
||||
|
||||
add_overlay(head_icon)
|
||||
|
||||
if(inventory_back)
|
||||
var/image/back_icon
|
||||
var/datum/dog_fashion.DF = new inventory_back.dog_fashion(src)
|
||||
var/datum/dog_fashion/DF = new inventory_back.dog_fashion(src)
|
||||
|
||||
if(!DF.obj_icon_state)
|
||||
DF.obj_icon_state = inventory_back.icon_state
|
||||
@@ -437,18 +437,20 @@
|
||||
DF.obj_color = inventory_back.color
|
||||
|
||||
if(health <= 0)
|
||||
back_icon = DF.get_image(dir = EAST)
|
||||
back_icon = DF.get_overlay(dir = EAST)
|
||||
back_icon.pixel_y = -11
|
||||
back_icon.transform = turn(back_icon.transform, 180)
|
||||
else
|
||||
back_icon = DF.get_image()
|
||||
back_icon = DF.get_overlay()
|
||||
add_overlay(back_icon)
|
||||
|
||||
if(facehugger)
|
||||
var/mutable_appearance/facehugger_overlay = mutable_appearance('icons/mob/mask.dmi')
|
||||
if(istype(src, /mob/living/simple_animal/pet/dog/corgi/puppy))
|
||||
add_overlay(image('icons/mob/mask.dmi',"facehugger_corgipuppy"))
|
||||
facehugger_overlay.icon_state = "facehugger_corgipuppy"
|
||||
else
|
||||
add_overlay(image('icons/mob/mask.dmi',"facehugger_corgi"))
|
||||
facehugger_overlay.icon_state = "facehugger_corgi"
|
||||
add_overlay(facehugger_overlay)
|
||||
if(pcollar)
|
||||
add_overlay(collar)
|
||||
add_overlay(pettag)
|
||||
|
||||
@@ -7,9 +7,8 @@
|
||||
|
||||
|
||||
/mob/living/simple_animal/drone/proc/apply_overlay(cache_index)
|
||||
var/I = drone_overlays[cache_index]
|
||||
if(I)
|
||||
add_overlay(I)
|
||||
if((. = drone_overlays[cache_index]))
|
||||
add_overlay(.)
|
||||
|
||||
|
||||
/mob/living/simple_animal/drone/proc/remove_overlay(cache_index)
|
||||
@@ -34,11 +33,11 @@
|
||||
if(!r_state)
|
||||
r_state = r_hand.icon_state
|
||||
|
||||
var/image/r_hand_image = r_hand.build_worn_icon(state = r_state, default_layer = DRONE_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 = DRONE_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE)
|
||||
if(y_shift)
|
||||
r_hand_image.pixel_y += y_shift
|
||||
r_hand_overlay.pixel_y += y_shift
|
||||
|
||||
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
|
||||
@@ -52,11 +51,11 @@
|
||||
if(!l_state)
|
||||
l_state = l_hand.icon_state
|
||||
|
||||
var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = DRONE_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 = DRONE_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE)
|
||||
if(y_shift)
|
||||
l_hand_image.pixel_y += y_shift
|
||||
l_hand_overlay.pixel_y += y_shift
|
||||
|
||||
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
|
||||
@@ -86,10 +85,10 @@
|
||||
var/used_head_icon = 'icons/mob/head.dmi'
|
||||
if(istype(head, /obj/item/clothing/mask))
|
||||
used_head_icon = 'icons/mob/mask.dmi'
|
||||
var/image/head_overlay = head.build_worn_icon(state = head.icon_state, default_layer = DRONE_HEAD_LAYER, default_icon_file = used_head_icon)
|
||||
var/mutable_appearance/head_overlay = head.build_worn_icon(state = head.icon_state, default_layer = DRONE_HEAD_LAYER, default_icon_file = used_head_icon)
|
||||
head_overlay.pixel_y += -15
|
||||
|
||||
drone_overlays[DRONE_HEAD_LAYER] = head_overlay
|
||||
drone_overlays[DRONE_HEAD_LAYER] = head_overlay
|
||||
|
||||
apply_overlay(DRONE_HEAD_LAYER)
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
icon = 'icons/mob/pets.dmi'
|
||||
mob_size = MOB_SIZE_SMALL
|
||||
var/obj/item/clothing/neck/petcollar/pcollar = null
|
||||
var/image/collar = null
|
||||
var/image/pettag = null
|
||||
var/collar = ""
|
||||
var/pettag = ""
|
||||
blood_volume = BLOOD_VOLUME_NORMAL
|
||||
devourable = TRUE
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
if(istype(O, /obj/item/clothing/neck/petcollar) && !pcollar)
|
||||
var/obj/item/clothing/neck/petcollar/P = O
|
||||
pcollar = P
|
||||
collar = image('icons/mob/pets.dmi', src, "[icon_state]collar")
|
||||
pettag = image('icons/mob/pets.dmi', src, "[icon_state]tag")
|
||||
collar = "[icon_state]collar"
|
||||
pettag = "[icon_state]tag"
|
||||
regenerate_icons()
|
||||
to_chat(user, "<span class='notice'>You put the [P] around [src]'s neck.</span>")
|
||||
if(P.tagname)
|
||||
@@ -47,5 +47,7 @@
|
||||
|
||||
/mob/living/simple_animal/pet/regenerate_icons()
|
||||
cut_overlays()
|
||||
add_overlay(collar)
|
||||
add_overlay(pettag)
|
||||
if(collar)
|
||||
add_overlay(collar)
|
||||
if(pettag)
|
||||
add_overlay(pettag)
|
||||
|
||||
@@ -260,9 +260,8 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
|
||||
I.plane = ABOVE_HUD_PLANE
|
||||
|
||||
/mob/living/simple_animal/hostile/guardian/proc/apply_overlay(cache_index)
|
||||
var/I = guardian_overlays[cache_index]
|
||||
if(I)
|
||||
add_overlay(I)
|
||||
if((. = guardian_overlays[cache_index]))
|
||||
add_overlay(.)
|
||||
|
||||
/mob/living/simple_animal/hostile/guardian/proc/remove_overlay(cache_index)
|
||||
var/I = guardian_overlays[cache_index]
|
||||
@@ -281,9 +280,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
|
||||
if(!r_state)
|
||||
r_state = r_hand.icon_state
|
||||
|
||||
var/image/r_hand_image = r_hand.build_worn_icon(state = r_state, default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE)
|
||||
|
||||
hands_overlays += r_hand_image
|
||||
hands_overlays += r_hand.build_worn_icon(state = r_state, default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE)
|
||||
|
||||
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
|
||||
r_hand.layer = ABOVE_HUD_LAYER
|
||||
@@ -296,9 +293,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
|
||||
if(!l_state)
|
||||
l_state = l_hand.icon_state
|
||||
|
||||
var/image/l_hand_image = l_hand.build_worn_icon(state = l_state, default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE)
|
||||
|
||||
hands_overlays += l_hand_image
|
||||
hands_overlays += l_hand.build_worn_icon(state = l_state, default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE)
|
||||
|
||||
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
|
||||
l_hand.layer = ABOVE_HUD_LAYER
|
||||
|
||||
@@ -40,10 +40,10 @@
|
||||
to_chat(src, "<span class='danger'><B>You switch to combat mode.</span></B>")
|
||||
toggle = FALSE
|
||||
else
|
||||
var/image/I = new('icons/effects/effects.dmi', "shield-grey")
|
||||
var/mutable_appearance/shield_overlay = mutable_appearance('icons/effects/effects.dmi', "shield-grey")
|
||||
if(namedatum)
|
||||
I.color = namedatum.colour
|
||||
add_overlay(I)
|
||||
shield_overlay.color = namedatum.colour
|
||||
add_overlay(shield_overlay)
|
||||
melee_damage_lower = 2
|
||||
melee_damage_upper = 2
|
||||
speed = 1
|
||||
|
||||
@@ -71,9 +71,7 @@
|
||||
/mob/living/simple_animal/hostile/bear/update_icons()
|
||||
..()
|
||||
if(armored)
|
||||
var/image/B = image(icon = 'icons/mob/animal.dmi', icon_state = "armor_bear")
|
||||
if(B)
|
||||
add_overlay(B)
|
||||
add_overlay("armor_bear")
|
||||
|
||||
/obj/item/bear_armor
|
||||
name = "pile of bear armor"
|
||||
|
||||
@@ -49,7 +49,6 @@
|
||||
var/idle = 0
|
||||
var/isqueen = FALSE
|
||||
var/icon_base = "bee"
|
||||
var/static/list/bee_icons = list()
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/bees/Process_Spacemove(movement_dir = 0)
|
||||
@@ -91,24 +90,15 @@
|
||||
if(beegent && beegent.color)
|
||||
col = beegent.color
|
||||
|
||||
var/image/base
|
||||
if(!bee_icons["[icon_base]_base"])
|
||||
bee_icons["[icon_base]_base"] = image(icon = 'icons/mob/bees.dmi', icon_state = "[icon_base]_base")
|
||||
base = bee_icons["[icon_base]_base"]
|
||||
add_overlay(base)
|
||||
add_overlay("[icon_base]_base")
|
||||
|
||||
var/image/greyscale
|
||||
if(!bee_icons["[icon_base]_grey_[col]"])
|
||||
bee_icons["[icon_base]_grey_[col]"] = image(icon = 'icons/mob/bees.dmi', icon_state = "[icon_base]_grey")
|
||||
greyscale = bee_icons["[icon_base]_grey_[col]"]
|
||||
greyscale.color = col
|
||||
add_overlay(greyscale)
|
||||
var/static/mutable_appearance/greyscale_overlay
|
||||
greyscale_overlay = greyscale_overlay || mutable_appearance('icons/mob/bees.dmi')
|
||||
greyscale_overlay.icon_state = "[icon_base]_grey"
|
||||
greyscale_overlay.color = col
|
||||
add_overlay(greyscale_overlay)
|
||||
|
||||
var/image/wings
|
||||
if(!bee_icons["[icon_base]_wings"])
|
||||
bee_icons["[icon_base]_wings"] = image(icon = 'icons/mob/bees.dmi', icon_state = "[icon_base]_wings")
|
||||
wings = bee_icons["[icon_base]_wings"]
|
||||
add_overlay(wings)
|
||||
add_overlay("[icon_base]_wings")
|
||||
|
||||
|
||||
//We don't attack beekeepers/people dressed as bees//Todo: bee costume
|
||||
|
||||
@@ -100,7 +100,7 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca
|
||||
var/mob/living/creator = null // the creator
|
||||
var/destroy_objects = 0
|
||||
var/knockdown_people = 0
|
||||
var/image/googly_eyes = null
|
||||
var/static/mutable_appearance/googly_eyes = mutable_appearance('icons/mob/mob.dmi', "googly_eyes")
|
||||
gold_core_spawnable = 0
|
||||
|
||||
/mob/living/simple_animal/hostile/mimic/copy/Initialize(mapload, obj/copy, mob/living/creator, destroy_original = 0)
|
||||
@@ -143,7 +143,6 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca
|
||||
icon_state = O.icon_state
|
||||
icon_living = icon_state
|
||||
copy_overlays(O)
|
||||
googly_eyes = image('icons/mob/mob.dmi',"googly_eyes")
|
||||
add_overlay(googly_eyes)
|
||||
if(istype(O, /obj/structure) || istype(O, /obj/machinery))
|
||||
health = (anchored * 50) + 50
|
||||
@@ -178,11 +177,6 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca
|
||||
C.visible_message("<span class='danger'>\The [src] knocks down \the [C]!</span>", \
|
||||
"<span class='userdanger'>\The [src] knocks you down!</span>")
|
||||
|
||||
/mob/living/simple_animal/hostile/mimic/copy/Aggro()
|
||||
..()
|
||||
googly_eyes.setDir(get_dir(src,target))
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/mimic/copy/machine
|
||||
speak = list("HUMANS ARE IMPERFECT!", "YOU SHALL BE ASSIMILATED!", "YOU ARE HARMING YOURSELF", "You have been deemed hazardous. Will you comply?", \
|
||||
"My logic is undeniable.", "One of us.", "FLESH IS WEAK", "THIS ISN'T WAR, THIS IS EXTERMINATION!")
|
||||
|
||||
@@ -29,12 +29,13 @@
|
||||
unique_name = 1
|
||||
speak_emote = list("squeaks")
|
||||
deathmessage = "fainted."
|
||||
var/cap_color = "#ffffff"
|
||||
var/powerlevel = 0 //Tracks our general strength level gained from eating other shrooms
|
||||
var/bruised = 0 //If someone tries to cheat the system by attacking a shroom to lower its health, punish them so that it wont award levels to shrooms that eat it
|
||||
var/recovery_cooldown = 0 //So you can't repeatedly revive it during a fight
|
||||
var/faint_ticker = 0 //If we hit three, another mushroom's gonna eat us
|
||||
var/image/cap_living = null //Where we store our cap icons so we dont generate them constantly to update our icon
|
||||
var/image/cap_dead = null
|
||||
var/static/mutable_appearance/cap_living //Where we store our cap icons so we dont generate them constantly to update our icon
|
||||
var/static/mutable_appearance/cap_dead
|
||||
|
||||
/mob/living/simple_animal/hostile/mushroom/examine(mob/user)
|
||||
..()
|
||||
@@ -53,11 +54,10 @@
|
||||
melee_damage_upper += rand(10,20)
|
||||
maxHealth += rand(40,60)
|
||||
move_to_delay = rand(3,11)
|
||||
var/cap_color = rgb(rand(0, 255), rand(0, 255), rand(0, 255))
|
||||
cap_living = image('icons/mob/animal.dmi',icon_state = "mushroom_cap")
|
||||
cap_dead = image('icons/mob/animal.dmi',icon_state = "mushroom_cap_dead")
|
||||
cap_living.color = cap_color
|
||||
cap_dead.color = cap_color
|
||||
cap_living = cap_living || mutable_appearance(icon, "mushroom_cap")
|
||||
cap_dead = cap_dead || mutable_appearance(icon, "mushroom_cap_dead")
|
||||
|
||||
cap_color = rgb(rand(0, 255), rand(0, 255), rand(0, 255))
|
||||
UpdateMushroomCap()
|
||||
health = maxHealth
|
||||
..()
|
||||
@@ -101,6 +101,8 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/mushroom/proc/UpdateMushroomCap()
|
||||
cut_overlays()
|
||||
cap_living.color = cap_color
|
||||
cap_dead.color = cap_color
|
||||
if(health == 0)
|
||||
add_overlay(cap_dead)
|
||||
else
|
||||
|
||||
@@ -32,10 +32,10 @@
|
||||
gold_core_spawnable = 0 //too spooky for science
|
||||
var/ghost_hair_style
|
||||
var/ghost_hair_color
|
||||
var/image/ghost_hair = null
|
||||
var/mutable_appearance/ghost_hair
|
||||
var/ghost_facial_hair_style
|
||||
var/ghost_facial_hair_color
|
||||
var/image/ghost_facial_hair = null
|
||||
var/mutable_appearance/ghost_facial_hair
|
||||
var/random = TRUE //if you want random names for ghosts or not
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/ghost/Initialize()
|
||||
@@ -48,19 +48,16 @@
|
||||
name = "ghost of [pick(GLOB.first_names_male)] [pick(GLOB.last_names)]"
|
||||
if(1)
|
||||
name = "ghost of [pick(GLOB.first_names_female)] [pick(GLOB.last_names)]"
|
||||
give_hair()
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/ghost/proc/give_hair()
|
||||
if(ghost_hair_style != null)
|
||||
ghost_hair = image('icons/mob/human_face.dmi', "hair_[ghost_hair_style]")
|
||||
ghost_hair.layer = -HAIR_LAYER
|
||||
ghost_hair = mutable_appearance('icons/mob/human_face.dmi', "hair_[ghost_hair_style]", -HAIR_LAYER)
|
||||
ghost_hair.alpha = 200
|
||||
ghost_hair.color = ghost_hair_color
|
||||
add_overlay(ghost_hair)
|
||||
if(ghost_facial_hair_style != null)
|
||||
ghost_facial_hair = image('icons/mob/human_face.dmi', "facial_[ghost_facial_hair_style]")
|
||||
ghost_facial_hair.layer = -HAIR_LAYER
|
||||
ghost_facial_hair = mutable_appearance('icons/mob/human_face.dmi', "facial_[ghost_facial_hair_style]", -HAIR_LAYER)
|
||||
ghost_facial_hair.alpha = 200
|
||||
ghost_facial_hair.color = ghost_facial_hair_color
|
||||
add_overlay(ghost_facial_hair)
|
||||
@@ -118,7 +118,7 @@
|
||||
if(stat != DEAD)
|
||||
icon_state = icon_text
|
||||
if(mood && !stat)
|
||||
add_overlay(image('icons/mob/slimes.dmi', icon_state = "aslime-[mood]"))
|
||||
add_overlay("aslime-[mood]")
|
||||
else
|
||||
icon_state = icon_dead
|
||||
..()
|
||||
|
||||
@@ -377,7 +377,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
|
||||
/mob/proc/reagent_check(datum/reagent/R) // utilized in the species code
|
||||
return 1
|
||||
|
||||
/proc/notify_ghosts(var/message, var/ghost_sound = null, var/enter_link = null, var/atom/source = null, var/image/alert_overlay = null, var/action = NOTIFY_JUMP, flashwindow = TRUE) //Easy notification of ghosts.
|
||||
/proc/notify_ghosts(var/message, var/ghost_sound = null, var/enter_link = null, var/atom/source = null, var/mutable_appearance/alert_overlay = null, var/action = NOTIFY_JUMP, flashwindow = TRUE) //Easy notification of ghosts.
|
||||
if(SSatoms.initialized != INITIALIZATION_INNEW_REGULAR) //don't notify for objects created during a map load
|
||||
return
|
||||
for(var/mob/dead/observer/O in GLOB.player_list)
|
||||
@@ -396,17 +396,10 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
|
||||
A.action = action
|
||||
A.target = source
|
||||
if(!alert_overlay)
|
||||
var/old_layer = source.layer
|
||||
var/old_plane = source.plane
|
||||
source.layer = FLOAT_LAYER
|
||||
source.plane = FLOAT_PLANE
|
||||
A.add_overlay(source)
|
||||
source.layer = old_layer
|
||||
source.plane = old_plane
|
||||
else
|
||||
alert_overlay.layer = FLOAT_LAYER
|
||||
alert_overlay.plane = FLOAT_PLANE
|
||||
A.add_overlay(alert_overlay)
|
||||
alert_overlay = new(src)
|
||||
alert_overlay.layer = FLOAT_LAYER
|
||||
alert_overlay.plane = FLOAT_PLANE
|
||||
A.add_overlay(alert_overlay)
|
||||
|
||||
/proc/item_heal_robotic(mob/living/carbon/human/H, mob/user, brute_heal, burn_heal)
|
||||
var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected))
|
||||
|
||||
@@ -336,12 +336,10 @@
|
||||
return
|
||||
|
||||
stamps += "<img src=large_[P.icon_state].png>"
|
||||
var/image/stampoverlay = image('icons/obj/bureaucracy.dmi')
|
||||
var/mutable_appearance/stampoverlay = mutable_appearance('icons/obj/bureaucracy.dmi', "paper_[P.icon_state]")
|
||||
stampoverlay.pixel_x = rand(-2, 2)
|
||||
stampoverlay.pixel_y = rand(-3, 2)
|
||||
|
||||
stampoverlay.icon_state = "paper_[P.icon_state]"
|
||||
|
||||
LAZYADD(stamped, P.icon_state)
|
||||
add_overlay(stampoverlay)
|
||||
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
icon_state = "[initial(icon_state)]"
|
||||
cut_overlays()
|
||||
if(bin_pen)
|
||||
add_overlay(image(icon=bin_pen.icon,icon_state=bin_pen.icon_state))
|
||||
add_overlay(mutable_appearance(bin_pen.icon, bin_pen.icon_state))
|
||||
|
||||
/obj/item/weapon/paper_bin/construction
|
||||
name = "construction paper bin"
|
||||
|
||||
@@ -44,8 +44,7 @@
|
||||
var/list/stamped = internalPaper.stamped
|
||||
if(stamped)
|
||||
for(var/S in stamped)
|
||||
var/image/stampoverlay = image('icons/obj/bureaucracy.dmi', "paperplane_[stamped]")
|
||||
add_overlay(stampoverlay)
|
||||
add_overlay("paperplane_[S]")
|
||||
|
||||
/obj/item/weapon/paperplane/attack_self(mob/user)
|
||||
to_chat(user, "<span class='notice'>You unfold [src].</span>")
|
||||
|
||||
@@ -93,12 +93,6 @@
|
||||
var/force_update = 0
|
||||
var/update_state = -1
|
||||
var/update_overlay = -1
|
||||
var/global/status_overlays = 0
|
||||
var/global/list/status_overlays_lock
|
||||
var/global/list/status_overlays_charging
|
||||
var/global/list/status_overlays_equipment
|
||||
var/global/list/status_overlays_lighting
|
||||
var/global/list/status_overlays_environ
|
||||
|
||||
|
||||
/obj/machinery/power/apc/connect_to_network()
|
||||
@@ -218,35 +212,6 @@
|
||||
// update the APC icon to show the three base states
|
||||
// also add overlays for indicator lights
|
||||
/obj/machinery/power/apc/update_icon()
|
||||
if (!status_overlays)
|
||||
status_overlays = 1
|
||||
status_overlays_lock = new(2)
|
||||
status_overlays_charging = new(3)
|
||||
status_overlays_equipment = new(4)
|
||||
status_overlays_lighting = new(4)
|
||||
status_overlays_environ = new(4)
|
||||
|
||||
status_overlays_lock[1] = image(icon, "apcox-0") // 0=blue 1=red
|
||||
status_overlays_lock[2] = image(icon, "apcox-1")
|
||||
|
||||
status_overlays_charging[1] = image(icon, "apco3-0")
|
||||
status_overlays_charging[2] = image(icon, "apco3-1")
|
||||
status_overlays_charging[3] = image(icon, "apco3-2")
|
||||
|
||||
status_overlays_equipment[1] = image(icon, "apco0-0")
|
||||
status_overlays_equipment[2] = image(icon, "apco0-1")
|
||||
status_overlays_equipment[3] = image(icon, "apco0-2")
|
||||
status_overlays_equipment[4] = image(icon, "apco0-3")
|
||||
|
||||
status_overlays_lighting[1] = image(icon, "apco1-0")
|
||||
status_overlays_lighting[2] = image(icon, "apco1-1")
|
||||
status_overlays_lighting[3] = image(icon, "apco1-2")
|
||||
status_overlays_lighting[4] = image(icon, "apco1-3")
|
||||
|
||||
status_overlays_environ[1] = image(icon, "apco2-0")
|
||||
status_overlays_environ[2] = image(icon, "apco2-1")
|
||||
status_overlays_environ[3] = image(icon, "apco2-2")
|
||||
status_overlays_environ[4] = image(icon, "apco2-3")
|
||||
|
||||
var/update = check_updates() //returns 0 if no need to update icons.
|
||||
// 1 if we need to update the icon_state
|
||||
@@ -283,12 +248,12 @@
|
||||
cut_overlays()
|
||||
if(!(stat & (BROKEN|MAINT)) && update_state & UPSTATE_ALLGOOD)
|
||||
var/list/O = list(
|
||||
status_overlays_lock[locked+1],
|
||||
status_overlays_charging[charging+1])
|
||||
"apcox-[locked]",
|
||||
"apco3-[charging]")
|
||||
if(operating)
|
||||
O += status_overlays_equipment[equipment+1]
|
||||
O += status_overlays_lighting[lighting+1]
|
||||
O += status_overlays_environ[environ+1]
|
||||
O += "apco0-[equipment]"
|
||||
O += "apco1-[lighting]"
|
||||
O += "apco2-[environ]"
|
||||
add_overlay(O)
|
||||
|
||||
// And now, seperately for cleanness, the lighting changing
|
||||
|
||||
@@ -49,13 +49,13 @@
|
||||
/obj/item/weapon/stock_parts/cell/proc/updateicon()
|
||||
cut_overlays()
|
||||
if(grown_battery)
|
||||
add_overlay(image('icons/obj/power.dmi', "grown_wires"))
|
||||
add_overlay("grown_wires")
|
||||
if(charge < 0.01)
|
||||
return
|
||||
else if(charge/maxcharge >=0.995)
|
||||
add_overlay(image('icons/obj/power.dmi', "cell-o2"))
|
||||
add_overlay("cell-o2")
|
||||
else
|
||||
add_overlay(image('icons/obj/power.dmi', "cell-o1"))
|
||||
add_overlay("cell-o1")
|
||||
|
||||
/obj/item/weapon/stock_parts/cell/proc/percent() // return % charge of cell
|
||||
return 100*charge/maxcharge
|
||||
|
||||
@@ -64,9 +64,9 @@
|
||||
cut_overlays()
|
||||
|
||||
if(lastgenlev != 0)
|
||||
add_overlay(image('icons/obj/power.dmi', "teg-op[lastgenlev]"))
|
||||
add_overlay("teg-op[lastgenlev]")
|
||||
|
||||
add_overlay(image('icons/obj/power.dmi', "teg-oc[lastcirc]"))
|
||||
add_overlay("teg-oc[lastcirc]")
|
||||
|
||||
|
||||
#define GENRATE 800 // generator output coefficient from Q
|
||||
|
||||
@@ -141,11 +141,11 @@ GLOBAL_LIST_EMPTY(rad_collectors)
|
||||
/obj/machinery/power/rad_collector/proc/update_icons()
|
||||
cut_overlays()
|
||||
if(loaded_tank)
|
||||
add_overlay(image('icons/obj/singularity.dmi', "ptank"))
|
||||
add_overlay("ptank")
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
if(active)
|
||||
add_overlay(image('icons/obj/singularity.dmi', "on"))
|
||||
add_overlay("on")
|
||||
|
||||
|
||||
/obj/machinery/power/rad_collector/proc/toggle_power()
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
var/area/A = get_area(src)
|
||||
if(A)
|
||||
var/image/alert_overlay = image('icons/effects/effects.dmi', "ghostalertsie")
|
||||
var/mutable_appearance/alert_overlay = mutable_appearance('icons/effects/effects.dmi', "ghostalertsie")
|
||||
notify_ghosts("Nar-Sie has risen in \the [A.name]. Reach out to the Geometer to be given a new shell for your soul.", source = src, alert_overlay = alert_overlay, action=NOTIFY_ATTACK)
|
||||
|
||||
narsie_spawn_animation()
|
||||
|
||||
@@ -38,9 +38,6 @@
|
||||
|
||||
var/obj/machinery/power/terminal/terminal = null
|
||||
|
||||
var/static/list/smesImageCache
|
||||
|
||||
|
||||
/obj/machinery/power/smes/examine(user)
|
||||
..()
|
||||
if(!terminal)
|
||||
@@ -226,36 +223,20 @@
|
||||
if(panel_open)
|
||||
return
|
||||
|
||||
if(!smesImageCache || !smesImageCache.len)
|
||||
smesImageCache = list()
|
||||
smesImageCache.len = 9
|
||||
|
||||
smesImageCache[SMES_CLEVEL_1] = image('icons/obj/power.dmi',"smes-og1")
|
||||
smesImageCache[SMES_CLEVEL_2] = image('icons/obj/power.dmi',"smes-og2")
|
||||
smesImageCache[SMES_CLEVEL_3] = image('icons/obj/power.dmi',"smes-og3")
|
||||
smesImageCache[SMES_CLEVEL_4] = image('icons/obj/power.dmi',"smes-og4")
|
||||
smesImageCache[SMES_CLEVEL_5] = image('icons/obj/power.dmi',"smes-og5")
|
||||
|
||||
smesImageCache[SMES_OUTPUTTING] = image('icons/obj/power.dmi', "smes-op1")
|
||||
smesImageCache[SMES_NOT_OUTPUTTING] = image('icons/obj/power.dmi',"smes-op0")
|
||||
smesImageCache[SMES_INPUTTING] = image('icons/obj/power.dmi', "smes-oc1")
|
||||
smesImageCache[SMES_INPUT_ATTEMPT] = image('icons/obj/power.dmi', "smes-oc0")
|
||||
|
||||
if(outputting)
|
||||
add_overlay(smesImageCache[SMES_OUTPUTTING])
|
||||
add_overlay("smes-op1")
|
||||
else
|
||||
add_overlay(smesImageCache[SMES_NOT_OUTPUTTING])
|
||||
add_overlay("smes-op0")
|
||||
|
||||
if(inputting)
|
||||
add_overlay(smesImageCache[SMES_INPUTTING])
|
||||
add_overlay("smes-oc1")
|
||||
else
|
||||
if(input_attempt)
|
||||
add_overlay(smesImageCache[SMES_INPUT_ATTEMPT])
|
||||
add_overlay("smes-oc0")
|
||||
|
||||
var/clevel = chargedisplay()
|
||||
if(clevel>0)
|
||||
add_overlay(smesImageCache[clevel])
|
||||
return
|
||||
add_overlay("smes-og[clevel]")
|
||||
|
||||
|
||||
/obj/machinery/power/smes/proc/chargedisplay()
|
||||
|
||||
@@ -103,9 +103,9 @@
|
||||
..()
|
||||
cut_overlays()
|
||||
if(stat & BROKEN)
|
||||
add_overlay(image('icons/obj/power.dmi', icon_state = "solar_panel-b", layer = FLY_LAYER))
|
||||
add_overlay(mutable_appearance(icon, "solar_panel-b", FLY_LAYER))
|
||||
else
|
||||
add_overlay(image('icons/obj/power.dmi', icon_state = "solar_panel", layer = FLY_LAYER))
|
||||
add_overlay(mutable_appearance(icon, "solar_panel", FLY_LAYER))
|
||||
src.setDir(angle2dir(adir))
|
||||
|
||||
//calculates the fraction of the sunlight that the panel recieves
|
||||
@@ -345,7 +345,8 @@
|
||||
else
|
||||
add_overlay(icon_screen)
|
||||
if(currentdir > -1)
|
||||
add_overlay(image('icons/obj/computer.dmi', "solcon-o", FLY_LAYER, angle2dir(currentdir)))
|
||||
setDir(angle2dir(currentdir))
|
||||
add_overlay(mutable_appearance(icon, "solcon-o", FLY_LAYER))
|
||||
|
||||
/obj/machinery/power/solar_control/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \
|
||||
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
|
||||
|
||||
@@ -170,13 +170,13 @@
|
||||
|
||||
|
||||
if(rpm>50000)
|
||||
add_overlay(image('icons/obj/atmospherics/pipes/simple.dmi', "comp-o4", FLY_LAYER))
|
||||
add_overlay(mutable_appearance(icon, "comp-o4", FLY_LAYER))
|
||||
else if(rpm>10000)
|
||||
add_overlay(image('icons/obj/atmospherics/pipes/simple.dmi', "comp-o3", FLY_LAYER))
|
||||
add_overlay(mutable_appearance(icon, "comp-o3", FLY_LAYER))
|
||||
else if(rpm>2000)
|
||||
add_overlay(image('icons/obj/atmospherics/pipes/simple.dmi', "comp-o2", FLY_LAYER))
|
||||
add_overlay(mutable_appearance(icon, "comp-o2", FLY_LAYER))
|
||||
else if(rpm>500)
|
||||
add_overlay(image('icons/obj/atmospherics/pipes/simple.dmi', "comp-o1", FLY_LAYER))
|
||||
add_overlay(mutable_appearance(icon, "comp-o1", FLY_LAYER))
|
||||
//TODO: DEFERRED
|
||||
|
||||
// These are crucial to working of a turbine - the stats modify the power output. TurbGenQ modifies how much raw energy can you get from
|
||||
@@ -255,7 +255,7 @@
|
||||
// If it works, put an overlay that it works!
|
||||
|
||||
if(lastgen > 100)
|
||||
add_overlay(image('icons/obj/atmospherics/pipes/simple.dmi', "turb-o", FLY_LAYER))
|
||||
add_overlay(mutable_appearance(icon, "turb-o", FLY_LAYER))
|
||||
|
||||
updateDialog()
|
||||
|
||||
|
||||
@@ -132,15 +132,20 @@
|
||||
add_overlay("[icon_state]_empty")
|
||||
else
|
||||
if(!shaded_charge)
|
||||
var/mutable_appearance/charge_overlay = mutable_appearance(icon, iconState)
|
||||
for(var/i = ratio, i >= 1, i--)
|
||||
add_overlay(image(icon = icon, icon_state = iconState, pixel_x = ammo_x_offset * (i -1)))
|
||||
charge_overlay.pixel_x = ammo_x_offset * (i - 1)
|
||||
add_overlay(charge_overlay)
|
||||
else
|
||||
add_overlay(image(icon = icon, icon_state = "[icon_state]_charge[ratio]"))
|
||||
add_overlay("[icon_state]_charge[ratio]")
|
||||
if(gun_light && can_flashlight)
|
||||
var/iconF = "flight"
|
||||
if(gun_light.on)
|
||||
iconF = "flight_on"
|
||||
add_overlay(image(icon = icon, icon_state = iconF, pixel_x = flight_x_offset, pixel_y = flight_y_offset))
|
||||
var/mutable_appearance/flashlight_overlay = mutable_appearance(icon, iconF)
|
||||
flashlight_overlay.pixel_x = flight_x_offset
|
||||
flashlight_overlay.pixel_y = flight_y_offset
|
||||
add_overlay(flashlight_overlay)
|
||||
if(itemState)
|
||||
itemState += "[ratio]"
|
||||
item_state = itemState
|
||||
|
||||
@@ -136,7 +136,10 @@
|
||||
var/iconF = "flight"
|
||||
if(gun_light.on)
|
||||
iconF = "flight_on"
|
||||
add_overlay(image(icon = icon, icon_state = iconF, pixel_x = flight_x_offset, pixel_y = flight_y_offset))
|
||||
var/mutable_appearance/flashlight_overlay = mutable_appearance(icon, iconF)
|
||||
flashlight_overlay.pixel_x = flight_x_offset
|
||||
flashlight_overlay.pixel_y = flight_y_offset
|
||||
add_overlay(flashlight_overlay)
|
||||
|
||||
//Casing
|
||||
/obj/item/ammo_casing/energy/kinetic
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
var/amount = 30
|
||||
var/recharged = 0
|
||||
var/recharge_delay = 5
|
||||
var/image/icon_beaker = null
|
||||
var/mutable_appearance/beaker_overlay
|
||||
var/obj/item/weapon/reagent_containers/beaker = null
|
||||
var/list/dispensable_reagents = list(
|
||||
"hydrogen",
|
||||
@@ -184,10 +184,9 @@
|
||||
beaker.loc = src
|
||||
to_chat(user, "<span class='notice'>You add \the [B] to the machine.</span>")
|
||||
|
||||
if(!icon_beaker)
|
||||
icon_beaker = image('icons/obj/chemical.dmi', src, "disp_beaker") //randomize beaker overlay position.
|
||||
icon_beaker.pixel_x = rand(-10,5)
|
||||
add_overlay(icon_beaker)
|
||||
beaker_overlay = beaker_overlay || mutable_appearance(icon, "disp_beaker")
|
||||
beaker_overlay.pixel_x = rand(-10, 5)//randomize beaker overlay position.
|
||||
add_overlay(beaker_overlay)
|
||||
else if(user.a_intent != INTENT_HARM && !istype(I, /obj/item/weapon/card/emag))
|
||||
to_chat(user, "<span class='warning'>You can't load \the [I] into the machine!</span>")
|
||||
else
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
else
|
||||
Wall.thermite = Wall.thermite+(reac_volume*10)
|
||||
Wall.overlays = list()
|
||||
Wall.add_overlay(image('icons/effects/effects.dmi',"thermite"))
|
||||
Wall.add_overlay(mutable_appearance('icons/effects/effects.dmi', "thermite"))
|
||||
|
||||
/datum/reagent/thermite/on_mob_life(mob/living/M)
|
||||
M.adjustFireLoss(1, 0)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/update_icon()
|
||||
cut_overlays()
|
||||
if(reagents.total_volume)
|
||||
var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]-10")
|
||||
var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "[icon_state]-10")
|
||||
|
||||
var/percent = round((reagents.total_volume / volume) * 100)
|
||||
switch(percent)
|
||||
|
||||
@@ -91,6 +91,6 @@
|
||||
/obj/item/weapon/reagent_containers/dropper/update_icon()
|
||||
cut_overlays()
|
||||
if(reagents.total_volume)
|
||||
var/image/filling = image('icons/obj/reagentfillings.dmi', src, "dropper")
|
||||
var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "dropper")
|
||||
filling.color = mix_color_from_reagents(reagents.reagent_list)
|
||||
add_overlay(filling)
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
cut_overlays()
|
||||
|
||||
if(reagents.total_volume)
|
||||
var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]10")
|
||||
var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "[icon_state]10")
|
||||
|
||||
var/percent = round((reagents.total_volume / volume) * 100)
|
||||
switch(percent)
|
||||
|
||||
@@ -167,10 +167,9 @@
|
||||
item_state = "syringe_[rounded_vol]"
|
||||
|
||||
if(reagents.total_volume)
|
||||
var/image/filling = image('icons/obj/reagentfillings.dmi', src, "syringe10")
|
||||
filling.icon_state = "syringe[rounded_vol]"
|
||||
filling.color = mix_color_from_reagents(reagents.reagent_list)
|
||||
add_overlay(filling)
|
||||
var/image/filling_overlay = mutable_appearance('icons/obj/reagentfillings.dmi', "syringe[rounded_vol]")
|
||||
filling_overlay.color = mix_color_from_reagents(reagents.reagent_list)
|
||||
add_overlay(filling_overlay)
|
||||
|
||||
/obj/item/weapon/reagent_containers/syringe/epinephrine
|
||||
name = "syringe (epinephrine)"
|
||||
|
||||
@@ -364,7 +364,7 @@
|
||||
|
||||
//flush handle
|
||||
if(flush)
|
||||
add_overlay(image('icons/obj/atmospherics/pipes/disposal.dmi', "dispover-handle"))
|
||||
add_overlay("dispover-handle")
|
||||
|
||||
//only handle is shown if no power
|
||||
if(stat & NOPOWER || panel_open)
|
||||
@@ -372,13 +372,13 @@
|
||||
|
||||
//check for items in disposal - occupied light
|
||||
if(contents.len > 0)
|
||||
add_overlay(image('icons/obj/atmospherics/pipes/disposal.dmi', "dispover-full"))
|
||||
add_overlay("dispover-full")
|
||||
|
||||
//charging and ready light
|
||||
if(pressure_charging)
|
||||
add_overlay(image('icons/obj/atmospherics/pipes/disposal.dmi', "dispover-charge"))
|
||||
add_overlay("dispover-charge")
|
||||
else if(full_pressure)
|
||||
add_overlay(image('icons/obj/atmospherics/pipes/disposal.dmi', "dispover-ready"))
|
||||
add_overlay("dispover-ready")
|
||||
|
||||
//timed process
|
||||
//charge the gas reservoir and perform flush if ready
|
||||
|
||||
@@ -4,7 +4,7 @@ GLOBAL_LIST_INIT(message_servers, list())
|
||||
var/recipient = "Unspecified" //name of the person
|
||||
var/sender = "Unspecified" //name of the sender
|
||||
var/message = "Blank" //transferred message
|
||||
var/image/photo = null //Attached photo
|
||||
var/icon/photo //Attached photo
|
||||
|
||||
/datum/data_pda_msg/New(var/param_rec = "",var/param_sender = "",var/param_message = "",var/param_photo=null)
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
to_chat(M, "<span class='userdanger'>Discordant whispers flood your mind in a thousand voices. Each one speaks your name, over and over. Something horrible has come.</span>")
|
||||
M << 'sound/creatures/legion_spawn.ogg'
|
||||
flash_color(M, flash_color = "#FF0000", flash_time = 50)
|
||||
var/image/door_overlay = image('icons/effects/effects.dmi', "legiondoor")
|
||||
var/mutable_appearance/door_overlay = mutable_appearance('icons/effects/effects.dmi', "legiondoor")
|
||||
notify_ghosts("Legion has been summoned in the [get_area(src)]!", source = src, alert_overlay = door_overlay, action = NOTIFY_JUMP)
|
||||
is_anyone_home = FALSE
|
||||
new/mob/living/simple_animal/hostile/megafauna/legion(get_step(src.loc, SOUTH))
|
||||
|
||||
@@ -26,9 +26,9 @@
|
||||
|
||||
/obj/machinery/shuttle_manipulator/update_icon()
|
||||
cut_overlays()
|
||||
var/image/hologram_projection = image(icon, "hologram_on")
|
||||
var/mutable_appearance/hologram_projection = mutable_appearance(icon, "hologram_on")
|
||||
hologram_projection.pixel_y = 22
|
||||
var/image/hologram_ship = image(icon, "hologram_whiteship")
|
||||
var/mutable_appearance/hologram_ship = mutable_appearance(icon, "hologram_whiteship")
|
||||
hologram_ship.pixel_y = 27
|
||||
add_overlay(hologram_projection)
|
||||
add_overlay(hologram_ship)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
selection_type = "view"
|
||||
random_target = 1
|
||||
var/ready = 0
|
||||
var/image/halo = null
|
||||
var/static/mutable_appearance/halo
|
||||
var/sound/Snd // so far only way i can think of to stop a sound, thank MSO for the idea.
|
||||
|
||||
action_icon_state = "lightning"
|
||||
@@ -25,7 +25,7 @@
|
||||
ready = 1
|
||||
to_chat(user, "<span class='notice'>You start gathering the power.</span>")
|
||||
Snd = new/sound('sound/magic/lightning_chargeup.ogg',channel = 7)
|
||||
halo = image("icon"='icons/effects/effects.dmi',"icon_state" ="electricity","layer" = EFFECTS_LAYER)
|
||||
halo = halo || mutable_appearance('icons/effects/effects.dmi', "electricity", EFFECTS_LAYER)
|
||||
user.add_overlay(halo)
|
||||
playsound(get_turf(user), Snd, 50, 0)
|
||||
if(do_mob(user,user,100,1))
|
||||
@@ -38,8 +38,7 @@
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/tesla/proc/Reset(mob/user = usr)
|
||||
ready = 0
|
||||
if(halo)
|
||||
user.cut_overlay(halo)
|
||||
user.cut_overlay(halo)
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/tesla/revert_cast(mob/user = usr, message = 1)
|
||||
if(message)
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
icon = 'icons/obj/lavaland/cannon.dmi'
|
||||
icon_state = "orbital_cannon1"
|
||||
unsecuring_tool = null
|
||||
var/static/image/top_layer = null
|
||||
var/static/mutable_appearance/top_layer
|
||||
var/ex_power = 3
|
||||
var/power_used_per_shot = 2000000 //enough to kil standard apc - todo : make this use wires instead and scale explosion power with it
|
||||
var/ready
|
||||
@@ -163,17 +163,16 @@
|
||||
|
||||
/obj/machinery/bsa/full/New(loc,cannon_direction = WEST)
|
||||
..()
|
||||
top_layer = top_layer || mutable_appearance(icon, layer = ABOVE_MOB_LAYER)
|
||||
switch(cannon_direction)
|
||||
if(WEST)
|
||||
dir = WEST
|
||||
pixel_x = -192
|
||||
top_layer = image("icons/obj/lavaland/orbital_cannon.dmi", "top_west")
|
||||
top_layer.layer = ABOVE_MOB_LAYER
|
||||
top_layer.icon_state = "top_west"
|
||||
icon_state = "cannon_west"
|
||||
if(EAST)
|
||||
dir = EAST
|
||||
top_layer = image("icons/obj/lavaland/orbital_cannon.dmi", "top_east")
|
||||
top_layer.layer = ABOVE_MOB_LAYER
|
||||
top_layer.icon_state = "top_east"
|
||||
icon_state = "cannon_east"
|
||||
add_overlay(top_layer)
|
||||
reload()
|
||||
|
||||
@@ -284,79 +284,66 @@
|
||||
/obj/item/bodypart/proc/get_limb_icon(dropped)
|
||||
icon_state = "" //to erase the default sprite, we're building the visual aspects of the bodypart through overlays alone.
|
||||
|
||||
var/list/standing = list()
|
||||
. = list()
|
||||
|
||||
var/image_dir
|
||||
var/image_dir = 0
|
||||
if(dropped)
|
||||
image_dir = SOUTH
|
||||
if(dmg_overlay_type)
|
||||
if(brutestate)
|
||||
standing += image("icon"='icons/mob/dam_mob.dmi', "icon_state"="[dmg_overlay_type]_[body_zone]_[brutestate]0", "layer"=-DAMAGE_LAYER, "dir"=image_dir)
|
||||
. += image('icons/mob/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_[brutestate]0", -DAMAGE_LAYER, image_dir)
|
||||
if(burnstate)
|
||||
standing += image("icon"='icons/mob/dam_mob.dmi', "icon_state"="[dmg_overlay_type]_[body_zone]_0[burnstate]", "layer"=-DAMAGE_LAYER, "dir"=image_dir)
|
||||
. += image('icons/mob/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_0[burnstate]", -DAMAGE_LAYER, image_dir)
|
||||
|
||||
var/image/limb = image(layer = -BODYPARTS_LAYER, dir = image_dir)
|
||||
. += limb
|
||||
|
||||
if(animal_origin)
|
||||
if(status == BODYPART_ORGANIC)
|
||||
limb.icon = 'icons/mob/animal_parts.dmi'
|
||||
if(species_id == "husk")
|
||||
standing += image("icon"='icons/mob/animal_parts.dmi', "icon_state"="[animal_origin]_husk_[body_zone]", "layer"=-BODYPARTS_LAYER, "dir"=image_dir)
|
||||
limb.icon_state = "[animal_origin]_husk_[body_zone]"
|
||||
else
|
||||
standing += image("icon"='icons/mob/animal_parts.dmi', "icon_state"="[animal_origin]_[body_zone]", "layer"=-BODYPARTS_LAYER, "dir"=image_dir)
|
||||
limb.icon_state = "[animal_origin]_[body_zone]"
|
||||
else
|
||||
standing += image("icon"='icons/mob/augments.dmi', "icon_state"="[animal_origin]_[body_zone]", "layer"=-BODYPARTS_LAYER, "dir"=image_dir)
|
||||
return standing
|
||||
limb.icon = 'icons/mob/augments.dmi'
|
||||
limb.icon_state = "[animal_origin]_[body_zone]"
|
||||
return
|
||||
|
||||
var/icon_gender = (body_gender == FEMALE) ? "f" : "m" //gender of the icon, if applicable
|
||||
|
||||
if((body_zone != "head" && body_zone != "chest"))
|
||||
should_draw_gender = FALSE
|
||||
|
||||
var/image/I
|
||||
|
||||
if(status == BODYPART_ORGANIC)
|
||||
if(should_draw_greyscale)
|
||||
limb.icon = 'icons/mob/human_parts_greyscale.dmi'
|
||||
if(should_draw_gender)
|
||||
I = image("icon"='icons/mob/human_parts_greyscale.dmi', "icon_state"="[species_id]_[body_zone]_[icon_gender]", "layer"=-BODYPARTS_LAYER, "dir"=image_dir)
|
||||
limb.icon_state = "[species_id]_[body_zone]_[icon_gender]"
|
||||
else if(use_digitigrade)
|
||||
I = image("icon"='icons/mob/human_parts_greyscale.dmi', "icon_state"="digitigrade_[use_digitigrade]_[body_zone]", "layer"=-BODYPARTS_LAYER, "dir"=image_dir)
|
||||
limb.icon_state = "digitigrade_[use_digitigrade]_[body_zone]"
|
||||
else
|
||||
I = image("icon"='icons/mob/human_parts_greyscale.dmi', "icon_state"="[species_id]_[body_zone]", "layer"=-BODYPARTS_LAYER, "dir"=image_dir)
|
||||
limb.icon_state = "[species_id]_[body_zone]"
|
||||
else
|
||||
limb.icon = 'icons/mob/human_parts.dmi'
|
||||
if(should_draw_gender)
|
||||
I = image("icon"='icons/mob/human_parts.dmi', "icon_state"="[species_id]_[body_zone]_[icon_gender]", "layer"=-BODYPARTS_LAYER, "dir"=image_dir)
|
||||
limb.icon_state = "[species_id]_[body_zone]_[icon_gender]"
|
||||
else
|
||||
I = image("icon"='icons/mob/human_parts.dmi', "icon_state"="[species_id]_[body_zone]", "layer"=-BODYPARTS_LAYER, "dir"=image_dir)
|
||||
limb.icon_state = "[species_id]_[body_zone]"
|
||||
|
||||
else
|
||||
limb.icon = icon
|
||||
if(should_draw_gender)
|
||||
I = image("icon"= icon, "icon_state"="[body_zone]_[icon_gender]", "layer"=-BODYPARTS_LAYER, "dir"=image_dir)
|
||||
limb.icon_state = "[body_zone]_[icon_gender]"
|
||||
else
|
||||
I = image("icon"= icon, "icon_state"="[body_zone]", "layer"=-BODYPARTS_LAYER, "dir"=image_dir)
|
||||
standing += I
|
||||
return standing
|
||||
|
||||
|
||||
if(!should_draw_greyscale)
|
||||
standing += I
|
||||
return standing
|
||||
|
||||
//Greyscale Colouring
|
||||
var/draw_color
|
||||
|
||||
if(skin_tone) //Limb has skin color variable defined, use it
|
||||
draw_color = skintone2hex(skin_tone)
|
||||
if(species_color)
|
||||
draw_color = species_color
|
||||
if(mutation_color)
|
||||
draw_color = mutation_color
|
||||
|
||||
if(draw_color)
|
||||
I.color = "#[draw_color]"
|
||||
//End Greyscale Colouring
|
||||
standing += I
|
||||
|
||||
return standing
|
||||
limb.icon_state = "[body_zone]"
|
||||
return
|
||||
|
||||
|
||||
if(should_draw_greyscale)
|
||||
var/draw_color = mutation_color || species_color || (skin_tone && skintone2hex(skin_tone))
|
||||
if(draw_color)
|
||||
limb.color = "#[draw_color]"
|
||||
|
||||
/obj/item/bodypart/deconstruct(disassembled = TRUE)
|
||||
drop_organs()
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
|
||||
/obj/item/bodypart/head/get_limb_icon(dropped)
|
||||
cut_overlays()
|
||||
var/list/standing = ..()
|
||||
. = ..()
|
||||
if(dropped) //certain overlays only appear when the limb is being detached from its owner.
|
||||
var/datum/sprite_accessory/S
|
||||
|
||||
@@ -128,45 +128,48 @@
|
||||
if(facial_hair_style)
|
||||
S = GLOB.facial_hair_styles_list[facial_hair_style]
|
||||
if(S)
|
||||
var/image/img_facial = image("icon" = S.icon, "icon_state" = "[S.icon_state]", "layer" = -HAIR_LAYER, "dir"=SOUTH)
|
||||
img_facial.color = "#" + facial_hair_color
|
||||
img_facial.alpha = hair_alpha
|
||||
standing += img_facial
|
||||
var/image/facial_overlay = image(S.icon, "[S.icon_state]", -HAIR_LAYER, SOUTH)
|
||||
facial_overlay.color = "#" + facial_hair_color
|
||||
facial_overlay.alpha = hair_alpha
|
||||
. += facial_overlay
|
||||
|
||||
var/image/hair_overlay = image(layer = -HAIR_LAYER, dir = SOUTH)
|
||||
. += hair_overlay
|
||||
//Applies the debrained overlay if there is no brain
|
||||
if(!brain)
|
||||
if(animal_origin == ALIEN_BODYPART)
|
||||
standing += image("icon"='icons/mob/animal_parts.dmi', "icon_state" = "debrained_alien", "layer" = -HAIR_LAYER, "dir"=SOUTH)
|
||||
hair_overlay.icon = 'icons/mob/animal_parts.dmi'
|
||||
hair_overlay.icon_state = "debrained_alien"
|
||||
else if(animal_origin == LARVA_BODYPART)
|
||||
standing += image("icon"='icons/mob/animal_parts.dmi', "icon_state" = "debrained_larva", "layer" = -HAIR_LAYER, "dir"=SOUTH)
|
||||
hair_overlay.icon = 'icons/mob/animal_parts.dmi'
|
||||
hair_overlay.icon_state = "debrained_larva"
|
||||
else if(!(NOBLOOD in species_flags_list))
|
||||
standing += image("icon"='icons/mob/human_face.dmi', "icon_state" = "debrained", "layer" = -HAIR_LAYER, "dir"=SOUTH)
|
||||
hair_overlay.icon = 'icons/mob/human_face.dmi'
|
||||
hair_overlay.icon_state = "debrained"
|
||||
else
|
||||
if(hair_style)
|
||||
S = GLOB.hair_styles_list[hair_style]
|
||||
if(S)
|
||||
var/image/img_hair = image("icon" = S.icon, "icon_state" = "[S.icon_state]", "layer" = -HAIR_LAYER, "dir"=SOUTH)
|
||||
img_hair.color = "#" + hair_color
|
||||
img_hair.alpha = hair_alpha
|
||||
standing += img_hair
|
||||
hair_overlay.icon = icon
|
||||
hair_overlay.icon_state = "[S.icon_state]"
|
||||
hair_overlay.color = "#" + hair_color
|
||||
hair_overlay.alpha = hair_alpha
|
||||
|
||||
|
||||
// lipstick
|
||||
if(lip_style)
|
||||
var/image/lips = image("icon"='icons/mob/human_face.dmi', "icon_state"="lips_[lip_style]", "layer" = -BODY_LAYER, "dir"=SOUTH)
|
||||
lips.color = lip_color
|
||||
standing += lips
|
||||
var/image/lips_overlay = image('icons/mob/human_face.dmi', "lips_[lip_style]", -BODY_LAYER, SOUTH)
|
||||
lips_overlay.color = lip_color
|
||||
. += lips_overlay
|
||||
|
||||
// eyes
|
||||
var/image/eyes_overlay = image('icons/mob/human_face.dmi', "eyes", -BODY_LAYER, SOUTH)
|
||||
. += eyes_overlay
|
||||
if(!eyes)
|
||||
standing += image("icon"='icons/mob/human_face.dmi', "icon_state" = "eyes_missing", "layer" = -BODY_LAYER, "dir"=SOUTH)
|
||||
eyes_overlay.icon_state = "eyes_missing"
|
||||
|
||||
else if(eyes.eye_color)
|
||||
var/image/img_eyes = image("icon" = 'icons/mob/human_face.dmi', "icon_state" = "eyes", "layer" = -BODY_LAYER, "dir"=SOUTH)
|
||||
img_eyes.color = "#" + eyes.eye_color
|
||||
standing += img_eyes
|
||||
|
||||
return standing
|
||||
eyes_overlay.color = "#" + eyes.eye_color
|
||||
|
||||
/obj/item/bodypart/head/monkey
|
||||
icon = 'icons/mob/animal_parts.dmi'
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
if(iscarbon(M))
|
||||
src.Insert(M)
|
||||
if(implant_overlay)
|
||||
var/image/overlay = new /image(icon, implant_overlay)
|
||||
var/mutable_appearance/overlay = mutable_appearance(icon, implant_overlay)
|
||||
overlay.color = implant_color
|
||||
add_overlay(overlay)
|
||||
return ..()
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
name = "all-terrain vehicle"
|
||||
desc = "An all-terrain vehicle built for traversing rough terrain with ease. One of the few old-earth technologies that are still relevant on most planet-bound outposts."
|
||||
icon_state = "atv"
|
||||
var/static/image/atvcover = null
|
||||
var/static/mutable_appearance/atvcover
|
||||
|
||||
/obj/vehicle/atv/buckle_mob(mob/living/buckled_mob, force = 0, check_loc = 1)
|
||||
. = ..()
|
||||
@@ -11,9 +11,7 @@
|
||||
|
||||
/obj/vehicle/atv/New()
|
||||
..()
|
||||
if(!atvcover)
|
||||
atvcover = image("icons/obj/vehicles.dmi", "atvcover")
|
||||
atvcover.layer = ABOVE_MOB_LAYER
|
||||
atvcover = atvcover || mutable_appearance(icon, "atvcover", ABOVE_MOB_LAYER)
|
||||
|
||||
|
||||
/obj/vehicle/atv/post_buckle_mob(mob/living/M)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
icon_state = "speedbike_blue"
|
||||
layer = LYING_MOB_LAYER
|
||||
var/overlay_state = "cover_blue"
|
||||
var/image/overlay = null
|
||||
var/static/mutable_appearance/overlay
|
||||
|
||||
/obj/vehicle/space/speedbike/buckle_mob(mob/living/M, force = 0, check_loc = 1)
|
||||
. = ..()
|
||||
@@ -12,8 +12,7 @@
|
||||
|
||||
/obj/vehicle/space/speedbike/New()
|
||||
. = ..()
|
||||
overlay = image("icons/obj/bike.dmi", overlay_state)
|
||||
overlay.layer = ABOVE_MOB_LAYER
|
||||
overlay = overlay || mutable_appearance(icon, overlay_state, ABOVE_MOB_LAYER)
|
||||
add_overlay(overlay)
|
||||
|
||||
/obj/effect/overlay/temp/speedbike_trail
|
||||
|
||||
Reference in New Issue
Block a user