diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 3f6758c6ad..e55323fb3a 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -162,6 +162,12 @@
update_icon()
return 1
+/obj/screen/zone_sel/proc/set_selected_zone(bodypart)
+ var/old_selecting = selecting
+ selecting = bodypart
+ if(old_selecting != selecting)
+ update_icon()
+
/obj/screen/zone_sel/update_icon()
overlays.Cut()
overlays += image('icons/mob/zone_sel.dmi', "[selecting]")
diff --git a/code/controllers/Processes/planet.dm b/code/controllers/Processes/planet.dm
index 31406e92a0..b3b556d7bd 100644
--- a/code/controllers/Processes/planet.dm
+++ b/code/controllers/Processes/planet.dm
@@ -1,11 +1,16 @@
+var/datum/controller/process/planet/planet_controller = null
+
/datum/controller/process/planet
var/list/planets = list()
/datum/controller/process/planet/setup()
name = "planet"
+ planet_controller = src
schedule_interval = 600 // every minute
- planet_sif = new()
- planets.Add(planet_sif)
+ var/list/planet_datums = typesof(/datum/planet) - /datum/planet
+ for(var/P in planet_datums)
+ var/datum/planet/NP = new P()
+ planets.Add(NP)
/datum/controller/process/planet/doWork()
for(var/datum/planet/P in planets)
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 5628b8774f..f06ab9ca33 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -977,7 +977,7 @@
if(!check_rights(R_DEBUG))
return
- var/datum/planet/planet = input(usr, "Which planet do you want to modify the weather on?", "Change Weather") in list(planet_sif)
+ var/datum/planet/planet = input(usr, "Which planet do you want to modify the weather on?", "Change Weather") in planet_controller.planets
var/datum/weather/new_weather = input(usr, "What weather do you want to change to?", "Change Weather") as null|anything in planet.weather_holder.allowed_weather_types
if(new_weather)
planet.weather_holder.change_weather(new_weather)
@@ -993,7 +993,7 @@
if(!check_rights(R_DEBUG))
return
- var/datum/planet/planet = input(usr, "Which planet do you want to modify time on?", "Change Time") in list(planet_sif)
+ var/datum/planet/planet = input(usr, "Which planet do you want to modify time on?", "Change Time") in planet_controller.planets
var/datum/time/current_time_datum = planet.current_time
var/new_hour = input(usr, "What hour do you want to change to?", "Change Time", text2num(current_time_datum.show_time("hh"))) as null|num
diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm
index 32ca92b311..bf59f3c382 100644
--- a/code/modules/mining/mine_turfs.dm
+++ b/code/modules/mining/mine_turfs.dm
@@ -81,8 +81,8 @@ var/list/mining_overlay_cache = list()
/turf/simulated/mineral/proc/update_general()
update_icon(1)
+ recalc_atom_opacity()
if(ticker && ticker.current_state == GAME_STATE_PLAYING)
- recalc_atom_opacity()
reconsider_lights()
if(air_master)
air_master.mark_for_update(src)
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index a68a90e9ef..ab53d6466c 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -1018,3 +1018,47 @@ mob/proc/yank_out_object()
/mob/proc/is_muzzled()
return 0
+
+/client/proc/check_has_body_select()
+ return mob && mob.hud_used && istype(mob.zone_sel, /obj/screen/zone_sel)
+
+/client/verb/body_toggle_head()
+ set name = "body-toggle-head"
+ set hidden = 1
+ toggle_zone_sel(list(BP_HEAD, O_EYES, O_MOUTH))
+
+/client/verb/body_r_arm()
+ set name = "body-r-arm"
+ set hidden = 1
+ toggle_zone_sel(list(BP_R_ARM,BP_R_HAND))
+
+/client/verb/body_l_arm()
+ set name = "body-l-arm"
+ set hidden = 1
+ toggle_zone_sel(list(BP_L_ARM,BP_L_HAND))
+
+/client/verb/body_chest()
+ set name = "body-chest"
+ set hidden = 1
+ toggle_zone_sel(list(BP_TORSO))
+
+/client/verb/body_groin()
+ set name = "body-groin"
+ set hidden = 1
+ toggle_zone_sel(list(BP_GROIN))
+
+/client/verb/body_r_leg()
+ set name = "body-r-leg"
+ set hidden = 1
+ toggle_zone_sel(list(BP_R_LEG,BP_R_FOOT))
+
+/client/verb/body_l_leg()
+ set name = "body-l-leg"
+ set hidden = 1
+ toggle_zone_sel(list(BP_L_LEG,BP_L_FOOT))
+
+/client/proc/toggle_zone_sel(list/zones)
+ if(!check_has_body_select())
+ return
+ var/obj/screen/zone_sel/selector = mob.zone_sel
+ selector.set_selected_zone(next_in_list(mob.zone_sel.selecting,zones))
\ No newline at end of file
diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm
index 0c554f19cc..f6679a6dfe 100644
--- a/code/modules/mob/new_player/sprite_accessories.dm
+++ b/code/modules/mob/new_player/sprite_accessories.dm
@@ -1090,11 +1090,13 @@
name = "Color Patches"
icon_state = "patches"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN)
+ species_allowed = list("Tajara")
patchesface
name = "Color Patches (Face)"
icon_state = "patchesface"
body_parts = list(BP_HEAD)
+ species_allowed = list("Tajara")
bands
name = "Color Bands"
diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm
index f5d9f2ebb4..aebe847fb6 100644
--- a/code/modules/organs/organ_external.dm
+++ b/code/modules/organs/organ_external.dm
@@ -492,7 +492,7 @@ This function completely restores a damaged organ to perfect condition.
//Burn damage can cause fluid loss due to blistering and cook-off
if((damage > 5 || damage + burn_dam >= 15) && type == BURN && (robotic < ORGAN_ROBOT) && !istype(owner.loc,/mob/living) && !istype(owner.loc,/obj/item/device/dogborg/sleeper)) // VOREStation Edit
- var/fluid_loss = (damage/(owner.maxHealth - config.health_threshold_dead)) * owner.species.blood_volume*(1 - BLOOD_VOLUME_SURVIVE/100)
+ var/fluid_loss = 0.75 * (damage/(owner.maxHealth - config.health_threshold_dead)) * owner.species.blood_volume*(1 - BLOOD_VOLUME_SURVIVE/100)
owner.remove_blood(fluid_loss)
// first check whether we can widen an existing wound
diff --git a/code/modules/planet/planet.dm b/code/modules/planet/planet.dm
index 65a2de9845..53a07f228b 100644
--- a/code/modules/planet/planet.dm
+++ b/code/modules/planet/planet.dm
@@ -36,7 +36,12 @@
if(weather_holder)
weather_holder.process()
-// Returns the time datum of Sif.
-/proc/get_sif_time()
- if(planet_sif)
- return planet_sif.current_time
\ No newline at end of file
+/datum/planet/proc/update_sun_deferred(var/new_range, var/new_brightness, var/new_color)
+ set background = 1
+ set waitfor = 0
+ var/i = 0
+ for(var/turf/simulated/floor/T in outdoor_turfs)
+ T.set_light(new_range, new_brightness, new_color)
+ i++
+ if(i % 30 == 0)
+ sleep(1)
diff --git a/code/modules/planet/sif.dm b/code/modules/planet/sif.dm
index 7b95d387bf..303d05f509 100644
--- a/code/modules/planet/sif.dm
+++ b/code/modules/planet/sif.dm
@@ -13,6 +13,7 @@ var/datum/planet/sif/planet_sif = null
/datum/planet/sif/New()
..()
+ planet_sif = src
weather_holder = new /datum/weather_holder/sif(src) // Cold weather is also nice.
// This code is horrible.
@@ -95,12 +96,11 @@ var/datum/planet/sif/planet_sif = null
spawn(1)
update_sun_deferred(2, new_brightness, new_color)
-/datum/planet/proc/update_sun_deferred(var/new_range, var/new_brightness, var/new_color)
- set background = 1
- set waitfor = 0
- var/i = 0
- for(var/turf/simulated/floor/T in outdoor_turfs)
- T.set_light(new_range, new_brightness, new_color)
- i++
- if(i % 30 == 0)
- sleep(1)
+// We're gonna pretend there are 32 hours in a Sif day instead of 32.64 for the purposes of not losing sanity. We lose 38m 24s but the alternative is a path to madness.
+/datum/time/sif
+ seconds_in_day = 60 * 60 * 32 * 10 // 115,200 seconds. If we did 32.64 hours/day it would be around 117,504 seconds instead.
+
+// Returns the time datum of Sif.
+/proc/get_sif_time()
+ if(planet_sif)
+ return planet_sif.current_time
diff --git a/code/modules/planet/time.dm b/code/modules/planet/time.dm
index 936ae0eadd..0b3008b668 100644
--- a/code/modules/planet/time.dm
+++ b/code/modules/planet/time.dm
@@ -70,7 +70,3 @@
answer = replacetext(answer, "mm", minute_text)
answer = replacetext(answer, "ss", second_text)
return answer
-
-// We're gonna pretend there are 32 hours in a Sif day instead of 32.64 for the purposes of not losing sanity. We lose 38m 24s but the alternative is a path to madness.
-/datum/time/sif
- seconds_in_day = 60 * 60 * 32 * 10 // 115,200 seconds. If we did 32.64 hours/day it would be around 117,504 seconds instead.
\ No newline at end of file
diff --git a/html/changelog.html b/html/changelog.html
index 9686d06097..beb8c38c32 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -57,6 +57,25 @@
Anewbe updated:
- Wooden circlets can now be worn on the head.
+ 16 April 2017
+ Anewbe updated:
+
+ - Bartenders now spawn with their shotgun permit. Click on it in hand to name it.
+ - Lessens the bloodloss from severe burn damage.
+ - Hardhats now give some ear protection.
+ - Hardhats can no longer fit in pockets.
+
+ LorenLuke updated:
+
+ - Allows removal of PDA ID with alt-click.
+
+ Yosh updated:
+
+ - Scrubbers now scrub Phoron by default.
+ - Scrubbers now have the first dangerzone at anything more than 0 Phoron.
+ - No longer will you attack Alarms with your ID when trying to unlock them.
+
+
12 April 2017
Anewbe updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index c649aa8873..d65fec13f5 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -3410,3 +3410,16 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
Sin4:
- bugfix: You can no longer ascend a table by walking from a flipped table to a
non-flipped one.
+2017-04-16:
+ Anewbe:
+ - rscadd: Bartenders now spawn with their shotgun permit. Click on it in hand to
+ name it.
+ - experiment: Lessens the bloodloss from severe burn damage.
+ - rscadd: Hardhats now give some ear protection.
+ - rscdel: Hardhats can no longer fit in pockets.
+ LorenLuke:
+ - rscadd: Allows removal of PDA ID with alt-click.
+ Yosh:
+ - tweak: Scrubbers now scrub Phoron by default.
+ - tweak: Scrubbers now have the first dangerzone at anything more than 0 Phoron.
+ - bugfix: No longer will you attack Alarms with your ID when trying to unlock them.
diff --git a/html/changelogs/Anewbe - Bar Weapon Permit.yml b/html/changelogs/Anewbe - Bar Weapon Permit.yml
deleted file mode 100644
index 96bbdd6895..0000000000
--- a/html/changelogs/Anewbe - Bar Weapon Permit.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-################################
-# Example Changelog File
-#
-# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
-#
-# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
-# When it is, any changes listed below will disappear.
-#
-# Valid Prefixes:
-# bugfix
-# wip (For works in progress)
-# tweak
-# soundadd
-# sounddel
-# rscadd (general adding of nice things)
-# rscdel (general deleting of nice things)
-# imageadd
-# imagedel
-# maptweak
-# spellcheck (typo fixes)
-# experiment
-#################################
-
-# Your name.
-author: Anewbe
-
-# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
-delete-after: True
-
-# Any changes you've made. See valid prefix list above.
-# INDENT WITH TWO SPACES. NOT TABS. SPACES.
-# SCREW THIS UP AND IT WON'T WORK.
-# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
-# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
-changes:
- - rscadd: "Bartenders now spawn with their shotgun permit. Click on it in hand to name it."
diff --git a/html/changelogs/Anewbe - Hardhats.yml b/html/changelogs/Anewbe - Hardhats.yml
deleted file mode 100644
index d3ea8beea7..0000000000
--- a/html/changelogs/Anewbe - Hardhats.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-################################
-# Example Changelog File
-#
-# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
-#
-# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
-# When it is, any changes listed below will disappear.
-#
-# Valid Prefixes:
-# bugfix
-# wip (For works in progress)
-# tweak
-# soundadd
-# sounddel
-# rscadd (general adding of nice things)
-# rscdel (general deleting of nice things)
-# imageadd
-# imagedel
-# maptweak
-# spellcheck (typo fixes)
-# experiment
-#################################
-
-# Your name.
-author: Anewbe
-
-# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
-delete-after: True
-
-# Any changes you've made. See valid prefix list above.
-# INDENT WITH TWO SPACES. NOT TABS. SPACES.
-# SCREW THIS UP AND IT WON'T WORK.
-# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
-# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
-changes:
- - rscadd: "Hardhats now give some ear protection."
- - rscdel: "Hardhats can no longer fit in pockets."
diff --git a/html/changelogs/LorenLuke - PDA Altclick.yml b/html/changelogs/LorenLuke - PDA Altclick.yml
deleted file mode 100644
index 8e8b142b6a..0000000000
--- a/html/changelogs/LorenLuke - PDA Altclick.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-################################
-# Example Changelog File
-#
-# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
-#
-# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
-# When it is, any changes listed below will disappear.
-#
-# Valid Prefixes:
-# bugfix
-# wip (For works in progress)
-# tweak
-# soundadd
-# sounddel
-# rscadd (general adding of nice things)
-# rscdel (general deleting of nice things)
-# imageadd
-# imagedel
-# maptweak
-# spellcheck (typo fixes)
-# experiment
-#################################
-
-# Your name.
-author: LorenLuke
-
-# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
-delete-after: True
-
-# Any changes you've made. See valid prefix list above.
-# INDENT WITH TWO SPACES. NOT TABS. SPACES.
-# SCREW THIS UP AND IT WON'T WORK.
-# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
-# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
-changes:
- - rscadd: "Allows removal of PDA ID with alt-click."
diff --git a/html/changelogs/Yoshax-Scrubbers.yml b/html/changelogs/Yoshax-Scrubbers.yml
deleted file mode 100644
index 350f0554bd..0000000000
--- a/html/changelogs/Yoshax-Scrubbers.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-################################
-# Example Changelog File
-#
-# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
-#
-# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
-# When it is, any changes listed below will disappear.
-#
-# Valid Prefixes:
-# bugfix
-# wip (For works in progress)
-# tweak
-# soundadd
-# sounddel
-# rscadd (general adding of nice things)
-# rscdel (general deleting of nice things)
-# imageadd
-# imagedel
-# maptweak
-# spellcheck (typo fixes)
-# experiment
-#################################
-
-# Your name.
-author: Yosh
-
-# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
-delete-after: True
-
-# Any changes you've made. See valid prefix list above.
-# INDENT WITH TWO SPACES. NOT TABS. SPACES.
-# SCREW THIS UP AND IT WON'T WORK.
-# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
-# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
-changes:
- - tweak: "Scrubbers now scrub Phoron by default."
- - tweak: "Scrubbers now have the first dangerzone at anything more than 0 Phoron."
- - bugfix: "No longer will you attack Alarms with your ID when trying to unlock them."
diff --git a/icons/obj/xenoarchaeology.dmi b/icons/obj/xenoarchaeology.dmi
index 4ec3da1adc..a074f17c3f 100644
Binary files a/icons/obj/xenoarchaeology.dmi and b/icons/obj/xenoarchaeology.dmi differ
diff --git a/interface/skin.dmf b/interface/skin.dmf
index 934595bb5b..4cb7a81da6 100644
--- a/interface/skin.dmf
+++ b/interface/skin.dmf
@@ -215,6 +215,34 @@ macro "borghotkeymode"
name = "CTRL+Z"
command = "Activate-Held-Object"
is-disabled = false
+ elem
+ name = "NUMPAD1"
+ command = "body-r-leg"
+ is-disabled = false
+ elem
+ name = "NUMPAD2"
+ command = "body-groin"
+ is-disabled = false
+ elem
+ name = "NUMPAD3"
+ command = "body-l-leg"
+ is-disabled = false
+ elem
+ name = "NUMPAD4"
+ command = "body-r-arm"
+ is-disabled = false
+ elem
+ name = "NUMPAD5"
+ command = "body-chest"
+ is-disabled = false
+ elem
+ name = "NUMPAD6"
+ command = "body-l-arm"
+ is-disabled = false
+ elem
+ name = "NUMPAD8"
+ command = "body-toggle-head"
+ is-disabled = false
elem
name = "F1"
command = "adminhelp"
@@ -409,6 +437,34 @@ macro "macro"
name = "CTRL+Z"
command = "Activate-Held-Object"
is-disabled = false
+ elem
+ name = "CTRL+NUMPAD1"
+ command = "body-r-leg"
+ is-disabled = false
+ elem
+ name = "CTRL+NUMPAD2"
+ command = "body-groin"
+ is-disabled = false
+ elem
+ name = "CTRL+NUMPAD3"
+ command = "body-l-leg"
+ is-disabled = false
+ elem
+ name = "CTRL+NUMPAD4"
+ command = "body-r-arm"
+ is-disabled = false
+ elem
+ name = "CTRL+NUMPAD5"
+ command = "body-chest"
+ is-disabled = false
+ elem
+ name = "CTRL+NUMPAD6"
+ command = "body-l-arm"
+ is-disabled = false
+ elem
+ name = "CTRL+NUMPAD8"
+ command = "body-toggle-head"
+ is-disabled = false
elem
name = "F1"
command = "adminhelp"
@@ -695,6 +751,34 @@ macro "hotkeymode"
name = "CTRL+Z"
command = "Activate-Held-Object"
is-disabled = false
+ elem
+ name = "NUMPAD1"
+ command = "body-r-leg"
+ is-disabled = false
+ elem
+ name = "NUMPAD2"
+ command = "body-groin"
+ is-disabled = false
+ elem
+ name = "NUMPAD3"
+ command = "body-l-leg"
+ is-disabled = false
+ elem
+ name = "NUMPAD4"
+ command = "body-r-arm"
+ is-disabled = false
+ elem
+ name = "NUMPAD5"
+ command = "body-chest"
+ is-disabled = false
+ elem
+ name = "NUMPAD6"
+ command = "body-l-arm"
+ is-disabled = false
+ elem
+ name = "NUMPAD8"
+ command = "body-toggle-head"
+ is-disabled = false
elem
name = "F1"
command = "adminhelp"
@@ -885,6 +969,34 @@ macro "borgmacro"
name = "CTRL+Z"
command = "Activate-Held-Object"
is-disabled = false
+ elem
+ name = "CTRL+NUMPAD1"
+ command = "body-r-leg"
+ is-disabled = false
+ elem
+ name = "CTRL+NUMPAD2"
+ command = "body-groin"
+ is-disabled = false
+ elem
+ name = "CTRL+NUMPAD3"
+ command = "body-l-leg"
+ is-disabled = false
+ elem
+ name = "CTRL+NUMPAD4"
+ command = "body-r-arm"
+ is-disabled = false
+ elem
+ name = "CTRL+NUMPAD5"
+ command = "body-chest"
+ is-disabled = false
+ elem
+ name = "CTRL+NUMPAD6"
+ command = "body-l-arm"
+ is-disabled = false
+ elem
+ name = "CTRL+NUMPAD8"
+ command = "body-head-toggle"
+ is-disabled = false
elem
name = "F1"
command = "adminhelp"