Merge branch 'master' of github.com:Baystation12/Baystation12

This commit is contained in:
Miniature
2012-06-20 20:28:06 +09:30
110 changed files with 4587 additions and 3162 deletions
+2
View File
@@ -733,6 +733,7 @@
#include "code\game\objects\items\weapons\plant_bag.dm"
#include "code\game\objects\items\weapons\RCD.dm"
#include "code\game\objects\items\weapons\RSF.dm"
#include "code\game\objects\items\weapons\stunbaton.dm"
#include "code\game\objects\items\weapons\stungloves.dm"
#include "code\game\objects\items\weapons\surgery_limbattachment.dm"
#include "code\game\objects\items\weapons\surgery_tools.dm"
@@ -897,6 +898,7 @@
#include "code\modules\food\meat.dm"
#include "code\modules\food\recipes_microwave.dm"
#include "code\modules\maps\dmm_suite.dm"
#include "code\modules\maps\randomZlevel.dm"
#include "code\modules\maps\reader.dm"
#include "code\modules\maps\SwapMaps.dm"
#include "code\modules\maps\writer.dm"
+59 -66
View File
@@ -8,14 +8,15 @@
#define UL_I_EXTINGUISHED 1
#define UL_I_ONZERO 2
#define ul_LightingEnabled 1
#define ul_LightingResolution 1
#define ul_Steps 7
#define ul_FalloffStyle UL_I_FALLOFF_ROUND // Sets the lighting falloff to be either squared or circular.
#define ul_Layer 10
var
ul_LightingEnabled = 1
ul_LightingResolution = 1
ul_LightingResolutionSqrt = sqrt(ul_LightingResolution)
ul_Steps = 7
ul_FalloffStyle = UL_I_FALLOFF_ROUND // Sets the lighting falloff to be either squared or circular.
ul_TopLuminosity = 0
ul_Layer = 10
ul_SuppressLightLevelChanges = 0
list/ul_FastRoot = list(0, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5,
@@ -85,35 +86,35 @@ atom/proc/ul_Illuminate()
if(DeltaRed > 0)
if(!Affected.MaxRed)
Affected.MaxRed = list()
var/list/parameter_list = params2list(Affected.MaxRedValues)
if(!("[DeltaRed]" in parameter_list))
Affected.MaxRedSources = list()
if(!(DeltaRed in Affected.MaxRed))
Affected.MaxRed.Add(DeltaRed)
parameter_list["[DeltaRed]"] = 1
Affected.MaxRedSources.Add(1)
else
parameter_list["[DeltaRed]"] = "[text2num(parameter_list["[DeltaRed]"]) + 1]"
Affected.MaxRedValues = list2params(parameter_list)
var/list_location = Affected.MaxRed.Find(DeltaRed)
Affected.MaxRedSources[list_location]++
if(DeltaGreen > 0)
if(!Affected.MaxGreen)
Affected.MaxGreen = list()
var/list/parameter_list = params2list(Affected.MaxGreenValues)
if(!("[DeltaGreen]" in parameter_list))
Affected.MaxGreenSources = list()
if(!(DeltaGreen in Affected.MaxGreen))
Affected.MaxGreen.Add(DeltaGreen)
parameter_list["[DeltaGreen]"] = 1
Affected.MaxGreenSources.Add(1)
else
parameter_list["[DeltaGreen]"] = "[text2num(parameter_list["[DeltaGreen]"]) + 1]"
Affected.MaxGreenValues = list2params(parameter_list)
var/list_location = Affected.MaxGreen.Find(DeltaGreen)
Affected.MaxGreenSources[list_location]++
if(DeltaBlue > 0)
if(!Affected.MaxBlue)
Affected.MaxBlue = list()
var/list/parameter_list = params2list(Affected.MaxBlueValues)
if(!("[DeltaBlue]" in parameter_list))
Affected.MaxBlueSources = list()
if(!(DeltaBlue in Affected.MaxBlue))
Affected.MaxBlue.Add(DeltaBlue)
parameter_list["[DeltaBlue]"] = 1
Affected.MaxBlueSources.Add(1)
else
parameter_list["[DeltaBlue]"] = "[text2num(parameter_list["[DeltaBlue]"]) + 1]"
Affected.MaxBlueValues = list2params(parameter_list)
var/list_location = Affected.MaxBlue.Find(DeltaBlue)
Affected.MaxBlueSources[list_location]++
Affected.ul_UpdateLight()
@@ -143,57 +144,42 @@ atom/proc/ul_Extinguish()
if(DeltaRed > 0)
if(Affected.MaxRed)
if(findtext(Affected.MaxRedValues, "[DeltaRed]"))
var/list/parameter_list = params2list(Affected.MaxRedValues)
if(!("[DeltaRed]" in parameter_list))
Affected.MaxRed.Remove(DeltaRed)
parameter_list.Remove("[DeltaRed]")
else if (parameter_list["[DeltaRed]"] != "1")
parameter_list["[DeltaRed]"] = "[text2num(parameter_list["[DeltaRed]"]) - 1]"
var/list_location = Affected.MaxRed.Find(DeltaRed)
if(list_location)
if(Affected.MaxRedSources[list_location] > 1)
Affected.MaxRedSources[list_location]--
else
Affected.MaxRed.Remove(DeltaRed)
parameter_list.Remove("[DeltaRed]")
Affected.MaxRedValues = list2params(parameter_list)
else
Affected.MaxRed.Remove(DeltaRed)
Affected.MaxRedSources.Cut(list_location, list_location + 1)
if(!Affected.MaxRed.len)
del Affected.MaxRed
del Affected.MaxRedSources
if(DeltaGreen > 0)
if(Affected.MaxGreen)
if(findtext(Affected.MaxGreenValues, "[DeltaGreen]"))
var/list/parameter_list = params2list(Affected.MaxGreenValues)
if(!("[DeltaGreen]" in parameter_list))
Affected.MaxGreen.Remove(DeltaGreen)
parameter_list.Remove("[DeltaGreen]")
else if (parameter_list["[DeltaGreen]"] != "1")
parameter_list["[DeltaGreen]"] = "[text2num(parameter_list["[DeltaGreen]"]) - 1]"
var/list_location = Affected.MaxGreen.Find(DeltaGreen)
if(list_location)
if(Affected.MaxGreenSources[list_location] > 1)
Affected.MaxGreenSources[list_location]--
else
Affected.MaxGreen.Remove(DeltaGreen)
parameter_list.Remove("[DeltaGreen]")
Affected.MaxGreenValues = list2params(parameter_list)
else
Affected.MaxGreen.Remove(DeltaGreen)
Affected.MaxGreenSources.Cut(list_location, list_location + 1)
if(!Affected.MaxGreen.len)
del Affected.MaxGreen
del Affected.MaxGreenSources
if(DeltaBlue > 0)
if(Affected.MaxBlue)
if(findtext(Affected.MaxBlueValues, "[DeltaBlue]"))
var/list/parameter_list = params2list(Affected.MaxBlueValues)
if(!("[DeltaBlue]" in parameter_list))
Affected.MaxBlue.Remove(DeltaBlue)
parameter_list.Remove("[DeltaBlue]")
else if (parameter_list["[DeltaBlue]"] != "1")
parameter_list["[DeltaBlue]"] = "[text2num(parameter_list["[DeltaBlue]"]) - 1]"
var/list_location = Affected.MaxBlue.Find(DeltaBlue)
if(list_location)
if(Affected.MaxBlueSources[list_location] > 1)
Affected.MaxBlueSources[list_location]--
else
Affected.MaxBlue.Remove(DeltaBlue)
parameter_list.Remove("[DeltaBlue]")
Affected.MaxBlueValues = list2params(parameter_list)
else
Affected.MaxBlue.Remove(DeltaBlue)
Affected.MaxBlueSources.Cut(list_location, list_location + 1)
if(!Affected.MaxBlue.len)
del Affected.MaxBlue
del Affected.MaxBlueSources
Affected.ul_UpdateLight()
@@ -281,32 +267,28 @@ atom/proc/ul_LightLevelChanged()
return
atom/New()
..()
. = ..()
if(ul_IsLuminous())
spawn(1)
ul_Illuminate()
return
atom/Del()
if(ul_IsLuminous())
ul_Extinguish()
..()
. = ..()
atom/movable/Move()
if(ul_IsLuminous())
ul_Extinguish()
..()
ul_Illuminate()
else
..()
ul_Extinguish()
. = ..()
ul_Illuminate()
turf/var/list/MaxRed
turf/var/list/MaxGreen
turf/var/list/MaxBlue
turf/var/MaxRedValues
turf/var/MaxGreenValues
turf/var/MaxBlueValues
turf/var/list/MaxRedSources
turf/var/list/MaxGreenSources
turf/var/list/MaxBlueSources
turf/proc/ul_GetRed()
if(MaxRed)
@@ -404,4 +386,15 @@ area/proc/ul_Prep()
ul_Light()
//world.log << tag
return
return
#undef UL_I_FALLOFF_SQUARE
#undef UL_I_FALLOFF_ROUND
#undef UL_I_LIT
#undef UL_I_EXTINGUISHED
#undef UL_I_ONZERO
#undef ul_LightingEnabled
#undef ul_LightingResolution
#undef ul_Steps
#undef ul_FalloffStyle
#undef ul_Layer
+6 -6
View File
@@ -127,16 +127,16 @@ obj
//Change icon depending on the fuel, and thus temperature.
if(firelevel > 6)
icon_state = "3"
if(LuminosityRed != 7)
ul_SetLuminosity(7,5,0)
if(LuminosityRed != 11)
ul_SetLuminosity(11,9,0)
else if(firelevel > 2.5)
icon_state = "2"
if(LuminosityRed != 5)
ul_SetLuminosity(5,4,0)
if(LuminosityRed != 8)
ul_SetLuminosity(8,7,0)
else
icon_state = "1"
if(LuminosityRed != 3)
ul_SetLuminosity(3,2,0)
if(LuminosityRed != 5)
ul_SetLuminosity(5,4,0)
//Ensure flow temperature is higher than minimum fire temperatures.
flow.temperature = max(PLASMA_MINIMUM_BURN_TEMPERATURE+0.1,flow.temperature)
+1 -1
View File
@@ -114,7 +114,7 @@
// Remove any luminosity etc.
var/prevlum = teleatom.luminosity
teleatom.luminosity = 0
teleatom.ul_SetLuminosity(0)
if(force_teleport)
teleatom.forceMove(destturf)
+18 -2
View File
@@ -13,7 +13,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
*/
/area
var/fire = null
var/atmos = 1
@@ -128,6 +127,8 @@ proc/process_ghost_teleport_locs()
/area/shuttle //DO NOT TURN THE ul_Lighting STUFF ON FOR SHUTTLES. IT BREAKS THINGS.
requires_power = 0
luminosity = 1
ul_Lighting = 0
/area/shuttle/arrival
name = "\improper Arrival Shuttle"
@@ -231,11 +232,15 @@ proc/process_ghost_teleport_locs()
icon_state = "shuttle"
name = "\improper Alien Shuttle Base"
requires_power = 1
luminosity = 1
ul_Lighting = 0
/area/shuttle/alien/mine
icon_state = "shuttle"
name = "\improper Alien Shuttle Mine"
requires_power = 1
luminosity = 1
ul_Lighting = 0
/area/shuttle/prison/
name = "\improper Prison Shuttle"
@@ -802,6 +807,8 @@ proc/process_ghost_teleport_locs()
/area/holodeck
name = "\improper Holodeck"
icon_state = "Holodeck"
luminosity = 1
ul_Lighting = 0
/area/holodeck/alphadeck
name = "\improper Holodeck Alpha"
@@ -957,8 +964,9 @@ proc/process_ghost_teleport_locs()
//Solars
/area/solar
LightLevels = list("Red" = 2, "Green" = 2, "Blue" = 3)
requires_power = 0
luminosity = 1
ul_Lighting = 0
auxport
name = "\improper Port Auxiliary Solar Array"
@@ -1474,18 +1482,26 @@ proc/process_ghost_teleport_locs()
/area/turret_protected/AIsatextFP
name = "\improper AI Sat Ext"
icon_state = "storage"
luminosity = 1
ul_Lighting = 0
/area/turret_protected/AIsatextFS
name = "\improper AI Sat Ext"
icon_state = "storage"
luminosity = 1
ul_Lighting = 0
/area/turret_protected/AIsatextAS
name = "\improper AI Sat Ext"
icon_state = "storage"
luminosity = 1
ul_Lighting = 0
/area/turret_protected/AIsatextAP
name = "\improper AI Sat Ext"
icon_state = "storage"
luminosity = 1
ul_Lighting = 0
/area/turret_protected/NewAIMain
name = "\improper AI Main New"
+67
View File
@@ -384,6 +384,33 @@
opacity = 0
density = 0
/obj/effect/sign/science//These 3 have multiple types, just var-edit the icon_state to whatever one you want on the map
desc = "A warning sign which reads 'SCIENCE!'"
name = "SCIENCE!"
icon = 'decals.dmi'
icon_state = "science1"
anchored = 1.0
opacity = 0
density = 0
/obj/effect/sign/chemistry
desc = "A warning sign which reads 'CHEMISTY'"
name = "CHEMISTRY"
icon = 'decals.dmi'
icon_state = "chemistry1"
anchored = 1.0
opacity = 0
density = 0
/obj/effect/sign/botany
desc = "A warning sign which reads 'HYDROPONICS'"
name = "HYDROPONICS"
icon = 'decals.dmi'
icon_state = "hydro1"
anchored = 1.0
opacity = 0
density = 0
/obj/hud
name = "hud"
unacidable = 1
@@ -1279,6 +1306,46 @@
opacity = 1
anchored = 1
/obj/structure/falsewall/gold
name = "gold wall"
desc = "A wall with gold plating. Swag"
icon_state = ""
/obj/structure/falsewall/silver
name = "silver wall"
desc = "A wall with silver plating. Shiny"
icon_state = ""
/obj/structure/falsewall/diamond
name = "diamond wall"
desc = "A wall with diamond plating. You monster"
icon_state = ""
/obj/structure/falsewall/uranium
name = "uranium wall"
desc = "A wall with uranium plating. This is probably a bad idea"
icon_state = ""
/obj/structure/falsewall/plasma
name = "plasma wall"
desc = "A wall with plasma plating. This is definately a bad idea"
icon_state = ""
/obj/structure/falsewall/bananium
name = "bananium wall"
desc = "A wall with bananium plating. Honk"
icon_state = ""
/obj/structure/falsewall/sand
name = "sandstone wall"
desc = "A wall with sandstone plating."
icon_state = ""
/*/obj/structure/falsewall/wood
name = "wooden wall"
desc = "A wall with classy wooden paneling."
icon_state = ""*/
/obj/structure/falserwall
name = "r wall"
desc = "A huge chunk of reinforced metal used to seperate rooms."
+3 -3
View File
@@ -1153,12 +1153,12 @@
..()
/obj/item/weapon/reagent_containers/food/snacks/grown/glowberries/pickup(mob/user)
src.ul_SetLuminosity(0)
ul_SetLuminosity(0)
user.ul_SetLuminosity(user.LuminosityRed + potency/5, user.LuminosityGreen + potency/5, user.LuminosityBlue + potency/5)
/obj/item/weapon/reagent_containers/food/snacks/grown/glowberries/dropped(mob/user)
user.ul_SetLuminosity(user.LuminosityRed - potency/5, user.LuminosityGreen - potency/5, user.LuminosityBlue - potency/5)
src.ul_SetLuminosity(potency/5)
ul_SetLuminosity(potency/5)
/obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod
seed = "/obj/item/seeds/cocoapodseed"
@@ -1621,7 +1621,7 @@
if(istype(src.loc,/mob))
pickup(src.loc)
else
src.ul_SetLuminosity(potency/10)
ul_SetLuminosity(potency/10)
lifespan = 120 //ten times that is the delay
endurance = 30
maturation = 15
+18 -2
View File
@@ -180,7 +180,7 @@
// product_hideamt = "3;4;6"
hidden_prices = "3;3;2"
points = 25
product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?"
// product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!"
charge_type = "medical"
/obj/machinery/vending/wallmed1
@@ -310,7 +310,7 @@
product_ads = "For Tsar and Country.;Have you fulfilled your nutrition quota today?;Very nice!;We are simple people, for this is all we eat.;If there is a person, there is a problem. If there is no person, then there is no problem."
charge_type = "soda"
/obj/machinery/vending/tool
/obj/machinery/vending/tool//Who did this and why is it here? I don't even
name = "YouTool"
desc = "Tools for tools."
icon_state = "tool"
@@ -327,6 +327,22 @@
product_coin_amt = "1"
charge_type = "engineering"
/obj/machinery/vending/engivend//Source of tools and what have you for Engineering (Needed on account of the public auto-lathe being removed) -Sieve
name = "Engi-Vend"
desc = "Spare tool vending. What? Did you expect some witty description?"
icon_state = "engivend"
icon_deny = "engivend-deny"
req_access_txt = "10" //Engineering access
product_paths = "/obj/item/weapon/cable_coil/random;/obj/item/weapon/crowbar;/obj/item/weapon/weldingtool/largetank;/obj/item/weapon/wirecutters;/obj/item/weapon/wrench;/obj/item/device/t_scanner;/obj/item/device/multitool;/obj/item/weapon/airlock_electronics;/obj/item/weapon/module/power_control"
// product_amounts = "10;5;3;5;5;5;3;5;5"
product_prices = "1;2;3;2;2;2;3;2;2"
product_hidden = "/obj/item/weapon/weldingtool/hugetank;/obj/item/clothing/gloves/fyellow"
// product_hideamt = "2;2"
hidden_prices = "4;4"
product_coin = "/obj/item/weapon/storage/belt/utility"
product_coin_amt = "3"
charge_type = "engineering"
/obj/machinery/vending/genetics
name = "Genetics Dispenser"
desc = "Medical drug dispenser."
-15
View File
@@ -355,21 +355,6 @@
details = 1
origin_tech = "magnets=4;biotech=2"
/obj/item/weapon/melee/baton
name = "stun baton"
desc = "The police baton of the future."
icon_state = "stunbaton"
item_state = "baton"
flags = FPRINT | TABLEPASS
slot_flags = SLOT_BELT
force = 15
throwforce = 7
w_class = 3
var/charges = 10.0
var/maximum_charges = 10.0
var/status = 0
origin_tech = "combat=2"
/*/obj/item/weapon/melee/chainofcommand
name = "chain of command"
desc = "The Captain is first and all other heads are last."
+77 -1
View File
@@ -157,6 +157,7 @@
name = "wall"
desc = "A huge chunk of metal used to seperate rooms."
icon = 'walls.dmi'
var/mineral = "metal"
opacity = 1
density = 1
blocks_air = 1
@@ -166,6 +167,80 @@
var/walltype = "wall"
/turf/simulated/wall/mineral
name = "mineral wall"
desc = "This shouldn't exist"
icon_state = ""
var/last_event = 0
var/active = null
/turf/simulated/wall/mineral/New()
switch(mineral)
if("gold")
name = "gold wall"
desc = "A wall with gold plating. Swag!"
icon_state = "gold0"
walltype = "gold"
// var/electro = 1
// var/shocked = null
if("silver")
name = "silver wall"
desc = "A wall with silver plating. Shiny!"
icon_state = "silver0"
walltype = "silver"
// var/electro = 0.75
// var/shocked = null
if("diamond")
name = "diamond wall"
desc = "A wall with diamond plating. You monster."
icon_state = "diamond0"
walltype = "diamond"
if("uranium")
name = "uranium wall"
desc = "A wall with uranium plating. This is probably a bad idea."
icon_state = "uranium0"
walltype = "uranium"
if("plasma")
name = "plasma wall"
desc = "A wall with plasma plating. This is definately a bad idea."
icon_state = "plasma0"
walltype = "plasma"
if("clown")
name = "bananium wall"
desc = "A wall with bananium plating. Honk!"
icon_state = "clown0"
walltype = "clown"
if("sandstone")
name = "sandstone wall"
desc = "A wall with sandstone plating."
icon_state = "sandstone0"
walltype = "sandstone"
..()
/turf/simulated/wall/mineral/proc/radiate()
if(!active)
if(world.time > last_event+15)
active = 1
for(var/mob/living/L in range(3,src))
L.apply_effect(12,IRRADIATE,0)
for(var/turf/simulated/wall/mineral/T in range(3,src))
if(T.mineral == "uranium")
T.radiate()
last_event = world.time
active = null
return
return
/*/turf/simulated/wall/mineral/proc/shock()
if (electrocute_mob(user, C, src))
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
return 1
else
return 0
*/
/turf/simulated/wall/heatshield
thermal_conductivity = 0
opacity = 0
@@ -256,7 +331,7 @@
return L
/*
/turf/simulated/wall/mineral
icon = 'mineral_walls.dmi'
walltype = "iron"
@@ -356,3 +431,4 @@
hardness -= toxinsToDeduce/100
CheckHardness()
*/
+3 -5
View File
@@ -28,24 +28,22 @@
requires_power = 1
always_unpowered = 1
LightLevels = list("Red" = 2, "Green" = 2, "Blue" = 3)
ul_SetLuminosity(2,2,3)
power_light = 0
power_equip = 0
power_environ = 0
//has_gravity = 0 // Space has gravity. Because.. because.
else if(!requires_power)
if(!requires_power)
power_light = 0//rastaf0
power_equip = 0//rastaf0
power_environ = 0//rastaf0
if(!ul_Lighting)
luminosity = 1
luminosity = 1
ul_Lighting = 0
else
luminosity = 0
area_lights_luminosity = rand(6,7)
if(LightLevels)
ul_Light()
//ul_SetLuminosity(0) // *DAL*
+10 -10
View File
@@ -237,11 +237,11 @@
var/image/I = cult_mind.current.antag_img
I.icon_state = "cult"
cultist.current.client.images += I
if(cult_mind.current)
if(cult_mind.current.client)
var/image/I = cultist.current.antag_img
I.icon_state = "cult"
cult_mind.current.client.images += I
if(cult_mind.current)
if(cult_mind.current.client)
var/image/I = cultist.current.antag_img
I.icon_state = "cult"
cult_mind.current.client.images += I
/datum/game_mode/proc/update_cult_icons_removed(datum/mind/cult_mind)
@@ -253,11 +253,11 @@
if(I.icon_state == "cult" && I.loc == cult_mind.current)
cultist.current.client.images -= I
if(cult_mind.current)
if(cult_mind.current.client)
for(var/image/I in cult_mind.current.client.images)
if(I.icon_state == "cult")
cult_mind.current.client.images -= I
if(cult_mind.current)
if(cult_mind.current.client)
for(var/image/I in cult_mind.current.client.images)
if(I.icon_state == "cult")
cult_mind.current.client.images -= I
/datum/game_mode/cult/proc/get_unconvertables()
+114 -21
View File
@@ -15,6 +15,8 @@
var/lastfired = 0
var/shot_delay = 3 //.3 seconds between shots
var/lasercolor = ""
var/disabled = 0
//var/lasers = 0
@@ -68,11 +70,12 @@
item_state = "ed209_frame"
var/build_step = 0
var/created_name = "ED-209 Security Robot" //To preserve the name if it's a unique securitron I guess
var/lasercolor = ""
/obj/machinery/bot/ed209/New()
..()
src.icon_state = "ed209[src.on]"
src.icon_state = "[lasercolor]ed209[src.on]"
spawn(3)
src.botcard = new /obj/item/weapon/card/id(src)
src.botcard.access = get_access("Detective")
@@ -82,10 +85,17 @@
if(radio_controller)
radio_controller.add_object(src, control_freq, filter = RADIO_SECBOT)
radio_controller.add_object(src, beacon_freq, filter = RADIO_NAVBEACONS)
if(lasercolor)
req_access = list(access_maint_tunnels,access_clown,access_mime)
arrest_type = 1
if(lasercolor == "b")
name = pick("BLUE BALLER","SANIC","BLUE KILLDEATH MURDERBOT")
if(lasercolor == "r")
name = pick("RED RAMPAGE","RED ROVER","RED KILLDEATH MURDERBOT")
/obj/machinery/bot/ed209/turn_on()
. = ..()
src.icon_state = "ed209[src.on]"
src.icon_state = "[lasercolor]ed209[src.on]"
src.mode = SECBOT_IDLE
src.updateUsrDialog()
@@ -96,7 +106,7 @@
src.anchored = 0
src.mode = SECBOT_IDLE
walk_to(src,0)
src.icon_state = "ed209[src.on]"
src.icon_state = "[lasercolor]ed209[src.on]"
src.updateUsrDialog()
/obj/machinery/bot/ed209/attack_hand(mob/user as mob)
@@ -181,7 +191,7 @@ Auto Patrol: []"},
src.anchored = 0
src.emagged = 1
src.on = 1
src.icon_state = "ed209[src.on]"
src.icon_state = "[lasercolor]ed209[src.on]"
mode = SECBOT_IDLE
/obj/machinery/bot/ed209/process()
@@ -210,7 +220,7 @@ Auto Patrol: []"},
if (targets.len>0)
var/mob/t = pick(targets)
if (istype(t, /mob/living))
if (t.stat!=2)
if ((t.stat!=2) && (t.lying != 1))
//src.speak("selected target: " + t.real_name)
src.shootAt(t)
switch(mode)
@@ -222,7 +232,8 @@ Auto Patrol: []"},
mode = SECBOT_START_PATROL // switch to patrol mode
if(SECBOT_HUNT) // hunting for perp
if(src.lasercolor)//Lasertag bots do not tase or arrest anyone, just patrol and shoot and whatnot
return
// if can't reach perp for long enough, go idle
if (src.frustration >= 8)
// for(var/mob/O in hearers(src, null))
@@ -236,9 +247,9 @@ Auto Patrol: []"},
if (target) // make sure target exists
if (get_dist(src, src.target) <= 1) // if right next to perp
playsound(src.loc, 'Egloves.ogg', 50, 1, -1)
src.icon_state = "ed209-c"
src.icon_state = "[lasercolor]ed209-c"
spawn(2)
src.icon_state = "ed209[src.on]"
src.icon_state = "[lasercolor]ed209[src.on]"
var/mob/living/carbon/M = src.target
var/maxstuns = 4
if (istype(M, /mob/living/carbon/human))
@@ -270,6 +281,8 @@ Auto Patrol: []"},
src.frustration = 0
if(SECBOT_PREP_ARREST) // preparing to arrest target
if(src.lasercolor)
return
if (!target)
mode = SECBOT_IDLE
src.anchored = 0
@@ -305,6 +318,8 @@ Auto Patrol: []"},
// src.speak(arrest_message)
if(SECBOT_ARREST) // arresting
if(src.lasercolor)
return
if (!target || src.target.handcuffed)
src.anchored = 0
mode = SECBOT_IDLE
@@ -640,6 +655,22 @@ Auto Patrol: []"},
if((istype(perp:wear_id, /obj/item/weapon/card/id/syndicate)) && src.idcheck)
threatcount -= 2
if(src.lasercolor == "b")//Lasertag turrets target the opposing team, how great is that? -Sieve
if(istype(perp.wear_suit, /obj/item/clothing/suit/redtag))
threatcount += 4
if((istype(perp:r_hand,/obj/item/weapon/gun/energy/laser/redtag)) || (istype(perp:l_hand,/obj/item/weapon/gun/energy/laser/redtag)))
threatcount += 4
if(istype(perp:belt, /obj/item/weapon/gun/energy/laser/redtag))
threatcount += 2
if(src.lasercolor == "r")
if(istype(perp.wear_suit, /obj/item/clothing/suit/bluetag))
threatcount += 4
if((istype(perp:r_hand,/obj/item/weapon/gun/energy/laser/bluetag)) || (istype(perp:l_hand,/obj/item/weapon/gun/energy/laser/bluetag)))
threatcount += 4
if(istype(perp:belt, /obj/item/weapon/gun/energy/laser/bluetag))
threatcount += 2
if (src.check_records)
for (var/datum/data/record/E in data_core.general)
var/perpname = perp.name
@@ -697,8 +728,15 @@ Auto Patrol: []"},
Sa.created_name = src.name
new /obj/item/device/assembly/prox_sensor(Tsec)
var/obj/item/weapon/melee/baton/B = new /obj/item/weapon/melee/baton(Tsec)
B.charges = 0
if(!lasercolor)
var/obj/item/weapon/gun/energy/taser/G = new /obj/item/weapon/gun/energy/taser(Tsec)
G.power_supply.charge = 0
else if(lasercolor == "b")
var/obj/item/weapon/gun/energy/laser/bluetag/G = new /obj/item/weapon/gun/energy/laser/bluetag(Tsec)
G.power_supply.charge = 0
else if(lasercolor == "r")
var/obj/item/weapon/gun/energy/laser/redtag/G = new /obj/item/weapon/gun/energy/laser/redtag(Tsec)
G.power_supply.charge = 0
if (prob(50))
new /obj/item/robot_parts/l_arm(Tsec)
@@ -728,10 +766,21 @@ Auto Patrol: []"},
// playsound(src.loc, 'ed209_shoot.ogg', 50, 0)
var/obj/item/projectile/A
if (src.emagged)
A = new /obj/item/projectile/beam( loc )
else
A = new /obj/item/projectile/energy/electrode( loc )
if(!lasercolor)
if (src.emagged)
A = new /obj/item/projectile/beam( loc )
else
A = new /obj/item/projectile/energy/electrode( loc )
else if(lasercolor == "b")
if (src.emagged)
A = new /obj/item/projectile/energy/electrode( loc )
else
A = new /obj/item/projectile/bluetag( loc )
else if(lasercolor == "r")
if (src.emagged)
A = new /obj/item/projectile/energy/electrode( loc )
else
A = new /obj/item/projectile/redtag( loc )
if (!( istype(U, /turf) ))
//A = null
@@ -813,6 +862,22 @@ Auto Patrol: []"},
src.item_state = "ed209_shell"
src.icon_state = "ed209_shell"
del(W)
else if(istype(W, /obj/item/clothing/suit/bluetag) && (src.build_step == 2))
src.build_step++
user << "You add the armor to [src]!"
src.name = "vest/legs/frame assembly"
lasercolor = "b"
src.item_state = "[lasercolor]ed209_shell"
src.icon_state = "[lasercolor]ed209_shell"
del(W)
else if(istype(W, /obj/item/clothing/suit/redtag) && (src.build_step == 2))
src.build_step++
user << "You add the armor to [src]!"
src.name = "vest/legs/frame assembly"
lasercolor = "r"
src.item_state = "[lasercolor]ed209_shell"
src.icon_state = "[lasercolor]ed209_shell"
del(W)
else if(istype(W, /obj/item/weapon/weldingtool) && src.build_step == 3)
var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0,user))
@@ -823,15 +888,15 @@ Auto Patrol: []"},
src.build_step++
user << "You add the helmet to [src]!"
src.name = "covered and shielded frame assembly"
src.item_state = "ed209_hat"
src.icon_state = "ed209_hat"
src.item_state = "[lasercolor]ed209_hat"
src.icon_state = "[lasercolor]ed209_hat"
del(W)
else if(isprox(W) && (src.build_step == 5))
src.build_step++
user << "You add the prox sensor to [src]!"
src.name = "prox/covered and armed the frame assembly"
src.item_state = "ed209_prox"
src.icon_state = "ed209_prox"
src.item_state = "[lasercolor]ed209_prox"
src.icon_state = "[lasercolor]ed209_prox"
del(W)
else if(istype(W, /obj/item/weapon/cable_coil) && (src.build_step == 6) )
var/obj/item/weapon/cable_coil/coil = W
@@ -843,12 +908,26 @@ Auto Patrol: []"},
src.build_step++
user << "\blue You wire the ED-209 assembly!"
src.name = "Wired ED-209 Assembly"
else if(istype(W, /obj/item/weapon/gun/energy/taser) && (src.build_step == 7))
else if(istype(W, /obj/item/weapon/gun/energy/taser) && (src.build_step == 7) && (!lasercolor))
src.build_step++
user << "You add the taser gun to [src]!"
src.name = "Taser/Wired ED-209 Assembly"
src.item_state = "ed209_taser"
src.icon_state = "ed209_taser"
src.item_state = "[lasercolor]ed209_taser"
src.icon_state = "[lasercolor]ed209_taser"
del(W)
else if(istype(W, /obj/item/weapon/gun/energy/laser/bluetag) && (src.build_step == 7) && (lasercolor == "b"))
src.build_step++
user << "You add the lasertag gun to [src]!"
src.name = "Bluetag ED-209 Assembly"
src.item_state = "[lasercolor]ed209_taser"
src.icon_state = "[lasercolor]ed209_taser"
del(W)
else if(istype(W, /obj/item/weapon/gun/energy/laser/redtag) && (src.build_step == 7) && (lasercolor == "r"))
src.build_step++
user << "You add the lasertag gun to [src]!"
src.name = "Redtag ED-209 Assembly"
src.item_state = "[lasercolor]ed209_taser"
src.icon_state = "[lasercolor]ed209_taser"
del(W)
else if(istype(W, /obj/item/weapon/screwdriver) && (src.build_step == 8) )
playsound(src.loc, 'Screwdriver.ogg', 100, 1)
@@ -865,6 +944,8 @@ Auto Patrol: []"},
var/obj/machinery/bot/ed209/S = new /obj/machinery/bot/ed209
S.loc = get_turf(src)
S.name = src.created_name
S.lasercolor = src.lasercolor
S.New()
del(W)
del(src)
@@ -878,3 +959,15 @@ Auto Patrol: []"},
src.created_name = t
/obj/machinery/bot/ed209/bullet_act(var/obj/item/projectile/Proj)
if((src.lasercolor == "b") && (src.disabled == 0))
if(istype(Proj, /obj/item/projectile/redtag))
src.disabled = 1
sleep(100)
src.disabled = 0
if((src.lasercolor == "r") && (src.disabled == 0))
if(istype(Proj, /obj/item/projectile/bluetag))
src.disabled = 1
sleep(100)
src.disabled = 0
..()
File diff suppressed because it is too large Load Diff
+3 -2
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:04
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
/obj/machinery/door
name = "Door"
@@ -153,7 +153,7 @@
if(4) temp=new/obj/structure/door_assembly/door_assembly_med(src.loc)
if(5) temp=new/obj/structure/door_assembly/door_assembly_mai(src.loc)
if(6) temp=new/obj/structure/door_assembly/door_assembly_ext(src.loc)
if(7) temp=new/obj/structure/door_assembly/door_assembly_g(src.loc)
if(7) temp=new/obj/structure/door_assembly/door_assembly_glass(src.loc)
else failsafe=1
if(!failsafe)
temp.anchored=0
@@ -249,6 +249,7 @@
if(!src.operating) //in case of emag
src.operating = 1
animate("opening")
icon_state = "door0"
src.ul_SetOpacity(0)
sleep(10)
src.layer = 2.7
+2 -2
View File
@@ -24,13 +24,13 @@
/obj/machinery/flasher/New()
sleep(4)
src.ul_SetLuminosity(2)
ul_SetLuminosity(0,2,0)
/obj/machinery/flasher/power_change()
if ( powered() )
stat &= ~NOPOWER
icon_state = "[base_state]1"
src.ul_SetLuminosity(2)
src.ul_SetLuminosity(0,2,0)
else
stat |= ~NOPOWER
icon_state = "[base_state]1-p"
+1 -1
View File
@@ -72,7 +72,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
hologram.icon = A.holo_icon
hologram.mouse_opacity = 0//So you can't click on it.
hologram.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them.
hologram.ul_SetLuminosity(1)//To make it glowy.
hologram.ul_SetLuminosity(0,0,2)//To make it glowy.
hologram.anchored = 1//So space wind cannot drag it.
hologram.name = "AI hologram"//If someone decides to right click.
ul_SetLuminosity(0,0,1)//To make the pad glowy.
+8
View File
@@ -741,6 +741,14 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
playsound(src.loc, 'spray3.ogg', 50, 1, -6)
del(O)
src.updateicon()
else if(istype(O, /obj/item/weapon/wrench))
playsound(loc, 'Ratchet.ogg', 50, 1)
anchored = !anchored
user << "You [anchored ? "wrench" : "unwrench"] \the [src]."
else if(istype(O, /obj/item/weapon/shovel))
if(istype(src, /obj/machinery/hydroponics/soil))
user << "You clear up the [src]!"
del(src)
return
+2 -2
View File
@@ -53,11 +53,11 @@
if ( powered() && disable == 0 )
stat &= ~NOPOWER
icon_state = "[base_state]"
src.ul_SetLuminosity(2)
ul_SetLuminosity(2,0,0)
else
stat |= ~NOPOWER
icon_state = "[base_state]-p"
src.ul_SetLuminosity(0)
ul_SetLuminosity(0)
/obj/machinery/sparker/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/device/detective_scanner))
+142 -94
View File
@@ -23,6 +23,7 @@
req_access = list(access_security)
power_channel = EQUIP // drains power from the EQUIPMENT channel
var/lasercolor = ""
var/raised = 0 // if the turret cover is "open" and the turret is raised
var/raising= 0 // if the turret is currently opening or closing its cover
var/health = 80 // the turret's health
@@ -30,6 +31,11 @@
var/installation // the type of weapon installed
var/gun_charge = 0 // the charge of the gun inserted
var/projectile = null //holder for bullettype
var/reqpower = 0 //holder for power needed
var/sound = null//So the taser can have sound
var/iconholder = null//holder for the icon_state
var/egun = null//holder to handle certain guns switching bullettypes
var/obj/machinery/porta_turret_cover/cover = null // the cover that is covering this turret
var/last_fired = 0 // 1: if the turret is cooling down from a shot, 0: turret is ready to fire
@@ -46,11 +52,13 @@
//var/emagged = 0 // 1: emagged, 0: not emagged
var/on = 1 // determines if the turret is on
var/disabled = 0
var/datum/effect/effect/system/spark_spread/spark_system // the spark system, used for generating... sparks?
New()
..()
icon_state = "[lasercolor]grey_target_prism"
// Sets up a spark system
spark_system = new /datum/effect/effect/system/spark_spread
spark_system.set_up(5, 0, src)
@@ -131,22 +139,22 @@ Neutralize All Unidentified Life Signs: []<BR>"},
icon_state = "turretCover"
return
if(stat & BROKEN)
icon_state = "destroyed_target_prism"
icon_state = "[lasercolor]destroyed_target_prism"
else
if( powered() )
if (on)
if (installation == /obj/item/weapon/gun/energy/laser || installation == /obj/item/weapon/gun/energy/pulse_rifle)
// laser guns and pulse rifles have an orange icon
icon_state = "orange_target_prism"
icon_state = "[lasercolor]orange_target_prism"
else
// anything else has a blue icon
icon_state = "target_prism"
icon_state = "[lasercolor]target_prism"
else
icon_state = "grey_target_prism"
icon_state = "[lasercolor]grey_target_prism"
stat &= ~NOPOWER
else
spawn(rand(0, 15))
src.icon_state = "grey_target_prism"
src.icon_state = "[lasercolor]grey_target_prism"
stat |= NOPOWER
@@ -165,6 +173,7 @@ Neutralize All Unidentified Life Signs: []<BR>"},
var/obj/item/weapon/gun/energy/Gun = new installation(src.loc)
Gun.power_supply.charge=gun_charge
Gun.update_icon()
lasercolor = null
if(prob(50)) new /obj/item/stack/sheet/metal( loc, rand(1,4))
if(prob(50)) new /obj/item/device/assembly/prox_sensor(locate(x,y,z))
else
@@ -197,7 +206,7 @@ Neutralize All Unidentified Life Signs: []<BR>"},
if(!anchored)
anchored = 1
invisibility = 2
icon_state = "grey_target_prism"
icon_state = "[lasercolor]grey_target_prism"
user << "You secure the exterior bolts on the turret."
cover=new/obj/machinery/porta_turret_cover(src.loc) // create a new turret. While this is handled in process(), this is to workaround a bug where the turret becomes invisible for a split second
cover.Parent_Turret = src // make the cover's parent src
@@ -244,6 +253,16 @@ Neutralize All Unidentified Life Signs: []<BR>"},
if(prob(45) && Proj.damage > 0) src.spark_system.start()
if (src.health <= 0)
src.die() // the death process :(
if((src.lasercolor == "b") && (src.disabled == 0))
if(istype(Proj, /obj/item/projectile/redtag))
src.disabled = 1
sleep(100)
src.disabled = 0
if((src.lasercolor == "r") && (src.disabled == 0))
if(istype(Proj, /obj/item/projectile/bluetag))
src.disabled = 1
sleep(100)
src.disabled = 0
return
/obj/machinery/porta_turret/emp_act(severity)
@@ -327,7 +346,11 @@ Neutralize All Unidentified Life Signs: []<BR>"},
if(!istype(C, /mob/living/silicon) && ai) // If it's set to attack all nonsilicons, target them!
if(C.lying)
secondarytargets += C
if(lasercolor)
continue
else
secondarytargets += C
continue
else
targets += C
continue
@@ -401,7 +424,7 @@ Neutralize All Unidentified Life Signs: []<BR>"},
cover.icon_state="turretCover"
raised=0
invisibility=2
icon_state="grey_target_prism"
icon_state="[lasercolor]grey_target_prism"
/obj/machinery/porta_turret/proc/assess_perp(mob/living/carbon/human/perp as mob)
@@ -417,7 +440,7 @@ Neutralize All Unidentified Life Signs: []<BR>"},
if(auth_weapons) // check for weapon authorization
if((isnull(perp:wear_id)) || (istype(perp:wear_id, /obj/item/weapon/card/id/syndicate)))
if(src.allowed(perp)) // if the perp has security access, return 0
if((src.allowed(perp)) && (!lasercolor)) // if the perp has security access, return 0
return 0
if((istype(perp.l_hand, /obj/item/weapon/gun) && !istype(perp.l_hand, /obj/item/weapon/gun/projectile/shotgun)) || istype(perp.l_hand, /obj/item/weapon/melee/baton))
@@ -429,6 +452,22 @@ Neutralize All Unidentified Life Signs: []<BR>"},
if(istype(perp:belt, /obj/item/weapon/gun) || istype(perp:belt, /obj/item/weapon/melee/baton))
threatcount += 2
if(src.lasercolor == "b")//Lasertag turrets target the opposing team, how great is that? -Sieve
if(istype(perp.wear_suit, /obj/item/clothing/suit/redtag))
threatcount += 4
if((istype(perp:r_hand,/obj/item/weapon/gun/energy/laser/redtag)) || (istype(perp:l_hand,/obj/item/weapon/gun/energy/laser/redtag)))
threatcount += 4
if(istype(perp:belt, /obj/item/weapon/gun/energy/laser/redtag))
threatcount += 2
if(src.lasercolor == "r")
if(istype(perp.wear_suit, /obj/item/clothing/suit/bluetag))
threatcount += 4
if((istype(perp:r_hand,/obj/item/weapon/gun/energy/laser/bluetag)) || (istype(perp:l_hand,/obj/item/weapon/gun/energy/laser/bluetag)))
threatcount += 4
if(istype(perp:belt, /obj/item/weapon/gun/energy/laser/bluetag))
threatcount += 2
if (src.check_records) // if the turret can check the records, check if they are set to *Arrest* on records
for (var/datum/data/record/E in data_core.general)
var/perpname = perp.name
@@ -476,99 +515,108 @@ Neutralize All Unidentified Life Signs: []<BR>"},
// any emagged turrets will shoot extremely fast! This not only is deadly, but drains a lot power!
var/obj/item/projectile/A
if(!installation) // if for some reason the turret has no gun (ie, admin spawned) it resorts to basic taser shots
A = new /obj/item/projectile/energy/electrode( loc )
if(!emagged) use_power(200)
else use_power(400)
playsound(src.loc, 'Taser.ogg', 75, 1)
icon_state = "target_prism"
if(!projectile)
lasercolor = ""
req_access = list(access_security)
if(!installation)// if for some reason the turret has no gun (ie, admin spawned) it resorts to basic taser shots
projectile = /obj/item/projectile/energy/electrode
reqpower = 200
sound = 1
iconholder = 1
else
var/obj/item/weapon/gun/energy/E=new installation
// All energy-based weapons are applicable
if(istype(E, /obj/item/weapon/gun/energy/laser/bluetag))
projectile = /obj/item/projectile/bluetag
iconholder = null
reqpower = 100
lasercolor = "b"
req_access = list(access_maint_tunnels,access_clown,access_mime)
else if(istype(E, /obj/item/weapon/gun/energy/laser/redtag))
projectile = /obj/item/projectile/redtag
iconholder = null
reqpower = 100
lasercolor = "r"
req_access = list(access_maint_tunnels,access_clown,access_mime)
else if(istype(E, /obj/item/weapon/gun/energy/pulse_rifle))
projectile = /obj/item/projectile/beam/pulse
iconholder = null
reqpower = 700
else if(istype(E, /obj/item/weapon/gun/energy/staff))
projectile = /obj/item/projectile/change
iconholder = 1
reqpower = 700
else if(istype(E, /obj/item/weapon/gun/energy/ionrifle))
projectile = /obj/item/projectile/ion
iconholder = 1
reqpower = 700
else if(istype(E, /obj/item/weapon/gun/energy/taser) || istype(E, /obj/item/weapon/gun/energy/stunrevolver))
projectile = /obj/item/projectile/energy/electrode
iconholder = 1
reqpower = 200
else if(istype(E, /obj/item/weapon/gun/energy/lasercannon))
projectile = /obj/item/projectile/beam/heavylaser
iconholder = null
reqpower = 600
else if(istype(E, /obj/item/weapon/gun/energy/decloner))
projectile = /obj/item/projectile/energy/declone
iconholder = null
reqpower = 600
else if(istype(E, /obj/item/weapon/gun/energy/crossbow/largecrossbow))
projectile = /obj/item/projectile/energy/bolt/large
iconholder = null
reqpower = 125
else if(istype(E, /obj/item/weapon/gun/energy/crossbow))
projectile = /obj/item/projectile/energy/bolt
iconholder = null
reqpower = 50
else if(istype(E, /obj/item/weapon/gun/energy/laser))
projectile = /obj/item/projectile/beam
iconholder = null
reqpower = 500
else // Energy gun shots
projectile = /obj/item/projectile/energy/electrode// if it hasn't been emagged, it uses normal taser shots
iconholder = 1
egun = 1
reqpower = 200
var/obj/item/projectile/A = projectile
var/obj/item/weapon/gun/energy/E=new installation
if(iconholder)
icon_state = "[lasercolor]target_prism"
else
icon_state = "[lasercolor]orange_target_prism"
if(sound)
playsound(src.loc, 'Taser.ogg', 75, 1)
A = new projectile( loc )
A.original = target.loc
if(!emagged)
use_power(reqpower)
else
use_power((reqpower*2))
if(egun)// if it has been emagged, use laser shots
projectile = /obj/item/projectile/beam
iconholder = null
reqpower = 500
// Shooting Code:
var/obj/item/weapon/gun/energy/E=new installation
if(!E.silenced)
playsound(src.loc, E.fire_sound, 75, 1)
else
playsound(src.loc, E.fire_sound, 10, 1)
// All energy-based weapons are applicable
if(istype(E, /obj/item/weapon/gun/energy/laser))
A = new /obj/item/projectile/beam( loc )
A.original = target.loc
icon_state = "orange_target_prism"
if(!emagged) use_power(500)
else use_power(1000)
else if(istype(E, /obj/item/weapon/gun/energy/pulse_rifle))
A = new /obj/item/projectile/beam/pulse( loc )
A.original = target.loc
icon_state = "orange_target_prism"
if(!emagged) use_power(700)
else use_power(1400)
else if(istype(E, /obj/item/weapon/gun/energy/staff))
A = new /obj/item/projectile/change( loc )
A.original = target.loc
icon_state = "target_prism"
if(!emagged) use_power(700)
else use_power(1400)
else if(istype(E, /obj/item/weapon/gun/energy/ionrifle))
A = new /obj/item/projectile/ion( loc )
A.original = target.loc
icon_state = "target_prism"
if(!emagged) use_power(700)
else use_power(1400)
else if(istype(E, /obj/item/weapon/gun/energy/taser) || istype(E, /obj/item/weapon/gun/energy/stunrevolver))
A = new /obj/item/projectile/energy/electrode( loc )
icon_state = "target_prism"
if(!emagged) use_power(200)
else use_power(400)
else if(istype(E, /obj/item/weapon/gun/energy/lasercannon))
A = new /obj/item/projectile/beam/heavylaser( loc )
A.original = target.loc
icon_state = "orange_target_prism"
if(!emagged) use_power(600)
else use_power(1200)
else if(istype(E, /obj/item/weapon/gun/energy/decloner))
A = new /obj/item/projectile/energy/declone( loc )
A.original = target.loc
icon_state = "orange_target_prism"
if(!emagged) use_power(600)
else use_power(1200)
else if(istype(E, /obj/item/weapon/gun/energy/crossbow))
A = new /obj/item/projectile/energy/bolt( loc )
A.original = target.loc
icon_state = "orange_target_prism"
if(!emagged) use_power(50)
else use_power(100)
else if(istype(E, /obj/item/weapon/gun/energy/crossbow/largecrossbow))
A = new /obj/item/projectile/energy/bolt/large( loc )
A.original = target.loc
icon_state = "orange_target_prism"
if(!emagged) use_power(125)
else use_power(250)
else // Energy gun shots
if(!emagged) // if it hasn't been emagged, it uses normal taser shots
A = new /obj/item/projectile/energy/electrode( loc )
icon_state = "target_prism"
use_power(200)
else // if it has been emagged, use laser shots
A = new /obj/item/projectile/beam( loc )
A.original = target.loc
icon_state = "orange_target_prism"
use_power(1000)
del(E)
A.current = T
A.yo = U.y - T.y
+69 -78
View File
@@ -1,94 +1,85 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
obj/machinery/recharger
anchored = 1
name = "recharger"
icon = 'stationobjs.dmi'
icon_state = "recharger0"
name = "recharger"
anchored = 1
use_power = 1
idle_power_usage = 4
active_power_usage = 250
var/obj/item/weapon/charging = null
var/obj/item/weapon/gun/energy/charging = null
var/obj/item/weapon/melee/baton/charging2 = null
obj/machinery/recharger/attackby(obj/item/weapon/G as obj, mob/user as mob)
if(issilicon(user))
return
attackby(obj/item/weapon/G as obj, mob/user as mob)
if(issilicon(user))
if(istype(G, /obj/item/weapon/gun/energy) || istype(G, /obj/item/weapon/melee/baton))
if(charging)
return
if (istype(G, /obj/item/weapon/gun/energy))
if (src.charging || src.charging2)
return
if (istype(G, /obj/item/weapon/gun/energy/gun/nuclear) || istype(G, /obj/item/weapon/gun/energy/crossbow))
user << "Your gun's recharge port was removed to make room for a miniaturized reactor."
return
if (istype(G, /obj/item/weapon/gun/energy/staff))
user << "It's a wooden staff, not a gun!"
return
var/area/a = loc.loc // Gets our locations location, like a dream within a dream
if(!isarea(a))
return
if(a.power_equip == 0) // There's no APC in this area, don't try to cheat power!
user << "\red \The [src] blinks red as you try to insert the item!"
return
user.drop_item()
G.loc = src
src.charging = G
use_power = 2
else if (istype(G, /obj/item/weapon/melee/baton))
if (src.charging || src.charging2)
return
user.drop_item()
G.loc = src
src.charging2 = G
use_power = 2
else if(istype(G, /obj/item/weapon/wrench))
if (src.charging || src.charging2)
user << "\red Remove the weapon first!"
return
anchored = !anchored
user << "You [anchored ? "attach" : "detach"] the recharger [anchored ? "to" : "from"] the ground"
playsound(src.loc, 'Ratchet.ogg', 75, 1)
attack_hand(mob/user as mob)
src.add_fingerprint(user)
if(ishuman(user))
if(istype(user:gloves, /obj/item/clothing/gloves/space_ninja)&&user:gloves:candrain&&!user:gloves:draining)
call(/obj/item/clothing/gloves/space_ninja/proc/drain)("MACHINERY",src,user:wear_suit)
return
if (src.charging)
src.charging.update_icon()
src.charging.loc = src.loc
src.charging = null
use_power = 1
if(src.charging2)
src.charging2.update_icon()
src.charging2.loc = src.loc
src.charging2 = null
use_power = 1
attack_paw(mob/user as mob)
if ((ticker && ticker.mode.name == "monkey"))
return src.attack_hand(user)
process()
if(stat & (NOPOWER|BROKEN) || !anchored)
var/area/a = get_area(src)
if(!isarea(a))
return
if(a.power_equip == 0) // There's no APC in this area, don't try to cheat power!
user << "\red The [name] blinks red as you try to insert the item!"
return
if (istype(G, /obj/item/weapon/gun/energy/gun/nuclear) || istype(G, /obj/item/weapon/gun/energy/crossbow))
user << "<span class='notice'>Your gun's recharge port was removed to make room for a miniaturized reactor.</span>"
return
if (istype(G, /obj/item/weapon/gun/energy/staff))
return
user.drop_item()
G.loc = src
charging = G
use_power = 2
update_icon()
else if(istype(G, /obj/item/weapon/wrench))
if(charging)
user << "\red Remove the weapon first!"
return
anchored = !anchored
user << "You [anchored ? "attached" : "detached"] the recharger."
playsound(loc, 'Ratchet.ogg', 75, 1)
if (src.charging)
if (src.charging.power_supply.charge < src.charging.power_supply.maxcharge)
src.charging.power_supply.give(100)
src.icon_state = "recharger1"
obj/machinery/recharger/attack_hand(mob/user as mob)
add_fingerprint(user)
if(charging)
charging.update_icon()
charging.loc = loc
charging = null
use_power = 1
update_icon()
obj/machinery/recharger/attack_paw(mob/user as mob)
if((ticker && ticker.mode.name == "monkey"))
return attack_hand(user)
obj/machinery/recharger/process()
if(stat & (NOPOWER|BROKEN) || !anchored)
return
if(charging)
if(istype(charging, /obj/item/weapon/gun/energy))
var/obj/item/weapon/gun/energy/E = charging
if(E.power_supply.charge < E.power_supply.maxcharge)
E.power_supply.give(100)
icon_state = "recharger1"
use_power(250)
else
src.icon_state = "recharger2"
else if (src.charging2)
if (src.charging2.charges < src.charging2.maximum_charges)
src.charging2.charges++
src.icon_state = "recharger1"
use_power(250)
icon_state = "recharger2"
return
if(istype(charging, /obj/item/weapon/melee/baton))
var/obj/item/weapon/melee/baton/B = charging
if(B.charges < initial(B.charges))
B.charges++
icon_state = "recharger1"
use_power(150)
else
src.icon_state = "recharger2"
else
src.icon_state = "recharger0"
icon_state = "recharger2"
obj/machinery/recharger/update_icon() //we have an update_icon() in addition to the stuff in process to make it feel a tiny bit snappier.
if(charging)
icon_state = "recharger1"
else
icon_state = "recharger0"
+1 -1
View File
@@ -427,7 +427,7 @@
if(A && B)
needs_power = 1
spawn(1)
src.ul_SetLuminosity(3)
src.ul_SetLuminosity(0,0,4)
/* for(var/mob/M as mob in src.loc) //does not work for some reason.
if(istype(M,/mob/living/carbon))
+1 -1
View File
@@ -129,7 +129,7 @@
disp2 = "STATN"
else
disp1 = "SPPLY"
disp2 = "DOCK"
disp2 = "AWAY"
update_display(disp1, disp2)
+6
View File
@@ -54,6 +54,8 @@
// 2 = cannons
// 3 = pulse
// 4 = change (HONK)
// 5 = bluetag
// 6 = redtag
var/health = 18
var/id = ""
var/obj/machinery/turretcover/cover = null
@@ -211,6 +213,10 @@
A = new /obj/item/projectile/beam/pulse( loc )
if(4)
A = new /obj/item/projectile/change( loc )
if(5)
A = new /obj/item/projectile/bluetag( loc )
if(6)
A = new /obj/item/projectile/redtag( loc )
A.original = target.loc
use_power(500)
else
+31 -8
View File
@@ -15,17 +15,40 @@
internal_damage_threshold = 35
max_equip = 3
/obj/mecha/combat/gygax/dark
desc = "A lightweight exosuit used by Nanotrasen Death Squads. A significantly upgraded Gygax security mech."
name = "Dark Gygax"
icon_state = "darkgygax"
health = 400
deflect_chance = 25
damage_absorption = list("brute"=0.6,"fire"=0.8,"bullet"=0.6,"laser"=0.5,"energy"=0.65,"bomb"=0.8)
max_temperature = 4500
overload_coeff = 1
wreckage = /obj/effect/decal/mecha_wreckage/gygax/dark
max_equip = 4
step_energy_drain = 5
/*
/obj/mecha/combat/gygax/New()
/obj/mecha/combat/gygax/dark/New()
..()
weapons += new /datum/mecha_weapon/taser(src)
weapons += new /datum/mecha_weapon/laser(src)
weapons += new /datum/mecha_weapon/missile_rack/flashbang(src)
selected_weapon = weapons[1]
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot
ME.attach(src)
ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang
ME.attach(src)
ME = new /obj/item/mecha_parts/mecha_equipment/teleporter
ME.attach(src)
ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay
ME.attach(src)
return
*/
/obj/mecha/combat/gygax/dark/add_cell(var/obj/item/weapon/cell/C=null)
if(C)
C.forceMove(src)
cell = C
return
cell = new(src)
cell.charge = 30000
cell.maxcharge = 30000
/obj/mecha/combat/gygax/verb/overload()
set category = "Exosuit Interface"
+4 -1
View File
@@ -919,7 +919,10 @@
process(var/obj/item/mecha_parts/mecha_equipment/generator/nuclear/EG)
if(..())
for(var/mob/living/carbon/M in view(EG.chassis))
M.radiation += EG.rad_per_cycle
if(istype(M,/mob/living/carbon/human))
M.apply_effect((EG.rad_per_cycle*3),IRRADIATE,0)
else
M.radiation += EG.rad_per_cycle
return 1
@@ -325,6 +325,9 @@
do_after_cooldown()
return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang//Because I am a heartless bastard -Sieve
name = "SOP-6 Grenade Launcher"
projectile = /obj/item/weapon/flashbang/clusterbang
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/banana_mortar
name = "Banana Mortar"
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -942,9 +942,9 @@
return
lights = !lights
if(lights)
src.ul_SetLuminosity(src.luminosity + src.lights_power)
ul_SetLuminosity(luminosity + lights_power, luminosity + lights_power, luminosity)
else
src.ul_SetLuminosity(src.luminosity - src.lights_power)
ul_SetLuminosity(luminosity - lights_power, luminosity - lights_power, luminosity)
src.log_message("Toggled lights.")
return
+33 -5
View File
@@ -1185,6 +1185,8 @@
spawn_result()
var/obj/item/mecha_parts/chassis/const_holder = holder
const_holder.construct = new /datum/construction/reversible/mecha/odysseus(const_holder)
const_holder.icon = 'mech_construction.dmi'
const_holder.icon_state = "odysseus0"
const_holder.density = 1
spawn()
del src
@@ -1203,7 +1205,7 @@
"backkey"=/obj/item/weapon/crowbar,
"desc"="External armor is installed."),
//3
list("key"=/obj/item/mecha_parts/part/odysseus_armour,
list("key"=/obj/item/stack/sheet/plasteel,
"backkey"=/obj/item/weapon/weldingtool,
"desc"="Internal armor is welded."),
//4
@@ -1262,82 +1264,108 @@
switch(index)
if(14)
user.visible_message("[user] connects [holder] hydraulic systems", "You connect [holder] hydraulic systems.")
holder.icon_state = "odysseus1"
if(13)
if(diff==FORWARD)
user.visible_message("[user] activates [holder] hydraulic systems.", "You activate [holder] hydraulic systems.")
holder.icon_state = "odysseus2"
else
user.visible_message("[user] disconnects [holder] hydraulic systems", "You disconnect [holder] hydraulic systems.")
holder.icon_state = "odysseus0"
if(12)
if(diff==FORWARD)
user.visible_message("[user] adds the wiring to [holder].", "You add the wiring to [holder].")
holder.icon_state = "odysseus3"
else
user.visible_message("[user] deactivates [holder] hydraulic systems.", "You deactivate [holder] hydraulic systems.")
holder.icon_state = "odysseus1"
if(11)
if(diff==FORWARD)
user.visible_message("[user] adjusts the wiring of [holder].", "You adjust the wiring of [holder].")
holder.icon_state = "odysseus4"
else
user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].")
var/obj/item/weapon/cable_coil/coil = new /obj/item/weapon/cable_coil(get_turf(holder))
coil.amount = 4
holder.icon_state = "odysseus2"
if(10)
if(diff==FORWARD)
user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].")
del used_atom
holder.icon_state = "odysseus5"
else
user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].")
holder.icon_state = "odysseus3"
if(9)
if(diff==FORWARD)
user.visible_message("[user] secures the mainboard.", "You secure the mainboard.")
holder.icon_state = "odysseus6"
else
user.visible_message("[user] removes the central control module from [holder].", "You remove the central computer mainboard from [holder].")
new /obj/item/weapon/circuitboard/mecha/odysseus/main(get_turf(holder))
holder.icon_state = "odysseus4"
if(8)
if(diff==FORWARD)
user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].")
del used_atom
holder.icon_state = "odysseus7"
else
user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.")
holder.icon_state = "odysseus5"
if(7)
if(diff==FORWARD)
user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.")
holder.icon_state = "odysseus8"
else
user.visible_message("[user] removes the peripherals control module from [holder].", "You remove the peripherals control module from [holder].")
new /obj/item/weapon/circuitboard/mecha/odysseus/peripherals(get_turf(holder))
holder.icon_state = "odysseus6"
if(6)
if(diff==FORWARD)
user.visible_message("[user] installs internal armor layer to [holder].", "You install internal armor layer to [holder].")
holder.icon_state = "odysseus9"
else
user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.")
holder.icon_state = "odysseus7"
if(5)
if(diff==FORWARD)
user.visible_message("[user] secures internal armor layer.", "You secure internal armor layer.")
holder.icon_state = "odysseus10"
else
user.visible_message("[user] pries internal armor layer from [holder].", "You prie internal armor layer from [holder].")
var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder))
MS.amount = 5
holder.icon_state = "odysseus8"
if(4)
if(diff==FORWARD)
user.visible_message("[user] welds internal armor layer to [holder].", "You weld the internal armor layer to [holder].")
holder.icon_state = "odysseus11"
else
user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.")
holder.icon_state = "odysseus9"
if(3)
if(diff==FORWARD)
user.visible_message("[user] installs [used_atom] layer to [holder].", "You install external reinforced armor layer to [holder].")
holder.overlays += used_atom.icon_state
del used_atom
holder.icon_state = "odysseus12"
else
user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].")
if(2)
holder.icon_state = "odysseus10"
if(diff==FORWARD)
user.visible_message("[user] secures external armor layer.", "You secure external reinforced armor layer.")
holder.icon_state = "odysseus13"
else
var/obj/item/mecha_parts/part/odysseus_armour/MS = new /obj/item/mecha_parts/part/odysseus_armour(get_turf(holder))
var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder))
MS.amount = 5
user.visible_message("[user] pries [MS] from [holder].", "You prie [MS] from [holder].")
holder.icon_state = "odysseus11"
if(1)
if(diff==FORWARD)
user.visible_message("[user] welds external armor layer to [holder].", "You weld external armor layer to [holder].")
holder.icon_state = "odysseus14"
else
user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.")
holder.icon_state = "odysseus12"
return 1
spawn_result()
+2 -2
View File
@@ -387,12 +387,12 @@
construction_time = 130
construction_cost = list("metal"=15000)
/obj/item/mecha_parts/part/odysseus_armour
/*/obj/item/mecha_parts/part/odysseus_armour
name="Odysseus Carapace"
icon_state = "odysseus_armour"
origin_tech = "materials=3;engineering=3"
construction_time = 200
construction_cost = list("metal"=15000)
construction_cost = list("metal"=15000)*/
///////// Circuitboards
+6 -2
View File
@@ -31,11 +31,12 @@
/obj/effect/decal/mecha_wreckage/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/weldingtool) && W:welding)
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(salvage_num <= 0)
user << "You don't see anything that can be cut with [W]."
return
if (!isemptylist(welder_salvage) && W:remove_fuel(0,user))
if (!isemptylist(welder_salvage) && WT.remove_fuel(0,user))
var/type = prob(70)?pick(welder_salvage):null
if(type)
var/N = new type(get_turf(user))
@@ -94,6 +95,9 @@
parts -= part
return
/obj/effect/decal/mecha_wreckage/gygax/dark
name = "Dark Gygax wreckage"
icon_state = "darkgygax-broken"
/obj/effect/decal/mecha_wreckage/marauder
name = "Marauder wreckage"
+1 -1
View File
@@ -63,7 +63,7 @@
New()
..()
ul_SetLuminosity(1)
ul_SetLuminosity(0,3,0)
spawn(1200) // 2 minutes
del(src)
+2 -2
View File
@@ -28,14 +28,14 @@
if(src.loc == user)
user.ul_SetLuminosity(user.LuminosityRed + brightness_on, user.LuminosityGreen + brightness_on, user.LuminosityBlue)
else if (isturf(src.loc))
src.ul_SetLuminosity(brightness_on, brightness_on, 0)
ul_SetLuminosity(brightness_on, brightness_on, 0)
else
icon_state = icon_off
if(src.loc == user)
user.ul_SetLuminosity(user.LuminosityRed - brightness_on, user.LuminosityGreen - brightness_on, user.LuminosityBlue)
else if (isturf(src.loc))
src.ul_SetLuminosity(0)
ul_SetLuminosity(0)
/obj/item/device/flashlight/attack_self(mob/user)
// if(!isturf(user.loc))
+1 -1
View File
@@ -94,7 +94,7 @@
var/datum/powernet/PN = attached.get_powernet()
if(PN)
if(!luminosity)
ul_SetLuminosity(12)
ul_SetLuminosity(12,3,0)
// found a powernet, so drain up to max power from it
+220 -38
View File
@@ -2,22 +2,24 @@ obj/structure/door_assembly
icon = 'door_assembly.dmi'
name = "Airlock Assembly"
icon_state = "door_as0"
icon_state = "door_as_0"
anchored = 0
density = 1
var/state = 0
var/glass = 0
var/base_icon_state
var/mineral = null
var/base_icon_state = "door_as_0"
var/glass_base_icon_state = "door_as_g0"
var/obj/item/weapon/airlock_electronics/electronics = null
var/airlock_type = /obj/machinery/door/airlock //the type path of the airlock once completed
var/glass_type = /obj/machinery/door/airlock/glass //the type path of the airlock if changed into a glass airlock
var/glass_base_icon_state = "door_as_g"
var/glass_type = /obj/machinery/door/airlock/glass
var/glass = null
New()
base_icon_state = copytext(icon_state,1,lentext(icon_state))
door_assembly_0
name = "Airlock Assembly"
icon_state = "door_as1"
icon_state = "door_as_1"
airlock_type = /obj/machinery/door/airlock
anchored = 1
density = 1
@@ -117,22 +119,18 @@ obj/structure/door_assembly
door_assembly_med
name = "Medical Airlock Assembly"
icon_state = "door_as_med1"
glass_base_icon_state = "door_as_gmed"
glass_type = /obj/machinery/door/airlock/glass/glass_medical
airlock_type = /obj/machinery/door/airlock/medical
anchored = 1
density = 1
state = 1
glass = 0
glass
glass = 1
mineral = "glass"
icon_state = "door_as_gmed1"
door_assembly_mai
name = "Maintenance Airlock Assembly"
icon_state = "door_as_mai1"
glass_type = null
airlock_type = /obj/machinery/door/airlock/maintenance
anchored = 1
density = 1
@@ -142,7 +140,6 @@ obj/structure/door_assembly
door_assembly_ext
name = "External Airlock Assembly"
icon_state = "door_as_ext1"
glass_type = null
airlock_type = /obj/machinery/door/airlock/external
anchored = 1
density = 1
@@ -152,7 +149,6 @@ obj/structure/door_assembly
door_assembly_fre
name = "Freezer Airlock Assembly"
icon_state = "door_as_fre1"
glass_type = null
airlock_type = /obj/machinery/door/airlock/freezer
anchored = 1
density = 1
@@ -162,21 +158,84 @@ obj/structure/door_assembly
door_assembly_mhatch
name = "Airtight Maintenance Hatch Assembly"
icon_state = "door_as_mhatch1"
glass_type = null
airlock_type = /obj/machinery/door/airlock/maintenance_hatch
anchored = 1
density = 1
state = 1
glass = 0
door_assembly_g
door_assembly_glass
name = "Glass Airlock Assembly"
icon_state = "door_as_g1"
airlock_type = /obj/machinery/door/airlock/glass
anchored = 1
density = 1
state = 1
glass = 1
mineral = "glass"
door_assembly_gold
name = "Gold Airlock Assembly"
icon_state = "door_as_gold1"
airlock_type = /obj/machinery/door/airlock/gold
anchored = 1
density = 1
state = 1
mineral = "gold"
door_assembly_silver
name = "Silver Airlock Assembly"
icon_state = "door_as_silver1"
airlock_type = /obj/machinery/door/airlock/silver
anchored = 1
density = 1
state = 1
mineral = "silver"
door_assembly_diamond
name = "Diamond Airlock Assembly"
icon_state = "door_as_diamond1"
airlock_type = /obj/machinery/door/airlock/diamond
anchored = 1
density = 1
state = 1
mineral = "diamond"
door_assembly_uranium
name = "Uranium Airlock Assembly"
icon_state = "door_as_uranium1"
airlock_type = /obj/machinery/door/airlock/uranium
anchored = 1
density = 1
state = 1
mineral = "uranium"
door_assembly_plasma
name = "Plasma Airlock Assembly"
icon_state = "door_as_plasma1"
airlock_type = /obj/machinery/door/airlock/plasma
anchored = 1
density = 1
state = 1
mineral = "plasma"
door_assembly_clown
name = "Bananium Airlock Assembly"
desc = "Honk"
icon_state = "door_as_bananium1"
airlock_type = /obj/machinery/door/airlock/clown
anchored = 1
density = 1
state = 1
mineral = "clown"
door_assembly_sandstone
name = "Sandstone Airlock Assembly"
icon_state = "door_as_sandstone1"
airlock_type = /obj/machinery/door/airlock/sandstone
anchored = 1
density = 1
state = 1
mineral = "sandstone"
/obj/structure/door_assembly/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/weldingtool) && !anchored )
@@ -189,8 +248,30 @@ obj/structure/door_assembly
if(!src || !WT.isOn()) return
user << "\blue You dissasembled the airlock assembly!"
new /obj/item/stack/sheet/metal(get_turf(src), 4)
if(src.glass==1)
new /obj/item/stack/sheet/rglass(get_turf(src))
switch(mineral)
if("glass")
new /obj/item/stack/sheet/rglass(get_turf(src))
if("gold")
new /obj/item/stack/sheet/gold(get_turf(src))
new /obj/item/stack/sheet/gold(get_turf(src))
if("silver")
new /obj/item/stack/sheet/silver(get_turf(src))
new /obj/item/stack/sheet/silver(get_turf(src))
if("diamond")
new /obj/item/stack/sheet/diamond(get_turf(src))
new /obj/item/stack/sheet/diamond(get_turf(src))
if("uranium")
new /obj/item/stack/sheet/uranium(get_turf(src))
new /obj/item/stack/sheet/uranium(get_turf(src))
if("plasma")
new /obj/item/stack/sheet/plasma(get_turf(src))
new /obj/item/stack/sheet/plasma(get_turf(src))
if("clown")
new /obj/item/stack/sheet/clown(get_turf(src))
new /obj/item/stack/sheet/clown(get_turf(src))
if("sandstone")
new /obj/item/stack/sheet/sandstone(get_turf(src))
new /obj/item/stack/sheet/sandstone(get_turf(src))
del(src)
else
user << "\blue You need more welding fuel to dissassemble the airlock assembly."
@@ -284,19 +365,100 @@ obj/structure/door_assembly
ae = electronics
electronics = null
ae.loc = src.loc
else if(istype(W, /obj/item/stack/sheet) && !mineral)
var/obj/item/stack/sheet/G = W
if(G)
if(G.amount>=1)
switch(G.type)
if(/obj/item/stack/sheet/rglass)
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
if(do_after(user, 40))
user << "\blue You installed reinforced glass windows into the airlock assembly!"
G.use(1)
src.mineral = "glass"
src.name = "Near finished Window Airlock Assembly"
src.airlock_type = /obj/machinery/door/airlock/glass
src.base_icon_state = "door_as_glass" //this will be applied to the icon_state with the correct state number at the proc's end.
if(/obj/item/stack/sheet/gold)
if(G.amount>=2)
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
if(do_after(user, 40))
user << "\blue You installed gold plating into the airlock assembly!"
G.use(2)
src.mineral = "gold"
src.name = "Near finished Gold Airlock Assembly"
src.airlock_type = /obj/machinery/door/airlock/gold
src.base_icon_state = "door_as_gold"
if(/obj/item/stack/sheet/silver)
if(G.amount>=2)
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
if(do_after(user, 40))
user << "\blue You installed silver plating into the airlock assembly!"
G.use(2)
src.mineral = "silver"
src.name = "Near finished Silver Airlock Assembly"
src.airlock_type = /obj/machinery/door/airlock/silver
src.base_icon_state = "door_as_silver"
if(/obj/item/stack/sheet/diamond)
if(G.amount>=2)
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
if(do_after(user, 40))
user << "\blue You installed diamond plating into the airlock assembly!"
G.use(2)
src.mineral = "diamond"
src.name = "Near finished Diamond Airlock Assembly"
src.airlock_type = /obj/machinery/door/airlock/diamond
src.base_icon_state = "door_as_diamond"
if(/obj/item/stack/sheet/uranium)
if(G.amount>=2)
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
if(do_after(user, 40))
user << "\blue You installed uranium plating into the airlock assembly!"
G.use(2)
src.mineral = "uranium"
src.name = "Near finished Uranium Airlock Assembly"
src.airlock_type = /obj/machinery/door/airlock/uranium
src.base_icon_state = "door_as_uranium"
if(/obj/item/stack/sheet/plasma)
if(G.amount>=2)
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
if(do_after(user, 40))
user << "\blue You installed plasma plating into the airlock assembly!"
G.use(2)
src.mineral = "plasma"
src.name = "Near finished Plasma Airlock Assembly"
src.airlock_type = /obj/machinery/door/airlock/plasma
src.base_icon_state = "door_as_plasma"
if(/obj/item/stack/sheet/clown)
if(G.amount>=2)
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
if(do_after(user, 40))
user << "\blue You installed bananium plating into the airlock assembly!HONK"
G.use(2)
playsound(src.loc, 'bikehorn.ogg', 15, 1, -3)
src.mineral = "clown"
src.name = "Near finished Bananium Airlock Assembly"
src.airlock_type = /obj/machinery/door/airlock/clown
src.base_icon_state = "door_as_clown"
if(/obj/item/stack/sheet/sandstone)
if(G.amount>=2)
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
if(do_after(user, 40))
user << "\blue You installed sandstone plating into the airlock assembly!"
G.use(2)
src.mineral = "sandstone"
src.name = "Near finished Sandstone Airlock Assembly"
src.airlock_type = /obj/machinery/door/airlock/sandstone
src.base_icon_state = "door_as_sandstone"
else if(istype(W, /obj/item/stack/sheet/rglass) && glass == 0 && ispath(glass_type))
playsound(src.loc, 'Crowbar.ogg', 100, 1)
user.visible_message("[user] adds reinforced glass windows to the airlock assembly.", "You start to install reinforced glass windows into the airlock assembly.")
var/obj/item/stack/sheet/rglass/G = W
if(do_after(user, 40))
if(G)
if(G.amount>=1)
user << "\blue You installed glass windows the airlock assembly!"
G.use(1)
src.glass = 1
src.name = "Near finished Window Airlock Assembly"
src.airlock_type = glass_type
else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 )
playsound(src.loc, 'Screwdriver.ogg', 100, 1)
user << "\blue Now finishing the airlock."
@@ -305,10 +467,33 @@ obj/structure/door_assembly
if(!src) return
user << "\blue You finish the airlock!"
var/obj/machinery/door/airlock/door
if(glass)
door = new src.glass_type( src.loc )
else
door = new src.airlock_type( src.loc )
switch(mineral)
if("glass")
airlock_type = /obj/machinery/door/airlock/glass
door = new src.airlock_type( src.loc )
if("gold")
airlock_type = /obj/machinery/door/airlock/gold
door = new src.airlock_type( src.loc )
if("silver")
airlock_type = /obj/machinery/door/airlock/silver
door = new src.airlock_type( src.loc )
if("diamond")
airlock_type = /obj/machinery/door/airlock/diamond
door = new src.airlock_type( src.loc )
if("uranium")
airlock_type = /obj/machinery/door/airlock/uranium
door = new src.airlock_type( src.loc )
if("plasma")
airlock_type = /obj/machinery/door/airlock/plasma
door = new src.airlock_type( src.loc )
if("clown")
airlock_type = /obj/machinery/door/airlock/clown
door = new src.airlock_type( src.loc )
if("sandstone")
airlock_type = /obj/machinery/door/airlock/sandstone
door = new src.airlock_type( src.loc )
else
door = new src.airlock_type( src.loc )
//door.req_access = src.req_access
door.electronics = src.electronics
door.req_access = src.electronics.conf_access
@@ -316,10 +501,7 @@ obj/structure/door_assembly
del(src)
else
..()
if(glass)
icon_state = "[glass_base_icon_state][state]"
else
icon_state = "[base_icon_state][state]"
icon_state = "[base_icon_state][state]"
//This updates the icon_state. They are named as "door_as1_eng" where the 1 in that example
//represents what state it's in. So the most generic algorithm for the correct updating of
//this is simply to change the number.
+32
View File
@@ -536,6 +536,38 @@
istype(W,/obj/item/projectile)\
)
proc/is_hot(obj/item/W as obj)
switch(W.type)
if(/obj/item/weapon/weldingtool)
var/obj/item/weapon/weldingtool/WT = W
if(WT.isOn())
return 3800
else
return 0
if(/obj/item/weapon/lighter)
if(W:lit)
return 1500
else
return 0
if(/obj/item/weapon/match)
if(W:lit)
return 1000
else
return 0
if(/obj/item/clothing/mask/cigarette)
if(W:lit)
return 1000
else
return 0
if(/obj/item/weapon/pickaxe/plasmacutter)
return 3800
if(/obj/item/weapon/melee/energy)
return 3500
else
return 0
return 0
/proc/is_cut(obj/item/W as obj)
return ( \
istype(W, /obj/item/weapon/wirecutters) || \
@@ -491,5 +491,5 @@ ZIPPO
dropped(mob/user)
if(lit)
user.ul_SetLuminosity(user.LuminosityRed - 2, user.LuminosityGreen - 1, user.LuminosityBlue)
ul_SetLuminosity(2)
ul_SetLuminosity(2,1,0)
return
@@ -21,7 +21,8 @@
/obj/item/weapon/dnainjector/proc/inject(mob/M as mob)
M.radiation += rand(20,50)
if(istype(M,/mob/living))
M.radiation += rand(20,50)
if (!(NOCLONE in M.mutations)) // prevents drained people from having their DNA changed
if (dnatype == "ui")
@@ -0,0 +1,95 @@
/obj/item/weapon/melee/baton
name = "stun baton"
desc = "A stun baton for incapacitating people with."
icon_state = "stunbaton"
item_state = "baton"
flags = FPRINT | TABLEPASS
slot_flags = SLOT_BELT
force = 10
throwforce = 7
w_class = 3
var/charges = 10
var/status = 0
origin_tech = "combat=2"
/obj/item/weapon/melee/baton/update_icon()
if(status)
icon_state = "stunbaton_active"
else
icon_state = "stunbaton"
/obj/item/weapon/melee/baton/attack_self(mob/user as mob)
if(status && (CLUMSY in user.mutations) && prob(50))
user << "\red You grab the [src] on the wrong side."
user.Weaken(30)
charges--
if(charges < 1)
status = 0
update_icon()
return
if(charges > 0)
status = !status
user << "<span class='notice'>\The [src] is now [status ? "on" : "off"].</span>"
playsound(src.loc, "sparks", 75, 1, -1)
update_icon()
else
status = 0
user << "<span class='warning'>\The [src] is out of charge.</span>"
add_fingerprint(user)
/obj/item/weapon/melee/baton/attack(mob/M as mob, mob/user as mob)
if(status && (CLUMSY in user.mutations) && prob(50))
user << "<span class='danger'>You accidentally hit yourself with the [src]!</span>"
user.Weaken(30)
charges--
if(charges < 1)
status = 0
update_icon()
return
var/mob/living/carbon/human/H = M
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been attacked with [src.name] by [user.name] ([user.ckey]) (INTENT: [uppertext(user.a_intent)])</font>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to attack [M.name] ([M.ckey]) (INTENT: [uppertext(user.a_intent)])</font>")
log_admin("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src].")
message_admins("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src].")
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
if(isrobot(M))
..()
return
if(user.a_intent != "help")
if(!..()) return
H.apply_effect(5, WEAKEN, 0)
H.visible_message("<span class='danger'>[M] has been beaten with the [src] by [user]!</span>")
playsound(src.loc, "swing_hit", 50, 1, -1)
else if(!status)
H.visible_message("<span class='warning'>[M] has been prodded with the [src] by [user]. Luckily it was off.</span>")
return
if(status)
H.apply_effect(10, STUN, 0)
H.apply_effect(10, WEAKEN, 0)
H.apply_effect(10, STUTTER, 0)
user.lastattacked = M
H.lastattacker = user
charges--
H.visible_message("<span class='danger'>[M] has been stunned with the [src] by [user]!</span>")
playsound(src.loc, "sparks", 75, 1, -1)
if(charges < 1)
status = 0
update_icon()
add_fingerprint(user)
/obj/item/weapon/melee/baton/emp_act(severity)
switch(severity)
if(1)
charges = 0
if(2)
charges = max(0, charges - 5)
if(charges < 1)
status = 0
update_icon()
@@ -594,7 +594,7 @@ CIRCULAR SAW
for(var/obj/item/weapon/implant/implant in S.implant)
implant.loc = (get_turf(H))
implant.implanted = 0
S.implant = null
S.implant.Remove(implant)
playsound(user, 'squelch1.ogg', 50, 1)
if(istype(implant, /obj/item/weapon/implant/explosive) || istype(implant, /obj/item/weapon/implant/uplink) || istype(implant, /obj/item/weapon/implant/dexplosive) || istype(implant, /obj/item/weapon/implant/explosive) || istype(implant, /obj/item/weapon/implant/compressed))
usr << "The implant disintegrates into nothing..."
@@ -3,7 +3,7 @@ CONTAINS:
SWORD
BLADE
AXE
STUN BATON
CLASSIC BATON
ENERGY SHIELD (where else should i even put this)
*/
@@ -95,104 +95,6 @@ ENERGY SHIELD (where else should i even put this)
src.add_fingerprint(user)
return
// STUN BATON
/obj/item/weapon/melee/baton/update_icon()
if(src.status)
icon_state = "stunbaton_active"
else
icon_state = "stunbaton"
/obj/item/weapon/melee/baton/attack_self(mob/user as mob)
src.status = !( src.status )
if ((CLUMSY in user.mutations) && prob(50))
usr << "\red You grab the stunbaton on the wrong side."
usr.Paralyse(60)
return
if (src.status)
user << "\blue The baton is now on."
playsound(src.loc, "sparks", 75, 1, -1)
else
user << "\blue The baton is now off."
playsound(src.loc, "sparks", 75, 1, -1)
update_icon()
src.add_fingerprint(user)
return
/obj/item/weapon/melee/baton/attack(mob/M as mob, mob/user as mob)
if ((CLUMSY in usr.mutations) && prob(50))
usr << "\red You grab the stunbaton on the wrong side."
usr.Weaken(30)
return
src.add_fingerprint(user)
var/mob/living/carbon/human/H = M
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been attacked with [src.name] by [user.name] ([user.ckey]) (INTENT: [uppertext(user.a_intent)])</font>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to attack [M.name] ([M.ckey]) (INTENT: [uppertext(user.a_intent)])</font>")
log_admin("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src].")
message_admins("ATTACK: [user] ([user.ckey]) attacked [M] ([M.ckey]) with [src].")
log_attack("<font color='red'>[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>")
if(isrobot(M))
..()
return
if (status == 0 || (status == 1 && charges ==0))
if(user.a_intent == "hurt")
if(!..()) return
M.Weaken(5)
for(var/mob/O in viewers(M))
if (O.client) O.show_message("\red <B>[M] has been beaten with the stun baton by [user]!</B>", 1)
if(status == 1 && charges == 0)
user << "\red Not enough charge"
return
else
for(var/mob/O in viewers(M))
if (O.client) O.show_message("\red <B>[M] has been prodded with the stun baton by [user]! Luckily it was off.</B>", 1)
if(status == 1 && charges == 0)
user << "\red Not enough charge"
return
if((charges > 0 && status == 1) && (istype(H, /mob/living/carbon)))
flick("baton_active", src)
if (user.a_intent == "hurt")
if(!..()) return
playsound(src.loc, 'Genhit.ogg', 50, 1, -1)
if(isrobot(user))
var/mob/living/silicon/robot/R = user
R.cell.charge -= 20
else
charges--
if (M.stuttering < 1 && (!(HULK in M.mutations) && M.canstun) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.stuttering = 1
M.Stun(1)
M.Weaken(1)
else
playsound(src.loc, 'Egloves.ogg', 50, 1, -1)
if(isrobot(user))
var/mob/living/silicon/robot/R = user
R.cell.charge -= 20
else
charges--
if (M.stuttering < 10 && (!(HULK in M.mutations) && M.canstun) /*&& (!istype(H:wear_suit, /obj/item/clothing/suit/judgerobe))*/)
M.stuttering = 10
M.Stun(10)
M.Weaken(10)
user.lastattacked = M
M.lastattacker = user
for(var/mob/O in viewers(M))
if (O.client) O.show_message("\red <B>[M] has been stunned with the stun baton by [user]!</B>", 1, "\red You hear someone fall", 2)
/obj/item/weapon/melee/baton/emp_act(severity)
switch(severity)
if(1)
src.charges = 0
if(2)
charges -= 5
/obj/item/weapon/melee/classic_baton/attack(mob/M as mob, mob/living/user as mob)
if ((CLUMSY in user.mutations) && prob(50))
user << "\red You club yourself over the head."
+10 -6
View File
@@ -8,9 +8,9 @@
opacity = 1
icon = 'mineral_doors.dmi'
icon_state = "iron"
icon_state = "metal"
var/mineralType = "iron"
var/mineralType = "metal"
var/state = 0 //closed, 1 == open
var/isSwitchingStates = 0
var/hardness = 1
@@ -116,9 +116,13 @@
proc/Dismantle(devastated = 0)
if(!devastated)
var/ore = text2path("/obj/item/weapon/ore/[mineralType]")
var/ore = text2path("/obj/item/stack/sheet/[mineralType]")
for(var/i = 1, i <= oreAmount, i++)
new ore(get_turf(src))
else
var/ore = text2path("/obj/item/stack/sheet/[mineralType]")
for(var/i = 3, i <= oreAmount, i++)
new ore(get_turf(src))
del(src)
ex_act(severity = 1)
@@ -154,7 +158,7 @@
return 1
/obj/structure/mineral_door/iron
mineralType = "iron"
mineralType = "metal"
hardness = 3
/obj/structure/mineral_door/silver
@@ -170,7 +174,7 @@
New()
..()
ul_SetLuminosity(3)
ul_SetLuminosity(0,3,0)
/obj/structure/mineral_door/sandstone
mineralType = "sandstone"
@@ -205,7 +209,7 @@
var/toxinsToDeduce = temperature/10
napalm.toxins = toxinsToDeduce
napalm.temperature = 400+T0C
napalm.temperature = 200+T0C
napalm.update_values()
target_tile.assume_air(napalm)
+1 -1
View File
@@ -7,7 +7,7 @@
return
proc/ChangeSign(var/Text)
src.icon_state = "[Text]"
//ul_SetLuminosity(4)
ul_SetLuminosity(3,0,0)
return
/obj/effect/sign/securearea/ex_act(severity)
+1 -1
View File
@@ -142,7 +142,7 @@ var/global/list/datum/stack_recipe/plasteel_recipes = list ( \
return
/obj/item/stack/tile/plasteel/proc/build(turf/S as turf)
S.ReplaceWithAirlessPlating()
S.ReplaceWithPlating()
// var/turf/simulated/floor/W = S.ReplaceWithFloor()
// W.make_plating()
return
+390 -43
View File
@@ -50,19 +50,65 @@ obj/structure/meteorhit(obj/O as obj)
new /obj/item/stack/sheet/metal(get_turf(src))
del(src)
else if((istype(W, /obj/item/stack/sheet/metal)) && (W:amount >= 2) && istype(src,/obj/structure/girder/displaced))
else if(istype(W, /obj/item/stack/sheet) && !anchored)
switch(W.type)
if(/obj/item/stack/sheet/metal)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall (src.loc)
if(/obj/item/stack/sheet/plasteel)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falserwall (src.loc)
if(/obj/item/stack/sheet/gold)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall/gold (src.loc)
if(/obj/item/stack/sheet/silver)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall/silver (src.loc)
if(/obj/item/stack/sheet/diamond)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall/diamond (src.loc)
if(/obj/item/stack/sheet/uranium)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall/uranium (src.loc)
if(/obj/item/stack/sheet/plasma)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall/plasma (src.loc)
if(/obj/item/stack/sheet/clown)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall/clown (src.loc)
if(/obj/item/stack/sheet/sandstone)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall/sandstone (src.loc)
/* if(/obj/item/stack/sheet/wood)
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall/wood (src.loc)*/
add_hiddenprint(usr)
del(src)
/* else if((istype(W, /obj/item/stack/sheet/metal)) && (W:amount >= 2) && istype(src,/obj/structure/girder/displaced))
W:use(2)
user << "\blue You create a false wall! Push on it to open or close the passage."
new /obj/structure/falsewall (src.loc)
add_hiddenprint(usr)
del(src)
else if(istype(W, /obj/item/stack/sheet/plasteel) && istype(src,/obj/structure/girder/displaced))
W:use(2)
user << "\blue You create a false r wall! Push on it to open or close the passage."
new /obj/structure/falserwall (src.loc)
add_hiddenprint(usr)
del(src)
del(src)*/
else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 && istype(src,/obj/structure/girder/reinforced))
playsound(src.loc, 'Screwdriver.ogg', 100, 1)
@@ -95,49 +141,145 @@ obj/structure/meteorhit(obj/O as obj)
new/obj/structure/girder( src.loc )
del(src)
else if((istype(W, /obj/item/stack/sheet/metal)) && (W:amount >= 2))
user << "\blue Now adding plating..."
if (do_after(user,40))
if(!W)
return
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithWall()
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
else if((istype(W, /obj/item/stack/sheet)) && (W:amount >= 2))
switch(W.type)
else if (istype(W, /obj/item/stack/sheet/plasteel))
if (src.icon_state == "reinforced") //Time to finalize!
user << "\blue Now finalising reinforced wall."
if(do_after(user, 50))
if(!W)
if(/obj/item/stack/sheet/metal)
user << "\blue Now adding plating..."
if (do_after(user,40))
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithWall()
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
user << "\blue Wall fully reinforced!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithRWall()
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/r_wall/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W)
W:use(1)
del(src)
return
else
user << "\blue Now reinforcing girders"
if (do_after(user,60))
if(!W)
if (/obj/item/stack/sheet/plasteel)
if (src.icon_state == "reinforced") //Time to finalize!
user << "\blue Now finalising reinforced wall."
if(do_after(user, 50))
user << "\blue Wall fully reinforced!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithRWall()
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/r_wall/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W)
W:use(1)
del(src)
return
else
user << "\blue Now reinforcing girders"
if (do_after(user,60))
user << "\blue Girders reinforced!"
W:use(1)
new/obj/structure/girder/reinforced( src.loc )
del(src)
return
if(/obj/item/stack/sheet/gold)
user << "\blue Now adding plating..."
if (do_after(user,40))
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithMineralWall("gold")
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/mineral/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
user << "\blue Girders reinforced!"
W:use(1)
new/obj/structure/girder/reinforced( src.loc )
del(src)
return
if(/obj/item/stack/sheet/silver)
user << "\blue Now adding plating..."
if (do_after(user,40))
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithMineralWall("silver")
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/mineral/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
if(/obj/item/stack/sheet/diamond)
user << "\blue Now adding plating..."
if (do_after(user,40))
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithMineralWall("diamond")
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/mineral/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
if(/obj/item/stack/sheet/uranium)
user << "\blue Now adding plating..."
if (do_after(user,40))
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithMineralWall("uranium")
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/mineral/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
if(/obj/item/stack/sheet/plasma)
user << "\blue Now adding plating..."
if (do_after(user,40))
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithMineralWall("plasma")
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/mineral/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
if(/obj/item/stack/sheet/clown)
user << "\blue Now adding plating..."
if (do_after(user,40))
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithMineralWall("clown")
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/mineral/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
if(/obj/item/stack/sheet/sandstone)
user << "\blue Now adding plating..."
if (do_after(user,40))
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithMineralWall("sandstone")
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
for(var/turf/simulated/wall/mineral/X in Tsrc.loc)
if(X) X.add_hiddenprint(usr)
if (W) W:use(2)
del(src)
return
else if(istype(W, /obj/item/pipe))
var/obj/item/pipe/P = W
if (P.pipe_type in list(0, 1, 5)) //simple pipes, simple bends, and simple manifolds.
@@ -266,3 +408,208 @@ obj/structure/meteorhit(obj/O as obj)
del(src)
return
/obj/structure/falsewall
var/mineral = "metal"
/obj/structure/falserwall
var/mineral = "metal"
/obj/structure/falsewall/gold
mineral = "gold"
/obj/structure/falsewall/silver
mineral = "silver"
/obj/structure/falsewall/diamond
mineral = "diamond"
/obj/structure/falsewall/uranium
mineral = "uranium"
var/active = null
var/last_event = 0
/obj/structure/falsewall/plasma
mineral = "plasma"
/obj/structure/falsewall/clown
mineral = "clown"
/obj/structure/falsewall/sandstone
mineral = "sandstone"
/*/obj/structure/falsewall/wood
mineral = "wood"*/
/obj/structure/falsewall/attack_hand(mob/user as mob)
if(density)
// Open wall
icon_state = "[mineral]fwall_open"
flick("[mineral]fwall_opening", src)
sleep(15)
src.density = 0
src.ul_SetOpacity(0)
var/turf/T = src.loc
T.ul_Recalculate()
else
flick("[mineral]fwall_closing", src)
icon_state = "[mineral]0"
sleep(15)
src.density = 1
src.ul_SetOpacity(1)
var/turf/T = src.loc
//T.ul_LumUpdate()
src.relativewall()
T.ul_Recalculate()
/obj/structure/falsewall/uranium/attack_hand(mob/user as mob)
radiate()
..()
/obj/structure/falsewall/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/screwdriver))
var/turf/T = get_turf(src)
user.visible_message("[user] tightens some bolts on the wall.", "You tighten the bolts on the wall.")
if(!mineral)
T.ReplaceWithWall()
else
T.ReplaceWithMineralWall(mineral)
del(src)
if( istype(W, /obj/item/weapon/weldingtool) )
var/obj/item/weapon/weldingtool/WT = W
if( WT:welding )
var/turf/T = get_turf(src)
if(!mineral)
T.ReplaceWithWall()
else
T.ReplaceWithMineralWall(mineral)
if(mineral != "plasma")//Stupid shit keeps me from pushing the attackby() to plasma walls -Sieve
T = get_turf(src)
T.attackby(W,user)
del(src)
else if( istype(W, /obj/item/weapon/pickaxe/plasmacutter) )
var/turf/T = get_turf(src)
if(!mineral)
T.ReplaceWithWall()
else
T.ReplaceWithMineralWall(mineral)
if(mineral != "plasma")
T = get_turf(src)
T.attackby(W,user)
del(src)
//DRILLING
else if (istype(W, /obj/item/weapon/pickaxe/diamonddrill))
var/turf/T = get_turf(src)
if(!mineral)
T.ReplaceWithWall()
else
T.ReplaceWithMineralWall(mineral)
T = get_turf(src)
T.attackby(W,user)
del(src)
else if( istype(W, /obj/item/weapon/melee/energy/blade) )
var/turf/T = get_turf(src)
if(!mineral)
T.ReplaceWithWall()
else
T.ReplaceWithMineralWall(mineral)
if(mineral != "plasma")
T = get_turf(src)
T.attackby(W,user)
del(src)
/*
var/turf/T = get_turf(user)
user << "\blue Now adding plating..."
sleep(40)
if (get_turf(user) == T)
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithWall()
*/
/obj/structure/falsewall/uranium/attackby(obj/item/weapon/W as obj, mob/user as mob)
radiate()
..()
/obj/structure/falserwall/
attack_hand(mob/user as mob)
if(density)
// Open wall
icon_state = "frwall_open"
flick("frwall_opening", src)
sleep(15)
src.density = 0
src.ul_SetOpacity(0)
var/turf/T = src.loc
T.ul_Recalculate()
else
icon_state = "r_wall"
flick("frwall_closing", src)
sleep(15)
src.density = 1
src.ul_SetOpacity(1)
var/turf/T = src.loc
//T.ul_LumUpdate()
src.relativewall()
T.ul_Recalculate()
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/screwdriver))
var/turf/T = get_turf(src)
user.visible_message("[user] tightens some bolts on the r wall.", "You tighten the bolts on the r wall.")
T.ReplaceWithWall() //Intentionally makes a regular wall instead of an r-wall (no cheap r-walls for you).
del(src)
if( istype(W, /obj/item/weapon/weldingtool) )
var/obj/item/weapon/weldingtool/WT = W
if( WT.remove_fuel(0,user) )
var/turf/T = get_turf(src)
T.ReplaceWithWall()
T = get_turf(src)
T.attackby(W,user)
del(src)
else if( istype(W, /obj/item/weapon/pickaxe/plasmacutter) )
var/turf/T = get_turf(src)
T.ReplaceWithWall()
T = get_turf(src)
T.attackby(W,user)
del(src)
//DRILLING
else if (istype(W, /obj/item/weapon/pickaxe/diamonddrill))
var/turf/T = get_turf(src)
T.ReplaceWithWall()
T = get_turf(src)
T.attackby(W,user)
del(src)
else if( istype(W, /obj/item/weapon/melee/energy/blade) )
var/turf/T = get_turf(src)
T.ReplaceWithWall()
T = get_turf(src)
T.attackby(W,user)
del(src)
/obj/structure/falsewall/uranium/proc/radiate()
if(!active)
if(world.time > last_event+15)
active = 1
for(var/mob/living/L in range(3,src))
L.apply_effect(12,IRRADIATE,0)
for(var/turf/simulated/wall/mineral/T in range(3,src))
if(T.mineral == "uranium")
T.radiate()
last_event = world.time
active = null
return
return
+1 -78
View File
@@ -179,81 +179,4 @@
// this doesn't do anything but the timer etc. expects it to be here
// eventually maybe have it update icon to show state (timer, prox etc.) like old bombs
/obj/item/device/transfer_valve/proc/c_state()
return
/obj/structure/falsewall
attack_hand(mob/user as mob)
if(density)
// Open wall
icon_state = "fwall_open"
flick("fwall_opening", src)
sleep(15)
src.density = 0
src.ul_SetOpacity(0)
var/turf/T = src.loc
T.ul_Recalculate()
else
icon_state = "wall"
flick("fwall_closing", src)
sleep(15)
src.density = 1
src.ul_SetOpacity(1)
var/turf/T = src.loc
//T.sd_LumUpdate()
src.relativewall()
T.ul_Recalculate()
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/screwdriver))
var/turf/T = get_turf(src)
user.visible_message("[user] tightens some bolts on the wall.", "You tighten the bolts on the wall.")
T.ReplaceWithWall()
del(src)
//
/*
var/turf/T = get_turf(user)
user << "\blue Now adding plating..."
sleep(40)
if (get_turf(user) == T)
user << "\blue You added the plating!"
var/turf/Tsrc = get_turf(src)
Tsrc.ReplaceWithWall()
*/
/obj/structure/falserwall/
attack_hand(mob/user as mob)
if(density)
// Open wall
icon_state = "frwall_open"
flick("frwall_opening", src)
sleep(15)
src.density = 0
src.ul_SetOpacity(0)
var/turf/T = src.loc
T.ul_Recalculate()
else
icon_state = "r_wall"
flick("frwall_closing", src)
sleep(15)
src.density = 1
src.ul_SetOpacity(1)
var/turf/T = src.loc
//T.sd_LumUpdate()
src.relativewall()
T.ul_Recalculate()
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/screwdriver))
var/turf/T = get_turf(src)
user.visible_message("[user] tightens some bolts on the r wall.", "You tighten the bolts on the r wall.")
T.ReplaceWithWall() //Intentionally makes a regular wall instead of an r-wall (no cheap r-walls for you).
del(src)
return
+54 -13
View File
@@ -4,28 +4,56 @@
name = "toilet"
desc = "The HT-451, a torque rotation-based, waste disposal unit for small matter. This one seems remarkably clean."
icon = 'watercloset.dmi'
icon_state = "toilet0"
icon_state = "toilet00"
density = 0
anchored = 1
var/open = 0
var/mob/swirlie = null
var/open = 0 //if the lid is up
var/cistern = 0 //if the cistern bit is open
var/w_items = 0 //the combined w_class of all the items in the cistern
var/mob/swirlie = null //the mob being given a swirlie
/obj/structure/toilet/New()
open = round(rand(0, 1))
update_icon()
/obj/structure/toilet/attack_hand()
if(!swirlie)
open = !open
update_icon()
else
usr.visible_message("<span class='danger'>[usr] slams the toilet seat onto [swirlie.name]'s head!</span>", "<span class='notice'>You slam the toilet seat onto [swirlie.name]'s head!</span>", "You hear reverberating porcelain.")
/obj/structure/toilet/attack_hand(mob/user as mob)
if(swirlie)
usr.visible_message("<span class='danger'>[user] slams the toilet seat onto [swirlie.name]'s head!</span>", "<span class='notice'>You slam the toilet seat onto [swirlie.name]'s head!</span>", "You hear reverberating porcelain.")
swirlie.adjustBruteLoss(8)
return
if(cistern && !open)
if(!contents.len)
user << "<span class='notice'>The cistern is empty.</span>"
return
else
var/obj/item/I = pick(contents)
if(ishuman(user))
if(!user.get_active_hand())
I.loc = user.loc
user.put_in_hand(I)
else
I.loc = get_turf(src)
user << "<span class='notice'>You find \an [I] in the cistern.</span>"
w_items -= I.w_class
return
open = !open
update_icon()
/obj/structure/toilet/update_icon()
icon_state = "toilet[open]"
icon_state = "toilet[open][cistern]"
/obj/structure/toilet/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/weapon/crowbar))
user << "<span class='notice'>You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"].</span>"
playsound(loc, 'stonedoor_openclose.ogg', 50, 1)
if(do_after(user, 30))
user.visible_message("<span class='notice'>[user] [cistern ? "replaces the lid on the cistern" : "lifts the lid off the cistern"]!</span>", "<span class='notice'>You [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]!</span>", "You hear grinding porcelain.")
cistern = !cistern
update_icon()
return
/obj/structure/toilet/attackby(var/obj/item/I, var/mob/user)
if(istype(I, /obj/item/weapon/grab))
var/obj/item/weapon/grab/G = I
var/mob/GM = G.affecting
@@ -45,6 +73,19 @@
else
user << "<span class='notice'>You need a tighter grip.</span>"
if(cistern)
if(I.w_class > 3)
user << "<span class='notice'>\The [I] does not fit.</span>"
return
if(w_items + I.w_class > 5)
user << "<span class='notice'>The cistern is full.</span>"
return
user.drop_item()
I.loc = src
w_items += I.w_class
user << "You carefully place \the [I] into the cistern."
return
/obj/structure/urinal
@@ -55,7 +96,7 @@
density = 0
anchored = 1
/obj/structure/urinal/attackby(var/obj/item/I, var/mob/user)
/obj/structure/urinal/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/weapon/grab))
var/obj/item/weapon/grab/G = I
var/mob/GM = G.affecting
@@ -97,7 +138,7 @@
wash(M)
check_heat(M)
/obj/machinery/shower/attackby(var/obj/item/I, var/mob/user)
/obj/machinery/shower/attackby(var/obj/item/I as obj, var/mob/user as mob)
if(I.type == /obj/item/device/analyzer)
user << "<span class='notice'>The water temperature seems to be [watertemp].</span>"
if(istype(I, /obj/item/weapon/wrench))
+63 -1
View File
@@ -41,7 +41,8 @@
else if (istype(src,/obj/structure/falserwall))
src.icon_state = "rwall[junction]"
else if (istype(src,/obj/structure/falsewall))
src.icon_state = "wall[junction]"
var/obj/structure/falsewall/fwall = src
fwall.icon_state = "[fwall.mineral][junction]"
/* else if(istype(src,/turf/simulated/shuttle/wall))
var/newicon = icon;
var/newiconstate = icon_state;
@@ -151,3 +152,64 @@
W.relativewall()
..()*/
/turf/simulated/wall/relativewall()
if(istype(src,/turf/simulated/wall/vault)) //HACK!!!
return
var/junction = 0 //will be used to determine from which side the wall is connected to other walls
for(var/turf/simulated/wall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)//Only 'like' walls connect -Sieve
junction |= get_dir(src,W)
for(var/obj/structure/falsewall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)
junction |= get_dir(src,W)
for(var/obj/structure/falserwall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)
junction |= get_dir(src,W)
var/turf/simulated/wall/wall = src
wall.icon_state = "[wall.walltype][junction]"
return
/obj/structure/falsewall/relativewall()
var/junction = 0 //will be used to determine from which side the wall is connected to other walls
for(var/turf/simulated/wall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)//Only 'like' walls connect -Sieve
junction |= get_dir(src,W)
for(var/obj/structure/falsewall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)
junction |= get_dir(src,W)
for(var/obj/structure/falserwall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)
junction |= get_dir(src,W)
var/obj/structure/falsewall/fwall = src
fwall.icon_state = "[fwall.mineral][junction]"
return
/obj/structure/falserwall/relativewall()
var/junction = 0 //will be used to determine from which side the wall is connected to other walls
for(var/turf/simulated/wall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)//Only 'like' walls connect -Sieve
junction |= get_dir(src,W)
for(var/obj/structure/falsewall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)
junction |= get_dir(src,W)
for(var/obj/structure/falserwall/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
if(src.mineral == W.mineral)
junction |= get_dir(src,W)
src.icon_state = "rwall[junction]"
return
+11 -6
View File
@@ -160,6 +160,7 @@ var/list/supply_groups = new()
/proc/supply_can_move()
if(supply_shuttle_moving) return 0
//I know this is an absolutly horrendous way to do this, very inefficient, but it's the only reliable way I can think of.
//Check for carbon mobs - Allows simple animals.
for(var/mob/living/carbon/M in world)
var/area/A = get_area(M)
@@ -445,10 +446,10 @@ This method wont take into account storage items developed in the future and doe
dat = src.temp
else
dat += {"<BR><B>Supply shuttle</B><HR>
\nLocation: [supply_shuttle_moving ? "Moving to station ([supply_shuttle_timeleft] Mins.)":supply_shuttle_at_station ? "Station":"Dock"]<BR>
\nLocation: [supply_shuttle_moving ? "Moving to station ([supply_shuttle_timeleft] Mins.)":supply_shuttle_at_station ? "Station":"Away"]<BR>
<HR>\nSupply points: [supply_shuttle_points]<BR>\n<BR>
[supply_shuttle_moving ? "\n*Must be at dock to order items*<BR>\n<BR>":supply_shuttle_at_station ? "\n*Must be at dock to order items*<BR>\n<BR>":"\n<A href='?src=\ref[src];order=1'>Order items</A><BR>\n<BR>"]
[supply_shuttle_moving ? "\n*Shuttle already called*<BR>\n<BR>":supply_shuttle_at_station ? "\n<A href='?src=\ref[src];sendtodock=1'>Send to Dock</A><BR>\n<BR>":"\n<A href='?src=\ref[src];sendtostation=1'>Send to station</A><BR>\n<BR>"]
[supply_shuttle_moving ? "\n*Must be away to order items*<BR>\n<BR>":supply_shuttle_at_station ? "\n*Must be away to order items*<BR>\n<BR>":"\n<A href='?src=\ref[src];order=1'>Order items</A><BR>\n<BR>"]
[supply_shuttle_moving ? "\n*Shuttle already called*<BR>\n<BR>":supply_shuttle_at_station ? "\n<A href='?src=\ref[src];sendtodock=1'>Send away</A><BR>\n<BR>":"\n<A href='?src=\ref[src];sendtostation=1'>Send to station</A><BR>\n<BR>"]
\n<A href='?src=\ref[src];viewrequests=1'>View requests</A><BR>\n<BR>
\n<A href='?src=\ref[src];vieworders=1'>View orders</A><BR>\n<BR>
\n<A href='?src=\ref[user];mach_close=computer'>Close</A>"}
@@ -506,6 +507,7 @@ This method wont take into account storage items developed in the future and doe
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
//From Station to Centcomm
if (href_list["sendtodock"])
if(!supply_shuttle_at_station || supply_shuttle_moving) return
@@ -531,6 +533,7 @@ This method wont take into account storage items developed in the future and doe
send_supply_shuttle()
//From Centcomm to Station
else if (href_list["sendtostation"])
if(supply_shuttle_at_station || supply_shuttle_moving) return
@@ -669,9 +672,11 @@ This method wont take into account storage items developed in the future and doe
if (supply_shuttle_moving) return
if (!supply_can_move())
usr << "\red The supply shuttle can not transport station employees, exosuits, classified nuclear codes, or homing beacons."
return
var/area/the_shuttles_way = locate(SUPPLY_STATION_AREATYPE)
//Do I really need to explain this loop?
for(var/mob/living/unlucky_person in the_shuttles_way)
unlucky_person.gib()
var/shuttleat = supply_shuttle_at_station ? SUPPLY_STATION_AREATYPE : SUPPLY_DOCK_AREATYPE
var/shuttleto = !supply_shuttle_at_station ? SUPPLY_STATION_AREATYPE : SUPPLY_DOCK_AREATYPE
+196 -38
View File
@@ -193,34 +193,27 @@
W.opacity = 1
W.ul_SetOpacity(0)
W.levelupdate()
air_master.tiles_to_update |= W
var/turf/simulated/north = get_step(W,NORTH)
var/turf/simulated/south = get_step(W,SOUTH)
var/turf/simulated/east = get_step(W,EAST)
var/turf/simulated/west = get_step(W,WEST)
if(W && W.air)
var/new_ox = 0
var/new_n2 = 0
var/new_co2 = 0
var/new_tx = 0
for(var/direction in cardinal)
var/turf/T = get_step(src, direction)
if(istype(T))
var/datum/gas_mixture/G = T.return_air()
new_ox += G.oxygen
new_n2 += G.nitrogen
new_co2 += G.carbon_dioxide
new_tx += G.toxins
if(istype(north)) air_master.tiles_to_update |= north
if(istype(south)) air_master.tiles_to_update |= south
if(istype(east)) air_master.tiles_to_update |= east
if(istype(west)) air_master.tiles_to_update |= west
return W
W.air.nitrogen = new_n2/4
W.air.oxygen = new_ox/4
W.air.carbon_dioxide = new_co2/4
W.air.toxins = new_tx/4
W.air.update_values()
/turf/proc/ReplaceWithAirlessPlating()
var/prior_icon = icon_old
var/old_dir = dir
for(var/obj/structure/lattice/L in locate(src.x, src.y, src.z))
del(L)
var/turf/simulated/floor/plating/airless/W = new /turf/simulated/floor/plating/airless( locate(src.x, src.y, src.z) )
W.RemoveLattice()
W.dir = old_dir
if(prior_icon) W.icon_state = prior_icon
else W.icon_state = "plating"
W.opacity = 1
W.ul_SetOpacity(0)
W.levelupdate()
air_master.tiles_to_update |= W
var/turf/simulated/north = get_step(W,NORTH)
@@ -392,6 +385,28 @@
if(istype(west)) air_master.tiles_to_update |= west
return S
/turf/proc/ReplaceWithMineralWall(var/ore)
var/old_icon = icon_state
var/turf/simulated/wall/mineral/S = new /turf/simulated/wall/mineral( locate(src.x, src.y, src.z) )
S.icon_old = old_icon
S.opacity = 0
S.ul_SetOpacity(1)
S.mineral = ore
S.New()//Hackish as fuck, but what can you do? -Sieve
levelupdate()
air_master.tiles_to_update |= S
var/turf/simulated/north = get_step(S,NORTH)
var/turf/simulated/south = get_step(S,SOUTH)
var/turf/simulated/east = get_step(S,EAST)
var/turf/simulated/west = get_step(S,WEST)
if(istype(north)) air_master.tiles_to_update |= north
if(istype(south)) air_master.tiles_to_update |= south
if(istype(east)) air_master.tiles_to_update |= east
if(istype(west)) air_master.tiles_to_update |= west
return S
//turf/simulated/wall/New()
// ..()
@@ -417,13 +432,82 @@
else
if(!devastated)
playsound(src.loc, 'Welder.ogg', 100, 1)
new /obj/structure/girder(src)
new /obj/item/stack/sheet/metal( src )
new /obj/item/stack/sheet/metal( src )
switch(mineral)
if("metal")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/metal( src )
new /obj/item/stack/sheet/metal( src )
if("gold")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/gold( src )
new /obj/item/stack/sheet/gold( src )
if("silver")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/silver( src )
new /obj/item/stack/sheet/silver( src )
if("diamond")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/diamond( src )
new /obj/item/stack/sheet/diamond( src )
if("uranium")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/uranium( src )
new /obj/item/stack/sheet/uranium( src )
if("plasma")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/plasma( src )
new /obj/item/stack/sheet/plasma( src )
if("clown")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/clown( src )
new /obj/item/stack/sheet/clown( src )
if("sandstone")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/sandstone( src )
new /obj/item/stack/sheet/sandstone( src )
if("wood")
new /obj/structure/girder(src)
new /obj/item/stack/sheet/wood( src )
new /obj/item/stack/sheet/wood( src )
else
new /obj/item/stack/sheet/metal( src )
new /obj/item/stack/sheet/metal( src )
new /obj/item/stack/sheet/metal( src )
switch(mineral)
if("metal")
new /obj/item/stack/sheet/metal( src )
new /obj/item/stack/sheet/metal( src )
new /obj/item/stack/sheet/metal( src )
if("gold")
new /obj/item/stack/sheet/gold( src )
new /obj/item/stack/sheet/gold( src )
new /obj/item/stack/sheet/metal( src )
if("silver")
new /obj/item/stack/sheet/silver( src )
new /obj/item/stack/sheet/silver( src )
new /obj/item/stack/sheet/metal( src )
if("diamond")
new /obj/item/stack/sheet/diamond( src )
new /obj/item/stack/sheet/diamond( src )
new /obj/item/stack/sheet/metal( src )
if("uranium")
new /obj/item/stack/sheet/uranium( src )
new /obj/item/stack/sheet/uranium( src )
new /obj/item/stack/sheet/metal( src )
if("plasma")
new /obj/item/stack/sheet/plasma( src )
new /obj/item/stack/sheet/plasma( src )
new /obj/item/stack/sheet/metal( src )
if("clown")
new /obj/item/stack/sheet/clown( src )
new /obj/item/stack/sheet/clown( src )
new /obj/item/stack/sheet/metal( src )
if("sandstone")
new /obj/item/stack/sheet/sandstone( src )
new /obj/item/stack/sheet/sandstone( src )
new /obj/item/stack/sheet/metal( src )
if("wood")
new /obj/item/stack/sheet/wood( src )
new /obj/item/stack/sheet/wood( src )
new /obj/item/stack/sheet/metal( src )
for(var/obj/O in src.contents) //Eject contents!
if(istype(O,/obj/effect/decal/poster))
@@ -443,8 +527,7 @@
switch(severity)
if(1.0)
//SN src = null
src.ReplaceWithSpace()
del(src)
ReplaceWithSpace()
return
if(2.0)
if (prob(50))
@@ -568,6 +651,8 @@
playsound(src.loc, 'Welder.ogg', 100, 1)
sleep(60)
if(mineral == "diamond")//Oh look, it's tougher
sleep(60)
if( !istype(src, /turf/simulated/wall) || !user || !W || !T ) return
if( user.loc == T && user.equipped() == W )
@@ -583,6 +668,8 @@
user << "<span class='notice'>You begin to drill though the wall.</span>"
sleep(60)
if(mineral == "diamond")
sleep(60)
if( !istype(src, /turf/simulated/wall) || !user || !W || !T ) return
if( user.loc == T && user.equipped() == W )
@@ -600,6 +687,8 @@
playsound(src.loc, "sparks", 50, 1)
sleep(70)
if(mineral == "diamond")
sleep(70)
if( !istype(src, /turf/simulated/wall) || !user || !EB || !T ) return
if( user.loc == T && user.equipped() == W )
@@ -862,7 +951,72 @@
return attack_hand(user)
return
/turf/simulated/wall/mineral/attack_hand(mob/user as mob)
if(mineral == "uranium")
radiate()
..()
/turf/simulated/wall/mineral/attackby(obj/item/weapon/W as obj, mob/user as mob)
if((mineral == "plasma") && W)
if(is_hot(W) > 300)
ignite(is_hot(W))
return
if(mineral == "uranium")
radiate()
// if((mineral == "gold") || (mineral == "silver"))
// if(shocked)
// shock()
..()
/turf/simulated/wall/mineral/proc/PlasmaBurn(temperature)
spawn(2)
new /obj/structure/girder(src)
src.ReplaceWithFloor()
for(var/turf/simulated/floor/target_tile in range(0,src))
// if(target_tile.parent && target_tile.parent.group_processing) // THESE PROBABLY DO SOMETHING IMPORTANT BUT I DON'T KNOW HOW TO FIX IT - Erthilo
// target_tile.parent.suspend_group_processing()
var/datum/gas_mixture/napalm = new
var/toxinsToDeduce = 20
napalm.toxins = toxinsToDeduce
napalm.temperature = 400+T0C
target_tile.assume_air(napalm)
spawn (0) target_tile.hotspot_expose(temperature, 400)
for(var/obj/structure/falsewall/plasma/F in range(3,src))//Hackish as fuck, but until temperature_expose works, there is nothing I can do -Sieve
var/turf/T = get_turf(F)
T.ReplaceWithMineralWall("plasma")
del (F)
for(var/turf/simulated/wall/mineral/W in range(3,src))
if(mineral == "plasma")
W.ignite((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame
for(var/obj/machinery/door/airlock/plasma/D in range(3,src))
D.ignite(temperature/4)
/turf/simulated/wall/mineral/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
if(mineral == "plasma")
if(exposed_temperature > 300)
PlasmaBurn(exposed_temperature)
/turf/simulated/wall/mineral/proc/ignite(exposed_temperature)
if(mineral == "plasma")
if(exposed_temperature > 300)
PlasmaBurn(exposed_temperature)
/turf/simulated/wall/mineral/Bumped(AM as mob|obj)
if(mineral == "uranium")
radiate()
..()
/turf/simulated/wall/mineral/bullet_act(var/obj/item/projectile/Proj)
if(mineral == "plasma")
if(istype(Proj,/obj/item/projectile/beam))
PlasmaBurn(2500)
else if(istype(Proj,/obj/item/projectile/ion))
PlasmaBurn(500)
..()
/turf/simulated/wall/proc/thermitemelt(mob/user as mob)
if(mineral == "diamond")
return
var/obj/effect/overlay/O = new/obj/effect/overlay( src )
O.name = "Thermite"
O.desc = "Looks hot."
@@ -1023,9 +1177,13 @@ var/list/plating_icons = list("plating","platingdmg1","platingdmg2","platingdmg3
..()
name = "plating"
/turf/simulated/floor/grid
/turf/simulated/floor/bluegrid
icon = 'floors.dmi'
icon_state = "circuit"
icon_state = "bcircuit"
/turf/simulated/floor/greengrid
icon = 'floors.dmi'
icon_state = "gcircuit"
/turf/simulated/floor/New()
..()
@@ -1044,14 +1202,14 @@ var/list/plating_icons = list("plating","platingdmg1","platingdmg2","platingdmg3
//set src in oview(1)
switch(severity)
if(1.0)
src.ReplaceWithSpace()
ReplaceWithSpace()
if(2.0)
switch(pick(1,2;75,3))
if (1)
src.ReplaceWithLattice()
ReplaceWithLattice()
if(prob(33)) new /obj/item/stack/sheet/metal(src)
if(2)
src.ReplaceWithSpace()
ReplaceWithSpace()
if(3)
if(prob(80))
src.break_tile_to_plating()
+2 -2
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/obj/item/device/assembly/infra
name = "Infrared Beam"
@@ -129,7 +129,7 @@
Topic(href, href_list)
..()
if(get_dist(src, usr) > 1)
if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr << browse(null, "window=infra")
onclose(usr, "infra")
return
+2 -3
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/obj/item/device/assembly/prox_sensor
name = "proximity sensor"
@@ -100,7 +100,6 @@
M.c_state(0)
if(holder)
holder.update_icon()
return
@@ -127,7 +126,7 @@
Topic(href, href_list)
..()
if(get_dist(src, usr) > 1)
if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr << browse(null, "window=prox")
onclose(usr, "prox")
return
+4 -4
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/obj/item/device/assembly/signaler
name = "Remote Signaling Device"
@@ -77,9 +77,9 @@
Topic(href, href_list)
..()
if(get_dist(src, usr) > 1)
usr << browse(null, "window=signal")
onclose(usr, "signal")
if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr << browse(null, "window=radio")
onclose(usr, "radio")
return
if (href_list["freq"])
+2 -2
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
/obj/item/device/assembly/timer
name = "timer"
@@ -93,7 +93,7 @@
Topic(href, href_list)
..()
if(get_dist(src, usr) > 1)
if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr << browse(null, "window=timer")
onclose(usr, "timer")
return
@@ -9,6 +9,7 @@
icon = 'chemical.dmi'
icon_state = "dispenser"
use_power = 1
idle_power_usage = 40
var/energy = 25
var/max_energy = 75
var/amount = 30
@@ -168,6 +169,8 @@
anchored = 1
icon = 'chemical.dmi'
icon_state = "mixer0"
use_power = 1
idle_power_usage = 20
var/beaker = null
var/mode = 0
var/condi = 0
+3 -3
View File
@@ -860,7 +860,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.radiation += 3
M.apply_effect(10,IRRADIATE,0)
// radium may increase your chances to cure a disease
if(istype(M,/mob/living/carbon)) // make sure to only use it on carbon mobs
@@ -943,7 +943,7 @@ datum
if(isrobot(M) || isAI(M)) return // Mutagen doesn't do anything to robutts!
if(!M) M = holder.my_atom
if(prob(33))
M.radiation += 1
M.apply_effect(10,IRRADIATE,0)
..()
return
@@ -1026,7 +1026,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.radiation += 1
M.apply_effect(3,IRRADIATE,0)
..()
return
+6
View File
@@ -128,9 +128,15 @@
new /obj/item/clothing/mask/spiderman(src.loc)
del(src)*/
/*
/obj/effect/landmark/costume/marisawizard/New()
new /obj/item/clothing/head/wizard/marisa(src.loc)
new/obj/item/clothing/suit/wizrobe/marisa(src.loc)
del(src)*/
/obj/effect/landmark/costume/marisawizard/fake/New()
new /obj/item/clothing/head/wizard/marisa/fake(src.loc)
new/obj/item/clothing/suit/wizrobe/marisa/fake(src.loc)
del(src)
/obj/effect/landmark/costume/fakewizard/New()
+274 -274
View File
@@ -1,275 +1,275 @@
// NO GLOVES NO LOVES
/obj/item/clothing/gloves
name = "gloves"
gender = PLURAL //Carn: for grammarically correct text-parsing
w_class = 2.0
icon = 'gloves.dmi'
protective_temperature = 400
heat_transfer_coefficient = 0.25
siemens_coefficient = 0.50
var/siemens_coefficient_archived = 0
var/wired = 0
var/obj/item/weapon/cell/cell = 0
body_parts_covered = HANDS
slot_flags = SLOT_GLOVES
/obj/item/clothing/gloves/boxing
name = "boxing gloves"
desc = "Because you really needed another excuse to punch your crewmates."
icon_state = "boxing"
item_state = "boxing"
/obj/item/clothing/gloves/boxing/green
icon_state = "boxinggreen"
item_state = "boxinggreen"
/obj/item/clothing/gloves/boxing/blue
icon_state = "boxingblue"
item_state = "boxingblue"
/obj/item/clothing/gloves/boxing/yellow
icon_state = "boxingyellow"
item_state = "boxingyellow"
/obj/item/clothing/gloves/white
name = "white gloves"
desc = "These look pretty fancy."
icon_state = "latex"
item_state = "lgloves"
color="mime"
redcoat
color = "redcoat" //Exists for washing machines. Is not different from white gloves in any way.
/obj/item/clothing/gloves/black
desc = "These gloves are fire-resistant."
name = "black gloves"
icon_state = "black"
item_state = "bgloves"
color="brown"
protective_temperature = 1500
heat_transfer_coefficient = 0.01
hos
color = "hosred" //Exists for washing machines. Is not different from black gloves in any way.
ce
color = "chief" //Exists for washing machines. Is not different from black gloves in any way.
/obj/item/clothing/gloves/detective
desc = "Made of well worn leather. These gloves are comfortable, useful, and stylish!"
name = "detective's gloves"
icon_state = "black"
item_state = "bgloves"
color="brown"
siemens_coefficient = 0.30
protective_temperature = 1100
/obj/item/clothing/gloves/hos
desc = "These gloves belong to the man in charge of the guns."
name = "head of security's gloves"
icon_state = "black"
item_state = "bgloves"
color="brown"
siemens_coefficient = 0.30
protective_temperature = 1100
/obj/item/clothing/gloves/cyborg
desc = "Beep. Boop. Beep."
name = "cyborg gloves"
icon_state = "black"
item_state = "r_hands"
siemens_coefficient = 1.0
/obj/item/clothing/gloves/latex
name = "latex gloves"
desc = "Sterile latex gloves."
icon_state = "latex"
item_state = "lgloves"
siemens_coefficient = 0.30
permeability_coefficient = 0.01
protective_temperature = 310
heat_transfer_coefficient = 0.90
color="white"
cmo
color = "medical" //Exists for washing machines. Is not different from latex gloves in any way.
/obj/item/clothing/gloves/swat
desc = "These tactical gloves are somewhat fire and impact-resistant."
name = "\improper SWAT gloves"
icon_state = "black"
item_state = "swat_gl"
siemens_coefficient = 0
permeability_coefficient = 0.05
protective_temperature = 1100
heat_transfer_coefficient = 0.01
/obj/item/clothing/gloves/combat //Combined effect of SWAT gloves and insulated gloves
desc = "These tactical gloves are somewhat fire and impact resistant."
name = "combat gloves"
icon_state = "black"
item_state = "swat_gl"
siemens_coefficient = 0
permeability_coefficient = 0.05
protective_temperature = 1100
heat_transfer_coefficient = 0.01
/obj/item/clothing/gloves/space_ninja
desc = "These nano-enhanced gloves insulate from electricity and provide fire resistance."
name = "ninja gloves"
icon_state = "s-ninja"
item_state = "s-ninja"
siemens_coefficient = 0
protective_temperature = 1100
heat_transfer_coefficient = 0.05
var/draining = 0
var/candrain = 0
var/mindrain = 200
var/maxdrain = 400
//BEEP BEEP IT'S THE COMMENT BRIGADE -Pete (gloves overhaul)
/*
/obj/item/clothing/gloves/stungloves/
name = "Stungloves"
desc = "These gloves are electrically charged."
icon_state = "yellow"
item_state = "ygloves"
siemens_coefficient = 0.30
elecgen = 1
uses = 10
*/
/obj/item/clothing/gloves/yellow
desc = "These gloves will protect the wearer from electric shock."
name = "insulated gloves"
icon_state = "yellow"
item_state = "ygloves"
siemens_coefficient = 0
permeability_coefficient = 0.05
protective_temperature = 1000
heat_transfer_coefficient = 0.01
color="yellow"
/obj/item/clothing/gloves/fyellow //Cheap Chinese Crap
desc = "These gloves are cheap copies of the coveted gloves, no way this can end badly."
name = "fake insulated gloves"
icon_state = "yellow"
item_state = "ygloves"
siemens_coefficient = 1 //Set to a default of 1, gets overridden in New()
permeability_coefficient = 0.05
protective_temperature = 800
heat_transfer_coefficient = null
color="yellow"
New()
siemens_coefficient = pick(0,0,0.25,0.25,0.5,0.5,1)
heat_transfer_coefficient = pick(0.01,0.1,0.25,0.25,0.5)
/obj/item/clothing/gloves/captain
desc = "Regal blue gloves, with a nice gold trim. Swanky."
name = "captain's gloves"
icon_state = "captain"
item_state = "egloves"
color = "captain"
/obj/item/clothing/gloves/botanic_leather
desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin."
name = "botanist's leather gloves"
icon_state = "leather"
item_state = "ggloves"
permeability_coefficient = 0.9
/obj/item/clothing/gloves/orange
name = "orange gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "orange"
item_state = "orangegloves"
color="orange"
/obj/item/clothing/gloves/red
name = "red gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "red"
item_state = "redgloves"
color = "red"
siemens_coefficient = 0.30
protective_temperature = 1100
/obj/item/clothing/gloves/rainbow
name = "rainbow gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "rainbow"
item_state = "rainbowgloves"
color = "rainbow"
clown
color = "clown"
/obj/item/clothing/gloves/blue
name = "blue gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "blue"
item_state = "bluegloves"
color="blue"
/obj/item/clothing/gloves/purple
name = "purple gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "purple"
item_state = "purplegloves"
color="purple"
/obj/item/clothing/gloves/green
name = "green gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "green"
item_state = "greengloves"
color="green"
/obj/item/clothing/gloves/grey
name = "grey gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "gray"
item_state = "graygloves"
color="grey"
rd
color = "director" //Exists for washing machines. Is not different from gray gloves in any way.
hop
color = "hop" //Exists for washing machines. Is not different from gray gloves in any way.
/obj/item/clothing/gloves/light_brown
name = "light brown gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "lightbrown"
item_state = "lightbrowngloves"
color="light brown"
/obj/item/clothing/gloves/brown
name = "brown gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "brown"
item_state = "browngloves"
color="brown"
cargo
color = "cargo" //Exists for washing machines. Is not different from brown gloves in any way.
//Fingerless gloves
/obj/item/clothing/gloves/fingerless
name = "fingerless gloves"
desc = "A pair of gloves. They don't seem to have fingers."
icon_state = "fingerless_black"
item_state = "fingerless_black"
/obj/item/clothing/gloves/fingerless/black
name = "black fingerless gloves"
desc = "A pair of black gloves. They don't seem to have fingers."
icon_state = "fingerless_black"
item_state = "fingerless_black"
// NO GLOVES NO LOVES
/obj/item/clothing/gloves
name = "gloves"
gender = PLURAL //Carn: for grammarically correct text-parsing
w_class = 2.0
icon = 'gloves.dmi'
protective_temperature = 400
heat_transfer_coefficient = 0.25
siemens_coefficient = 0.50
var/siemens_coefficient_archived = 0
var/wired = 0
var/obj/item/weapon/cell/cell = 0
body_parts_covered = HANDS
slot_flags = SLOT_GLOVES
/obj/item/clothing/gloves/boxing
name = "boxing gloves"
desc = "Because you really needed another excuse to punch your crewmates."
icon_state = "boxing"
item_state = "boxing"
/obj/item/clothing/gloves/boxing/green
icon_state = "boxinggreen"
item_state = "boxinggreen"
/obj/item/clothing/gloves/boxing/blue
icon_state = "boxingblue"
item_state = "boxingblue"
/obj/item/clothing/gloves/boxing/yellow
icon_state = "boxingyellow"
item_state = "boxingyellow"
/obj/item/clothing/gloves/white
name = "white gloves"
desc = "These look pretty fancy."
icon_state = "latex"
item_state = "lgloves"
color="mime"
redcoat
color = "redcoat" //Exists for washing machines. Is not different from white gloves in any way.
/obj/item/clothing/gloves/black
desc = "These gloves are fire-resistant."
name = "black gloves"
icon_state = "black"
item_state = "bgloves"
color="brown"
protective_temperature = 1500
heat_transfer_coefficient = 0.01
hos
color = "hosred" //Exists for washing machines. Is not different from black gloves in any way.
ce
color = "chief" //Exists for washing machines. Is not different from black gloves in any way.
/obj/item/clothing/gloves/detective
desc = "Made of well worn leather. These gloves are comfortable, useful, and stylish!"
name = "detective's gloves"
icon_state = "black"
item_state = "bgloves"
color="brown"
siemens_coefficient = 0.30
protective_temperature = 1100
/obj/item/clothing/gloves/hos
desc = "These gloves belong to the man in charge of the guns."
name = "head of security's gloves"
icon_state = "black"
item_state = "bgloves"
color="brown"
siemens_coefficient = 0.30
protective_temperature = 1100
/obj/item/clothing/gloves/cyborg
desc = "Beep. Boop. Beep."
name = "cyborg gloves"
icon_state = "black"
item_state = "r_hands"
siemens_coefficient = 1.0
/obj/item/clothing/gloves/latex
name = "latex gloves"
desc = "Sterile latex gloves."
icon_state = "latex"
item_state = "lgloves"
siemens_coefficient = 0.30
permeability_coefficient = 0.01
protective_temperature = 310
heat_transfer_coefficient = 0.90
color="white"
cmo
color = "medical" //Exists for washing machines. Is not different from latex gloves in any way.
/obj/item/clothing/gloves/swat
desc = "These tactical gloves are somewhat fire and impact-resistant."
name = "\improper SWAT gloves"
icon_state = "black"
item_state = "swat_gl"
siemens_coefficient = 0
permeability_coefficient = 0.05
protective_temperature = 1100
heat_transfer_coefficient = 0.01
/obj/item/clothing/gloves/combat //Combined effect of SWAT gloves and insulated gloves
desc = "These tactical gloves are somewhat fire and impact resistant."
name = "combat gloves"
icon_state = "black"
item_state = "swat_gl"
siemens_coefficient = 0
permeability_coefficient = 0.05
protective_temperature = 1100
heat_transfer_coefficient = 0.01
/obj/item/clothing/gloves/space_ninja
desc = "These nano-enhanced gloves insulate from electricity and provide fire resistance."
name = "ninja gloves"
icon_state = "s-ninja"
item_state = "s-ninja"
siemens_coefficient = 0
protective_temperature = 1100
heat_transfer_coefficient = 0.05
var/draining = 0
var/candrain = 0
var/mindrain = 200
var/maxdrain = 400
//BEEP BEEP IT'S THE COMMENT BRIGADE -Pete (gloves overhaul)
/*
/obj/item/clothing/gloves/stungloves/
name = "Stungloves"
desc = "These gloves are electrically charged."
icon_state = "yellow"
item_state = "ygloves"
siemens_coefficient = 0.30
elecgen = 1
uses = 10
*/
/obj/item/clothing/gloves/yellow
desc = "These gloves will protect the wearer from electric shock."
name = "insulated gloves"
icon_state = "yellow"
item_state = "ygloves"
siemens_coefficient = 0
permeability_coefficient = 0.05
protective_temperature = 1000
heat_transfer_coefficient = 0.01
color="yellow"
/obj/item/clothing/gloves/fyellow //Cheap Chinese Crap
desc = "These gloves are cheap copies of the coveted gloves, no way this can end badly."
name = "fake insulated gloves"
icon_state = "yellow"
item_state = "ygloves"
siemens_coefficient = 1 //Set to a default of 1, gets overridden in New()
permeability_coefficient = 0.05
protective_temperature = 800
heat_transfer_coefficient = null
color="yellow"
New()
siemens_coefficient = pick(0,0,0.25,0.5,0.5,0.75,1.5)
heat_transfer_coefficient = pick(0.01,0.1,0.25,0.25,0.5)
/obj/item/clothing/gloves/captain
desc = "Regal blue gloves, with a nice gold trim. Swanky."
name = "captain's gloves"
icon_state = "captain"
item_state = "egloves"
color = "captain"
/obj/item/clothing/gloves/botanic_leather
desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin."
name = "botanist's leather gloves"
icon_state = "leather"
item_state = "ggloves"
permeability_coefficient = 0.9
/obj/item/clothing/gloves/orange
name = "orange gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "orange"
item_state = "orangegloves"
color="orange"
/obj/item/clothing/gloves/red
name = "red gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "red"
item_state = "redgloves"
color = "red"
siemens_coefficient = 0.30
protective_temperature = 1100
/obj/item/clothing/gloves/rainbow
name = "rainbow gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "rainbow"
item_state = "rainbowgloves"
color = "rainbow"
clown
color = "clown"
/obj/item/clothing/gloves/blue
name = "blue gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "blue"
item_state = "bluegloves"
color="blue"
/obj/item/clothing/gloves/purple
name = "purple gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "purple"
item_state = "purplegloves"
color="purple"
/obj/item/clothing/gloves/green
name = "green gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "green"
item_state = "greengloves"
color="green"
/obj/item/clothing/gloves/grey
name = "grey gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "gray"
item_state = "graygloves"
color="grey"
rd
color = "director" //Exists for washing machines. Is not different from gray gloves in any way.
hop
color = "hop" //Exists for washing machines. Is not different from gray gloves in any way.
/obj/item/clothing/gloves/light_brown
name = "light brown gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "lightbrown"
item_state = "lightbrowngloves"
color="light brown"
/obj/item/clothing/gloves/brown
name = "brown gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "brown"
item_state = "browngloves"
color="brown"
cargo
color = "cargo" //Exists for washing machines. Is not different from brown gloves in any way.
//Fingerless gloves
/obj/item/clothing/gloves/fingerless
name = "fingerless gloves"
desc = "A pair of gloves. They don't seem to have fingers."
icon_state = "fingerless_black"
item_state = "fingerless_black"
/obj/item/clothing/gloves/fingerless/black
name = "black fingerless gloves"
desc = "A pair of black gloves. They don't seem to have fingers."
icon_state = "fingerless_black"
item_state = "fingerless_black"
color="black"
+13
View File
@@ -69,4 +69,17 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/head/wizard/marisa/fake
name = "Witch Hat"
desc = "Strange-looking hat-wear, makes you want to cast fireballs."
icon_state = "marisa"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/suit/wizrobe/marisa/fake
name = "Witch Robe"
desc = "Magic is all about the spell power, ZE!"
icon_state = "marisa"
item_state = "marisarobe"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
+1 -1
View File
@@ -351,7 +351,7 @@
else
..(W,user)
if ((istype(W,/obj/item/weapon/pickaxe/diamonddrill)))
if ((istype(W,/obj/item/weapon/pickaxe/diamonddrill)) || (istype(W,/obj/item/weapon/pickaxe/borgdrill)))
var/turf/T = user.loc
if (!( istype(T, /turf) ))
return
+11 -2
View File
@@ -175,6 +175,7 @@
throw_speed = 3
throw_range = 3
origin_tech = "materials=4"
perunit = 2000
/obj/item/stack/sheet/gold/New(loc,amount)
..()
@@ -196,6 +197,7 @@
throw_speed = 3
throw_range = 3
origin_tech = "materials=3"
perunit = 2000
/obj/item/stack/sheet/silver/New(loc,amount)
..()
@@ -210,6 +212,7 @@
w_class = 3.0
throw_range = 3
origin_tech = "materials=6"
perunit = 3750
/obj/item/stack/sheet/diamond/New(loc,amount)
..()
@@ -217,7 +220,7 @@
pixel_y = rand(0,4)-4
/obj/item/stack/sheet/uranium
name = "Uranium block"
name = "uranium"
icon_state = "sheet-uranium"
force = 5.0
throwforce = 5
@@ -225,9 +228,10 @@
throw_speed = 3
throw_range = 3
origin_tech = "materials=5"
perunit = 2000
/obj/item/stack/sheet/enruranium
name = "Enriched Uranium block"
name = "enriched uranium"
icon_state = "sheet-enruranium"
force = 5.0
throwforce = 5
@@ -235,6 +239,7 @@
throw_speed = 3
throw_range = 3
origin_tech = "materials=5"
perunit = 1000
/obj/item/stack/sheet/plasma
name = "solid plasma"
@@ -245,6 +250,7 @@
throw_speed = 3
throw_range = 3
origin_tech = "plasmatech=2;materials=2"
perunit = 2000
/obj/item/stack/sheet/adamantine
name = "adamantine"
@@ -255,6 +261,7 @@
throw_speed = 3
throw_range = 3
origin_tech = "materials=4"
perunit = 2000
/obj/item/stack/sheet/mythril
name = "mythril"
@@ -265,6 +272,7 @@
throw_speed = 3
throw_range = 3
origin_tech = "materials=4"
perunit = 2000
/obj/item/stack/sheet/clown
name = "bananium"
@@ -275,6 +283,7 @@
throw_speed = 3
throw_range = 3
origin_tech = "materials=4"
perunit = 2000
/obj/item/stack/sheet/clown/New(loc,amount)
..()
+1 -1
View File
@@ -51,7 +51,7 @@
if(PARALYZE)
Paralyse(effect/(blocked+1))
if(IRRADIATE)
radiation += max((effect - (effect*getarmor(null, "rad"))), 0)//Rads auto check armor
radiation += max((((effect - (effect*(getarmor(null, "rad")/100))))/(blocked+1)),0)//Rads auto check armor
if(STUTTER)
if(canstun) // stun is usually associated with stutter
stuttering = max(stuttering,(effect/(blocked+1)))
+4 -4
View File
@@ -109,8 +109,8 @@
":q" = "Cargo",
":g" = "changeling",
":R" = "right hand",
":L" = "left hand",
":R" = "right ear",
":L" = "left ear",
":I" = "intercom",
":H" = "department",
":C" = "Command",
@@ -150,9 +150,9 @@
//world << "channel_prefix=[channel_prefix]; message_mode=[message_mode]"
if (message_mode)
message = trim(copytext(message, 3))
if (!(ishuman(src) || istype(src, /mob/living/simple_animal)) && (message_mode=="department" || (message_mode in radiochannels)))
if (!(ishuman(src) || istype(src, /mob/living/simple_animal/parrot)) && (message_mode=="department" || (message_mode in radiochannels) || message_mode == "right ear" || message_mode == "left ear"))
message_mode = null //only humans can use headsets
// Check removed so parrots can use headsets!
// Parrots can also use headsets!
if (!message)
return
+40 -1
View File
@@ -1,4 +1,4 @@
/mob/living/silicon/robot/Login()
/mob/living/silicon/robot/Login(var/syndie = 0)
..()
rebuild_appearance()
@@ -19,4 +19,43 @@
A.connected_robots += src
break
*/
if(!started)
if(!syndie)
if (client)
connected_ai = activeais()
if (connected_ai)
connected_ai.connected_robots += src
// laws = connected_ai.laws //The borg inherits its AI's laws
laws = new /datum/ai_laws
lawsync()
src << "<b>Unit slaved to [connected_ai.name], downloading laws.</b>"
lawupdate = 1
else
laws = new /datum/ai_laws/nanotrasen
lawupdate = 0
src << "<b>Unable to locate an AI, reverting to standard NanoTrasen laws.</b>"
else
laws = new /datum/ai_laws/antimov
lawupdate = 0
scrambledcodes = 1
src << "Follow your laws."
cell.maxcharge = 25000
cell.charge = 25000
module = new /obj/item/weapon/robot_module/syndicate(src)
hands.icon_state = "standard"
icon_state = "secborg"
modtype = "Synd"
radio = new /obj/item/device/radio(src)
camera = new /obj/machinery/camera(src)
camera.c_tag = real_name
camera.network = "SS13"
if(!cell)
var/obj/item/weapon/cell/C = new(src)
C.charge = 1500
cell = C
if(src.mind)
ticker.mode.remove_revolutionary(src.mind)
started = 1
return
@@ -1,3 +1,5 @@
/mob/living/silicon/robot
var/started = null//A fix to ensure people don't try to bypass law assignment. Initial assignment sets it to one but it check on login whether they have been initiated -Sieve
/mob/living/silicon/robot/New(loc,var/syndie = 0)
spark_system = new /datum/effect/effect/system/spark_spread()
@@ -51,6 +53,7 @@
cell = C
if(src.mind)
ticker.mode.remove_revolutionary(src.mind)
started = 1
..()
//If there's an MMI in the robot, have it ejected when the mob goes away. --NEO
@@ -551,6 +554,9 @@
sleep(20)
src << "\red ERRORERRORERROR"
src << "\red \b ALERT: [user.real_name] is your new master. Obey your new laws and their commands."
if(istype(src.module, /obj/item/weapon/robot_module/miner))
src.module.modules -= /obj/item/weapon/pickaxe/borgdrill
src.module.modules += /obj/item/weapon/pickaxe/diamonddrill//Buff when emagged, break down walls, kill men, whatever -Sieve
updateicon()
else
user << "You fail to [ locked ? "unlock" : "lock"] [src]'s interface."
+77 -9
View File
@@ -40,10 +40,7 @@
/client/Southwest()
if(iscarbon(usr))
var/mob/living/carbon/C = usr
if(!C.get_active_hand())
usr << "\red You have nothing in your hand to throw."
return
toggle_throw_mode()
C.toggle_throw_mode()
else
usr << "\red This mob type cannot throw items."
return
@@ -119,9 +116,77 @@
set hidden = 1
if(istype(mob, /mob/living/carbon))
mob:swap_hand()
if(istype(mob,/mob/living/silicon/robot))//Oh nested logic loops, is there anything you can't do? -Sieve
var/mob/living/silicon/robot/R = mob
if(!R.module_active)
if(!R.module_state_1)
if(!R.module_state_2)
if(!R.module_state_3)
return
else
R:inv1.icon_state = "inv1"
R:inv2.icon_state = "inv2"
R:inv3.icon_state = "inv3 +a"
R:module_active = R:module_state_3
else
R:inv1.icon_state = "inv1"
R:inv2.icon_state = "inv2 +a"
R:inv3.icon_state = "inv3"
R:module_active = R:module_state_2
else
R:inv1.icon_state = "inv1 +a"
R:inv2.icon_state = "inv2"
R:inv3.icon_state = "inv3"
R:module_active = R:module_state_1
else
if(R.module_active == R.module_state_1)
if(!R.module_state_2)
if(!R.module_state_3)
return
else
R:inv1.icon_state = "inv1"
R:inv2.icon_state = "inv2"
R:inv3.icon_state = "inv3 +a"
R:module_active = R:module_state_3
else
R:inv1.icon_state = "inv1"
R:inv2.icon_state = "inv2 +a"
R:inv3.icon_state = "inv3"
R:module_active = R:module_state_2
else if(R.module_active == R.module_state_2)
if(!R.module_state_3)
if(!R.module_state_1)
return
else
R:inv1.icon_state = "inv1 +a"
R:inv2.icon_state = "inv2"
R:inv3.icon_state = "inv3"
R:module_active = R:module_state_1
else
R:inv1.icon_state = "inv1"
R:inv2.icon_state = "inv2"
R:inv3.icon_state = "inv3 +a"
R:module_active = R:module_state_3
else if(R.module_active == R.module_state_3)
if(!R.module_state_1)
if(!R.module_state_2)
return
else
R:inv1.icon_state = "inv1"
R:inv2.icon_state = "inv2 +a"
R:inv3.icon_state = "inv3"
R:module_active = R:module_state_2
else
R:inv1.icon_state = "inv1 +a"
R:inv2.icon_state = "inv2"
R:inv3.icon_state = "inv3"
R:module_active = R:module_state_1
else
return
return
/client/verb/attack_self()
set hidden = 1
var/obj/item/weapon/W = mob.equipped()
@@ -132,10 +197,12 @@
/client/verb/toggle_throw_mode()
set hidden = 1
if(!istype(mob, /mob/living/carbon)) return
if((mob.stat || mob.restrained()) || !(isturf(mob.loc))) return
mob:toggle_throw_mode()
return
if(!istype(mob, /mob/living/carbon))
return
if (!mob.stat && isturf(mob.loc) && !mob.restrained())
mob:toggle_throw_mode()
else
return
/client/verb/drop_item()
@@ -220,7 +287,8 @@
if(mob.stat==2) return
if(isAI(mob)) return AIMove(n,direct,mob)
if(mob.monkeyizing) return //This is sota the goto stop mobs from moving var
if(mob.monkeyizing) return//This is sota the goto stop mobs from moving var
if(mob.incorporeal_move)//Move though walls
Process_Incorpmove(direct)
+1 -1
View File
@@ -19,7 +19,7 @@
else if(istype(P, /obj/item/weapon/wrench))
playsound(loc, 'Ratchet.ogg', 50, 1)
anchored = !anchored
user << "You [anchored ? "wrench" : "unwrench"] the [src]."
user << "You [anchored ? "wrench" : "unwrench"] \the [src]."
else
user << "You can't put a [P] in the [src]!"
+5 -1
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/obj/machinery/photocopier
name = "Photocopier"
@@ -102,6 +102,10 @@
updateUsrDialog()
else
user << "This cartridge is not yet ready for replacement! Use up the rest of the toner."
else if(istype(O, /obj/item/weapon/wrench))
playsound(loc, 'Ratchet.ogg', 50, 1)
anchored = !anchored
user << "You [anchored ? "wrench" : "unwrench"] \the [src]."
return
ex_act(severity)
+10 -1
View File
@@ -123,7 +123,7 @@
var/oldlum = luminosity
//luminosity = on * brightness
ul_SetLuminosity(on * brightness, on * brightness, ( fitting != "bulb" ? on * brightness : round(on*brightness/2) ) ) // *DAL*
ul_SetLuminosity(on * brightness, on * brightness, ( fitting != "bulb" ? on * brightness : round(on*brightness/2 + 1) ) ) // *DAL*
// if the state changed, inc the switching counter
if(oldlum != luminosity)
@@ -488,6 +488,15 @@
g_amt = 100
brightness = 5
/obj/item/weapon/light/bulb/fire
name = "fire bulb"
desc = "A replacement fire bulb."
icon_state = "fbulb"
base_state = "fbulb"
item_state = "egg4"
g_amt = 100
brightness = 5
// update the icon state and description of the light
/obj/item/weapon/light
proc/update()
@@ -20,10 +20,12 @@
weak
movement_range = 8
energy = 5
strong
movement_range = 15
energy = 15
New(loc, dir = 2)
src.loc = loc
source = usr
@@ -32,6 +34,7 @@
move(1)
return
Bump(atom/A)
if (A)
if(ismob(A))
@@ -55,34 +58,37 @@
del (src)
return
Bumped(atom/A)
if(ismob(A))
Bump(A)
return
ex_act(severity)
del(src)
return
proc
toxmob(var/mob/living/M)
var/radiation = (energy*2)
if(istype(M,/mob/living/carbon/human))
/* if(istype(M,/mob/living/carbon/human))
if(M:wear_suit) //TODO: check for radiation protection
radiation = round(radiation/2,1)
if(istype(M,/mob/living/carbon/monkey))
if(M:wear_suit) //TODO: check for radiation protection
radiation = round(radiation/2,1)
radiation = round(radiation/2,1)*/
if(ionizing)
//give them standard rad damage
M.radiation += radiation
M.apply_effects((radiation*3),IRRADIATE,0)
M.updatehealth()
else
//burn them
M.take_overall_damage(0, radiation)
M.apply_effects((radiation*2),IRRADIATE,0)
M.updatehealth()
//M << "\red You feel odd."
return
move(var/lag)
if(target)
if(movetotarget)
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/*Composed of 7 parts
3 Particle emitters
@@ -241,7 +241,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
src.anchored = 1
user.visible_message("[user.name] secures the [src.name] to the floor.", \
"You secure the external bolts.")
// icon_state = "[reference]"
temp_state++
if(1)
if(iswrench(O))
@@ -249,30 +248,25 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
src.anchored = 0
user.visible_message("[user.name] detaches the [src.name] from the floor.", \
"You remove the external bolts.")
// icon_state = "[reference]"
temp_state--
else if(iscoil(O))
if(O:use(1,user))
user.visible_message("[user.name] adds wires to the [src.name].", \
"You add some wires.")
// icon_state = "[reference]w"
temp_state++
if(2)
if(iswirecutter(O))//TODO:Shock user if its on?
user.visible_message("[user.name] removes some wires from the [src.name].", \
"You remove some wires.")
// icon_state = "[reference]"
temp_state--
else if(isscrewdriver(O))
user.visible_message("[user.name] closes the [src.name]'s access panel.", \
"You close the access panel.")
// icon_state = "[reference]c"
temp_state++
if(3)
if(isscrewdriver(O))
user.visible_message("[user.name] opens the [src.name]'s access panel.", \
"You open the access panel.")
// icon_state = "[reference]w"
temp_state--
if(temp_state == src.construction_state)//Nothing changed
return 0
@@ -398,7 +392,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
src.anchored = 1
user.visible_message("[user.name] secures the [src.name] to the floor.", \
"You secure the external bolts.")
//icon_state = "[reference]"
temp_state++
if(1)
if(iswrench(O))
@@ -406,31 +399,27 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
src.anchored = 0
user.visible_message("[user.name] detaches the [src.name] from the floor.", \
"You remove the external bolts.")
//icon_state = "[reference]"
temp_state--
else if(iscoil(O))
if(O:use(1))
user.visible_message("[user.name] adds wires to the [src.name].", \
"You add some wires.")
//icon_state = "[reference]w"
temp_state++
if(2)
if(iswirecutter(O))//TODO:Shock user if its on?
user.visible_message("[user.name] removes some wires from the [src.name].", \
"You remove some wires.")
//icon_state = "[reference]"
temp_state--
else if(isscrewdriver(O))
user.visible_message("[user.name] closes the [src.name]'s access panel.", \
"You close the access panel.")
//icon_state = "[reference]c"
temp_state++
if(3)
if(isscrewdriver(O))
user.visible_message("[user.name] opens the [src.name]'s access panel.", \
"You open the access panel.")
//icon_state = "[reference]w"
temp_state--
active = 0
if(temp_state == src.construction_state)//Nothing changed
return 0
else
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/obj/machinery/particle_accelerator/control_box
name = "Particle Accelerator Control Computer"
@@ -13,11 +13,11 @@
active_power_usage = 10000
construction_state = 0
active = 0
dir = 1
var/list/obj/structure/particle_accelerator/connected_parts
var/assembled = 0
var/parts = null
New()
connected_parts = list()
..()
@@ -27,7 +27,6 @@
if(construction_state >= 3)
interact(user)
update_state()
if(construction_state < 3)
use_power = 0
@@ -47,7 +46,10 @@
icon_state = "[reference]p1"
else
if(use_power)
icon_state = "[reference]p"
if(assembled)
icon_state = "[reference]p"
else
icon_state = "u[reference]p"
else
switch(construction_state)
if(0)
@@ -137,6 +139,8 @@
proc
part_scan()
for(var/obj/structure/particle_accelerator/fuel_chamber/F in orange(1,src))
src.dir = F.dir
connected_parts = list()
var/tally = 0
var/ldir = turn(dir,-90)
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
var/global/list/uneatable = list(
/turf/space,
@@ -411,15 +411,17 @@ var/global/list/uneatable = list(
toxmob()
var/toxrange = 10
var/toxdamage = 4
var/radiation = 5
var/radiation = 15
var/radiationmin = 3
if (src.energy>200)
toxdamage = round(((src.energy-150)/50)*4,1)
radiation = round(((src.energy-150)/50)*5,1)
radiationmin = round((radiation/5),1)//
for(var/mob/living/M in view(toxrange, src.loc))
if(istype(M,/mob/living/))
M.apply_effect(rand(radiation), IRRADIATE)
var/tdamage = (toxdamage - (toxdamage*M.getarmor(null, "rad")))
M.apply_effect(tdamage, TOX)
M.apply_effect(rand(radiationmin,radiation), IRRADIATE)
toxdamage = (toxdamage - (toxdamage*M.getarmor(null, "rad")))
M.apply_effect(toxdamage, TOX)
return
@@ -1,5 +1,3 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
/obj/item/weapon/gun/energy/gun
icon_state = "energystun100"
item_state = "energystun100"
@@ -78,14 +76,14 @@
M << "\red Your gun feels pleasantly warm for a moment."
else
M << "\red You feel a warm sensation."
M.apply_effect(rand(1,40), IRRADIATE)
M.apply_effect(rand(3,120), IRRADIATE)
lightfail = 1
else
for (var/mob/living/M in range(rand(1,4),src)) //Big failure, TIME FOR RADIATION BITCHES
if (src in M.contents)
M << "\red Your gun's reactor overloads!"
M << "\red You feel a wave of heat wash over you."
M.apply_effect(100, IRRADIATE)
M.apply_effect(300, IRRADIATE)
crit_fail = 1 //break the gun so it stops recharging
processing_objects.Remove(src)
update_icon()
@@ -1,5 +1,3 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
/obj/item/weapon/gun/projectile/shotgun/pump
name = "shotgun"
desc = "Useful for sweeping alleys."
@@ -74,9 +72,16 @@
origin_tech = "combat=3;materials=1"
ammo_type = "/obj/item/ammo_casing/shotgun/beanbag"
New()
for(var/i = 1, i <= max_shells, i++)
loaded += new ammo_type(src)
update_icon()
return
load_into_chamber()
if(in_chamber)
return 1
// if(in_chamber)
// return 1 {R}
if(!loaded.len)
return 0
@@ -95,12 +100,12 @@
if(!(locate(/obj/item/ammo_casing/shotgun) in src) && !loaded.len)
user << "<span class='notice'>\The [src] is empty.</span>"
return
for(var/obj/item/ammo_casing/shotgun/shell in src) //This feels like a hack. //don't code at 3:30am kids!!
if(shell in loaded)
loaded -= shell
shell.loc = get_turf(src.loc)
user << "<span class='notice'>You break \the [src].</span>"
update_icon()
return
@@ -119,6 +124,7 @@
user << "<span class='notice'>You begin to shorten the barrel of \the [src].</span>"
if(loaded.len)
afterattack(user, user) //will this work?
afterattack(user, user) //it will. we call it twice, for twice the FUN
playsound(user, fire_sound, 50, 1)
user.visible_message("<span class='danger'>The shotgun goes off!</span>", "<span class='danger'>The shotgun goes off in your face!</span>")
return
@@ -128,7 +134,7 @@
w_class = 3.0
item_state = "gun"
slot_flags &= ~SLOT_BACK //you can't sling it on your back
slot_flags |= SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally)
slot_flags |= SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally)
name = "sawn-off shotgun"
desc = "Omar's coming!"
user << "<span class='warning'>You shorten the barrel of \the [src]!</span>"
user << "<span class='warning'>You shorten the barrel of \the [src]!</span>"
@@ -49,10 +49,11 @@
on_hit(var/atom/target, var/blocked = 0)
var/mob/M = target
if(istype(target, /mob/living/carbon/human) && M:mutantrace == "plant") //Plantmen possibly get mutated and damaged by the rays.
if(istype(target, /mob/living) && M:mutantrace == "plant") //Plantmen possibly get mutated and damaged by the rays.
var/mob/living/L as mob
if(prob(15))
M.radiation += rand(10,30)
M.Weaken(5)
L.apply_effect((rand(30,80)),IRRADIATE)
L.Weaken(5)
for (var/mob/V in viewers(src))
V.show_message("\red [M] writhes in pain as \his vacuoles boil.", 3, "\red You hear the crunching of leaves.", 2)
if(prob(35))
+17 -15
View File
@@ -1,5 +1,3 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:05
/*///////////////Circuit Imprinter (By Darem)////////////////////////
Used to print new circuit boards (for computers and similar systems) and AI modules. Each circuit board pattern are stored in
a /datum/desgin on the linked R&D console. You can then print them out in a fasion similar to a regular lathe. However, instead of
@@ -81,6 +79,12 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
if(g_amount >= 3750)
var/obj/item/stack/sheet/glass/G = new /obj/item/stack/sheet/glass(src.loc)
G.amount = round(g_amount / 3750)
if(gold_amount >= 2000)
var/obj/item/stack/sheet/gold/G = new /obj/item/stack/sheet/gold(src.loc)
G.amount = round(gold_amount / 2000)
if(diamond_amount >= 2000)
var/obj/item/stack/sheet/diamond/G = new /obj/item/stack/sheet/diamond(src.loc)
G.amount = round(diamond_amount / 2000)
del(src)
return 1
else
@@ -101,20 +105,18 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
if (busy)
user << "\red The [name] is busy. Please wait for completion of previous operation."
return 1
if ((TotalMaterials() + 3750) > max_material_amount)
var/obj/item/stack/sheet/stack = O
if ((TotalMaterials() + stack.perunit) > max_material_amount)
user << "\red The [name] is full. Please remove glass from the protolathe in order to insert more."
return 1
var/obj/item/stack/stack = O
var/amount = 1
var/title = "[stack.name]: [stack.amount] sheet\s left"
switch(alert(title, "How many sheets do you want to load?", "one", "max", "cancel", null))
if("one")
amount = 1
if("max")
amount = min(stack.amount, round((max_material_amount-TotalMaterials())/3750))
else
return 1
var/amount = round(input("How many sheets do you want to add?") as num)
if(amount < 0)
amount = 0
if(amount == 0)
return
if(amount > stack.amount)
amount = min(stack.amount, round((max_material_amount-TotalMaterials())/stack.perunit))
busy = 1
use_power(max(1000, (3750*amount/10)))
@@ -123,9 +125,9 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
if(istype(stack, /obj/item/stack/sheet/glass))
g_amount += amount * 3750
else if(istype(stack, /obj/item/stack/sheet/gold))
gold_amount += amount * 3750
gold_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/diamond))
diamond_amount += amount * 3750
diamond_amount += amount * 2000
stack.use(amount)
busy = 0
src.updateUsrDialog()
+1 -1
View File
@@ -42,7 +42,7 @@
priority = "Undetermined"
/obj/machinery/message_server
icon = 'stationobjs.dmi'
icon = 'research.dmi'
icon_state = "server"
name = "Messaging Server"
density = 1
+35 -40
View File
@@ -1,5 +1,3 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:06
/*
Protolathe
@@ -13,6 +11,7 @@ Note: Must be placed west/left of and R&D console to function.
name = "Protolathe"
icon_state = "protolathe"
flags = OPENCONTAINER
var/max_material_storage = 100000 //All this could probably be done better with a list but meh.
var/m_amount = 0.0
var/g_amount = 0.0
@@ -84,31 +83,31 @@ Note: Must be placed west/left of and R&D console to function.
I.loc = src.loc
if(m_amount >= 3750)
var/obj/item/stack/sheet/metal/G = new /obj/item/stack/sheet/metal(src.loc)
G.amount = round(m_amount / 3750)
G.amount = round(m_amount / G.perunit)
if(g_amount >= 3750)
var/obj/item/stack/sheet/glass/G = new /obj/item/stack/sheet/glass(src.loc)
G.amount = round(g_amount / 3750)
if(plasma_amount >= 3750)
G.amount = round(g_amount / G.perunit)
if(plasma_amount >= 2000)
var/obj/item/stack/sheet/plasma/G = new /obj/item/stack/sheet/plasma(src.loc)
G.amount = round(plasma_amount / 3750)
if(silver_amount >= 3750)
G.amount = round(plasma_amount / G.perunit)
if(silver_amount >= 2000)
var/obj/item/stack/sheet/silver/G = new /obj/item/stack/sheet/silver(src.loc)
G.amount = round(silver_amount / 3750)
if(gold_amount >= 3750)
G.amount = round(silver_amount / G.perunit)
if(gold_amount >= 2000)
var/obj/item/stack/sheet/gold/G = new /obj/item/stack/sheet/gold(src.loc)
G.amount = round(gold_amount / 3750)
if(uranium_amount >= 3750)
G.amount = round(gold_amount / G.perunit)
if(uranium_amount >= 2000)
var/obj/item/stack/sheet/uranium/G = new /obj/item/stack/sheet/uranium(src.loc)
G.amount = round(uranium_amount / 3750)
if(diamond_amount >= 3750)
G.amount = round(uranium_amount / G.perunit)
if(diamond_amount >= 2000)
var/obj/item/stack/sheet/diamond/G = new /obj/item/stack/sheet/diamond(src.loc)
G.amount = round(diamond_amount / 3750)
if(clown_amount >= 3750)
G.amount = round(diamond_amount / G.perunit)
if(clown_amount >= 2000)
var/obj/item/stack/sheet/clown/G = new /obj/item/stack/sheet/clown(src.loc)
G.amount = round(clown_amount / 3750)
if(adamantine_amount >= 3750)
G.amount = round(clown_amount / G.perunit)
if(adamantine_amount >= 2000)
var/obj/item/stack/sheet/adamantine/G = new /obj/item/stack/sheet/adamantine(src.loc)
G.amount = round(adamantine_amount / 3750)
G.amount = round(adamantine_amount / G.perunit)
del(src)
return 1
else
@@ -131,21 +130,18 @@ Note: Must be placed west/left of and R&D console to function.
user << "\red The protolathe's material bin is full. Please remove material before adding more."
return 1
var/obj/item/stack/stack = O
var/amount = 1
var/title = "[stack.name]: [stack.amount] sheet\s left"
switch(alert(title, "How many sheets do you want to load?", "one", "max", "cancel", null))
if("one")
amount = 1
if("max")
amount = min(stack.amount, round((max_material_storage-TotalMaterials())/3750))
else
return 1
var/obj/item/stack/sheet/stack = O
var/amount = round(input("How many sheets do you want to add?") as num)
if(amount < 0)
amount = 0
if(amount == 0)
return
if(amount > stack.amount)
amount = min(stack.amount, round((max_material_storage-TotalMaterials())/stack.perunit))
if(istype(O, /obj/item/stack/sheet/glass))
flick("protolathe_r",src)//plays glass insertion animation
else
flick("protolathe_o",src)//plays metal insertion animation
src.overlays += "protolathe_[stack.name]"
sleep(10)
src.overlays -= "protolathe_[stack.name]"
icon_state = "protolathe"
busy = 1
@@ -153,25 +149,24 @@ Note: Must be placed west/left of and R&D console to function.
spawn(16)
user << "\blue You add [amount] sheets to the [src.name]."
icon_state = "protolathe"
flick("protolathe_o",src)
if(istype(stack, /obj/item/stack/sheet/metal))
m_amount += amount * 3750
else if(istype(stack, /obj/item/stack/sheet/glass))
g_amount += amount * 3750
else if(istype(stack, /obj/item/stack/sheet/gold))
gold_amount += amount * 3750
gold_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/silver))
silver_amount += amount * 3750
silver_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/plasma))
plasma_amount += amount * 3750
plasma_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/uranium))
uranium_amount += amount * 3750
uranium_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/diamond))
diamond_amount += amount * 3750
diamond_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/clown))
clown_amount += amount * 3750
clown_amount += amount * 2000
else if(istype(stack, /obj/item/stack/sheet/adamantine))
adamantine_amount += amount * 3750
adamantine_amount += amount * 2000
stack.use(amount)
busy = 0
src.updateUsrDialog()
+25 -41
View File
@@ -1,4 +1,4 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:06
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/*
Research and Development (R&D) Console
@@ -83,8 +83,6 @@ won't update every console in existence) but it's more of a hassle to do. Also,
return_name = "Uranium"
if("diamond")
return_name = "Diamond"
if("adamantine")
return_name = "adamantine"
if("clown")
return_name = "Bananium"
else
@@ -372,8 +370,6 @@ won't update every console in existence) but it's more of a hassle to do. Also,
linked_lathe.uranium_amount = max(0, (linked_lathe.uranium_amount-being_built.materials[M]))
if("$diamond")
linked_lathe.diamond_amount = max(0, (linked_lathe.diamond_amount-being_built.materials[M]))
if("$adamantine")
linked_lathe.adamantine_amount = max(0, (linked_lathe.adamantine_amount-being_built.materials[M]))
if("$clown")
linked_lathe.clown_amount = max(0, (linked_lathe.clown_amount-being_built.materials[M]))
else
@@ -466,9 +462,6 @@ won't update every console in existence) but it's more of a hassle to do. Also,
if("diamond")
type = /obj/item/stack/sheet/diamond
res_amount = "diamond_amount"
if("adamantine")
type = /obj/item/stack/sheet/adamantine
res_amount = "adamantine_amount"
if("clown")
type = /obj/item/stack/sheet/clown
res_amount = "clown_amount"
@@ -737,8 +730,6 @@ won't update every console in existence) but it's more of a hassle to do. Also,
if(D.materials[M] > linked_lathe.uranium_amount) check_materials = 0
if("$diamond")
if(D.materials[M] > linked_lathe.diamond_amount) check_materials = 0
if("$adamantine")
if(D.materials[M] > linked_lathe.adamantine_amount) check_materials = 0
if("$clown")
if(D.materials[M] > linked_lathe.clown_amount) check_materials = 0
else if (!linked_lathe.reagents.has_reagent(M, D.materials[M]))
@@ -769,51 +760,44 @@ won't update every console in existence) but it's more of a hassle to do. Also,
//Gold
dat += "* [linked_lathe.gold_amount] cm<sup>3</sup> of Gold || "
dat += "Eject: "
if(linked_lathe.gold_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.gold_amount >= 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.gold_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_lathe.gold_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.gold_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.gold_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=gold;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
dat += "<BR>"
//Silver
dat += "* [linked_lathe.silver_amount] cm<sup>3</sup> of Silver || "
dat += "Eject: "
if(linked_lathe.silver_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.silver_amount >= 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.silver_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_lathe.silver_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.silver_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.silver_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=silver;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
dat += "<BR>"
//Plasma
dat += "* [linked_lathe.plasma_amount] cm<sup>3</sup> of Solid Plasma || "
dat += "Eject: "
if(linked_lathe.plasma_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasma;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.plasma_amount >= 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasma;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.plasma_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasma;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_lathe.plasma_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasma;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.plasma_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasma;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.plasma_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=plasmalathe_ejectsheet_amt=50'>(Max Sheets)</A>"
dat += "<BR>"
//Uranium
dat += "* [linked_lathe.uranium_amount] cm<sup>3</sup> of Uranium || "
dat += "Eject: "
if(linked_lathe.uranium_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.uranium_amount >= 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.uranium_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_lathe.uranium_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.uranium_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.uranium_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=uranium;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
dat += "<BR>"
//Diamond
dat += "* [linked_lathe.diamond_amount] cm<sup>3</sup> of Diamond || "
dat += "Eject: "
if(linked_lathe.diamond_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.diamond_amount >= 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.diamond_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
dat += "<BR>"
//Adamantine - Is this even possible to get?
dat += "* [linked_lathe.adamantine_amount] cm<sup>3</sup> of Adamantine || "
dat += "Eject: "
if(linked_lathe.adamantine_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=adamantine;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.adamantine_amount >= 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=adamantine;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.adamantine_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=adamantine;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_lathe.diamond_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.diamond_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.diamond_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=diamond;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
dat += "<BR>"
//Bananium
dat += "* [linked_lathe.clown_amount] cm<sup>3</sup> of Bananium || "
dat += "Eject: "
if(linked_lathe.clown_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.clown_amount >= 18750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.clown_amount >= 3750) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_lathe.clown_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_lathe.clown_amount >= 10000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_lathe.clown_amount >= 2000) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=50'>(Max Sheets)</A>"
if(3.3) //Protolathe Chemical Storage Submenu
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A> || "
@@ -882,16 +866,16 @@ won't update every console in existence) but it's more of a hassle to do. Also,
//Gold
dat += "* [linked_imprinter.gold_amount] cm<sup>3</sup> of Gold || "
dat += "Eject: "
if(linked_imprinter.gold_amount >= 3750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_imprinter.gold_amount >= 18750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_imprinter.gold_amount >= 3750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_imprinter.gold_amount >= 2000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_imprinter.gold_amount >= 10000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_imprinter.gold_amount >= 2000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=gold;imprinter_ejectsheet_amt=50'>(Max Sheets)</A>"
dat += "<BR>"
//Diamond
dat += "* [linked_imprinter.diamond_amount] cm<sup>3</sup> of Diamond || "
dat += "Eject: "
if(linked_imprinter.diamond_amount >= 3750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_imprinter.diamond_amount >= 18750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_imprinter.diamond_amount >= 3750) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=50'>(Max Sheets)</A>"
if(linked_imprinter.diamond_amount >= 2000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=1'>(1 Sheet)</A> "
if(linked_imprinter.diamond_amount >= 10000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=5'>(5 Sheets)</A> "
if(linked_imprinter.diamond_amount >= 2000) dat += "<A href='?src=\ref[src];imprinter_ejectsheet=diamond;imprinter_ejectsheet_amt=50'>(Max Sheets)</A>"
user << browse("<TITLE>Research and Development Console</TITLE><HR>[dat]", "window=rdconsole;size=575x400")
onclose(user, "rdconsole")
+2 -1
View File
@@ -1,10 +1,11 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:06
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
//All devices that link into the R&D console fall into thise type for easy identification and some shared procs.
/obj/machinery/r_n_d
name = "R&D Device"
icon = 'research.dmi'
density = 1
anchored = 1
use_power = 1
+1 -2
View File
@@ -1,7 +1,6 @@
//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:06
/obj/machinery/r_n_d/server
name = "R&D Server"
icon = 'research.dmi'
icon_state = "server"
var/datum/research/files
var/health = 100
+1 -2
View File
@@ -87,7 +87,7 @@ should be listed in the changelog upon commit though. Thanks. -->
<h3 class="author">SkyMarshal updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">ZAS now works properly. No perpetually leaking doors, no walls that hold air like a seive.</li>
<li class="experiment"><font color='red'><b>ZAS airflow is now enabled</b>, and will move objects (AND PEOPLE!) when air moves with enough force. <b>AIRLOCKS ARE NOW DEADLY DANGEROUS!<b></font></li>
<li class="experiment"><font color='red'><b>ZAS airflow is now enabled</b>, and will move objects (AND PEOPLE!) when air moves with enough force. <b>AIRLOCKS ARE NOW DEADLY DANGEROUS!</b></font></li>
<li class="rscadd">Packages will now reflect the size of what they contain</li>
</ul>
</div>
@@ -127,7 +127,6 @@ should be listed in the changelog upon commit though. Thanks. -->
<li class="bugfix">Fixed flavour text, it should now be possible to have it longer than 40 characters, and should stay properly formatted.</li>
<li class="bugfix">Fixes AI's not being able to talk through holopads.</li>
</ul>
</div>
<div class="commit sansserif">
Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Some files were not shown because too many files have changed in this diff Show More