mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-25 21:19:44 +01:00
Merge branch 'master' of https://github.com/Baystation12/Baystation12 into bugfix
This commit is contained in:
+5
-2
@@ -1,7 +1,10 @@
|
||||
#ignore misc BYOND files
|
||||
*.log
|
||||
*.int
|
||||
*.rsc
|
||||
*.dmb
|
||||
*.lk
|
||||
info.json
|
||||
/config/admins.txt
|
||||
|
||||
#ignore any files in config/, except those in subdirectories.
|
||||
/config/*
|
||||
!/config/*/*
|
||||
|
||||
@@ -58,6 +58,12 @@ When you have done this, you'll need to recompile the code, but then it should w
|
||||
|
||||
---
|
||||
|
||||
### Configuration
|
||||
|
||||
For a basic setup, simply copy every file from config/example to config.
|
||||
|
||||
---
|
||||
|
||||
### SQL Setup
|
||||
|
||||
The SQL backend for the library and stats tracking requires a MySQL server. Your server details go in /config/dbconfig.txt, and the SQL schema is in /SQL/tgstation_schema.sql. More detailed setup instructions arecoming soon, for now ask in our IRC channel.
|
||||
|
||||
+15
-59
@@ -5,55 +5,6 @@
|
||||
// END_INTERNALS
|
||||
// BEGIN_FILE_DIR
|
||||
#define FILE_DIR .
|
||||
#define FILE_DIR "code"
|
||||
#define FILE_DIR "code/TriDimension"
|
||||
#define FILE_DIR "code/WorkInProgress"
|
||||
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn"
|
||||
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Jungle"
|
||||
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Rust"
|
||||
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/ShieldGen"
|
||||
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter"
|
||||
#define FILE_DIR "code/WorkInProgress/Susan"
|
||||
#define FILE_DIR "html"
|
||||
#define FILE_DIR "icons"
|
||||
#define FILE_DIR "icons/48x48"
|
||||
#define FILE_DIR "icons/effects"
|
||||
#define FILE_DIR "icons/mecha"
|
||||
#define FILE_DIR "icons/misc"
|
||||
#define FILE_DIR "icons/mob"
|
||||
#define FILE_DIR "icons/mob/human_races"
|
||||
#define FILE_DIR "icons/obj"
|
||||
#define FILE_DIR "icons/obj/assemblies"
|
||||
#define FILE_DIR "icons/obj/atmospherics"
|
||||
#define FILE_DIR "icons/obj/clothing"
|
||||
#define FILE_DIR "icons/obj/doors"
|
||||
#define FILE_DIR "icons/obj/flora"
|
||||
#define FILE_DIR "icons/obj/machines"
|
||||
#define FILE_DIR "icons/obj/pipes"
|
||||
#define FILE_DIR "icons/pda_icons"
|
||||
#define FILE_DIR "icons/spideros_icons"
|
||||
#define FILE_DIR "icons/Testing"
|
||||
#define FILE_DIR "icons/turf"
|
||||
#define FILE_DIR "icons/vending_icons"
|
||||
#define FILE_DIR "icons/xenoarch_icons"
|
||||
#define FILE_DIR "sound"
|
||||
#define FILE_DIR "sound/AI"
|
||||
#define FILE_DIR "sound/ambience"
|
||||
#define FILE_DIR "sound/effects"
|
||||
#define FILE_DIR "sound/effects/turret"
|
||||
#define FILE_DIR "sound/effects/wind"
|
||||
#define FILE_DIR "sound/hallucinations"
|
||||
#define FILE_DIR "sound/items"
|
||||
#define FILE_DIR "sound/machines"
|
||||
#define FILE_DIR "sound/mecha"
|
||||
#define FILE_DIR "sound/misc"
|
||||
#define FILE_DIR "sound/music"
|
||||
#define FILE_DIR "sound/piano"
|
||||
#define FILE_DIR "sound/violin"
|
||||
#define FILE_DIR "sound/voice"
|
||||
#define FILE_DIR "sound/voice/Serithi"
|
||||
#define FILE_DIR "sound/vox"
|
||||
#define FILE_DIR "sound/weapons"
|
||||
// END_FILE_DIR
|
||||
// BEGIN_PREFERENCES
|
||||
#define DEBUG
|
||||
@@ -284,7 +235,6 @@
|
||||
#include "code\game\machinery\atmo_control.dm"
|
||||
#include "code\game\machinery\autolathe.dm"
|
||||
#include "code\game\machinery\Beacon.dm"
|
||||
#include "code\game\machinery\bees.dm"
|
||||
#include "code\game\machinery\bees_apiary.dm"
|
||||
#include "code\game\machinery\bees_items.dm"
|
||||
#include "code\game\machinery\biogenerator.dm"
|
||||
@@ -326,7 +276,6 @@
|
||||
#include "code\game\machinery\suit_storage_unit.dm"
|
||||
#include "code\game\machinery\syndicatebeacon.dm"
|
||||
#include "code\game\machinery\teleporter.dm"
|
||||
#include "code\game\machinery\transformer.dm"
|
||||
#include "code\game\machinery\turrets.dm"
|
||||
#include "code\game\machinery\vending.dm"
|
||||
#include "code\game\machinery\washing_machine.dm"
|
||||
@@ -486,6 +435,7 @@
|
||||
#include "code\game\objects\items\devices\flash.dm"
|
||||
#include "code\game\objects\items\devices\flashlight.dm"
|
||||
#include "code\game\objects\items\devices\lightreplacer.dm"
|
||||
#include "code\game\objects\items\devices\modkit.dm"
|
||||
#include "code\game\objects\items\devices\multitool.dm"
|
||||
#include "code\game\objects\items\devices\paicard.dm"
|
||||
#include "code\game\objects\items\devices\pipe_painter.dm"
|
||||
@@ -787,10 +737,10 @@
|
||||
#include "code\modules\customitems\item_defines.dm"
|
||||
#include "code\modules\customitems\item_spawning.dm"
|
||||
#include "code\modules\destilery\main.dm"
|
||||
#include "code\modules\DetectiveWork\detective_work.dm"
|
||||
#include "code\modules\DetectiveWork\evidence.dm"
|
||||
#include "code\modules\DetectiveWork\footprints_and_rag.dm"
|
||||
#include "code\modules\DetectiveWork\scanner.dm"
|
||||
#include "code\modules\detectivework\detective_work.dm"
|
||||
#include "code\modules\detectivework\evidence.dm"
|
||||
#include "code\modules\detectivework\footprints_and_rag.dm"
|
||||
#include "code\modules\detectivework\scanner.dm"
|
||||
#include "code\modules\events\alien_infestation.dm"
|
||||
#include "code\modules\events\blob.dm"
|
||||
#include "code\modules\events\brand_intelligence.dm"
|
||||
@@ -945,10 +895,10 @@
|
||||
#include "code\modules\mob\living\carbon\metroid\login.dm"
|
||||
#include "code\modules\mob\living\carbon\metroid\metroid.dm"
|
||||
#include "code\modules\mob\living\carbon\metroid\powers.dm"
|
||||
#include "code\modules\mob\living\carbon\metroid\say.dm"
|
||||
#include "code\modules\mob\living\carbon\metroid\subtypes.dm"
|
||||
#include "code\modules\mob\living\carbon\metroid\update_icons.dm"
|
||||
#include "code\modules\mob\living\carbon\monkey\death.dm"
|
||||
#include "code\modules\mob\living\carbon\monkey\diona.dm"
|
||||
#include "code\modules\mob\living\carbon\monkey\emote.dm"
|
||||
#include "code\modules\mob\living\carbon\monkey\examine.dm"
|
||||
#include "code\modules\mob\living\carbon\monkey\hud.dm"
|
||||
@@ -957,7 +907,6 @@
|
||||
#include "code\modules\mob\living\carbon\monkey\login.dm"
|
||||
#include "code\modules\mob\living\carbon\monkey\monkey.dm"
|
||||
#include "code\modules\mob\living\carbon\monkey\powers.dm"
|
||||
#include "code\modules\mob\living\carbon\monkey\say.dm"
|
||||
#include "code\modules\mob\living\carbon\monkey\update_icons.dm"
|
||||
#include "code\modules\mob\living\silicon\death.dm"
|
||||
#include "code\modules\mob\living\silicon\login.dm"
|
||||
@@ -1003,8 +952,8 @@
|
||||
#include "code\modules\mob\living\silicon\robot\robot_items.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\robot_modules.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\robot_movement.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\say.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\wires.dm"
|
||||
#include "code\modules\mob\living\simple_animal\bees.dm"
|
||||
#include "code\modules\mob\living\simple_animal\borer.dm"
|
||||
#include "code\modules\mob\living\simple_animal\constructs.dm"
|
||||
#include "code\modules\mob\living\simple_animal\corpse.dm"
|
||||
@@ -1047,6 +996,12 @@
|
||||
#include "code\modules\mob\new_player\preferences_setup.dm"
|
||||
#include "code\modules\mob\new_player\skill.dm"
|
||||
#include "code\modules\mob\new_player\sprite_accessories.dm"
|
||||
#include "code\modules\nano\_JSON.dm"
|
||||
#include "code\modules\nano\JSON Reader.dm"
|
||||
#include "code\modules\nano\JSON Writer.dm"
|
||||
#include "code\modules\nano\nanoexternal.dm"
|
||||
#include "code\modules\nano\nanomanager.dm"
|
||||
#include "code\modules\nano\nanoui.dm"
|
||||
#include "code\modules\organs\blood.dm"
|
||||
#include "code\modules\organs\organ.dm"
|
||||
#include "code\modules\organs\organ_external.dm"
|
||||
@@ -1327,6 +1282,7 @@
|
||||
#include "code\WorkInProgress\Cael_Aislinn\Supermatter\ZeroPointLaser.dm"
|
||||
#include "code\WorkInProgress\Chinsky\ashtray.dm"
|
||||
#include "code\WorkInProgress\Cib\MedicalSideEffects.dm"
|
||||
#include "code\WorkInProgress\kilakk\fax.dm"
|
||||
#include "code\WorkInProgress\Mini\ATM.dm"
|
||||
#include "code\WorkInProgress\Mini\atmos_control.dm"
|
||||
#include "code\WorkInProgress\Ported\policetape.dm"
|
||||
@@ -1346,7 +1302,7 @@
|
||||
#include "code\ZAS\ZAS_Zones.dm"
|
||||
#include "interface\interface.dm"
|
||||
#include "interface\skin.dmf"
|
||||
#include "maps\tgstation.2.1.0.0.1.dmm"
|
||||
#include "maps\tgstation2.dmm"
|
||||
#include "maps\RandomZLevels\Academy.dm"
|
||||
#include "maps\RandomZLevels\challenge.dm"
|
||||
#include "maps\RandomZLevels\stationCollision.dm"
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
// BEGIN_INTERNALS
|
||||
/*
|
||||
AUTO_FILE_DIR: OFF
|
||||
*/
|
||||
// END_INTERNALS
|
||||
@@ -20,7 +20,7 @@ obj/machinery/atmospherics
|
||||
|
||||
|
||||
obj/machinery/atmospherics/var/initialize_directions = 0
|
||||
obj/machinery/atmospherics/var/color
|
||||
obj/machinery/atmospherics/var/pipe_color
|
||||
|
||||
obj/machinery/atmospherics/process()
|
||||
build_network()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
obj/machinery/atmospherics/tvalve
|
||||
icon = 'valve.dmi'
|
||||
icon = 'icons/obj/atmospherics/valve.dmi'
|
||||
icon_state = "tvalve0"
|
||||
|
||||
name = "manual switching valve"
|
||||
@@ -265,7 +265,7 @@ obj/machinery/atmospherics/tvalve
|
||||
digital // can be controlled by AI
|
||||
name = "digital switching valve"
|
||||
desc = "A digitally controlled valve."
|
||||
icon = 'digital_valve.dmi'
|
||||
icon = 'icons/obj/atmospherics/digital_valve.dmi'
|
||||
|
||||
attack_ai(mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
@@ -329,7 +329,7 @@ obj/machinery/atmospherics/tvalve
|
||||
user << "\red You cannot unwrench this [src], it too exerted due to internal pressure."
|
||||
add_fingerprint(user)
|
||||
return 1
|
||||
playsound(src.loc, 'Ratchet.ogg', 50, 1)
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
user << "\blue You begin to unfasten \the [src]..."
|
||||
if (do_after(user, 40))
|
||||
user.visible_message( \
|
||||
@@ -384,7 +384,7 @@ obj/machinery/atmospherics/tvalve/mirrored
|
||||
digital // can be controlled by AI
|
||||
name = "digital switching valve"
|
||||
desc = "A digitally controlled valve."
|
||||
icon = 'digital_valve.dmi'
|
||||
icon = 'icons/obj/atmospherics/digital_valve.dmi'
|
||||
|
||||
attack_ai(mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
//Based off Heat Reservoir and Space Heater
|
||||
//Transfers heat between a pipe system and environment, based on which has a greater thermal energy concentration
|
||||
|
||||
icon = 'cold_sink.dmi'
|
||||
icon = 'icons/obj/atmospherics/cold_sink.dmi'
|
||||
icon_state = "intact_off"
|
||||
|
||||
name = "Thermal Transfer Plate"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
obj/machinery/atmospherics/pipe/simple/heat_exchanging
|
||||
icon = 'heat.dmi'
|
||||
icon = 'icons/obj/pipes/heat.dmi'
|
||||
icon_state = "intact"
|
||||
level = 2
|
||||
var/initialize_directions_he
|
||||
@@ -58,7 +58,7 @@ obj/machinery/atmospherics/pipe/simple/heat_exchanging
|
||||
|
||||
|
||||
obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction
|
||||
icon = 'junction.dmi'
|
||||
icon = 'icons/obj/pipes/junction.dmi'
|
||||
icon_state = "intact"
|
||||
level = 2
|
||||
minimum_temperature_difference = 300
|
||||
|
||||
+20
-19
@@ -186,7 +186,7 @@ obj/machinery/atmospherics/pipe
|
||||
update_icon()
|
||||
if(node1&&node2)
|
||||
var/C = ""
|
||||
switch(color)
|
||||
switch(pipe_color)
|
||||
if ("red") C = "-r"
|
||||
if ("blue") C = "-b"
|
||||
if ("cyan") C = "-c"
|
||||
@@ -252,22 +252,22 @@ obj/machinery/atmospherics/pipe
|
||||
|
||||
simple/scrubbers
|
||||
name="Scrubbers pipe"
|
||||
color="red"
|
||||
pipe_color="red"
|
||||
icon_state = ""
|
||||
|
||||
simple/supply
|
||||
name="Air supply pipe"
|
||||
color="blue"
|
||||
pipe_color="blue"
|
||||
icon_state = ""
|
||||
|
||||
simple/supplymain
|
||||
name="Main air supply pipe"
|
||||
color="purple"
|
||||
pipe_color="purple"
|
||||
icon_state = ""
|
||||
|
||||
simple/general
|
||||
name="Pipe"
|
||||
color=""
|
||||
pipe_color=""
|
||||
icon_state = ""
|
||||
|
||||
simple/scrubbers/visible
|
||||
@@ -304,7 +304,7 @@ obj/machinery/atmospherics/pipe
|
||||
|
||||
simple/yellow
|
||||
name="Pipe"
|
||||
color="yellow"
|
||||
pipe_color="yellow"
|
||||
icon_state = ""
|
||||
|
||||
simple/yellow/visible
|
||||
@@ -697,7 +697,7 @@ obj/machinery/atmospherics/pipe
|
||||
update_icon()
|
||||
if(node1&&node2&&node3)
|
||||
var/C = ""
|
||||
switch(color)
|
||||
switch(pipe_color)
|
||||
if ("red") C = "-r"
|
||||
if ("blue") C = "-b"
|
||||
if ("cyan") C = "-c"
|
||||
@@ -769,27 +769,27 @@ obj/machinery/atmospherics/pipe
|
||||
|
||||
manifold/scrubbers
|
||||
name="Scrubbers pipe"
|
||||
color="red"
|
||||
pipe_color="red"
|
||||
icon_state = ""
|
||||
|
||||
manifold/supply
|
||||
name="Air supply pipe"
|
||||
color="blue"
|
||||
pipe_color="blue"
|
||||
icon_state = ""
|
||||
|
||||
manifold/supplymain
|
||||
name="Main air supply pipe"
|
||||
color="purple"
|
||||
pipe_color="purple"
|
||||
icon_state = ""
|
||||
|
||||
manifold/general
|
||||
name="Air supply pipe"
|
||||
color="gray"
|
||||
pipe_color="gray"
|
||||
icon_state = ""
|
||||
|
||||
manifold/yellow
|
||||
name="Air supply pipe"
|
||||
color="yellow"
|
||||
pipe_color="yellow"
|
||||
icon_state = ""
|
||||
|
||||
manifold/scrubbers/visible
|
||||
@@ -922,9 +922,10 @@ obj/machinery/atmospherics/pipe
|
||||
..()
|
||||
|
||||
update_icon()
|
||||
overlays.Cut()
|
||||
if(node1&&node2&&node3&&node4)
|
||||
var/C = ""
|
||||
switch(color)
|
||||
switch(pipe_color)
|
||||
if ("red") C = "-r"
|
||||
if ("blue") C = "-b"
|
||||
if ("cyan") C = "-c"
|
||||
@@ -935,7 +936,7 @@ obj/machinery/atmospherics/pipe
|
||||
|
||||
else
|
||||
icon_state = "manifold4w_ex"
|
||||
var/icon/con = new/icon('pipe_manifold.dmi',"manifold4w_con") //Since 4-ways are supposed to be directionless, they need an overlay instead it seems.
|
||||
var/icon/con = new/icon('icons/obj/atmospherics/pipe_manifold.dmi',"manifold4w_con") //Since 4-ways are supposed to be directionless, they need an overlay instead it seems.
|
||||
|
||||
if(node1)
|
||||
overlays += new/image(con,dir=1)
|
||||
@@ -979,22 +980,22 @@ obj/machinery/atmospherics/pipe
|
||||
|
||||
manifold4w/scrubbers
|
||||
name="Scrubbers pipe"
|
||||
color="red"
|
||||
pipe_color="red"
|
||||
icon_state = ""
|
||||
|
||||
manifold4w/supply
|
||||
name="Air supply pipe"
|
||||
color="blue"
|
||||
pipe_color="blue"
|
||||
icon_state = ""
|
||||
|
||||
manifold4w/supplymain
|
||||
name="Main air supply pipe"
|
||||
color="purple"
|
||||
pipe_color="purple"
|
||||
icon_state = ""
|
||||
|
||||
manifold4w/general
|
||||
name="Air supply pipe"
|
||||
color="gray"
|
||||
pipe_color="gray"
|
||||
icon_state = ""
|
||||
|
||||
manifold4w/scrubbers/visible
|
||||
@@ -1032,7 +1033,7 @@ obj/machinery/atmospherics/pipe
|
||||
cap
|
||||
name = "pipe endcap"
|
||||
desc = "An endcap for pipes"
|
||||
icon = 'pipes.dmi'
|
||||
icon = 'icons/obj/pipes.dmi'
|
||||
icon_state = "cap"
|
||||
level = 2
|
||||
layer = 2.4 //under wires with their 2.44
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
///////////////////////////////////////
|
||||
|
||||
/obj/multiz
|
||||
icon = 'multiz.dmi'
|
||||
icon = 'code/TriDimension/multiz.dmi'
|
||||
density = 0
|
||||
opacity = 0
|
||||
anchored = 1
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
|
||||
var/minimap_updating = 0
|
||||
|
||||
var/icon/minimap_icon = new('minimap.dmi', "chunk_base")
|
||||
var/icon/minimap_icon = new('icons/minimap.dmi', "chunk_base")
|
||||
var/obj/minimap_obj/minimap_obj = new()
|
||||
|
||||
/obj/minimap_obj/Click(location, control, params)
|
||||
@@ -243,7 +243,7 @@
|
||||
|
||||
if(!(t in visibleTurfs))
|
||||
if(!t.obscured)
|
||||
t.obscured = image('cameravis.dmi', t, "black", 15)
|
||||
t.obscured = image('icons/effects/cameravis.dmi', t, "black", 15)
|
||||
|
||||
obscured += t.obscured
|
||||
for(var/mob/aiEye/m in seenby)
|
||||
@@ -253,7 +253,7 @@
|
||||
for(var/turf/t in dimAdded)
|
||||
if(!(t in visibleTurfs))
|
||||
if(!t.dim)
|
||||
t.dim = image('cameravis.dmi', t, "dim", 15)
|
||||
t.dim = image('icons/effects/cameravis.dmi', t, "dim", 15)
|
||||
t.mouse_opacity = 0
|
||||
|
||||
dim += t.dim
|
||||
@@ -277,7 +277,7 @@
|
||||
for(var/turf/t in visRemoved)
|
||||
if(t in obscuredTurfs)
|
||||
if(!t.obscured)
|
||||
t.obscured = image('cameravis.dmi', t, "black", 15)
|
||||
t.obscured = image('icons/effects/cameravis.dmi', t, "black", 15)
|
||||
|
||||
obscured += t.obscured
|
||||
for(var/mob/aiEye/m in seenby)
|
||||
@@ -313,14 +313,14 @@
|
||||
|
||||
for(var/turf/t in obscuredTurfs)
|
||||
if(!t.obscured)
|
||||
t.obscured = image('cameravis.dmi', t, "black", 15)
|
||||
t.obscured = image('icons/effects/cameravis.dmi', t, "black", 15)
|
||||
|
||||
obscured += t.obscured
|
||||
|
||||
for(var/turf/t in dimTurfs)
|
||||
if(!(t in visibleTurfs))
|
||||
if(!t.dim)
|
||||
t.dim = image('cameravis.dmi', t, "dim", TURF_LAYER)
|
||||
t.dim = image('icons/effects/cameravis.dmi', t, "dim", TURF_LAYER)
|
||||
t.dim.mouse_opacity = 0
|
||||
|
||||
dim += t.dim
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
var/z
|
||||
|
||||
|
||||
var/icon/minimap_icon = new('minimap.dmi', "chunk_base")
|
||||
var/icon/minimap_icon = new('icons/minimap.dmi', "chunk_base")
|
||||
var/obj/minimap_obj/minimap_obj = new()
|
||||
|
||||
|
||||
@@ -77,13 +77,13 @@
|
||||
|
||||
for(var/turf/t in obscuredTurfs)
|
||||
if(!t.obscured)
|
||||
t.obscured = image('cameravis.dmi', t, "black", 15)
|
||||
t.obscured = image('icons/effects/cameravis.dmi', t, "black", 15)
|
||||
|
||||
obscured += t.obscured
|
||||
|
||||
for(var/turf/t in dimTurfs)
|
||||
if(!t.dim)
|
||||
t.dim = image('cameravis.dmi', t, "dim", TURF_LAYER)
|
||||
t.dim = image('icons/effects/cameravis.dmi', t, "dim", TURF_LAYER)
|
||||
t.dim.mouse_opacity = 0
|
||||
|
||||
dim += t.dim
|
||||
@@ -184,7 +184,7 @@
|
||||
|
||||
if(!(t in visibleTurfs))
|
||||
if(!t.obscured)
|
||||
t.obscured = image('cameravis.dmi', t, "black", 15)
|
||||
t.obscured = image('icons/effects/cameravis.dmi', t, "black", 15)
|
||||
|
||||
obscured += t.obscured
|
||||
images_added += t.obscured
|
||||
@@ -192,7 +192,7 @@
|
||||
for(var/turf/t in dimAdded)
|
||||
if(!(t in visibleTurfs))
|
||||
if(!t.dim)
|
||||
t.dim = image('cameravis.dmi', t, "dim", 15)
|
||||
t.dim = image('icons/effects/cameravis.dmi', t, "dim", 15)
|
||||
t.dim.mouse_opacity = 0
|
||||
|
||||
dim += t.dim
|
||||
@@ -210,7 +210,7 @@
|
||||
for(var/turf/t in visRemoved)
|
||||
if(t in obscuredTurfs)
|
||||
if(!t.obscured)
|
||||
t.obscured = image('cameravis.dmi', t, "black", 15)
|
||||
t.obscured = image('icons/effects/cameravis.dmi', t, "black", 15)
|
||||
|
||||
obscured += t.obscured
|
||||
images_added += t.obscured
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/changestone
|
||||
name = "An uncut ruby"
|
||||
desc = "The ruby shines and catches the light, despite being uncut"
|
||||
icon = 'artifacts.dmi'
|
||||
icon = 'icons/obj/artifacts.dmi'
|
||||
icon_state = "changerock"
|
||||
|
||||
obj/item/changestone/attack_hand(var/mob/user as mob)
|
||||
|
||||
@@ -136,7 +136,7 @@ var/global/list/all_money_accounts = list()
|
||||
/obj/machinery/account_database
|
||||
name = "Accounts database"
|
||||
desc = "Holds transaction logs, account data and all kinds of other financial records."
|
||||
icon = 'virology.dmi'
|
||||
icon = 'icons/obj/virology.dmi'
|
||||
icon_state = "analyser"
|
||||
density = 1
|
||||
req_one_access = list(access_hop, access_captain)
|
||||
@@ -338,3 +338,6 @@ var/global/list/all_money_accounts = list()
|
||||
for(var/datum/money_account/D in all_money_accounts)
|
||||
if(D.account_number == account_number)
|
||||
return D
|
||||
|
||||
/obj/machinery/account_database/process()
|
||||
return 0
|
||||
|
||||
@@ -70,8 +70,12 @@
|
||||
D.name = "small parcel - 'EFTPOS access code'"
|
||||
|
||||
/obj/item/device/eftpos/proc/reconnect_database()
|
||||
for(var/obj/machinery/account_database/DB in world) //Hotfix until someone finds out why it isn't in 'machines'
|
||||
if(DB.z == src.z)
|
||||
var/turf/location = get_turf(src)
|
||||
if(!location)
|
||||
return
|
||||
|
||||
for(var/obj/machinery/account_database/DB in machines) //Hotfix until someone finds out why it isn't in 'machines'
|
||||
if(DB.z == location.z)
|
||||
linked_db = DB
|
||||
break
|
||||
|
||||
@@ -201,7 +205,7 @@
|
||||
var/datum/money_account/D = linked_db.attempt_account_access(C.associated_account_number, attempt_pin, 2)
|
||||
if(D)
|
||||
if(transaction_amount <= D.money)
|
||||
playsound(src, 'chime.ogg', 50, 1)
|
||||
playsound(src, 'sound/machines/chime.ogg', 50, 1)
|
||||
src.visible_message("\icon[src] The [src] chimes.")
|
||||
transaction_paid = 1
|
||||
|
||||
@@ -239,4 +243,4 @@
|
||||
else
|
||||
..()
|
||||
|
||||
//emag?
|
||||
//emag?
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
/mob/living/simple_animal/hostile/panther
|
||||
name = "panther"
|
||||
desc = "A long sleek, black cat with sharp teeth and claws."
|
||||
icon = 'jungle.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "panther"
|
||||
icon_living = "panther"
|
||||
icon_dead = "panther_dead"
|
||||
@@ -108,7 +108,7 @@
|
||||
/mob/living/simple_animal/hostile/snake
|
||||
name = "snake"
|
||||
desc = "A sinuously coiled, venomous looking reptile."
|
||||
icon = 'jungle.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "snake"
|
||||
icon_living = "snake"
|
||||
icon_dead = "snake_dead"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
/obj/structure/bush
|
||||
name = "foliage"
|
||||
desc = "Pretty thick scrub, it'll take something sharp and a lot of determination to clear away."
|
||||
icon = 'jungle.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "bush1"
|
||||
density = 1
|
||||
anchored = 1
|
||||
@@ -68,12 +68,12 @@ var/jungle_plants_init = 0
|
||||
seed = ""
|
||||
name = "jungle fruit"
|
||||
desc = "It smells weird and looks off."
|
||||
icon = 'jungle.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "orange"
|
||||
potency = 1
|
||||
|
||||
/obj/structure/jungle_plant
|
||||
icon = 'jungle.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "plant1"
|
||||
desc = "Looks like some of that fruit might be edible."
|
||||
var/fruits_left = 3
|
||||
@@ -92,7 +92,7 @@ var/jungle_plants_init = 0
|
||||
fruit_type = rand(1,7)
|
||||
icon_state = "plant[fruit_type]"
|
||||
fruits_left = rand(1,5)
|
||||
fruit_overlay = icon('jungle.dmi',"fruit[fruits_left]")
|
||||
fruit_overlay = icon('code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi',"fruit[fruits_left]")
|
||||
fruit_r = 255 - fruit_type * 36
|
||||
fruit_g = rand(1,255)
|
||||
fruit_b = fruit_type * 36
|
||||
@@ -113,7 +113,7 @@ var/jungle_plants_init = 0
|
||||
J.attack_hand(user)
|
||||
|
||||
overlays -= fruit_overlay
|
||||
fruit_overlay = icon('jungle.dmi',"fruit[fruits_left]")
|
||||
fruit_overlay = icon('code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi',"fruit[fruits_left]")
|
||||
fruit_overlay.Blend(rgb(fruit_r, fruit_g, fruit_b), ICON_ADD)
|
||||
overlays += fruit_overlay
|
||||
else
|
||||
|
||||
@@ -3,37 +3,37 @@
|
||||
/area/jungle/temple_one
|
||||
name = "temple"
|
||||
lighting_use_dynamic = 1
|
||||
icon = 'jungle.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "temple1"
|
||||
|
||||
/area/jungle/temple_two
|
||||
name = "temple"
|
||||
lighting_use_dynamic = 1
|
||||
icon = 'jungle.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "temple2"
|
||||
|
||||
/area/jungle/temple_three
|
||||
name = "temple"
|
||||
lighting_use_dynamic = 1
|
||||
icon = 'jungle.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "temple3"
|
||||
|
||||
/area/jungle/temple_four
|
||||
name = "temple"
|
||||
lighting_use_dynamic = 1
|
||||
icon = 'jungle.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "temple4"
|
||||
|
||||
/area/jungle/temple_five
|
||||
name = "temple"
|
||||
lighting_use_dynamic = 1
|
||||
icon = 'jungle.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "temple5"
|
||||
|
||||
/area/jungle/temple_six
|
||||
name = "temple"
|
||||
lighting_use_dynamic = 1
|
||||
icon = 'jungle.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "temple6"
|
||||
|
||||
/obj/effect/landmark/door_spawner
|
||||
@@ -284,7 +284,7 @@
|
||||
/obj/effect/step_trigger/trap
|
||||
name = "trap"
|
||||
icon = 'code/workinprogress/cael_aislinn/jungle/jungle.dmi'
|
||||
icon = 'jungle.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "trap"
|
||||
var/trap_type
|
||||
|
||||
@@ -309,7 +309,7 @@
|
||||
M.apply_damage(rand(5,10), BRUTE)
|
||||
|
||||
var/atom/myloc = src.loc
|
||||
var/image/flicker = image('jungle.dmi',"sawblade")
|
||||
var/image/flicker = image('code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi',"sawblade")
|
||||
myloc.overlays += flicker
|
||||
spawn(8)
|
||||
myloc.overlays -= flicker
|
||||
@@ -320,7 +320,7 @@
|
||||
M.apply_damage(rand(5,10), TOX)
|
||||
|
||||
var/atom/myloc = src.loc
|
||||
var/image/flicker = image('jungle.dmi',"dart[rand(1,3)]")
|
||||
var/image/flicker = image('code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi',"dart[rand(1,3)]")
|
||||
myloc.overlays += flicker
|
||||
spawn(8)
|
||||
myloc.overlays -= flicker
|
||||
@@ -331,7 +331,7 @@
|
||||
M.apply_damage(rand(5,10), BURN)
|
||||
|
||||
var/atom/myloc = src.loc
|
||||
var/image/flicker = image('jungle.dmi',"flameburst")
|
||||
var/image/flicker = image('code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi',"flameburst")
|
||||
myloc.overlays += flicker
|
||||
spawn(8)
|
||||
myloc.overlays -= flicker
|
||||
@@ -347,7 +347,7 @@
|
||||
M.visible_message("\red <b>The floor under [M] suddenly tips upward!</b>","\red <b>The floor tips upward under you!</b>")
|
||||
|
||||
var/atom/myloc = src.loc
|
||||
var/image/flicker = image('jungle.dmi',"throw[throw_dir]")
|
||||
var/image/flicker = image('code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi',"throw[throw_dir]")
|
||||
myloc.overlays += flicker
|
||||
var/turf/my_turf = get_turf(loc)
|
||||
if(!my_turf.density)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
/obj/effect/jungle_tribe_spawn
|
||||
name = "campfire"
|
||||
desc = "Looks cosy, in an alien sort of way."
|
||||
icon = 'jungle.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "campfire"
|
||||
anchored = 1
|
||||
var/list/tribesmen = list()
|
||||
@@ -46,7 +46,7 @@
|
||||
/mob/living/simple_animal/hostile/tribesman
|
||||
name = "tribesman"
|
||||
desc = "A noble savage, doesn't seem to know what to make of you."
|
||||
icon = 'jungle.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "native1"
|
||||
icon_living = "native1"
|
||||
icon_dead = "native1_dead"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
var/plants_spawn = 1
|
||||
name = "wet grass"
|
||||
desc = "Thick, long wet grass"
|
||||
icon = 'jungle.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "grass1"
|
||||
var/icon_spawn_state = "grass1"
|
||||
luminosity = 3
|
||||
@@ -16,7 +16,7 @@
|
||||
if(prob(90))
|
||||
var/image/I
|
||||
if(prob(35))
|
||||
I = image('jungle.dmi',"plant[rand(1,7)]")
|
||||
I = image('code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi',"plant[rand(1,7)]")
|
||||
else
|
||||
if(prob(30))
|
||||
I = image('icons/obj/flora/ausflora.dmi',"reedbush_[rand(1,4)]")
|
||||
@@ -46,7 +46,7 @@
|
||||
bushes_spawn = 0
|
||||
name = "wet grass"
|
||||
desc = "thick, long wet grass"
|
||||
icon = 'jungle.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dmi'
|
||||
icon_state = "grass_path"
|
||||
icon_spawn_state = "grass2"
|
||||
|
||||
|
||||
@@ -266,7 +266,7 @@ Deuterium-tritium fusion: 4.5 x 10^7 K
|
||||
switch(newsize)
|
||||
if(1)
|
||||
size = 1
|
||||
icon = 'rust.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi'
|
||||
icon_state = "emfield_s1"
|
||||
pixel_x = 0
|
||||
pixel_y = 0
|
||||
@@ -274,7 +274,7 @@ Deuterium-tritium fusion: 4.5 x 10^7 K
|
||||
changed = 1
|
||||
if(3)
|
||||
size = 3
|
||||
icon = '96x96.dmi'
|
||||
icon = 'icons/effects/96x96.dmi'
|
||||
icon_state = "emfield_s3"
|
||||
pixel_x = -32
|
||||
pixel_y = -32
|
||||
@@ -282,7 +282,7 @@ Deuterium-tritium fusion: 4.5 x 10^7 K
|
||||
changed = 3
|
||||
if(5)
|
||||
size = 5
|
||||
icon = '160x160.dmi'
|
||||
icon = 'icons/effects/160x160.dmi'
|
||||
icon_state = "emfield_s5"
|
||||
pixel_x = -64
|
||||
pixel_y = -64
|
||||
@@ -290,7 +290,7 @@ Deuterium-tritium fusion: 4.5 x 10^7 K
|
||||
changed = 5
|
||||
if(7)
|
||||
size = 7
|
||||
icon = '224x224.dmi'
|
||||
icon = 'icons/effects/224x224.dmi'
|
||||
icon_state = "emfield_s7"
|
||||
pixel_x = -96
|
||||
pixel_y = -96
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
return
|
||||
/*
|
||||
var/obj/item/projectile/beam/emitter/A = new /obj/item/projectile/beam/emitter( src.loc )
|
||||
playsound(src.loc, 'emitter.ogg', 25, 1)
|
||||
playsound(src.loc, 'sound/weapons/emitter.ogg', 25, 1)
|
||||
if(prob(35))
|
||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
@@ -119,7 +119,7 @@
|
||||
A.damage = mega_energy * 500
|
||||
//
|
||||
A.icon_state = "emitter"
|
||||
playsound(src.loc, 'emitter.ogg', 25, 1)
|
||||
playsound(src.loc, 'sound/weapons/emitter.ogg', 25, 1)
|
||||
use_power(100 * mega_energy + 500)
|
||||
/*if(prob(35))
|
||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
//gimmicky hack to collect particles and direct them into the field
|
||||
/obj/effect/rust_particle_catcher
|
||||
icon = 'effects.dmi'
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 4
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
/obj/effect/energy_field
|
||||
name = "energy field"
|
||||
desc = "Impenetrable field of energy, capable of blocking anything as long as it's active."
|
||||
icon = 'shielding.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/ShieldGen/shielding.dmi'
|
||||
icon_state = "shieldsparkles"
|
||||
anchored = 1
|
||||
layer = 4.1 //just above mobs
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
/obj/machinery/shield_capacitor
|
||||
name = "shield capacitor"
|
||||
desc = "Machine that charges a shield generator."
|
||||
icon = 'shielding.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/ShieldGen/shielding.dmi'
|
||||
icon_state = "capacitor"
|
||||
var/active = 1
|
||||
density = 1
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
/obj/machinery/shield_gen
|
||||
name = "shield generator"
|
||||
desc = "Machine that generates an impenetrable field of energy when activated."
|
||||
icon = 'shielding.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/ShieldGen/shielding.dmi'
|
||||
icon_state = "generator0"
|
||||
var/active = 0
|
||||
var/field_radius = 3
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
var/state = 1.0
|
||||
//var/obj/beam/e_beam/first
|
||||
var/power = 500
|
||||
icon = 'engine.dmi'
|
||||
icon = 'icons/obj/engine.dmi'
|
||||
icon_state = "laser"
|
||||
anchored = 1
|
||||
var/id
|
||||
@@ -44,7 +44,7 @@
|
||||
/*
|
||||
/obj/beam/e_beam
|
||||
name = "Laser beam"
|
||||
icon = 'projectiles.dmi'
|
||||
icon = 'icons/obj/projectiles.dmi'
|
||||
icon_state = "u_laser"
|
||||
var/obj/machinery/engine/laser/master = null
|
||||
var/obj/beam/e_beam/next = null
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/obj/machinery/power/supermatter
|
||||
name = "Supermatter"
|
||||
desc = "A strangely translucent and iridescent crystal. \red You get headaches just from looking at it."
|
||||
icon = 'engine.dmi'
|
||||
icon = 'icons/obj/engine.dmi'
|
||||
icon_state = "darkmatter"
|
||||
density = 1
|
||||
anchored = 0
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/obj/machinery/zero_point_emitter
|
||||
name = "Zero-point laser"
|
||||
desc = "A super-powerful laser"
|
||||
icon = 'engine.dmi'
|
||||
icon = 'icons/obj/engine.dmi'
|
||||
icon_state = "laser"
|
||||
anchored = 0
|
||||
density = 1
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
/obj/item/projectile/missile
|
||||
name = "missile"
|
||||
icon = 'meteor_turret.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/meteor_turret.dmi'
|
||||
icon_state = "missile"
|
||||
var/turf/target
|
||||
var/tracking = 0
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
/obj/machinery/meteor_battery
|
||||
name = "meteor battery"
|
||||
icon = 'meteor_turret.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/meteor_turret.dmi'
|
||||
icon_state = "turret0"
|
||||
var/raised = 0
|
||||
var/enabled = 1
|
||||
@@ -217,7 +217,7 @@
|
||||
|
||||
/obj/machinery/meteor_battery/attackby(obj/item/weapon/W, mob/user)//I can't believe no one added this before/N
|
||||
..()
|
||||
playsound(src.loc, 'smash.ogg', 60, 1)
|
||||
playsound(src.loc, 'sound/weapons/smash.ogg', 60, 1)
|
||||
src.spark_system.start()
|
||||
src.health -= W.force * 0.5
|
||||
if (src.health <= 0)
|
||||
@@ -249,7 +249,7 @@
|
||||
|
||||
/obj/machinery/meteor_battery/attack_alien(mob/living/carbon/alien/humanoid/M as mob)
|
||||
if(!(stat & BROKEN))
|
||||
playsound(src.loc, 'slash.ogg', 25, 1, -1)
|
||||
playsound(src.loc, 'sound/weapons/slash.ogg', 25, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(text("\red <B>[] has slashed at []!</B>", M, src), 1)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
name = "\improper sculpture"
|
||||
real_name = "sculpture"
|
||||
desc = "It's some kind of human sized, doll-like sculpture, with weird discolourations on some parts of it. It appears to be quite solid. "
|
||||
icon = 'unknown.dmi'
|
||||
icon = 'code/WorkInProgress/Cael_Aislinn/unknown.dmi'
|
||||
icon_state = "sculpture"
|
||||
icon_living = "sculpture"
|
||||
icon_dead = "sculpture"
|
||||
@@ -30,7 +30,7 @@
|
||||
G.synch()
|
||||
target.LAssailant = src
|
||||
|
||||
playsound(loc, 'thudswoosh.ogg', 50, 1, -1)
|
||||
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
|
||||
visible_message("\red [src] has grabbed [target]!")
|
||||
target << "\red <b>You feel something suddenly grab you around the neck from behind!</b> Everything goes black..."
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/ashtray
|
||||
icon = 'ashtray.dmi'
|
||||
icon = 'icons/ashtray.dmi'
|
||||
var/
|
||||
max_butts = 0
|
||||
empty_desc = ""
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
return
|
||||
if (health > 0)
|
||||
attacked += 10
|
||||
playsound(loc, 'bite.ogg', 50, 1, -1)
|
||||
playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(text("\red <B>[M.name] has bit [src]!</B>"), 1)
|
||||
@@ -71,14 +71,14 @@
|
||||
playsound(loc, "punch", 25, 1, -1)
|
||||
else if(M.type == /mob/living/carbon/human/tajaran)
|
||||
damage += 10
|
||||
playsound(loc, 'slice.ogg', 25, 1, -1)
|
||||
playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1)
|
||||
adjustBruteLoss(damage/10)
|
||||
updatehealth()
|
||||
else
|
||||
if(M.type != /mob/living/carbon/human/tajaran)
|
||||
playsound(loc, 'punchmiss.ogg', 25, 1, -1)
|
||||
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
|
||||
else if(M.type == /mob/living/carbon/human/tajaran)
|
||||
playsound(loc, 'slashmiss.ogg', 25, 1, -1)
|
||||
playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(text("\red <B>[] has attempted to [attack_verb] [name]!</B>", M), 1)
|
||||
@@ -100,14 +100,14 @@
|
||||
|
||||
LAssailant = M
|
||||
|
||||
playsound(loc, 'thudswoosh.ogg', 50, 1, -1)
|
||||
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message(text("\red [] has grabbed [name] passively!", M), 1)
|
||||
|
||||
else
|
||||
if (!( paralysis ))
|
||||
drop_item()
|
||||
playsound(loc, 'thudswoosh.ogg', 50, 1, -1)
|
||||
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(text("\red <B>[] has disarmed [name]!</B>", M), 1)
|
||||
@@ -125,7 +125,7 @@
|
||||
|
||||
if ("hurt")
|
||||
if ((prob(95) && health > 0))
|
||||
playsound(loc, 'slice.ogg', 25, 1, -1)
|
||||
playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1)
|
||||
var/damage = rand(15, 30)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
@@ -134,7 +134,7 @@
|
||||
updatehealth()
|
||||
react_to_attack(M)
|
||||
else
|
||||
playsound(loc, 'slashmiss.ogg', 25, 1, -1)
|
||||
playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(text("\red <B>[] has attempted to lunge at [name]!</B>", M), 1)
|
||||
@@ -155,12 +155,12 @@
|
||||
|
||||
LAssailant = M
|
||||
|
||||
playsound(loc, 'thudswoosh.ogg', 50, 1, -1)
|
||||
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
O.show_message(text("\red [] has grabbed [name] passively!", M), 1)
|
||||
|
||||
if ("disarm")
|
||||
playsound(loc, 'pierce.ogg', 25, 1, -1)
|
||||
playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
|
||||
var/damage = 5
|
||||
if(prob(95))
|
||||
Weaken(rand(10,15))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/hud/proc/amorph_hud(var/ui_style='screen1_old.dmi')
|
||||
/obj/hud/proc/amorph_hud(var/ui_style='icons/mob/screen1_old.dmi')
|
||||
|
||||
src.adding = list( )
|
||||
src.other = list( )
|
||||
@@ -285,7 +285,7 @@
|
||||
|
||||
mymob.zone_sel = new /obj/screen/zone_sel( null )
|
||||
mymob.zone_sel.overlays = null
|
||||
mymob.zone_sel.overlays += image("icon" = 'zone_sel.dmi', "icon_state" = text("[]", mymob.zone_sel.selecting))
|
||||
mymob.zone_sel.overlays += image("icon" = 'icons/mob/zone_sel.dmi', "icon_state" = text("[]", mymob.zone_sel.selecting))
|
||||
|
||||
//Handle the gun settings buttons
|
||||
mymob.gun_setting_icon = new /obj/screen/gun/mode(null)
|
||||
|
||||
@@ -17,7 +17,7 @@ log transactions
|
||||
/obj/machinery/atm
|
||||
name = "NanoTrasen Automatic Teller Machine"
|
||||
desc = "For all your monetary needs!"
|
||||
icon = 'terminals.dmi'
|
||||
icon = 'icons/obj/terminals.dmi'
|
||||
icon_state = "atm"
|
||||
anchored = 1
|
||||
use_power = 1
|
||||
@@ -253,7 +253,7 @@ log transactions
|
||||
if(number_incorrect_tries > max_pin_attempts)
|
||||
//lock down the atm
|
||||
ticks_left_locked_down = 30
|
||||
playsound(src, 'buzz-two.ogg', 50, 1)
|
||||
playsound(src, 'sound/machines/buzz-two.ogg', 50, 1)
|
||||
|
||||
//create an entry in the account transaction log
|
||||
var/datum/money_account/failed_account = linked_db.get_account(tried_account_num)
|
||||
@@ -268,12 +268,12 @@ log transactions
|
||||
else
|
||||
usr << "\red \icon[src] Incorrect pin/account combination entered, [max_pin_attempts - number_incorrect_tries] attempts remaining."
|
||||
previous_account_number = tried_account_num
|
||||
playsound(src, 'buzz-sigh.ogg', 50, 1)
|
||||
playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 1)
|
||||
else
|
||||
usr << "\red \icon[src] incorrect pin/account combination entered."
|
||||
number_incorrect_tries = 0
|
||||
else
|
||||
playsound(src, 'twobeep.ogg', 50, 1)
|
||||
playsound(src, 'sound/machines/twobeep.ogg', 50, 1)
|
||||
ticks_left_timeout = 120
|
||||
view_screen = NO_SCREEN
|
||||
|
||||
@@ -295,7 +295,7 @@ log transactions
|
||||
alert("That is not a valid amount.")
|
||||
else if(authenticated_account && amount > 0)
|
||||
if(amount <= authenticated_account.money)
|
||||
playsound(src, 'chime.ogg', 50, 1)
|
||||
playsound(src, 'sound/machines/chime.ogg', 50, 1)
|
||||
|
||||
//remove the money
|
||||
authenticated_account.money -= amount
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/effect/admin_log_trap
|
||||
name = "Herprpr"
|
||||
desc = "Stepping on this is good."
|
||||
icon = 'screen1.dmi'
|
||||
icon = 'icons/mob/screen1.dmi'
|
||||
icon_state = "x2"
|
||||
anchored = 1.0
|
||||
unacidable = 1
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
/obj/machinery/computer/atmoscontrol
|
||||
name = "\improper Central Atmospherics Computer"
|
||||
icon = 'computer.dmi'
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "computer_generic"
|
||||
density = 1
|
||||
anchored = 1.0
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
//remove this shit when someonething better is done
|
||||
/obj/machinery/atmospherics/unary/heat_reservoir/heater
|
||||
name = "Heat Regulator"
|
||||
icon = 'Cryogenic2.dmi'
|
||||
icon = 'icons/obj/Cryogenic2.dmi'
|
||||
icon_state = "freezer_0"
|
||||
density = 1
|
||||
|
||||
|
||||
@@ -199,7 +199,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid
|
||||
/obj/item/device/uplink/pda
|
||||
name = "uplink module"
|
||||
desc = "An electronic uplink system of unknown origin."
|
||||
icon = 'module.dmi'
|
||||
icon = 'icons/obj/module.dmi'
|
||||
icon_state = "power_mod"
|
||||
var/obj/item/device/pda/hostpda = null
|
||||
|
||||
@@ -312,7 +312,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid
|
||||
|
||||
/obj/item/device/uplink/radio
|
||||
name = "ship bounced radio"
|
||||
icon = 'radio.dmi'
|
||||
icon = 'icons/obj/radio.dmi'
|
||||
icon_state = "radio"
|
||||
var/temp = null //Temporary storage area for a message offering the option to destroy the radio
|
||||
var/selfdestruct = 0 //Set to 1 while the radio is self destructing itself.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
/obj/machinery/copier
|
||||
name = "Copy Machine"
|
||||
icon = 'bureaucracy.dmi'
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
icon_state = "copier_o"
|
||||
density = 1
|
||||
anchored = 1
|
||||
@@ -115,7 +115,7 @@
|
||||
|
||||
// fx
|
||||
flick("copier_s", src)
|
||||
playsound(src, 'polaroid1.ogg', 50, 1)
|
||||
playsound(src, 'sound/items/polaroid1.ogg', 50, 1)
|
||||
|
||||
// dup the file
|
||||
if(istype(template, /obj/item/weapon/paper))
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/structure/filingcabinet
|
||||
name = "Filing Cabinet"
|
||||
desc = "A large cabinet with drawers."
|
||||
icon = 'bureaucracy.dmi'
|
||||
icon = 'icons/obj/bureaucracy.dmi'
|
||||
icon_state = "filingcabinet"
|
||||
density = 1
|
||||
anchored = 1
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
/obj/spawner/bomb
|
||||
name = "bomb"
|
||||
icon = 'screen1.dmi'
|
||||
icon = 'icons/mob/screen1.dmi'
|
||||
icon_state = "x"
|
||||
var/btype = 0 //0 = radio, 1= prox, 2=time
|
||||
var/explosive = 1 // 0= firebomb
|
||||
@@ -30,7 +30,7 @@
|
||||
// Going in depth: the reason we do not do a Del() in its New()is because then we cannot access its properties.
|
||||
// I might be doing this wrong / not knowing of a Byond function. If I'm doing it wrong, let me know please.
|
||||
name = "bomb"
|
||||
icon = 'screen1.dmi'
|
||||
icon = 'icons/mob/screen1.dmi'
|
||||
icon_state = "x"
|
||||
var/btype = 0 // 0=radio, 1=prox, 2=time
|
||||
var/btemp1 = 1500
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//Define all tape types in policetape.dm
|
||||
/obj/item/taperoll
|
||||
name = "tape roll"
|
||||
icon = 'policetape.dmi'
|
||||
icon = 'icons/policetape.dmi'
|
||||
icon_state = "rollstart"
|
||||
flags = FPRINT
|
||||
w_class = 1.0
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
/obj/item/tape
|
||||
name = "tape"
|
||||
icon = 'policetape.dmi'
|
||||
icon = 'icons/policetape.dmi'
|
||||
anchored = 1
|
||||
density = 1
|
||||
var/icon_base
|
||||
|
||||
@@ -352,7 +352,7 @@ area/proc/ul_Light(var/Red = LightLevelRed, var/Green = LightLevelGreen, var/Blu
|
||||
if(ul_CachedOverlay)
|
||||
ul_Overlay = ul_CachedOverlay
|
||||
else
|
||||
ul_IconCache["[LightLevelRed]-[LightLevelGreen]-[LightLevelBlue]"] = image('ULIcons.dmi', , "[LightLevelRed]-[LightLevelGreen]-[LightLevelBlue]", ul_Layer)
|
||||
ul_IconCache["[LightLevelRed]-[LightLevelGreen]-[LightLevelBlue]"] = image('icons/effects/ULIcons.dmi', , "[LightLevelRed]-[LightLevelGreen]-[LightLevelBlue]", ul_Layer)
|
||||
ul_Overlay = ul_IconCache["[LightLevelRed]-[LightLevelGreen]-[LightLevelBlue]"]
|
||||
|
||||
overlays += ul_Overlay
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
name = "\improper NanoTrasen Navy Uniform"
|
||||
icon_state = "officer"
|
||||
item_state = "g_suit"
|
||||
color = "officer"
|
||||
item_color = "officer"
|
||||
displays_id = 0
|
||||
|
||||
/obj/item/clothing/under/rank/centcom/officer
|
||||
@@ -31,7 +31,7 @@
|
||||
name = "\improper NanoTrasen Officers Uniform"
|
||||
icon_state = "officer"
|
||||
item_state = "g_suit"
|
||||
color = "officer"
|
||||
item_color = "officer"
|
||||
displays_id = 0
|
||||
|
||||
/obj/item/clothing/under/rank/centcom/captain
|
||||
@@ -39,5 +39,5 @@
|
||||
name = "\improper NanoTrasen Captains Uniform"
|
||||
icon_state = "centcom"
|
||||
item_state = "dg_suit"
|
||||
color = "centcom"
|
||||
item_color = "centcom"
|
||||
displays_id = 0
|
||||
@@ -2,7 +2,7 @@
|
||||
/obj/item/device/portalathe
|
||||
name = "portable autolathe"
|
||||
desc = "A device which can repair broken lights instantly. Must be advanced."
|
||||
icon = 'janitor.dmi'
|
||||
icon = 'icons/obj/janitor.dmi'
|
||||
icon_state = "portalathe"
|
||||
|
||||
afterattack(var/atom/target, mob/user as mob)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
name = "eraser"
|
||||
desc = "It looks like some kind of eraser."
|
||||
flags = FPRINT | TABLEPASS
|
||||
icon = 'items.dmi'
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "zippo"
|
||||
item_state = "zippo"
|
||||
w_class = 1.0
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/obj/item/wardrobe
|
||||
name = "\improper Wardrobe"
|
||||
desc = "A standard-issue bag for clothing and equipment. Usually comes sealed, stocked with everything you need for a particular job."
|
||||
icon = 'suits.dmi'
|
||||
icon = 'icons/obj/clothing/suits.dmi'
|
||||
icon_state = "wardrobe_sealed"
|
||||
item_state = "wardrobe"
|
||||
w_class = 4
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
turf/unsimulated/desert
|
||||
name = "desert"
|
||||
icon = 'desert.dmi'
|
||||
icon = 'code/WorkInProgress/Susan/desert.dmi'
|
||||
icon_state = "desert"
|
||||
temperature = 393.15
|
||||
luminosity = 5
|
||||
@@ -120,7 +120,7 @@ turf/simulated/wall/impassable_rock
|
||||
/obj/effect/alien/flesh/weeds
|
||||
name = "Fleshy Growth"
|
||||
desc = "A pulsating grouping of odd, alien tissues. It's almost like it has a heartbeat..."
|
||||
icon = 'biocraps.dmi'
|
||||
icon = 'code/WorkInProgress/Susan/biocraps.dmi'
|
||||
icon_state = "flesh"
|
||||
|
||||
anchored = 1
|
||||
@@ -130,7 +130,7 @@ turf/simulated/wall/impassable_rock
|
||||
|
||||
/obj/effect/alien/flesh/weeds/node
|
||||
icon_state = "fleshnode"
|
||||
icon = 'biocraps.dmi'
|
||||
icon = 'code/WorkInProgress/Susan/biocraps.dmi'
|
||||
name = "Throbbing Pustule"
|
||||
desc = "A grotquese, oozing, pimple-like growth. You swear you can see something moving around in the bulb..."
|
||||
luminosity = NODERANGE
|
||||
@@ -250,7 +250,7 @@ Alien plants should do something if theres a lot of poison
|
||||
name = "warden's jumpsuit"
|
||||
icon_state = "wardendnavyclothes"
|
||||
item_state = "wardendnavyclothes"
|
||||
color = "wardendnavyclothes"
|
||||
item_color = "wardendnavyclothes"
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
flags = FPRINT | TABLEPASS
|
||||
|
||||
@@ -259,7 +259,7 @@ Alien plants should do something if theres a lot of poison
|
||||
desc = "It's made of a slightly sturdier material than standard jumpsuits, to allow for robust protection."
|
||||
icon_state = "officerdnavyclothes"
|
||||
item_state = "officerdnavyclothes"
|
||||
color = "officerdnavyclothes"
|
||||
item_color = "officerdnavyclothes"
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
flags = FPRINT | TABLEPASS
|
||||
|
||||
@@ -268,7 +268,7 @@ Alien plants should do something if theres a lot of poison
|
||||
name = "head of security's jumpsuit"
|
||||
icon_state = "hosdnavyclothes"
|
||||
item_state = "hosdnavyclothes"
|
||||
color = "hosdnavyclothes"
|
||||
item_color = "hosdnavyclothes"
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
flags = FPRINT | TABLEPASS
|
||||
|
||||
@@ -316,7 +316,7 @@ Alien plants should do something if theres a lot of poison
|
||||
//hostile entities or npcs
|
||||
|
||||
/obj/item/projectile/slimeglob
|
||||
icon = 'projectiles.dmi'
|
||||
icon = 'icons/obj/projectiles.dmi'
|
||||
icon_state = "toxin"
|
||||
damage = 20
|
||||
damage_type = BRUTE
|
||||
@@ -461,7 +461,7 @@ Alien plants should do something if theres a lot of poison
|
||||
|
||||
obj/effect/critter/fleshmonster/fleshslime
|
||||
name = "Flesh Slime"
|
||||
icon = 'biocraps.dmi'
|
||||
icon = 'code/WorkInProgress/Susan/biocraps.dmi'
|
||||
icon_state = "livingflesh"
|
||||
desc = "A creature that appears to be made out of living tissue strewn together haphazardly. Some kind of liquid bubbles from its maw."
|
||||
//ranged = 1
|
||||
@@ -391,12 +391,12 @@
|
||||
ai.show_message("<i>Intercepted message from <b>[who]</b>: [object]</i>")
|
||||
|
||||
if (!pda.silent)
|
||||
playsound(pda.loc, 'twobeep.ogg', 50, 1)
|
||||
playsound(pda.loc, 'sound/machines/twobeep.ogg', 50, 1)
|
||||
for (var/mob/O in hearers(3, pda.loc))
|
||||
O.show_message(text("\icon[pda] *[pda.ttone]*"))
|
||||
|
||||
pda.overlays = null
|
||||
pda.overlays += image('pda.dmi', "pda-r")
|
||||
pda.overlays += image('icons/obj/pda.dmi', "pda-r")
|
||||
else
|
||||
var/list/href_list = list()
|
||||
href_list["src"] = "\ref[eliza.speaker.loc.loc]"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Base Class
|
||||
/mob/living/simple_animal/livestock
|
||||
desc = "Tasty!"
|
||||
icon = 'livestock.dmi'
|
||||
icon = 'icons/mob/livestock.dmi'
|
||||
emote_see = list("shakes its head", "kicks the ground")
|
||||
speak_chance = 1
|
||||
turns_per_move = 15
|
||||
@@ -165,7 +165,7 @@
|
||||
/obj/structure/closet/critter
|
||||
desc = "\improper Critter crate."
|
||||
name = "Critter Crate"
|
||||
icon = 'storage.dmi'
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "critter"
|
||||
density = 1
|
||||
icon_opened = "critteropen"
|
||||
|
||||
@@ -33,7 +33,7 @@ obj/machinery/atmospherics/pipe/mains_component
|
||||
parent_pipe.burst()
|
||||
|
||||
obj/machinery/atmospherics/mains_pipe
|
||||
icon = 'mainspipe.dmi'
|
||||
icon = 'icons/obj/atmospherics/mainspipe.dmi'
|
||||
layer = 2.4 //under wires with their 2.5
|
||||
|
||||
var/volume = 0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// a frame for generic wall-mounted things, such as fire alarm, status display..
|
||||
// combination of apc_frame and machine_frame
|
||||
/obj/machinery/constructable_frame/wallmount_frame
|
||||
icon = 'stock_parts.dmi'
|
||||
icon = 'icons/obj/stock_parts.dmi'
|
||||
icon_state = "wm_0"
|
||||
var/wall_offset = 24
|
||||
density = 0
|
||||
@@ -35,7 +35,7 @@
|
||||
if(1)
|
||||
if(istype(P, /obj/item/weapon/cable_coil))
|
||||
if(P:amount >= 5)
|
||||
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
user << "\blue You start to add cables to the frame."
|
||||
if(do_after(user, 20))
|
||||
P:amount -= 5
|
||||
@@ -44,7 +44,7 @@
|
||||
state = 2
|
||||
icon_state = "wm_1"
|
||||
if(istype(P, /obj/item/weapon/wrench))
|
||||
playsound(src.loc, 'Ratchet.ogg', 75, 1)
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
|
||||
user << "\blue You dismantle the frame"
|
||||
new /obj/item/stack/sheet/metal(src.loc, 2)
|
||||
del(src)
|
||||
@@ -52,7 +52,7 @@
|
||||
if(istype(P, /obj/item/weapon/circuitboard))
|
||||
var/obj/item/weapon/circuitboard/B = P
|
||||
if(B.board_type == "wallmount")
|
||||
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
user << "\blue You add the circuit board to the frame."
|
||||
circuit = P
|
||||
user.drop_item()
|
||||
@@ -76,7 +76,7 @@
|
||||
else
|
||||
user << "\red This frame does not accept circuit boards of this type!"
|
||||
if(istype(P, /obj/item/weapon/wirecutters))
|
||||
playsound(src.loc, 'wirecutter.ogg', 50, 1)
|
||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
user << "\blue You remove the cables."
|
||||
state = 1
|
||||
icon_state = "wm_0"
|
||||
@@ -85,7 +85,7 @@
|
||||
|
||||
if(3)
|
||||
if(istype(P, /obj/item/weapon/crowbar))
|
||||
playsound(src.loc, 'Crowbar.ogg', 50, 1)
|
||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
||||
state = 2
|
||||
circuit.loc = src.loc
|
||||
circuit = null
|
||||
@@ -107,7 +107,7 @@
|
||||
component_check = 0
|
||||
break
|
||||
if(component_check)
|
||||
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
var/obj/machinery/new_machine = new src.circuit.build_path(src.loc)
|
||||
new_machine.dir = dir
|
||||
if(istype(circuit, /obj/item/weapon/circuitboard/status_display))
|
||||
@@ -135,7 +135,7 @@
|
||||
if(istype(P, /obj/item/weapon))
|
||||
for(var/I in req_components)
|
||||
if(istype(P, text2path(I)) && (req_components[I] > 0))
|
||||
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
if(istype(P, /obj/item/weapon/cable_coil))
|
||||
var/obj/item/weapon/cable_coil/CP = P
|
||||
if(CP.amount > 1)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "Welding kit"
|
||||
desc = "A heavy-duty, portable welding fluid carrier."
|
||||
slot_flags = SLOT_BACK
|
||||
icon = 'storage.dmi'
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "welderpack"
|
||||
w_class = 4.0
|
||||
var/max_fuel = 350
|
||||
@@ -29,7 +29,7 @@
|
||||
user << "\red That was close!"
|
||||
src.reagents.trans_to(W, T.max_fuel)
|
||||
user << "\blue Welder refilled!"
|
||||
playsound(src.loc, 'refill.ogg', 50, 1, -6)
|
||||
playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6)
|
||||
return
|
||||
user << "\blue The tank scoffs at your insolence. It only provides services to welders."
|
||||
return
|
||||
@@ -38,7 +38,7 @@
|
||||
if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume < max_fuel)
|
||||
O.reagents.trans_to(src, max_fuel)
|
||||
user << "\blue You crack the cap off the top of the pack and fill it back up again from the tank."
|
||||
playsound(src.loc, 'refill.ogg', 50, 1, -6)
|
||||
playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6)
|
||||
return
|
||||
else if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume == max_fuel)
|
||||
user << "\blue The pack is already full!"
|
||||
|
||||
@@ -12,7 +12,7 @@ log transactions
|
||||
/obj/machinery/atm
|
||||
name = "\improper NanoTrasen Automatic Teller Machine"
|
||||
desc = "For all your monetary needs!"
|
||||
icon = 'terminals.dmi'
|
||||
icon = 'icons/obj/terminals.dmi'
|
||||
icon_state = "atm"
|
||||
anchored = 1
|
||||
use_power = 1
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
chemtraces += V
|
||||
|
||||
/obj/item/weapon/autopsy_scanner/verb/print_data()
|
||||
set category = "Object"
|
||||
set src in view(usr, 1)
|
||||
set name = "Print Data"
|
||||
if(usr.stat || !(istype(usr,/mob/living/carbon/human)))
|
||||
|
||||
@@ -0,0 +1,148 @@
|
||||
/obj/machinery/faxmachine
|
||||
name = "fax machine"
|
||||
icon = 'icons/obj/library.dmi'
|
||||
icon_state = "bigscanner"
|
||||
req_access = list(access_lawyer)
|
||||
anchored = 1
|
||||
density = 1
|
||||
use_power = 1
|
||||
idle_power_usage = 30
|
||||
active_power_usage = 200
|
||||
power_channel = EQUIP
|
||||
var/obj/item/weapon/card/id/scan = null // identification
|
||||
var/authenticated = 0
|
||||
var/obj/item/weapon/paper/tofax = null // what we're sending to central
|
||||
var/sendcooldown = 0 // to avoid spamming fax messages
|
||||
|
||||
attack_ai(mob/user as mob)
|
||||
return attack_hand(user)
|
||||
|
||||
attack_paw(mob/user as mob)
|
||||
return attack_hand(user)
|
||||
|
||||
attack_hand(mob/user as mob)
|
||||
user.set_machine(src)
|
||||
|
||||
var/dat = "Central Command Fax Machine<BR>"
|
||||
|
||||
var/scan_name
|
||||
if(scan)
|
||||
scan_name = scan.name
|
||||
else
|
||||
scan_name = "--------"
|
||||
|
||||
dat += "Confirm Identity: <a href='byond://?src=\ref[src];scan=1'>[scan_name]</a><br>"
|
||||
|
||||
if(authenticated)
|
||||
dat += "<a href='byond://?src=\ref[src];logout=1'>{Log Out}</a>"
|
||||
else
|
||||
dat += "<a href='byond://?src=\ref[src];auth=1'>{Log In}</a>"
|
||||
|
||||
dat += "<hr>"
|
||||
|
||||
if(authenticated)
|
||||
dat += "<b>Logged in to:</b> Central Command Quantum Entanglement Network<br><br>"
|
||||
|
||||
if(tofax)
|
||||
dat += "<a href='byond://?src=\ref[src];remove=1'>Remove Paper</a><br><br>"
|
||||
|
||||
if(sendcooldown)
|
||||
dat += "<b>Transmitter arrays realigning. Please stand by.</b><br>"
|
||||
|
||||
else
|
||||
dat += "<a href='byond://?src=\ref[src];send=1'>Send</a><br>"
|
||||
dat += "<b>Currently sending:</b> [tofax.name]"
|
||||
|
||||
else
|
||||
if(sendcooldown)
|
||||
dat += "Please insert paper to send to Central Command via secure connection.<br><br>"
|
||||
dat += "<b>Transmitter arrays realigning. Please stand by.</b><br>"
|
||||
else
|
||||
dat += "Please insert paper to send to Central Command via secure connection.<br><br>"
|
||||
|
||||
else
|
||||
dat += "Proper authentication is required to use this device.<br><br>"
|
||||
|
||||
if(tofax)
|
||||
dat += "<a href ='byond://?src=\ref[src];remove=1'>Remove Paper</a><br>"
|
||||
|
||||
user << browse(dat, "window=copier")
|
||||
onclose(user, "copier")
|
||||
return
|
||||
|
||||
Topic(href, href_list)
|
||||
|
||||
if(href_list["send"])
|
||||
if(tofax)
|
||||
Centcomm_fax(tofax.info, tofax.name, usr)
|
||||
usr << "Message transmitted."
|
||||
sendcooldown = 1
|
||||
spawn(3000) // three minute cooldown. might mess with this number a bit as time goes on
|
||||
sendcooldown = 0
|
||||
|
||||
if(href_list["remove"])
|
||||
if(tofax)
|
||||
tofax.loc = usr.loc
|
||||
usr.put_in_hands(tofax)
|
||||
usr << "<span class='notice'>You take the paper out of \the [src].</span>"
|
||||
tofax = null
|
||||
|
||||
if(href_list["scan"])
|
||||
if (scan)
|
||||
if(ishuman(usr))
|
||||
scan.loc = usr.loc
|
||||
if(!usr.get_active_hand())
|
||||
usr.put_in_hands(scan)
|
||||
scan = null
|
||||
else
|
||||
scan.loc = src.loc
|
||||
scan = null
|
||||
else
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
if (istype(I, /obj/item/weapon/card/id))
|
||||
usr.drop_item()
|
||||
I.loc = src
|
||||
scan = I
|
||||
authenticated = 0
|
||||
|
||||
if(href_list["auth"])
|
||||
if ( (!( authenticated ) && (scan)) )
|
||||
if (check_access(scan))
|
||||
authenticated = 1
|
||||
|
||||
if(href_list["logout"])
|
||||
authenticated = 0
|
||||
|
||||
updateUsrDialog()
|
||||
|
||||
attackby(obj/item/O as obj, mob/user as mob)
|
||||
|
||||
if(istype(O, /obj/item/weapon/paper))
|
||||
if(!tofax)
|
||||
user.drop_item()
|
||||
tofax = O
|
||||
O.loc = src
|
||||
user << "<span class='notice'>You insert the paper into \the [src].</span>"
|
||||
flick("bigscanner1", src)
|
||||
updateUsrDialog()
|
||||
else
|
||||
user << "<span class='notice'>There is already something in \the [src].</span>"
|
||||
|
||||
else if(istype(O, /obj/item/weapon/card/id))
|
||||
var/obj/item/weapon/card/id/idcard = O
|
||||
|
||||
if(!scan)
|
||||
usr.drop_item()
|
||||
idcard.loc = src
|
||||
scan = idcard
|
||||
|
||||
else if(istype(O, /obj/item/weapon/wrench))
|
||||
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
anchored = !anchored
|
||||
user << "<span class='notice'>You [anchored ? "wrench" : "unwrench"] \the [src].</span>"
|
||||
return
|
||||
|
||||
/proc/Centcomm_fax(var/sent, var/sentname, var/mob/Sender)
|
||||
|
||||
var/msg = "\blue <b><font color='orange'>CENTCOMM FAX: </font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservejump=\ref[Sender]'>JMP</A>) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<a href='?_src_=holder;CentcommFaxReply=\ref[Sender]'>RPLY</a>)</b>: Receiving '[sentname]' via secure connection ... <a href='?_src_=holder;CentcommFaxView=\ref[sent]'>view message</a>"
|
||||
admins << msg
|
||||
@@ -78,7 +78,7 @@
|
||||
|
||||
/obj/effect/meteor
|
||||
name = "meteor"
|
||||
icon = 'meteor.dmi'
|
||||
icon = 'icons/obj/meteor.dmi'
|
||||
icon_state = "flaming"
|
||||
density = 1
|
||||
anchored = 1.0
|
||||
@@ -105,7 +105,7 @@
|
||||
shake_camera(M, 3, 1)
|
||||
if (A)
|
||||
A.meteorhit(src)
|
||||
playsound(get_turf(src), 'meteorimpact.ogg', 40, 1)
|
||||
playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 40, 1)
|
||||
if (--src.hits <= 0)
|
||||
if(prob(15))// && !istype(A, /obj/structure/grille))
|
||||
explosion(get_turf(src), 4, 5, 6, 7, 0)
|
||||
@@ -138,7 +138,7 @@
|
||||
A.meteorhit(src)
|
||||
src.hits--
|
||||
return
|
||||
playsound(get_turf(src), 'meteorimpact.ogg', 40, 1)
|
||||
playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 40, 1)
|
||||
if (--src.hits <= 0)
|
||||
if(prob(15) && !istype(A, /obj/structure/grille))
|
||||
explosion(get_turf(src), 1, 2, 3, 4, 0)
|
||||
|
||||
@@ -104,8 +104,7 @@ Indirect connections will not merge the two zones after they reach equilibrium.
|
||||
|
||||
//Disconnect zones while handling unusual conditions.
|
||||
// e.g. loss of a zone on a turf
|
||||
if(A && A.zone && B && B.zone)
|
||||
DisconnectZones(A.zone, B.zone)
|
||||
DisconnectZones(zone_A, zone_B)
|
||||
|
||||
//Finally, preform actual deletion.
|
||||
. = ..()
|
||||
@@ -400,4 +399,4 @@ Indirect connections will not merge the two zones after they reach equilibrium.
|
||||
|
||||
#undef CONNECTION_DIRECT
|
||||
#undef CONNECTION_INDIRECT
|
||||
#undef CONNECTION_CLOSED
|
||||
#undef CONNECTION_CLOSED
|
||||
|
||||
+4
-4
@@ -69,10 +69,10 @@ zone/proc/DebugDisplay(client/client)
|
||||
var/list/current_zone_images = list()
|
||||
|
||||
for(var/turf/T in contents)
|
||||
current_zone_images += image('debug_group.dmi', T, null, TURF_LAYER)
|
||||
current_zone_images += image('icons/misc/debug_group.dmi', T, null, TURF_LAYER)
|
||||
|
||||
for(var/turf/space/S in unsimulated_tiles)
|
||||
current_zone_images += image('debug_space.dmi', S, null, TURF_LAYER)
|
||||
current_zone_images += image('icons/misc/debug_space.dmi', S, null, TURF_LAYER)
|
||||
|
||||
client << "<u>Zone Air Contents</u>"
|
||||
client << "Oxygen: [air.oxygen]"
|
||||
@@ -89,8 +89,8 @@ zone/proc/DebugDisplay(client/client)
|
||||
|
||||
for(var/connection/C in connections)
|
||||
client << "\ref[C] [C.A] --> [C.B] [(C.indirect?"Open":"Closed")]"
|
||||
current_zone_images += image('debug_connect.dmi', C.A, null, TURF_LAYER)
|
||||
current_zone_images += image('debug_connect.dmi', C.B, null, TURF_LAYER)
|
||||
current_zone_images += image('icons/misc/debug_connect.dmi', C.A, null, TURF_LAYER)
|
||||
current_zone_images += image('icons/misc/debug_connect.dmi', C.B, null, TURF_LAYER)
|
||||
|
||||
client << "Connected Zones:"
|
||||
for(var/zone/zone in connected_zones)
|
||||
|
||||
+4
-14
@@ -51,7 +51,7 @@ turf/simulated/hotspot_expose(exposed_temperature, exposed_volume, soh)
|
||||
|
||||
//luminosity = 3
|
||||
|
||||
icon = 'fire.dmi'
|
||||
icon = 'icons/effects/fire.dmi'
|
||||
icon_state = "1"
|
||||
|
||||
layer = TURF_LAYER
|
||||
@@ -73,17 +73,7 @@ turf/simulated/hotspot_expose(exposed_temperature, exposed_volume, soh)
|
||||
//get liquid fuels on the ground.
|
||||
var/obj/effect/decal/cleanable/liquid_fuel/liquid = locate() in S
|
||||
//and the volatile stuff from the air
|
||||
var/datum/gas/volatile_fuel/fuel = locate() in air_contents.trace_gases
|
||||
|
||||
//since the air is processed in fractions, we need to make sure not to have any minuscle residue or
|
||||
//the amount of moles might get to low for some functions to catch them and thus result in wonky behaviour
|
||||
if(air_contents.oxygen < 0.001)
|
||||
air_contents.oxygen = 0
|
||||
if(air_contents.toxins < 0.001)
|
||||
air_contents.toxins = 0
|
||||
if(fuel)
|
||||
if(fuel.moles < 0.001)
|
||||
air_contents.trace_gases.Remove(fuel)
|
||||
//var/datum/gas/volatile_fuel/fuel = locate() in air_contents.trace_gases
|
||||
|
||||
//check if there is something to combust
|
||||
if(!air_contents.check_combustability(liquid))
|
||||
@@ -243,7 +233,7 @@ datum/gas_mixture/proc/check_combustability(obj/effect/decal/cleanable/liquid_fu
|
||||
var/datum/gas/volatile_fuel/fuel = locate() in trace_gases
|
||||
var/value = 0
|
||||
|
||||
if(oxygen && (toxins || fuel || liquid))
|
||||
if(oxygen > 0.01 && (toxins > 0.01 || (fuel && fuel.moles > 0.01) || liquid))
|
||||
value = 1
|
||||
|
||||
return value
|
||||
@@ -272,7 +262,7 @@ datum/gas_mixture/proc/calculate_firelevel(obj/effect/decal/cleanable/liquid_fue
|
||||
//slows down the burning when the concentration of the reactants is low
|
||||
var/dampening_multiplier = total_combustables / (total_combustables + nitrogen + carbon_dioxide)
|
||||
//calculates how close the mixture of the reactants is to the optimum
|
||||
var/mix_multiplier = 1 / (1 + (5 * ((oxygen / total_combustables) ^2)))
|
||||
var/mix_multiplier = 1 / (1 + (5 * ((oxygen / total_combustables) ** 2)))
|
||||
//toss everything together
|
||||
firelevel = vsc.fire_firelevel_multiplier * mix_multiplier * dampening_multiplier
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ var/global/vs_control/vsc = new
|
||||
var/airflow_mob_slowdown_NAME = "Airflow Slowdown"
|
||||
var/airflow_mob_slowdown_DESC = "Time in tenths of a second to add as a delay to each movement by a mob if they are fighting the pull of the airflow."
|
||||
|
||||
var/connection_insulation = 0.4
|
||||
var/connection_insulation = 1
|
||||
var/connection_insulation_NAME = "Connections - Insulation"
|
||||
var/connection_insulation_DESC = "How insulative a connection is, in terms of heat transfer. 1 is perfectly insulative, and 0 is perfectly conductive."
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
var/siding_icon_state = return_siding_icon_state()
|
||||
if(siding_icon_state)
|
||||
overlays += image('floors.dmi',siding_icon_state)
|
||||
overlays += image('icons/turf/floors.dmi',siding_icon_state)
|
||||
var/datum/gas_mixture/model = return_air()
|
||||
switch(model.graphic)
|
||||
if(1)
|
||||
|
||||
@@ -407,9 +407,6 @@ proc/ShareSpace(datum/gas_mixture/A, list/unsimulated_tiles, dbg_output)
|
||||
if(sharing_lookup_table.len >= unsimulated_tiles.len) //6 or more interconnecting tiles will max at 42% of air moved per tick.
|
||||
ratio = sharing_lookup_table[unsimulated_tiles.len]
|
||||
|
||||
//We need to adjust it to account for the insulation settings.
|
||||
ratio *= 1 - vsc.connection_insulation
|
||||
|
||||
A.oxygen = max(0, (A.oxygen - oxy_avg) * (1 - ratio) + oxy_avg )
|
||||
A.nitrogen = max(0, (A.nitrogen - nit_avg) * (1 - ratio) + nit_avg )
|
||||
A.carbon_dioxide = max(0, (A.carbon_dioxide - co2_avg) * (1 - ratio) + co2_avg )
|
||||
@@ -444,6 +441,9 @@ proc/ShareHeat(datum/gas_mixture/A, datum/gas_mixture/B, connecting_tiles)
|
||||
ratio = sharing_lookup_table[connecting_tiles]
|
||||
//WOOT WOOT TOUCH THIS AND YOU ARE A RETARD
|
||||
|
||||
//We need to adjust it to account for the insulation settings.
|
||||
ratio *= 1 - vsc.connection_insulation
|
||||
|
||||
A.temperature = max(0, (A.temperature - temp_avg) * (1- (ratio / max(1,A.group_multiplier)) ) + temp_avg )
|
||||
B.temperature = max(0, (B.temperature - temp_avg) * (1- (ratio / max(1,B.group_multiplier)) ) + temp_avg )
|
||||
|
||||
|
||||
@@ -366,4 +366,4 @@ var/list/DummyCache = list()
|
||||
if(delay)
|
||||
spawn(delay)
|
||||
for(var/client/C in group)
|
||||
C.screen -= O
|
||||
C.screen -= O
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
|
||||
/proc/log_attack(text)
|
||||
if (config.log_attack)
|
||||
diaryofmeanpeople << "\[[time_stamp()]]ATTACK: [text]"
|
||||
diary << "\[[time_stamp()]]ATTACK: [text]" //Seperate attack logs? Why?
|
||||
|
||||
/proc/log_adminsay(text)
|
||||
if (config.log_adminchat)
|
||||
|
||||
+35
-8
@@ -1,14 +1,41 @@
|
||||
proc/random_hair_style(gender, species = "Human")
|
||||
switch(gender)
|
||||
if(MALE) return pick(hair_styles_male_list)
|
||||
if(FEMALE) return pick(hair_styles_female_list)
|
||||
else return pick(hair_styles_list)
|
||||
var/h_style = "Bald"
|
||||
|
||||
var/list/valid_hairstyles = list()
|
||||
for(var/hairstyle in hair_styles_list)
|
||||
var/datum/sprite_accessory/S = hair_styles_list[hairstyle]
|
||||
if(gender == MALE && S.gender == FEMALE)
|
||||
continue
|
||||
if(gender == FEMALE && S.gender == MALE)
|
||||
continue
|
||||
if( !(species in S.species_allowed))
|
||||
continue
|
||||
valid_hairstyles[hairstyle] = hair_styles_list[hairstyle]
|
||||
|
||||
if(valid_hairstyles.len)
|
||||
h_style = pick(valid_hairstyles)
|
||||
|
||||
return h_style
|
||||
|
||||
proc/random_facial_hair_style(gender, species = "Human")
|
||||
switch(gender)
|
||||
if(MALE) return pick(facial_hair_styles_male_list)
|
||||
if(FEMALE) return pick(facial_hair_styles_female_list)
|
||||
else return pick(facial_hair_styles_list)
|
||||
var/f_style = "Shaved"
|
||||
|
||||
var/list/valid_facialhairstyles = list()
|
||||
for(var/facialhairstyle in facial_hair_styles_list)
|
||||
var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle]
|
||||
if(gender == MALE && S.gender == FEMALE)
|
||||
continue
|
||||
if(gender == FEMALE && S.gender == MALE)
|
||||
continue
|
||||
if( !(species in S.species_allowed))
|
||||
continue
|
||||
|
||||
valid_facialhairstyles[facialhairstyle] = facial_hair_styles_list[facialhairstyle]
|
||||
|
||||
if(valid_facialhairstyles.len)
|
||||
f_style = pick(valid_facialhairstyles)
|
||||
|
||||
return f_style
|
||||
|
||||
proc/random_name(gender, species = "Human")
|
||||
if(gender==FEMALE) return capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names))
|
||||
|
||||
@@ -350,20 +350,11 @@ Turf and target are seperate in case you want to teleport some distance from a t
|
||||
//When an AI is activated, it can choose from a list of non-slaved borgs to have as a slave.
|
||||
/proc/freeborg()
|
||||
var/select = null
|
||||
var/list/names = list()
|
||||
var/list/borgs = list()
|
||||
var/list/namecounts = list()
|
||||
for (var/mob/living/silicon/robot/A in player_list)
|
||||
var/name = A.real_name
|
||||
if (A.stat == 2)
|
||||
if (A.stat == 2 || A.connected_ai || A.scrambledcodes)
|
||||
continue
|
||||
if (A.connected_ai)
|
||||
continue
|
||||
else
|
||||
if(A.module)
|
||||
name += " ([A.module.name])"
|
||||
names.Add(name)
|
||||
namecounts[name] = 1
|
||||
var/name = "[A.real_name] ([A.modtype] [A.braintype])"
|
||||
borgs[name] = A
|
||||
|
||||
if (borgs.len)
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
var/allow_admin_rev = 1 // allows admin revives
|
||||
var/vote_delay = 6000 // minimum time between voting sessions (deciseconds, 10 minute default)
|
||||
var/vote_period = 600 // length of voting period (deciseconds, default 1 minute)
|
||||
var/vote_autotransfer_initial = 108000 // Length of time before the first autotransfer vote is called
|
||||
var/vote_autotransfer_interval = 3600 // length of time before next sequential autotransfer vote
|
||||
var/vote_no_default = 0 // vote does not default to nochange/norestart (tbi)
|
||||
var/vote_no_dead = 0 // dead people can't vote (tbi)
|
||||
// var/enable_authentication = 0 // goon authentication
|
||||
@@ -265,6 +267,12 @@
|
||||
if ("vote_period")
|
||||
config.vote_period = text2num(value)
|
||||
|
||||
if ("vote_autotransfer_initial")
|
||||
config.vote_autotransfer_initial = text2num(value)
|
||||
|
||||
if ("vote_autotransfer_interval")
|
||||
config.vote_autotransfer_interval = text2num(value)
|
||||
|
||||
if ("allow_ai")
|
||||
config.allow_ai = 1
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ datum/controller/game_controller
|
||||
var/objects_cost = 0
|
||||
var/networks_cost = 0
|
||||
var/powernets_cost = 0
|
||||
var/nano_cost = 0
|
||||
var/events_cost = 0
|
||||
var/ticker_cost = 0
|
||||
var/total_cost = 0
|
||||
@@ -125,11 +126,6 @@ datum/controller/game_controller/proc/process()
|
||||
if(!air_processing_killed)
|
||||
timer = world.timeofday
|
||||
last_thing_processed = air_master.type
|
||||
air_master.tick()
|
||||
air_cost = (world.timeofday - timer) / 10 // this might make atmos slower
|
||||
// 1. atmos won't process if the game is generally lagged out(no deadlocks)
|
||||
// 2. if the server frequently crashes during atmos processing we will knowif(!kill_air)
|
||||
//src.set_debug_state("Air Master")
|
||||
|
||||
air_master.current_cycle++
|
||||
if(!air_master.tick()) //Runtimed.
|
||||
@@ -196,6 +192,13 @@ datum/controller/game_controller/proc/process()
|
||||
|
||||
sleep(breather_ticks)
|
||||
|
||||
//NANO UIS
|
||||
timer = world.timeofday
|
||||
process_nano()
|
||||
nano_cost = (world.timeofday - timer) / 10
|
||||
|
||||
sleep(breather_ticks)
|
||||
|
||||
//EVENTS
|
||||
timer = world.timeofday
|
||||
process_events()
|
||||
@@ -208,7 +211,7 @@ datum/controller/game_controller/proc/process()
|
||||
ticker_cost = (world.timeofday - timer) / 10
|
||||
|
||||
//TIMING
|
||||
total_cost = air_cost + sun_cost + mobs_cost + diseases_cost + machines_cost + objects_cost + networks_cost + powernets_cost + events_cost + ticker_cost
|
||||
total_cost = air_cost + sun_cost + mobs_cost + diseases_cost + machines_cost + objects_cost + networks_cost + powernets_cost + nano_cost + events_cost + ticker_cost
|
||||
|
||||
var/end_time = world.timeofday
|
||||
if(end_time < start_time)
|
||||
@@ -286,6 +289,16 @@ datum/controller/game_controller/proc/process_powernets()
|
||||
continue
|
||||
powernets.Cut(i,i+1)
|
||||
|
||||
datum/controller/game_controller/proc/process_nano()
|
||||
var/i = 1
|
||||
while(i<=nanomanager.processing_uis.len)
|
||||
var/datum/nanoui/ui = nanomanager.processing_uis[i]
|
||||
if(ui && ui.src_object && ui.user)
|
||||
ui.process()
|
||||
i++
|
||||
continue
|
||||
nanomanager.processing_uis.Cut(i,i+1)
|
||||
|
||||
datum/controller/game_controller/proc/process_events()
|
||||
last_thing_processed = /datum/event
|
||||
var/i = 1
|
||||
|
||||
+23
-10
@@ -46,6 +46,10 @@ datum/controller/vote
|
||||
|
||||
voting.Cut()
|
||||
|
||||
proc/autotransfer()
|
||||
initiate_vote("crew_transfer","the server")
|
||||
|
||||
|
||||
proc/reset()
|
||||
initiator = null
|
||||
time_remaining = 0
|
||||
@@ -56,13 +60,13 @@ datum/controller/vote
|
||||
voting.Cut()
|
||||
current_votes.Cut()
|
||||
|
||||
if(auto_muted && !ooc_allowed)
|
||||
/* if(auto_muted && !ooc_allowed)
|
||||
auto_muted = 0
|
||||
ooc_allowed = !( ooc_allowed )
|
||||
world << "<b>The OOC channel has been automatically enabled due to vote end.</b>"
|
||||
log_admin("OOC was toggled automatically due to vote end.")
|
||||
message_admins("OOC has been toggled on automatically.")
|
||||
|
||||
*/
|
||||
|
||||
proc/get_result()
|
||||
//get the highest number of votes
|
||||
@@ -117,16 +121,23 @@ datum/controller/vote
|
||||
var/text
|
||||
if(winners.len > 0)
|
||||
if(winners.len > 1)
|
||||
text = "<b>Vote Tied Between:</b>\n"
|
||||
for(var/option in winners)
|
||||
text += "\t[option]\n"
|
||||
if(mode != "gamemode" || ticker.hide_mode == 0) // Here we are making sure we don't announce potential game modes
|
||||
text = "<b>Vote Tied Between:</b>\n"
|
||||
for(var/option in winners)
|
||||
text += "\t[option]\n"
|
||||
. = pick(winners)
|
||||
|
||||
for(var/key in current_votes)
|
||||
if(choices[current_votes[key]] == .)
|
||||
round_voters += key // Keep track of who voted for the winning round.
|
||||
if((mode == "gamemode" && . == "extended") || ticker.hide_mode == 0) // Announce Extended gamemode, but not other gamemodes
|
||||
text += "<b>Vote Result: [.]</b>"
|
||||
else
|
||||
if(mode != "gamemode")
|
||||
text += "<b>Vote Result: [.]</b>"
|
||||
else
|
||||
text += "<b>The vote has ended.</b>" // What will be shown if it is a gamemode vote that isn't extended
|
||||
|
||||
text += "<b>Vote Result: [.]</b>"
|
||||
else
|
||||
text += "<b>Vote Result: Inconclusive - No Votes!</b>"
|
||||
log_vote(text)
|
||||
@@ -195,6 +206,8 @@ datum/controller/vote
|
||||
return 0
|
||||
choices.Add(config.votable_modes)
|
||||
if("crew_transfer")
|
||||
if (get_security_level() == "red" || get_security_level() == "delta")
|
||||
return 0
|
||||
if(ticker.current_state <= 2)
|
||||
return 0
|
||||
question = "End the shift?"
|
||||
@@ -223,7 +236,7 @@ datum/controller/vote
|
||||
world << sound('sound/ambience/alarm4.ogg')
|
||||
if("custom")
|
||||
world << sound('sound/ambience/alarm4.ogg')
|
||||
if(mode == "gamemode" && going)
|
||||
/* if(mode == "gamemode" && going)
|
||||
going = 0
|
||||
world << "<font color='red'><b>Round start has been delayed.</b></font>"
|
||||
if(mode == "crew_transfer" && ooc_allowed)
|
||||
@@ -244,7 +257,7 @@ datum/controller/vote
|
||||
world << "<b>The OOC channel has been automatically disabled due to a custom vote.</b>"
|
||||
log_admin("OOC was toggled automatically due to custom vote.")
|
||||
message_admins("OOC has been toggled off automatically.")
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
@@ -271,9 +284,9 @@ datum/controller/vote
|
||||
var/votes = choices[choices[i]]
|
||||
if(!votes) votes = 0
|
||||
if(current_votes[C.ckey] == i)
|
||||
. += "<li><b><a href='?src=\ref[src];vote=[i]'>[choices[i]]</a></b></li>"
|
||||
. += "<li><b><a href='?src=\ref[src];vote=[i]'>[choices[i]] ([votes] votes)</a></b></li>"
|
||||
else
|
||||
. += "<li><a href='?src=\ref[src];vote=[i]'>[choices[i]]</a></li>"
|
||||
. += "<li><a href='?src=\ref[src];vote=[i]'>[choices[i]] ([votes] votes)</a></li>"
|
||||
|
||||
. += "</ul><hr>"
|
||||
if(admin)
|
||||
|
||||
@@ -762,6 +762,7 @@ client
|
||||
|
||||
if(H.set_species(new_species))
|
||||
usr << "Set species of [H] to [H.species]."
|
||||
H.regenerate_icons()
|
||||
else
|
||||
usr << "Failed! Something went wrong."
|
||||
|
||||
|
||||
+11
-7
@@ -91,10 +91,13 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
|
||||
for(var/C_list in cure_list)
|
||||
if(istype(C_list, /list))
|
||||
for(var/C_id in cure_id)
|
||||
if(!affected_mob.reagents.has_reagent(C_id))
|
||||
if(affected_mob.reagents != null)
|
||||
result = 0
|
||||
else if(!affected_mob.reagents.has_reagent(C_list))
|
||||
result = 0
|
||||
else if(!affected_mob.reagents.has_reagent(C_id))
|
||||
result = 0
|
||||
else if(affected_mob.reagents != null)
|
||||
if(!affected_mob.reagents.has_reagent(C_list))
|
||||
result = 0
|
||||
|
||||
return result
|
||||
|
||||
@@ -123,10 +126,11 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
|
||||
source = affected_mob
|
||||
else //no source and no mob affected. Rogue disease. Break
|
||||
return
|
||||
|
||||
if(affected_mob)
|
||||
if(affected_mob.reagents.has_reagent("spaceacillin"))
|
||||
return // Don't spread if we have spaceacillin in our system.
|
||||
|
||||
if(affected_mob.reagents != null)
|
||||
if(affected_mob)
|
||||
if(affected_mob.reagents.has_reagent("spaceacillin"))
|
||||
return // Don't spread if we have spaceacillin in our system.
|
||||
|
||||
var/check_range = airborne_range//defaults to airborne - range 2
|
||||
|
||||
|
||||
+8
-8
@@ -197,35 +197,35 @@
|
||||
var/d1 = 0
|
||||
var/d2 = 1
|
||||
layer = 2.44 //Just below unary stuff, which is at 2.45 and above pipes, which are at 2.4
|
||||
var/color = "red"
|
||||
var/cable_color = "red"
|
||||
var/obj/structure/powerswitch/power_switch
|
||||
|
||||
/obj/structure/cable/yellow
|
||||
color = "yellow"
|
||||
cable_color = "yellow"
|
||||
icon = 'icons/obj/power_cond_yellow.dmi'
|
||||
|
||||
/obj/structure/cable/green
|
||||
color = "green"
|
||||
cable_color = "green"
|
||||
icon = 'icons/obj/power_cond_green.dmi'
|
||||
|
||||
/obj/structure/cable/blue
|
||||
color = "blue"
|
||||
cable_color = "blue"
|
||||
icon = 'icons/obj/power_cond_blue.dmi'
|
||||
|
||||
/obj/structure/cable/pink
|
||||
color = "pink"
|
||||
cable_color = "pink"
|
||||
icon = 'icons/obj/power_cond_pink.dmi'
|
||||
|
||||
/obj/structure/cable/orange
|
||||
color = "orange"
|
||||
cable_color = "orange"
|
||||
icon = 'icons/obj/power_cond_orange.dmi'
|
||||
|
||||
/obj/structure/cable/cyan
|
||||
color = "cyan"
|
||||
cable_color = "cyan"
|
||||
icon = 'icons/obj/power_cond_cyan.dmi'
|
||||
|
||||
/obj/structure/cable/white
|
||||
color = "white"
|
||||
cable_color = "white"
|
||||
icon = 'icons/obj/power_cond_white.dmi'
|
||||
|
||||
/obj/effect/projection
|
||||
|
||||
@@ -497,26 +497,32 @@ proc/process_ghost_teleport_locs()
|
||||
/area/vox_station/transit
|
||||
name = "\improper hyperspace"
|
||||
icon_state = "shuttle"
|
||||
requires_power = 0
|
||||
|
||||
/area/vox_station/southwest_solars
|
||||
name = "\improper aft port solars"
|
||||
icon_state = "southwest"
|
||||
requires_power = 0
|
||||
|
||||
/area/vox_station/northwest_solars
|
||||
name = "\improper fore port solars"
|
||||
icon_state = "northwest"
|
||||
requires_power = 0
|
||||
|
||||
/area/vox_station/northeast_solars
|
||||
name = "\improper fore starboard solars"
|
||||
icon_state = "northeast"
|
||||
requires_power = 0
|
||||
|
||||
/area/vox_station/southeast_solars
|
||||
name = "\improper aft starboard solars"
|
||||
icon_state = "southeast"
|
||||
requires_power = 0
|
||||
|
||||
/area/vox_station/mining
|
||||
name = "\improper nearby mining asteroid"
|
||||
icon_state = "north"
|
||||
requires_power = 0
|
||||
|
||||
//PRISON
|
||||
/area/prison
|
||||
@@ -1140,7 +1146,7 @@ proc/process_ghost_teleport_locs()
|
||||
icon_state = "cloning"
|
||||
|
||||
/area/medical/sleeper
|
||||
name = "\improper Emergency"
|
||||
name = "\improper Medical Treatment Center"
|
||||
icon_state = "exam_room"
|
||||
|
||||
//Security
|
||||
|
||||
+11
-12
@@ -26,8 +26,6 @@
|
||||
var/mob/living/M = hit_atom
|
||||
M.hitby(src,speed)
|
||||
|
||||
log_attack("<font color='red'>[hit_atom] ([M.ckey]) was hit by [src] thrown by ([src.fingerprintslast])</font>")
|
||||
|
||||
else if(isobj(hit_atom))
|
||||
var/obj/O = hit_atom
|
||||
if(!O.anchored)
|
||||
@@ -490,7 +488,7 @@ its easier to just keep the beam vertical.
|
||||
|
||||
var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblClickNew() proc is being tested)
|
||||
|
||||
/*/atom/proc/DblClickNew()
|
||||
/atom/proc/DblClickNew()
|
||||
if(!usr) return
|
||||
// TODO DOOHL: Intergrate params to new proc. Saved for another time because var/valid_place is a fucking brainfuck
|
||||
|
||||
@@ -792,7 +790,7 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl
|
||||
|
||||
if (in_range)
|
||||
if ( !animal.restrained() )
|
||||
attack_animal(animal)*/
|
||||
attack_animal(animal)
|
||||
|
||||
/atom/DblClick(location, control, params) //TODO: DEFERRED: REWRITE
|
||||
if(!usr) return
|
||||
@@ -943,9 +941,9 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl
|
||||
|
||||
// ------- ( CAN USE ITEM OR HAS 1 SECOND USE DELAY ) AND NOT CLICKING ON SCREEN -------
|
||||
|
||||
if (usr.last_click + usr.click_delay < world.time)
|
||||
usr.last_click = world.time
|
||||
usr.click_delay = 0
|
||||
if (usr.next_move < world.time)
|
||||
usr.prev_move = usr.next_move
|
||||
usr.next_move = world.time + 10
|
||||
else
|
||||
// ------- ALREADY USED ONE ITEM WITH USE DELAY IN THE PREVIOUS SECOND -------
|
||||
return
|
||||
@@ -1109,9 +1107,10 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl
|
||||
// ------- ITEM INACESSIBLE OR CLICKING ON SCREEN -------
|
||||
if (istype(src, /obj/screen))
|
||||
// ------- IT'S THE HUD YOU'RE CLICKING ON -------
|
||||
usr.delay_click(2)
|
||||
if (usr.last_click + usr.click_delay < world.time)
|
||||
usr.last_click = world.time
|
||||
usr.prev_move = usr.next_move
|
||||
usr:lastDblClick = world.time + 2
|
||||
if (usr.next_move < world.time)
|
||||
usr.next_move = world.time + 2
|
||||
else
|
||||
return
|
||||
|
||||
@@ -1143,7 +1142,7 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl
|
||||
src.hand_al(usr, usr.hand)
|
||||
else
|
||||
// ------- YOU ARE CLICKING ON AN OBJECT THAT'S INACCESSIBLE TO YOU AND IS NOT YOUR HUD -------
|
||||
if((LASER in usr:mutations) && usr:a_intent == "hurt" && usr.last_click + usr.click_delay < world.time)
|
||||
if((LASER in usr:mutations) && usr:a_intent == "hurt" && world.time >= usr.next_move)
|
||||
// ------- YOU HAVE THE LASER MUTATION, YOUR INTENT SET TO HURT AND IT'S BEEN MORE THAN A DECISECOND SINCE YOU LAS TATTACKED -------
|
||||
|
||||
var/turf/T = get_turf(usr)
|
||||
@@ -1168,7 +1167,7 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl
|
||||
spawn( 1 )
|
||||
A.process()
|
||||
|
||||
usr.delay_click(6)
|
||||
usr.next_move = world.time + 6
|
||||
return
|
||||
|
||||
/atom/proc/ShiftClick(var/mob/M as mob)
|
||||
|
||||
@@ -124,7 +124,12 @@
|
||||
//message_admins("[newtraitor.real_name] is the new Traitor.")
|
||||
|
||||
forge_traitor_objectives(newtraitor.mind)
|
||||
equip_traitor(newtraitor)
|
||||
|
||||
if(istype(newtraitor, /mob/living/silicon))
|
||||
add_law_zero(newtraitor)
|
||||
else
|
||||
equip_traitor(newtraitor)
|
||||
|
||||
traitors += newtraitor.mind
|
||||
newtraitor << "\red <B>ATTENTION:</B> \black It is time to pay your debt to the Syndicate..."
|
||||
newtraitor << "<B>You are now a traitor.</B>"
|
||||
|
||||
@@ -338,10 +338,10 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology",
|
||||
// usr << browse(null, "window=tank")
|
||||
|
||||
attack(mob/living/M as mob, mob/living/user as mob)
|
||||
|
||||
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had the [name] used on him by [user.name] ([user.ckey])</font>")
|
||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used [name] on [M.name] ([M.ckey])</font>")
|
||||
|
||||
log_attack("<font color='red'>[user.name] ([user.ckey]) used [name] on [M.name] ([M.ckey])</font>")
|
||||
msg_admin_attack("[user.name] ([user.ckey]) used [name] on [M.name] ([M.ckey]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)")
|
||||
|
||||
if(istype(M,/mob/dead))
|
||||
M.invisibility = 0
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
comm.messagetitle.Add("Cent. Com. CONFIDENTIAL REPORT")
|
||||
comm.messagetext.Add(intercepttext)
|
||||
|
||||
world << sound('commandreport.ogg')
|
||||
world << sound('sound/AI/commandreport.ogg')
|
||||
|
||||
// add an extra law to the AI to make sure it cooperates with the heads
|
||||
var/extra_law = "Crew authorized to know of pathogen [virus_name]'s existence are: Heads of command, any crew member with loyalty implant. Do not allow unauthorized personnel to gain knowledge of [virus_name]. Aid authorized personnel in quarantining and neutrlizing the outbreak. This law overrides all other laws."
|
||||
@@ -89,7 +89,7 @@
|
||||
|
||||
comm.messagetitle.Add("Cent. Com. CONFIDENTIAL REPORT")
|
||||
comm.messagetext.Add(intercepttext)
|
||||
world << sound('commandreport.ogg')
|
||||
world << sound('sound/AI/commandreport.ogg')
|
||||
|
||||
|
||||
/datum/game_mode/epidemic/post_setup()
|
||||
@@ -194,7 +194,7 @@
|
||||
ticker.mode:explosion_in_progress = 1
|
||||
for(var/mob/M in world)
|
||||
if(M.client)
|
||||
M << 'Alarm.ogg'
|
||||
M << 'sound/machines/Alarm.ogg'
|
||||
world << "\blue<b>Incoming missile detected.. Impact in 10..</b>"
|
||||
for (var/i=9 to 1 step -1)
|
||||
sleep(10)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
var/obj/portal/P = new /obj/portal( T )
|
||||
P.target = picked
|
||||
P.creator = null
|
||||
P.icon = 'objects.dmi'
|
||||
P.icon = 'icons/obj/objects.dmi'
|
||||
P.failchance = 0
|
||||
P.icon_state = "anom"
|
||||
P.name = "wormhole"
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
break
|
||||
spawn(rand(3000, 6000)) //Delayed announcements to keep the crew on their toes.
|
||||
command_alert("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert")
|
||||
world << sound('outbreak7.ogg')
|
||||
world << sound('sound/AI/outbreak7.ogg')
|
||||
Tick()
|
||||
ActiveFor = Lifetime //killme
|
||||
|
||||
|
||||
@@ -22,9 +22,6 @@
|
||||
|
||||
/obj/effect/biomass/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if (!W || !user || !W.type) return
|
||||
|
||||
user.delay_click(10)
|
||||
|
||||
switch(W.type)
|
||||
if(/obj/item/weapon/circular_saw) del src
|
||||
if(/obj/item/weapon/kitchen/utensil/knife) del src
|
||||
|
||||
@@ -253,7 +253,7 @@ Implants;
|
||||
|
||||
comm.messagetitle.Add("Cent. Com. Status Summary")
|
||||
comm.messagetext.Add(intercepttext)
|
||||
world << sound('commandreport.ogg')
|
||||
world << sound('sound/AI/commandreport.ogg')
|
||||
|
||||
/* command_alert("Summary downloaded and printed out at all communications consoles.", "Enemy communication intercept. Security Level Elevated.")
|
||||
for(var/mob/M in player_list)
|
||||
|
||||
@@ -106,7 +106,7 @@ var/global/vox_kills = 0 //Used to check the Inviolate.
|
||||
vox.flavor_text = ""
|
||||
vox.add_language("Vox-pidgin")
|
||||
vox.h_style = "Short Vox Quills"
|
||||
vox.flavor_text = ""
|
||||
vox.f_style = "Shaved"
|
||||
for(var/datum/organ/external/limb in vox.organs)
|
||||
limb.status &= ~(ORGAN_DESTROYED | ORGAN_ROBOT)
|
||||
vox.equip_vox_raider()
|
||||
|
||||
@@ -834,6 +834,8 @@ datum/objective/heist/loot
|
||||
|
||||
for(var/obj/O in locate(/area/shuttle/vox/station))
|
||||
if(istype(O,target)) total_amount++
|
||||
for(var/obj/I in O.contents)
|
||||
if(istype(I,target)) total_amount++
|
||||
if(total_amount >= target_amount) return 1
|
||||
|
||||
var/datum/game_mode/heist/H = ticker.mode
|
||||
@@ -881,10 +883,17 @@ datum/objective/heist/salvage
|
||||
var/total_amount = 0
|
||||
|
||||
for(var/obj/item/O in locate(/area/shuttle/vox/station))
|
||||
|
||||
var/obj/item/stack/sheet/S
|
||||
if(istype(O,/obj/item/stack/sheet))
|
||||
if(O.name == target)
|
||||
var/obj/item/stack/sheet/S = O
|
||||
S = O
|
||||
total_amount += S.amount
|
||||
for(var/obj/I in O.contents)
|
||||
if(istype(I,/obj/item/stack/sheet))
|
||||
if(I.name == target)
|
||||
S = I
|
||||
total_amount += S.amount
|
||||
|
||||
var/datum/game_mode/heist/H = ticker.mode
|
||||
for(var/datum/mind/raider in H.raiders)
|
||||
|
||||
@@ -238,7 +238,7 @@
|
||||
|
||||
comm.messagetitle.Add("Cent. Com. Announcement")
|
||||
comm.messagetext.Add(message)
|
||||
world << sound('commandreport.ogg')
|
||||
world << sound('sound/AI/commandreport.ogg')
|
||||
|
||||
/datum/game_mode/revolution/rp_revolution/latespawn(mob/M)
|
||||
if(M.mind.assigned_role in command_positions)
|
||||
|
||||
@@ -18,10 +18,10 @@
|
||||
return ..()
|
||||
if(istype(M, /mob/living/carbon/human/dummy))
|
||||
return..()
|
||||
|
||||
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their soul captured with [src.name] by [user.name] ([user.ckey])</font>")
|
||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to capture the soul of [M.name] ([M.ckey])</font>")
|
||||
|
||||
log_attack("<font color='red'>[user.name] ([user.ckey]) used the [src.name] to capture the soul of [M.name] ([M.ckey])</font>")
|
||||
msg_admin_attack("[user.name] ([user.ckey]) used the [src.name] to capture the soul of [M.name] ([M.ckey]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)")
|
||||
|
||||
transfer_soul("VICTIM", M, user)
|
||||
return
|
||||
|
||||
@@ -412,10 +412,14 @@
|
||||
return "Code Gold"
|
||||
|
||||
/proc/get_all_jobs()
|
||||
return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Chef", "Botanist", "Quartermaster", "Cargo Technician",
|
||||
"Shaft Miner", /*"Clown", "Mime", */"Janitor", "Librarian", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer",
|
||||
"Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist",
|
||||
"Research Director", "Scientist", "Xenobiologist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer")
|
||||
var/list/all_jobs = list()
|
||||
var/list/all_datums = typesof(/datum/job)
|
||||
all_datums.Remove(list(/datum/job,/datum/job/ai,/datum/job/cyborg))
|
||||
var/datum/job/jobdatum
|
||||
for(var/jobtype in all_datums)
|
||||
jobdatum = new jobtype
|
||||
all_jobs.Add(jobdatum.title)
|
||||
return all_jobs
|
||||
|
||||
/proc/get_all_centcom_jobs()
|
||||
return list("VIP Guest","Custodian","Thunderdome Overseer","Intel Officer","Medical Officer","Death Commando","Research Officer","BlackOps Commander","Supreme Commander")
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
if(!H) return 0
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
|
||||
if(H.backbag == 1)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack)
|
||||
return 1
|
||||
|
||||
/datum/job/assistant/get_access()
|
||||
|
||||
@@ -35,6 +35,9 @@
|
||||
L.imp_in = H
|
||||
L.implanted = 1
|
||||
world << "<b>[H.real_name] is the captain!</b>"
|
||||
var/datum/organ/external/affected = H.organs_by_name["head"]
|
||||
affected.implants += L
|
||||
L.part = affected
|
||||
return 1
|
||||
|
||||
get_access()
|
||||
@@ -83,4 +86,4 @@
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H), slot_r_hand)
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H.back), slot_in_backpack)
|
||||
return 1
|
||||
return 1
|
||||
@@ -342,6 +342,7 @@
|
||||
|
||||
equip(var/mob/living/carbon/human/H)
|
||||
if(!H) return 0
|
||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_ears)
|
||||
switch(H.backbag)
|
||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
|
||||
@@ -359,6 +360,7 @@
|
||||
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H)
|
||||
L.imp_in = H
|
||||
L.implanted = 1
|
||||
return 1
|
||||
|
||||
|
||||
var/datum/organ/external/affected = H.organs_by_name["head"]
|
||||
affected.implants += L
|
||||
L.part = affected
|
||||
return 1
|
||||
@@ -42,6 +42,9 @@
|
||||
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H)
|
||||
L.imp_in = H
|
||||
L.implanted = 1
|
||||
var/datum/organ/external/affected = H.organs_by_name["head"]
|
||||
affected.implants += L
|
||||
L.part = affected
|
||||
return 1
|
||||
|
||||
|
||||
@@ -162,4 +165,4 @@
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_in_backpack)
|
||||
return 1
|
||||
return 1
|
||||
@@ -414,15 +414,15 @@ var/global/datum/controller/occupations/job_master
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
|
||||
if(2)
|
||||
var/obj/item/weapon/storage/backpack/BPK = new/obj/item/weapon/storage/backpack(H)
|
||||
new /obj/item/weapon/storage/box(BPK)
|
||||
new /obj/item/weapon/storage/box/survival(BPK)
|
||||
H.equip_to_slot_or_del(BPK, slot_back,1)
|
||||
if(3)
|
||||
var/obj/item/weapon/storage/backpack/BPK = new/obj/item/weapon/storage/backpack/satchel_norm(H)
|
||||
new /obj/item/weapon/storage/box(BPK)
|
||||
new /obj/item/weapon/storage/box/survival(BPK)
|
||||
H.equip_to_slot_or_del(BPK, slot_back,1)
|
||||
if(4)
|
||||
var/obj/item/weapon/storage/backpack/BPK = new/obj/item/weapon/storage/backpack/satchel(H)
|
||||
new /obj/item/weapon/storage/box(BPK)
|
||||
new /obj/item/weapon/storage/box/survival(BPK)
|
||||
H.equip_to_slot_or_del(BPK, slot_back,1)
|
||||
|
||||
H << "<B>You are the [alt_title ? alt_title : rank].</B>"
|
||||
|
||||
@@ -91,10 +91,10 @@
|
||||
|
||||
/obj/machinery/optable/proc/check_victim()
|
||||
if(locate(/mob/living/carbon/human, src.loc))
|
||||
var/mob/M = locate(/mob/living/carbon/human, src.loc)
|
||||
var/mob/living/carbon/human/M = locate(/mob/living/carbon/human, src.loc)
|
||||
if(M.resting)
|
||||
src.victim = M
|
||||
icon_state = "table2-active"
|
||||
icon_state = M.pulse ? "table2-active" : "table2-idle"
|
||||
return 1
|
||||
src.victim = null
|
||||
icon_state = "table2-idle"
|
||||
@@ -103,22 +103,44 @@
|
||||
/obj/machinery/optable/process()
|
||||
check_victim()
|
||||
|
||||
/obj/machinery/optable/attackby(obj/item/weapon/W as obj, mob/living/carbon/user as mob)
|
||||
/obj/machinery/optable/proc/take_victim(mob/living/carbon/C, mob/living/carbon/user as mob)
|
||||
if (C == user)
|
||||
user.visible_message("[user] climbs on the operating table.","You climb on the operating table.")
|
||||
else
|
||||
visible_message("\red [C] has been laid on the operating table by [user].", 3)
|
||||
if (C.client)
|
||||
C.client.perspective = EYE_PERSPECTIVE
|
||||
C.client.eye = src
|
||||
C.resting = 1
|
||||
C.loc = src.loc
|
||||
for(var/obj/O in src)
|
||||
O.loc = src.loc
|
||||
src.add_fingerprint(user)
|
||||
if(ishuman(C))
|
||||
var/mob/living/carbon/human/H = C
|
||||
src.victim = H
|
||||
icon_state = H.pulse ? "table2-active" : "table2-idle"
|
||||
else
|
||||
icon_state = "table2-idle"
|
||||
|
||||
/obj/machinery/optable/verb/climb_on()
|
||||
set name = "Climb On Table"
|
||||
set category = "Object"
|
||||
set src in oview(1)
|
||||
|
||||
if(usr.stat || !ishuman(usr) || usr.buckled || usr.restrained())
|
||||
return
|
||||
|
||||
if(src.victim)
|
||||
usr << "\blue <B>The table is already occupied!</B>"
|
||||
return
|
||||
|
||||
take_victim(usr,usr)
|
||||
|
||||
/obj/machinery/optable/attackby(obj/item/weapon/W as obj, mob/living/carbon/user as mob)
|
||||
if (istype(W, /obj/item/weapon/grab))
|
||||
if(ismob(W:affecting))
|
||||
var/mob/M = W:affecting
|
||||
if (M.client)
|
||||
M.client.perspective = EYE_PERSPECTIVE
|
||||
M.client.eye = src
|
||||
M.resting = 1
|
||||
M.loc = src.loc
|
||||
visible_message("\red [M] has been laid on the operating table by [user].", 3)
|
||||
for(var/obj/O in src)
|
||||
O.loc = src.loc
|
||||
src.add_fingerprint(user)
|
||||
icon_state = "table2-active"
|
||||
src.victim = M
|
||||
if(iscarbon(W:affecting))
|
||||
take_victim(W:affecting,usr)
|
||||
del(W)
|
||||
return
|
||||
user.drop_item()
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
var/mob/living/carbon/occupant
|
||||
var/locked
|
||||
name = "Body Scanner"
|
||||
icon = 'Cryogenic2.dmi'
|
||||
icon = 'icons/obj/Cryogenic2.dmi'
|
||||
icon_state = "body_scanner_0"
|
||||
density = 1
|
||||
anchored = 1
|
||||
@@ -167,7 +167,7 @@
|
||||
var/delete
|
||||
var/temphtml
|
||||
name = "Body Scanner Console"
|
||||
icon = 'Cryogenic2.dmi'
|
||||
icon = 'icons/obj/Cryogenic2.dmi'
|
||||
icon_state = "body_scannerconsole"
|
||||
density = 1
|
||||
anchored = 1
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
|
||||
/obj/machinery/alarm
|
||||
name = "alarm"
|
||||
icon = 'monitors.dmi'
|
||||
icon = 'icons/obj/monitors.dmi'
|
||||
icon_state = "alarm0"
|
||||
anchored = 1
|
||||
use_power = 1
|
||||
@@ -1252,7 +1252,7 @@ FIRE ALARM
|
||||
*/
|
||||
/obj/machinery/firealarm
|
||||
name = "fire alarm"
|
||||
desc = "<i>\"Pull this in case of emergency\"<i>. Thus, keep pulling it forever."
|
||||
desc = "<i>\"Pull this in case of emergency\"</i>. Thus, keep pulling it forever."
|
||||
icon = 'icons/obj/monitors.dmi'
|
||||
icon_state = "fire0"
|
||||
var/detecting = 1.0
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
var/valve_open = 0
|
||||
var/release_pressure = ONE_ATMOSPHERE
|
||||
|
||||
var/color = "yellow"
|
||||
var/canister_color = "yellow"
|
||||
var/can_label = 1
|
||||
var/filled = 0.5
|
||||
pressure_resistance = 7*ONE_ATMOSPHERE
|
||||
@@ -21,42 +21,42 @@
|
||||
/obj/machinery/portable_atmospherics/canister/sleeping_agent
|
||||
name = "Canister: \[N2O\]"
|
||||
icon_state = "redws"
|
||||
color = "redws"
|
||||
canister_color = "redws"
|
||||
can_label = 0
|
||||
/obj/machinery/portable_atmospherics/canister/nitrogen
|
||||
name = "Canister: \[N2\]"
|
||||
icon_state = "red"
|
||||
color = "red"
|
||||
canister_color = "red"
|
||||
can_label = 0
|
||||
/obj/machinery/portable_atmospherics/canister/oxygen
|
||||
name = "Canister: \[O2\]"
|
||||
icon_state = "blue"
|
||||
color = "blue"
|
||||
canister_color = "blue"
|
||||
can_label = 0
|
||||
/obj/machinery/portable_atmospherics/canister/toxins
|
||||
name = "Canister \[Toxin (Bio)\]"
|
||||
icon_state = "orange"
|
||||
color = "orange"
|
||||
canister_color = "orange"
|
||||
can_label = 0
|
||||
/obj/machinery/portable_atmospherics/canister/carbon_dioxide
|
||||
name = "Canister \[CO2\]"
|
||||
icon_state = "black"
|
||||
color = "black"
|
||||
canister_color = "black"
|
||||
can_label = 0
|
||||
/obj/machinery/portable_atmospherics/canister/air
|
||||
name = "Canister \[Air\]"
|
||||
icon_state = "grey"
|
||||
color = "grey"
|
||||
canister_color = "grey"
|
||||
can_label = 0
|
||||
|
||||
/obj/machinery/portable_atmospherics/canister/update_icon()
|
||||
src.overlays = 0
|
||||
|
||||
if (src.destroyed)
|
||||
src.icon_state = text("[]-1", src.color)
|
||||
src.icon_state = text("[]-1", src.canister_color)
|
||||
|
||||
else
|
||||
icon_state = "[color]"
|
||||
icon_state = "[canister_color]"
|
||||
if(holding)
|
||||
overlays += "can-open"
|
||||
|
||||
@@ -278,7 +278,7 @@ Release Pressure: <A href='?src=\ref[src];pressure_adj=-1000'>-</A> <A href='?sr
|
||||
)
|
||||
var/label = input("Choose canister label", "Gas canister") as null|anything in colors
|
||||
if (label)
|
||||
src.color = colors[label]
|
||||
src.canister_color = colors[label]
|
||||
src.icon_state = colors[label]
|
||||
src.name = "Canister: [label]"
|
||||
src.updateUsrDialog()
|
||||
|
||||
@@ -130,4 +130,4 @@
|
||||
src.target = loc
|
||||
|
||||
/obj/machinery/meter/turf/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
|
||||
return
|
||||
return
|
||||
|
||||
@@ -143,4 +143,4 @@
|
||||
user << "\blue Tank is empty!"
|
||||
return
|
||||
|
||||
return
|
||||
return
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/obj/machinery/bot/farmbot
|
||||
name = "Farmbot"
|
||||
desc = "The botanist's best friend."
|
||||
icon = 'aibots.dmi'
|
||||
icon = 'icons/obj/aibots.dmi'
|
||||
icon_state = "farmbot0"
|
||||
layer = 5.0
|
||||
density = 1
|
||||
@@ -515,7 +515,7 @@
|
||||
/obj/item/weapon/farmbot_arm_assembly
|
||||
name = "water tank/robot arm assembly"
|
||||
desc = "A water tank with a robot arm permanently grafted to it."
|
||||
icon = 'aibots.dmi'
|
||||
icon = 'icons/obj/aibots.dmi'
|
||||
icon_state = "water_arm"
|
||||
var/build_step = 0
|
||||
var/created_name = "Farmbot" //To preserve the name if it's a unique farmbot I guess
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user