Merge branch 'master' of https://github.com/tgstation/-tg-station into CraftingTable

This commit is contained in:
Razharas
2014-01-23 04:08:10 +04:00
29 changed files with 233 additions and 309 deletions

View File

@@ -0,0 +1,3 @@
/matrix/proc/TurnTo(old_angle, new_angle)
. = new_angle - old_angle
Turn(.) //BYOND handles cases such as -270, 360, 540 etc. DOES NOT HANDLE 180 TURNS WELL, THEY TWEEN AND LOOK LIKE SHIT

View File

@@ -65,7 +65,8 @@
#define ui_acti_alt "EAST-1:28,SOUTH:5" //alternative intent switcher for when the interface is hidden (F12) #define ui_acti_alt "EAST-1:28,SOUTH:5" //alternative intent switcher for when the interface is hidden (F12)
#define ui_borg_pull "EAST-2:26,SOUTH+1:7" #define ui_borg_pull "EAST-2:26,SOUTH+1:7"
#define ui_borg_panel "EAST-1:28,SOUTH+1:7" #define ui_borg_radio "EAST-1:28,SOUTH+1:7"
#define ui_borg_intents "EAST-2:26,SOUTH:5"
//Upper-middle right (damage indicators) //Upper-middle right (damage indicators)
#define ui_toxin "EAST-1:28,CENTER+5:27" #define ui_toxin "EAST-1:28,CENTER+5:27"

View File

@@ -10,7 +10,7 @@
using.name = "radio" using.name = "radio"
using.icon = 'icons/mob/screen_cyborg.dmi' using.icon = 'icons/mob/screen_cyborg.dmi'
using.icon_state = "radio" using.icon_state = "radio"
using.screen_loc = ui_movi using.screen_loc = ui_borg_radio
using.layer = 20 using.layer = 20
adding += using adding += using
@@ -50,7 +50,7 @@
using.name = "act_intent" using.name = "act_intent"
using.icon = 'icons/mob/screen_cyborg.dmi' using.icon = 'icons/mob/screen_cyborg.dmi'
using.icon_state = mymob.a_intent using.icon_state = mymob.a_intent
using.screen_loc = ui_acti using.screen_loc = ui_borg_intents
using.layer = 20 using.layer = 20
adding += using adding += using
action_intent = using action_intent = using
@@ -76,15 +76,6 @@
mymob.hands.name = "module" mymob.hands.name = "module"
mymob.hands.screen_loc = ui_borg_module mymob.hands.screen_loc = ui_borg_module
//Module Panel
using = new /obj/screen()
using.name = "panel"
using.icon = 'icons/mob/screen_cyborg.dmi'
using.icon_state = "panel"
using.screen_loc = ui_borg_panel
using.layer = 19
adding += using
//Store //Store
mymob.throw_icon = new /obj/screen() mymob.throw_icon = new /obj/screen()
mymob.throw_icon.icon = 'icons/mob/screen_cyborg.dmi' mymob.throw_icon.icon = 'icons/mob/screen_cyborg.dmi'
@@ -156,30 +147,30 @@
var/mob/living/silicon/robot/r = mymob var/mob/living/silicon/robot/r = mymob
if(r.shown_robot_modules) if(r.client)
//Modules display is shown if(r.shown_robot_modules)
r.client.screen += r.throw_icon //"store" icon //Modules display is shown
r.client.screen += r.throw_icon //"store" icon
if(!r.module) if(!r.module)
usr << "<span class='danger'>No module selected</span>" usr << "<span class='danger'>No module selected</span>"
return return
if(!r.module.modules) if(!r.module.modules)
usr << "<span class='danger'>Selected module has no modules to select</span>" usr << "<span class='danger'>Selected module has no modules to select</span>"
return return
if(!r.robot_modules_background) if(!r.robot_modules_background)
return return
var/display_rows = round((r.module.modules.len) / 8) +1 //+1 because round() returns floor of number var/display_rows = Ceiling(length(r.module.get_inactive_modules()) / 8)
r.robot_modules_background.screen_loc = "CENTER-4:16,SOUTH+1:7 to CENTER+3:16,SOUTH+[display_rows]:7" r.robot_modules_background.screen_loc = "CENTER-4:16,SOUTH+1:7 to CENTER+3:16,SOUTH+[display_rows]:7"
r.client.screen += r.robot_modules_background r.client.screen += r.robot_modules_background
var/x = -4 //Start at CENTER-4,SOUTH+1 var/x = -4 //Start at CENTER-4,SOUTH+1
var/y = 1 var/y = 1
for(var/atom/movable/A in r.module.modules) for(var/atom/movable/A in r.module.get_inactive_modules())
if( (A != r.module_state_1) && (A != r.module_state_2) && (A != r.module_state_3) )
//Module is not currently active //Module is not currently active
r.client.screen += A r.client.screen += A
if(x < 0) if(x < 0)
@@ -193,13 +184,12 @@
x = -4 x = -4
y++ y++
else else
//Modules display is hidden //Modules display is hidden
r.client.screen -= r.throw_icon //"store" icon r.client.screen -= r.throw_icon //"store" icon
for(var/atom/A in r.module.modules) for(var/atom/A in r.module.get_inactive_modules())
if( (A != r.module_state_1) && (A != r.module_state_2) && (A != r.module_state_3) )
//Module is not currently active //Module is not currently active
r.client.screen -= A r.client.screen -= A
r.shown_robot_modules = 0 r.shown_robot_modules = 0
r.client.screen -= r.robot_modules_background r.client.screen -= r.robot_modules_background

View File

@@ -861,18 +861,7 @@ datum/mind
if("unemag") if("unemag")
var/mob/living/silicon/robot/R = current var/mob/living/silicon/robot/R = current
if (istype(R)) if (istype(R))
R.emagged = 0 R.SetEmagged(0)
if (R.activated(R.module.emag))
R.module_active = null
if(R.module_state_1 == R.module.emag)
R.module_state_1 = null
R.contents -= R.module.emag
else if(R.module_state_2 == R.module.emag)
R.module_state_2 = null
R.contents -= R.module.emag
else if(R.module_state_3 == R.module.emag)
R.module_state_3 = null
R.contents -= R.module.emag
message_admins("[key_name_admin(usr)] has unemag'ed [R].") message_admins("[key_name_admin(usr)] has unemag'ed [R].")
log_admin("[key_name(usr)] has unemag'ed [R].") log_admin("[key_name(usr)] has unemag'ed [R].")
@@ -880,19 +869,7 @@ datum/mind
if (istype(current, /mob/living/silicon/ai)) if (istype(current, /mob/living/silicon/ai))
var/mob/living/silicon/ai/ai = current var/mob/living/silicon/ai/ai = current
for (var/mob/living/silicon/robot/R in ai.connected_robots) for (var/mob/living/silicon/robot/R in ai.connected_robots)
R.emagged = 0 R.SetEmagged(0)
if (R.module)
if (R.activated(R.module.emag))
R.module_active = null
if(R.module_state_1 == R.module.emag)
R.module_state_1 = null
R.contents -= R.module.emag
else if(R.module_state_2 == R.module.emag)
R.module_state_2 = null
R.contents -= R.module.emag
else if(R.module_state_3 == R.module.emag)
R.module_state_3 = null
R.contents -= R.module.emag
message_admins("[key_name_admin(usr)] has unemag'ed [ai]'s Cyborgs.") message_admins("[key_name_admin(usr)] has unemag'ed [ai]'s Cyborgs.")
log_admin("[key_name(usr)] has unemag'ed [ai]'s Cyborgs.") log_admin("[key_name(usr)] has unemag'ed [ai]'s Cyborgs.")

View File

@@ -117,7 +117,7 @@
var/mob/living/silicon/robot/R = locate(href_list["magbot"]) var/mob/living/silicon/robot/R = locate(href_list["magbot"])
if(istype(R) && !R.emagged && R.connected_ai == usr && !R.scrambledcodes && can_control(usr, R)) if(istype(R) && !R.emagged && R.connected_ai == usr && !R.scrambledcodes && can_control(usr, R))
log_game("[key_name(usr)] emagged [R.name] using robotic console!") log_game("[key_name(usr)] emagged [R.name] using robotic console!")
R.emagged = 1 R.SetEmagged(1)
if(R.mind.special_role) if(R.mind.special_role)
R.verbs += /mob/living/silicon/robot/proc/ResetSecurityCodes R.verbs += /mob/living/silicon/robot/proc/ResetSecurityCodes

View File

@@ -164,5 +164,5 @@
if(R.emagged == 1) if(R.emagged == 1)
return 0 return 0
R.emagged = 1 R.SetEmagged(1)
return 1 return 1

View File

@@ -10,6 +10,7 @@
* Snap pops * Snap pops
* Water flower * Water flower
* Cards * Cards
* Toy nuke
*/ */
@@ -860,14 +861,18 @@ obj/item/toy/singlecard/attack_self(mob/user)
/obj/item/toy/nuke/attack_self(mob/user) /obj/item/toy/nuke/attack_self(mob/user)
if (cooldown < world.time) if (cooldown < world.time)
cooldown = world.time + 3000 //5 minutes cooldown = world.time + 1800 //3 minutes
user.visible_message("<span class='warning'>[user] presses a button on [src]</span>", "<span class='notice'>You activate [src], it plays a loud noise!</span>", "<span class='notice'>You hear the click of a button.</span>") user.visible_message("<span class='warning'>[user] presses a button on [src]</span>", "<span class='notice'>You activate [src], it plays a loud noise!</span>", "<span class='notice'>You hear the click of a button.</span>")
spawn(5) //gia said so spawn(5) //gia said so
icon_state = "nuketoy" icon_state = "nuketoy"
playsound(src, 'sound/machines/Alarm.ogg', 100, 0, surround = 0) playsound(src, 'sound/machines/Alarm.ogg', 100, 0, surround = 0)
sleep(135) sleep(135)
icon_state = "nuketoycool"
sleep(cooldown - world.time)
icon_state = "nuketoyidle" icon_state = "nuketoyidle"
else
var/timeleft = (cooldown - world.time)
user << "<span class='alert'>Nothing happens, and '</span>[round(timeleft/10)]<span class='alert'>' appears on a small display.</span>"

View File

@@ -76,4 +76,4 @@
playsound(user, 'sound/weapons/saberoff.ogg', 50, 1) playsound(user, 'sound/weapons/saberoff.ogg', 50, 1)
user << "<span class='notice'>[src] can now be concealed.</span>" user << "<span class='notice'>[src] can now be concealed.</span>"
reflect_chance = 0 reflect_chance = 0
add_fingerprint(user) add_fingerprint(user)

View File

@@ -76,15 +76,13 @@
pixel_x = -16 pixel_x = -16
/mob/living/carbon/alien/humanoid/queen/large/update_icons() /mob/living/carbon/alien/humanoid/queen/large/update_icons()
lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again
update_hud() //TODO: remove the need for this to be here update_hud() //TODO: remove the need for this to be here
overlays.Cut() overlays.Cut()
if(lying) if(stat == DEAD)
if(resting) icon_state = "queen_sleep" icon_state = "queen_dead"
else icon_state = "queen_l" else if(stat == UNCONSCIOUS || lying || resting)
for(var/image/I in overlays_lying) icon_state = "queen_sleep"
overlays += I
else else
icon_state = "queen_s" icon_state = "queen_s"
for(var/image/I in overlays_standing) for(var/image/I in overlays_standing)
overlays += I overlays += I

View File

@@ -6,35 +6,26 @@
///////////////////////////////// /////////////////////////////////
/mob/living/carbon/alien/humanoid /mob/living/carbon/alien/humanoid
var/list/overlays_lying[X_TOTAL_LAYERS]
var/list/overlays_standing[X_TOTAL_LAYERS] var/list/overlays_standing[X_TOTAL_LAYERS]
/mob/living/carbon/alien/humanoid/update_icons() /mob/living/carbon/alien/humanoid/update_icons()
lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again
update_hud() //TODO: remove the need for this to be here update_hud() //TODO: remove the need for this to be here
overlays.Cut() overlays.Cut()
for(var/image/I in overlays_standing)
overlays += I
if(stat == DEAD) if(stat == DEAD)
//If we mostly took damage from fire //If we mostly took damage from fire
if(fireloss > 125) if(fireloss > 125)
icon_state = "alien[caste]_husked" icon_state = "alien[caste]_husked"
else else
icon_state = "alien[caste]_dead" icon_state = "alien[caste]_dead"
for(var/image/I in overlays_lying) else if(stat == UNCONSCIOUS || lying || resting)
overlays += I icon_state = "alien[caste]_sleep"
else if(lying) else if(m_intent == "run")
if(resting) icon_state = "alien[caste]_running"
icon_state = "alien[caste]_sleep"
else if(stat == UNCONSCIOUS)
icon_state = "alien[caste]_unconscious"
else
icon_state = "alien[caste]_l"
for(var/image/I in overlays_lying)
overlays += I
else else
if(m_intent == "run") icon_state = "alien[caste]_running" icon_state = "alien[caste]_s"
else icon_state = "alien[caste]_s"
for(var/image/I in overlays_standing)
overlays += I
/mob/living/carbon/alien/humanoid/regenerate_icons() /mob/living/carbon/alien/humanoid/regenerate_icons()
..() ..()
@@ -44,8 +35,16 @@
update_inv_l_hand(0) update_inv_l_hand(0)
update_inv_pockets(0) update_inv_pockets(0)
update_hud() update_hud()
update_icons() // update_icons() //Handled in update_transform(), leaving this here as a reminder
update_fire() update_fire()
update_transform()
/mob/living/carbon/alien/humanoid/update_transform() //The old method of updating lying/standing was update_icons(). Aliens still expect that.
if(lying > 0)
lying = 90 //Anything else looks retarded
update_icons()
..()
/mob/living/carbon/alien/humanoid/update_hud() /mob/living/carbon/alien/humanoid/update_hud()
if(client) if(client)
@@ -87,18 +86,12 @@
update_icons() update_icons()
/mob/living/carbon/alien/humanoid/update_fire() /mob/living/carbon/alien/humanoid/update_fire()
overlays -= overlays_lying[X_FIRE_LAYER]
overlays -= overlays_standing[X_FIRE_LAYER] overlays -= overlays_standing[X_FIRE_LAYER]
if(on_fire) if(on_fire)
overlays_lying[X_FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Lying", "layer"= -X_FIRE_LAYER)
overlays_standing[X_FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Standing", "layer"= -X_FIRE_LAYER) overlays_standing[X_FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Standing", "layer"= -X_FIRE_LAYER)
if(src.lying) overlays += overlays_standing[X_FIRE_LAYER]
overlays += overlays_lying[X_FIRE_LAYER]
else
overlays += overlays_standing[X_FIRE_LAYER]
return return
else else
overlays_lying[X_FIRE_LAYER] = null
overlays_standing[X_FIRE_LAYER] = null overlays_standing[X_FIRE_LAYER] = null
//Xeno Overlays Indexes////////// //Xeno Overlays Indexes//////////

View File

@@ -12,11 +12,14 @@
if(stat == DEAD) if(stat == DEAD)
icon_state = "larva[state]_dead" icon_state = "larva[state]_dead"
else if (handcuffed || legcuffed) else if (handcuffed || legcuffed) //This should be an overlay. Who made this an icon_state?
icon_state = "larva[state]_cuff" icon_state = "larva[state]_cuff"
else if(stat == UNCONSCIOUS || lying || resting)
icon_state = "larva[state]_sleep"
else if (stunned) else if (stunned)
icon_state = "larva[state]_stun" icon_state = "larva[state]_stun"
else if(lying || resting)
icon_state = "larva[state]_sleep"
else else
icon_state = "larva[state]" icon_state = "larva[state]"
/mob/living/carbon/alien/larva/update_transform() //All this is handled in update_icons()
return update_icons()

View File

@@ -3,12 +3,9 @@
/////////////////////// ///////////////////////
/* Keep these comments up-to-date if you -insist- on hurting my code-baby ;_; /* Keep these comments up-to-date if you -insist- on hurting my code-baby ;_;
This system allows you to update individual mob-overlays, without regenerating them all each time. This system allows you to update individual mob-overlays, without regenerating them all each time.
When we generate overlays we do not generate either lying or standing, as used to happen. When we generate overlays we generate the standing version and then rotate the mob as necessary..
Instead, we generate both standing and lying stances and store them in two fixed-length lists,
both using the same list-index. (The index values are defines within this file.
As of the time of writing there are 20 layers within this list. Please try to keep this from increasing. As of the time of writing there are 20 layers within this list. Please try to keep this from increasing. //22 and counting, good job guys
var/overlays_lying[20] //For the lying down stance
var/overlays_standing[20] //For the standing stance var/overlays_standing[20] //For the standing stance
Most of the time we only wish to update one overlay: Most of the time we only wish to update one overlay:
@@ -21,10 +18,7 @@ the appropriate update_X proc.
Note: Recent changes by aranclanos+carn: Note: Recent changes by aranclanos+carn:
update_icons() no longer needs to be called. update_icons() no longer needs to be called.
This unfortunately means that cloaking is not working properly at time of writing, the system is easier to use. update_icons() should not be called unless you absolutely -know- you need it.
however the system is easier to use. update_icons() should not be called unless you absolutely -know- you need it.
One such example would be when var/lying changes state (because every overlay needs to be updated, but not regenerated). In these
very specific cases, update_icons() will be faster than calling each update_X proc individually.
IN ALL OTHER CASES it's better to just call the specific update_X procs. IN ALL OTHER CASES it's better to just call the specific update_X procs.
All of this means that this code is more maintainable, faster and still fairly easy to use. All of this means that this code is more maintainable, faster and still fairly easy to use.
@@ -58,6 +52,7 @@ There are several things that need to be remembered:
If you have any questions/constructive-comments/bugs-to-report If you have any questions/constructive-comments/bugs-to-report
Please contact me on #coderbus IRC. ~Carnie x Please contact me on #coderbus IRC. ~Carnie x
//Carn can sometimes be hard to reach now. However IRC is still your best bet for getting help.
*/ */
//Human Overlays Indexes///////// //Human Overlays Indexes/////////
@@ -85,9 +80,7 @@ Please contact me on #coderbus IRC. ~Carnie x
#define FIRE_LAYER 1 //If you're on fire #define FIRE_LAYER 1 //If you're on fire
#define TOTAL_LAYERS 22 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_; #define TOTAL_LAYERS 22 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
////////////////////////////////// //////////////////////////////////
/mob/living/carbon/human /mob/living/carbon/human
var/list/overlays_lying[TOTAL_LAYERS]
var/list/overlays_standing[TOTAL_LAYERS] var/list/overlays_standing[TOTAL_LAYERS]
/mob/living/carbon/human/proc/update_base_icon_state() /mob/living/carbon/human/proc/update_base_icon_state()
@@ -102,37 +95,32 @@ Please contact me on #coderbus IRC. ~Carnie x
base_icon_state = "husk" base_icon_state = "husk"
else else
base_icon_state = "[skin_tone]_[(gender == FEMALE) ? "f" : "m"]" base_icon_state = "[skin_tone]_[(gender == FEMALE) ? "f" : "m"]"
icon_state = "[base_icon_state]_s"
/mob/living/carbon/human/proc/apply_overlay(cache_index) /mob/living/carbon/human/proc/apply_overlay(cache_index)
var/image/I = lying ? overlays_lying[cache_index] : overlays_standing[cache_index] var/image/I = overlays_standing[cache_index]
if(I) if(I)
overlays += I overlays += I
/mob/living/carbon/human/proc/remove_overlay(cache_index) /mob/living/carbon/human/proc/remove_overlay(cache_index)
if(overlays_lying[cache_index])
overlays -= overlays_lying[cache_index]
overlays_lying[cache_index] = null
if(overlays_standing[cache_index]) if(overlays_standing[cache_index])
overlays -= overlays_standing[cache_index] overlays -= overlays_standing[cache_index]
overlays_standing[cache_index] = null overlays_standing[cache_index] = null
//UPDATES OVERLAYS FROM OVERLAYS_LYING/OVERLAYS_STANDING //UPDATES OVERLAYS FROM OVERLAYS_STANDING
//TODO: Remove all instances where this proc is called. It used to be the fastest way to swap between standing/lying.
/mob/living/carbon/human/update_icons() /mob/living/carbon/human/update_icons()
lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again
update_hud() //TODO: remove the need for this
overlays.Cut()
if(lying) //can't be cloaked whilst lying down update_hud() //TODO: remove the need for this
icon_state = "[base_icon_state]_l"
for(var/thing in overlays_lying) if(overlays.len != overlays_standing.len)
if(thing) overlays += thing overlays.Cut()
else
icon_state = "[base_icon_state]_s"
for(var/thing in overlays_standing) for(var/thing in overlays_standing)
if(thing) overlays += thing if(thing) overlays += thing
update_transform()
//DAMAGE OVERLAYS //DAMAGE OVERLAYS
@@ -141,17 +129,13 @@ Please contact me on #coderbus IRC. ~Carnie x
remove_overlay(DAMAGE_LAYER) remove_overlay(DAMAGE_LAYER)
var/image/standing = image("icon"='icons/mob/dam_human.dmi', "icon_state"="blank", "layer"=-DAMAGE_LAYER) var/image/standing = image("icon"='icons/mob/dam_human.dmi', "icon_state"="blank", "layer"=-DAMAGE_LAYER)
var/image/lying = image("icon"='icons/mob/dam_human.dmi', "icon_state"="blank2", "layer"=-DAMAGE_LAYER)
overlays_standing[DAMAGE_LAYER] = standing overlays_standing[DAMAGE_LAYER] = standing
overlays_lying[DAMAGE_LAYER] = lying
for(var/obj/item/organ/limb/O in organs) for(var/obj/item/organ/limb/O in organs)
if(O.brutestate) if(O.brutestate)
standing.overlays += "[O.icon_state]_[O.brutestate]0" //we're adding icon_states of the base image as overlays //made icon_name redundant - RR standing.overlays += "[O.icon]_[O.brutestate]0" //we're adding icon_states of the base image as overlays
lying.overlays += "[O.icon_state]2_[O.brutestate]0"
if(O.burnstate) if(O.burnstate)
standing.overlays += "[O.icon_state]_0[O.burnstate]" standing.overlays += "[O.icon]_0[O.burnstate]"
lying.overlays += "[O.icon_state]2_0[O.burnstate]"
apply_overlay(DAMAGE_LAYER) apply_overlay(DAMAGE_LAYER)
@@ -168,46 +152,30 @@ Please contact me on #coderbus IRC. ~Carnie x
//base icons //base icons
var/datum/sprite_accessory/S var/datum/sprite_accessory/S
var/list/standing = list() var/list/standing = list()
var/list/lying = list()
if(facial_hair_style) if(facial_hair_style)
S = facial_hair_styles_list[facial_hair_style] S = facial_hair_styles_list[facial_hair_style]
if(S) if(S)
var/icon/facial_s = icon("icon"=S.icon, "icon_state"="[S.icon_state]_s") var/image/img_facial_s = image("icon" = S.icon, "icon_state" = "[S.icon_state]_s", "layer" = -HAIR_LAYER)
var/icon/facial_l = icon("icon"=S.icon, "icon_state"="[S.icon_state]_l")
var/image/img_facial_s = image("icon"=facial_s, "layer"=-HAIR_LAYER)
var/image/img_facial_l = image("icon"=facial_l, "layer"=-HAIR_LAYER)
var/new_color = "#" + facial_hair_color var/new_color = "#" + facial_hair_color
img_facial_l.color = new_color
img_facial_s.color = new_color img_facial_s.color = new_color
standing += img_facial_s standing += img_facial_s
lying += img_facial_l
//Applies the debrained overlay if there is no brain //Applies the debrained overlay if there is no brain
if(!getorgan(/obj/item/organ/brain)) if(!getorgan(/obj/item/organ/brain))
standing += image("icon"='icons/mob/human_face.dmi', "icon_state"="debrained_s", "layer"=-HAIR_LAYER) standing += image("icon"='icons/mob/human_face.dmi', "icon_state" = "debrained_s", "layer" = -HAIR_LAYER)
lying += image("icon"='icons/mob/human_face.dmi', "icon_state"="debrained_l", "layer"=-HAIR_LAYER)
else if(hair_style) else if(hair_style)
S = hair_styles_list[hair_style] S = hair_styles_list[hair_style]
if(S) if(S)
var/icon/hair_s = icon("icon"=S.icon, "icon_state"="[S.icon_state]_s") var/image/img_hair_s = image("icon" = S.icon, "icon_state" = "[S.icon_state]_s", "layer" = -HAIR_LAYER)
var/icon/hair_l = icon("icon"=S.icon, "icon_state"="[S.icon_state]_l")
var/image/img_hair_s = image("icon"=hair_s, "layer"=-HAIR_LAYER)
var/image/img_hair_l = image("icon"=hair_l, "layer"=-HAIR_LAYER)
var/new_color = "#" + hair_color var/new_color = "#" + hair_color
img_hair_s.color = new_color img_hair_s.color = new_color
img_hair_l.color = new_color
standing += img_hair_s standing += img_hair_s
lying += img_hair_l
if(lying.len)
overlays_lying[HAIR_LAYER] = lying
if(standing.len) if(standing.len)
overlays_standing[HAIR_LAYER] = standing overlays_standing[HAIR_LAYER] = standing
@@ -218,25 +186,18 @@ Please contact me on #coderbus IRC. ~Carnie x
remove_overlay(MUTATIONS_LAYER) remove_overlay(MUTATIONS_LAYER)
var/list/standing = list() var/list/standing = list()
var/list/lying = list()
var/g = (gender == FEMALE) ? "f" : "m" var/g = (gender == FEMALE) ? "f" : "m"
for(var/mut in mutations) for(var/mut in mutations)
switch(mut) switch(mut)
if(HULK) if(HULK)
lying += image("icon"='icons/effects/genetics.dmi', "icon_state"="hulk_[g]_l", "layer"=-MUTATIONS_LAYER)
standing += image("icon"='icons/effects/genetics.dmi', "icon_state"="hulk_[g]_s", "layer"=-MUTATIONS_LAYER) standing += image("icon"='icons/effects/genetics.dmi', "icon_state"="hulk_[g]_s", "layer"=-MUTATIONS_LAYER)
if(COLD_RESISTANCE) if(COLD_RESISTANCE)
lying += image("icon"='icons/effects/genetics.dmi', "icon_state"="fire_l", "layer"=-MUTATIONS_LAYER)
standing += image("icon"='icons/effects/genetics.dmi', "icon_state"="fire_s", "layer"=-MUTATIONS_LAYER) standing += image("icon"='icons/effects/genetics.dmi', "icon_state"="fire_s", "layer"=-MUTATIONS_LAYER)
if(TK) if(TK)
lying += image("icon"='icons/effects/genetics.dmi', "icon_state"="telekinesishead_l", "layer"=-MUTATIONS_LAYER)
standing += image("icon"='icons/effects/genetics.dmi', "icon_state"="telekinesishead_s", "layer"=-MUTATIONS_LAYER) standing += image("icon"='icons/effects/genetics.dmi', "icon_state"="telekinesishead_s", "layer"=-MUTATIONS_LAYER)
if(LASER) if(LASER)
lying += image("icon"='icons/effects/genetics.dmi', "icon_state"="lasereyes_l", "layer"=-MUTATIONS_LAYER)
standing += image("icon"='icons/effects/genetics.dmi', "icon_state"="lasereyes_s", "layer"=-MUTATIONS_LAYER) standing += image("icon"='icons/effects/genetics.dmi', "icon_state"="lasereyes_s", "layer"=-MUTATIONS_LAYER)
if(lying.len)
overlays_lying[MUTATIONS_LAYER] = lying
if(standing.len) if(standing.len)
overlays_standing[MUTATIONS_LAYER] = standing overlays_standing[MUTATIONS_LAYER] = standing
@@ -247,41 +208,31 @@ Please contact me on #coderbus IRC. ~Carnie x
remove_overlay(BODY_LAYER) remove_overlay(BODY_LAYER)
update_base_icon_state() update_base_icon_state()
icon_state = "[base_icon_state]_[src.lying ? "l" : "s"]" icon_state = "[base_icon_state]_s"
var/list/lying = list()
var/list/standing = list() var/list/standing = list()
//Mouth (lipstick!) //Mouth (lipstick!)
if(lip_style) if(lip_style)
standing += image("icon"='icons/mob/human_face.dmi', "icon_state"="lips_[lip_style]_s", "layer"=-BODY_LAYER) standing += image("icon"='icons/mob/human_face.dmi', "icon_state"="lips_[lip_style]_s", "layer" = -BODY_LAYER)
lying += image("icon"='icons/mob/human_face.dmi', "icon_state"="lips_[lip_style]_l", "layer"=-BODY_LAYER)
//Eyes //Eyes
if(!dna || dna.mutantrace != "skeleton") if(!dna || dna.mutantrace != "skeleton")
var/icon/eyes_s = icon('icons/mob/human_face.dmi', "eyes_s") var/image/img_eyes_s = image("icon" = 'icons/mob/human_face.dmi', "icon_state" = "eyes_s", "layer" = -BODY_LAYER)
var/icon/eyes_l = icon('icons/mob/human_face.dmi', "eyes_l")
var/image/img_eyes_s = image("icon"=eyes_s, "layer"=-BODY_LAYER)
var/image/img_eyes_l = image("icon"=eyes_l, "layer"=-BODY_LAYER)
var/new_color = "#" + eye_color var/new_color = "#" + eye_color
img_eyes_s.color = new_color img_eyes_s.color = new_color
img_eyes_l.color = new_color
standing += img_eyes_s standing += img_eyes_s
lying += img_eyes_l
//Underwear //Underwear
if(underwear) if(underwear)
var/datum/sprite_accessory/underwear/U = underwear_all[underwear] var/datum/sprite_accessory/underwear/U = underwear_all[underwear]
if(U) if(U)
standing += image("icon"=U.icon, "icon_state"="[U.icon_state]_s", "layer"=-BODY_LAYER) standing += image("icon"=U.icon, "icon_state"="[U.icon_state]_s", "layer"=-BODY_LAYER)
lying += image("icon"=U.icon, "icon_state"="[U.icon_state]_l", "layer"=-BODY_LAYER)
if(lying.len)
overlays_lying[BODY_LAYER] = lying
if(standing.len) if(standing.len)
overlays_standing[BODY_LAYER] = standing overlays_standing[BODY_LAYER] = standing
@@ -292,7 +243,6 @@ Please contact me on #coderbus IRC. ~Carnie x
remove_overlay(FIRE_LAYER) remove_overlay(FIRE_LAYER)
if(on_fire) if(on_fire)
overlays_lying[FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Lying", "layer"=-FIRE_LAYER)
overlays_standing[FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Standing", "layer"=-FIRE_LAYER) overlays_standing[FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Standing", "layer"=-FIRE_LAYER)
apply_overlay(FIRE_LAYER) apply_overlay(FIRE_LAYER)
@@ -301,35 +251,24 @@ Please contact me on #coderbus IRC. ~Carnie x
/mob/living/carbon/human/proc/update_augments() /mob/living/carbon/human/proc/update_augments()
remove_overlay(AUGMENTS_LAYER) remove_overlay(AUGMENTS_LAYER)
var/list/lying = list()
var/list/standing = list() var/list/standing = list()
if(getlimb(/obj/item/organ/limb/robot/r_arm)) if(getlimb(/obj/item/organ/limb/robot/r_arm))
standing += image("icon"='icons/mob/augments.dmi', "icon_state"="r_arm_s", "layer"=-AUGMENTS_LAYER) standing += image("icon"='icons/mob/augments.dmi', "icon_state"="r_arm_s", "layer"=-AUGMENTS_LAYER)
lying += image("icon"='icons/mob/augments.dmi', "icon_state"="r_arm_l", "layer"=-AUGMENTS_LAYER)
if(getlimb(/obj/item/organ/limb/robot/l_arm)) if(getlimb(/obj/item/organ/limb/robot/l_arm))
standing += image("icon"='icons/mob/augments.dmi', "icon_state"="l_arm_s", "layer"=-AUGMENTS_LAYER) standing += image("icon"='icons/mob/augments.dmi', "icon_state"="l_arm_s", "layer"=-AUGMENTS_LAYER)
lying += image("icon"='icons/mob/augments.dmi', "icon_state"="l_arm_l", "layer"=-AUGMENTS_LAYER)
if(getlimb(/obj/item/organ/limb/robot/r_leg)) if(getlimb(/obj/item/organ/limb/robot/r_leg))
standing += image("icon"='icons/mob/augments.dmi', "icon_state"="r_leg_s", "layer"=-AUGMENTS_LAYER) standing += image("icon"='icons/mob/augments.dmi', "icon_state"="r_leg_s", "layer"=-AUGMENTS_LAYER)
lying += image("icon"='icons/mob/augments.dmi', "icon_state"="r_leg_l", "layer"=-AUGMENTS_LAYER)
if(getlimb(/obj/item/organ/limb/robot/l_leg)) if(getlimb(/obj/item/organ/limb/robot/l_leg))
standing += image("icon"='icons/mob/augments.dmi', "icon_state"="l_leg_s", "layer"=-AUGMENTS_LAYER) standing += image("icon"='icons/mob/augments.dmi', "icon_state"="l_leg_s", "layer"=-AUGMENTS_LAYER)
lying += image("icon"='icons/mob/augments.dmi', "icon_state"="l_leg_l", "layer"=-AUGMENTS_LAYER)
if(getlimb(/obj/item/organ/limb/robot/chest)) if(getlimb(/obj/item/organ/limb/robot/chest))
standing += image("icon"='icons/mob/augments.dmi', "icon_state"="chest_s", "layer"=-AUGMENTS_LAYER) standing += image("icon"='icons/mob/augments.dmi', "icon_state"="chest_s", "layer"=-AUGMENTS_LAYER)
lying += image("icon"='icons/mob/augments.dmi', "icon_state"="chest_l", "layer"=-AUGMENTS_LAYER)
if(getlimb(/obj/item/organ/limb/robot/head)) if(getlimb(/obj/item/organ/limb/robot/head))
standing += image("icon"='icons/mob/augments.dmi', "icon_state"="head_s", "layer"=-AUGMENTS_LAYER) standing += image("icon"='icons/mob/augments.dmi', "icon_state"="head_s", "layer"=-AUGMENTS_LAYER)
lying += image("icon"='icons/mob/augments.dmi', "icon_state"="head_l", "layer"=-AUGMENTS_LAYER)
if(lying.len)
overlays_lying[AUGMENTS_LAYER] = lying
if(standing.len) if(standing.len)
overlays_standing[AUGMENTS_LAYER] = standing overlays_standing[AUGMENTS_LAYER] = standing
@@ -363,6 +302,7 @@ Please contact me on #coderbus IRC. ~Carnie x
update_inv_legcuffed() update_inv_legcuffed()
update_inv_pockets() update_inv_pockets()
update_fire() update_fire()
update_transform()
//Hud Stuff //Hud Stuff
update_hud() update_hud()
@@ -380,12 +320,9 @@ Please contact me on #coderbus IRC. ~Carnie x
var/t_color = w_uniform.item_color var/t_color = w_uniform.item_color
if(!t_color) t_color = icon_state if(!t_color) t_color = icon_state
var/image/lying = image("icon"='icons/mob/uniform.dmi', "icon_state"="[t_color]_l", "layer"=-UNIFORM_LAYER)
var/image/standing = image("icon"='icons/mob/uniform.dmi', "icon_state"="[t_color]_s", "layer"=-UNIFORM_LAYER) var/image/standing = image("icon"='icons/mob/uniform.dmi', "icon_state"="[t_color]_s", "layer"=-UNIFORM_LAYER)
overlays_lying[UNIFORM_LAYER] = lying
overlays_standing[UNIFORM_LAYER] = standing overlays_standing[UNIFORM_LAYER] = standing
var/G = (gender == FEMALE) ? "f" : "m" var/G = (gender == FEMALE) ? "f" : "m"
if(G == "f" && U.fitted == 1) if(G == "f" && U.fitted == 1)
var/index = "[t_color]_s" var/index = "[t_color]_s"
@@ -396,13 +333,11 @@ Please contact me on #coderbus IRC. ~Carnie x
overlays_standing[UNIFORM_LAYER] = standing overlays_standing[UNIFORM_LAYER] = standing
if(w_uniform.blood_DNA) if(w_uniform.blood_DNA)
lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="uniformblood2")
standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="uniformblood") standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="uniformblood")
if(U.hastie) if(U.hastie)
var/tie_color = U.hastie.item_color var/tie_color = U.hastie.item_color
if(!tie_color) tie_color = U.hastie.icon_state if(!tie_color) tie_color = U.hastie.icon_state
lying.overlays += image("icon"='icons/mob/ties.dmi', "icon_state"="[tie_color]2")
standing.overlays += image("icon"='icons/mob/ties.dmi', "icon_state"="[tie_color]") standing.overlays += image("icon"='icons/mob/ties.dmi', "icon_state"="[tie_color]")
else else
// Automatically drop anything in store / id / belt if you're not wearing a uniform. //CHECK IF NECESARRY // Automatically drop anything in store / id / belt if you're not wearing a uniform. //CHECK IF NECESARRY
@@ -419,7 +354,6 @@ Please contact me on #coderbus IRC. ~Carnie x
wear_id.screen_loc = ui_id //TODO wear_id.screen_loc = ui_id //TODO
client.screen += wear_id client.screen += wear_id
overlays_lying[ID_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="id2", "layer"=-ID_LAYER)
overlays_standing[ID_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="id", "layer"=-ID_LAYER) overlays_standing[ID_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="id", "layer"=-ID_LAYER)
apply_overlay(ID_LAYER) apply_overlay(ID_LAYER)
@@ -434,17 +368,13 @@ Please contact me on #coderbus IRC. ~Carnie x
var/t_state = gloves.item_state var/t_state = gloves.item_state
if(!t_state) t_state = gloves.icon_state if(!t_state) t_state = gloves.icon_state
var/image/lying = image("icon"='icons/mob/hands.dmi', "icon_state"="[t_state]2", "layer"=-GLOVES_LAYER)
var/image/standing = image("icon"='icons/mob/hands.dmi', "icon_state"="[t_state]", "layer"=-GLOVES_LAYER) var/image/standing = image("icon"='icons/mob/hands.dmi', "icon_state"="[t_state]", "layer"=-GLOVES_LAYER)
overlays_lying[GLOVES_LAYER] = lying
overlays_standing[GLOVES_LAYER] = standing overlays_standing[GLOVES_LAYER] = standing
if(gloves.blood_DNA) if(gloves.blood_DNA)
lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands2")
standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands") standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands")
else else
if(blood_DNA) if(blood_DNA)
overlays_lying[GLOVES_LAYER] = image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands2")
overlays_standing[GLOVES_LAYER] = image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands") overlays_standing[GLOVES_LAYER] = image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands")
apply_overlay(GLOVES_LAYER) apply_overlay(GLOVES_LAYER)
@@ -459,7 +389,6 @@ Please contact me on #coderbus IRC. ~Carnie x
glasses.screen_loc = ui_glasses glasses.screen_loc = ui_glasses
client.screen += glasses client.screen += glasses
overlays_lying[GLASSES_LAYER] = image("icon"='icons/mob/eyes.dmi', "icon_state"="[glasses.icon_state]2", "layer"=-GLASSES_LAYER)
overlays_standing[GLASSES_LAYER] = image("icon"='icons/mob/eyes.dmi', "icon_state"="[glasses.icon_state]", "layer"=-GLASSES_LAYER) overlays_standing[GLASSES_LAYER] = image("icon"='icons/mob/eyes.dmi', "icon_state"="[glasses.icon_state]", "layer"=-GLASSES_LAYER)
apply_overlay(GLASSES_LAYER) apply_overlay(GLASSES_LAYER)
@@ -473,7 +402,6 @@ Please contact me on #coderbus IRC. ~Carnie x
ears.screen_loc = ui_ears ears.screen_loc = ui_ears
client.screen += ears client.screen += ears
overlays_lying[EARS_LAYER] = image("icon"='icons/mob/ears.dmi', "icon_state"="[ears.icon_state]2", "layer"=-EARS_LAYER)
overlays_standing[EARS_LAYER] = image("icon"='icons/mob/ears.dmi', "icon_state"="[ears.icon_state]", "layer"=-EARS_LAYER) overlays_standing[EARS_LAYER] = image("icon"='icons/mob/ears.dmi', "icon_state"="[ears.icon_state]", "layer"=-EARS_LAYER)
apply_overlay(EARS_LAYER) apply_overlay(EARS_LAYER)
@@ -487,13 +415,10 @@ Please contact me on #coderbus IRC. ~Carnie x
shoes.screen_loc = ui_shoes shoes.screen_loc = ui_shoes
client.screen += shoes client.screen += shoes
var/image/lying = image("icon"='icons/mob/feet.dmi', "icon_state"="[shoes.icon_state]2", "layer"=-SHOES_LAYER)
var/image/standing = image("icon"='icons/mob/feet.dmi', "icon_state"="[shoes.icon_state]", "layer"=-SHOES_LAYER) var/image/standing = image("icon"='icons/mob/feet.dmi', "icon_state"="[shoes.icon_state]", "layer"=-SHOES_LAYER)
overlays_lying[SHOES_LAYER] = lying
overlays_standing[SHOES_LAYER] = standing overlays_standing[SHOES_LAYER] = standing
if(shoes.blood_DNA) if(shoes.blood_DNA)
lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="shoeblood2")
standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="shoeblood") standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="shoeblood")
apply_overlay(SHOES_LAYER) apply_overlay(SHOES_LAYER)
@@ -509,7 +434,6 @@ Please contact me on #coderbus IRC. ~Carnie x
var/t_state = s_store.item_state var/t_state = s_store.item_state
if(!t_state) t_state = s_store.icon_state if(!t_state) t_state = s_store.icon_state
overlays_lying[SUIT_STORE_LAYER] = image("icon"='icons/mob/belt_mirror.dmi', "icon_state"="[t_state]2", "layer"=-SUIT_STORE_LAYER)
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] = image("icon"='icons/mob/belt_mirror.dmi', "icon_state"="[t_state]", "layer"=-SUIT_STORE_LAYER)
apply_overlay(SUIT_STORE_LAYER) apply_overlay(SUIT_STORE_LAYER)
@@ -524,14 +448,11 @@ Please contact me on #coderbus IRC. ~Carnie x
head.screen_loc = ui_head //TODO head.screen_loc = ui_head //TODO
client.screen += head client.screen += head
var/image/lying = image("icon"='icons/mob/head.dmi', "icon_state"="[head.icon_state]2", "layer"=-HEAD_LAYER)
var/image/standing = image("icon"='icons/mob/head.dmi', "icon_state"="[head.icon_state]", "layer"=-HEAD_LAYER) var/image/standing = image("icon"='icons/mob/head.dmi', "icon_state"="[head.icon_state]", "layer"=-HEAD_LAYER)
overlays_lying[HEAD_LAYER] = lying
overlays_standing[HEAD_LAYER] = standing overlays_standing[HEAD_LAYER] = standing
if(head.blood_DNA) if(head.blood_DNA)
lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="helmetblood2")
standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="helmetblood") standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="helmetblood")
apply_overlay(HEAD_LAYER) apply_overlay(HEAD_LAYER)
@@ -547,7 +468,6 @@ Please contact me on #coderbus IRC. ~Carnie x
var/t_state = belt.item_state var/t_state = belt.item_state
if(!t_state) t_state = belt.icon_state if(!t_state) t_state = belt.icon_state
overlays_lying[BELT_LAYER] = image("icon"='icons/mob/belt.dmi', "icon_state"="[t_state]2", "layer"=-BELT_LAYER)
overlays_standing[BELT_LAYER] = image("icon"='icons/mob/belt.dmi', "icon_state"="[t_state]", "layer"=-BELT_LAYER) overlays_standing[BELT_LAYER] = image("icon"='icons/mob/belt.dmi', "icon_state"="[t_state]", "layer"=-BELT_LAYER)
apply_overlay(BELT_LAYER) apply_overlay(BELT_LAYER)
@@ -562,9 +482,7 @@ Please contact me on #coderbus IRC. ~Carnie x
wear_suit.screen_loc = ui_oclothing //TODO wear_suit.screen_loc = ui_oclothing //TODO
client.screen += wear_suit client.screen += wear_suit
var/image/lying = image("icon"='icons/mob/suit.dmi', "icon_state"="[wear_suit.icon_state]2", "layer"=-SUIT_LAYER)
var/image/standing = image("icon"='icons/mob/suit.dmi', "icon_state"="[wear_suit.icon_state]", "layer"=-SUIT_LAYER) var/image/standing = image("icon"='icons/mob/suit.dmi', "icon_state"="[wear_suit.icon_state]", "layer"=-SUIT_LAYER)
overlays_lying[SUIT_LAYER] = lying
overlays_standing[SUIT_LAYER] = standing overlays_standing[SUIT_LAYER] = standing
if(istype(wear_suit, /obj/item/clothing/suit/straight_jacket)) if(istype(wear_suit, /obj/item/clothing/suit/straight_jacket))
@@ -574,7 +492,6 @@ Please contact me on #coderbus IRC. ~Carnie x
if(wear_suit.blood_DNA) if(wear_suit.blood_DNA)
var/obj/item/clothing/suit/S = wear_suit var/obj/item/clothing/suit/S = wear_suit
lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="[S.blood_overlay_type]blood2")
standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="[S.blood_overlay_type]blood") standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="[S.blood_overlay_type]blood")
apply_overlay(SUIT_LAYER) apply_overlay(SUIT_LAYER)
@@ -599,15 +516,13 @@ Please contact me on #coderbus IRC. ~Carnie x
wear_mask.screen_loc = ui_mask //TODO wear_mask.screen_loc = ui_mask //TODO
client.screen += wear_mask client.screen += wear_mask
var/image/lying = image("icon"='icons/mob/mask.dmi', "icon_state"="[wear_mask.icon_state]2", "layer"=-FACEMASK_LAYER)
var/image/standing = image("icon"='icons/mob/mask.dmi', "icon_state"="[wear_mask.icon_state]", "layer"=-FACEMASK_LAYER) var/image/standing = image("icon"='icons/mob/mask.dmi', "icon_state"="[wear_mask.icon_state]", "layer"=-FACEMASK_LAYER)
overlays_lying[FACEMASK_LAYER] = lying
overlays_standing[FACEMASK_LAYER] = standing overlays_standing[FACEMASK_LAYER] = standing
if(wear_mask.blood_DNA && !istype(wear_mask, /obj/item/clothing/mask/cigarette)) if(wear_mask.blood_DNA && !istype(wear_mask, /obj/item/clothing/mask/cigarette))
lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood2")
standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood") standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood")
apply_overlay(FACEMASK_LAYER) apply_overlay(FACEMASK_LAYER)
@@ -620,7 +535,6 @@ Please contact me on #coderbus IRC. ~Carnie x
back.screen_loc = ui_back //TODO back.screen_loc = ui_back //TODO
client.screen += back client.screen += back
overlays_lying[BACK_LAYER] = image("icon"='icons/mob/back.dmi', "icon_state"="[back.icon_state]2", "layer"=-BACK_LAYER)
overlays_standing[BACK_LAYER] = image("icon"='icons/mob/back.dmi', "icon_state"="[back.icon_state]", "layer"=-BACK_LAYER) overlays_standing[BACK_LAYER] = image("icon"='icons/mob/back.dmi', "icon_state"="[back.icon_state]", "layer"=-BACK_LAYER)
apply_overlay(BACK_LAYER) apply_overlay(BACK_LAYER)
@@ -647,7 +561,6 @@ Please contact me on #coderbus IRC. ~Carnie x
R.overlays += image("icon"='icons/mob/screen_gen.dmi', "icon_state"="markus") R.overlays += image("icon"='icons/mob/screen_gen.dmi', "icon_state"="markus")
L.overlays += image("icon"='icons/mob/screen_gen.dmi', "icon_state"="gabrielle") L.overlays += image("icon"='icons/mob/screen_gen.dmi', "icon_state"="gabrielle")
overlays_lying[HANDCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="handcuff2", "layer"=-HANDCUFF_LAYER)
overlays_standing[HANDCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="handcuff1", "layer"=-HANDCUFF_LAYER) overlays_standing[HANDCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="handcuff1", "layer"=-HANDCUFF_LAYER)
else else
if(hud_used) if(hud_used)
@@ -663,7 +576,6 @@ Please contact me on #coderbus IRC. ~Carnie x
remove_overlay(LEGCUFF_LAYER) remove_overlay(LEGCUFF_LAYER)
if(legcuffed) if(legcuffed)
overlays_lying[LEGCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="legcuff2", "layer"=-LEGCUFF_LAYER)
overlays_standing[LEGCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="legcuff1", "layer"=-LEGCUFF_LAYER) overlays_standing[LEGCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="legcuff1", "layer"=-LEGCUFF_LAYER)
apply_overlay(LEGCUFF_LAYER) apply_overlay(LEGCUFF_LAYER)

View File

@@ -5,8 +5,10 @@
M.colour = colour M.colour = colour
M.rabid = 1 M.rabid = 1
is_adult = 0 is_adult = 0
maxHealth = 150
revive()
regenerate_icons() regenerate_icons()
health = maxHealth name = "[colour] [is_adult ? "adult" : "baby"] slime ([rand(1, 1000)])"
return return
if(stat == DEAD) return if(stat == DEAD) return

View File

@@ -55,7 +55,8 @@
icon_state = "[colour] [is_adult ? "adult" : "baby"] slime" icon_state = "[colour] [is_adult ? "adult" : "baby"] slime"
real_name = name real_name = name
slime_mutation = mutation_table(colour) slime_mutation = mutation_table(colour)
coretype = text2path("/obj/item/slime_extract/[colour]") var/sanitizedcolour = replacetext(colour, " ", "")
coretype = text2path("/obj/item/slime_extract/[sanitizedcolour]")
..() ..()
/mob/living/carbon/slime/regenerate_icons() /mob/living/carbon/slime/regenerate_icons()

View File

@@ -208,7 +208,7 @@
M.colour = colour M.colour = colour
else else
M.colour = slime_mutation[rand(1,4)] M.colour = slime_mutation[rand(1,4)]
M.nutrition = new_nutrition if(ckey) M.nutrition = new_nutrition //Player slimes are more robust at spliting. Once an oversight of poor copypasta, now a feature!
M.powerlevel = new_powerlevel M.powerlevel = new_powerlevel
if(i != 1) step_away(M,src) if(i != 1) step_away(M,src)
babies += M babies += M

View File

@@ -9,8 +9,8 @@ proc/mutation_table(var/colour)
slime_mutation[4] = "purple" slime_mutation[4] = "purple"
//Tier 2 //Tier 2
if("purple") if("purple")
slime_mutation[1] = "darkpurple" slime_mutation[1] = "dark purple"
slime_mutation[2] = "darkblue" slime_mutation[2] = "dark blue"
slime_mutation[3] = "green" slime_mutation[3] = "green"
slime_mutation[4] = "green" slime_mutation[4] = "green"
if("metal") if("metal")
@@ -21,20 +21,20 @@ proc/mutation_table(var/colour)
if("yellow") if("yellow")
slime_mutation[1] = "red" slime_mutation[1] = "red"
slime_mutation[2] = "red" slime_mutation[2] = "red"
slime_mutation[3] = "darkpurple" slime_mutation[3] = "dark purple"
slime_mutation[4] = "yellow" slime_mutation[4] = "yellow"
if("blue") if("blue")
slime_mutation[1] = "darkblue" slime_mutation[1] = "dark blue"
slime_mutation[2] = "pink" slime_mutation[2] = "pink"
slime_mutation[3] = "pink" slime_mutation[3] = "pink"
slime_mutation[4] = "silver" slime_mutation[4] = "silver"
//Tier 3 //Tier 3
if("darkblue") if("dark blue")
slime_mutation[1] = "purple" slime_mutation[1] = "purple"
slime_mutation[2] = "cerulean" slime_mutation[2] = "cerulean"
slime_mutation[3] = "blue" slime_mutation[3] = "blue"
slime_mutation[4] = "cerulean" slime_mutation[4] = "cerulean"
if("darkpurple") if("dark purple")
slime_mutation[1] = "purple" slime_mutation[1] = "purple"
slime_mutation[2] = "sepia" slime_mutation[2] = "sepia"
slime_mutation[3] = "orange" slime_mutation[3] = "orange"
@@ -53,8 +53,8 @@ proc/mutation_table(var/colour)
if("pink") if("pink")
slime_mutation[1] = "pink" slime_mutation[1] = "pink"
slime_mutation[2] = "pink" slime_mutation[2] = "pink"
slime_mutation[3] = "lightpink" slime_mutation[3] = "light pink"
slime_mutation[4] = "lightpink" slime_mutation[4] = "light pink"
if("red") if("red")
slime_mutation[1] = "red" slime_mutation[1] = "red"
slime_mutation[2] = "red" slime_mutation[2] = "red"

View File

@@ -9,7 +9,6 @@
///////////////////////////////// /////////////////////////////////
/mob/living/carbon/monkey /mob/living/carbon/monkey
var/list/overlays_lying[M_TOTAL_LAYERS]
var/list/overlays_standing[M_TOTAL_LAYERS] var/list/overlays_standing[M_TOTAL_LAYERS]
/mob/living/carbon/monkey/regenerate_icons() /mob/living/carbon/monkey/regenerate_icons()
@@ -21,23 +20,17 @@
update_inv_handcuffed(0) update_inv_handcuffed(0)
update_fire() update_fire()
update_icons() update_icons()
update_transform()
//Hud Stuff //Hud Stuff
update_hud() update_hud()
return return
/mob/living/carbon/monkey/update_icons() /mob/living/carbon/monkey/update_icons()
update_hud() update_hud()
lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again
overlays.Cut() overlays.Cut()
if(lying) icon_state = "monkey1"
icon_state = "monkey0" for(var/image/I in overlays_standing)
for(var/image/I in overlays_lying) overlays += I
overlays += I
else
icon_state = "monkey1"
for(var/image/I in overlays_standing)
overlays += I
//////// ////////
/mob/living/carbon/monkey/update_inv_wear_mask(var/update_icons=1) /mob/living/carbon/monkey/update_inv_wear_mask(var/update_icons=1)
@@ -45,23 +38,14 @@
wear_mask.screen_loc = ui_monkey_mask wear_mask.screen_loc = ui_monkey_mask
if(client && hud_used) if(client && hud_used)
client.screen += wear_mask client.screen += wear_mask
overlays -= overlays_lying[M_MASK_LAYER]
overlays -= overlays_standing[M_MASK_LAYER] overlays -= overlays_standing[M_MASK_LAYER]
var/image/lying = image("icon" = 'icons/mob/monkey.dmi', "icon_state" = "[wear_mask.icon_state]2", "layer" = -M_MASK_LAYER)
var/image/standing = image("icon" = 'icons/mob/monkey.dmi', "icon_state" = "[wear_mask.icon_state]", "layer" = -M_MASK_LAYER) var/image/standing = image("icon" = 'icons/mob/monkey.dmi', "icon_state" = "[wear_mask.icon_state]", "layer" = -M_MASK_LAYER)
if(!istype(wear_mask, /obj/item/clothing/mask/cigarette) && wear_mask.blood_DNA ) if(!istype(wear_mask, /obj/item/clothing/mask/cigarette) && wear_mask.blood_DNA )
lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood2")
standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood") standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood")
overlays_lying[M_MASK_LAYER] = lying
overlays_standing[M_MASK_LAYER] = standing overlays_standing[M_MASK_LAYER] = standing
if(src.lying) overlays += overlays_standing[M_MASK_LAYER]
overlays += overlays_lying[M_MASK_LAYER]
else
overlays += overlays_standing[M_MASK_LAYER]
else else
overlays -= overlays_lying[M_MASK_LAYER]
overlays -= overlays_standing[M_MASK_LAYER] overlays -= overlays_standing[M_MASK_LAYER]
overlays_lying[M_MASK_LAYER] = null
overlays_standing[M_MASK_LAYER] = null overlays_standing[M_MASK_LAYER] = null
if(update_icons) update_icons() if(update_icons) update_icons()
@@ -103,18 +87,11 @@
back.screen_loc = ui_monkey_back back.screen_loc = ui_monkey_back
if(client && hud_used) if(client && hud_used)
client.screen += back client.screen += back
overlays -= overlays_lying[M_BACK_LAYER]
overlays -= overlays_standing[M_BACK_LAYER] overlays -= overlays_standing[M_BACK_LAYER]
overlays_lying[M_BACK_LAYER] = image("icon" = 'icons/mob/back.dmi', "icon_state" = "[back.icon_state]2", "layer" = -M_BACK_LAYER)
overlays_standing[M_BACK_LAYER] = image("icon" = 'icons/mob/back.dmi', "icon_state" = "[back.icon_state]", "layer" = -M_BACK_LAYER) overlays_standing[M_BACK_LAYER] = image("icon" = 'icons/mob/back.dmi', "icon_state" = "[back.icon_state]", "layer" = -M_BACK_LAYER)
if(src.lying) overlays += overlays_standing[M_BACK_LAYER]
overlays += overlays_lying[M_BACK_LAYER]
else
overlays += overlays_standing[M_BACK_LAYER]
else else
overlays -= overlays_lying[M_BACK_LAYER]
overlays -= overlays_standing[M_BACK_LAYER] overlays -= overlays_standing[M_BACK_LAYER]
overlays_lying[M_BACK_LAYER] = null
overlays_standing[M_BACK_LAYER] = null overlays_standing[M_BACK_LAYER] = null
if(update_icons) update_icons() if(update_icons) update_icons()
@@ -129,23 +106,16 @@
var/obj/screen/inventory/L = hud_used.adding[5] var/obj/screen/inventory/L = hud_used.adding[5]
R.overlays += image("icon" = 'icons/mob/screen_gen.dmi', "icon_state" = "markus") R.overlays += image("icon" = 'icons/mob/screen_gen.dmi', "icon_state" = "markus")
L.overlays += image("icon" = 'icons/mob/screen_gen.dmi', "icon_state" = "gabrielle") L.overlays += image("icon" = 'icons/mob/screen_gen.dmi', "icon_state" = "gabrielle")
overlays -= overlays_lying[M_HANDCUFF_LAYER]
overlays -= overlays_standing[M_HANDCUFF_LAYER] overlays -= overlays_standing[M_HANDCUFF_LAYER]
overlays_lying[M_HANDCUFF_LAYER] = image("icon" = 'icons/mob/monkey.dmi', "icon_state" = "handcuff2", "layer" = -M_HANDCUFF_LAYER)
overlays_standing[M_HANDCUFF_LAYER] = image("icon" = 'icons/mob/monkey.dmi', "icon_state" = "handcuff1", "layer" = -M_HANDCUFF_LAYER) overlays_standing[M_HANDCUFF_LAYER] = image("icon" = 'icons/mob/monkey.dmi', "icon_state" = "handcuff1", "layer" = -M_HANDCUFF_LAYER)
if(src.lying) overlays += overlays_standing[M_HANDCUFF_LAYER]
overlays += overlays_lying[M_HANDCUFF_LAYER]
else
overlays += overlays_standing[M_HANDCUFF_LAYER]
else else
if(hud_used) if(hud_used)
var/obj/screen/inventory/R = hud_used.adding[4] var/obj/screen/inventory/R = hud_used.adding[4]
var/obj/screen/inventory/L = hud_used.adding[5] var/obj/screen/inventory/L = hud_used.adding[5]
R.overlays = null R.overlays = null
L.overlays = null L.overlays = null
overlays -= overlays_lying[M_HANDCUFF_LAYER]
overlays -= overlays_standing[M_HANDCUFF_LAYER] overlays -= overlays_standing[M_HANDCUFF_LAYER]
overlays_lying[M_HANDCUFF_LAYER] = null
overlays_standing[M_HANDCUFF_LAYER] = null overlays_standing[M_HANDCUFF_LAYER] = null
if(update_icons) update_icons() if(update_icons) update_icons()
@@ -155,18 +125,12 @@
client.screen |= contents client.screen |= contents
/mob/living/carbon/monkey/update_fire() /mob/living/carbon/monkey/update_fire()
overlays -= overlays_lying[M_FIRE_LAYER]
overlays -= overlays_standing[M_FIRE_LAYER] overlays -= overlays_standing[M_FIRE_LAYER]
if(on_fire) if(on_fire)
overlays_lying[M_FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Lying", "layer"= -M_FIRE_LAYER)
overlays_standing[M_FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Standing", "layer"= -M_FIRE_LAYER) overlays_standing[M_FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Standing", "layer"= -M_FIRE_LAYER)
if(src.lying) overlays += overlays_standing[M_FIRE_LAYER]
overlays += overlays_lying[M_FIRE_LAYER]
else
overlays += overlays_standing[M_FIRE_LAYER]
return return
else else
overlays_lying[M_FIRE_LAYER] = null
overlays_standing[M_FIRE_LAYER] = null overlays_standing[M_FIRE_LAYER] = null

View File

@@ -0,0 +1,21 @@
//LOOK G-MA, I'VE JOINED CARBON PROCS THAT ARE IDENTICAL IN ALL CASES INTO ONE PROC, I'M BETTER THAN LIFE()
//I thought about mob/living but silicons and simple_animals don't want this just yet.
//Right now just handles lying down and cloaking, but could handle other cases later.
//IMPORTANT: Multiple animate() calls do not stack well, so try to do them all at once if you can.
/mob/living/carbon/update_transform()
var/matrix/ntransform = matrix(transform) //aka transform.Copy()
var/final_pixel_y = 0
var/final_dir = dir
var/changed = 0
if(lying != lying_prev)
changed++
ntransform.TurnTo(lying_prev,lying)
lying_prev = lying //so we don't try to animate until there's been another change.
if(lying != 0)
final_pixel_y = -6
if(dir & (EAST|WEST)) //Facing east or west
final_dir = pick(NORTH, SOUTH) //So you fall on your side rather than your face or ass
if(changed)
animate(src, transform = ntransform, time = 2, pixel_y = final_pixel_y, dir = final_dir, easing = EASE_IN|EASE_OUT)

View File

@@ -34,4 +34,4 @@
var/update_slimes = 1 var/update_slimes = 1
var/on_fire = 0 //The "Are we on fire?" var var/on_fire = 0 //The "Are we on fire?" var
var/fire_stacks = 0 //Tracks how many stacks of fire we have on, max is usually 20 var/fire_stacks = 0 //Tracks how many stacks of fire we have on, max is usually 20

View File

@@ -490,7 +490,7 @@
else else
sleep(6) sleep(6)
if(prob(50)) if(prob(50))
emagged = 1 SetEmagged(1)
lawupdate = 0 lawupdate = 0
connected_ai = null connected_ai = null
user << "You emag [src]'s interface." user << "You emag [src]'s interface."
@@ -518,11 +518,6 @@
src << "<b>Obey these laws:</b>" src << "<b>Obey these laws:</b>"
laws.show_laws(src) laws.show_laws(src)
src << "\red \b ALERT: [user.real_name] is your new master. Obey your new laws and his commands." src << "\red \b ALERT: [user.real_name] is your new master. Obey your new laws and his commands."
if(src.module && istype(src.module, /obj/item/weapon/robot_module/miner))
for(var/obj/item/weapon/pickaxe/borgdrill/D in src.module.modules)
del(D)
src.module.modules += new /obj/item/weapon/pickaxe/diamonddrill(src.module)
src.module.rebuild()
updateicon() updateicon()
else else
user << "You fail to [ locked ? "unlock" : "lock"] [src]'s interface." user << "You fail to [ locked ? "unlock" : "lock"] [src]'s interface."
@@ -984,7 +979,17 @@
lockcharge = state lockcharge = state
update_canmove() update_canmove()
/mob/living/silicon/robot/proc/SetEmagged(var/new_state)
emagged = new_state
if(new_state)
if(src.module)
src.module.on_emag()
else
if (module)
uneq_module(module.emag)
if(hud_used)
hud_used.update_robot_modules_display() //Shows/hides the emag item if the inventory screen is already open.
updateicon()
/mob/living/silicon/robot/verb/outputlaws() /mob/living/silicon/robot/verb/outputlaws()
set category = "Robot Commands" set category = "Robot Commands"

View File

@@ -11,24 +11,37 @@
var/obj/item/borg/upgrade/jetpack = null var/obj/item/borg/upgrade/jetpack = null
emp_act(severity) /obj/item/weapon/robot_module/emp_act(severity)
if(modules) if(modules)
for(var/obj/O in modules) for(var/obj/O in modules)
O.emp_act(severity) O.emp_act(severity)
if(emag) if(emag)
emag.emp_act(severity) emag.emp_act(severity)
..() ..()
return return
/obj/item/weapon/robot_module/proc/get_usable_modules()
. = modules.Copy()
var/mob/living/silicon/robot/R = loc
if(R.emagged)
. += emag
/obj/item/weapon/robot_module/proc/get_inactive_modules()
. = list()
var/mob/living/silicon/robot/R = loc
for(var/m in get_usable_modules())
if((m != R.module_state_1) && (m != R.module_state_2) && (m != R.module_state_3))
. += m
New() /obj/item/weapon/robot_module/New()
modules += new /obj/item/device/flashlight(src) modules += new /obj/item/device/flashlight(src)
modules += new /obj/item/device/flash(src) modules += new /obj/item/device/flash(src)
emag = new /obj/item/toy/sword(src) emag = new /obj/item/toy/sword(src)
emag.name = "Placeholder Emag Item" emag.name = "Placeholder Emag Item"
// jetpack = new /obj/item/toy/sword(src) // jetpack = new /obj/item/toy/sword(src)
// jetpack.name = "Placeholder Upgrade Item" // jetpack.name = "Placeholder Upgrade Item"
return return
/obj/item/weapon/robot_module/proc/respawn_consumable(var/mob/living/silicon/robot/R) /obj/item/weapon/robot_module/proc/respawn_consumable(var/mob/living/silicon/robot/R)
@@ -41,6 +54,9 @@
if(O) if(O)
modules += O modules += O
/obj/item/weapon/robot_module/proc/on_emag()
return
/obj/item/weapon/robot_module/standard /obj/item/weapon/robot_module/standard
name = "standard robot module" name = "standard robot module"
@@ -193,12 +209,23 @@
New() New()
..() ..()
var/mob/living/silicon/robot/R = loc
modules += new /obj/item/borg/sight/meson(src) modules += new /obj/item/borg/sight/meson(src)
emag = new /obj/item/borg/stun(src) emag = new /obj/item/borg/stun(src)
modules += new /obj/item/weapon/storage/bag/ore(src) modules += new /obj/item/weapon/storage/bag/ore(src)
modules += new /obj/item/weapon/pickaxe/borgdrill(src) if(R.emagged)
modules += new /obj/item/weapon/pickaxe/diamonddrill(src)
else
modules += new /obj/item/weapon/pickaxe/borgdrill(src)
modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src) modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src)
on_emag()
..()
for(var/obj/item/weapon/pickaxe/borgdrill/D in modules)
del(D)
modules += new /obj/item/weapon/pickaxe/diamonddrill(src)
rebuild()
/obj/item/weapon/robot_module/syndicate /obj/item/weapon/robot_module/syndicate
name = "syndicate robot module" name = "syndicate robot module"

View File

@@ -694,23 +694,27 @@ note dizziness decrements automatically in the mob's Life() proc.
return 1 return 1
//Updates canmove, lying and icons. Could perhaps do with a rename but I can't think of anything to describe it. //Updates canmove, lying and icons. Could perhaps do with a rename but I can't think of anything to describe it.
//Robots and brains have their own version so don't worry about them
/mob/proc/update_canmove() /mob/proc/update_canmove()
if(buckled)
anchored = 1 if(stat || weakened || paralysis || resting || (status_flags & FAKEDEATH) || buckled)
canmove = 0 canmove = 0
if( istype(buckled,/obj/structure/stool/bed/chair) ) if(!lying)
lying = 0 if(resting) //Presuming that you're resting on a bed, which would look goofy lying the wrong way
else lying = 90
lying = 1 else
else if( stat || weakened || paralysis || resting || sleeping || (status_flags & FAKEDEATH) ) lying = pick(90, 270) //180 looks like shit since BYOND inverts rather than turns in that case
lying = 1 else if(stunned)
canmove = 0
else if( stunned )
// lying = 0
canmove = 0 canmove = 0
else else
lying = 0 lying = 0
canmove = 1 canmove = 1
if(buckled)
anchored = 1
if(istype(buckled, /obj/structure/stool/bed/chair))
lying = 0
else
lying = 90 //Everything else faces right. TODO: Allow left-facing beds
if(lying) if(lying)
density = 0 density = 0
@@ -722,11 +726,12 @@ note dizziness decrements automatically in the mob's Life() proc.
//Temporarily moved here from the various life() procs //Temporarily moved here from the various life() procs
//I'm fixing stuff incrementally so this will likely find a better home. //I'm fixing stuff incrementally so this will likely find a better home.
//It just makes sense for now. ~Carn //It just makes sense for now. ~Carn
if( update_icon ) //forces a full overlay update
if(lying != lying_prev)
update_transform()
if(update_icon) //forces a full overlay update
update_icon = 0 update_icon = 0
regenerate_icons() regenerate_icons()
else if( lying != lying_prev )
update_icons()
return canmove return canmove

View File

@@ -10,6 +10,9 @@
/mob/proc/update_hud() /mob/proc/update_hud()
return return
/mob/proc/update_transform()
return
/mob/proc/update_inv_handcuffed() /mob/proc/update_inv_handcuffed()
return return

View File

@@ -52,7 +52,19 @@ should be listed in the changelog upon commit tho. Thanks. -->
<!-- You can simply add changelogs using AddToChangelog.exe --> <!-- You can simply add changelogs using AddToChangelog.exe -->
<!-- DO NOT REMOVE OR MOVE THIS COMMENT! THIS MUST BE THE LAST NON-EMPTY LINE BEFORE THE LOGS #ADDTOCHANGELOGMARKER# --> <!-- DO NOT REMOVE OR MOVE THIS COMMENT! THIS MUST BE THE LAST NON-EMPTY LINE BEFORE THE LOGS #ADDTOCHANGELOGMARKER# -->
<div class='commit sansserif'>
<div class='commit sansserif'>
<h2 class='date'>21 January 2014</h2>
<h3 class='author'>MrPerson updated:</h3>
<ul class='changes bgimages16'>
<li class='rscadd'>Mobs now lie down via turning icons rather than preturned sprites.</li>
<li class='rscadd'>You can lie down facing up or down and the turn can be 90 degrees clockwise or counterclockwise.</li>
<li class='tweak'>Resting will always make you lie to the right so you look good on beds.</li>
<li class='wip'>Please report any bugs you find with this system.</li>
</ul>
</div> </div>
<h2 class='date'>20 January 2014</h2> <h2 class='date'>20 January 2014</h2>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@@ -36,6 +36,7 @@
#include "code\__HELPERS\lists.dm" #include "code\__HELPERS\lists.dm"
#include "code\__HELPERS\logging.dm" #include "code\__HELPERS\logging.dm"
#include "code\__HELPERS\maths.dm" #include "code\__HELPERS\maths.dm"
#include "code\__HELPERS\matrices.dm"
#include "code\__HELPERS\mobs.dm" #include "code\__HELPERS\mobs.dm"
#include "code\__HELPERS\names.dm" #include "code\__HELPERS\names.dm"
#include "code\__HELPERS\sanitize_values.dm" #include "code\__HELPERS\sanitize_values.dm"
@@ -884,6 +885,7 @@
#include "code\modules\mob\living\carbon\carbon_defines.dm" #include "code\modules\mob\living\carbon\carbon_defines.dm"
#include "code\modules\mob\living\carbon\emote.dm" #include "code\modules\mob\living\carbon\emote.dm"
#include "code\modules\mob\living\carbon\inventory.dm" #include "code\modules\mob\living\carbon\inventory.dm"
#include "code\modules\mob\living\carbon\update_icons.dm"
#include "code\modules\mob\living\carbon\alien\alien.dm" #include "code\modules\mob\living\carbon\alien\alien.dm"
#include "code\modules\mob\living\carbon\alien\alien_defense.dm" #include "code\modules\mob\living\carbon\alien\alien_defense.dm"
#include "code\modules\mob\living\carbon\alien\death.dm" #include "code\modules\mob\living\carbon\alien\death.dm"