Merge branch 'master' into bleeding-edge-freeze

Conflicts:
	html/changelog.html

Signed-off-by: Mloc <colmohici@gmail.com>
This commit is contained in:
Mloc
2013-05-16 12:21:55 +01:00
21 changed files with 78 additions and 83 deletions

View File

@@ -706,7 +706,8 @@
// given an optional turf to avoid // given an optional turf to avoid
/obj/machinery/bot/mulebot/proc/calc_path(var/turf/avoid = null) /obj/machinery/bot/mulebot/proc/calc_path(var/turf/avoid = null)
src.path = AStar(src.loc, src.target, /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance, 0, 250, id=botcard, exclude=avoid) src.path = AStar(src.loc, src.target, /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance, 0, 250, id=botcard, exclude=avoid)
src.path = reverselist(src.path) if(!src.path)
src.path = list()
// sets the current destination // sets the current destination

View File

@@ -150,6 +150,17 @@ obj/structure/ex_act(severity)
pod_moving = 1 pod_moving = 1
close_animation() close_animation()
sleep(CLOSE_DURATION + 2) sleep(CLOSE_DURATION + 2)
//reverse directions for automated cycling
var/turf/next_loc = get_step(loc, pod.dir)
var/obj/structure/transit_tube/nexttube
for(var/obj/structure/transit_tube/tube in next_loc)
if(tube.has_entrance(pod.dir))
nexttube = tube
break
if(!nexttube)
pod.dir = turn(pod.dir, 180)
if(icon_state == "closed" && pod) if(icon_state == "closed" && pod)
pod.follow_tube() pod.follow_tube()

View File

@@ -273,5 +273,9 @@
'icons/spideros_icons/sos_11.png', 'icons/spideros_icons/sos_11.png',
'icons/spideros_icons/sos_12.png', 'icons/spideros_icons/sos_12.png',
'icons/spideros_icons/sos_13.png', 'icons/spideros_icons/sos_13.png',
'icons/spideros_icons/sos_14.png' 'icons/spideros_icons/sos_14.png',
'icons/xenoarch_icons/chart1.jpg',
'icons/xenoarch_icons/chart2.jpg',
'icons/xenoarch_icons/chart3.jpg',
'icons/xenoarch_icons/chart4.jpg'
) )

View File

@@ -252,7 +252,7 @@ datum/preferences
dat += "Blood Type: <a href='byond://?src=\ref[user];preference=b_type;task=input'>[b_type]</a><br>" dat += "Blood Type: <a href='byond://?src=\ref[user];preference=b_type;task=input'>[b_type]</a><br>"
dat += "Skin Tone: <a href='?_src_=prefs;preference=s_tone;task=input'>[-s_tone + 35]/220<br></a>" dat += "Skin Tone: <a href='?_src_=prefs;preference=s_tone;task=input'>[-s_tone + 35]/220<br></a>"
//dat += "Skin pattern: <a href='byond://?src=\ref[user];preference=skin_style;task=input'>Adjust</a><br>" //dat += "Skin pattern: <a href='byond://?src=\ref[user];preference=skin_style;task=input'>Adjust</a><br>"
//dat += "Needs Glasses: <a href='?_src_=prefs;preference=disabilities'><b>[disabilities == 0 ? "No" : "Yes"]</b></a><br>" dat += "Needs Glasses: <a href='?_src_=prefs;preference=disabilities'><b>[disabilities == 0 ? "No" : "Yes"]</b></a><br>"
dat += "Limbs: <a href='byond://?src=\ref[user];preference=limbs;task=input'>Adjust</a><br>" dat += "Limbs: <a href='byond://?src=\ref[user];preference=limbs;task=input'>Adjust</a><br>"
//display limbs below //display limbs below

View File

@@ -1,5 +1,5 @@
#define SAVEFILE_VERSION_MIN 8 #define SAVEFILE_VERSION_MIN 8
#define SAVEFILE_VERSION_MAX 8 #define SAVEFILE_VERSION_MAX 9
//handles converting savefiles to new formats //handles converting savefiles to new formats
//MAKE SURE YOU KEEP THIS UP TO DATE! //MAKE SURE YOU KEEP THIS UP TO DATE!

View File

@@ -344,14 +344,13 @@ commented out in r5061, I left it because of the shroom thingies
user << "\red You start [P.drill_verb][fail_message ? fail_message : ""]." user << "\red You start [P.drill_verb][fail_message ? fail_message : ""]."
if(fail_message) if(fail_message && prob(90))
if(prob(50)) if(prob(25))
if(prob(25)) excavate_find(5, src.finds[1])
excavate_find(5, src.finds[1]) else if(prob(50))
else if(prob(50)) src.finds.Remove(src.finds[1])
src.finds.Remove(src.finds[1]) if(prob(50))
if(prob(50)) artifact_debris()
artifact_debris()
if(do_after(user,P.digspeed)) if(do_after(user,P.digspeed))
user << "\blue You finish [P.drill_verb] the rock." user << "\blue You finish [P.drill_verb] the rock."
@@ -425,8 +424,6 @@ commented out in r5061, I left it because of the shroom thingies
//extract pesky minerals while we're excavating //extract pesky minerals while we're excavating
while(excavation_minerals.len && src.excavation_level > excavation_minerals[excavation_minerals.len]) while(excavation_minerals.len && src.excavation_level > excavation_minerals[excavation_minerals.len])
drop_mineral() drop_mineral()
//have a 50% chance to extract bonus minerals this way
//if(prob(50))
pop(excavation_minerals) pop(excavation_minerals)
mineralAmt-- mineralAmt--
@@ -456,13 +453,6 @@ commented out in r5061, I left it because of the shroom thingies
O = new /obj/item/weapon/ore/plasma(src) O = new /obj/item/weapon/ore/plasma(src)
if (src.mineralName == "Diamond") if (src.mineralName == "Diamond")
O = new /obj/item/weapon/ore/diamond(src) O = new /obj/item/weapon/ore/diamond(src)
/*if (src.mineralName == "Archaeo")
//new /obj/item/weapon/archaeological_find(src)
//if(prob(10) || delicate)
if(prob(50)) //Don't have delicate tools (hand pick/excavation tool) yet, temporarily change to 50% instead of 10% -Mij
O = new /obj/item/weapon/ore/strangerock(src)
else
destroyed = 1*/
if (src.mineralName == "Clown") if (src.mineralName == "Clown")
O = new /obj/item/weapon/ore/clown(src) O = new /obj/item/weapon/ore/clown(src)
if(O) if(O)
@@ -496,14 +486,9 @@ commented out in r5061, I left it because of the shroom thingies
M.Stun(5) M.Stun(5)
M.apply_effect(25, IRRADIATE) M.apply_effect(25, IRRADIATE)
/*if (prob(src.artifactChance))
//spawn a rare artifact here
new /obj/machinery/artifact(src)*/
var/turf/simulated/floor/plating/airless/asteroid/N = ChangeTurf(/turf/simulated/floor/plating/airless/asteroid) var/turf/simulated/floor/plating/airless/asteroid/N = ChangeTurf(/turf/simulated/floor/plating/airless/asteroid)
N.fullUpdateMineralOverlays() N.fullUpdateMineralOverlays()
/*if(destroyed) //Display message about being a terrible miner
usr << "\red You destroy some of the rocks!"*/
return return
/turf/simulated/mineral/proc/excavate_find(var/prob_clean = 0, var/datum/find/F) /turf/simulated/mineral/proc/excavate_find(var/prob_clean = 0, var/datum/find/F)

View File

@@ -559,7 +559,7 @@ datum/preferences
clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY)
if(disabilities & NEARSIGHTED) if(disabilities & NEARSIGHTED)
clothes_s.Blend(new /icon('icons/mob/eyes.dmi', "glasses"), ICON_OVERLAY) preview_icon.Blend(new /icon('icons/mob/eyes.dmi', "glasses"), ICON_OVERLAY)
preview_icon.Blend(eyes_s, ICON_OVERLAY) preview_icon.Blend(eyes_s, ICON_OVERLAY)
if(clothes_s) if(clothes_s)

View File

@@ -9,7 +9,7 @@
var/view_range = 20 //how close excavation has to come to show an overlay on the turf var/view_range = 20 //how close excavation has to come to show an overlay on the turf
var/clearance_range = 3 //how close excavation has to come to extract the item var/clearance_range = 3 //how close excavation has to come to extract the item
//if excavation hits var/excavation_required exactly, it's contained find is extracted cleanly without the ore //if excavation hits var/excavation_required exactly, it's contained find is extracted cleanly without the ore
var/prob_delicate = 75 //probability it requires an active suspension field to not insta-crumble var/prob_delicate = 90 //probability it requires an active suspension field to not insta-crumble
var/dissonance_spread = 1 //proportion of the tile that is affected by this find var/dissonance_spread = 1 //proportion of the tile that is affected by this find
//used in conjunction with analysis machines to determine correct suspension field type //used in conjunction with analysis machines to determine correct suspension field type
@@ -276,6 +276,7 @@
if(19) if(19)
apply_prefix = 0 apply_prefix = 0
new_item = new /obj/item/weapon/claymore(src.loc) new_item = new /obj/item/weapon/claymore(src.loc)
new_item.force = 10
item_type = new_item.name item_type = new_item.name
if(20) if(20)
//arcane clothing //arcane clothing
@@ -318,6 +319,7 @@
if(25) if(25)
apply_prefix = 0 apply_prefix = 0
new_item = new /obj/item/weapon/katana(src.loc) new_item = new /obj/item/weapon/katana(src.loc)
new_item.force = 10
item_type = new_item.name item_type = new_item.name
if(26) if(26)
//energy gun //energy gun

View File

@@ -18,26 +18,23 @@ obj/machinery/anomaly/accelerator/ScanResults()
num_reagents++ num_reagents++
if(num_reagents == 2 && scanned_sample && carrier_name) if(num_reagents == 2 && scanned_sample && carrier_name)
var/accuracy = GetResultSpecifity(scanned_sample, carrier_name) var/specifity = GetResultSpecifity(scanned_sample, carrier_name)
accuracy += 0.5 * (1 - accuracy) / scanned_sample.total_spread results = "Kinetic acceleration of carrier ([carrier_name]) indicates age ([100 * specifity]% accuracy): <br><br>"
if(!accuracy)
accuracy = rand(0.01, 0.5)
results = "Kinetic acceleration of carrier ([carrier_name]) indicates age ([100 * accuracy]% accuracy): <br><br>"
if(scanned_sample.age_billion) if(scanned_sample.age_billion)
var/displayed_age_millions = scanned_sample.age_million + max(scanned_sample.age_million * ((1 - accuracy) * (2 * rand() - 1)), 0) var/displayed_age_millions = scanned_sample.age_million + max(scanned_sample.age_million * ((1 - specifity) * (2 * rand() - 1)), 0)
var/displayed_age_billions = scanned_sample.age_billion + max(scanned_sample.age_billion * ((1 - accuracy) * (2 * rand() - 1)), 0) var/displayed_age_billions = scanned_sample.age_billion + max(scanned_sample.age_billion * ((1 - specifity) * (2 * rand() - 1)), 0)
results += "[displayed_age_billions + displayed_age_millions / 1000] billion years.<br>" results += "[displayed_age_billions + displayed_age_millions / 1000] billion years.<br>"
else if(scanned_sample.age_million) else if(scanned_sample.age_million)
var/displayed_age_thousands = scanned_sample.age_thousand + max(scanned_sample.age_thousand * ((1 - accuracy) * (4 * rand() - 2)), 0) var/displayed_age_thousands = scanned_sample.age_thousand + max(scanned_sample.age_thousand * ((1 - specifity) * (4 * rand() - 2)), 0)
var/displayed_age_millions = scanned_sample.age_million + max(scanned_sample.age_million * ((1 - accuracy) * (2 * rand() - 1)), 0) var/displayed_age_millions = scanned_sample.age_million + max(scanned_sample.age_million * ((1 - specifity) * (2 * rand() - 1)), 0)
results += "[displayed_age_millions + displayed_age_thousands / 1000] million years.<br>" results += "[displayed_age_millions + displayed_age_thousands / 1000] million years.<br>"
else if(scanned_sample.age_thousand) else if(scanned_sample.age_thousand)
var/displayed_age = scanned_sample.age + max(scanned_sample.age * ((1 - accuracy) * (8 * rand() - 4)), 0) var/displayed_age = scanned_sample.age + max(scanned_sample.age * ((1 - specifity) * (8 * rand() - 4)), 0)
var/displayed_age_thousands = scanned_sample.age_thousand + max(scanned_sample.age * ((1 - accuracy) * (4 * rand() - 2)), 0) var/displayed_age_thousands = scanned_sample.age_thousand + max(scanned_sample.age * ((1 - specifity) * (4 * rand() - 2)), 0)
results += "[displayed_age_thousands + displayed_age / 1000] thousand years.<br>" results += "[displayed_age_thousands + displayed_age / 1000] thousand years.<br>"
else else
var/displayed_age = scanned_sample.age + max(scanned_sample.age * ((1 - accuracy) * (8 * rand() - 4)), 0) var/displayed_age = scanned_sample.age + max(scanned_sample.age * ((1 - specifity) * (8 * rand() - 4)), 0)
results += "[displayed_age] years.<br>" results += "[displayed_age] years.<br>"
results += "<br>Warning, results only valid for ages on the scale of billions of years." results += "<br>Warning, results only valid for ages on the scale of billions of years."

View File

@@ -110,7 +110,7 @@
dat += "Scan in progress<br><br><br>" dat += "Scan in progress<br><br><br>"
else else
dat += "[held_container ? "<A href='?src=\ref[src];eject_beaker=1'>Eject beaker</a>" : "No beaker inserted."]<br>" dat += "[held_container ? "<A href='?src=\ref[src];eject_beaker=1'>Eject beaker</a>" : "No beaker inserted."]<br>"
dat += "[fuel_container ? "<A href='?src=\ref[src];eject_fuel=1'>Eject fuel tank</a>" : "No fuel tank inserted."]<br>" //dat += "[fuel_container ? "<A href='?src=\ref[src];eject_fuel=1'>Eject fuel tank</a>" : "No fuel tank inserted."]<br>"
dat += "[held_container ? "<A href='?src=\ref[src];begin=1'>Begin scanning</a>" : ""]" dat += "[held_container ? "<A href='?src=\ref[src];begin=1'>Begin scanning</a>" : ""]"
dat += "<hr>" dat += "<hr>"
dat += "<A href='?src=\ref[src];refresh=1'>Refresh</a><BR>" dat += "<A href='?src=\ref[src];refresh=1'>Refresh</a><BR>"
@@ -130,7 +130,7 @@ obj/machinery/anomaly/attackby(obj/item/weapon/W as obj, mob/living/user as mob)
held_container.loc = src held_container.loc = src
updateDialog() updateDialog()
else if(istype(W, /obj/item/weapon/tank)) /*else if(istype(W, /obj/item/weapon/tank))
//var/obj/item/weapon/reagent_containers/glass/G = W //var/obj/item/weapon/reagent_containers/glass/G = W
if(fuel_container) if(fuel_container)
user << "\red You must remove the [fuel_container] first." user << "\red You must remove the [fuel_container] first."
@@ -139,7 +139,7 @@ obj/machinery/anomaly/attackby(obj/item/weapon/W as obj, mob/living/user as mob)
user.drop_item(W) user.drop_item(W)
fuel_container.loc = src fuel_container.loc = src
fuel_container = W fuel_container = W
updateDialog() updateDialog()*/
else else
return ..() return ..()

View File

@@ -19,16 +19,11 @@ obj/machinery/anomaly/fourier_transform/ScanResults()
if(num_reagents == 2 && scanned_sample && carrier) if(num_reagents == 2 && scanned_sample && carrier)
//all necessary components are present //all necessary components are present
var/accuracy = GetResultSpecifity(scanned_sample, carrier) var/specifity = GetResultSpecifity(scanned_sample, carrier)
var/distance = scanned_sample.artifact_distance var/distance = scanned_sample.artifact_distance
if(distance > 0) if(distance > 0)
if(prob(accuracy)) distance += (2 * rand() - 1) * distance * 0.05
distance += (2 * rand() - 1) * distance * 0.05 results = "Fourier transform analysis on anomalous energy absorption through carrier ([carrier]) indicates source located inside emission radius ([95 * specifity]% accuracy): [distance]."
accuracy = 0.95 + 0.05 * (2 * rand() - 1)
else
var/offset = 1 - accuracy
distance += (2 * rand() - 1) * distance * offset
results = "Fourier transform analysis on anomalous energy absorption through carrier ([carrier]) indicates source located inside emission radius ([100 * accuracy]% accuracy): [distance]."
else else
results = "Energy dispersion detected throughout sample consistent with background readings.<br>" results = "Energy dispersion detected throughout sample consistent with background readings.<br>"
if(carrier == scanned_sample.source_mineral) if(carrier == scanned_sample.source_mineral)

View File

@@ -18,16 +18,13 @@ obj/machinery/anomaly/gas_chromatography/ScanResults()
num_reagents++ num_reagents++
if(num_reagents == 2 && scanned_sample) if(num_reagents == 2 && scanned_sample)
var/specifity = GetResultSpecifity(scanned_sample, carrier)
var/specifity = 0.15 results = "Chromatography partitioning analysis over carrier ([carrier]) indicates the following elements present ([100 * specifity]% accuracy):<br><br>"
if(carrier)
specifity = GetResultSpecifity(scanned_sample, carrier)
results = "Chromatography partitioning analysis over carrier ([carrier]) indicates the following elements present ([110 * (specifity / (specifity + 0.1))]% accuracy):<br><br>"
var/num_found = 0 var/num_found = 0
for(var/index=1,index <= scanned_sample.find_presence.len, index++) for(var/index=1,index <= scanned_sample.find_presence.len, index++)
var/find = scanned_sample.find_presence[index] var/find = scanned_sample.find_presence[index]
if(find && prob( 110 * (specifity / (specifity + 0.1)) )) if(find && prob(100 * specifity))
results += " - " + finds_as_strings[index] + "<br>" results += " - " + finds_as_strings[index] + "<br>"
num_found++ num_found++

View File

@@ -32,13 +32,17 @@ obj/machinery/anomaly/hyperspectral/ScanResults()
var/specifity = GetResultSpecifity(scanned_sample, carrier) var/specifity = GetResultSpecifity(scanned_sample, carrier)
results = "Spectral signature over carrier ([carrier]):<br>" results = "Spectral signature over carrier ([carrier]):<br>"
if(specifity <= 0.25) if(specifity <= 0.25)
results += "<img src=\"http://i.imgur.com/TAQHn.jpg\"></img><br>" //results += "<img src=\"http://i.imgur.com/TAQHn.jpg\"></img><br>"
results += "<img src=chart1.jpg>"
else if(specifity <= 0.5) else if(specifity <= 0.5)
results += "<img src=\"http://i.imgur.com/EwOZ7.jpg\"></img><br>" //results += "<img src=\"http://i.imgur.com/EwOZ7.jpg\"></img><br>"
results += "<img src=chart2.jpg>"
else if(specifity <= 0.75) else if(specifity <= 0.75)
results += "<img src=\"http://i.imgur.com/1qCae.jpg\"></img><br>" //results += "<img src=\"http://i.imgur.com/1qCae.jpg\"></img><br>"
results += "<img src=chart3.jpg>"
else else
results += "<img src=\"http://i.imgur.com/9T9nc.jpg\"></img><br>" //results += "<img src=\"http://i.imgur.com/9T9nc.jpg\"></img><br>"
results += "<img src=chart4.jpg>"
results += "<br>" results += "<br>"
if(scanned_sample.artifact_id) if(scanned_sample.artifact_id)

View File

@@ -8,6 +8,7 @@
icon = 'device.dmi' icon = 'device.dmi'
icon_state = "locator" icon_state = "locator"
item_state = "locator" item_state = "locator"
w_class = 2
/obj/item/device/gps/attack_self(var/mob/user as mob) /obj/item/device/gps/attack_self(var/mob/user as mob)
var/turf/T = get_turf(src) var/turf/T = get_turf(src)
@@ -18,5 +19,6 @@
desc = "A coiled metallic tape used to check dimensions and lengths." desc = "A coiled metallic tape used to check dimensions and lengths."
icon = 'icons/obj/xenoarchaeology.dmi' icon = 'icons/obj/xenoarchaeology.dmi'
icon_state = "measuring" icon_state = "measuring"
w_class = 2
//todo: dig site tape //todo: dig site tape

View File

@@ -22,6 +22,7 @@
var/clearance = 0 var/clearance = 0
var/record_index = 1 var/record_index = 1
var/dissonance_spread = 1 var/dissonance_spread = 1
var/material = "unknown"
/obj/item/device/depth_scanner/proc/scan_atom(var/mob/user, var/atom/A) /obj/item/device/depth_scanner/proc/scan_atom(var/mob/user, var/atom/A)
user.visible_message("\blue [user] scans [A], the air around them humming gently.") user.visible_message("\blue [user] scans [A], the air around them humming gently.")
@@ -34,12 +35,14 @@
D.coords = "[M.x].[rand(0,9)]:[M.y].[rand(0,9)]:[10 * M.z].[rand(0,9)]" D.coords = "[M.x].[rand(0,9)]:[M.y].[rand(0,9)]:[10 * M.z].[rand(0,9)]"
D.time = worldtime2text() D.time = worldtime2text()
D.record_index = positive_locations.len + 1 D.record_index = positive_locations.len + 1
D.material = M.mineralName
//find whichever is closer: find or mineral //find whichever is closer: find or mineral
if(M.finds.len) if(M.finds.len)
var/datum/find/F = M.finds[1] var/datum/find/F = M.finds[1]
D.depth = F.excavation_required * 2 D.depth = F.excavation_required * 2
D.clearance = F.clearance_range * 2 D.clearance = F.clearance_range * 2
D.material = get_responsive_reagent(F.find_type)
if(M.excavation_minerals.len) if(M.excavation_minerals.len)
if(M.excavation_minerals[1] < D.depth) if(M.excavation_minerals[1] < D.depth)
D.depth = M.excavation_minerals[1] D.depth = M.excavation_minerals[1]

View File

@@ -109,7 +109,7 @@
item_state = "syringe_kit" item_state = "syringe_kit"
foldable = /obj/item/stack/sheet/cardboard //BubbleWrap foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
storage_slots = 8 storage_slots = 8
w_class = 4 w_class = 3
can_hold = list("/obj/item/weapon/pickaxe/brush",\ can_hold = list("/obj/item/weapon/pickaxe/brush",\
"/obj/item/weapon/pickaxe/one_pick",\ "/obj/item/weapon/pickaxe/one_pick",\
"/obj/item/weapon/pickaxe/two_pick",\ "/obj/item/weapon/pickaxe/two_pick",\
@@ -118,7 +118,7 @@
"/obj/item/weapon/pickaxe/five_pick",\ "/obj/item/weapon/pickaxe/five_pick",\
"/obj/item/weapon/pickaxe/six_pick",\ "/obj/item/weapon/pickaxe/six_pick",\
"/obj/item/weapon/pickaxe/hand") "/obj/item/weapon/pickaxe/hand")
max_combined_w_class = 20 max_combined_w_class = 11
max_w_class = 4 max_w_class = 4
use_to_pickup = 1 // for picking up broken bulbs, not that most people will try use_to_pickup = 1 // for picking up broken bulbs, not that most people will try

View File

@@ -89,7 +89,8 @@ should be listed in the changelog upon commit though. Thanks. -->
<li class="tweak">Violin spawns in theatre storage now. I didn't put the piano there though, that was someone else.</li> <li class="tweak">Violin spawns in theatre storage now. I didn't put the piano there though, that was someone else.</li>
<li class="tweak">Psych office in medbay has been made better looking.</li> <li class="tweak">Psych office in medbay has been made better looking.</li>
</ul> </ul>
</div> </div>
<div class="commit sansserif"> <div class="commit sansserif">
<h2 class="date">24th April 2013</h2> <h2 class="date">24th April 2013</h2>
<h3 class="author">NerdyBoy1104 updated:</h3> <h3 class="author">NerdyBoy1104 updated:</h3>
@@ -101,26 +102,10 @@ should be listed in the changelog upon commit though. Thanks. -->
</div> </div>
<div class="commit sansserif"> <div class="commit sansserif">
<h2 class="date">24th April 2013</h2> <h2 class="date">Spamcat</h2>
<h3 class="author">faux updated:</h3> <h3 class="author">04.05.2013 updated:</h3>
<ul class="changes bgimages16"> <ul class="changes bgimages16">
<li class="imageadd">Mixed Wardrobe Closet now has colored shoes and plaid skirts.</li> <li class="bugfix">Blood type is now saved in character creation menu, no need to edit it manually every round.</li>
<li class="imageadd">Dress uniforms added to the Captain, RD, and HoP wardrobe closets. A uniform jacket has also been added to the Captain's closet. HoS' hat has been re-added to their closet. I do not love the CMO and CE enough to give them anything.</li>
<li class="imageadd">Atheletic closet now has five different swimsuits *for the ladies* in them. If you are a guy, be prepared to be yelled at if you run around like a moron in one of these. Same goes for ladies who run around in shorts with their titties swaying in the space winds.</li>
<li class="imageadd">A set of dispatcher uniforms will spawn in the security closet. These are for playtesting the dispatcher role.</li>
<li class="imageadd">New suit spawns in the laundry room. It's for geezer's only. You're welcome, Book.</li>
<li class="imageadd">Nurse outfit variant, orderly uniform, and first responder jacket will now spawn in the medical wardrobe closet.</li>
<li class="imageadd">A white wedding dress will spawn in the chaplain's closet. There are also several dresses currently only adminspawnable. Admins: Look either under "bride" or "dress." The bride one leads to the colored wedding dresses, and there are some other kinds of dresses under dress.</li>
<li class="tweak">No more luchador masks or boxing gloves or boxing ring. You guys have a swimming pool now, dip in and enjoy it.</li>
<li class="tweak">The meeting hall has been replaced with an awkwardly placed security office meant for prisoner processing.</li>
<li class="tweak">Added a couple more welding goggles to engineering since you guys liked those a lot.</li>
<li class="imageadd">Flasks spawn behind the bar. Only three. Don't fight over them. I don't know how to add them to the bar vending machine otherwise I would have done that instead. Detective, you have your own flask in your office, it's underneath the cigarettes on your desk.</li>
<li class="tweak">Added two canes to the medical storage, for people who have leg injuries and can't walk good and stuff. I do not want to see doctors pretending to be House. These are for patients. Do not make me delete this addition and declare you guys not being able to have nice things.</li>
<li class="tweak">Secondary entance to EVA now directly leads into the medbay hardsuit section. Sorry for any inconviences this will cause. The CMO can now fetch the hardsuits whenever they want.</li>
<li class="tweak">Secondary security hardsuit has been added to the armory. Security members please stop stealing engineer's hardsuits when you guys want to pair up for space travel.</li>
<li class="tweak">Firelocks have been moved around in the main hallways to form really ghetto versions of airlocks.</li>
<li class="tweak">Violin spawns in theatre storage now. I didn't put the piano there though, that was someone else.</li>
<li class="tweak">Psych office in medbay has been made better looking.</li>
</ul> </ul>
</div> </div>
@@ -171,6 +156,15 @@ should be listed in the changelog upon commit though. Thanks. -->
</ul> </ul>
</div> </div>
<div class="commit sansserif">
<h2 class="date">May 14th 2013</h2>
<h3 class="author">Cael_Aislinn updated:</h3>
<ul class="changes bgimages16">
<li class="experiment">Depth scanners can now be used to determine what material archaeological deposits are made of, meaning lab analysis is no longer required.</li>
<li class="tweak">Some useability issues with xenoarchaeology tools have been resolved, and the transit pods cycle automatically now.</li>
</ul>
</div>
<div class="commit sansserif"> <div class="commit sansserif">
<h2 class="date">11 April 2013</h2> <h2 class="date">11 April 2013</h2>
<h3 class="author">SkyMarshal updated:</h3> <h3 class="author">SkyMarshal updated:</h3>

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB