diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index ca7d1dbb66..45944ac4d9 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -108,6 +108,10 @@
var/obj/item/weapon/reagent_containers/glass/bottle/robot/B = O
if(B.reagent && (B.reagents.get_reagent_amount(B.reagent) < B.volume))
B.reagents.add_reagent(B.reagent, 2)
+ //Janitor
+ if(istype(O, /obj/item/device/lightreplacer))
+ var/obj/item/device/lightreplacer/LR = O
+ LR.charge(R)
if(R)
if(R.module)
diff --git a/code/game/objects/closets/janitor.dm b/code/game/objects/closets/janitor.dm
index dc9f05985b..7f4fddc71f 100644
--- a/code/game/objects/closets/janitor.dm
+++ b/code/game/objects/closets/janitor.dm
@@ -11,4 +11,5 @@
new /obj/item/weapon/caution(src)
new /obj/item/weapon/caution(src)
new /obj/item/weapon/caution(src)
- new /obj/item/weapon/trashbag(src)
\ No newline at end of file
+ new /obj/item/weapon/trashbag(src)
+ new /obj/item/device/lightreplacer(src)
\ No newline at end of file
diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm
index 50d4d53637..059d093aad 100644
--- a/code/modules/chemical/Chemistry-Tools.dm
+++ b/code/modules/chemical/Chemistry-Tools.dm
@@ -2646,7 +2646,7 @@
/obj/item/weapon/reagent_containers/food/drinks/bottle
amount_per_transfer_from_this = 10
volume = 100
- item_state = "beer" //Generic held-item sprite until unique ones are made.
+ item_state = "broken_beer" //Generic held-item sprite until unique ones are made.
var/const/duration = 13 //Directly relates to the 'weaken' duration. Lowered by armor (i.e. helmets)
var/isGlass = 1 //Whether the 'bottle' is made of glass or not so that milk cartons dont shatter when someone gets hit by it
@@ -2724,7 +2724,7 @@
//Display an attack message.
for(var/mob/O in viewers(user, null))
if(target != user) O.show_message(text("\red [target] has been hit over the head with a bottle of [src.name], by [user]!"), 1)
- else O.show_message(text("\red [target] has hit himself with a bottle of [src.name] over his head!"), 1)
+ else O.show_message(text("\red [target] hit himself with a bottle of [src.name] on the head!"), 1)
//Weaken the target for the duration that we calculated and divide it by 5.
if(armor_duration)
target.apply_effect(min(armor_duration, 10) , WEAKEN) // Never weaken more than a flash!
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 9b046dbd42..04eb06bb30 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -149,7 +149,8 @@
..()
src.modules += new /obj/item/weapon/soap/nanotrasen(src)
src.modules += new /obj/item/weapon/trashbag(src)
- src.modules += new/obj/item/weapon/mop(src)
+ src.modules += new /obj/item/weapon/mop(src)
+ src.modules += new /obj/item/device/lightreplacer(src)
src.emag = new /obj/item/weapon/cleaner(src)
var/datum/reagents/R = new/datum/reagents(1000)
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index bf9da9600f..76ea08c808 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -352,6 +352,51 @@
/obj/machinery/light/attackby(obj/item/W, mob/user)
+ //Light replacer code
+ if(istype(W, /obj/item/device/lightreplacer))
+ if(status != LIGHT_OK)
+ if(isliving(user))
+ var/obj/item/device/lightreplacer/LR = W
+ var/mob/living/U = user
+ if(LR.CanUse(U))
+
+ if(!LR.Use(U)) return
+ U << "You replace the [src.fitting] with the [W]."
+ if(status != LIGHT_EMPTY)
+ var/obj/item/weapon/light/L1 = new light_type(src.loc)
+ L1.status = status
+ L1.rigged = rigged
+ L1.brightness = src.brightness
+ L1.switchcount = switchcount
+ switchcount = 0
+ L1.update()
+
+ status = LIGHT_EMPTY
+ update()
+
+ var/obj/item/weapon/light/L2 = new light_type()
+
+ status = L2.status
+ switchcount = L2.switchcount
+ rigged = LR.emagged
+ brightness = L2.brightness
+ on = has_power()
+ update()
+ del(L2)
+
+ // Leaving this here in case I get the go ahead to make emagged light replacers to insert rigged lights
+ if(on && rigged)
+ explode()
+ return
+
+ else
+ user << LR.failmsg
+ return
+ else
+ user << "There is a working [fitting] already inserted."
+ return
+
+
// attempt to insert light
if(istype(W, /obj/item/weapon/light))
if(status != LIGHT_EMPTY)
@@ -592,7 +637,7 @@
spawn(0)
broken() // break it first to give a warning
sleep(2)
- explosion(T, 0, 1, 2, 2)
+ explosion(T, 0, 0, 2, 2)
sleep(1)
del(src)
diff --git a/html/changelog.html b/html/changelog.html
index cc2c70fefc..da96f16317 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -46,6 +46,15 @@ Stuff which is in development and not yet visible to players or just code relate
should be listed in the changelog upon commit tho. Thanks. -->
+
+
18 July 2012
+
Giacom updated:
+
+ - Added the Light Replacer. This is a device that can auto replace lights that are broken, missing or burnt. Currently it is found in the Janitor's closet and Janitor Borgs can equip it. You can refill it with glass, or if you're a Cyborg, just recharge. It is emaggable and will replace lights with rigged lights. The light's explosion was nerfed to help balance it and it is very noticable when you are holding an emagged Light Replacer.
+ - The Janitor's equipment locator, on their PDA, will now tell you the direction of the equipment.
+
+
+
17 July 2012
Icarus updated:
diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi
index 3b38f599a2..0971ee425f 100644
Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 0f0a428bd5..7e81ee3d9c 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -5,6 +5,266 @@
// END_INTERNALS
// BEGIN_FILE_DIR
#define FILE_DIR .
+#define FILE_DIR ".svn"
+#define FILE_DIR ".svn/pristine"
+#define FILE_DIR ".svn/pristine/00"
+#define FILE_DIR ".svn/pristine/01"
+#define FILE_DIR ".svn/pristine/02"
+#define FILE_DIR ".svn/pristine/03"
+#define FILE_DIR ".svn/pristine/04"
+#define FILE_DIR ".svn/pristine/05"
+#define FILE_DIR ".svn/pristine/06"
+#define FILE_DIR ".svn/pristine/07"
+#define FILE_DIR ".svn/pristine/08"
+#define FILE_DIR ".svn/pristine/09"
+#define FILE_DIR ".svn/pristine/0a"
+#define FILE_DIR ".svn/pristine/0b"
+#define FILE_DIR ".svn/pristine/0c"
+#define FILE_DIR ".svn/pristine/0d"
+#define FILE_DIR ".svn/pristine/0e"
+#define FILE_DIR ".svn/pristine/0f"
+#define FILE_DIR ".svn/pristine/10"
+#define FILE_DIR ".svn/pristine/11"
+#define FILE_DIR ".svn/pristine/12"
+#define FILE_DIR ".svn/pristine/13"
+#define FILE_DIR ".svn/pristine/14"
+#define FILE_DIR ".svn/pristine/15"
+#define FILE_DIR ".svn/pristine/16"
+#define FILE_DIR ".svn/pristine/17"
+#define FILE_DIR ".svn/pristine/18"
+#define FILE_DIR ".svn/pristine/19"
+#define FILE_DIR ".svn/pristine/1a"
+#define FILE_DIR ".svn/pristine/1b"
+#define FILE_DIR ".svn/pristine/1c"
+#define FILE_DIR ".svn/pristine/1d"
+#define FILE_DIR ".svn/pristine/1e"
+#define FILE_DIR ".svn/pristine/1f"
+#define FILE_DIR ".svn/pristine/20"
+#define FILE_DIR ".svn/pristine/21"
+#define FILE_DIR ".svn/pristine/22"
+#define FILE_DIR ".svn/pristine/23"
+#define FILE_DIR ".svn/pristine/24"
+#define FILE_DIR ".svn/pristine/25"
+#define FILE_DIR ".svn/pristine/26"
+#define FILE_DIR ".svn/pristine/27"
+#define FILE_DIR ".svn/pristine/28"
+#define FILE_DIR ".svn/pristine/29"
+#define FILE_DIR ".svn/pristine/2a"
+#define FILE_DIR ".svn/pristine/2b"
+#define FILE_DIR ".svn/pristine/2c"
+#define FILE_DIR ".svn/pristine/2d"
+#define FILE_DIR ".svn/pristine/2e"
+#define FILE_DIR ".svn/pristine/2f"
+#define FILE_DIR ".svn/pristine/30"
+#define FILE_DIR ".svn/pristine/31"
+#define FILE_DIR ".svn/pristine/32"
+#define FILE_DIR ".svn/pristine/33"
+#define FILE_DIR ".svn/pristine/34"
+#define FILE_DIR ".svn/pristine/35"
+#define FILE_DIR ".svn/pristine/36"
+#define FILE_DIR ".svn/pristine/37"
+#define FILE_DIR ".svn/pristine/38"
+#define FILE_DIR ".svn/pristine/39"
+#define FILE_DIR ".svn/pristine/3a"
+#define FILE_DIR ".svn/pristine/3b"
+#define FILE_DIR ".svn/pristine/3c"
+#define FILE_DIR ".svn/pristine/3d"
+#define FILE_DIR ".svn/pristine/3e"
+#define FILE_DIR ".svn/pristine/3f"
+#define FILE_DIR ".svn/pristine/40"
+#define FILE_DIR ".svn/pristine/41"
+#define FILE_DIR ".svn/pristine/42"
+#define FILE_DIR ".svn/pristine/43"
+#define FILE_DIR ".svn/pristine/44"
+#define FILE_DIR ".svn/pristine/45"
+#define FILE_DIR ".svn/pristine/46"
+#define FILE_DIR ".svn/pristine/47"
+#define FILE_DIR ".svn/pristine/48"
+#define FILE_DIR ".svn/pristine/49"
+#define FILE_DIR ".svn/pristine/4a"
+#define FILE_DIR ".svn/pristine/4b"
+#define FILE_DIR ".svn/pristine/4c"
+#define FILE_DIR ".svn/pristine/4d"
+#define FILE_DIR ".svn/pristine/4e"
+#define FILE_DIR ".svn/pristine/4f"
+#define FILE_DIR ".svn/pristine/50"
+#define FILE_DIR ".svn/pristine/51"
+#define FILE_DIR ".svn/pristine/52"
+#define FILE_DIR ".svn/pristine/53"
+#define FILE_DIR ".svn/pristine/54"
+#define FILE_DIR ".svn/pristine/55"
+#define FILE_DIR ".svn/pristine/56"
+#define FILE_DIR ".svn/pristine/57"
+#define FILE_DIR ".svn/pristine/58"
+#define FILE_DIR ".svn/pristine/59"
+#define FILE_DIR ".svn/pristine/5a"
+#define FILE_DIR ".svn/pristine/5b"
+#define FILE_DIR ".svn/pristine/5c"
+#define FILE_DIR ".svn/pristine/5d"
+#define FILE_DIR ".svn/pristine/5e"
+#define FILE_DIR ".svn/pristine/5f"
+#define FILE_DIR ".svn/pristine/60"
+#define FILE_DIR ".svn/pristine/61"
+#define FILE_DIR ".svn/pristine/62"
+#define FILE_DIR ".svn/pristine/63"
+#define FILE_DIR ".svn/pristine/64"
+#define FILE_DIR ".svn/pristine/65"
+#define FILE_DIR ".svn/pristine/66"
+#define FILE_DIR ".svn/pristine/67"
+#define FILE_DIR ".svn/pristine/68"
+#define FILE_DIR ".svn/pristine/69"
+#define FILE_DIR ".svn/pristine/6a"
+#define FILE_DIR ".svn/pristine/6b"
+#define FILE_DIR ".svn/pristine/6c"
+#define FILE_DIR ".svn/pristine/6d"
+#define FILE_DIR ".svn/pristine/6e"
+#define FILE_DIR ".svn/pristine/6f"
+#define FILE_DIR ".svn/pristine/70"
+#define FILE_DIR ".svn/pristine/71"
+#define FILE_DIR ".svn/pristine/72"
+#define FILE_DIR ".svn/pristine/73"
+#define FILE_DIR ".svn/pristine/74"
+#define FILE_DIR ".svn/pristine/75"
+#define FILE_DIR ".svn/pristine/76"
+#define FILE_DIR ".svn/pristine/77"
+#define FILE_DIR ".svn/pristine/78"
+#define FILE_DIR ".svn/pristine/79"
+#define FILE_DIR ".svn/pristine/7a"
+#define FILE_DIR ".svn/pristine/7b"
+#define FILE_DIR ".svn/pristine/7c"
+#define FILE_DIR ".svn/pristine/7d"
+#define FILE_DIR ".svn/pristine/7e"
+#define FILE_DIR ".svn/pristine/7f"
+#define FILE_DIR ".svn/pristine/80"
+#define FILE_DIR ".svn/pristine/81"
+#define FILE_DIR ".svn/pristine/82"
+#define FILE_DIR ".svn/pristine/83"
+#define FILE_DIR ".svn/pristine/84"
+#define FILE_DIR ".svn/pristine/85"
+#define FILE_DIR ".svn/pristine/86"
+#define FILE_DIR ".svn/pristine/87"
+#define FILE_DIR ".svn/pristine/88"
+#define FILE_DIR ".svn/pristine/89"
+#define FILE_DIR ".svn/pristine/8a"
+#define FILE_DIR ".svn/pristine/8b"
+#define FILE_DIR ".svn/pristine/8c"
+#define FILE_DIR ".svn/pristine/8d"
+#define FILE_DIR ".svn/pristine/8e"
+#define FILE_DIR ".svn/pristine/8f"
+#define FILE_DIR ".svn/pristine/90"
+#define FILE_DIR ".svn/pristine/91"
+#define FILE_DIR ".svn/pristine/92"
+#define FILE_DIR ".svn/pristine/93"
+#define FILE_DIR ".svn/pristine/94"
+#define FILE_DIR ".svn/pristine/95"
+#define FILE_DIR ".svn/pristine/96"
+#define FILE_DIR ".svn/pristine/97"
+#define FILE_DIR ".svn/pristine/98"
+#define FILE_DIR ".svn/pristine/99"
+#define FILE_DIR ".svn/pristine/9a"
+#define FILE_DIR ".svn/pristine/9b"
+#define FILE_DIR ".svn/pristine/9c"
+#define FILE_DIR ".svn/pristine/9d"
+#define FILE_DIR ".svn/pristine/9e"
+#define FILE_DIR ".svn/pristine/9f"
+#define FILE_DIR ".svn/pristine/a0"
+#define FILE_DIR ".svn/pristine/a1"
+#define FILE_DIR ".svn/pristine/a2"
+#define FILE_DIR ".svn/pristine/a3"
+#define FILE_DIR ".svn/pristine/a4"
+#define FILE_DIR ".svn/pristine/a5"
+#define FILE_DIR ".svn/pristine/a6"
+#define FILE_DIR ".svn/pristine/a7"
+#define FILE_DIR ".svn/pristine/a8"
+#define FILE_DIR ".svn/pristine/a9"
+#define FILE_DIR ".svn/pristine/aa"
+#define FILE_DIR ".svn/pristine/ab"
+#define FILE_DIR ".svn/pristine/ac"
+#define FILE_DIR ".svn/pristine/ad"
+#define FILE_DIR ".svn/pristine/ae"
+#define FILE_DIR ".svn/pristine/af"
+#define FILE_DIR ".svn/pristine/b0"
+#define FILE_DIR ".svn/pristine/b1"
+#define FILE_DIR ".svn/pristine/b2"
+#define FILE_DIR ".svn/pristine/b3"
+#define FILE_DIR ".svn/pristine/b4"
+#define FILE_DIR ".svn/pristine/b5"
+#define FILE_DIR ".svn/pristine/b6"
+#define FILE_DIR ".svn/pristine/b7"
+#define FILE_DIR ".svn/pristine/b8"
+#define FILE_DIR ".svn/pristine/b9"
+#define FILE_DIR ".svn/pristine/ba"
+#define FILE_DIR ".svn/pristine/bb"
+#define FILE_DIR ".svn/pristine/bc"
+#define FILE_DIR ".svn/pristine/bd"
+#define FILE_DIR ".svn/pristine/be"
+#define FILE_DIR ".svn/pristine/bf"
+#define FILE_DIR ".svn/pristine/c0"
+#define FILE_DIR ".svn/pristine/c1"
+#define FILE_DIR ".svn/pristine/c2"
+#define FILE_DIR ".svn/pristine/c3"
+#define FILE_DIR ".svn/pristine/c4"
+#define FILE_DIR ".svn/pristine/c5"
+#define FILE_DIR ".svn/pristine/c6"
+#define FILE_DIR ".svn/pristine/c7"
+#define FILE_DIR ".svn/pristine/c8"
+#define FILE_DIR ".svn/pristine/c9"
+#define FILE_DIR ".svn/pristine/ca"
+#define FILE_DIR ".svn/pristine/cb"
+#define FILE_DIR ".svn/pristine/cc"
+#define FILE_DIR ".svn/pristine/cd"
+#define FILE_DIR ".svn/pristine/ce"
+#define FILE_DIR ".svn/pristine/cf"
+#define FILE_DIR ".svn/pristine/d0"
+#define FILE_DIR ".svn/pristine/d1"
+#define FILE_DIR ".svn/pristine/d2"
+#define FILE_DIR ".svn/pristine/d3"
+#define FILE_DIR ".svn/pristine/d4"
+#define FILE_DIR ".svn/pristine/d5"
+#define FILE_DIR ".svn/pristine/d6"
+#define FILE_DIR ".svn/pristine/d7"
+#define FILE_DIR ".svn/pristine/d8"
+#define FILE_DIR ".svn/pristine/d9"
+#define FILE_DIR ".svn/pristine/da"
+#define FILE_DIR ".svn/pristine/db"
+#define FILE_DIR ".svn/pristine/dc"
+#define FILE_DIR ".svn/pristine/dd"
+#define FILE_DIR ".svn/pristine/de"
+#define FILE_DIR ".svn/pristine/df"
+#define FILE_DIR ".svn/pristine/e0"
+#define FILE_DIR ".svn/pristine/e1"
+#define FILE_DIR ".svn/pristine/e2"
+#define FILE_DIR ".svn/pristine/e3"
+#define FILE_DIR ".svn/pristine/e4"
+#define FILE_DIR ".svn/pristine/e5"
+#define FILE_DIR ".svn/pristine/e6"
+#define FILE_DIR ".svn/pristine/e7"
+#define FILE_DIR ".svn/pristine/e8"
+#define FILE_DIR ".svn/pristine/e9"
+#define FILE_DIR ".svn/pristine/ea"
+#define FILE_DIR ".svn/pristine/eb"
+#define FILE_DIR ".svn/pristine/ec"
+#define FILE_DIR ".svn/pristine/ed"
+#define FILE_DIR ".svn/pristine/ee"
+#define FILE_DIR ".svn/pristine/ef"
+#define FILE_DIR ".svn/pristine/f0"
+#define FILE_DIR ".svn/pristine/f1"
+#define FILE_DIR ".svn/pristine/f2"
+#define FILE_DIR ".svn/pristine/f3"
+#define FILE_DIR ".svn/pristine/f4"
+#define FILE_DIR ".svn/pristine/f5"
+#define FILE_DIR ".svn/pristine/f6"
+#define FILE_DIR ".svn/pristine/f7"
+#define FILE_DIR ".svn/pristine/f8"
+#define FILE_DIR ".svn/pristine/f9"
+#define FILE_DIR ".svn/pristine/fa"
+#define FILE_DIR ".svn/pristine/fb"
+#define FILE_DIR ".svn/pristine/fc"
+#define FILE_DIR ".svn/pristine/fd"
+#define FILE_DIR ".svn/pristine/fe"
+#define FILE_DIR ".svn/pristine/ff"
+#define FILE_DIR "bot"
+#define FILE_DIR "bot/Marakov"
#define FILE_DIR "code"
#define FILE_DIR "code/ATMOSPHERICS"
#define FILE_DIR "code/ATMOSPHERICS/components"
@@ -166,6 +426,18 @@
#define FILE_DIR "code/WorkInProgress/mapload"
#define FILE_DIR "code/WorkInProgress/organs"
#define FILE_DIR "code/WorkInProgress/virus2"
+#define FILE_DIR "config"
+#define FILE_DIR "config/names"
+#define FILE_DIR "data"
+#define FILE_DIR "data/logs"
+#define FILE_DIR "data/logs/2012"
+#define FILE_DIR "data/logs/2012/07-July"
+#define FILE_DIR "data/player_saves"
+#define FILE_DIR "data/player_saves/d"
+#define FILE_DIR "data/player_saves/d/doohl"
+#define FILE_DIR "data/player_saves/g"
+#define FILE_DIR "data/player_saves/g/giacomand"
+#define FILE_DIR "data/player_saves/g/giacomt"
#define FILE_DIR "html"
#define FILE_DIR "icons"
#define FILE_DIR "icons/48x48"
@@ -181,6 +453,7 @@
#define FILE_DIR "icons/obj/machines"
#define FILE_DIR "icons/obj/pipes"
#define FILE_DIR "icons/pda_icons"
+#define FILE_DIR "icons/PSD files"
#define FILE_DIR "icons/spideros_icons"
#define FILE_DIR "icons/Testing"
#define FILE_DIR "icons/turf"
@@ -190,7 +463,9 @@
#define FILE_DIR "interface"
#define FILE_DIR "maps"
#define FILE_DIR "maps/RandomZLevels"
+#define FILE_DIR "music"
#define FILE_DIR "Redirector"
+#define FILE_DIR "Runtime Condenser"
#define FILE_DIR "sound"
#define FILE_DIR "sound/AI"
#define FILE_DIR "sound/ambience"
@@ -203,6 +478,16 @@
#define FILE_DIR "sound/piano"
#define FILE_DIR "sound/voice"
#define FILE_DIR "sound/weapons"
+#define FILE_DIR "SQL"
+#define FILE_DIR "tools"
+#define FILE_DIR "tools/UnstandardnessTestForDM"
+#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM"
+#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin"
+#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug"
+#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj"
+#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86"
+#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug"
+#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties"
// END_FILE_DIR
// BEGIN_PREFERENCES
@@ -661,6 +946,7 @@
#include "code\game\objects\devices\flash.dm"
#include "code\game\objects\devices\flashlight.dm"
#include "code\game\objects\devices\infra_sensor.dm"
+#include "code\game\objects\devices\lightreplacer.dm"
#include "code\game\objects\devices\multitool.dm"
#include "code\game\objects\devices\paicard.dm"
#include "code\game\objects\devices\powersink.dm"