This commit is contained in:
RavingManiac
2015-04-23 22:17:23 +10:00
19 changed files with 1131 additions and 949 deletions
+1
View File
@@ -477,6 +477,7 @@
#include "code\game\machinery\kitchen\smartfridge.dm"
#include "code\game\machinery\pipe\construction.dm"
#include "code\game\machinery\pipe\pipe_dispenser.dm"
#include "code\game\machinery\pipe\pipelayer.dm"
#include "code\game\machinery\telecomms\broadcaster.dm"
#include "code\game\machinery\telecomms\logbrowser.dm"
#include "code\game\machinery\telecomms\machine_interactions.dm"
+137
View File
@@ -0,0 +1,137 @@
/obj/machinery/pipelayer
name = "automatic pipe layer"
icon = 'icons/obj/stationobjs.dmi'
icon_state = "pipe_d"
density = 1
var/turf/old_turf
var/old_dir
var/on = 0
var/a_dis = 0
var/P_type = 0
var/P_type_t = ""
var/max_metal = 50
var/metal = 10
var/obj/item/weapon/wrench/W
var/list/Pipes = list("regular pipes"=0,"scrubbers pipes"=31,"supply pipes"=29,"heat exchange pipes"=2)
/obj/machinery/pipelayer/New()
W = new(src)
..()
/obj/machinery/pipelayer/Move(new_turf,M_Dir)
..()
if(on && a_dis)
dismantleFloor(old_turf)
layPipe(old_turf,M_Dir,old_dir)
old_turf = new_turf
old_dir = turn(M_Dir,180)
/obj/machinery/pipelayer/attack_hand(mob/user as mob)
if(!metal&&!on)
user << "<span class='warning'>\The [src] doesn't work without metal.</span>"
return
on=!on
user.visible_message("<span class='notice'>[user] has [!on?"de":""]activated \the [src].</span>", "<span class='notice'>You [!on?"de":""]activate \the [src].</span>")
return
/obj/machinery/pipelayer/attackby(var/obj/item/W as obj, var/mob/user as mob)
if (istype(W, /obj/item/weapon/wrench))
P_type_t = input("Choose pipe type", "Pipe type") as null|anything in Pipes
P_type = Pipes[P_type_t]
user.visible_message("<span class='notice'>[user] has set \the [src] to manufacture [P_type_t].</span>", "<span class='notice'>You set \the [src] to manufacture [P_type_t].</span>")
return
if(istype(W, /obj/item/weapon/crowbar))
a_dis=!a_dis
user.visible_message("<span class='notice'>[user] has [!a_dis?"de":""]activated auto-dismantling.</span>", "<span class='notice'>You [!a_dis?"de":""]activate auto-dismantling.</span>")
return
if(istype(W, /obj/item/stack/sheet/metal))
var/result = load_metal(W)
if(isnull(result))
user << "<span class='warning'>Unable to load [W] - no metal found.</span>"
else if(!result)
user << "<span class='notice'>\The [src] is full.</span>"
else
user.visible_message("<span class='notice'>[user] has loaded metal into \the [src].</span>", "<span class='notice'>You load metal into \the [src]</span>")
return
if(istype(W, /obj/item/weapon/screwdriver))
if(metal)
var/m = round(input(usr,"Please specify the amount of metal to remove","Remove metal",min(round(metal),50)) as num, 1)
m = min(m, 50)
m = min(m, round(metal))
m = round(m)
if(m)
use_metal(m)
var/obj/item/stack/sheet/metal/MM = new (get_turf(src))
MM.amount = m
user.visible_message("<span class='notice'>[user] removes [m] sheet\s of metal from the \the [src].</span>", "<span class='notice'>You remove [m] sheet\s of metal from \the [src]</span>")
else
user << "\The [src] is empty."
return
..()
/obj/machinery/pipelayer/examine(mob/user)
..()
user << "\The [src] has [metal] sheet\s, is set to produce [P_type_t], and auto-dismantling is [!a_dis?"de":""]activated."
/obj/machinery/pipelayer/proc/reset()
on=0
return
/obj/machinery/pipelayer/proc/load_metal(var/obj/item/stack/sheet/metal/MM)
if(istype(MM) && MM.get_amount())
var/cur_amount = metal
var/to_load = max(max_metal - round(cur_amount),0)
if(to_load)
to_load = min(MM.get_amount(), to_load)
metal += to_load
MM.use(to_load)
return to_load
else
return 0
return
/obj/machinery/pipelayer/proc/use_metal(amount)
if(!metal || metal<amount)
visible_message("\The [src] deactivates as its metal source depletes.")
return
metal-=amount
return 1
/obj/machinery/pipelayer/proc/dismantleFloor(var/turf/new_turf)
if(istype(new_turf, /turf/simulated/floor))
var/turf/simulated/floor/T = new_turf
if(!T.is_plating())
if(!T.broken && !T.burnt)
new T.floor_type(T)
T.make_plating()
return !new_turf.intact
/obj/machinery/pipelayer/proc/layPipe(var/turf/w_turf,var/M_Dir,var/old_dir)
if(!on || !(M_Dir in list(1, 2, 4, 8)) || M_Dir==old_dir)
return reset()
if(!use_metal(0.25))
return reset()
var/fdirn = turn(M_Dir,180)
var/p_type
var/p_dir
if (fdirn!=old_dir)
p_type=1+P_type
p_dir=old_dir+M_Dir
else
p_type=0+P_type
p_dir=M_Dir
var/obj/item/pipe/P = new (w_turf, pipe_type=p_type, dir=p_dir)
P.attackby(W , src)
return 1
@@ -139,9 +139,9 @@
mode_nice = design
mode = "whitebluegreencorners"
tile_dir_mode = 2
else if(design == "delivery" || design == "bot")
else if(design == "delivery" || design == "bot" || design == "white-delivery" || design == "white-bot")
mode_nice = design
mode = design
mode = replacetext(design, "-", "")
tile_dir_mode = 0
else if(design == "loadingarea")
mode_nice = design
+16 -4
View File
@@ -1,14 +1,17 @@
#define SHOWER_OPEN_LAYER MOB_LAYER + 0.1
#define SHOWER_CLOSED_LAYER OBJ_LAYER + 0.4
/obj/structure/curtain
name = "curtain"
icon = 'icons/obj/curtain.dmi'
icon_state = "closed"
layer = MOB_LAYER + 0.1
layer = SHOWER_OPEN_LAYER
opacity = 1
density = 0
/obj/structure/curtain/open
icon_state = "open"
layer = OBJ_LAYER
layer = SHOWER_CLOSED_LAYER
opacity = 0
/obj/structure/curtain/bullet_act(obj/item/projectile/P, def_zone)
@@ -27,10 +30,10 @@
opacity = !opacity
if(opacity)
icon_state = "closed"
layer = MOB_LAYER + 0.1
layer = SHOWER_CLOSED_LAYER
else
icon_state = "open"
layer = OBJ_LAYER
layer = SHOWER_OPEN_LAYER
/obj/structure/curtain/black
name = "black curtain"
@@ -45,3 +48,12 @@
name = "shower curtain"
color = "#ACD1E9"
alpha = 200
/obj/structure/curtain/open/shower/engineering
color = "#FFA500"
/obj/structure/curtain/open/shower/security
color = "#AA0000"
#undef SHOWER_OPEN_LAYER
#undef SHOWER_CLOSED_LAYER
+7 -5
View File
@@ -4,12 +4,12 @@ datum/event/viral_infection
datum/event/viral_infection/setup()
announceWhen = rand(0, 3000)
endWhen = announceWhen + 1
//generate 1-3 viruses. This way there's an upper limit on how many individual diseases need to be cured if many people are initially infected
var/num_diseases = rand(1,3)
for (var/i=0, i < num_diseases, i++)
var/datum/disease2/disease/D = new /datum/disease2/disease
var/strength = 1 //whether the disease is of the greater or lesser variety
if (severity >= EVENT_LEVEL_MAJOR && prob(75))
strength = 2
@@ -24,7 +24,7 @@ datum/event/viral_infection/announce()
level = pick("one", "two", "three", "four")
else
level = "five"
if (severity == EVENT_LEVEL_MAJOR || prob(60))
command_announcement.Announce("Confirmed outbreak of level [level] biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak5.ogg')
@@ -33,8 +33,10 @@ datum/event/viral_infection/start()
var/list/candidates = list() //list of candidate keys
for(var/mob/living/carbon/human/G in player_list)
if(G.client && G.stat != DEAD)
candidates += G
if(G.stat != DEAD && G.is_client_active(5))
var/turf/T = get_turf(G)
if(T.z in config.station_levels)
candidates += G
if(!candidates.len) return
candidates = shuffle(candidates)//Incorporating Donkie's list shuffle
+15 -15
View File
@@ -38,7 +38,7 @@
seed_name = "berry"
display_name = "berry bush"
mutants = list("glowberries","poisonberries")
chems = list("nutriment" = list(1,10), "berryjuice" = list(1,10))
chems = list("nutriment" = list(1,10), "berryjuice" = list(10,10))
kitchen_tag = "berries"
/datum/seed/berry/New()
@@ -76,7 +76,7 @@
seed_name = "poison berry"
display_name = "poison berry bush"
mutants = list("deathberries")
chems = list("nutriment" = list(1), "toxin" = list(3,5), "poisonberryjuice" = list(3,5))
chems = list("nutriment" = list(1), "toxin" = list(3,5), "poisonberryjuice" = list(10,5))
/datum/seed/berry/poison/New()
..()
@@ -138,7 +138,7 @@
seed_name = "tomato"
display_name = "tomato plant"
mutants = list("bluetomato","bloodtomato")
chems = list("nutriment" = list(1,10), "tomatojuice" = list(1,10))
chems = list("nutriment" = list(1,10), "tomatojuice" = list(10,10))
kitchen_tag = "tomato"
/datum/seed/tomato/New()
@@ -196,7 +196,7 @@
seed_name = "bluespace tomato"
display_name = "bluespace tomato plant"
mutants = null
chems = list("nutriment" = list(1,20), "singulo" = list(1,5))
chems = list("nutriment" = list(1,20), "singulo" = list(10,5))
/datum/seed/tomato/blue/teleport/New()
..()
@@ -544,7 +544,7 @@
seed_name = "grape"
display_name = "grapevines"
mutants = list("greengrapes")
chems = list("nutriment" = list(1,10), "sugar" = list(1,5), "grapejuice" = list(1,10))
chems = list("nutriment" = list(1,10), "sugar" = list(1,5), "grapejuice" = list(10,10))
/datum/seed/grapes/New()
..()
@@ -563,7 +563,7 @@
seed_name = "green grape"
display_name = "green grapevines"
mutants = null
chems = list("nutriment" = list(1,10), "kelotane" = list(3,5), "grapejuice" = list(1,10))
chems = list("nutriment" = list(1,10), "kelotane" = list(3,5), "grapejuice" = list(10,10))
/datum/seed/grapes/green/New()
..()
@@ -610,7 +610,7 @@
name = "banana"
seed_name = "banana"
display_name = "banana tree"
chems = list("banana" = list(1,10))
chems = list("banana" = list(10,10))
trash_type = /obj/item/weapon/bananapeel
kitchen_tag = "banana"
@@ -648,7 +648,7 @@
name = "potato"
seed_name = "potato"
display_name = "potatoes"
chems = list("nutriment" = list(1,10), "potato" = list(1,10))
chems = list("nutriment" = list(1,10), "potato" = list(10,10))
kitchen_tag = "potato"
/datum/seed/potato/New()
@@ -666,7 +666,7 @@
name = "soybean"
seed_name = "soybean"
display_name = "soybeans"
chems = list("nutriment" = list(1,20), "soymilk" = list(1,20))
chems = list("nutriment" = list(1,20), "soymilk" = list(10,20))
kitchen_tag = "soybeans"
/datum/seed/soybean/New()
@@ -720,7 +720,7 @@
name = "carrot"
seed_name = "carrot"
display_name = "carrots"
chems = list("nutriment" = list(1,20), "imidazoline" = list(3,5), "carrotjuice" = list(1,20))
chems = list("nutriment" = list(1,20), "imidazoline" = list(3,5), "carrotjuice" = list(10,20))
kitchen_tag = "carrot"
/datum/seed/carrots/New()
@@ -790,7 +790,7 @@
name = "watermelon"
seed_name = "watermelon"
display_name = "watermelon vine"
chems = list("nutriment" = list(1,6), "watermelonjuice" = list(1,6))
chems = list("nutriment" = list(1,6), "watermelonjuice" = list(10,6))
/datum/seed/watermelon/New()
..()
@@ -828,7 +828,7 @@
name = "lime"
seed_name = "lime"
display_name = "lime trees"
chems = list("nutriment" = list(1,20), "limejuice" = list(1,20))
chems = list("nutriment" = list(1,20), "limejuice" = list(10,20))
kitchen_tag = "lime"
/datum/seed/citrus/New()
@@ -847,7 +847,7 @@
name = "lemon"
seed_name = "lemon"
display_name = "lemon trees"
chems = list("nutriment" = list(1,20), "lemonjuice" = list(1,20))
chems = list("nutriment" = list(1,20), "lemonjuice" = list(10,20))
kitchen_tag = "lemon"
/datum/seed/citrus/lemon/New()
@@ -860,7 +860,7 @@
seed_name = "orange"
display_name = "orange trees"
kitchen_tag = "orange"
chems = list("nutriment" = list(1,20), "orangejuice" = list(1,20))
chems = list("nutriment" = list(1,20), "orangejuice" = list(10,20))
/datum/seed/citrus/orange/New()
..()
@@ -906,7 +906,7 @@
seed_name = "cherry"
seed_noun = "pits"
display_name = "cherry tree"
chems = list("nutriment" = list(1,15), "sugar" = list(1,15), "cherryjelly" = list(1,15))
chems = list("nutriment" = list(1,15), "sugar" = list(1,15), "cherryjelly" = list(10,15))
kitchen_tag = "cherries"
/datum/seed/cherries/New()
+4
View File
@@ -615,3 +615,7 @@ proc/is_blind(A)
eyeobj.setLoc(C)
return 1
// Returns true if the mob has a client which has been active in the last given X minutes.
/mob/proc/is_client_active(var/active = 1)
return client && client.inactivity < active MINUTES
+36
View File
@@ -56,6 +56,42 @@
-->
<div class="commit sansserif">
<h2 class="date">23 April 2015</h2>
<h3 class="author">Dennok updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Added an automatic pipelayer.</li>
<li class="rscadd">Added an automatic cablelayer.</li>
</ul>
<h3 class="author">PsiOmegaDelta updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Shower curtains no longer lose their default color upon being washed.</li>
<li class="bugfix">Emergency shutters can again be examined, and from the proper distance.</li>
<li class="bugfix">The virus event will now only infect mobs on the station, currently controlled by player that has been active in the last 5 minutes.</li>
<li class="bugfix">Laptops now use the proper proc for checking camera status.</li>
<li class="rscadd">Makes it possible to eject PDA cartridges using a verb.</li>
<li class="rscadd">Makes it possible to shake tables with one's bare hands to stop climbers.</li>
<li class="bugfix">Added a mass driver door in disposals to prevent trash from floating out into space before proper ejection.</li>
<li class="rscadd">Rig/Hardsuit module tab - Less informative than the NanoUI hardsuit interface but allows quicker access to the various rig modules.</li>
<li class="rscadd">Silicons with the medical augmentation sensors enabled now also see alive/dead status if sensors are set accordingly.</li>
<li class="rscadd">Emergency shutters opened by silicons are now treated as having been forced open by a crowbar.</li>
<li class="rscadd">An active AI chassis can now be pushed, just as an empty chassis can be.</li>
<li class="rscadd">The AI can now use the crew monitor console to track crew members with full sensors enabled.</li>
<li class="rscadd">The AI now has a shortcut to track people holding up messages to cameras.</li>
<li class="rscadd">The AI now has a shortcut to track people sending PDA messages.</li>
<li class="rscadd">Multiple AIs can now share the same holopad.</li>
<li class="rscadd">Admin ghosts can now transfer other ghosts into mobs by drag-clicking.</li>
<li class="rscadd">Ghosts can now toggle seeing darkness and other ghosts separately.</li>
<li class="rscadd">Moving while dead now auto-ghosts you.</li>
<li class="rscadd">Two new random events: Space dust and gravitation failure.</li>
<li class="rscadd">Upgraded wizard spell interface and new spells.</li>
<li class="rscadd">More uplink items.</li>
<li class="rscadd">Uplink items now have rudimentary descriptions.</li>
</ul>
<h3 class="author">Yoshax updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Adjusts fruits and other stuff to have a minmum of 10 units of juice and stuff.</li>
</ul>
<h2 class="date">18 April 2015</h2>
<h3 class="author">PsiOmegaDelta updated:</h3>
<ul class="changes bgimages16">
+36
View File
@@ -1567,3 +1567,39 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
PsiOmegaDelta:
- rscadd: Added a changelog editing system that should cause fewer conflicts and
more accurate timestamps.
2015-04-23:
Dennok:
- rscadd: Added an automatic pipelayer.
- rscadd: Added an automatic cablelayer.
PsiOmegaDelta:
- bugfix: Shower curtains no longer lose their default color upon being washed.
- bugfix: Emergency shutters can again be examined, and from the proper distance.
- bugfix: The virus event will now only infect mobs on the station, currently controlled
by player that has been active in the last 5 minutes.
- bugfix: Laptops now use the proper proc for checking camera status.
- rscadd: Makes it possible to eject PDA cartridges using a verb.
- rscadd: Makes it possible to shake tables with one's bare hands to stop climbers.
- bugfix: Added a mass driver door in disposals to prevent trash from floating out
into space before proper ejection.
- rscadd: Rig/Hardsuit module tab - Less informative than the NanoUI hardsuit interface
but allows quicker access to the various rig modules.
- rscadd: Silicons with the medical augmentation sensors enabled now also see alive/dead
status if sensors are set accordingly.
- rscadd: Emergency shutters opened by silicons are now treated as having been forced
open by a crowbar.
- rscadd: An active AI chassis can now be pushed, just as an empty chassis can be.
- rscadd: The AI can now use the crew monitor console to track crew members with
full sensors enabled.
- rscadd: The AI now has a shortcut to track people holding up messages to cameras.
- rscadd: The AI now has a shortcut to track people sending PDA messages.
- rscadd: Multiple AIs can now share the same holopad.
- rscadd: Admin ghosts can now transfer other ghosts into mobs by drag-clicking.
- rscadd: Ghosts can now toggle seeing darkness and other ghosts separately.
- rscadd: Moving while dead now auto-ghosts you.
- rscadd: 'Two new random events: Space dust and gravitation failure.'
- rscadd: Upgraded wizard spell interface and new spells.
- rscadd: More uplink items.
- rscadd: Uplink items now have rudimentary descriptions.
Yoshax:
- tweak: Adjusts fruits and other stuff to have a minmum of 10 units of juice and
stuff.
-5
View File
@@ -1,5 +0,0 @@
author: Dennok
delete-after: True
changes:
- rscadd: "Added a automatic CableLayer."
@@ -1,5 +0,0 @@
author: PsiOmegaDelta
delete-after: True
changes:
- bugfix: "Emergency shutters can again be examined, and from the proper distance."
@@ -1,5 +0,0 @@
author: PsiOmegaDelta
delete-after: True
changes:
- bugfix: "Laptops now use the proper proc for checking camera status."
@@ -1,5 +0,0 @@
author: PsiOmegaDelta
delete-after: True
changes:
- rscadd: "Makes it possible to eject PDA cartridges using a verb."
@@ -1,5 +0,0 @@
author: PsiOmegaDelta
delete-after: True
changes:
- rscadd: "Makes it possible to shake tables with one's bare hands to stop climbers."
@@ -1,5 +0,0 @@
author: PsiOmegaDelta
delete-after: True
changes:
- bugfix: "Added a mass driver door in disposals to prevent trash from floating out into space before proper ejection."
+2 -18
View File
@@ -1,19 +1,3 @@
author: PsiOmegaDelta
delete-after: False
changes:
- rscadd: Rig/Hardsuit module tab - Less informative than the NanoUI hardsuit interface but allows quicker access to the various rig modules.
- rscadd: Silicons with the medical augmentation sensors enabled now also see alive/dead status if sensors are set accordingly.
- rscadd: Emergency shutters opened by silicons are now treated as having been forced open by a crowbar.
- rscadd: An active AI chassis can now be pushed, just as an empty chassis can be.
- rscadd: The AI can now use the crew monitor console to track crew members with full sensors enabled.
- rscadd: The AI now has a shortcut to track people holding up messages to cameras.
- rscadd: The AI now has a shortcut to track people sending PDA messages.
- rscadd: Multiple AIs can now share the same holopad.
- rscadd: Admin ghosts can now transfer other ghosts into mobs by drag-clicking.
- rscadd: Ghosts can now toggle seeing darkness and other ghosts separately.
- rscadd: Moving while dead now auto-ghosts you.
- rscadd: Two new random events: Space dust and gravitation failure.
- rscadd: Upgraded wizard spell interface and new spells.
- rscadd: More uplink items.
- rscadd: Uplink items now have rudimentary descriptions.
changes: []
delete-after: false
+1 -1
View File
@@ -4,7 +4,7 @@ Changelogs are included with commits as text .yml files created individually by
TO MAKE A CHANGELOG .YML ENTRRY
1. Make a copy of the file example.yml in html/changelogs and rename it to [YOUR USERNAME]-PR-[YOUR PR NUMBER].yml (the pr and pr number are organizational and can be ignored if you so wish)
1. Make a copy of the file example.yml in html/changelogs and rename it to [YOUR USERNAME]-PR-[YOUR PR NUMBER].yml or [YOUR USERNAME]-[YOUR BRANCH NAME]. Only the username is strictly required, anything else is organizational and can be ignored if you so wish.
2. Change the author to yourself
+2 -2
View File
@@ -29,8 +29,8 @@ 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.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "Added a changelog editing system that should cause fewer conflicts and more accurate timestamps."
- rscdel: "Killed innocent kittens."
+872 -872
View File
File diff suppressed because it is too large Load Diff