Cere-station [100% free lag edition] (#19951)
* change da world
* compile, thanks
* Update cere.dmm
* Update cere.dmm
* ready for test
* use the proper name please
its CERE not ceres.
* stops shuttle from forcibly docking with podbay
* things are now different
Landmark update for job spawns.
More hardsuits in EVA, engi, and atmos.
Disaster counters properly added.
Vault is now more spooky.
Gamma armoury moved to below gulag shuttle.
Sleeping rooms replaced with arcade and swimming pool.
Captains ERP nest deleted.
Tcomms now looks like it was designed by a functional human being.
Mining doesn't need a weird glass box.
Shuffled docking ports at arrivals.
Windows are now reinforced windows.
Mr changs has arrived.
* disposals functions now
* now with 50% more air
* gamma armoury doesn't attempt to become one with gulag shuttle
* disposals net is airless, vault is enclosed in some rock
* standard number of escape pods
* slight fixes
* more bugfixes
* lighting fixes
* divided hallways, added psych office, more cams
* fire alarms, shutters, and fixes
* temporary DME edit to set cere as default map
* fixed shuttle runtime
* this compiles and runs locally, please CI
* fixes hidden double pipe
* more double pipes
* more vents and scrubbers, morgue body delivery
* tweaks to secbot pathing
* various QoL changes
* Medbay expansion, med+arrival maints expansion.
* the definitive air alarm update, and more!
* Departmental emergency EVA suits, signage, tweaks.
* 2 Cryodorms added (oops). Asteroid sound updates.
* Borg cryo, shutters correctly rotated.
* Supply shuttle edit. I like joining the map queue.
* minor fixes, grav gen isolation.
* minor fixes
* Disposal fixes, lighting adjustment
* SabreML feedback changes
* More minor fixes
* More fixes
* NSS Farragus
* (most) floors turn into asteroid sand, not spess
* reverted random file edit, fixed mr teeny
* minor fixes
* big bombs can breach asteroid areas
* Asteroid plating exists, did you know? I do now!
* camera network pass
* walls become sand too on destruction
* lighting pass
* implements feedback, dramatically reduces ores
* yeets ores entirely, sci break room added
* roundstart pads, more solars, bigger departures
* runtimes
* mining resistant rock
* variable names are important
* AoE KA doesnt affect rocks
* actually fix AoE stuff
* now with 1000% more bats
* no sandy cables, a brig exit chute, more head ssu
* mech drills are not pickaxes
* proc rename, perma window, faster sapce bridges
* Brig rework
* robotics changes
* More sci edits
* Rotayshun changes
* dme edit
* Delete cerestation.dm
begone, thot
* temp edit so it loads cere as default
* merge conflicts begone
* decal purge
* map repipe
* removes under-wall pipe adapters
* shuffled maint areas
* dirt purge
* longest bridge rework
* fixes
* PPI feedback
* kitchen does, in fact, need air
* permabrig tweaks
* restores cc changes
* merge part 2
* tag purge
* secret clown HQ got me shook
* SQUASHENING
* solar shuffle
* directional consoles
* remove TM edits due to rotation
* merge conflict part 2
* pod pilot deletion
* cold rock, window tint fixes, etc.
* further red rocks
* further tweaks
* more standardising
* robotics redo
* carpet time
* CI update for cere
* Apply suggestions from code review
Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com>
* more squash, corridor cam removal, etc.
* light switches
* minor fixes
* temp cere default
* FOODCART!
* fixes
* no airless no more
* space_hall
* compat pass 1
* make it work
* more changes
* slimmening
* air alarm tweak
* TM commit
* ci tests
* final CI changes?
* squash. squeeze, optimise
* wall vent
* disposals fix, more squeezing
* bugfixes
* false walls
* bedroom culling
* edits and fixes
* tweaks
* changes
* det window
* further tweaks
* Revert "TM commit"
This reverts commit 9e8814937f.
* More TM only changes reverted
* fixes smoothing with falsewalls
* denth changes
* the airlockenning
* cicicici
* CICICICI
* further tweaks
* further tweaks
* reverts weird sand behaviour code from ages ago
* oops
* universal adapter my beloathed
* nanomap moment
* webmap
* cere nanomap
* feedback updates
* updates
* airlock tweaks
* vents and tweaks
* solars moment
* triple APC fix
* south of where?
* airlock helpers
* disposal flap purge
* outpost monitor with actual real networks?
* tweakeroni
* fixes
* fixes
* tweaks
* fixes
* medbay improvements
* power and flaps
* changes
* aa changes
* fixes
* more fixeronies
* fixes!
* reversed
* chemicals
* chem tweaks
* fixes
* shuttle fixes
* holopad pass
* editseditsedits
* lightslightslights
* door
* /obj/machinery/computer/security/telescreen/entertainment
* sonic underground
* actual sonic reference
* Apply suggestions from code review
Co-authored-by: Charlie <69320440+hal9000PR@users.noreply.github.com>
* Tsrc
Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com>
Co-authored-by: Charlie <69320440+hal9000PR@users.noreply.github.com>
@@ -59,7 +59,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false # Let all map tests run to completion
|
||||
matrix:
|
||||
maptype: ['/datum/map/cyberiad', '/datum/map/delta', '/datum/map/metastation']
|
||||
maptype: ['/datum/map/cyberiad', '/datum/map/delta', '/datum/map/metastation', '/datum/map/cerestation']
|
||||
byondtype: ['STABLE', 'BETA']
|
||||
services:
|
||||
mariadb:
|
||||
|
||||
@@ -84,6 +84,8 @@
|
||||
#define COLOR_ROCK "#464646"
|
||||
#define COLOR_NULLGLASS "#ff6088"
|
||||
#define COLOR_DIAMOND "#d8d4ea"
|
||||
#define COLOR_ANCIENT_ROCK "#575757"
|
||||
#define COLOR_COLD_ANCIENT_ROCK "#575764"
|
||||
#define COLOR_HEALING_GREEN "#375637"
|
||||
|
||||
//Color defines used by the assembly detailer.
|
||||
|
||||
@@ -66,7 +66,7 @@ DEFINE_BITFIELD(smoothing_flags, list(
|
||||
#define SMOOTH_GROUP_MATERIAL_WALLS S_TURF(25) ///turf/simulated/wall/material
|
||||
#define SMOOTH_GROUP_SYNDICATE_WALLS S_TURF(26) ///turf/simulated/wall/r_wall/syndicate, /turf/simulated/indestructible/syndicate
|
||||
#define SMOOTH_GROUP_HOTEL_WALLS S_TURF(27) ///turf/simulated/indestructible/hotelwall
|
||||
#define SMOOTH_GROUP_MINERAL_WALLS S_TURF(28) ///turf/simulated/mineral, /turf/simulated/indestructible
|
||||
#define SMOOTH_GROUP_MINERAL_WALLS S_TURF(28) ///turf/simulated/mineral, /obj/structure/falsewall/rock_ancient
|
||||
#define SMOOTH_GROUP_BOSS_WALLS S_TURF(29) ///turf/simulated/indestructible/riveted/boss
|
||||
#define SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS S_TURF(30) ///turf/simulated/wall/mineral/titanium/survival
|
||||
|
||||
@@ -98,6 +98,7 @@ DEFINE_BITFIELD(smoothing_flags, list(
|
||||
#define SMOOTH_GROUP_REGULAR_WALLS S_OBJ(17) ///turf/simulated/wall, /obj/structure/falsewall
|
||||
#define SMOOTH_GROUP_REINFORCED_WALLS S_OBJ(18) ///turf/simulated/wall/r_wall, /obj/structure/falsewall/reinforced
|
||||
#define SMOOTH_GROUP_CULT_WALLS S_OBJ(19) ///turf/simulated/wall/cult
|
||||
#define SMOOTH_GROUP_ASTEROID_WALLS S_OBJ(12) ///turf/simulated/mineral, /obj/structure/falsewall/rock_ancient
|
||||
|
||||
#define SMOOTH_GROUP_WINDOW_FULLTILE S_OBJ(21) ///turf/simulated/indestructible/fakeglass, /obj/structure/window/full/basic, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced, /obj/structure/window/full/reinforced
|
||||
#define SMOOTH_GROUP_WINDOW_FULLTILE_BRASS S_OBJ(22) ///obj/structure/window/brass/fulltile
|
||||
|
||||
@@ -95,6 +95,8 @@ GLOBAL_LIST_INIT(glass_sheet_types, typecacheof(list(
|
||||
|
||||
#define ischasm(A) (istype(A, /turf/simulated/floor/chasm))
|
||||
|
||||
#define is_ancient_rock(A) (istype(A, /turf/simulated/mineral/ancient))
|
||||
|
||||
// Areas
|
||||
//#define isarea(A, B, C...) BYOND proc, can test multiple arguments and only return TRUE if all are areas
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ GLOBAL_LIST_INIT(TAGGERLOCATIONS, list("Disposals",
|
||||
"Atmospherics", "HoS Office", "Security", "Medbay",
|
||||
"CMO Office", "Chemistry", "Research", "RD Office",
|
||||
"Robotics", "HoP Office", "Library", "Chapel", "Captain's Office",
|
||||
"Bar", "Kitchen", "Hydroponics", "Janitor Closet","Genetics", "Detective"))
|
||||
"Bar", "Kitchen", "Hydroponics", "Janitor Closet","Genetics", "Detective", "Morgue"))
|
||||
|
||||
GLOBAL_LIST_INIT(hit_appends, list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF"))
|
||||
|
||||
|
||||
@@ -415,6 +415,7 @@ GLOBAL_LIST_INIT(vox_sounds, list(
|
||||
"fahrenheit" = 'sound/vox_fem/fahrenheit.ogg',
|
||||
"failed" = 'sound/vox_fem/failed.ogg',
|
||||
"failure" = 'sound/vox_fem/failure.ogg',
|
||||
"farragus" = 'sound/vox_fem/farragus.ogg',
|
||||
"farthest" = 'sound/vox_fem/farthest.ogg',
|
||||
"fast" = 'sound/vox_fem/fast.ogg',
|
||||
"fatal" = 'sound/vox_fem/fatal.ogg',
|
||||
|
||||
@@ -34,10 +34,38 @@
|
||||
power_light = FALSE
|
||||
outdoors = TRUE
|
||||
ambientsounds = MINING_SOUNDS
|
||||
sound_environment = SOUND_AREA_ASTEROID
|
||||
flags = NONE
|
||||
min_ambience_cooldown = 70 SECONDS
|
||||
max_ambience_cooldown = 220 SECONDS
|
||||
|
||||
/area/mine/unexplored/cere/ai
|
||||
name = "AI Asteroid"
|
||||
|
||||
/area/mine/unexplored/cere/cargo
|
||||
name = "Cargo Asteroid"
|
||||
|
||||
/area/mine/unexplored/cere/civilian
|
||||
name = "Civilian Asteroid"
|
||||
|
||||
/area/mine/unexplored/cere/command
|
||||
name = "Command Asteroid"
|
||||
|
||||
/area/mine/unexplored/cere/docking
|
||||
name = "Docking Asteroid"
|
||||
|
||||
/area/mine/unexplored/cere/engineering
|
||||
name = "Engineering Asteroid"
|
||||
|
||||
/area/mine/unexplored/cere/medical
|
||||
name = "Medical Asteroid"
|
||||
|
||||
/area/mine/unexplored/cere/research
|
||||
name = "Research Asteroid"
|
||||
|
||||
/area/mine/unexplored/cere/orbiting
|
||||
name = "Near Station Asteroids"
|
||||
|
||||
/area/mine/lobby
|
||||
name = "Mining Station"
|
||||
|
||||
|
||||
@@ -681,6 +681,42 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
name = "Waste Disposal"
|
||||
icon_state = "disposals"
|
||||
|
||||
/area/maintenance/disposal/southwest
|
||||
name = "South Western Disposals"
|
||||
|
||||
/area/maintenance/disposal/south
|
||||
name = "Southern Disposals"
|
||||
|
||||
/area/maintenance/disposal/east
|
||||
name = "Eastern Disposals"
|
||||
|
||||
/area/maintenance/disposal/northeast
|
||||
name = "North Eastern Disposals"
|
||||
|
||||
/area/maintenance/disposal/north
|
||||
name = "Northern Disposals"
|
||||
|
||||
/area/maintenance/disposal/northwest
|
||||
name = "North Western Disposals"
|
||||
|
||||
/area/maintenance/disposal/west
|
||||
name = "Western Disposals"
|
||||
|
||||
/area/maintenance/disposal/westalt
|
||||
name = "Western Secondary Disposals"
|
||||
|
||||
/area/maintenance/disposal/external/southwest
|
||||
name = "South-Western External Waste Belt"
|
||||
|
||||
/area/maintenance/disposal/external/southeast
|
||||
name = "South-Eastern External Waste Belt"
|
||||
|
||||
/area/maintenance/disposal/external/east
|
||||
name="Eastern External Waste Belt"
|
||||
|
||||
/area/maintenance/disposal/external/north
|
||||
name = "Northern External Waste Belt"
|
||||
|
||||
/area/maintenance/genetics
|
||||
name = "Genetics Maintenance"
|
||||
icon_state = "asmaint"
|
||||
@@ -730,17 +766,49 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
name = "\improper Fore Primary Hallway"
|
||||
icon_state = "hallF"
|
||||
|
||||
/area/hallway/primary/fore/west
|
||||
name = "\improper Fore West Hallway"
|
||||
|
||||
/area/hallway/primary/fore/east
|
||||
name = "\improper Fore East Hallway"
|
||||
|
||||
/area/hallway/primary/fore/north
|
||||
name = "\improper Fore North Hallway"
|
||||
|
||||
/area/hallway/primary/fore/south
|
||||
name = "\improper Fore South Hallway"
|
||||
|
||||
/area/hallway/primary/starboard
|
||||
name = "\improper Starboard Primary Hallway"
|
||||
icon_state = "hallS"
|
||||
|
||||
/area/hallway/primary/starboard/west
|
||||
name = "\improper Starboard West Hallway"
|
||||
|
||||
/area/hallway/primary/starboard/east
|
||||
name = "\improper Starboard East Hallway"
|
||||
|
||||
/area/hallway/primary/starboard/north
|
||||
name = "\improper Starboard North Hallway"
|
||||
|
||||
/area/hallway/primary/starboard/south
|
||||
name = "\improper Starboard South Hallway"
|
||||
|
||||
/area/hallway/primary/aft
|
||||
name = "\improper Aft Primary Hallway"
|
||||
icon_state = "hallA"
|
||||
|
||||
/area/hallway/primary/aft/west
|
||||
name = "\improper Aft West Hallway"
|
||||
|
||||
/area/hallway/primary/aft/east
|
||||
name = "\improper Aft East Hallway"
|
||||
|
||||
/area/hallway/primary/aft/north
|
||||
name = "\improper Aft North Hallway"
|
||||
|
||||
/area/hallway/primary/aft/south
|
||||
name = "\improper Aft South Hallway"
|
||||
|
||||
/area/hallway/primary/port
|
||||
name = "\improper Port Primary Hallway"
|
||||
@@ -752,6 +820,12 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
/area/hallway/primary/port/east
|
||||
name = "\improper Port East Hallway"
|
||||
|
||||
/area/hallway/primary/port/north
|
||||
name = "\improper Port North Hallway"
|
||||
|
||||
/area/hallway/primary/port/south
|
||||
name = "\improper Port South Hallway"
|
||||
|
||||
/area/hallway/primary/central
|
||||
name = "\improper Central Primary Hallway"
|
||||
icon_state = "hallC"
|
||||
@@ -764,6 +838,36 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
/area/hallway/primary/central/ne
|
||||
/area/hallway/primary/central/sw
|
||||
/area/hallway/primary/central/se
|
||||
/area/hallway/spacebridge
|
||||
sound_environment = SOUND_AREA_LARGE_ENCLOSED
|
||||
icon_state = "hall_space"
|
||||
|
||||
/area/hallway/spacebridge/dockmed
|
||||
name = "Docking-Medical Bridge"
|
||||
|
||||
/area/hallway/spacebridge/scidock
|
||||
name = "Science-Docking Bridge"
|
||||
|
||||
/area/hallway/spacebridge/servsci
|
||||
name = "Service-Science Bridge"
|
||||
|
||||
/area/hallway/spacebridge/serveng
|
||||
name = "Service-Engineering Bridge"
|
||||
|
||||
/area/hallway/spacebridge/engmed
|
||||
name = "Engineering-Medical Bridge"
|
||||
|
||||
/area/hallway/spacebridge/medcargo
|
||||
name = "Medical-Cargo Bridge"
|
||||
|
||||
/area/hallway/spacebridge/cargocom
|
||||
name = "Cargo-AI-Command Bridge"
|
||||
|
||||
/area/hallway/spacebridge/sercom
|
||||
name = "Command-Service Bridge"
|
||||
|
||||
/area/hallway/spacebridge/comeng
|
||||
name = "Command-Engineering Bridge"
|
||||
|
||||
/area/hallway/secondary/exit
|
||||
name = "\improper Escape Shuttle Hallway"
|
||||
@@ -894,26 +998,14 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
sound_environment = SOUND_AREA_SMALL_ENCLOSED
|
||||
|
||||
/area/crew_quarters/sleep
|
||||
name = "\improper Dormitories"
|
||||
name = "\improper Primary Cyrogenic Dormitories"
|
||||
icon_state = "Sleep"
|
||||
valid_territory = FALSE
|
||||
|
||||
/area/crew_quarters/sleep_male
|
||||
name = "\improper Male Dorm"
|
||||
/area/crew_quarters/sleep/secondary
|
||||
name = "\improper Secondary Cyrogenic Dormitories"
|
||||
icon_state = "Sleep"
|
||||
|
||||
/area/crew_quarters/sleep_male/toilet_male
|
||||
name = "\improper Male Toilets"
|
||||
icon_state = "toilet"
|
||||
|
||||
/area/crew_quarters/sleep_female
|
||||
name = "\improper Female Dorm"
|
||||
icon_state = "Sleep"
|
||||
|
||||
/area/crew_quarters/sleep_female/toilet_female
|
||||
name = "\improper Female Toilets"
|
||||
icon_state = "toilet"
|
||||
|
||||
/area/crew_quarters/locker
|
||||
name = "\improper Locker Room"
|
||||
icon_state = "locker"
|
||||
@@ -993,6 +1085,9 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
name = "\improper Clown's Office"
|
||||
icon_state = "clown_office"
|
||||
|
||||
/area/clownoffice/secret
|
||||
name = "\improper Top Secret Clown HQ"
|
||||
|
||||
/area/mimeoffice
|
||||
name = "\improper Mime's Office"
|
||||
icon_state = "mime_office"
|
||||
@@ -1137,6 +1232,10 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
icon_state = "aft"
|
||||
|
||||
/area/solar/starboard
|
||||
name = "\improper Starboard Solar Array"
|
||||
icon_state = "ASsolars"
|
||||
|
||||
/area/solar/starboard/aft
|
||||
name = "\improper Aft Starboard Solar Array"
|
||||
icon_state = "ASsolars"
|
||||
|
||||
@@ -1149,6 +1248,10 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
icon_state = "FPctrl"
|
||||
|
||||
/area/maintenance/starboardsolar
|
||||
name = "\improper Starboard Solar Maintenance"
|
||||
icon_state = "ASctrl"
|
||||
|
||||
/area/maintenance/starboardsolar/aft
|
||||
name = "\improper Aft Starboard Solar Maintenance"
|
||||
icon_state = "ASctrl"
|
||||
|
||||
@@ -1160,7 +1263,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
name = "\improper Fore Starboard Solar Maintenance"
|
||||
icon_state = "FSctrl"
|
||||
|
||||
|
||||
/area/assembly/chargebay
|
||||
name = "\improper Mech Bay"
|
||||
icon_state = "mechbay"
|
||||
@@ -1187,6 +1289,18 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
icon_state = "teleporter"
|
||||
ambientsounds = ENGINEERING_SOUNDS
|
||||
|
||||
/area/teleporter/quantum/security
|
||||
name = "Security Quantum Pad"
|
||||
|
||||
/area/teleporter/quantum/docking
|
||||
name = "Docking Quantum Pad"
|
||||
|
||||
/area/teleporter/quantum/science
|
||||
name = "Science Quantum Pad"
|
||||
|
||||
/area/teleporter/quantum/cargo
|
||||
name = "Cargo Quantum Pad"
|
||||
|
||||
/area/gateway
|
||||
name = "\improper Gateway"
|
||||
icon_state = "gateway"
|
||||
@@ -1901,6 +2015,8 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
icon_state = "ai"
|
||||
sound_environment = SOUND_AREA_LARGE_ENCLOSED
|
||||
|
||||
/area/turret_protected/aisat_interior/secondary
|
||||
name = "\improper AI Satellite Secondary Antechamber"
|
||||
|
||||
//Misc
|
||||
|
||||
|
||||
@@ -481,4 +481,12 @@
|
||||
name = "Cell 6"
|
||||
id = "Cell 6"
|
||||
|
||||
/obj/machinery/door_timer/cell_7
|
||||
name = "Cell 7"
|
||||
id = "Cell 7"
|
||||
|
||||
/obj/machinery/door_timer/cell_8
|
||||
name = "Cell 8"
|
||||
id = "Cell 8"
|
||||
|
||||
#undef CELL_NONE
|
||||
|
||||
@@ -13,6 +13,24 @@
|
||||
var/teleporting = FALSE //if it's in the process of teleporting
|
||||
var/power_efficiency = 1
|
||||
var/obj/machinery/quantumpad/linked_pad = null
|
||||
var/preset_target = null
|
||||
|
||||
/obj/machinery/quantumpad/cere/cargo_arrivals
|
||||
preset_target = /obj/machinery/quantumpad/cere/arrivals_cargo
|
||||
/obj/machinery/quantumpad/cere/cargo_security
|
||||
preset_target = /obj/machinery/quantumpad/cere/security_cargo
|
||||
/obj/machinery/quantumpad/cere/security_cargo
|
||||
preset_target = /obj/machinery/quantumpad/cere/cargo_security
|
||||
/obj/machinery/quantumpad/cere/security_science
|
||||
preset_target = /obj/machinery/quantumpad/cere/science_security
|
||||
/obj/machinery/quantumpad/cere/science_security
|
||||
preset_target = /obj/machinery/quantumpad/cere/security_science
|
||||
/obj/machinery/quantumpad/cere/science_arrivals
|
||||
preset_target = /obj/machinery/quantumpad/cere/arrivals_science
|
||||
/obj/machinery/quantumpad/cere/arrivals_science
|
||||
preset_target = /obj/machinery/quantumpad/cere/science_arrivals
|
||||
/obj/machinery/quantumpad/cere/arrivals_cargo
|
||||
preset_target = /obj/machinery/quantumpad/cere/cargo_arrivals
|
||||
|
||||
/obj/machinery/quantumpad/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -24,6 +42,10 @@
|
||||
component_parts += new /obj/item/stack/cable_coil(null, 1)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/quantumpad/cere/Initialize(mapload)
|
||||
. = ..()
|
||||
linked_pad = locate(preset_target)
|
||||
|
||||
/obj/machinery/quantumpad/Destroy()
|
||||
linked_pad = null
|
||||
return ..()
|
||||
@@ -53,17 +75,20 @@
|
||||
default_deconstruction_crowbar(user, I)
|
||||
|
||||
/obj/machinery/quantumpad/multitool_act(mob/user, obj/item/I)
|
||||
. = TRUE
|
||||
if(!I.use_tool(src, user, 0, volume = I.tool_volume))
|
||||
return
|
||||
if(!I.multitool_check_buffer(user))
|
||||
return
|
||||
var/obj/item/multitool/M = I
|
||||
if(panel_open)
|
||||
M.set_multitool_buffer(user, src)
|
||||
if(!preset_target)
|
||||
. = TRUE
|
||||
if(!I.use_tool(src, user, 0, volume = I.tool_volume))
|
||||
return
|
||||
if(!I.multitool_check_buffer(user))
|
||||
return
|
||||
var/obj/item/multitool/M = I
|
||||
if(panel_open)
|
||||
M.set_multitool_buffer(user, src)
|
||||
else
|
||||
linked_pad = M.buffer
|
||||
to_chat(user, "<span class='notice'>You link [src] to the one in [I]'s buffer.</span>")
|
||||
else
|
||||
linked_pad = M.buffer
|
||||
to_chat(user, "<span class='notice'>You link [src] to the one in [I]'s buffer.</span>")
|
||||
to_chat(user, "<span class='notice'>[src]'s target cannot be modified!</span>")
|
||||
|
||||
/obj/machinery/quantumpad/screwdriver_act(mob/user, obj/item/I)
|
||||
. = TRUE
|
||||
|
||||
@@ -25,6 +25,10 @@
|
||||
var/obj/target_obj = target
|
||||
if(target_obj.resistance_flags & UNACIDABLE)
|
||||
return
|
||||
if(is_ancient_rock(target))
|
||||
visible_message("<span class='notice'>This rock appears to be resistant to all mining tools except pickaxes!</span>")
|
||||
return
|
||||
|
||||
target.visible_message("<span class='warning'>[chassis] starts to drill [target].</span>",
|
||||
"<span class='userdanger'>[chassis] starts to drill [target]...</span>",
|
||||
"<span class='italics'>You hear drilling.</span>")
|
||||
|
||||
@@ -209,11 +209,13 @@ This spawner places pipe leading up to the interior door, you will need to finis
|
||||
icon_state = "1x1_S_to_N"
|
||||
interior_direction = SOUTH
|
||||
exterior_direction = NORTH
|
||||
|
||||
/obj/effect/spawner/airlock/e_to_w
|
||||
name = "1 by 1 airlock spawner (interior east, exterior west)"
|
||||
icon_state = "1x1_E_to_W"
|
||||
interior_direction = EAST
|
||||
exterior_direction = WEST
|
||||
|
||||
/obj/effect/spawner/airlock/w_to_e
|
||||
name = "1 by 1 airlock spawner (interior west, exterior east)"
|
||||
icon_state = "1x1_W_to_E"
|
||||
@@ -224,14 +226,17 @@ This spawner places pipe leading up to the interior door, you will need to finis
|
||||
name = "long airlock spawner (interior north, exterior south)"
|
||||
icon_state = "1x2_N_to_S"
|
||||
tiles_in_y_direction = 2
|
||||
|
||||
/obj/effect/spawner/airlock/s_to_n/long
|
||||
name = "long airlock spawner (interior south, exterior north)"
|
||||
icon_state = "1x2_S_to_N"
|
||||
tiles_in_y_direction = 2
|
||||
|
||||
/obj/effect/spawner/airlock/e_to_w/long
|
||||
name = "long airlock spawner (interior east, exterior west)"
|
||||
icon_state = "1x2_E_to_W"
|
||||
tiles_in_x_direction = 2
|
||||
|
||||
/obj/effect/spawner/airlock/w_to_e/long
|
||||
name = "long airlock spawner (interior west, exterior east)"
|
||||
icon_state = "1x2_W_to_E"
|
||||
@@ -241,18 +246,22 @@ This spawner places pipe leading up to the interior door, you will need to finis
|
||||
name = "square airlock spawner (interior north, exterior south)"
|
||||
icon_state = "2x2_N_to_S"
|
||||
tiles_in_x_direction = 2
|
||||
|
||||
/obj/effect/spawner/airlock/s_to_n/long/square
|
||||
name = "square airlock spawner (interior south, exterior north)"
|
||||
icon_state = "2x2_S_to_N"
|
||||
tiles_in_x_direction = 2
|
||||
|
||||
/obj/effect/spawner/airlock/e_to_w/long/square
|
||||
name = "square airlock spawner (interior east, exterior west)"
|
||||
icon_state = "2x2_E_to_W"
|
||||
tiles_in_y_direction = 2
|
||||
|
||||
/obj/effect/spawner/airlock/w_to_e/long/square
|
||||
name = "square airlock spawner (interior west, exterior east)"
|
||||
icon_state = "2x2_W_to_E"
|
||||
tiles_in_y_direction = 2
|
||||
|
||||
/obj/effect/spawner/airlock/long/square/e_to_s
|
||||
name = "square airlock spawner (interior east, exterior south)"
|
||||
icon_state = "2x2_E_to_S"
|
||||
@@ -263,14 +272,17 @@ This spawner places pipe leading up to the interior door, you will need to finis
|
||||
name = "rectangular airlock spawner (interior north, exterior south)"
|
||||
icon_state = "3x2_N_to_S"
|
||||
tiles_in_x_direction = 3
|
||||
|
||||
/obj/effect/spawner/airlock/s_to_n/long/square/wide
|
||||
name = "rectangular airlock spawner (interior south, exterior north)"
|
||||
icon_state = "3x2_S_to_N"
|
||||
tiles_in_x_direction = 3
|
||||
|
||||
/obj/effect/spawner/airlock/e_to_w/long/square/wide
|
||||
name = "rectangular airlock spawner (interior east, exterior west)"
|
||||
icon_state = "3x2_E_to_W"
|
||||
tiles_in_y_direction = 3
|
||||
|
||||
/obj/effect/spawner/airlock/w_to_e/long/square/wide
|
||||
name = "rectangular airlock spawner (interior west, exterior east)"
|
||||
icon_state = "3x2_W_to_E"
|
||||
@@ -288,24 +300,33 @@ This spawner places pipe leading up to the interior door, you will need to finis
|
||||
req_access_txt = null
|
||||
|
||||
/obj/effect/spawner/airlock/engineer
|
||||
req_access_txt = ACCESS_ENGINE
|
||||
req_access_txt = ACCESS_ENGINE_EQUIP
|
||||
door_name = "engineering external access"
|
||||
|
||||
/obj/effect/spawner/airlock/e_to_w/engineer
|
||||
req_access_txt = ACCESS_ENGINE
|
||||
req_access_txt = ACCESS_ENGINE_EQUIP
|
||||
door_name = "engineering external access"
|
||||
|
||||
/obj/effect/spawner/airlock/w_to_e/engineer
|
||||
req_access_txt = ACCESS_ENGINE_EQUIP
|
||||
door_name = "engineering external access"
|
||||
|
||||
/obj/effect/spawner/airlock/s_to_n/engineer
|
||||
req_access_txt = ACCESS_ENGINE
|
||||
req_access_txt = ACCESS_ENGINE_EQUIP
|
||||
door_name = "engineering external access"
|
||||
|
||||
/obj/effect/spawner/airlock/long/engineer
|
||||
req_access_txt = ACCESS_ENGINE
|
||||
req_access_txt = ACCESS_ENGINE_EQUIP
|
||||
door_name = "engineering external access"
|
||||
|
||||
/obj/effect/spawner/airlock/long/square/engine
|
||||
req_access_txt = ACCESS_ENGINE
|
||||
req_access_txt = ACCESS_ENGINE_EQUIP
|
||||
door_name = "engine external access"
|
||||
icon_state = "2x2_N_to_S_leftdoors"
|
||||
door_type = /obj/machinery/door/airlock/external
|
||||
one_door_interior = DOOR_NORMAL_PLACEMENT
|
||||
one_door_exterior = DOOR_NORMAL_PLACEMENT
|
||||
|
||||
/obj/effect/spawner/airlock/long/square/engine/reversed
|
||||
icon_state = "2x2_N_to_S_rightdoors"
|
||||
one_door_interior = DOOR_FLIPPED_PLACEMENT
|
||||
@@ -314,6 +335,7 @@ This spawner places pipe leading up to the interior door, you will need to finis
|
||||
/obj/effect/spawner/airlock/w_to_e/long/square/wide/mining
|
||||
door_name = "mining external access"
|
||||
req_access_txt = ACCESS_MINING
|
||||
|
||||
/obj/effect/spawner/airlock/long/square/wide/mining
|
||||
door_name = "mining external access"
|
||||
req_access_txt = ACCESS_MINING
|
||||
@@ -321,6 +343,7 @@ This spawner places pipe leading up to the interior door, you will need to finis
|
||||
/obj/effect/spawner/airlock/e_to_w/minisat
|
||||
door_name = "minisat external access"
|
||||
req_access_txt = ACCESS_MINISAT
|
||||
|
||||
/obj/effect/spawner/airlock/long/square/e_to_s/telecoms
|
||||
door_name = "telecoms external access"
|
||||
req_access_txt = "61;13" //ACCESS_TCOMSAT,ACCESS_EXTERNAL_AIRLOCKS
|
||||
|
||||
@@ -179,3 +179,18 @@
|
||||
new /obj/item/clothing/glasses/hud/health/sunglasses(src)
|
||||
new /obj/item/clothing/glasses/hud/skills/sunglasses(src)
|
||||
new /obj/item/clothing/accessory/blue(src)
|
||||
|
||||
/obj/item/storage/bag/garment/quartermaster
|
||||
name = "quatermaster's garment bag"
|
||||
desc = "A bag for storing extra clothes and shoes. This one belongs to the quartermaster."
|
||||
|
||||
/obj/item/storage/bag/garment/quartermaster/populate_contents()
|
||||
new /obj/item/clothing/under/rank/cargo/quartermaster(src)
|
||||
new /obj/item/clothing/under/rank/cargo/quartermaster/skirt(src)
|
||||
new /obj/item/clothing/shoes/brown(src)
|
||||
new /obj/item/clothing/mask/gas(src)
|
||||
new /obj/item/clothing/glasses/meson(src)
|
||||
new /obj/item/clothing/head/soft(src)
|
||||
new /obj/item/clothing/gloves/fingerless(src)
|
||||
new /obj/item/clothing/suit/fire/firefighter(src)
|
||||
new /obj/item/tank/internals/emergency_oxygen(src)
|
||||
|
||||
@@ -21,15 +21,7 @@
|
||||
open_door_sprite = "mining_door"
|
||||
|
||||
/obj/structure/closet/secure_closet/quartermaster/populate_contents()
|
||||
new /obj/item/clothing/under/rank/cargo/quartermaster(src)
|
||||
new /obj/item/clothing/under/rank/cargo/quartermaster/skirt(src)
|
||||
new /obj/item/clothing/shoes/brown(src)
|
||||
new /obj/item/radio/headset/headset_cargo(src)
|
||||
new /obj/item/clothing/gloves/fingerless(src)
|
||||
new /obj/item/clothing/suit/fire/firefighter(src)
|
||||
new /obj/item/tank/internals/emergency_oxygen(src)
|
||||
new /obj/item/clothing/mask/gas(src)
|
||||
new /obj/item/clothing/glasses/meson(src)
|
||||
new /obj/item/clothing/head/soft(src)
|
||||
new /obj/item/door_remote/quartermaster(src)
|
||||
new /obj/item/organ/internal/eyes/cybernetic/meson(src)
|
||||
new /obj/item/storage/bag/garment/quartermaster(src)
|
||||
|
||||
@@ -410,3 +410,16 @@
|
||||
var/turf/T = get_turf(src)
|
||||
new /obj/effect/temp_visual/ratvar/wall/false(T)
|
||||
new /obj/effect/temp_visual/ratvar/beam/falsewall(T)
|
||||
|
||||
/obj/structure/falsewall/rock_ancient
|
||||
name = "ancient rock"
|
||||
desc = "A rare asteroid rock that appears to be resistant to all mining tools except pickaxes!"
|
||||
icon = 'icons/turf/walls/smoothrocks.dmi'
|
||||
icon_state = "smoothrocks-0"
|
||||
base_icon_state = "smoothrocks"
|
||||
color = COLOR_ANCIENT_ROCK
|
||||
smoothing_flags = SMOOTH_BITMASK
|
||||
smoothing_groups = list(SMOOTH_GROUP_ASTEROID_WALLS)
|
||||
canSmoothWith = list(SMOOTH_GROUP_ASTEROID_WALLS)
|
||||
mineral = /obj/item/stack/ore/glass/basalt/ancient
|
||||
walltype = /turf/simulated/mineral/ancient
|
||||
|
||||
@@ -117,6 +117,37 @@
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/stack/ore/glass/basalt))
|
||||
var/obj/item/stack/ore/glass/basalt/A = W
|
||||
if(state == GIRDER_DISPLACED)
|
||||
if(A.get_amount() < 2)
|
||||
to_chat(user, "<span class='warning'>You need at least two [A] to create a false wall!</span>")
|
||||
return
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
if(!loc || !A || A.get_amount() < 2)
|
||||
return
|
||||
A.use(2)
|
||||
to_chat(user, "<span class='notice'>You create a false wall. Push on it to open or close the passage.</span>")
|
||||
var/obj/structure/falsewall/rock_ancient/FW = new (loc)
|
||||
transfer_fingerprints_to(FW)
|
||||
qdel(src)
|
||||
else
|
||||
if(A.get_amount() < 2)
|
||||
to_chat(user, "<span class='warning'>You need at least two [A] to add plating!</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start adding [A]...</span>")
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
if(!src || !A || A.get_amount() < 2)
|
||||
return
|
||||
A.use(2)
|
||||
to_chat(user, "<span class='notice'>You add [A].</span>")
|
||||
var/turf/parent_turf = get_turf(src)
|
||||
parent_turf.ChangeTurf(/turf/simulated/mineral/ancient)
|
||||
for(var/turf/simulated/mineral/X in parent_turf.loc)
|
||||
X.add_hiddenprint(usr)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
if(!istype(W,/obj/item/stack/sheet))
|
||||
return
|
||||
|
||||
@@ -269,13 +300,6 @@
|
||||
|
||||
add_hiddenprint(user)
|
||||
|
||||
else if(istype(W, /obj/item/pipe))
|
||||
var/obj/item/pipe/P = W
|
||||
if(P.pipe_type in list(0, 1, 5)) //simple pipes, simple bends, and simple manifolds.
|
||||
if(!user.drop_item())
|
||||
return
|
||||
P.loc = src.loc
|
||||
to_chat(user, "<span class='notice'>You fit the pipe into \the [src].</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -123,6 +123,15 @@
|
||||
oxygen = 0
|
||||
nitrogen = 0
|
||||
|
||||
/turf/simulated/floor/plating/asteroid/ancient
|
||||
digResult = /obj/item/stack/ore/glass/basalt/ancient
|
||||
baseturf = /turf/simulated/floor/plating/asteroid/ancient/airless
|
||||
|
||||
/turf/simulated/floor/plating/asteroid/ancient/airless
|
||||
temperature = TCMB
|
||||
oxygen = 0
|
||||
nitrogen = 0
|
||||
|
||||
/turf/simulated/floor/plating/asteroid/basalt/Initialize(mapload)
|
||||
. = ..()
|
||||
set_basalt_light(src)
|
||||
|
||||
@@ -26,10 +26,15 @@
|
||||
var/last_act = 0
|
||||
var/scan_state = "" //Holder for the image we display when we're pinged by a mining scanner
|
||||
var/defer_change = 0
|
||||
var/mine_time = 4 SECONDS //Changes how fast the turf is mined by pickaxes, multiplied by toolspeed
|
||||
/// Should this be set to the normal rock colour on init?
|
||||
var/should_reset_color = TRUE
|
||||
|
||||
/turf/simulated/mineral/Initialize(mapload)
|
||||
. = ..()
|
||||
color = COLOR_ROCK
|
||||
if(should_reset_color)
|
||||
color = COLOR_ROCK
|
||||
|
||||
if(mineralType && mineralAmt && spread && spreadChance)
|
||||
for(var/dir in GLOB.cardinal)
|
||||
if(prob(spreadChance))
|
||||
@@ -54,13 +59,13 @@
|
||||
if(!isturf(T))
|
||||
return
|
||||
|
||||
if(last_act + (40 * P.toolspeed) > world.time) // Prevents message spam
|
||||
if(last_act + (mine_time * P.toolspeed) > world.time) // Prevents message spam
|
||||
return
|
||||
last_act = world.time
|
||||
to_chat(user, "<span class='notice'>You start picking...</span>")
|
||||
P.playDigSound()
|
||||
|
||||
if(do_after(user, 40 * P.toolspeed, target = src))
|
||||
if(do_after(user, mine_time * P.toolspeed, target = src))
|
||||
if(ismineralturf(src)) //sanity check against turf being deleted during digspeed delay
|
||||
to_chat(user, "<span class='notice'>You finish cutting into the rock.</span>")
|
||||
gets_drilled(user)
|
||||
@@ -152,6 +157,66 @@
|
||||
src = M
|
||||
M.levelupdate()
|
||||
|
||||
/turf/simulated/mineral/ancient
|
||||
name = "ancient rock"
|
||||
desc = "A rare asteroid rock that appears to be resistant to all mining tools except pickaxes!"
|
||||
smoothing_groups = list(SMOOTH_GROUP_MINERAL_WALLS, SMOOTH_GROUP_ASTEROID_WALLS)
|
||||
canSmoothWith = list(SMOOTH_GROUP_MINERAL_WALLS, SMOOTH_GROUP_ASTEROID_WALLS)
|
||||
mine_time = 6 SECONDS
|
||||
color = COLOR_ANCIENT_ROCK
|
||||
layer = TURF_LAYER
|
||||
should_reset_color = FALSE
|
||||
mineralAmt = 2
|
||||
mineralType = /obj/item/stack/ore/glass/basalt/ancient
|
||||
baseturf = /turf/simulated/floor/plating/asteroid/ancient
|
||||
|
||||
/turf/simulated/mineral/ancient/attackby(obj/item/I, mob/user, params)
|
||||
if(!user.IsAdvancedToolUser())
|
||||
to_chat(usr, "<span class='warning'>You don't have the dexterity to do this!</span>")
|
||||
return
|
||||
|
||||
if(istype(I, /obj/item/pickaxe))
|
||||
var/obj/item/pickaxe/P = I
|
||||
var/turf/T = user.loc
|
||||
if(!isturf(T))
|
||||
return
|
||||
|
||||
if(last_act + (mine_time * P.toolspeed) > world.time) // Prevents message spam
|
||||
return
|
||||
last_act = world.time
|
||||
to_chat(user, "<span class='notice'>You start picking...</span>")
|
||||
P.playDigSound()
|
||||
|
||||
if(do_after(user, mine_time * P.toolspeed, target = src))
|
||||
if(ismineralturf(src)) //sanity check against turf being deleted during digspeed delay
|
||||
to_chat(user, "<span class='notice'>You finish cutting into the rock.</span>")
|
||||
gets_drilled(user)
|
||||
SSblackbox.record_feedback("tally", "pick_used_mining", 1, P.name)
|
||||
else
|
||||
return attack_hand(user)
|
||||
|
||||
/turf/simulated/mineral/ancient/outer
|
||||
name = "cold ancient rock"
|
||||
desc = "A rare and dense asteroid rock that appears to be resistant to everything except diamond and sonic tools! Can not be used to create portals to hell."
|
||||
mine_time = 15 SECONDS
|
||||
color = COLOR_COLD_ANCIENT_ROCK
|
||||
var/static/list/allowed_picks_typecache
|
||||
|
||||
/turf/simulated/mineral/ancient/outer/Initialize(mapload)
|
||||
. = ..()
|
||||
allowed_picks_typecache = typecacheof(list(
|
||||
/obj/item/pickaxe/drill/jackhammer,
|
||||
/obj/item/pickaxe/diamond,
|
||||
/obj/item/pickaxe/drill/cyborg/diamond,
|
||||
/obj/item/pickaxe/drill/diamonddrill,
|
||||
))
|
||||
|
||||
/turf/simulated/mineral/ancient/outer/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/pickaxe) && !(is_type_in_typecache(I, allowed_picks_typecache)))
|
||||
to_chat(user, "<span class='notice'>Only a diamond tools or a sonic jackhammer can break this rock.</span>")
|
||||
return
|
||||
return ..()
|
||||
|
||||
/turf/simulated/mineral/random/high_chance
|
||||
color = COLOR_YELLOW
|
||||
mineralChance = 25
|
||||
|
||||
@@ -23,8 +23,6 @@
|
||||
TYPE_ICE,
|
||||
TYPE_STEEL)
|
||||
area_blacklist = list(/area/crew_quarters/toilet,
|
||||
/area/crew_quarters/sleep_male/toilet_male,
|
||||
/area/crew_quarters/sleep_female/toilet_female,
|
||||
/area/crew_quarters/locker/locker_toilet,
|
||||
/area/toxins/server_coldroom)
|
||||
area_whitelist = list(/area/maintenance/turbine,
|
||||
@@ -44,8 +42,6 @@
|
||||
/area/maintenance/incinerator,
|
||||
/area/crew_quarters/kitchen)
|
||||
area_whitelist = list(/area/crew_quarters/toilet,
|
||||
/area/crew_quarters/sleep_male/toilet_male,
|
||||
/area/crew_quarters/sleep_female/toilet_female,
|
||||
/area/crew_quarters/locker/locker_toilet)
|
||||
turf_whitelist = list(/turf/simulated/floor/beach/water)
|
||||
|
||||
|
||||
@@ -316,6 +316,7 @@ GLOBAL_LIST_EMPTY(asset_datums)
|
||||
"Cyberiad_nanomap_z1.png" = 'icons/_nanomaps/Cyberiad_nanomap_z1.png',
|
||||
"Delta_nanomap_z1.png" = 'icons/_nanomaps/Delta_nanomap_z1.png',
|
||||
"MetaStation_nanomap_z1.png" = 'icons/_nanomaps/MetaStation_nanomap_z1.png',
|
||||
"CereStation_nanomap_z1.png" = 'icons/_nanomaps/CereStation_nanomap_z1.png',
|
||||
)
|
||||
|
||||
/datum/asset/simple/safe
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
// This file exists so that this PR cannot be testmerged at the same time as 19951
|
||||
// If it were to be TM'd at the same time, a lot of things would break
|
||||
// Remove this file before full merge
|
||||
/datum/map/cerestation
|
||||
fluff_name = "NSS Farragus"
|
||||
technical_name = "CereStation"
|
||||
map_path = "_maps/map_files/cerestation/cerestation.dmm"
|
||||
webmap_url = "https://affectedarc07.co.uk/cere.html"
|
||||
|
||||
@@ -203,9 +203,12 @@
|
||||
T.on_mark_application(target, CM, had_effect)
|
||||
var/target_turf = get_turf(target)
|
||||
if(ismineralturf(target_turf))
|
||||
var/turf/simulated/mineral/M = target_turf
|
||||
new /obj/effect/temp_visual/kinetic_blast(M)
|
||||
M.gets_drilled(firer)
|
||||
if(is_ancient_rock(target_turf))
|
||||
visible_message("<span class='notice'>This rock appears to be resistant to all mining tools except pickaxes!</span>")
|
||||
else
|
||||
var/turf/simulated/mineral/M = target_turf
|
||||
new /obj/effect/temp_visual/kinetic_blast(M)
|
||||
M.gets_drilled(firer)
|
||||
..()
|
||||
|
||||
//trophies
|
||||
|
||||
@@ -94,8 +94,11 @@
|
||||
var/turf/T = get_turf(src)
|
||||
new /obj/effect/temp_visual/resonance_crush(T)
|
||||
if(ismineralturf(T))
|
||||
var/turf/simulated/mineral/M = T
|
||||
M.gets_drilled(creator)
|
||||
if(is_ancient_rock(T))
|
||||
visible_message("<span class='notice'>This rock appears to be resistant to all mining tools except pickaxes!</span>")
|
||||
else
|
||||
var/turf/simulated/mineral/M = T
|
||||
M.gets_drilled(creator)
|
||||
check_pressure(T)
|
||||
playsound(T,'sound/weapons/resonator_blast.ogg',50,1)
|
||||
for(var/mob/living/L in T)
|
||||
|
||||
@@ -136,6 +136,13 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
|
||||
icon_state = "volcanic_sand"
|
||||
item_state = "volcanic_sand"
|
||||
singular_name = "volcanic ash pile"
|
||||
desc = "Looks like you could shove some on a girder to make a false rock wall"
|
||||
|
||||
/obj/item/stack/ore/glass/basalt/ancient
|
||||
name = "ancient sand"
|
||||
icon_state = "volcanic_sand"
|
||||
item_state = "volcanic_sand"
|
||||
singular_name = "ancient sand pile"
|
||||
|
||||
/obj/item/stack/ore/plasma
|
||||
name = "plasma ore"
|
||||
|
||||
@@ -14,3 +14,10 @@
|
||||
name = "Pun Pun"
|
||||
real_name = name
|
||||
equip_to_slot(new /obj/item/clothing/under/punpun(src), slot_w_uniform)
|
||||
|
||||
/mob/living/carbon/human/monkey/teeny/Initialize(mapload)
|
||||
. = ..()
|
||||
name = "Mr. Teeny"
|
||||
real_name = name
|
||||
resize = 0.8
|
||||
update_transform()
|
||||
|
||||
@@ -241,8 +241,11 @@
|
||||
for(var/obj/item/borg/upgrade/modkit/M in mods)
|
||||
M.projectile_strike(src, target_turf, target, kinetic_gun)
|
||||
if(ismineralturf(target_turf))
|
||||
var/turf/simulated/mineral/M = target_turf
|
||||
M.gets_drilled(firer)
|
||||
if(is_ancient_rock(target_turf))
|
||||
visible_message("<span class='notice'>This rock appears to be resistant to all mining tools except pickaxes!</span>")
|
||||
else
|
||||
var/turf/simulated/mineral/M = target_turf
|
||||
M.gets_drilled(firer)
|
||||
var/obj/effect/temp_visual/kinetic_blast/K = new /obj/effect/temp_visual/kinetic_blast(target_turf)
|
||||
K.color = color
|
||||
|
||||
@@ -408,7 +411,7 @@
|
||||
new /obj/effect/temp_visual/explosion/fast(target_turf)
|
||||
if(turf_aoe)
|
||||
for(var/T in RANGE_TURFS(1, target_turf) - target_turf)
|
||||
if(ismineralturf(T))
|
||||
if(ismineralturf(T) && !is_ancient_rock(T))
|
||||
var/turf/simulated/mineral/M = T
|
||||
M.gets_drilled(K.firer)
|
||||
if(modifier)
|
||||
|
||||
@@ -220,6 +220,10 @@
|
||||
/obj/item/projectile/plasma/on_hit(atom/target)
|
||||
. = ..()
|
||||
if(ismineralturf(target))
|
||||
if(is_ancient_rock(target))
|
||||
visible_message("<span class='notice'>This rock appears to be resistant to all mining tools except pickaxes!</span>")
|
||||
forcedodge = 0
|
||||
return
|
||||
forcedodge = 1
|
||||
var/turf/simulated/mineral/M = target
|
||||
M.gets_drilled(firer)
|
||||
|
||||
@@ -503,6 +503,10 @@ GLOBAL_LIST_INIT(conveyor_switches, list())
|
||||
operating = TRUE
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/conveyor/auto/ccw
|
||||
icon_state = "conveyor_stopped_ccw"
|
||||
clockwise = FALSE
|
||||
|
||||
//Other types of conveyor, mostly for saving yourself a headache during mapping
|
||||
|
||||
/obj/machinery/conveyor/north
|
||||
|
||||
|
After Width: | Height: | Size: 888 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 9.7 KiB |
@@ -3,12 +3,15 @@
|
||||
tools/github-actions/nanomap-renderer minimap -w 2040 -h 2040 "./_maps/map_files/cyberiad/cyberiad.dmm"
|
||||
tools/github-actions/nanomap-renderer minimap -w 2040 -h 2040 "./_maps/map_files/Delta/delta.dmm"
|
||||
tools/github-actions/nanomap-renderer minimap -w 2040 -h 2040 "./_maps/map_files/MetaStation/MetaStation.dmm"
|
||||
tools/github-actions/nanomap-renderer minimap -w 2040 -h 2040 "./_maps/map_files/cerestation/cerestation.dmm"
|
||||
# Move and rename files so the game understands them
|
||||
cd "data/nanomaps"
|
||||
mv "cyberiad_nanomap_z1.png" "Cyberiad_nanomap_z1.png"
|
||||
mv "delta_nanomap_z1.png" "Delta_nanomap_z1.png"
|
||||
mv "MetaStation_nanomap_z1.png" "MetaStation_nanomap_z1.png"
|
||||
mv "CereStation_nanomap_z1.png" "CereStation_nanomap_z1.png"
|
||||
cd "../../"
|
||||
cp "data/nanomaps/Cyberiad_nanomap_z1.png" "icons/_nanomaps"
|
||||
cp "data/nanomaps/Delta_nanomap_z1.png" "icons/_nanomaps"
|
||||
cp "data/nanomaps/MetaStation_nanomap_z1.png" "icons/_nanomaps"
|
||||
cp "data/nanomaps/CereStation_nanomap_z1.png" "icons/_nanomaps"
|
||||
|
||||