":""][chargelevel]/[output] | Output-mode: [online?"on":"off"] | Input-mode: [chargemode?"auto":"off"] by [usr.key]","singulo")
+ src.updateUsrDialog()
else if( href_list["output"] )
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index 32d989485b2..e838b899e6e 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -784,6 +784,12 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime)
/obj/item/weapon/reagent_containers/food/snacks/grown/wheat = list("flour" = -5),
/obj/item/weapon/reagent_containers/food/snacks/grown/cherries = list("cherryjelly" = 0),
+ //Grinder stuff, but only if dry
+ /obj/item/weapon/reagent_containers/food/snacks/grown/coffee_arabica = list("coffeepowder" = 0),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/coffee_robusta = list("coffeepowder" = 0, "hyperzine" = 0),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/tea_aspera = list("teapowder" = 0),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/tea_astra = list("teapowder" = 0, "kelotane" = 0),
+
//All types that you can put into the grinder to transfer the reagents to the beaker. !Put all recipes above this.!
@@ -806,6 +812,14 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime)
/obj/item/weapon/reagent_containers/food/snacks/grown/poisonberries = list("poisonberryjuice" = 0),
)
+ var/list/dried_items = list(
+
+ //Grinder stuff, but only if dry
+ /obj/item/weapon/reagent_containers/food/snacks/grown/coffee_arabica = list("coffeepowder" = 0),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/coffee_robusta = list("coffeepowder" = 0, "hyperzine" = 0),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/tea_aspera = list("teapowder" = 0),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/tea_astra = list("teapowder" = 0, "kelotane" = 0),
+ )
var/list/holdingitems = list()
@@ -836,6 +850,13 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime)
src.updateUsrDialog()
return 0
+ if(is_type_in_list(O, dried_items))
+ if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown))
+ var/obj/item/weapon/reagent_containers/food/snacks/grown/G = O
+ if(!G.dry)
+ user << "You must dry that first!"
+ return 1
+
if(holdingitems && holdingitems.len >= limit)
usr << "The machine cannot hold anymore items."
return 1
diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm
index a1a46dca16b..d660c999307 100644
--- a/code/modules/reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents.dm
@@ -1640,6 +1640,22 @@ datum
toxpwr = 2
meltprob = 30
+ toxin/coffeepowder
+ name = "Coffee Grounds"
+ id = "coffeepowder"
+ description = "Finely ground coffee beans, used to make coffee."
+ reagent_state = SOLID
+ color = "#5B2E0D" // rgb: 91, 46, 13
+ toxpwr = 0.5
+
+ toxin/teapowder
+ name = "Ground Tea Leaves"
+ id = "teapowder"
+ description = "Finely shredded tea leaves, used for making tea."
+ reagent_state = SOLID
+ color = "#7F8400" // rgb: 127, 132, 0
+ toxpwr = 0.5
+
/////////////////////////Coloured Crayon Powder////////////////////////////
//For colouring in /proc/mix_color_from_reagents
diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm
index 49631317532..ae17574aeaa 100644
--- a/code/modules/reagents/Chemistry-Recipes.dm
+++ b/code/modules/reagents/Chemistry-Recipes.dm
@@ -1594,6 +1594,20 @@ datum
required_reagents = list("water" = 5, "coco" = 1)
result_amount = 5
+ coffee
+ name = "Coffee"
+ id = "coffee"
+ result = "coffee"
+ required_reagents = list("coffeepowder" = 1, "water" = 5)
+ result_amount = 5
+
+ tea
+ name = "Tea"
+ id = "tea"
+ result = "tea"
+ required_reagents = list("teapowder" = 1, "water" = 5)
+ result_amount = 5
+
soysauce
name = "Soy Sauce"
id = "soysauce"
diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm
index aa2ce301eb1..a47cf704f81 100644
--- a/code/modules/reagents/reagent_containers/food/snacks.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks.dm
@@ -10,6 +10,7 @@
var/slices_num
var/eatverb
var/wrapped = 0
+ var/dried_type = null
//Placeholder for effect that trigger on eating that aren't tied to reagents.
@@ -2507,4 +2508,4 @@
..()
reagents.add_reagent("nutriment", 6)
reagents.add_reagent("toxin", 5)
- bitesize = 3
\ No newline at end of file
+ bitesize = 3
diff --git a/code/modules/reagents/reagent_containers/food/snacks/meat.dm b/code/modules/reagents/reagent_containers/food/snacks/meat.dm
index 406553bed6d..3fc9aa535a2 100644
--- a/code/modules/reagents/reagent_containers/food/snacks/meat.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks/meat.dm
@@ -2,6 +2,7 @@
name = "meat"
desc = "A slab of meat"
icon_state = "meat"
+ dried_type = /obj/item/weapon/reagent_containers/food/snacks/sosjerky
health = 180
New()
..()
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index a70af0898b9..673e08aefaa 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -136,7 +136,7 @@
if(80 to 90) filling.icon_state = "[icon_state]80"
if(91 to INFINITY) filling.icon_state = "[icon_state]100"
- filling.icon += mix_color_from_reagents(reagents.reagent_list)
+ filling.color = mix_color_from_reagents(reagents.reagent_list)
overlays += filling
/obj/item/weapon/reagent_containers/glass/beaker/large
diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm
index 57d77408756..4e816b54cc3 100644
--- a/code/modules/reagents/reagent_containers/spray.dm
+++ b/code/modules/reagents/reagent_containers/spray.dm
@@ -43,7 +43,7 @@
var/obj/effect/decal/chempuff/D = new/obj/effect/decal/chempuff(get_turf(src))
D.create_reagents(amount_per_transfer_from_this)
reagents.trans_to(D, amount_per_transfer_from_this, 1/3)
- D.icon += mix_color_from_reagents(D.reagents.reagent_list)
+ D.color = mix_color_from_reagents(D.reagents.reagent_list)
spawn(0)
for(var/i=0, i<3, i++)
@@ -181,7 +181,7 @@
D.create_reagents(amount_per_transfer_from_this)
src.reagents.trans_to(D, amount_per_transfer_from_this)
- D.icon += mix_color_from_reagents(D.reagents.reagent_list)
+ D.color = mix_color_from_reagents(D.reagents.reagent_list)
Sprays[i] = D
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 3e78f33fbca..a640d4ef451 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -190,7 +190,7 @@
if(10) filling.icon_state = "syringe10"
if(15) filling.icon_state = "syringe15"
- filling.icon += mix_color_from_reagents(reagents.reagent_list)
+ filling.color = mix_color_from_reagents(reagents.reagent_list)
overlays += filling
diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm
index e914d730c2d..83dfd5f4bb2 100644
--- a/code/modules/recycling/disposal-construction.dm
+++ b/code/modules/recycling/disposal-construction.dm
@@ -72,8 +72,8 @@
else
icon_state = base_state
- if(invisibility) // if invisible, fade icon
- icon -= rgb(0,0,0,128)
+ // if invisible, fade icon
+ alpha = (invisibility ? 0 : 255)
// hide called by levelupdate if turf intact status changes
// change visibility status and force update of icon
diff --git a/code/modules/research/rd-readme.dm b/code/modules/research/rd-readme.dm
index 8680460c227..5c42b3e930b 100644
--- a/code/modules/research/rd-readme.dm
+++ b/code/modules/research/rd-readme.dm
@@ -189,7 +189,7 @@ When thinking about new stuff, check here to see if there are any slots unfilled
//SYNDICATE
1 | Sleepypen
2 | TYRANT Module, Emag
-3 | Cloaking Device, Power Sink
+3 | Power Sink
4 |
5 |
6 |
diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm
index dd368880ef7..e456109a954 100644
--- a/code/modules/surgery/tools.dm
+++ b/code/modules/surgery/tools.dm
@@ -51,8 +51,8 @@
attack_verb = list("drilled")
suicide_act(mob/user)
- viewers(user) << pick("/red [user] is pressing [src] to \his temple and activating it! It looks like \he's trying to commit suicide.", \
- "/red [user] is pressing [src] to \his chest and activating it! It looks like \he's trying to commit suicide.")
+ viewers(user) << pick("[user] is pressing [src] to \his temple and activating it! It looks like \he's trying to commit suicide.", \
+ "[user] is pressing [src] to \his chest and activating it! It looks like \he's trying to commit suicide.")
return (BRUTELOSS)
@@ -73,9 +73,9 @@
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
suicide_act(mob/user)
- viewers(user) << pick("\red [user] is slitting \his wrists with [src]! It looks like \he's trying to commit suicide.", \
- "\red [user] is slitting \his throat with [src]! It looks like \he's trying to commit suicide.", \
- "\red [user] is slitting \his stomach open with [src]! It looks like \he's trying to commit seppuku.")
+ viewers(user) << pick("[user] is slitting \his wrists with [src]! It looks like \he's trying to commit suicide.", \
+ "[user] is slitting \his throat with [src]! It looks like \he's trying to commit suicide.", \
+ "[user] is slitting \his stomach open with [src]! It looks like \he's trying to commit seppuku.")
return (BRUTELOSS)
diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm
index d6c2246d76d..b0761e14c37 100644
--- a/code/modules/telesci/telesci_computer.dm
+++ b/code/modules/telesci/telesci_computer.dm
@@ -193,7 +193,6 @@
temp_msg += "
Calibration required soon."
else
temp_msg += "Data printed below."
- investigate_log("[key_name(usr)]/[user] has teleported with Telescience at [trueX],[trueY],[z_co], in [A ? A.name : "null area"].","telesci")
var/sparks = get_turf(target)
var/datum/effect/effect/system/spark_spread/y = new /datum/effect/effect/system/spark_spread
@@ -202,6 +201,9 @@
var/turf/source = target
var/turf/dest = get_turf(telepad)
+ var/log_msg = ""
+ log_msg += ": [key_name(user)] has teleported "
+
if(sending)
source = dest
dest = target
@@ -217,11 +219,39 @@
// TP people on office chairs
if(L.buckled.anchored)
continue
+
+ log_msg += "[key_name(L)] (on a chair), "
else
continue
else if(!isobserver(ROI))
continue
+ if(ismob(ROI))
+ var/mob/T = ROI
+ log_msg += "[key_name(T)], "
+ else
+ log_msg += "[ROI.name]"
+ if (istype(ROI, /obj/structure/closet))
+ var/obj/structure/closet/C = ROI
+ log_msg += " ("
+ for(var/atom/movable/Q as mob|obj in C)
+ if(ismob(Q))
+ log_msg += "[key_name(Q)], "
+ else
+ log_msg += "[Q.name], "
+ if (dd_hassuffix(log_msg, "("))
+ log_msg += "empty)"
+ else
+ log_msg = dd_limittext(log_msg, length(log_msg) - 2)
+ log_msg += ")"
+ log_msg += ", "
do_teleport(ROI, dest)
+
+ if (dd_hassuffix(log_msg, ", "))
+ log_msg = dd_limittext(log_msg, length(log_msg) - 2)
+ else
+ log_msg += "nothing"
+ log_msg += " [sending ? "to" : "from"] [trueX], [trueY], [z_co] ([A ? A.name : "null area"])"
+ investigate_log(log_msg, "telesci")
updateDialog()
/obj/machinery/computer/telescience/proc/teleport(mob/user)
diff --git a/code/world.dm b/code/world.dm
index 8a041e7dd11..b620dfeff18 100644
--- a/code/world.dm
+++ b/code/world.dm
@@ -90,19 +90,11 @@
process_ghost_teleport_locs() //Sets up ghost teleport locations.
sleep_offline = 1
- var/list/lines = file2list(file('tgstation.dme'))
- for(var/l in lines)
- if( dd_hassuffix(l, ".dmm\"") )
- var/firstquote = findtext(l, "\"")
- var/lastslash = 0
- for(var/j = 1; j < length(l); j++)
- var/lastslashtest = findtext(l, "\\", -j)
- if(lastslashtest > 0)
- lastslash = lastslashtest
- break
- map_name = copytext(l, max(firstquote+1,lastslash+1), length(l)-4)
- if(!map_name)
- map_name = "Unknown"
+ #ifdef MAP_NAME
+ map_name = "[MAP_NAME]"
+ #else
+ map_name = "Unknown"
+ #endif
spawn(3000) //so we aren't adding to the round-start lag
if(config.kick_inactive)
diff --git a/config/game_options.txt b/config/game_options.txt
index 85fcdbd1ced..9c4818a3df2 100644
--- a/config/game_options.txt
+++ b/config/game_options.txt
@@ -29,8 +29,8 @@ REVIVAL_BRAIN_LIFE -1
## To speed things up make the number negative, to slow things down, make the number positive.
## These modify the run/walk speed of all mobs before the mob-specific modifiers are applied.
-RUN_DELAY 0
-WALK_DELAY 0
+RUN_DELAY 1
+WALK_DELAY 4
## The variables below affect the movement of specific mob types.
HUMAN_DELAY 0
@@ -162,7 +162,7 @@ GATEWAY_DELAY 18000
## If you find that your players are abusing the sandbox panel, this option may slow them down
## without preventing people from using it properly.
## Only functions in sandbox game mode.
-#SANDBOX_AUTOCLOSE
+#SANDBOX_AUTOCLOSE
### ROUNDSTART SILICON LAWS ###
## This controls what the AI's laws are at the start of the round.
diff --git a/dm.sh b/dm.sh
new file mode 100644
index 00000000000..6e71ec34718
--- /dev/null
+++ b/dm.sh
@@ -0,0 +1,89 @@
+#!/bin/bash
+
+dmepath=""
+retval=1
+
+for var
+do
+ if [[ $var != -* && $var == *.dme ]]
+ then
+ dmepath=`echo $var | sed -r 's/.{4}$//'`
+ break
+ fi
+done
+
+if [[ $dmepath == "" ]]
+then
+ echo "No .dme file specified, aborting."
+ exit 1
+fi
+
+if [[ -a $dmepath.mdme ]]
+then
+ rm $dmepath.mdme
+fi
+
+cp $dmepath.dme $dmepath.mdme
+if [[ $? != 0 ]]
+then
+ echo "Failed to make modified dme, aborting."
+ exit 2
+fi
+
+for var
+do
+ arg=`echo $var | sed -r 's/^.{2}//'`
+ if [[ $var == -D* ]]
+ then
+ sed -i '1s/^/#define '$arg'\n/' $dmepath.mdme
+ continue
+ fi
+ if [[ $var == -M* ]]
+ then
+ sed -i '1s/^/#define MAP_OVERRIDE\n/' $dmepath.mdme
+ sed -i 's!// BEGIN_INCLUDE!// BEGIN_INCLUDE\n#include "_maps\\'$arg'.dm"!' $dmepath.mdme
+ continue
+ fi
+done
+
+#windows
+if [[ `uname` == MINGW* ]]
+then
+ dm=""
+
+ if hash dm.exe 2>/dev/null
+ then
+ dm='dm.exe'
+ elif [[ -a '/c/Program Files (x86)/BYOND/bin/dm.exe' ]]
+ then
+ dm='/c/Program Files (x86)/BYOND/bin/dm.exe'
+ elif [[ -a '/c/Program Files/BYOND/bin/dm.exe' ]]
+ then
+ dm='/c/Program Files/BYOND/bin/dm.exe'
+ fi
+
+ if [[ $dm == "" ]]
+ then
+ echo "Couldn't find the DreamMaker executable, aborting."
+ exit 3
+ fi
+
+ "$dm" $dmepath.mdme
+ retval=$?
+else
+ if hash DreamMaker 2>/dev/null
+ then
+ DreamMaker $dmepath.mdme
+ retval=$?
+ else
+ echo "Couldn't find the DreamMaker executable, aborting."
+ exit 3
+ fi
+fi
+
+mv $dmepath.mdme.dmb $dmepath.dmb
+mv $dmepath.mdme.rsc $dmepath.rsc
+
+rm $dmepath.mdme
+
+exit $retval
diff --git a/html/changelog.html b/html/changelog.html
index 0ec0219ed28..c4fecf62d5c 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -52,7 +52,41 @@ should be listed in the changelog upon commit tho. Thanks. -->
-
+
+
+
+
21 January 2014
+
MrPerson updated:
+
+ - Mobs now lie down via turning icons rather than preturned sprites.
+ - You can lie down facing up or down and the turn can be 90 degrees clockwise or counterclockwise.
+ - Resting will always make you lie to the right so you look good on beds.
+ - Please report any bugs you find with this system.
+
+
+
+
20 January 2014
+
Petethegoat updated:
+
+ - Increased the walk speed. Legcuffed speed is unaffected, and is still suffering.
+ - Sped up alien drones, they are now the same speed as sentinels.
+
+
+
+
+
+
19 January 2014
+
Rolan7 updated:
+
+ - You can now sell mutant seeds, from hydroponics, to Centcom via the supply shuttle.
+ - Fixes powersinks causing APCs to stop automatically recharging.
+
+
KazeEspada updated:
+
+ - The water cooler is now stocked with paper cups. You can refill the cups by putting paper in it.
+
+
+
17 January 2014
@@ -60,6 +94,16 @@ should be listed in the changelog upon commit tho. Thanks. -->
- Changed the way the Gygax worked. It now has less defense and shot deflection, but is faster and have less battery drain per step.
- Nerfed the Carbine's brute damage and renamed it to FNX-99 "Hades" Carbine.
+ - Nerfed the Gygax defense from 300 to 250.
+ Nerfed the Gygax projectile deflection chance from 15 to 5.
+ Buffed the Gygax speed from 3 to 2, making it faster.
+ Reduced the battery use when moving from 5 to 3.
+
+ The Mech Ion Rifle now has a faster cooldown, from 40 to 20.
+ Nerfed the carbine's Brute Damage from 20 to 5.
+
+ Please post feedback to these changes on the forums.
+
@@ -76,34 +120,34 @@ should be listed in the changelog upon commit tho. Thanks. -->
-
14 January 2014
-
SirBayer updated:
-
+ 14 January 2014
+ SirBayer updated:
+
- Armor now reduces damage by the protection percentage, instead of randomly deciding to half or full block damage by those percentages.
- Shotguns, with buckshot shells, will fire a spread of pellets at your target, like a real shotgun blast.
- ManeaterMildred updated:
-
- - Updated research designs.
- - The Protolathe can now build a Ion Rifle.
- - The Exosuit Fabricator can now build a Mech Ion Rifle, a Mech Carbine and a Mech-Mounted Missile Rack.
-
- Fleure updated:
-
- - Added spider butchery.
- - Added spider meat, legs, and edible eggs.
- - Added new spider related meals.
-
- Giacom updated:
-
- - Because of an emagged cyborg's explosion, the MMI will die with it.
+ ManeaterMildred updated:
+
+ - Updated research designs.
+ - The Protolathe can now build a Ion Rifle.
+ - The Exosuit Fabricator can now build a Mech Ion Rifle, a Mech Carbine and a Mech-Mounted Missile Rack.
+
+ Fleure updated:
+
+ - Added spider butchery.
+ - Added spider meat, legs, and edible eggs.
+ - Added new spider related meals.
+
+ Giacom updated:
+
+ - Because of an emagged cyborg's explosion, the MMI will die with it.
- The self-respiration symptom will now properly keep you from dying of oxygen loss.
- The Stimulant symptom's activation chance was increased so you had a constant flow of hyperzine.
-
- Incoming updated:
-
- - A new training bomb has been added to the armoury, which will allow you to train your wire cutting skills to disarm real syndicate bombs.
-
+
+ Incoming updated:
+
+ - A new training bomb has been added to the armoury, which will allow you to train your wire cutting skills to disarm real syndicate bombs.
+
diff --git a/icons/effects/chemsmoke.dmi b/icons/effects/chemsmoke.dmi
index 5be1b638edd..f829c6bd716 100644
Binary files a/icons/effects/chemsmoke.dmi and b/icons/effects/chemsmoke.dmi differ
diff --git a/icons/effects/crayondecal.dmi b/icons/effects/crayondecal.dmi
index 3aa781d8d22..11a0e7559e6 100644
Binary files a/icons/effects/crayondecal.dmi and b/icons/effects/crayondecal.dmi differ
diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi
index 36a6aa33682..72e4087be31 100644
Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ
diff --git a/icons/mob/alienqueen.dmi b/icons/mob/alienqueen.dmi
index 15621520237..2453dac2e3d 100644
Binary files a/icons/mob/alienqueen.dmi and b/icons/mob/alienqueen.dmi differ
diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi
index bc7e5f2089e..832cf40074c 100644
Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index d3e98458196..32540348373 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi
index 57cc98ea18c..ba946e3c80f 100644
Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ
diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi
index fee06bfd232..313b3cde48d 100644
Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ
diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi
index 3525101789d..d9b712ace2a 100644
Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ
diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi
index 37fab2198ae..1a7e9d17360 100644
Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index ce3b7c64046..f6a3661f580 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi
index 49658fbf40c..1214382efa2 100644
Binary files a/icons/mob/ties.dmi and b/icons/mob/ties.dmi differ
diff --git a/icons/obj/chempuff.dmi b/icons/obj/chempuff.dmi
index 811c5e82142..012aa081a13 100644
Binary files a/icons/obj/chempuff.dmi and b/icons/obj/chempuff.dmi differ
diff --git a/icons/obj/cigarettes.dmi b/icons/obj/cigarettes.dmi
index 59cab0298aa..d254c6c843d 100644
Binary files a/icons/obj/cigarettes.dmi and b/icons/obj/cigarettes.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index bf76df73b94..4e04bd647be 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi
index 57359f17ab1..a648c8b2cee 100644
Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index 3f0f1bd7bf2..b92ff299e46 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi
index fff335f88e2..c857e0d39d4 100644
Binary files a/icons/obj/clothing/ties.dmi and b/icons/obj/clothing/ties.dmi differ
diff --git a/icons/obj/harvest.dmi b/icons/obj/harvest.dmi
index a2743f61c00..719a588495d 100644
Binary files a/icons/obj/harvest.dmi and b/icons/obj/harvest.dmi differ
diff --git a/icons/obj/hydroponics.dmi b/icons/obj/hydroponics.dmi
index 746e851340b..384408c8610 100644
Binary files a/icons/obj/hydroponics.dmi and b/icons/obj/hydroponics.dmi differ
diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi
index 5898debbf06..2e59c8155b4 100644
Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ
diff --git a/icons/obj/reagentfillings.dmi b/icons/obj/reagentfillings.dmi
index fbf42ca03d5..04e3a188350 100644
Binary files a/icons/obj/reagentfillings.dmi and b/icons/obj/reagentfillings.dmi differ
diff --git a/icons/obj/rune.dmi b/icons/obj/rune.dmi
index 6c7bc23ced5..1fb79b1a770 100644
Binary files a/icons/obj/rune.dmi and b/icons/obj/rune.dmi differ
diff --git a/icons/obj/seeds.dmi b/icons/obj/seeds.dmi
index 94dc2fc5567..89c32b9b727 100644
Binary files a/icons/obj/seeds.dmi and b/icons/obj/seeds.dmi differ
diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi
index 9c50a17391e..1586e0e50f1 100644
Binary files a/icons/obj/toy.dmi and b/icons/obj/toy.dmi differ
diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm
index bd881f81190..38020dc5bfc 100644
--- a/interface/stylesheet.dm
+++ b/interface/stylesheet.dm
@@ -53,6 +53,7 @@ h1.alert, h2.alert {color: #000000;}
.info {color: #0000CC;}
.notice {color: #000099;}
.unconscious {color: #0000FF; font-weight: bold;}
+.suicide {color: #ff5050; font-style: italic;}
.alien {color: #543354;}
.newscaster {color: #800000;}
diff --git a/tgstation.dme b/tgstation.dme
index fc0310a2608..3f71d1d5982 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -13,6 +13,7 @@
// END_PREFERENCES
// BEGIN_INCLUDE
+#include "_maps\tgstation2.dm"
#include "code\_compile_options.dm"
#include "code\hub.dm"
#include "code\world.dm"
@@ -35,6 +36,7 @@
#include "code\__HELPERS\lists.dm"
#include "code\__HELPERS\logging.dm"
#include "code\__HELPERS\maths.dm"
+#include "code\__HELPERS\matrices.dm"
#include "code\__HELPERS\mobs.dm"
#include "code\__HELPERS\names.dm"
#include "code\__HELPERS\sanitize_values.dm"
@@ -302,6 +304,7 @@
#include "code\game\machinery\deployable.dm"
#include "code\game\machinery\door_control.dm"
#include "code\game\machinery\doppler_array.dm"
+#include "code\game\machinery\drying_rack.dm"
#include "code\game\machinery\flasher.dm"
#include "code\game\machinery\Freezer.dm"
#include "code\game\machinery\hologram.dm"
@@ -730,6 +733,13 @@
#include "code\modules\awaymissions\maploader\reader.dm"
#include "code\modules\awaymissions\maploader\swapmaps.dm"
#include "code\modules\awaymissions\maploader\writer.dm"
+#include "code\modules\awaymissions\mission_code\Academy.dm"
+#include "code\modules\awaymissions\mission_code\blackmarketpackers.dm"
+#include "code\modules\awaymissions\mission_code\centcomAway.dm"
+#include "code\modules\awaymissions\mission_code\challenge.dm"
+#include "code\modules\awaymissions\mission_code\spacebattle.dm"
+#include "code\modules\awaymissions\mission_code\stationCollision.dm"
+#include "code\modules\awaymissions\mission_code\wildwest.dm"
#include "code\modules\client\client defines.dm"
#include "code\modules\client\client procs.dm"
#include "code\modules\client\preferences.dm"
@@ -876,6 +886,7 @@
#include "code\modules\mob\living\carbon\carbon_defines.dm"
#include "code\modules\mob\living\carbon\emote.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_defense.dm"
#include "code\modules\mob\living\carbon\alien\death.dm"
@@ -1200,13 +1211,4 @@
#include "interface\interface.dm"
#include "interface\stylesheet.dm"
#include "interface\skin.dmf"
-#include "maps\tgstation.2.1.2.dmm"
-#include "maps\RandomZLevels\Academy.dm"
-#include "maps\RandomZLevels\blackmarketpackers.dm"
-#include "maps\RandomZLevels\box2550Away.dm"
-#include "maps\RandomZLevels\centcomAway.dm"
-#include "maps\RandomZLevels\challenge.dm"
-#include "maps\RandomZLevels\spacebattle.dm"
-#include "maps\RandomZLevels\stationCollision.dm"
-#include "maps\RandomZLevels\wildwest.dm"
// END_INCLUDE