Merge branch 'dev' into ofChemistryAndStuff

Conflicts:
	code/modules/reagents/Chemistry-Recipes.dm
This commit is contained in:
Kelenius
2015-04-28 19:22:35 +03:00
27 changed files with 398 additions and 143 deletions
+2
View File
@@ -955,8 +955,10 @@
#include "code\modules\economy\Events.dm"
#include "code\modules\economy\Events_Mundane.dm"
#include "code\modules\economy\TradeDestinations.dm"
#include "code\modules\events\apc_damage.dm"
#include "code\modules\events\blob.dm"
#include "code\modules\events\brand_intelligence.dm"
#include "code\modules\events\camera_damage.dm"
#include "code\modules\events\carp_migration.dm"
#include "code\modules\events\comms_blackout.dm"
#include "code\modules\events\communications_blackout.dm"
+6 -2
View File
@@ -1,6 +1,6 @@
/obj/item/weapon/flame/candle
name = "red candle"
desc = "a candle"
desc = "a small pillar candle. Its specially-formulated fuel-oxidizer wax mixture allows continued combustion in airless environments."
icon = 'icons/obj/candle.dmi'
icon_state = "candle1"
item_state = "candle1"
@@ -8,6 +8,10 @@
var/wax = 2000
/obj/item/weapon/flame/candle/New()
wax = rand(800, 1000) // Enough for 27-33 minutes. 30 minutes on average.
..()
/obj/item/weapon/flame/candle/update_icon()
var/i
if(wax > 1500)
@@ -80,4 +84,4 @@
/obj/item/weapon/flame/candle/dropped(mob/user)
if(lit)
user.SetLuminosity(user.luminosity - CANDLE_LUM)
SetLuminosity(CANDLE_LUM)
SetLuminosity(CANDLE_LUM)
@@ -131,6 +131,7 @@
/obj/item/weapon/storage/firstaid/surgery
name = "surgery kit"
desc = "Contains tools for surgery."
storage_slots = 10
/obj/item/weapon/storage/firstaid/surgery/New()
..()
@@ -142,6 +143,9 @@
new /obj/item/weapon/retractor(src)
new /obj/item/weapon/scalpel(src)
new /obj/item/weapon/surgicaldrill(src)
new /obj/item/weapon/bonegel(src)
new /obj/item/weapon/FixOVein(src)
new /obj/item/stack/medical/advanced/bruise_pack(src)
return
/*
+54
View File
@@ -0,0 +1,54 @@
/datum/event/apc_damage
var/apcSelectionRange = 25
/datum/event/apc_damage/start()
var/obj/machinery/power/apc/A = acquire_random_apc()
var/severity_range = 0
switch(severity)
if(EVENT_LEVEL_MUNDANE)
severity_range = 0
if(EVENT_LEVEL_MODERATE)
severity_range = 7
if(EVENT_LEVEL_MAJOR)
severity_range = 15
for(var/obj/machinery/power/apc/apc in range(severity_range,A))
if(is_valid_apc(apc))
apc.emagged = 1
apc.update_icon()
/datum/event/apc_damage/proc/acquire_random_apc()
var/list/possibleEpicentres = list()
var/list/apcs = list()
for(var/obj/effect/landmark/newEpicentre in landmarks_list)
if(newEpicentre.name == "lightsout")
possibleEpicentres += newEpicentre
if(!possibleEpicentres.len)
return
var/epicentre = pick(possibleEpicentres)
for(var/obj/machinery/power/apc/apc in range(epicentre,apcSelectionRange))
if(is_valid_apc(apc))
apcs += apc
// Greatly increase the chance for APCs in maintenance areas to be selected
var/area/A = get_area(apc)
if(istype(A,/area/maintenance))
apcs += apc
apcs += apc
if(!apcs.len)
return
return pick(apcs)
/datum/event/apc_damage/proc/is_valid_apc(var/obj/machinery/power/apc/apc)
// Type must be exactly a basic APC.
// This generally prevents affecting APCs in critical areas (AI core, engine room, etc.) as they often use higher capacity subtypes.
if(apc.type != /obj/machinery/power/apc)
return 0
var/turf/T = get_turf(apc)
return !apc.emagged && T && (T.z in config.player_levels)
+38
View File
@@ -0,0 +1,38 @@
/datum/event/camera_damage/start()
var/obj/machinery/camera/C = acquire_random_camera()
if(!C)
return
var/severity_range = 0
switch(severity)
if(EVENT_LEVEL_MUNDANE)
severity_range = 0
if(EVENT_LEVEL_MODERATE)
severity_range = 7
if(EVENT_LEVEL_MAJOR)
severity_range = 15
for(var/obj/machinery/camera/cam in range(severity_range,C))
if(is_valid_camera(cam))
if(prob(2*severity))
cam.destroy()
else
cam.wires.UpdateCut(CAMERA_WIRE_POWER, 0)
if(prob(5*severity))
cam.wires.UpdateCut(CAMERA_WIRE_ALARM, 0)
/datum/event/camera_damage/proc/acquire_random_camera(var/remaining_attempts = 5)
if(!cameranet.cameras.len)
return
if(!remaining_attempts)
return
var/obj/machinery/camera/C = pick(cameranet.cameras)
if(is_valid_camera(C))
return C
return acquire_random_camera(remaining_attempts--)
/datum/event/camera_damage/proc/is_valid_camera(var/obj/machinery/camera/C)
// Only return a functional camera, not installed in a silicon, and that exists somewhere players have access
var/turf/T = get_turf(C)
return T && C.can_use() && !istype(C.loc, /mob/living/silicon) && (T.z in config.player_levels)
@@ -12,9 +12,9 @@
A << "<br>"
if(prob(30)) //most of the time, we don't want an announcement, so as to allow AIs to fake blackouts.
command_announcement.Announce(alert, new_sound = sound('sound/misc/interference.ogg', volume=50))
command_announcement.Announce(alert, new_sound = sound('sound/misc/interference.ogg', volume=25))
/datum/event/communications_blackout/start()
for(var/obj/machinery/telecomms/T in telecomms_list)
T.emp_act(1)
T.emp_act(1)
+1 -1
View File
@@ -25,4 +25,4 @@
for(var/obj/effect/landmark/epicentre in epicentreList)
for(var/obj/machinery/power/apc/apc in range(epicentre,lightsoutRange))
apc.overload_lighting()
apc.overload_lighting()
+3 -1
View File
@@ -127,11 +127,13 @@ var/global/list/severity_to_string = list(EVENT_LEVEL_MUNDANE = "Mundane", EVENT
available_events = list(
// Severity level, event name, even type, base weight, role weights, one shot, min weight, max weight. Last two only used if set and non-zero
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Nothing", /datum/event/nothing, 100),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "APC Damage", /datum/event/apc_damage, 20, list(ASSIGNMENT_ENGINEER = 10)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Brand Intelligence",/datum/event/brand_intelligence,20, list(ASSIGNMENT_JANITOR = 25), 1),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Camera Damage", /datum/event/camera_damage, 20, list(ASSIGNMENT_ENGINEER = 10)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Economic News", /datum/event/economic_event, 300),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Lost Carp", /datum/event/carp_migration, 20, list(ASSIGNMENT_SECURITY = 10), 1),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Money Hacker", /datum/event/money_hacker, 0, list(ASSIGNMENT_ANY = 4), 1, 10, 25),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Money Lotto", /datum/event/money_lotto, 0, list(ASSIGNMENT_ANY = 1), 1, 5, 15),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Lost Carp", /datum/event/carp_migration, 20, list(ASSIGNMENT_SECURITY = 10), 1),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Mundane News", /datum/event/mundane_news, 300),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "PDA Spam", /datum/event/pda_spam, 0, list(ASSIGNMENT_ANY = 4), 0, 25, 50),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Space Dust", /datum/event/dust , 30, list(ASSIGNMENT_ENGINEER = 5), 0, 0, 50),
@@ -0,0 +1,133 @@
/obj/machinery/beehive
name = "beehive"
icon = 'icons/obj/apiary_bees_etc.dmi'
icon_state = "apiary"
density = 1
anchored = 1
var/closed = 0
var/bee_count = 0 // A real hive has 20k - 80k bees... we tone it down
var/smoked = 0
var/honeycombs = 0
var/frames = 0
var/maxFrames = 5
/obj/machinery/beehive/attackby(var/obj/item/I, var/mob/user)
if(istype(I, /obj/item/weapon/crowbar))
closed = !closed
user.visible_message("<span class='notice'>[user] [closed ? "closes" : "opens"] \the [src].</span>", "<span class='notice'>You [closed ? "close" : "open"] \the [src]")
else if(istype(I, /obj/item/weapon/wrench))
anchored = !anchored
user.visible_message("<span class='notice'>[user] [closed ? "wrenches" : "unwrenches"] \the [src].</span>", "<span class='notice'>You [closed ? "wrench" : "unwrench"] \the [src]")
else if(istype(I, /obj/item/bee_smoker))
if(!closed)
user << "<span class='notice'>You need to open \the [src] with a crowbar before smoking the bees.</span>"
return
user.visible_message("<span class='notice'>[user] smokes the bees in \the [src].</span>", "<span class='notice'>You smoke the bees in \the [src].</span>")
smoked = 30
else if(istype(I, /obj/item/honey_frame))
if(closed)
user << "<span class='notice'>You need to open \the [src] with a crowbar before inserting \the [I].</span>"
return
if(frames >= maxFrames)
user << "<span class='notice'>There is no place for an another frame.</span>"
return
var/obj/item/honey_frame/H = I
if(H.honey)
user << "<span class='notice'>\The [I] is full with beeswax and honey, empty it in the extractor first.</span>"
return
++frames
user.visible_message("<span class='notice'>[user] loads \the [I] into \the [src].</span>", "<span class='notice'>You load \the [I] into \the [src].</span>")
qdel(I)
/obj/machinery/beehive/attack_hand(var/mob/user)
if(!closed)
if(honeycombs < 1)
user << "<span class='notice'>There are no filled honeycombs.</span>"
return
user.visible_message("<span class='notice'>[user] starts taking the honeycombs out of \the [src].", "<span class='notice'>You start taking the honeycombs out of \the [src]...")
while(honeycombs > 1 && do_after(user, 30))
new /obj/item/honey_frame/filled(loc)
--honeycombs
--frames
user << "<span class='notice'>You take all filled honeycombs out.</span>"
/obj/machinery/beehive/process()
if(closed && !smoked)
pollinate_flowers()
smoked = max(0, smoked - 1)
/obj/machinery/beehive/proc/pollinate_flowers()
for(var/obj/machinery/portable_atmospherics/hydroponics/H in view(7, src))
if(H.seed && !H.dead)
H.health += 0.05
honeycombs = max(honeycombs + 0.01, frames) // 100/tray amount ticks per frame, each 20 units of honey
/obj/machinery/honey_extractor
name = "honey extractor"
desc = "A machine used to turn honeycombs on the frame into honey and wax."
icon = 'icons/obj/virology.dmi'
icon_state = "centrifuge"
var/processing = 0
var/honey = 0
/obj/machinery/honey_extractor/attackby(var/obj/item/I, var/mob/user)
if(processing)
user << "<span class='notice'>\The [src] is currently spinning, wait until it's finished.</span>"
return
else if(istype(I, /obj/item/honey_frame))
var/obj/item/honey_frame/H = I
if(!H.honey)
user << "<span class='notice'>\The [H] is empty, put it into a beehive.</span>"
return
user.visible_message("<span class='notice'>[user] loads \the [H] into \the [src] and turns it on.</span>", "<span class='notice'>You load \the [H] into \the [src] and turn it on.</span>")
processing = H.honey
qdel(H)
spawn(50)
new /obj/item/honey_frame(loc)
//new /obj/item/stack/wax(loc)
honey += processing
processing = 0
else if(istype(I, /obj/item/weapon/reagent_containers/glass))
var/obj/item/weapon/reagent_containers/glass/G = I
var/transferred = min(G.reagents.maximum_volume - G.reagents.total_volume, honey)
G.reagents.add_reagent("honey", transferred)
honey -= transferred
user.visible_message("<span class='notice'>[user] collects honey from \the [src] into \the [G].</span>", "<span class='notice'>You collect [transferred] units of honey from \the [src] into the [G].</span>")
return 1
/obj/item/bee_smoker
name = "bee smoker"
desc = "A device used to calm down bees before harvesting honey."
icon = 'icons/obj/apiary_bees_etc.dmi'
icon_state = "apiary"
w_class = 2
/obj/item/honey_frame
name = "beehive frame"
desc = "A frame for the beehive that the bees will fill with honeycombs."
icon = 'icons/obj/apiary_bees_etc.dmi'
icon_state = "apiary"
w_class = 2
var/honey = 0
/obj/item/honey_frame/filled
name = "filled beehive frame"
desc = "A frame for the beehive that the bees have filled with honeycombs."
honey = 20
/obj/item/beehive_assembly
name = "beehive assembly"
desc = "Contains everything you need to build a beehive. Cannot be disassembled once deployed."
icon = 'icons/obj/apiary_bees_etc.dmi'
icon_state = "apiary"
/obj/item/beehive_assembly/attack_self(var/mob/user)
new /obj/machinery/beehive(get_turf(user))
qdel(src)
/obj/item/bee_pack
name = "bee pack"
desc = "A stasis-pack that contains a queen bee and some workers. Put it into the beehive to wake them up."
+4 -1
View File
@@ -231,12 +231,15 @@
S.remove_from_storage(O, src)
O.loc = src
var/newID = 0
for (var/datum/seed_pile/N in piles)
if (N.matches(O))
++N.amount
N.seeds += (O)
return
else if(N.ID >= newID)
newID = N.ID + 1
piles += new /datum/seed_pile(O, piles.len)
piles += new /datum/seed_pile(O, newID)
return
@@ -10,6 +10,10 @@
sleep(1)
for(var/obj/item/I in src)
drop_from_inventory(I)
I.throw_at(get_edge_target_turf(src,pick(alldirs)), rand(1,3), round(30/I.w_class))
..(species.gibbed_anim)
gibs(loc, viruses, dna, null, species.flesh_color, species.blood_color)
+13 -3
View File
@@ -22,6 +22,7 @@
var/info_links //A different version of the paper which includes html links at fields and EOF
var/stamps //The (text for the) stamps on the paper.
var/fields //Amount of user created fields
var/free_space = MAX_PAPER_MESSAGE_LEN
var/list/stamped
var/list/ico[0] //Icons and
var/list/offset_x[0] //offsets stored for later
@@ -51,6 +52,7 @@
spawn(2)
update_icon()
update_space(info)
updateinfolinks()
return
@@ -62,6 +64,12 @@
return
icon_state = "paper"
/obj/item/weapon/paper/proc/update_space(var/new_text)
if(!new_text)
return
free_space -= length(strip_html_properly(new_text, 0))
/obj/item/weapon/paper/examine(mob/user)
..()
if(in_range(user, src) || istype(user, /mob/dead/observer))
@@ -188,6 +196,7 @@
/obj/item/weapon/paper/proc/clearpaper()
info = null
stamps = null
free_space = MAX_PAPER_MESSAGE_LEN
stamped = list()
overlays.Cut()
updateinfolinks()
@@ -327,12 +336,11 @@
var/id = href_list["write"]
//var/t = strip_html_simple(input(usr, "What text do you wish to add to " + (id=="end" ? "the end of the paper" : "field "+id) + "?", "[name]", null),8192) as message
var/textlimit = MAX_PAPER_MESSAGE_LEN - length(info)
if(textlimit <= 0)
if(free_space <= 0)
usr << "<span class='info'>There isn't enough space left on \the [src] to write anything.</span>"
return
var/t = sanitize(input("Enter what you want to write:", "Write", null, null) as message, textlimit, extra = 0)
var/t = strip_html_properly(input("Enter what you want to write:", "Write", null, null) as message)
if(!t)
return
@@ -378,6 +386,8 @@
info += t // Oh, he wants to edit to the end of the file, let him.
updateinfolinks()
update_space(t)
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[info_links][stamps]</BODY></HTML>", "window=[name]") // Update the window
update_icon()
+6 -4
View File
@@ -9,7 +9,7 @@
#define LIGHT_BROKEN 2
#define LIGHT_BURNED 3
#define LIGHT_BULB_TEMPERATURE 400 //K - used value for a 60W bulb
/obj/item/light_fixture_frame
name = "light fixture frame"
@@ -487,11 +487,13 @@
var/mob/living/carbon/human/H = user
if(istype(H))
if(H.gloves)
if(H.species.heat_level_1 > LIGHT_BULB_TEMPERATURE)
prot = 1
else if(H.gloves)
var/obj/item/clothing/gloves/G = H.gloves
if(G.max_heat_protection_temperature)
prot = (G.max_heat_protection_temperature > 360)
if(G.max_heat_protection_temperature > LIGHT_BULB_TEMPERATURE)
prot = 1
else
prot = 1
+17 -12
View File
@@ -446,9 +446,8 @@
result_amount = 1
/datum/chemical_reaction/phoronsolidification/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
new /obj/item/stack/sheet/mineral/phoron(location)
return
new /obj/item/stack/sheet/mineral/phoron(get_turf(holder.my_atom), created_volume)
return
/datum/chemical_reaction/plastication
name = "Plastic"
@@ -595,7 +594,7 @@
var/location = get_turf(holder.my_atom)
for(var/mob/M in viewers(5, location))
M << "\red The solution spews out foam!"
M << "<span class='warning'>The solution spews out foam!</span>"
var/datum/effect/effect/system/foam_spread/s = new()
s.set_up(created_volume, location, holder, 0)
@@ -614,7 +613,7 @@
var/location = get_turf(holder.my_atom)
for(var/mob/M in viewers(5, location))
M << "\red The solution spews out a metalic foam!"
M << "<span class='warning'>The solution spews out a metalic foam!</span>"
var/datum/effect/effect/system/foam_spread/s = new()
s.set_up(created_volume, location, holder, 1)
@@ -632,7 +631,7 @@
var/location = get_turf(holder.my_atom)
for(var/mob/M in viewers(5, location))
M << "\red The solution spews out a metalic foam!"
M << "<span class='warning'>The solution spews out a metalic foam!</span>"
var/datum/effect/effect/system/foam_spread/s = new()
s.set_up(created_volume, location, holder, 2)
@@ -1272,7 +1271,8 @@
/datum/chemical_reaction/cheesewheel/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
new /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel(location)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel(location)
return
/datum/chemical_reaction/meatball
@@ -1282,8 +1282,10 @@
required_reagents = list("protein" = 3, "flour" = 5)
result_amount = 3
/datum/chemical_reaction/meatball/on_reaction(var/datum/reagents/holder, var/created_volume)
new /obj/item/weapon/reagent_containers/food/snacks/meatball(get_turf(holder.my_atom))
/datum/chemical_reaction/meatball/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/meatball(location)
return
/datum/chemical_reaction/dough
@@ -1293,8 +1295,10 @@
required_reagents = list("egg" = 3, "flour" = 10)
result_amount = 1
/datum/chemical_reaction/dough/on_reaction(var/datum/reagents/holder, var/created_volume)
new /obj/item/weapon/reagent_containers/food/snacks/dough(get_turf(holder.my_atom))
/datum/chemical_reaction/dough/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/dough(location)
return
/datum/chemical_reaction/syntiflesh
@@ -1306,7 +1310,8 @@
/datum/chemical_reaction/syntiflesh/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
new /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh(location)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh(location)
return
/datum/chemical_reaction/hot_ramen
+46
View File
@@ -56,6 +56,52 @@
-->
<div class="commit sansserif">
<h2 class="date">28 April 2015</h2>
<h3 class="author">Jarcolr updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Added 9 new bar sign designs/sprites.</li>
</ul>
<h3 class="author">Kelenius updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Good news to the roboticists! The long waited firmware update for the bots has arrived. You can expect the following changes:</li>
<li class="rscadd">Medbots have improved the disease detection algorithms.</li>
<li class="rscadd">Floorbot firmware has been bugtested. In particular, they will no longer get stuck near the windows, hopelessly trying to fix the floor under the glass.</li>
<li class="rscadd">Floorbots have also received an internal low-power metal synthesizer. They will use it to make their own tiles. Slowly.</li>
<li class="rscadd">Following the complains from humanitarian organizations regarding securitron brutality, stength of their stunners has been toned down. They will also politely demand that you get on the floor before arresting you. Except for the taser-mounted guys, they will still tase you down.</li>
<li class="rscadd">Other minor fixes.</li>
<li class="rscdel">The lasertag bots are now forbidden to build and use following the incident #1526672. Please don't let it happen again.</li>
<li class="rscadd">The farmbot design has been finished! Made from a watertank, robot arm, plant analyzer, bucket, minihoe and a proximity sensor, these small (not really) bots will be a useful companion to any gardener and/or xenobotanist.</li>
<li class="tweak">Spider learning alert: they have learned to recognize the bots and will mercilessly attack them.</li>
<li class="rscadd">An experimental CPU upgrade would theoretically allow any of the bots to function with the same intelligence capacity as the maintenance drones. We still have no idea what causes it to boot up. Science!</li>
<li class="rscadd">INCOMING TRANSMISSION: Greetings to agents, pirates, operatives, and anyone who otherwise uses our equipment. Following the NT update of bot firmware, we have updated the cryptographic sequencer's hacking routines as well. The medbots you emag will not poison you anymore, the clanbots won't clean after themselves immediately, and floorbots... wear a space suit. Oh, and it works on the new farmbots, too.</li>
</ul>
<h3 class="author">PsiOmegaDelta updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Beware. Airlocks can now crush more things than just mobs.</li>
<li class="rscadd">AIs now have a personal atmospherics control subsystem.</li>
<li class="rscadd">Some borg modules now have additional subsystems.</li>
<li class="tweak">Improves borg module handling.</li>
<li class="tweak">Secure airlocks now buzz when access is denied.</li>
<li class="tweak">The mental health office door now requires psychiatrist access, and the related button now opens/closes the door instead of bolting.</li>
<li class="soundadd">Restores an old soundtrack 'Thunderdome.ogg'.</li>
<li class="rscadd">Some holodeck programs now have custom ambience tracks.</li>
</ul>
<h3 class="author">RavingManiac updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">The phoron research lab has been renovated to include a heat-exchange system, a gas mixer/filter and a waste gas disposal pump.</li>
<li class="tweak">Candles now burn for about 30 mintutes.</li>
</ul>
<h3 class="author">Yoshax updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Adds items to the orderable antag surgical kit so its actually useful for surgery.</li>
<li class="tweak">Adjusts custom loadout costs to be more standardised and balances. Purely cosmetic items, shoes, hats, and all things that do not provide a straight advtange (sterile mask, or pAI, protection from viruses and possible door hacking or records access, respectively), each cost 1 point, items that provide an advantage like those just mentioned, or provide armor or storage cost 2 points.</li>
<li class="rscadd">Adds practice rounds, both .45 for Sec and Detective's guns, also 9mm top mounted for the Saber, and for the Bulldog.</li>
<li class="rscadd">Adds the .45 and 9mm practice rounds to the armory.</li>
<li class="rscadd">Adds all the practice rounds to the autolathe.</li>
<li class="tweak">Adds r_walls to the back of the firing range, leaves the sides normal.</li>
<li class="bugfix">Fixes HoS' office door to not be CMO locked.</li>
</ul>
<h2 class="date">24 April 2015</h2>
<h3 class="author">Dennok updated:</h3>
<ul class="changes bgimages16">
+60
View File
@@ -1608,3 +1608,63 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- bugfix: Fixes overmap ship speed calculations.
- rscadd: Adds overmap ship rotation.
- rscadd: Added a floorlayer.
2015-04-28:
Jarcolr:
- rscadd: Added 9 new bar sign designs/sprites.
Kelenius:
- rscadd: 'Good news to the roboticists! The long waited firmware update for the
bots has arrived. You can expect the following changes:'
- rscadd: Medbots have improved the disease detection algorithms.
- rscadd: Floorbot firmware has been bugtested. In particular, they will no longer
get stuck near the windows, hopelessly trying to fix the floor under the glass.
- rscadd: Floorbots have also received an internal low-power metal synthesizer.
They will use it to make their own tiles. Slowly.
- rscadd: Following the complains from humanitarian organizations regarding securitron
brutality, stength of their stunners has been toned down. They will also politely
demand that you get on the floor before arresting you. Except for the taser-mounted
guys, they will still tase you down.
- rscadd: Other minor fixes.
- rscdel: 'The lasertag bots are now forbidden to build and use following the incident
#1526672. Please don''t let it happen again.'
- rscadd: The farmbot design has been finished! Made from a watertank, robot arm,
plant analyzer, bucket, minihoe and a proximity sensor, these small (not really)
bots will be a useful companion to any gardener and/or xenobotanist.
- tweak: 'Spider learning alert: they have learned to recognize the bots and will
mercilessly attack them.'
- rscadd: An experimental CPU upgrade would theoretically allow any of the bots
to function with the same intelligence capacity as the maintenance drones. We
still have no idea what causes it to boot up. Science!
- rscadd: 'INCOMING TRANSMISSION: Greetings to agents, pirates, operatives, and
anyone who otherwise uses our equipment. Following the NT update of bot firmware,
we have updated the cryptographic sequencer''s hacking routines as well. The
medbots you emag will not poison you anymore, the clanbots won''t clean after
themselves immediately, and floorbots... wear a space suit. Oh, and it works
on the new farmbots, too.'
PsiOmegaDelta:
- rscadd: Beware. Airlocks can now crush more things than just mobs.
- rscadd: AIs now have a personal atmospherics control subsystem.
- rscadd: Some borg modules now have additional subsystems.
- tweak: Improves borg module handling.
- tweak: Secure airlocks now buzz when access is denied.
- tweak: The mental health office door now requires psychiatrist access, and the
related button now opens/closes the door instead of bolting.
- soundadd: Restores an old soundtrack 'Thunderdome.ogg'.
- rscadd: Some holodeck programs now have custom ambience tracks.
RavingManiac:
- rscadd: The phoron research lab has been renovated to include a heat-exchange
system, a gas mixer/filter and a waste gas disposal pump.
- tweak: Candles now burn for about 30 mintutes.
Yoshax:
- tweak: Adds items to the orderable antag surgical kit so its actually useful for
surgery.
- tweak: Adjusts custom loadout costs to be more standardised and balances. Purely
cosmetic items, shoes, hats, and all things that do not provide a straight advtange
(sterile mask, or pAI, protection from viruses and possible door hacking or
records access, respectively), each cost 1 point, items that provide an advantage
like those just mentioned, or provide armor or storage cost 2 points.
- rscadd: Adds practice rounds, both .45 for Sec and Detective's guns, also 9mm
top mounted for the Saber, and for the Bulldog.
- rscadd: Adds the .45 and 9mm practice rounds to the armory.
- rscadd: Adds all the practice rounds to the autolathe.
- tweak: Adds r_walls to the back of the firing range, leaves the sides normal.
- bugfix: Fixes HoS' office door to not be CMO locked.
-6
View File
@@ -1,6 +0,0 @@
author: Jarcolr
delete-after: True
changes:
- rscadd: "Added 9 new bar sign designs/sprites."
@@ -1,4 +0,0 @@
author: PsiOmegaDelta
changes:
- rscadd: "Beware. Airlocks can now crush more things than just mobs."
delete-after: True
@@ -1,6 +0,0 @@
author: PsiOmegaDelta
delete-after: True
changes:
- rscadd: "AIs now have a personal atmospherics control subsystem."
- rscadd: "Some borg modules now have additional subsystems."
- tweak: "Improves borg module handling."
@@ -1,4 +0,0 @@
author: PsiOmegaDelta
delete-after: True
changes:
- tweak: "Secure airlocks now buzz when access is denied."
@@ -0,0 +1,4 @@
author: PsiOmegaDelta
delete-after: True
changes:
- rscadd: "Two new events which will cause damage to APCs or cameras when triggered."
+1 -4
View File
@@ -1,6 +1,3 @@
author: PsiOmegaDelta
changes:
- tweak: "The mental health office door now requires psychiatrist access, and the related button now opens/closes the door instead of bolting."
- soundadd: "Restores an old soundtrack 'Thunderdome.ogg'."
- rscadd: "Some holodeck programs now have custom ambience tracks."
changes: []
delete-after: false
-35
View File
@@ -1,35 +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
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: RavingManiac
# 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, this gets changed to [] after reading. Just remove the brackets when you add new shit.
# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "The phoron research lab has been renovated to include a heat-exchange system, a gas mixer/filter and a waste gas disposal pump."
-5
View File
@@ -1,5 +0,0 @@
author: Yoshax
delete-after: True
changes:
- tweak: "Adjusts custom loadout costs to be more standardised and balances. Purely cosmetic items, shoes, hats, and all things that do not provide a straight advtange (sterile mask, or pAI, protection from viruses and possible door hacking or records access, respectively), each cost 1 point, items that provide an advantage like those just mentioned, or provide armor or storage cost 2 points."
@@ -1,8 +0,0 @@
author: Yoshax
delete-after: True
changes:
- rscadd: "Adds practice rounds, both .45 for Sec and Detective's guns, also 9mm top mounted for the Saber, and for the Bulldog
- rscadd: "Adds the .45 and 9mm practice rounds to the armory."
- rscadd: "Adds all the practice rounds to the autolathe."
- tweak: "Adds r_walls to the back of the firing range, leaves the sides normal."
-5
View File
@@ -1,5 +0,0 @@
author: Yoshax
delete-after: True
changes:
- bugfix: "Fixes HoS' office door to not be CMO locked."
-40
View File
@@ -1,40 +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
# spellcheck (typo fixes)
# experiment
#################################
# Your name.
author: Kelenius
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
changes:
- rscadd: "Good news to the roboticists! The long waited firmware update for the bots has arrived. You can expect the following changes:"
- rscadd: "Medbots have improved the disease detection algorithms."
- rscadd: "Floorbot firmware has been bugtested. In particular, they will no longer get stuck near the windows, hopelessly trying to fix the floor under the glass."
- rscadd: "Floorbots have also received an internal low-power metal synthesizer. They will use it to make their own tiles. Slowly."
- rscadd: "Following the complains from humanitarian organizations regarding securitron brutality, stength of their stunners has been toned down. They will also politely demand that you get on the floor before arresting you. Except for the taser-mounted guys, they will still tase you down."
- rscadd: "Other minor fixes."
- rscdel: "The lasertag bots are now forbidden to build and use following the incident #1526672. Please don't let it happen again."
- scaadd: "The farmbot design has been finished! Made from a watertank, robot arm, plant analyzer, bucket, minihoe and a proximity sensor, these small (not really) bots will be a useful companion to any gardener and/or xenobotanist."
- tweak: "Spider learning alert: they have learned to recognize the bots and will mercilessly attack them."
- scadd: "An experimental CPU upgrade would theoretically allow any of the bots to function with the same intelligence capacity as the maintenance drones. We still have no idea what causes it to boot up. Science!"
- scadd: "INCOMING TRANSMISSION: Greetings to agents, pirates, operatives, and anyone who otherwise uses our equipment. Following the NT update of bot firmware, we have updated the cryptographic sequencer's hacking routines as well. The medbots you emag will not poison you anymore, the clanbots won't clean after themselves immediately, and floorbots... wear a space suit. Oh, and it works on the new farmbots, too."