@@ -1,188 +0,0 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"c" = (
|
||||
/turf/open/floor/plating/ocean/rock/warm,
|
||||
/area/ocean)
|
||||
"d" = (
|
||||
/turf/open/floor/plating/ocean/rock,
|
||||
/area/template_noop)
|
||||
"e" = (
|
||||
/turf/open/floor/plating/ocean/rock,
|
||||
/area/ocean)
|
||||
"f" = (
|
||||
/turf/open/floor/plating/ocean/rock/warm/fissure,
|
||||
/area/ocean)
|
||||
"o" = (
|
||||
/turf/open/floor/plating/ocean/rock/warm,
|
||||
/area/template_noop)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
f
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
a
|
||||
d
|
||||
d
|
||||
e
|
||||
c
|
||||
f
|
||||
f
|
||||
c
|
||||
a
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
d
|
||||
c
|
||||
f
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
f
|
||||
c
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
f
|
||||
f
|
||||
c
|
||||
d
|
||||
a
|
||||
a
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
f
|
||||
f
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
f
|
||||
f
|
||||
f
|
||||
c
|
||||
d
|
||||
a
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
d
|
||||
c
|
||||
f
|
||||
f
|
||||
f
|
||||
c
|
||||
a
|
||||
d
|
||||
d
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
d
|
||||
d
|
||||
o
|
||||
c
|
||||
f
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
a
|
||||
a
|
||||
o
|
||||
c
|
||||
f
|
||||
c
|
||||
a
|
||||
d
|
||||
a
|
||||
a
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
f
|
||||
c
|
||||
d
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
a
|
||||
a
|
||||
e
|
||||
f
|
||||
f
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
f
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
@@ -1,238 +0,0 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"c" = (
|
||||
/turf/open/floor/plating/ocean/rock/warm,
|
||||
/area/ocean)
|
||||
"e" = (
|
||||
/turf/open/floor/plating/ocean/rock,
|
||||
/area/template_noop)
|
||||
"f" = (
|
||||
/turf/open/floor/plating/ocean/rock/warm/fissure,
|
||||
/area/ocean)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
c
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
c
|
||||
f
|
||||
f
|
||||
c
|
||||
a
|
||||
e
|
||||
a
|
||||
a
|
||||
a
|
||||
e
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
a
|
||||
c
|
||||
f
|
||||
f
|
||||
c
|
||||
e
|
||||
a
|
||||
a
|
||||
e
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
a
|
||||
a
|
||||
c
|
||||
f
|
||||
f
|
||||
c
|
||||
a
|
||||
e
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
a
|
||||
a
|
||||
c
|
||||
f
|
||||
f
|
||||
f
|
||||
c
|
||||
e
|
||||
a
|
||||
e
|
||||
a
|
||||
e
|
||||
a
|
||||
a
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
a
|
||||
e
|
||||
e
|
||||
c
|
||||
f
|
||||
f
|
||||
f
|
||||
c
|
||||
e
|
||||
a
|
||||
e
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
e
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
f
|
||||
f
|
||||
f
|
||||
c
|
||||
e
|
||||
e
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
e
|
||||
c
|
||||
f
|
||||
f
|
||||
f
|
||||
c
|
||||
e
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
e
|
||||
e
|
||||
e
|
||||
c
|
||||
f
|
||||
f
|
||||
f
|
||||
c
|
||||
c
|
||||
a
|
||||
a
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
a
|
||||
e
|
||||
e
|
||||
a
|
||||
e
|
||||
e
|
||||
c
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
c
|
||||
a
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
e
|
||||
a
|
||||
e
|
||||
c
|
||||
c
|
||||
f
|
||||
f
|
||||
f
|
||||
c
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
e
|
||||
a
|
||||
a
|
||||
c
|
||||
c
|
||||
f
|
||||
f
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
e
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
e
|
||||
a
|
||||
c
|
||||
a
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
@@ -14,7 +14,6 @@
|
||||
#include "map_files\Deltastation\DeltaStation2.dmm"
|
||||
#include "map_files\KiloStation\KiloStation.dmm"
|
||||
#include "map_files\MetaStation\MetaStation.dmm"
|
||||
#include "map_files\WaterKiloStation\WaterKiloStation.dmm"
|
||||
#include "map_files\IceBoxStation\IceBoxStation.dmm"
|
||||
#include "map_files\tramstation\tramstation.dmm"
|
||||
#include "map_files\NSSJourney\NSSJourney.dmm" //SKYRAT EDIT ADDITON
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
{
|
||||
"version": 1,
|
||||
"map_name": "WaterKiloStation",
|
||||
"map_path": "map_files/WaterKiloStation",
|
||||
"map_file": "WaterKiloStation.dmm",
|
||||
"map_file": [
|
||||
"WaterKiloStation.dmm",
|
||||
"WaterKiloBelow.dmm"
|
||||
],
|
||||
"space_ruin_levels": 0,
|
||||
"space_empty_levels": 0,
|
||||
"shuttles": {
|
||||
"emergency": "emergency_kilo",
|
||||
"ferry": "ferry_kilo",
|
||||
"cargo": "cargo_kilo",
|
||||
"whiteship": "whiteship_kilo"
|
||||
},
|
||||
"traits": [
|
||||
{
|
||||
"Linkage": null,
|
||||
"Down": 1,
|
||||
"Gravity": true,
|
||||
"Nearstation Ocean Ruins": true,
|
||||
"Ocean Ruins": true,
|
||||
"Ocean Station": true,
|
||||
"Baseturf": "/turf/open/floor/plating/asteroid"
|
||||
},
|
||||
{
|
||||
"Up": -1,
|
||||
"Linkage": null,
|
||||
"Gravity": true,
|
||||
"Trench Ruins": true,
|
||||
"Baseturf": "/turf/open/floor/plating/asteroid"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -73,14 +73,8 @@ DEFINE_BITFIELD(smoothing_flags, list(
|
||||
#define SMOOTH_GROUP_BOSS_WALLS S_TURF(29) ///turf/closed/indestructible/riveted/boss
|
||||
#define SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS S_TURF(30) ///turf/closed/wall/mineral/titanium/survival
|
||||
|
||||
//SKYRAT EDIT ADDITION
|
||||
#define SMOOTH_GROUP_ELEVATED_PLASTEEL S_TURF(31)
|
||||
#define SMOOTH_GROUP_LOWERED_PLASTEEL S_TURF(32)
|
||||
#define MAX_S_TURF SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS //Always match this value with the one above it.
|
||||
|
||||
#define SMOOTH_GROUP_FISSURE S_TURF(33)
|
||||
|
||||
#define MAX_S_TURF SMOOTH_GROUP_FISSURE //Always match this value with the one above it.
|
||||
//SKYRAT EDIT END
|
||||
|
||||
#define S_OBJ(num) (MAX_S_TURF + 1 + num)
|
||||
/* /obj included */
|
||||
@@ -136,10 +130,7 @@ DEFINE_BITFIELD(smoothing_flags, list(
|
||||
#define SMOOTH_GROUP_CLEANABLE_DIRT S_OBJ(67) ///obj/effect/decal/cleanable/dirt
|
||||
|
||||
#define SMOOTH_GROUP_INDUSTRIAL_LIFT S_OBJ(70) ///obj/structure/industrial_lift
|
||||
//SKYRAT EDIT ADDITION
|
||||
#define SMOOTH_GROUP_SHUTTERS S_OBJ(71)
|
||||
|
||||
#define SMOOTH_GROUP_WATER S_OBJ(72) ///obj/effect/abstract/liquid_turf
|
||||
#define SMOOTH_GROUP_SHUTTERS S_OBJ(71) //SKYRAT EDIT ADDITION - ASSAULTOPS
|
||||
|
||||
#define MAX_S_OBJ SMOOTH_GROUP_WATER //Always match this value with the one above it.
|
||||
//SKYRAT EDIT END
|
||||
#define MAX_S_OBJ SMOOTH_GROUP_SHUTTERS //Always match this value with the one above it. //SKYRAT EDIT CHANGE - ASSAULTOPS - ORIGINAL: #define MAX_S_OBJ SMOOTH_GROUP_SHUTTERS
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
/datum/config_entry/number/ocean_budget
|
||||
config_entry_value = 60
|
||||
integer = FALSE
|
||||
min_val = 0
|
||||
@@ -1,80 +0,0 @@
|
||||
#define WATER_HEIGH_DIFFERENCE_SOUND_CHANCE 50
|
||||
#define WATER_HEIGH_DIFFERENCE_DELTA_SPLASH 7 //Delta needed for the splash effect to be made in 1 go
|
||||
|
||||
#define REQUIRED_EVAPORATION_PROCESSES 80
|
||||
#define EVAPORATION_CHANCE 30
|
||||
|
||||
#define REQUIRED_FIRE_PROCESSES 4
|
||||
#define REQUIRED_FIRE_POWER_PER_UNIT 5
|
||||
|
||||
#define PARTIAL_TRANSFER_AMOUNT 0.3
|
||||
|
||||
#define LIQUID_MUTUAL_SHARE 1
|
||||
#define LIQUID_NOT_MUTUAL_SHARE 2
|
||||
|
||||
#define LIQUID_GIVER 1
|
||||
#define LIQUID_TAKER 2
|
||||
|
||||
//Required amount of a reagent to be simulated on turf exposures from liquids (to prevent gaming the system with cheap dillutions)
|
||||
#define LIQUID_REAGENT_THRESHOLD_TURF_EXPOSURE 5
|
||||
|
||||
//Threshold at which the difference of height makes us need to climb/blocks movement/allows to fall down
|
||||
#define TURF_HEIGHT_BLOCK_THRESHOLD 20
|
||||
|
||||
#define LIQUID_HEIGHT_DIVISOR 10
|
||||
|
||||
#define ONE_LIQUIDS_HEIGHT LIQUID_HEIGHT_DIVISOR
|
||||
|
||||
#define LIQUID_ATTRITION_TO_STOP_ACTIVITY 2
|
||||
|
||||
//Percieved heat capacity for calculations with atmos sharing
|
||||
#define REAGENT_HEAT_CAPACITY 5
|
||||
|
||||
#define LIQUID_STATE_PUDDLE 1
|
||||
#define LIQUID_STATE_ANKLES 2
|
||||
#define LIQUID_STATE_WAIST 3
|
||||
#define LIQUID_STATE_SHOULDERS 4
|
||||
#define LIQUID_STATE_FULLTILE 5
|
||||
#define TOTAL_LIQUID_STATES 5
|
||||
#define LYING_DOWN_SUBMERGEMENT_STATE_BONUS 2
|
||||
|
||||
#define LIQUID_STATE_FOR_HEAT_EXCHANGERS LIQUID_STATE_WAIST
|
||||
|
||||
#define LIQUID_ANKLES_LEVEL_HEIGHT 8
|
||||
#define LIQUID_WAIST_LEVEL_HEIGHT 19
|
||||
#define LIQUID_SHOULDERS_LEVEL_HEIGHT 29
|
||||
#define LIQUID_FULLTILE_LEVEL_HEIGHT 39
|
||||
|
||||
#define LIQUID_FIRE_STATE_NONE 0
|
||||
#define LIQUID_FIRE_STATE_SMALL 1
|
||||
#define LIQUID_FIRE_STATE_MILD 2
|
||||
#define LIQUID_FIRE_STATE_MEDIUM 3
|
||||
#define LIQUID_FIRE_STATE_HUGE 4
|
||||
#define LIQUID_FIRE_STATE_INFERNO 5
|
||||
|
||||
//Threshold at which we "choke" on the water, instead of holding our breath
|
||||
#define OXYGEN_DAMAGE_CHOKING_THRESHOLD 15
|
||||
|
||||
#define IMMUTABLE_LIQUID_SHARE 1
|
||||
|
||||
#define LIQUID_RECURSIVE_LOOP_SAFETY 100 //Hundred loops at maximum for adjacency checking
|
||||
|
||||
//Height at which we consider the tile "full" and dont drop liquids on it from the upper Z level
|
||||
#define LIQUID_HEIGHT_CONSIDER_FULL_TILE 50
|
||||
|
||||
#define SSLIQUIDS_RUN_TYPE_TURFS 1
|
||||
#define SSLIQUIDS_RUN_TYPE_GROUPS 2
|
||||
#define SSLIQUIDS_RUN_TYPE_IMMUTABLES 3
|
||||
#define SSLIQUIDS_RUN_TYPE_EVAPORATION 4
|
||||
#define SSLIQUIDS_RUN_TYPE_FIRE 5
|
||||
|
||||
#define LIQUID_GROUP_DECAY_TIME 3
|
||||
|
||||
//Scaled with how much a person is submerged
|
||||
#define SUBMERGEMENT_REAGENTS_TOUCH_AMOUNT 60
|
||||
|
||||
#define CHOKE_REAGENTS_INGEST_ON_FALL_AMOUNT 4
|
||||
|
||||
#define CHOKE_REAGENTS_INGEST_ON_BREATH_AMOUNT 2
|
||||
|
||||
#define SUBMERGEMENT_PERCENT(carbon, liquids) min(1,(carbon.body_position == LYING_DOWN ? liquids.liquid_state+LYING_DOWN_SUBMERGEMENT_STATE_BONUS : liquids.liquid_state)/TOTAL_LIQUID_STATES)
|
||||
@@ -1,16 +1,24 @@
|
||||
//GLOBAL FILE FOR DECLARING CUSTOM ZLEVEL TRAITS
|
||||
|
||||
#define ZTRAIT_TRENCH_RUINS "Trench Ruins"
|
||||
#define ZTRAIT_OCEAN_RUINS "Ocean Ruins"
|
||||
#define ZTRAIT_OCEAN_RUINS_NEARSTATION "Nearstation Ocean Ruins"
|
||||
#define ZTRAIT_OCEAN_STATION "Ocean Station" //If a station level has this, the SSmapping will try and spawn adjacent ocean levels
|
||||
#define ZTRAITS_ROCKPLANET list(\
|
||||
ZTRAIT_MINING = TRUE, \
|
||||
ZTRAIT_ACIDRAIN = TRUE, \
|
||||
ZTRAIT_ASTEROID_RUINS = TRUE, \
|
||||
ZTRAIT_BOMBCAP_MULTIPLIER = 2, \
|
||||
ZTRAIT_BASETURF = /turf/open/floor/plating/asteroid)
|
||||
|
||||
#define ZTRAITS_ROCKPLANET list(ZTRAIT_MINING = TRUE,ZTRAIT_ACIDRAIN = TRUE,ZTRAIT_ASTEROID_RUINS = TRUE,ZTRAIT_BOMBCAP_MULTIPLIER = 2,ZTRAIT_BASETURF = /turf/open/floor/plating/asteroid)
|
||||
#define ZTRAITS_ICEMOONSKYRAT list(\
|
||||
ZTRAIT_MINING = TRUE, \
|
||||
ZTRAIT_SNOWSTORM = TRUE, \
|
||||
ZTRAIT_ICE_RUINS = TRUE, \
|
||||
ZTRAIT_ICE_RUINS_UNDERGROUND = TRUE, \
|
||||
ZTRAIT_BOMBCAP_MULTIPLIER = 2, \
|
||||
ZTRAIT_BASETURF = /turf/open/lava/plasma/ice_moon) //Remove ZTRAIT_ICE_RUINS if anyone makes multi-z icemoon ruins, as it'll cause problems here.
|
||||
|
||||
#define ZTRAITS_ICEMOONSKYRAT list(ZTRAIT_MINING = TRUE,ZTRAIT_SNOWSTORM = TRUE,ZTRAIT_ICE_RUINS = TRUE,ZTRAIT_ICE_RUINS_UNDERGROUND = TRUE,ZTRAIT_BOMBCAP_MULTIPLIER = 2,ZTRAIT_BASETURF = /turf/open/lava/plasma/ice_moon) //Remove ZTRAIT_ICE_RUINS if anyone makes multi-z icemoon ruins, as it'll cause problems here.
|
||||
|
||||
#define ZTRAITS_TIDALLOCK list(ZTRAIT_MINING = TRUE,ZTRAIT_ACIDRAIN = TRUE,ZTRAIT_LAVA_RUINS = TRUE,ZTRAIT_ICE_RUINS = TRUE,ZTRAIT_BOMBCAP_MULTIPLIER = 2,ZTRAIT_BASETURF = /turf/open/floor/plating/asteroid)
|
||||
|
||||
#define ZTRAITS_OCEAN_LEVEL list(ZTRAIT_GRAVITY = TRUE,ZTRAIT_BASETURF = /turf/open/floor/plating/asteroid,ZTRAIT_OCEAN_RUINS = TRUE)
|
||||
|
||||
#define ZTRAITS_TRENCH_LEVEL list(ZTRAIT_GRAVITY = TRUE,ZTRAIT_BASETURF = /turf/open/floor/plating/asteroid,ZTRAIT_TRENCH_RUINS = TRUE)
|
||||
#define ZTRAITS_TIDALLOCK list(\
|
||||
ZTRAIT_MINING = TRUE, \
|
||||
ZTRAIT_ACIDRAIN = TRUE, \
|
||||
ZTRAIT_LAVA_RUINS = TRUE, \
|
||||
ZTRAIT_ICE_RUINS = TRUE, \
|
||||
ZTRAIT_BOMBCAP_MULTIPLIER = 2, \
|
||||
ZTRAIT_BASETURF = /turf/open/floor/plating/asteroid)
|
||||
|
||||
@@ -52,7 +52,3 @@
|
||||
#define COMSIG_MOB_LOSS_STAMINA "mob_loss_stamina"
|
||||
/// /mob/living/proc/adjustOrganLoss (slot, amount)
|
||||
#define COMSIG_MOB_LOSS_ORGAN "mob_loss_organ"
|
||||
///from base of /turf/handle_fall(): (mob/faller)
|
||||
#define COMSIG_TURF_MOB_FALL "turf_mob_fall"
|
||||
///from base of /obj/effect/abstract/liquid_turf/Initialize() (/obj/effect/abstract/liquid_turf/liquids)
|
||||
#define COMSIG_TURF_LIQUIDS_CREATION "turf_liquids_creation"
|
||||
|
||||
@@ -17,6 +17,3 @@
|
||||
|
||||
// Trait sources
|
||||
#define GHOSTROLE_TRAIT "ghostrole" // SKYRAT EDIT ADDITION -- Ghost Cafe Traits
|
||||
|
||||
/// One can breath under water, you get me?
|
||||
#define TRAIT_WATER_BREATHING "water_breathing"
|
||||
|
||||
@@ -244,10 +244,7 @@
|
||||
* * click_parameters - is the params string from byond [/atom/proc/Click] code, see that documentation.
|
||||
*/
|
||||
/obj/item/proc/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
//SKYRAT EDIT ADDITION
|
||||
if(SEND_SIGNAL(src, COMSIG_ITEM_AFTERATTACK, target, user, proximity_flag, click_parameters) & COMPONENT_CANCEL_ATTACK_CHAIN)
|
||||
return TRUE
|
||||
//SKYRAT EDIT END
|
||||
SEND_SIGNAL(src, COMSIG_ITEM_AFTERATTACK, target, user, proximity_flag, click_parameters)
|
||||
SEND_SIGNAL(user, COMSIG_MOB_ITEM_AFTERATTACK, target, user, proximity_flag, click_parameters)
|
||||
|
||||
/**
|
||||
|
||||
@@ -16,9 +16,6 @@ SUBSYSTEM_DEF(mapping)
|
||||
var/list/ruins_templates = list()
|
||||
var/list/space_ruins_templates = list()
|
||||
var/list/lava_ruins_templates = list()
|
||||
var/list/trench_ruins_templates = list()
|
||||
var/list/ocean_ruins_templates = list()
|
||||
var/list/ocean_station_ruins_templates = list()
|
||||
var/list/ice_ruins_templates = list()
|
||||
var/list/ice_ruins_underground_templates = list()
|
||||
var/list/asteroid_ruins_templates = list() //SKYRAT EDIT - Adds ruins to LZ2
|
||||
@@ -103,25 +100,6 @@ SUBSYSTEM_DEF(mapping)
|
||||
for (var/lava_z in lava_ruins)
|
||||
spawn_rivers(lava_z)
|
||||
|
||||
//SKYRAT EDIT ADDITION
|
||||
//Ocean ruins
|
||||
var/list/ocean_ruins = levels_by_trait(ZTRAIT_OCEAN_RUINS)
|
||||
if (ocean_ruins.len)
|
||||
seedRuins(ocean_ruins, CONFIG_GET(number/ocean_budget), list(/area/ocean/generated, /area/ocean/trench/generated), ocean_ruins_templates)
|
||||
for (var/ocean_z in ocean_ruins)
|
||||
spawn_rivers(ocean_z, 3, /turf/open/openspace/ocean, /area/ocean, new_baseturfs = /turf/open/openspace/ocean)
|
||||
|
||||
var/list/station_ocean_ruins = levels_by_trait(ZTRAIT_OCEAN_RUINS_NEARSTATION)
|
||||
if (station_ocean_ruins.len)
|
||||
seedRuins(station_ocean_ruins, CONFIG_GET(number/ocean_budget), list(/area/ocean/generated, /area/ocean/trench/generated), ocean_station_ruins_templates)
|
||||
for (var/ocean_z in station_ocean_ruins)
|
||||
spawn_rivers(ocean_z, 3, /turf/open/openspace/ocean, /area/ocean, new_baseturfs = /turf/open/openspace/ocean)
|
||||
|
||||
var/list/trench_ruins = levels_by_trait(ZTRAIT_TRENCH_RUINS)
|
||||
if (trench_ruins.len)
|
||||
seedRuins(trench_ruins, CONFIG_GET(number/ocean_budget), list(/area/ocean/trench/generated), trench_ruins_templates)
|
||||
//SKYRAT EDIT END
|
||||
|
||||
var/list/ice_ruins = levels_by_trait(ZTRAIT_ICE_RUINS)
|
||||
if (ice_ruins.len)
|
||||
// needs to be whitelisted for underground too so place_below ruins work
|
||||
@@ -216,11 +194,6 @@ Used by the AI doomsday and the self-destruct nuke.
|
||||
ruins_templates = SSmapping.ruins_templates
|
||||
space_ruins_templates = SSmapping.space_ruins_templates
|
||||
lava_ruins_templates = SSmapping.lava_ruins_templates
|
||||
//SKYRAT EDIT ADDITION
|
||||
trench_ruins_templates = SSmapping.trench_ruins_templates
|
||||
ocean_ruins_templates = SSmapping.ocean_ruins_templates
|
||||
ocean_station_ruins_templates = SSmapping.ocean_station_ruins_templates
|
||||
//SKYRAT EDIT END
|
||||
ice_ruins_templates = SSmapping.ice_ruins_templates
|
||||
ice_ruins_underground_templates = SSmapping.ice_ruins_underground_templates
|
||||
asteroid_ruins_templates = SSmapping.asteroid_ruins_templates //SKYRAT EDIT ADDITION
|
||||
@@ -315,6 +288,7 @@ Used by the AI doomsday and the self-destruct nuke.
|
||||
//SKYRAT EDIT CHANGE BEGIN
|
||||
var/mining_map_to_load = SSrandommining.chosen_map
|
||||
var/mining_traits_to_load = GLOB.mining_traits[SSrandommining.traits]
|
||||
|
||||
if(mining_map_to_load)
|
||||
add_startupmessage("MINING MAP: Loading mining level...")
|
||||
if(!mining_traits_to_load)
|
||||
@@ -328,7 +302,6 @@ Used by the AI doomsday and the self-destruct nuke.
|
||||
else if (!isnull(config.minetype) && config.minetype != "none")
|
||||
INIT_ANNOUNCE("WARNING: An unknown minetype '[config.minetype]' was set! This is being ignored! Update the maploader code!")
|
||||
//SKYRAT EDIT END
|
||||
|
||||
#endif
|
||||
|
||||
if(LAZYLEN(FailedZs)) //but seriously, unless the server's filesystem is messed up this will never happen
|
||||
@@ -478,15 +451,9 @@ GLOBAL_LIST_EMPTY(the_station_areas)
|
||||
//SKYRAT EDIT START//
|
||||
else if(istype(R, /datum/map_template/ruin/asteroid))
|
||||
asteroid_ruins_templates[R.name] = R
|
||||
//SKYRAT EDIT END//
|
||||
else if(istype(R, /datum/map_template/ruin/space))
|
||||
space_ruins_templates[R.name] = R
|
||||
else if(istype(R, /datum/map_template/ruin/ocean))
|
||||
ocean_ruins_templates[R.name] = R
|
||||
else if(istype(R, /datum/map_template/ruin/ocean_station))
|
||||
ocean_station_ruins_templates[R.name] = R
|
||||
else if(istype(R, /datum/map_template/ruin/trench))
|
||||
trench_ruins_templates[R.name] = R
|
||||
//SKYRAT EDIT END//
|
||||
|
||||
/datum/controller/subsystem/mapping/proc/preloadShuttleTemplates()
|
||||
var/list/unbuyable = generateMapList("[global.config.directory]/unbuyableshuttles.txt")
|
||||
|
||||
@@ -52,10 +52,6 @@
|
||||
|
||||
for(var/i in turfs) //Go through all the turfs and generate them
|
||||
var/turf/gen_turf = i
|
||||
//SKYRAT EDIT ADDITION
|
||||
if(istype(gen_turf, /turf/open/space/mirage))
|
||||
continue
|
||||
//SKYRAT EDIT END
|
||||
|
||||
var/area/A = gen_turf.loc
|
||||
if(!(A.area_flags & CAVES_ALLOWED))
|
||||
|
||||
@@ -113,7 +113,6 @@
|
||||
/obj/structure/barricade/sandbags/Initialize()
|
||||
. = ..()
|
||||
AddElement(/datum/element/climbable)
|
||||
AddElement(/datum/element/liquids_height, 20) //SKYRAT EDIT ADDITION
|
||||
|
||||
/obj/structure/barricade/security
|
||||
name = "security barrier"
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
attack_verb_simple = list("mop", "bash", "bludgeon", "whack")
|
||||
resistance_flags = FLAMMABLE
|
||||
var/mopcount = 0
|
||||
var/mopcap = 50 //SKYRAT EDIT CHANGE
|
||||
var/mopcap = 15
|
||||
var/mopspeed = 15
|
||||
force_string = "robust... against germs"
|
||||
var/insertable = TRUE
|
||||
@@ -22,21 +22,7 @@
|
||||
/obj/item/mop/Initialize()
|
||||
. = ..()
|
||||
create_reagents(mopcap)
|
||||
//SKYRAT EDIT ADDITION
|
||||
AddElement(/datum/element/liquids_interaction, on_interaction_callback = /obj/item/mop/.proc/attack_on_liquids_turf)
|
||||
|
||||
/obj/item/mop/proc/attack_on_liquids_turf(obj/item/mop/the_mop, turf/T, mob/user, obj/effect/abstract/liquid_turf/liquids)
|
||||
var/free_space = the_mop.reagents.maximum_volume - the_mop.reagents.total_volume
|
||||
if(free_space <= 0)
|
||||
to_chat(user, "<span class='warning'>Your mop can't absorb any more!</span>")
|
||||
return TRUE
|
||||
var/datum/reagents/tempr = liquids.take_reagents_flat(free_space)
|
||||
tempr.trans_to(the_mop.reagents, tempr.total_volume)
|
||||
to_chat(user, "<span class='notice'>You soak the mop with some liquids.</span>")
|
||||
qdel(tempr)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
return TRUE
|
||||
//SKYRAT EDIT END
|
||||
|
||||
/obj/item/mop/proc/clean(turf/A, mob/living/cleaner)
|
||||
if(reagents.has_reagent(/datum/reagent/water, 1) || reagents.has_reagent(/datum/reagent/water/holywater, 1) || reagents.has_reagent(/datum/reagent/consumable/ethanol/vodka, 1) || reagents.has_reagent(/datum/reagent/space_cleaner, 1))
|
||||
@@ -58,10 +44,6 @@
|
||||
|
||||
/obj/item/mop/afterattack(atom/A, mob/user, proximity)
|
||||
. = ..()
|
||||
//SKYRAT EDIT ADDITION
|
||||
if(.)
|
||||
return
|
||||
//SKYRAT EDIT END
|
||||
if(!proximity)
|
||||
return
|
||||
|
||||
@@ -104,9 +86,9 @@
|
||||
insertable = FALSE
|
||||
|
||||
/obj/item/mop/advanced
|
||||
desc = "The most advanced tool in a custodian's arsenal, complete with a condenser for self-wetting! Just think of all the viscera you will clean up with this! Due to the self-wetting technology, it proves very inefficient for cleaning up spills." //SKYRAT EDIT
|
||||
desc = "The most advanced tool in a custodian's arsenal, complete with a condenser for self-wetting! Just think of all the viscera you will clean up with this!"
|
||||
name = "advanced mop"
|
||||
mopcap = 100 //SKYRAT EDIT CHANGE
|
||||
mopcap = 10
|
||||
icon_state = "advmop"
|
||||
inhand_icon_state = "mop"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi'
|
||||
|
||||
@@ -72,11 +72,6 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
|
||||
null, \
|
||||
new/datum/stack_recipe("floor tile", /obj/item/stack/tile/iron/base, 1, 4, 20), \
|
||||
new/datum/stack_recipe("iron rod", /obj/item/stack/rods, 1, 2, 60), \
|
||||
//SKYRAT EDIT ADDITION
|
||||
new/datum/stack_recipe("pool floor tile", /obj/item/stack/tile/iron/pool, 1, 1, 4), \
|
||||
new/datum/stack_recipe("lowered floor tile", /obj/item/stack/tile/iron/lowered, 1, 1, 4), \
|
||||
new/datum/stack_recipe("elevated floor tile", /obj/item/stack/tile/iron/elevated, 1, 1, 4), \
|
||||
//SKYRAT EDIT END
|
||||
null, \
|
||||
new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 40, one_per_turf = TRUE, on_floor = TRUE, trait_booster = TRAIT_QUICK_BUILD, trait_modifier = 0.75), \
|
||||
null, \
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
new /obj/item/storage/photo_album/ce(src)
|
||||
new /obj/item/storage/box/skillchips/engineering(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/engineering/ce(src)
|
||||
new /obj/item/construction/plumbing/engineering(src) //SKYRAT EDIT ADDITION
|
||||
new /obj/item/circuitboard/machine/rodstopper(src) //SKYRAT EDIT ADDITION
|
||||
|
||||
/obj/structure/closet/secure_closet/engineering_electrical
|
||||
@@ -74,7 +73,6 @@
|
||||
new /obj/item/clothing/glasses/meson/engine(src)
|
||||
new /obj/item/storage/box/emptysandbags(src)
|
||||
new /obj/item/storage/bag/construction(src)
|
||||
new /obj/item/construction/plumbing/engineering(src) //SKYRAT EDIT ADDITION
|
||||
|
||||
|
||||
/obj/structure/closet/secure_closet/atmospherics
|
||||
|
||||
@@ -426,7 +426,6 @@
|
||||
/obj/structure/flora/rock/pile
|
||||
icon_state = "lavarocks"
|
||||
desc = "A pile of rocks."
|
||||
density = FALSE //SKYRAT EDIT ADDITION
|
||||
|
||||
//Jungle grass
|
||||
|
||||
|
||||
@@ -507,12 +507,6 @@
|
||||
integrity_failure = 0.25
|
||||
armor = list(MELEE = 10, BULLET = 30, LASER = 30, ENERGY = 100, BOMB = 20, BIO = 0, RAD = 0, FIRE = 80, ACID = 70)
|
||||
|
||||
//SKYRAT EDIT ADDITION
|
||||
/obj/structure/table/reinforced/Initialize()
|
||||
. = ..()
|
||||
AddElement(/datum/element/liquids_height, 20)
|
||||
//SKYRAT EDIT END
|
||||
|
||||
/obj/structure/table/reinforced/deconstruction_hints(mob/user)
|
||||
if(deconstruction_ready)
|
||||
return "<span class='notice'>The top cover has been <i>welded</i> loose and the main frame's <b>bolts</b> are exposed.</span>"
|
||||
|
||||
@@ -81,11 +81,6 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list(
|
||||
var/old_lighting_object = lighting_object
|
||||
var/old_corners = corners
|
||||
var/old_directional_opacity = directional_opacity
|
||||
//SKYRAT EDIT CHANGE
|
||||
var/obj/effect/abstract/liquid_turf/old_liquids = liquids
|
||||
if(lgroup)
|
||||
lgroup.remove_from_group(src)
|
||||
//SKYRAT EDIT END
|
||||
var/old_rcd_memory = rcd_memory
|
||||
|
||||
var/old_bp = blueprint_data
|
||||
@@ -130,30 +125,7 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list(
|
||||
|
||||
for(var/turf/open/space/S in RANGE_TURFS(1, src)) //RANGE_TURFS is in code\__HELPERS\game.dm
|
||||
S.update_starlight()
|
||||
//SKYRAT EDIT ADDITION
|
||||
if(old_liquids)
|
||||
if(W.liquids)
|
||||
var/liquid_cache = W.liquids //Need to cache and re-set some vars due to the cleaning on Destroy(), and turf references
|
||||
if(old_liquids.immutable)
|
||||
old_liquids.remove_turf(src)
|
||||
else
|
||||
qdel(old_liquids, TRUE)
|
||||
W.liquids = liquid_cache
|
||||
W.liquids.my_turf = W
|
||||
else
|
||||
if(flags & CHANGETURF_INHERIT_AIR)
|
||||
W.liquids = old_liquids
|
||||
old_liquids.my_turf = W
|
||||
if(old_liquids.immutable)
|
||||
W.convert_immutable_liquids()
|
||||
else
|
||||
W.reasses_liquids()
|
||||
else
|
||||
if(old_liquids.immutable)
|
||||
old_liquids.remove_turf(src)
|
||||
else
|
||||
qdel(old_liquids, TRUE)
|
||||
//SKYRAT EDIT END
|
||||
|
||||
QUEUE_SMOOTH_NEIGHBORS(src)
|
||||
QUEUE_SMOOTH(src)
|
||||
|
||||
|
||||
@@ -16,8 +16,7 @@
|
||||
layer = EDGED_TURF_LAYER
|
||||
base_icon_state = "smoothrocks"
|
||||
temperature = TCMB
|
||||
color = "#677" //SKYRAT EDIT ADDITION
|
||||
var/smooth_icon = 'modular_skyrat/modules/liquids/icons/turf/smoothrocks.dmi' //SKYRAT EDIT CHANGE
|
||||
var/smooth_icon = 'icons/turf/smoothrocks.dmi'
|
||||
var/environment_type = "asteroid"
|
||||
var/turf/open/floor/plating/turf_type = /turf/open/floor/plating/asteroid/airless
|
||||
var/obj/item/stack/ore/mineralType = null
|
||||
@@ -194,14 +193,12 @@
|
||||
var/path = pickweight(mineralSpawnChanceList)
|
||||
if(ispath(path, /turf))
|
||||
var/stored_flags = 0
|
||||
var/stored_color = color //SKYRAT EDIT ADDITION
|
||||
if(turf_flags & NO_RUINS)
|
||||
stored_flags |= NO_RUINS
|
||||
var/turf/T = ChangeTurf(path,null,CHANGETURF_IGNORE_AIR)
|
||||
T.flags_1 |= stored_flags
|
||||
|
||||
T.baseturfs = src.baseturfs
|
||||
T.color = stored_color //SKYRAT EDIT ADDITION
|
||||
if(ismineralturf(T))
|
||||
var/turf/closed/mineral/M = T
|
||||
M.turf_type = src.turf_type
|
||||
|
||||
@@ -7,58 +7,6 @@
|
||||
var/clawfootstep = null
|
||||
var/heavyfootstep = null
|
||||
|
||||
//SKYRAT EDIT ADDITION
|
||||
//Consider making all of these behaviours a smart component/element? Something that's only applied wherever it needs to be
|
||||
//Could probably have the variables on the turf level, and the behaviours being activated/deactived on the component level as the vars are updated
|
||||
/turf/open/CanPass(atom/movable/A, turf/T)
|
||||
if(isliving(A))
|
||||
var/turf/AT = get_turf(A)
|
||||
if(AT && AT.turf_height - turf_height <= -TURF_HEIGHT_BLOCK_THRESHOLD)
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
/turf/open/Exit(atom/movable/mover, atom/newloc)
|
||||
. = ..()
|
||||
if(. && isliving(mover) && mover.has_gravity() && isturf(newloc))
|
||||
var/mob/living/L = mover
|
||||
var/turf/T = get_turf(newloc)
|
||||
if(T && T.turf_height - turf_height <= -TURF_HEIGHT_BLOCK_THRESHOLD)
|
||||
L.on_fall()
|
||||
L.onZImpact(T, 1)
|
||||
|
||||
|
||||
/turf/open/MouseDrop_T(mob/living/M, mob/living/user)
|
||||
if(!isliving(M) || !isliving(user) || !M.has_gravity() || !Adjacent(user) || !M.Adjacent(user) || !(user.stat == CONSCIOUS) || user.body_position == LYING_DOWN)
|
||||
return
|
||||
if(!M.has_gravity())
|
||||
return
|
||||
var/turf/T = get_turf(M)
|
||||
if(!T)
|
||||
return
|
||||
if(T.turf_height - turf_height <= -TURF_HEIGHT_BLOCK_THRESHOLD)
|
||||
//Climb up
|
||||
if(user == M)
|
||||
M.visible_message("<span class='notice'>[user] is climbing onto [src]", \
|
||||
"<span class='notice'>You start climbing onto [src].</span>")
|
||||
else
|
||||
M.visible_message("<span class='notice'>[user] is pulling [M] onto [src]", \
|
||||
"<span class='notice'>You start pulling [M] onto [src].</span>")
|
||||
if(do_mob(user, M, 2 SECONDS))
|
||||
M.forceMove(src)
|
||||
return
|
||||
if(turf_height - T.turf_height <= -TURF_HEIGHT_BLOCK_THRESHOLD)
|
||||
//Climb down
|
||||
if(user == M)
|
||||
M.visible_message("<span class='notice'>[user] is descending down to [src]", \
|
||||
"<span class='notice'>You start lowering yourself to [src].</span>")
|
||||
else
|
||||
M.visible_message("<span class='notice'>[user] is lowering [M] down to [src]", \
|
||||
"<span class='notice'>You start lowering [M] down to [src].</span>")
|
||||
if(do_mob(user, M, 2 SECONDS))
|
||||
M.forceMove(src)
|
||||
return
|
||||
//SKYRAT EDIT END
|
||||
|
||||
//direction is direction of travel of A
|
||||
/turf/open/zPassIn(atom/movable/A, direction, turf/source)
|
||||
if(direction == DOWN)
|
||||
|
||||
@@ -24,13 +24,6 @@
|
||||
//This is used to optimize the map loader
|
||||
return
|
||||
|
||||
//SKYRAT EDIT ADDITION
|
||||
/turf/open/space/mirage
|
||||
blocks_air = TRUE
|
||||
light_power = 0
|
||||
dynamic_lighting = DYNAMIC_LIGHTING_ENABLED
|
||||
//SKYRAT EDIT END
|
||||
|
||||
/**
|
||||
* Space Initialize
|
||||
*
|
||||
|
||||
@@ -537,7 +537,6 @@ GLOBAL_LIST_EMPTY(station_turfs)
|
||||
return
|
||||
|
||||
/turf/handle_fall(mob/faller)
|
||||
SEND_SIGNAL(src, COMSIG_TURF_MOB_FALL, faller) //SKYRAT EDIT ADDITION
|
||||
//SKYRAT EDIT REMOVAL BEGIN - SOUNDS - moved to other place, to make you thud when you voluntairly rest
|
||||
/* SKYRAT EDIT REMOVAL BEGIN
|
||||
if(has_gravity(src))
|
||||
|
||||
@@ -176,7 +176,6 @@ GLOBAL_PROTECT(admin_verbs_debug)
|
||||
/client/proc/generate_wikichem_list,
|
||||
/client/proc/modify_goals,
|
||||
/client/proc/debug_huds,
|
||||
/client/proc/toggle_liquid_debug, //SKYRAT EDIT ADDITION
|
||||
/client/proc/map_template_load,
|
||||
/client/proc/map_template_upload,
|
||||
/client/proc/jump_to_ruin,
|
||||
|
||||
@@ -10,11 +10,6 @@
|
||||
|
||||
|
||||
/turf/open/hotspot_expose(exposed_temperature, exposed_volume, soh)
|
||||
//SKYRAT EDIT ADDITION
|
||||
if(liquids && !liquids.fire_state && liquids.check_fire(TRUE))
|
||||
SSliquids.processing_fire[src] = TRUE
|
||||
//SKYRAT EDIT END
|
||||
|
||||
//If the air doesn't exist we just return false
|
||||
var/list/air_gases = air?.gases
|
||||
if(!air_gases)
|
||||
|
||||
@@ -122,7 +122,6 @@
|
||||
SSair.remove_from_active(src)
|
||||
else
|
||||
SSair.add_to_active(src)
|
||||
liquid_update_turf() //SKYRAT EDIT ADDITION
|
||||
|
||||
/atom/movable/proc/move_update_air(turf/T)
|
||||
if(isturf(T))
|
||||
|
||||
@@ -192,41 +192,27 @@
|
||||
var/target_temperature
|
||||
var/target_heat_capacity
|
||||
|
||||
//SKYRAT EDIT ADDITION BEGIN
|
||||
if(target.liquids && target.liquids.liquid_state >= LIQUID_STATE_FOR_HEAT_EXCHANGERS)
|
||||
target_temperature = target.liquids.temp
|
||||
target_heat_capacity = target.liquids.total_reagents * REAGENT_HEAT_CAPACITY
|
||||
var/delta_temperature = (air.temperature - target_temperature)
|
||||
|
||||
if(target_heat_capacity <= 0 || partial_heat_capacity <= 0)
|
||||
return TRUE
|
||||
var/turf/modeled_location = target
|
||||
target_temperature = modeled_location.GetTemperature()
|
||||
target_heat_capacity = modeled_location.GetHeatCapacity()
|
||||
|
||||
var/heat = thermal_conductivity * delta_temperature * (partial_heat_capacity * target_heat_capacity / (partial_heat_capacity + target_heat_capacity))
|
||||
var/delta_temperature = air.temperature - target_temperature
|
||||
var/sharer_heat_capacity = target_heat_capacity
|
||||
|
||||
air.temperature -= heat / total_heat_capacity
|
||||
if(!target.liquids.immutable)
|
||||
target.liquids.temp += heat / target_heat_capacity
|
||||
else //SKYRAT EDIT END
|
||||
var/turf/modeled_location = target
|
||||
target_temperature = modeled_location.GetTemperature()
|
||||
target_heat_capacity = modeled_location.GetHeatCapacity()
|
||||
if((sharer_heat_capacity <= 0) || (partial_heat_capacity <= 0))
|
||||
return TRUE
|
||||
var/heat = thermal_conductivity * delta_temperature * (partial_heat_capacity * sharer_heat_capacity / (partial_heat_capacity + sharer_heat_capacity))
|
||||
|
||||
var/delta_temperature = air.temperature - target_temperature
|
||||
var/sharer_heat_capacity = target_heat_capacity
|
||||
var/self_temperature_delta = - heat / total_heat_capacity
|
||||
var/sharer_temperature_delta = heat / sharer_heat_capacity
|
||||
|
||||
if((sharer_heat_capacity <= 0) || (partial_heat_capacity <= 0))
|
||||
return TRUE
|
||||
var/heat = thermal_conductivity * delta_temperature * (partial_heat_capacity * sharer_heat_capacity / (partial_heat_capacity + sharer_heat_capacity))
|
||||
air.temperature += self_temperature_delta
|
||||
modeled_location.TakeTemperature(sharer_temperature_delta)
|
||||
if(modeled_location.blocks_air)
|
||||
modeled_location.temperature_expose(air, modeled_location.temperature)
|
||||
|
||||
var/self_temperature_delta = - heat / total_heat_capacity
|
||||
var/sharer_temperature_delta = heat / sharer_heat_capacity
|
||||
|
||||
air.temperature += self_temperature_delta
|
||||
modeled_location.TakeTemperature(sharer_temperature_delta)
|
||||
if(modeled_location.blocks_air)
|
||||
modeled_location.temperature_expose(air, modeled_location.temperature)
|
||||
|
||||
update = TRUE
|
||||
update = TRUE
|
||||
|
||||
/datum/pipeline/proc/return_air()
|
||||
. = other_airs + air
|
||||
|
||||
@@ -26,10 +26,6 @@
|
||||
if(istype(T))
|
||||
if(islava(T))
|
||||
environment_temperature = 5000 //Yuck
|
||||
//SKYRAT EDIT ADDITION
|
||||
else if (T.liquids && T.liquids.liquid_state >= LIQUID_STATE_FOR_HEAT_EXCHANGERS)
|
||||
environment_temperature = T.liquids.temp
|
||||
//SKYRAT EDIT END
|
||||
else if(T.blocks_air)
|
||||
environment_temperature = T.temperature
|
||||
else
|
||||
|
||||
@@ -1804,14 +1804,6 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
// Get the temperature of the environment for area
|
||||
var/area_temp = humi.get_temperature(environment)
|
||||
|
||||
//SKYRAT EDIT ADDITION
|
||||
//Special handling for getting liquids temperature
|
||||
if(isturf(humi.loc))
|
||||
var/turf/T = humi.loc
|
||||
if(T.liquids && T.liquids.liquid_state > LIQUID_STATE_PUDDLE)
|
||||
var/submergment_percent = SUBMERGEMENT_PERCENT(humi, T.liquids)
|
||||
area_temp = (area_temp*(1-submergment_percent)) + (T.liquids.temp * submergment_percent)
|
||||
//SKYRAT EDIT END
|
||||
// Get the insulation value based on the area's temp
|
||||
var/thermal_protection = humi.get_insulation_protection(area_temp)
|
||||
|
||||
|
||||
@@ -133,28 +133,6 @@
|
||||
breath = loc_as_obj.handle_internal_lifeform(src, BREATH_VOLUME)
|
||||
|
||||
else if(isturf(loc)) //Breathe from loc as turf
|
||||
//SKYRAT EDIT ADDITION
|
||||
//Underwater breathing
|
||||
var/turf/T = loc
|
||||
if(T.liquids && !HAS_TRAIT(src, TRAIT_NOBREATH) && ((body_position == LYING_DOWN && T.liquids.liquid_state >= LIQUID_STATE_WAIST) || (body_position == STANDING_UP && T.liquids.liquid_state >= LIQUID_STATE_FULLTILE)))
|
||||
//Officially trying to breathe underwater
|
||||
if(HAS_TRAIT(src, TRAIT_WATER_BREATHING))
|
||||
failed_last_breath = FALSE
|
||||
clear_alert("not_enough_oxy")
|
||||
return FALSE
|
||||
adjustOxyLoss(3)
|
||||
failed_last_breath = TRUE
|
||||
if(oxyloss <= OXYGEN_DAMAGE_CHOKING_THRESHOLD && stat == CONSCIOUS)
|
||||
to_chat(src, "<span class='userdanger'>You hold in your breath!</span>")
|
||||
else
|
||||
//Try and drink water#]
|
||||
var/datum/reagents/tempr = T.liquids.take_reagents_flat(CHOKE_REAGENTS_INGEST_ON_BREATH_AMOUNT)
|
||||
tempr.trans_to(src, tempr.total_volume, methods = INGEST)
|
||||
qdel(tempr)
|
||||
visible_message("<span class='warning'>[src] chokes on water!</span>", \
|
||||
"<span class='userdanger'>You're choking on water!</span>")
|
||||
return FALSE
|
||||
//SKYRAT EDIT END
|
||||
var/breath_moles = 0
|
||||
if(environment)
|
||||
breath_moles = environment.total_moles()*BREATH_PERCENTAGE
|
||||
|
||||
@@ -46,12 +46,6 @@
|
||||
return ..()
|
||||
|
||||
/mob/living/proc/ZImpactDamage(turf/T, levels)
|
||||
//SKYRAT EDIT ADDITION
|
||||
SEND_SIGNAL(T, COMSIG_TURF_MOB_FALL, src)
|
||||
if(T.liquids && T.liquids.liquid_state >= LIQUID_STATE_WAIST)
|
||||
Knockdown(20)
|
||||
return
|
||||
//SKYRAT EDIT END
|
||||
visible_message("<span class='danger'>[src] crashes into [T] with a sickening noise!</span>", \
|
||||
"<span class='userdanger'>You crash into [T] with a sickening noise!</span>")
|
||||
adjustBruteLoss((levels * 5) ** 1.5)
|
||||
|
||||
@@ -72,7 +72,6 @@
|
||||
var/fraction = 0.5/(2 ** distance) //50/25/12/6... for a 200u splash, 25/12/6/3... for a 100u, 12/6/3/1 for a 50u
|
||||
splash_holder.expose(A, TOUCH, fraction)
|
||||
|
||||
epicenter.add_liquid_from_reagents(splash_holder) //SKYRAT EDIT ADDITION
|
||||
qdel(splash_holder)
|
||||
return 1
|
||||
|
||||
|
||||
@@ -261,18 +261,14 @@
|
||||
return TRUE
|
||||
|
||||
/// Like add_reagent but you can enter a list. Format it like this: list(/datum/reagent/toxin = 10, "beer" = 15)
|
||||
/datum/reagents/proc/add_reagent_list(list/list_reagents, list/data=null, no_react = FALSE) //SKYRAT EDIT CHANGE
|
||||
/datum/reagents/proc/add_reagent_list(list/list_reagents, list/data=null)
|
||||
for(var/r_id in list_reagents)
|
||||
var/amt = list_reagents[r_id]
|
||||
//SKYRAT EDIT CHANGE BEGIN
|
||||
add_reagent(r_id, amt, data, no_react = TRUE)
|
||||
if(!no_react)
|
||||
handle_reactions()
|
||||
//SKYRAT EDIT CHANGE END
|
||||
add_reagent(r_id, amt, data)
|
||||
|
||||
|
||||
/// Remove a specific reagent
|
||||
/datum/reagents/proc/remove_reagent(reagent, amount, safety = TRUE, no_react = FALSE)//Added a safety check for the trans_id_to
|
||||
/datum/reagents/proc/remove_reagent(reagent, amount, safety = TRUE)//Added a safety check for the trans_id_to
|
||||
if(isnull(amount))
|
||||
amount = 0
|
||||
CRASH("null amount passed to reagent code")
|
||||
@@ -291,7 +287,7 @@
|
||||
amount = clamp(amount, 0, cached_reagent.volume)
|
||||
cached_reagent.volume -= amount
|
||||
update_total()
|
||||
if(!safety || !no_react)//So it does not handle reactions when it need not to //SKYRAT EDIT CHANGE
|
||||
if(!safety)//So it does not handle reactions when it need not to
|
||||
handle_reactions()
|
||||
SEND_SIGNAL(src, COMSIG_REAGENTS_REM_REAGENT, QDELING(cached_reagent) ? reagent : cached_reagent, amount)
|
||||
|
||||
@@ -494,7 +490,7 @@
|
||||
else
|
||||
R.expose_single(reagent, target_atom, methods, part, show_message)
|
||||
reagent.on_transfer(target_atom, methods, transfer_amount * multiplier)
|
||||
remove_reagent(reagent.type, transfer_amount, no_react) //SKYRAT EDIT CHANGE
|
||||
remove_reagent(reagent.type, transfer_amount)
|
||||
var/list/reagent_qualities = list(REAGENT_TRANSFER_AMOUNT = transfer_amount, REAGENT_PURITY = reagent.purity)
|
||||
transfer_log[reagent.type] = reagent_qualities
|
||||
|
||||
@@ -520,7 +516,7 @@
|
||||
else
|
||||
R.expose_single(reagent, target_atom, methods, transfer_amount, show_message)
|
||||
reagent.on_transfer(target_atom, methods, transfer_amount * multiplier)
|
||||
remove_reagent(reagent.type, transfer_amount, no_react) //SKYRAT EDIT CHANGE
|
||||
remove_reagent(reagent.type, transfer_amount)
|
||||
var/list/reagent_qualities = list(REAGENT_TRANSFER_AMOUNT = transfer_amount, REAGENT_PURITY = reagent.purity)
|
||||
transfer_log[reagent.type] = reagent_qualities
|
||||
|
||||
@@ -574,7 +570,7 @@
|
||||
return amount
|
||||
|
||||
/// Copies the reagents to the target object
|
||||
/datum/reagents/proc/copy_to(obj/target, amount=1, multiplier=1, preserve_data=1, no_react=0) //SKYRAT EDIT CHANGE
|
||||
/datum/reagents/proc/copy_to(obj/target, amount=1, multiplier=1, preserve_data=1)
|
||||
var/list/cached_reagents = reagent_list
|
||||
if(!target || !total_volume)
|
||||
return
|
||||
@@ -604,11 +600,8 @@
|
||||
|
||||
src.update_total()
|
||||
R.update_total()
|
||||
//SKYRAT EDIT CHANGE BEGIN
|
||||
if(!no_react)
|
||||
R.handle_reactions()
|
||||
src.handle_reactions()
|
||||
//SKYRAT EDIT CHANGE END
|
||||
R.handle_reactions()
|
||||
src.handle_reactions()
|
||||
return amount
|
||||
|
||||
///Multiplies the reagents inside this holder by a specific amount
|
||||
|
||||
@@ -98,16 +98,7 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
|
||||
var/list/addiction_types = null
|
||||
///The amount a robot will pay for a glass of this (20 units but can be higher if you pour more, be frugal!)
|
||||
var/glass_price
|
||||
///Whether it will evaporate if left untouched on a liquids simulated puddle
|
||||
//SKYRAT EDIT ADDITION
|
||||
var/evaporates = FALSE
|
||||
///How much fire power does the liquid have, for burning on simulated liquids. Not enough fire power/unit of entire mixture may result in no fire
|
||||
var/liquid_fire_power = 0
|
||||
///How fast does the liquid burn on simulated turfs, if it does
|
||||
var/liquid_fire_burnrate = 0
|
||||
///Whether a fire from this requires oxygen in the atmosphere
|
||||
var/fire_needs_oxygen = TRUE
|
||||
//SKYRAT EDIT END
|
||||
|
||||
|
||||
/datum/reagent/New()
|
||||
SHOULD_CALL_PARENT(TRUE)
|
||||
|
||||
@@ -17,8 +17,6 @@
|
||||
ph = 7.33
|
||||
burning_temperature = 2193//ethanol burns at 1970C (at it's peak)
|
||||
burning_volume = 0.1
|
||||
liquid_fire_power = 10 //SKYRAT EDIT ADDITION
|
||||
liquid_fire_burnrate = 0.1 //SKYRAT EDIT ADDITION
|
||||
var/boozepwr = 65 //Higher numbers equal higher hardness, higher hardness equals more intense alcohol poisoning
|
||||
|
||||
/*
|
||||
@@ -103,7 +101,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
fallback_icon_state = "beer"
|
||||
glass_price = DRINK_PRICE_STOCK
|
||||
liquid_fire_power = 2 //SKYRAT EDIT ADDITION
|
||||
|
||||
|
||||
// Beer is a chemical composition of alcohol and various other things. It's a garbage nutrient but hey, it's still one. Also alcohol is bad, mmmkay?
|
||||
@@ -123,7 +120,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
ph = 5
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
fallback_icon_state = "beer"
|
||||
liquid_fire_power = 0 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/beer/maltliquor
|
||||
name = "Malt Liquor"
|
||||
@@ -325,7 +321,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A glass of this is sure to prevent a meltdown."
|
||||
ph = 3.5
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 0 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/threemileisland/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.set_drugginess(50 * REM * delta_time)
|
||||
@@ -396,7 +391,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
ph = 3.45
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
glass_price = DRINK_PRICE_STOCK
|
||||
liquid_fire_power = 2 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/wine/on_merge(data)
|
||||
. = ..()
|
||||
@@ -421,7 +415,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
ph = 3
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
glass_price = DRINK_PRICE_STOCK
|
||||
liquid_fire_power = 2 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/grappa
|
||||
name = "Grappa"
|
||||
@@ -448,7 +441,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
shot_glass_icon_state = "shotglassgold"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
glass_price = DRINK_PRICE_STOCK
|
||||
liquid_fire_power = 2 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/cognac
|
||||
name = "Cognac"
|
||||
@@ -524,7 +516,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "100% proof that teen girls will drink anything with gold in it."
|
||||
shot_glass_icon_state = "shotglassgold"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 2 //SKYRAT EDIT ADDITION
|
||||
|
||||
// This drink is really popular with a certain demographic.
|
||||
var/teenage_girl_quality = DRINK_VERYGOOD
|
||||
|
||||
@@ -549,7 +541,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
A.reagents.add_reagent(/datum/reagent/gold, convert_amount)
|
||||
return ..()
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/patron
|
||||
name = "Patron"
|
||||
description = "Tequila with silver in it, a favorite of alcoholic women in the club scene."
|
||||
@@ -578,7 +569,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
ph = 3
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
glass_price = DRINK_PRICE_EASY
|
||||
liquid_fire_power = 2 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/rum_coke
|
||||
name = "Rum and Coke"
|
||||
@@ -592,7 +582,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "The classic go-to of space-fratboys."
|
||||
ph = 4
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 4 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/cuba_libre
|
||||
name = "Cuba Libre"
|
||||
@@ -694,7 +683,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Booger"
|
||||
glass_desc = "Ewww..."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 4 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/bloody_mary
|
||||
name = "Bloody Mary"
|
||||
@@ -749,7 +737,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "tequila Sunrise"
|
||||
glass_desc = "Oh great, now you feel nostalgic about sunrises back on Terra..."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 4 //SKYRAT EDIT ADDITION
|
||||
var/obj/effect/light_holder
|
||||
glass_price = DRINK_PRICE_MEDIUM
|
||||
|
||||
@@ -886,7 +873,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Long Island Iced Tea"
|
||||
glass_desc = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/moonshine
|
||||
@@ -928,7 +914,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Irish Coffee"
|
||||
glass_desc = "Coffee and alcohol. More fun than a Mimosa to drink in the morning."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/margarita
|
||||
name = "Margarita"
|
||||
@@ -942,7 +927,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "On the rocks with salt on the rim. Arriba~!"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
glass_price = DRINK_PRICE_MEDIUM
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/black_russian
|
||||
name = "Black Russian"
|
||||
@@ -969,7 +953,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "The Detective's undercover drink of choice. He never could stomach gin..."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
glass_price = DRINK_PRICE_EASY
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/manhattan_proj
|
||||
@@ -1048,7 +1031,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Snow White"
|
||||
glass_desc = "A cold refreshment."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/demonsblood //Prevents the imbiber from being dragged into a pool of blood by a slaughter demon.
|
||||
name = "Demon's Blood"
|
||||
@@ -1111,7 +1093,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Bahama Mama"
|
||||
glass_desc = "A tropical cocktail with a complex blend of flavors."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/singulo
|
||||
name = "Singulo"
|
||||
@@ -1124,7 +1105,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Singulo"
|
||||
glass_desc = "A blue-space beverage."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/sbiten
|
||||
name = "Sbiten"
|
||||
@@ -1153,7 +1133,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Red Mead"
|
||||
glass_desc = "A true Viking's beverage, made with the blood of their enemies."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/mead
|
||||
name = "Mead"
|
||||
@@ -1167,7 +1146,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Mead"
|
||||
glass_desc = "A drink from Valhalla."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/iced_beer
|
||||
name = "Iced Beer"
|
||||
@@ -1179,7 +1157,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "iced beer"
|
||||
glass_desc = "A beer so frosty, the air around it freezes."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 2 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/iced_beer/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_bodytemperature(-20 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, T0C) //310.15 is the normal bodytemp.
|
||||
@@ -1195,7 +1172,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Grog"
|
||||
glass_desc = "A fine and cepa drink for Space."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 0 //SKYRAT EDIT ADDITION
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/aloe
|
||||
@@ -1211,7 +1187,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
//somewhat annoying mix
|
||||
glass_price = DRINK_PRICE_MEDIUM
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/andalusia
|
||||
name = "Andalusia"
|
||||
@@ -1224,7 +1199,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Andalusia"
|
||||
glass_desc = "A nice, strangely named drink."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/alliescocktail
|
||||
name = "Allies Cocktail"
|
||||
@@ -1238,7 +1212,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A drink made from your allies."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
glass_price = DRINK_PRICE_EASY
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/acid_spit
|
||||
name = "Acid Spit"
|
||||
@@ -1263,7 +1236,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Amasec"
|
||||
glass_desc = "Always handy before COMBAT!!!"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/changelingsting
|
||||
name = "Changeling Sting"
|
||||
@@ -1296,7 +1268,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Irish Car Bomb"
|
||||
glass_desc = "An Irish car bomb."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 2 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/syndicatebomb
|
||||
name = "Syndicate Bomb"
|
||||
@@ -1338,7 +1309,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Erika Surprise"
|
||||
glass_desc = "The surprise is, it's green!"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/driestmartini
|
||||
name = "Driest Martini"
|
||||
@@ -1415,7 +1385,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_icon_state = "whiskey_sour"
|
||||
glass_name = "whiskey sour"
|
||||
glass_desc = "Lemon juice mixed with whiskey and a dash of sugar. Surprisingly satisfying."
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/hcider
|
||||
name = "Hard Cider"
|
||||
@@ -1430,7 +1399,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
shot_glass_icon_state = "shotglassbrown"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
glass_price = DRINK_PRICE_STOCK
|
||||
liquid_fire_power = 2 //SKYRAT EDIT ADDITION
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/fetching_fizz //A reference to one of my favorite games of all time. Pulls nearby ores to the imbiber!
|
||||
name = "Fetching Fizz"
|
||||
@@ -1445,7 +1414,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "Induces magnetism in the imbiber. Started as a barroom prank but evolved to become popular with miners and scrappers. Metallic aftertaste."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
liquid_fire_power = 0 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/fetching_fizz/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
for(var/obj/item/stack/ore/O in orange(3, M))
|
||||
@@ -1667,7 +1635,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Nar'Sour"
|
||||
glass_desc = "A new hit cocktail inspired by THE ARM Breweries will have you shouting Fuu ma'jin in no time!"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 2 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/narsour/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.cultslurring = min(M.cultslurring + (3 * REM * delta_time), 3)
|
||||
@@ -1684,7 +1651,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Triple Sec"
|
||||
glass_desc = "A glass of straight Triple Sec."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/creme_de_menthe
|
||||
name = "Creme de Menthe"
|
||||
@@ -1696,7 +1662,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Creme de Menthe"
|
||||
glass_desc = "You can almost feel the first breath of spring just looking at it."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/creme_de_cacao
|
||||
name = "Creme de Cacao"
|
||||
@@ -1708,7 +1673,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Creme de Cacao"
|
||||
glass_desc = "A million hazing lawsuits and alcohol poisonings have started with this humble ingredient."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/creme_de_coconut
|
||||
name = "Creme de Coconut"
|
||||
@@ -1720,7 +1684,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Creme de Coconut"
|
||||
glass_desc = "An unintimidating glass of coconut liqueur."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/quadruple_sec
|
||||
name = "Quadruple Sec"
|
||||
@@ -1733,7 +1696,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Quadruple Sec"
|
||||
glass_desc = "An intimidating and lawful beverage dares you to violate the law and make its day. Still can't drink it on duty, though."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/quadruple_sec/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
//Securidrink in line with the Screwdriver for engineers or Nothing for mimes
|
||||
@@ -1774,7 +1736,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Grasshopper"
|
||||
glass_desc = "You weren't aware edible beverages could be that green."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/stinger
|
||||
name = "Stinger"
|
||||
@@ -1787,7 +1748,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Stinger"
|
||||
glass_desc = "You wonder what would happen if you pointed this at a heat source..."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/bastion_bourbon
|
||||
name = "Bastion Bourbon"
|
||||
@@ -1804,7 +1764,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
ph = 4
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
glass_price = DRINK_PRICE_HIGH
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/bastion_bourbon/on_mob_metabolize(mob/living/L)
|
||||
var/heal_points = 10
|
||||
@@ -1842,7 +1801,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "Squirt cider will toughen you right up. Too bad about the musty aftertaste."
|
||||
shot_glass_icon_state = "shotglassgreen"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/squirt_cider/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.satiety += 5 * REM * delta_time //for context, vitamins give 15 satiety per second
|
||||
@@ -1873,7 +1831,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Sugar Rush"
|
||||
glass_desc = "If you can't mix a Sugar Rush, you can't tend bar."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 0 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/sugar_rush/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.satiety -= 10 * REM * delta_time //junky as hell! a whole glass will keep you from being able to eat junk food
|
||||
@@ -1891,7 +1848,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Crevice Spike"
|
||||
glass_desc = "It'll either knock the drunkenness out of you or knock you out cold. Both, probably."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 0 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/crevice_spike/on_mob_metabolize(mob/living/L) //damage only applies when drink first enters system and won't again until drink metabolizes out
|
||||
L.adjustBruteLoss(3 * min(5,volume)) //minimum 3 brute damage on ingestion to limit non-drink means of injury - a full 5 unit gulp of the drink trucks you for the full 15
|
||||
@@ -1919,7 +1875,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Peppermint Patty"
|
||||
glass_desc = "A boozy minty hot cocoa that warms your belly on a cold night."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 2 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/peppermint_patty/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.apply_status_effect(/datum/status_effect/throat_soothed)
|
||||
@@ -1970,7 +1925,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Amaretto Alexander"
|
||||
glass_desc = "A creamy, indulgent delight that is in fact as gentle as it seems."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/sidecar
|
||||
name = "Sidecar"
|
||||
@@ -1984,7 +1938,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "The one ride you'll gladly give up the wheel for."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
glass_price = DRINK_PRICE_MEDIUM
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/between_the_sheets
|
||||
name = "Between the Sheets"
|
||||
@@ -2036,7 +1989,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A drink that looks as refreshing as it tastes."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
glass_price = DRINK_PRICE_MEDIUM
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/moscow_mule
|
||||
name = "Moscow Mule"
|
||||
@@ -2049,7 +2001,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Moscow Mule"
|
||||
glass_desc = "A chilly drink that reminds you of the Derelict."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/fernet
|
||||
name = "Fernet"
|
||||
@@ -2100,7 +2051,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "A glass of Fanciulli. It's just Manhattan with Fernet."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
glass_price = DRINK_PRICE_HIGH
|
||||
liquid_fire_power = 0 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/fanciulli/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_nutrition(-5 * REM * delta_time)
|
||||
@@ -2150,7 +2100,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "glass of blank paper"
|
||||
glass_desc = "A fizzy cocktail for those looking to start fresh."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 2 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/blank_paper/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
if(ishuman(M) && M.mind?.miming)
|
||||
@@ -2166,7 +2115,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
boozepwr = 35
|
||||
quality = DRINK_GOOD
|
||||
taste_description = "bad coding"
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
var/list/names = list("null fruit" = 1) //Names of the fruits used. Associative list where name is key, value is the percentage of that fruit.
|
||||
var/list/tastes = list("bad coding" = 1) //List of tastes. See above.
|
||||
ph = 4
|
||||
@@ -2274,7 +2222,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_desc = "The flute clearly displays the slowly rising bubbles."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
glass_price = DRINK_PRICE_EASY
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/wizz_fizz
|
||||
@@ -2332,7 +2279,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Applejack"
|
||||
glass_desc = "You feel like you could drink this all neight."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 2 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/jack_rose
|
||||
name = "Jack Rose"
|
||||
@@ -2345,7 +2291,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Jack Rose"
|
||||
glass_desc = "Enough of these, and you really will start to suppose your toeses are roses."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 2 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/turbo
|
||||
name = "Turbo"
|
||||
@@ -2376,7 +2321,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Old Timer"
|
||||
glass_desc = "WARNING! May cause premature aging!"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 2 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/old_timer/on_mob_life(mob/living/carbon/human/metabolizer, delta_time, times_fired)
|
||||
if(DT_PROB(10, delta_time) && istype(metabolizer))
|
||||
@@ -2428,7 +2372,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Duplex"
|
||||
glass_desc = "To imbibe one component separately from the other is consider a great faux pas."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 2//SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/trappist
|
||||
name = "Trappist Beer"
|
||||
@@ -2514,7 +2457,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Painkiller"
|
||||
glass_desc = "A combination of tropical juices and rum. Surely this will make you feel better."
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 2 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/pina_colada
|
||||
name = "Pina Colada"
|
||||
@@ -2526,7 +2468,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_icon_state = "pina_colada"
|
||||
glass_name = "Pina Colada"
|
||||
glass_desc = "If you like pina coladas, and getting caught in the rain... well, you'll like this drink."
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/pruno // pruno mix is in drink_reagents
|
||||
@@ -2555,7 +2496,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "Ginger Amaretto"
|
||||
glass_desc = "The sprig of rosemary adds a nice aroma to the drink, and isn't just to be pretentious afterall!"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 3 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/consumable/ethanol/godfather
|
||||
name = "Godfather"
|
||||
|
||||
@@ -156,7 +156,6 @@
|
||||
glass_desc = "The father of all refreshments."
|
||||
shot_glass_icon_state = "shotglassclear"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
evaporates = TRUE //SKYRAT EDIT ADDITION
|
||||
|
||||
/*
|
||||
* Water reaction to turf
|
||||
@@ -1133,8 +1132,6 @@
|
||||
burning_volume = 0.2
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
addiction_types = list(/datum/addiction/alcohol = 4)
|
||||
liquid_fire_power = 10 //SKYRAT EDIT ADDITION
|
||||
liquid_fire_burnrate = 0.1 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/fuel/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume)//Splashing people with welding fuel to make them easy to ignite!
|
||||
. = ..()
|
||||
|
||||
@@ -6,8 +6,6 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
color = "#550000"
|
||||
taste_description = "sweet tasting metal"
|
||||
liquid_fire_power = 20 //SKYRAT EDIT ADDITION
|
||||
liquid_fire_burnrate = 0.1 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/thermite/expose_turf(turf/exposed_turf, reac_volume)
|
||||
. = ..()
|
||||
@@ -49,8 +47,6 @@
|
||||
taste_description = "burning"
|
||||
penetrates_skin = NONE
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 30 //SKYRAT EDIT ADDITION
|
||||
liquid_fire_burnrate = 0.1 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/clf3/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjust_fire_stacks(2 * REM * delta_time)
|
||||
@@ -171,8 +167,6 @@
|
||||
taste_description = "burning"
|
||||
self_consuming = TRUE
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 20 //SKYRAT EDIT ADDITION
|
||||
liquid_fire_burnrate = 0.1 //SKYRAT EDIT ADDITION
|
||||
|
||||
/datum/reagent/phlogiston/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume)
|
||||
. = ..()
|
||||
@@ -196,8 +190,6 @@
|
||||
self_consuming = TRUE
|
||||
penetrates_skin = NONE
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
liquid_fire_power = 30 //SKYRAT EDIT ADDITION
|
||||
liquid_fire_burnrate = 0.1 //SKYRAT EDIT ADDITION
|
||||
|
||||
// why, just why
|
||||
/datum/reagent/napalm/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
|
||||
|
||||
@@ -26,36 +26,6 @@
|
||||
reagents.add_reagent(/datum/reagent/blood, disease_amount, data)
|
||||
|
||||
add_initial_reagents()
|
||||
//SKYRAT EDIT ADDITION
|
||||
AddElement(/datum/element/liquids_interaction, on_interaction_callback = /obj/item/reagent_containers/glass/beaker/.proc/attack_on_liquids_turf)
|
||||
|
||||
/obj/item/reagent_containers/proc/attack_on_liquids_turf(obj/item/reagent_containers/my_beaker, turf/T, mob/living/user, obj/effect/abstract/liquid_turf/liquids)
|
||||
if(user.combat_mode)
|
||||
return FALSE
|
||||
if(!my_beaker.spillable)
|
||||
return FALSE
|
||||
if(!user.Adjacent(T))
|
||||
return FALSE
|
||||
if(liquids.fire_state) //Use an extinguisher first
|
||||
to_chat(user, "<span class='warning'>You can't scoop up anything while it's on fire!</span>")
|
||||
return TRUE
|
||||
if(liquids.height == 1)
|
||||
to_chat(user, "<span class='warning'>The puddle is too shallow to scoop anything up!</span>")
|
||||
return TRUE
|
||||
var/free_space = my_beaker.reagents.maximum_volume - my_beaker.reagents.total_volume
|
||||
if(free_space <= 0)
|
||||
to_chat(user, "<span class='warning'>You can't fit any more liquids inside [my_beaker]!</span>")
|
||||
return TRUE
|
||||
var/desired_transfer = my_beaker.amount_per_transfer_from_this
|
||||
if(desired_transfer > free_space)
|
||||
desired_transfer = free_space
|
||||
var/datum/reagents/tempr = liquids.take_reagents_flat(desired_transfer)
|
||||
tempr.trans_to(my_beaker.reagents, tempr.total_volume)
|
||||
to_chat(user, "<span class='notice'>You scoop up around [my_beaker.amount_per_transfer_from_this] units of liquids with [my_beaker].</span>")
|
||||
qdel(tempr)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
return TRUE
|
||||
//SKYRAT EDIT END
|
||||
|
||||
/obj/item/reagent_containers/create_reagents(max_vol, flags)
|
||||
. = ..()
|
||||
@@ -216,18 +186,12 @@
|
||||
return
|
||||
|
||||
else
|
||||
if(isturf(target)) //SKYRAT EDIT CHANGE
|
||||
var/turf/T = target
|
||||
T.add_liquid_from_reagents(reagents)
|
||||
if(reagents.reagent_list.len && thrownby)
|
||||
log_combat(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]", "in [AREACOORD(target)]")
|
||||
log_game("[key_name(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] in [AREACOORD(target)].")
|
||||
message_admins("[ADMIN_LOOKUPFLW(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] in [ADMIN_VERBOSEJMP(target)].")
|
||||
else
|
||||
reagents.expose(target, TOUCH)
|
||||
//SKYRAT EDIT END
|
||||
if(isturf(target) && reagents.reagent_list.len && thrownby)
|
||||
log_combat(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]", "in [AREACOORD(target)]")
|
||||
log_game("[key_name(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] in [AREACOORD(target)].")
|
||||
message_admins("[ADMIN_LOOKUPFLW(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] in [ADMIN_VERBOSEJMP(target)].")
|
||||
visible_message("<span class='notice'>[src] spills its contents all over [target].</span>")
|
||||
//reagents.expose(target, TOUCH) //SKYRAT EDIT REMOVAL
|
||||
reagents.expose(target, TOUCH)
|
||||
if(QDELETED(src))
|
||||
return
|
||||
|
||||
|
||||
@@ -229,7 +229,7 @@
|
||||
|
||||
/obj/item/reagent_containers/glass/bucket//SKYRAT EDIT - ICON OVERRIDEN BY AESTHETICS - SEE MODULE
|
||||
name = "bucket"
|
||||
desc = "It's a bucket. You can squeeze a mop's contents into it by using right-click." //SKYRAT EDIT CHANGE
|
||||
desc = "It's a bucket."
|
||||
icon = 'icons/obj/janitor.dmi'
|
||||
icon_state = "bucket"
|
||||
inhand_icon_state = "bucket"
|
||||
@@ -238,8 +238,8 @@
|
||||
custom_materials = list(/datum/material/iron=200)
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
amount_per_transfer_from_this = 20
|
||||
possible_transfer_amounts = list(5,10,15,20,25,30,50,100) //SKYRAT EDIT CHANGE
|
||||
volume = 100 //SKYRAT EDIT CHANGE
|
||||
possible_transfer_amounts = list(5,10,15,20,25,30,50,70)
|
||||
volume = 70
|
||||
flags_inv = HIDEHAIR
|
||||
slot_flags = ITEM_SLOT_HEAD
|
||||
resistance_flags = NONE
|
||||
@@ -263,28 +263,14 @@
|
||||
armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 50)
|
||||
resistance_flags = FLAMMABLE
|
||||
|
||||
#define SQUEEZING_DISPERSAL_PERCENT 0.75 //SKYRAT EDIT ADDITION
|
||||
|
||||
/obj/item/reagent_containers/glass/bucket/attackby(obj/O, mob/living/user, params) //SKYRAT EDIT CHANGE
|
||||
if(istype(O, /obj/item/mop)) //SKYRAT EDIT CHANGE
|
||||
var/is_right_clicking = LAZYACCESS(params2list(params), RIGHT_CLICK)
|
||||
if(is_right_clicking)
|
||||
if(O.reagents.total_volume == 0)
|
||||
to_chat(user, "<span class='warning'>[O] is dry, you can't squeeze anything out!</span>")
|
||||
return
|
||||
if(reagents.total_volume == reagents.maximum_volume)
|
||||
to_chat(user, "<span class='warning'>[src] is full!</span>")
|
||||
return
|
||||
O.reagents.remove_any(O.reagents.total_volume*SQUEEZING_DISPERSAL_PERCENT)
|
||||
O.reagents.trans_to(src, O.reagents.total_volume, transfered_by = user)
|
||||
to_chat(user, "<span class='notice'>You squeeze the liquids from [O] to [src].</span>")
|
||||
/obj/item/reagent_containers/glass/bucket/attackby(obj/O, mob/user, params)
|
||||
if(istype(O, /obj/item/mop))
|
||||
if(reagents.total_volume < 1)
|
||||
to_chat(user, "<span class='warning'>[src] is out of water!</span>")
|
||||
else
|
||||
if(reagents.total_volume < 1)
|
||||
to_chat(user, "<span class='warning'>[src] is out of water!</span>")
|
||||
else
|
||||
reagents.trans_to(O, 5, transfered_by = user)
|
||||
to_chat(user, "<span class='notice'>You wet [O] in [src].</span>")
|
||||
playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE) //SKYRAT EDIT CHANGE END
|
||||
reagents.trans_to(O, 5, transfered_by = user)
|
||||
to_chat(user, "<span class='notice'>You wet [O] in [src].</span>")
|
||||
playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE)
|
||||
else if(isprox(O)) //This works with wooden buckets for now. Somewhat unintended, but maybe someone will add sprites for it soon(TM)
|
||||
to_chat(user, "<span class='notice'>You add [O] to [src].</span>")
|
||||
qdel(O)
|
||||
@@ -293,8 +279,6 @@
|
||||
else
|
||||
..()
|
||||
|
||||
#undef SQUEEZING_DISPERSAL_PERCENT //SKYRAT EDIT ADDITION
|
||||
|
||||
/obj/item/reagent_containers/glass/bucket/equipped(mob/user, slot)
|
||||
..()
|
||||
if (slot == ITEM_SLOT_HEAD)
|
||||
|
||||
@@ -25,10 +25,7 @@
|
||||
. = ..()
|
||||
if(. && obj_integrity > 0)
|
||||
if(tank_volume && (damage_flag == BULLET || damage_flag == LASER))
|
||||
//SKYRAT EDIT CHANGE
|
||||
var/guaranteed_violent = (damage_flag == BULLET || damage_flag == LASER)
|
||||
boom(damage_type, guaranteed_violent)
|
||||
//SKYRAT EDIT END
|
||||
boom()
|
||||
|
||||
/obj/structure/reagent_dispensers/attackby(obj/item/W, mob/user, params)
|
||||
if(W.is_refillable())
|
||||
@@ -53,7 +50,7 @@
|
||||
reagents.add_reagent(reagent_id, tank_volume)
|
||||
. = ..()
|
||||
|
||||
/obj/structure/reagent_dispensers/proc/boom(damage_type = BRUTE, guaranteed_violent = FALSE) //SKYRAT EDIT CHANGE
|
||||
/obj/structure/reagent_dispensers/proc/boom()
|
||||
visible_message("<span class='danger'>\The [src] ruptures!</span>")
|
||||
chem_splash(loc, 5, list(reagents))
|
||||
qdel(src)
|
||||
@@ -74,7 +71,7 @@
|
||||
name = "high-capacity water tank"
|
||||
desc = "A highly pressurized water tank made to hold gargantuan amounts of water."
|
||||
icon_state = "water_high" //I was gonna clean my room...
|
||||
tank_volume = 3000
|
||||
tank_volume = 100000
|
||||
|
||||
/obj/structure/reagent_dispensers/foamtank//SKYRAT EDIT - ICON OVERRIDEN BY AESTHETICS - SEE MODULE
|
||||
name = "firefighting foam tank"
|
||||
@@ -89,34 +86,30 @@
|
||||
icon_state = "fuel"
|
||||
reagent_id = /datum/reagent/fuel
|
||||
|
||||
/obj/structure/reagent_dispensers/fueltank/boom(damage_type = BRUTE, guaranteed_violent = FALSE) //SKYRAT EDIT CHANGE
|
||||
if(damage_type == BURN || guaranteed_violent)
|
||||
explosion(src, heavy_impact_range = 1, light_impact_range = 5, flame_range = 5)
|
||||
qdel(src)
|
||||
else
|
||||
. = ..()
|
||||
//SKYRAT EDIT END
|
||||
/obj/structure/reagent_dispensers/fueltank/boom()
|
||||
explosion(src, heavy_impact_range = 1, light_impact_range = 5, flame_range = 5)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/reagent_dispensers/fueltank/blob_act(obj/structure/blob/B)
|
||||
boom(guaranteed_violent = TRUE) //SKYRAT EDIT CHANGE
|
||||
boom()
|
||||
|
||||
/obj/structure/reagent_dispensers/fueltank/ex_act()
|
||||
boom(guaranteed_violent = TRUE) //SKYRAT EDIT CHANGE
|
||||
boom()
|
||||
|
||||
/obj/structure/reagent_dispensers/fueltank/fire_act(exposed_temperature, exposed_volume)
|
||||
boom(guaranteed_violent = TRUE) //SKYRAT EDIT CHANGE
|
||||
boom()
|
||||
|
||||
/obj/structure/reagent_dispensers/fueltank/zap_act(power, zap_flags)
|
||||
. = ..() //extend the zap
|
||||
if(ZAP_OBJ_DAMAGE & zap_flags)
|
||||
boom(guaranteed_violent = TRUE) //SKYRAT EDIT CHANGE
|
||||
boom()
|
||||
|
||||
/obj/structure/reagent_dispensers/fueltank/bullet_act(obj/projectile/P)
|
||||
. = ..()
|
||||
if(!QDELETED(src)) //wasn't deleted by the projectile's effects.
|
||||
if(!P.nodamage && ((P.damage_type == BURN) || (P.damage_type == BRUTE)))
|
||||
log_bomber(P.firer, "detonated a", src, "via projectile")
|
||||
boom(guaranteed_violent = TRUE) //SKYRAT EDIT CHANGE
|
||||
boom()
|
||||
|
||||
/obj/structure/reagent_dispensers/fueltank/attackby(obj/item/I, mob/living/user, params)
|
||||
if(I.tool_behaviour == TOOL_WELDER)
|
||||
@@ -135,7 +128,7 @@
|
||||
else
|
||||
user.visible_message("<span class='danger'>[user] catastrophically fails at refilling [user.p_their()] [I.name]!</span>", "<span class='userdanger'>That was stupid of you.</span>")
|
||||
log_bomber(user, "detonated a", src, "via welding tool")
|
||||
boom(guaranteed_violent = TRUE) //SKYRAT EDIT CHANGE
|
||||
boom()
|
||||
return
|
||||
return ..()
|
||||
|
||||
@@ -145,13 +138,9 @@
|
||||
icon_state = "fuel_high"
|
||||
tank_volume = 5000
|
||||
|
||||
/obj/structure/reagent_dispensers/fueltank/large/boom(damage_type = BRUTE, guaranteed_violent = FALSE) //SKYRAT EDIT CHANGE
|
||||
if(damage_type == BURN || guaranteed_violent)
|
||||
explosion(src, devastation_range = 1, heavy_impact_range = 2, light_impact_range = 7, flame_range = 12)
|
||||
qdel(src)
|
||||
else
|
||||
. = ..()
|
||||
//SKYRAT EDIT END
|
||||
/obj/structure/reagent_dispensers/fueltank/large/boom()
|
||||
explosion(src, devastation_range = 1, heavy_impact_range = 2, light_impact_range = 7, flame_range = 12)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/reagent_dispensers/peppertank
|
||||
name = "pepper spray refiller"
|
||||
|
||||
@@ -55,22 +55,6 @@ All ShuttleMove procs go here
|
||||
if(!shuttle_boundary)
|
||||
CRASH("A turf queued to move via shuttle somehow had no skipover in baseturfs. [src]([type]):[loc]")
|
||||
var/depth = baseturfs.len - shuttle_boundary + 1
|
||||
|
||||
//SKYRAT EDIT ADDITION
|
||||
if(newT.lgroup)
|
||||
newT.lgroup.remove_from_group(newT)
|
||||
if(newT.liquids)
|
||||
if(newT.liquids.immutable)
|
||||
newT.liquids.remove_turf(src)
|
||||
else
|
||||
qdel(newT.liquids, TRUE)
|
||||
|
||||
if(lgroup)
|
||||
lgroup.remove_from_group(src)
|
||||
if(liquids)
|
||||
liquids.ChangeToNewTurf(newT)
|
||||
newT.reasses_liquids()
|
||||
//SKYRAT EDIT END
|
||||
newT.CopyOnTop(src, 1, depth, TRUE)
|
||||
newT.blocks_air = TRUE
|
||||
newT.air_update_turf(TRUE, FALSE)
|
||||
|
||||
@@ -545,9 +545,6 @@ LAVALAND_BUDGET 60
|
||||
## Ice Moon Budget
|
||||
ICEMOON_BUDGET 90
|
||||
|
||||
## Ocean Budget
|
||||
OCEAN_BUDGET 60
|
||||
|
||||
## Space Ruin Budget
|
||||
Space_Budget 16
|
||||
|
||||
|
||||
@@ -36,8 +36,6 @@ endmap
|
||||
|
||||
map tramstation
|
||||
minplayers 35
|
||||
|
||||
map waterkilostation
|
||||
votable
|
||||
endmap
|
||||
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
/proc/mix_color_from_reagent_list(list/reagent_list)
|
||||
var/mixcolor
|
||||
var/vol_counter = 0
|
||||
var/vol_temp
|
||||
var/cached_color
|
||||
var/datum/reagent/raw_reagent
|
||||
|
||||
for(var/reagent_type in reagent_list)
|
||||
vol_temp = reagent_list[reagent_type]
|
||||
vol_counter += vol_temp
|
||||
raw_reagent = reagent_type //Not initialized
|
||||
cached_color = initial(raw_reagent.color)
|
||||
|
||||
if(!mixcolor)
|
||||
mixcolor = cached_color
|
||||
else if (length(mixcolor) >= length(cached_color))
|
||||
mixcolor = BlendRGB(mixcolor, cached_color, vol_temp/vol_counter)
|
||||
else
|
||||
mixcolor = BlendRGB(cached_color, mixcolor, vol_temp/vol_counter)
|
||||
|
||||
return mixcolor
|
||||
@@ -1,80 +0,0 @@
|
||||
//Structure as this doesn't need any power to work
|
||||
/obj/structure/drain
|
||||
name = "drain"
|
||||
icon = 'modular_skyrat/modules/liquids/icons/obj/structures/drains.dmi'
|
||||
icon_state = "drain"
|
||||
desc = "Drainage inlet embedded in the floor to prevent flooding."
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
density = FALSE
|
||||
plane = FLOOR_PLANE
|
||||
layer = GAS_SCRUBBER_LAYER
|
||||
anchored = TRUE
|
||||
var/processing = FALSE
|
||||
var/drain_flat = 5
|
||||
var/drain_percent = 0.1
|
||||
var/welded = FALSE
|
||||
var/turf/my_turf //need to keep track of it for the signal, if in any bizarre cases something would be moving the drain
|
||||
|
||||
/obj/structure/drain/update_icon()
|
||||
. = ..()
|
||||
if(welded)
|
||||
icon_state = "[initial(icon_state)]_welded"
|
||||
else
|
||||
icon_state = "[initial(icon_state)]"
|
||||
|
||||
/obj/structure/drain/welder_act(mob/living/user, obj/item/I)
|
||||
..()
|
||||
if(!I.tool_start_check(user, amount=0))
|
||||
return TRUE
|
||||
|
||||
playsound(src, 'sound/items/welder2.ogg', 50, TRUE)
|
||||
to_chat(user, "<span class='notice'>You start [welded ? "unwelding" : "welding"] [src]...</span>")
|
||||
if(I.use_tool(src, user, 20))
|
||||
to_chat(user, "<span class='notice'>You [welded ? "unweld" : "weld"] [src].</span>")
|
||||
welded = !welded
|
||||
update_icon()
|
||||
if(welded)
|
||||
if(processing)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
processing = FALSE
|
||||
else if (my_turf.liquids)
|
||||
START_PROCESSING(SSobj, src)
|
||||
processing = TRUE
|
||||
return TRUE
|
||||
|
||||
/obj/structure/drain/process()
|
||||
if(!my_turf.liquids || my_turf.liquids.immutable)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
processing = FALSE
|
||||
return
|
||||
my_turf.liquids.liquid_simple_delete_flat(drain_flat + (drain_percent * my_turf.liquids.total_reagents))
|
||||
|
||||
/obj/structure/drain/Initialize()
|
||||
. = ..()
|
||||
if(!isturf(loc))
|
||||
stack_trace("Drain structure initialized not on a turf")
|
||||
my_turf = loc
|
||||
RegisterSignal(my_turf, COMSIG_TURF_LIQUIDS_CREATION, .proc/liquids_signal)
|
||||
if(my_turf.liquids)
|
||||
START_PROCESSING(SSobj, src)
|
||||
processing = TRUE
|
||||
|
||||
/obj/structure/drain/proc/liquids_signal()
|
||||
SIGNAL_HANDLER
|
||||
if(processing || welded)
|
||||
return
|
||||
START_PROCESSING(SSobj, src)
|
||||
processing = TRUE
|
||||
|
||||
/obj/structure/drain/Destroy()
|
||||
if(processing)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
UnregisterSignal(my_turf, COMSIG_TURF_LIQUIDS_CREATION)
|
||||
my_turf = null
|
||||
return ..()
|
||||
|
||||
/obj/structure/drain/big
|
||||
desc = "Drainage inlet embedded in the floor to prevent flooding. This one seems large."
|
||||
icon_state = "bigdrain"
|
||||
drain_percent = 0.3
|
||||
drain_flat = 15
|
||||
@@ -1,74 +0,0 @@
|
||||
/obj/item/stack/tile/iron/elevated
|
||||
name = "elevated floor tile"
|
||||
singular_name = "elevated floor tile"
|
||||
turf_type = /turf/open/floor/iron/elevated
|
||||
|
||||
/obj/item/stack/tile/iron/lowered
|
||||
name = "lowered floor tile"
|
||||
singular_name = "lowered floor tile"
|
||||
turf_type = /turf/open/floor/iron/lowered
|
||||
|
||||
/obj/item/stack/tile/iron/pool
|
||||
name = "pool floor tile"
|
||||
singular_name = "pool floor tile"
|
||||
turf_type = /turf/open/floor/iron/pool
|
||||
|
||||
/turf/open/floor/iron/pool
|
||||
name = "pool floor"
|
||||
floor_tile = /obj/item/stack/tile/iron/pool
|
||||
icon = 'modular_skyrat/modules/liquids/icons/turf/pool_tile.dmi'
|
||||
base_icon_state = "pool_tile"
|
||||
icon_state = "pool_tile"
|
||||
liquid_height = -30
|
||||
turf_height = -30
|
||||
|
||||
/turf/open/floor/iron/pool/setup_broken_states()
|
||||
return list("pool_tile")
|
||||
|
||||
/turf/open/floor/iron/pool/setup_burnt_states()
|
||||
return list("pool_tile")
|
||||
|
||||
/turf/open/floor/iron/pool/rust_heretic_act()
|
||||
return
|
||||
|
||||
/turf/open/floor/iron/elevated
|
||||
name = "elevated floor"
|
||||
floor_tile = /obj/item/stack/tile/iron/elevated
|
||||
icon = 'modular_skyrat/modules/liquids/icons/turf/elevated_plasteel.dmi'
|
||||
icon_state = "elevated_plasteel-0"
|
||||
base_icon_state = "elevated_plasteel"
|
||||
smoothing_flags = SMOOTH_BITMASK
|
||||
smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_ELEVATED_PLASTEEL)
|
||||
canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_ELEVATED_PLASTEEL)
|
||||
liquid_height = 30
|
||||
turf_height = 30
|
||||
|
||||
/turf/open/floor/iron/elevated/setup_broken_states()
|
||||
return list("elevated_plasteel")
|
||||
|
||||
/turf/open/floor/iron/elevated/setup_burnt_states()
|
||||
return list("elevated_plasteel")
|
||||
|
||||
/turf/open/floor/iron/elevated/rust_heretic_act()
|
||||
return
|
||||
|
||||
/turf/open/floor/iron/lowered
|
||||
name = "lowered floor"
|
||||
floor_tile = /obj/item/stack/tile/iron/lowered
|
||||
icon = 'modular_skyrat/modules/liquids/icons/turf/lowered_plasteel.dmi'
|
||||
icon_state = "lowered_plasteel-0"
|
||||
base_icon_state = "lowered_plasteel"
|
||||
smoothing_flags = SMOOTH_BITMASK
|
||||
smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_LOWERED_PLASTEEL)
|
||||
canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_LOWERED_PLASTEEL)
|
||||
liquid_height = -30
|
||||
turf_height = -30
|
||||
|
||||
/turf/open/floor/iron/lowered/setup_broken_states()
|
||||
return list("lowered_plasteel")
|
||||
|
||||
/turf/open/floor/iron/lowered/setup_burnt_states()
|
||||
return list("lowered_plasteel")
|
||||
|
||||
/turf/open/floor/iron/lowered/rust_heretic_act()
|
||||
return
|
||||
@@ -1,201 +0,0 @@
|
||||
/obj/machinery/plumbing/liquid_input_pump
|
||||
name = "liquid input pump"
|
||||
desc = "Pump used to siphon liquids from a location into the plumbing pipenet."
|
||||
icon = 'icons/obj/plumbing/plumbers.dmi'
|
||||
icon_state = "pump"
|
||||
anchored = FALSE
|
||||
density = TRUE
|
||||
idle_power_usage = 10
|
||||
active_power_usage = 1000
|
||||
buffer = 300
|
||||
|
||||
var/turned_on = FALSE
|
||||
var/height_regulator = 0
|
||||
|
||||
var/is_working = FALSE
|
||||
|
||||
var/drain_flat = 20
|
||||
var/drain_percent = 0.4
|
||||
|
||||
/obj/machinery/plumbing/liquid_input_pump/default_unfasten_wrench(mob/user, obj/item/I, time = 20)
|
||||
. = ..()
|
||||
if(. == SUCCESSFUL_UNFASTEN)
|
||||
turned_on = FALSE
|
||||
|
||||
/obj/machinery/plumbing/liquid_input_pump/attack_hand(mob/user)
|
||||
if(!anchored)
|
||||
to_chat(user, "<span class='warning'>[src] needs to be anchored first!</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You turn [src] [turned_on ? "off" : "on"].</span>")
|
||||
turned_on = !turned_on
|
||||
|
||||
/obj/machinery/plumbing/liquid_input_pump/CtrlClick(mob/living/user)
|
||||
if(anchored)
|
||||
return ..()
|
||||
if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE))
|
||||
return
|
||||
var/new_height = input(user, "Set new height regulation:\n([0]-[LIQUID_HEIGHT_CONSIDER_FULL_TILE]. Use 0 to disable the regulation)\nThe pump will only siphon if environment is above the regulation", "Liquid Pump") as num|null
|
||||
if(QDELETED(src))
|
||||
return
|
||||
if(new_height)
|
||||
height_regulator = sanitize_integer(new_height, 0, LIQUID_HEIGHT_CONSIDER_FULL_TILE, 0)
|
||||
|
||||
/obj/machinery/plumbing/liquid_input_pump/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>It's currently [turned_on ? "ON" : "OFF"].</span>"
|
||||
. += "<span class='notice'>It's height regulator [height_regulator ? "points at [height_regulator]" : "is disabled"]. (Ctrl-click to change)</span>"
|
||||
|
||||
/obj/machinery/plumbing/liquid_input_pump/Initialize(mapload, bolt)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/plumbing/simple_supply, bolt)
|
||||
|
||||
/obj/machinery/plumbing/liquid_input_pump/update_icon_state()
|
||||
. = ..()
|
||||
if(panel_open)
|
||||
icon_state = initial(icon_state) + "-open"
|
||||
else if(is_working)
|
||||
icon_state = initial(icon_state) + "-on"
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
/obj/machinery/plumbing/liquid_input_pump/proc/can_pump()
|
||||
if(!turned_on || !anchored || panel_open || !isturf(loc) || reagents.total_volume == reagents.maximum_volume)
|
||||
return FALSE
|
||||
|
||||
var/turf/T = loc
|
||||
|
||||
if(!T.liquids)
|
||||
return FALSE
|
||||
|
||||
if(height_regulator && T.liquids.height < height_regulator)
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/plumbing/liquid_input_pump/process(delta_time)
|
||||
var/last_pumped = is_working
|
||||
is_working = can_pump()
|
||||
if(is_working != last_pumped)
|
||||
update_icon_state()
|
||||
if(!is_working)
|
||||
return
|
||||
|
||||
var/turf/T = loc
|
||||
|
||||
var/target_value = delta_time * (drain_flat + (T.liquids.total_reagents * drain_percent))
|
||||
//Free space handling
|
||||
var/free_space = reagents.maximum_volume - reagents.total_volume
|
||||
if(target_value > free_space)
|
||||
target_value = free_space
|
||||
|
||||
var/datum/reagents/tempr = T.liquids.take_reagents_flat(target_value)
|
||||
tempr.trans_to(src, tempr.total_volume)
|
||||
qdel(tempr)
|
||||
|
||||
/obj/machinery/plumbing/liquid_output_pump
|
||||
name = "liquid output pump"
|
||||
desc = "Pump used to dump liquids out from a plumbing pipenet into a location."
|
||||
icon = 'icons/obj/plumbing/plumbers.dmi'
|
||||
icon_state = "pump"
|
||||
anchored = FALSE
|
||||
density = TRUE
|
||||
idle_power_usage = 10
|
||||
active_power_usage = 1000
|
||||
buffer = 300
|
||||
|
||||
var/turned_on = FALSE
|
||||
var/height_regulator = 0
|
||||
|
||||
var/is_working = FALSE
|
||||
|
||||
var/drain_flat = 20
|
||||
var/drain_percent = 0.4
|
||||
|
||||
/obj/machinery/plumbing/liquid_output_pump/default_unfasten_wrench(mob/user, obj/item/I, time = 20)
|
||||
. = ..()
|
||||
if(. == SUCCESSFUL_UNFASTEN)
|
||||
turned_on = FALSE
|
||||
|
||||
/obj/machinery/plumbing/liquid_output_pump/attack_hand(mob/user)
|
||||
if(!anchored)
|
||||
to_chat(user, "<span class='warning'>[src] needs to be anchored first!</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You turn [src] [turned_on ? "off" : "on"].</span>")
|
||||
turned_on = !turned_on
|
||||
|
||||
/obj/machinery/plumbing/liquid_output_pump/CtrlClick(mob/living/user)
|
||||
if(anchored)
|
||||
return ..()
|
||||
if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE))
|
||||
return
|
||||
var/new_height = input(user, "Set new height regulation:\n([0]-[LIQUID_HEIGHT_CONSIDER_FULL_TILE]. Use 0 to disable the regulation)\nThe pump will only siphon if environment is below the regulation", "Liquid Pump") as num|null
|
||||
if(QDELETED(src))
|
||||
return
|
||||
if(new_height)
|
||||
height_regulator = sanitize_integer(new_height, 0, LIQUID_HEIGHT_CONSIDER_FULL_TILE, 0)
|
||||
|
||||
/obj/machinery/plumbing/liquid_output_pump/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>It's currently [turned_on ? "ON" : "OFF"].</span>"
|
||||
. += "<span class='notice'>It's height regulator [height_regulator ? "points at [height_regulator]" : "is disabled"]. (Ctrl-click to change)</span>"
|
||||
|
||||
/obj/machinery/plumbing/liquid_output_pump/proc/can_pump()
|
||||
if(!turned_on || !anchored || panel_open || !isturf(loc) || reagents.total_volume == 0)
|
||||
return FALSE
|
||||
if(height_regulator)
|
||||
var/turf/T = loc
|
||||
if(T.liquids && T.liquids.height >= height_regulator)
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/plumbing/liquid_output_pump/process(delta_time)
|
||||
var/last_pumped = is_working
|
||||
is_working = can_pump()
|
||||
if(is_working != last_pumped)
|
||||
update_icon_state()
|
||||
if(!is_working)
|
||||
return
|
||||
|
||||
var/turf/T = loc
|
||||
|
||||
var/target_value = delta_time * (drain_flat + (reagents.total_volume * drain_percent))
|
||||
if(target_value > reagents.total_volume)
|
||||
target_value = reagents.total_volume
|
||||
|
||||
var/datum/reagents/tempr = new(10000)
|
||||
reagents.trans_to(tempr, target_value, no_react = TRUE)
|
||||
T.add_liquid_from_reagents(tempr)
|
||||
qdel(tempr)
|
||||
|
||||
/obj/machinery/plumbing/liquid_output_pump/Initialize(mapload, bolt)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/plumbing/simple_demand, bolt)
|
||||
|
||||
/obj/machinery/plumbing/liquid_output_pump/update_icon_state()
|
||||
. = ..()
|
||||
if(panel_open)
|
||||
icon_state = initial(icon_state) + "-open"
|
||||
else if(is_working)
|
||||
icon_state = initial(icon_state) + "-on"
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
/obj/item/construction/plumbing/engineering
|
||||
name = "engineering plumbing constructor"
|
||||
desc = "A type of plumbing constructor designed to rapidly deploy the machines needed for logistics regarding fluids."
|
||||
icon = 'modular_skyrat/modules/liquids/icons/obj/tools.dmi'
|
||||
icon_state = "plumberer_engi"
|
||||
has_ammobar = TRUE
|
||||
|
||||
/obj/item/construction/plumbing/engineering/set_plumbing_designs()
|
||||
plumbing_design_types = list(
|
||||
/obj/machinery/plumbing/input = 5,
|
||||
/obj/machinery/plumbing/output = 5,
|
||||
/obj/machinery/plumbing/tank = 20,
|
||||
/obj/machinery/plumbing/acclimator = 10,
|
||||
/obj/machinery/plumbing/filter = 5,
|
||||
/obj/machinery/plumbing/splitter = 5,
|
||||
/obj/machinery/plumbing/disposer = 10,
|
||||
/obj/machinery/plumbing/liquid_input_pump = 20,
|
||||
/obj/machinery/plumbing/liquid_output_pump = 20
|
||||
)
|
||||
@@ -1,101 +0,0 @@
|
||||
//Right now it's a structure that works off of magic, as it'd require an internal power source for what its supposed to do
|
||||
/obj/structure/liquid_pump
|
||||
name = "portable liquid pump"
|
||||
desc = "An industrial grade pump, capable of either siphoning or spewing liquids. Needs to be anchored first to work. Has a limited capacity internal storage."
|
||||
icon = 'modular_skyrat/modules/liquids/icons/obj/structures/liquid_pump.dmi'
|
||||
icon_state = "liquid_pump"
|
||||
density = TRUE
|
||||
max_integrity = 500
|
||||
anchored = FALSE
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
/// How many reagents at maximum can it hold
|
||||
var/max_volume = 10000
|
||||
/// Whether spewing reagents out, instead of siphoning them
|
||||
var/spewing_mode = FALSE
|
||||
/// Whether its turned on and processing
|
||||
var/turned_on = FALSE
|
||||
/// How fast does the pump work, in percentages relative to the volume we're working with
|
||||
var/pump_speed_percentage = 0.4
|
||||
/// How fast does the pump work, in flat values. Flat values on top of percentages to help processing
|
||||
var/pump_speed_flat = 20
|
||||
|
||||
/obj/structure/liquid_pump/wrench_act(mob/living/user, obj/item/I)
|
||||
. = ..()
|
||||
default_unfasten_wrench(user, I, 40)
|
||||
if(!anchored && turned_on)
|
||||
toggle_working()
|
||||
return TRUE
|
||||
|
||||
/obj/structure/liquid_pump/attack_hand(mob/user)
|
||||
if(!anchored)
|
||||
to_chat(user, "<span class='warning'>[src] needs to be anchored first!</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You turn [src] [turned_on ? "off" : "on"].</span>")
|
||||
toggle_working()
|
||||
|
||||
/obj/structure/liquid_pump/AltClick(mob/living/user)
|
||||
if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You flick [src]'s spewing mode [spewing_mode ? "off" : "on"].</span>")
|
||||
spewing_mode = !spewing_mode
|
||||
update_icon()
|
||||
|
||||
/obj/structure/liquid_pump/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>It's anchor bolts are [anchored ? "down and secured" : "up"].</span>"
|
||||
. += "<span class='notice'>It's currently [turned_on ? "ON" : "OFF"].</span>"
|
||||
. += "<span class='notice'>It's mode currently is set to [spewing_mode ? "SPEWING" : "SIPHONING"].</span> (Alt-click to switch)"
|
||||
. += "<span class='notice'>The pressure gauge shows [reagents.total_volume]/[reagents.maximum_volume].</span>"
|
||||
|
||||
/obj/structure/liquid_pump/process()
|
||||
if(!isturf(loc))
|
||||
return
|
||||
var/turf/T = loc
|
||||
if(spewing_mode)
|
||||
if(!reagents.total_volume)
|
||||
return
|
||||
var/datum/reagents/tempr = new(10000)
|
||||
reagents.trans_to(tempr, (reagents.total_volume * pump_speed_percentage) + pump_speed_flat, no_react = TRUE)
|
||||
T.add_liquid_from_reagents(tempr)
|
||||
qdel(tempr)
|
||||
else
|
||||
if(!T.liquids)
|
||||
return
|
||||
var/free_space = reagents.maximum_volume - reagents.total_volume
|
||||
if(!free_space)
|
||||
return
|
||||
var/target_siphon_amt = (T.liquids.total_reagents * pump_speed_percentage) + pump_speed_flat
|
||||
if(target_siphon_amt > free_space)
|
||||
target_siphon_amt = free_space
|
||||
var/datum/reagents/tempr = T.liquids.take_reagents_flat(target_siphon_amt)
|
||||
tempr.trans_to(reagents, tempr.total_volume)
|
||||
qdel(tempr)
|
||||
return
|
||||
|
||||
/obj/structure/liquid_pump/update_icon()
|
||||
. = ..()
|
||||
if(turned_on)
|
||||
if(spewing_mode)
|
||||
icon_state = "[initial(icon_state)]_spewing"
|
||||
else
|
||||
icon_state = "[initial(icon_state)]_siphoning"
|
||||
else
|
||||
icon_state = "[initial(icon_state)]"
|
||||
|
||||
/obj/structure/liquid_pump/proc/toggle_working()
|
||||
if(turned_on)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
else
|
||||
START_PROCESSING(SSobj, src)
|
||||
turned_on = !turned_on
|
||||
update_icon()
|
||||
|
||||
/obj/structure/liquid_pump/Initialize()
|
||||
. = ..()
|
||||
create_reagents(max_volume)
|
||||
|
||||
/obj/structure/liquid_pump/Destroy()
|
||||
if(turned_on)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
qdel(reagents)
|
||||
return ..()
|
||||
@@ -1,44 +0,0 @@
|
||||
/**
|
||||
* Liquid Height element; for dynamically applying liquid blockages.
|
||||
*
|
||||
* Used for reinforced tables, sandbags, and the likes.
|
||||
*/
|
||||
/datum/element/liquids_height
|
||||
element_flags = ELEMENT_BESPOKE | ELEMENT_DETACH
|
||||
id_arg_index = 2
|
||||
|
||||
///Height applied by this element
|
||||
var/height_applied
|
||||
|
||||
/datum/element/liquids_height/Attach(datum/target, height_applied)
|
||||
. = ..()
|
||||
if(!ismovable(target))
|
||||
return ELEMENT_INCOMPATIBLE
|
||||
|
||||
src.height_applied = height_applied
|
||||
|
||||
RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/on_target_move)
|
||||
var/atom/movable/movable_target = target
|
||||
if(isturf(movable_target.loc))
|
||||
var/turf/turf_loc = movable_target.loc
|
||||
turf_loc.liquid_height += height_applied
|
||||
turf_loc.reasses_liquids()
|
||||
|
||||
/datum/element/liquids_height/Detach(atom/movable/target)
|
||||
. = ..()
|
||||
UnregisterSignal(target, list(COMSIG_MOVABLE_MOVED))
|
||||
var/atom/movable/movable_target = target
|
||||
if(isturf(movable_target.loc))
|
||||
var/turf/turf_loc = movable_target.loc
|
||||
turf_loc.liquid_height -= height_applied
|
||||
turf_loc.reasses_liquids()
|
||||
|
||||
/datum/element/liquids_height/proc/on_target_move(atom/movable/source, atom/OldLoc, Dir, Forced = FALSE)
|
||||
if(isturf(OldLoc))
|
||||
var/turf/old_turf = OldLoc
|
||||
old_turf.liquid_height += height_applied
|
||||
old_turf.reasses_liquids()
|
||||
if(isturf(source.loc))
|
||||
var/turf/new_turf = source.loc
|
||||
new_turf.liquid_height -= height_applied
|
||||
new_turf.reasses_liquids()
|
||||
@@ -1,28 +0,0 @@
|
||||
///This element allows for items to interact with liquids on turfs.
|
||||
/datum/element/liquids_interaction
|
||||
element_flags = ELEMENT_BESPOKE | ELEMENT_DETACH
|
||||
id_arg_index = 2
|
||||
///Callback interaction called when the turf has some liquids on it
|
||||
var/datum/callback/interaction_callback
|
||||
|
||||
/datum/element/liquids_interaction/Attach(obj/item/target, on_interaction_callback)
|
||||
. = ..()
|
||||
if(!istype(target))
|
||||
return ELEMENT_INCOMPATIBLE
|
||||
if(!src.interaction_callback)
|
||||
src.interaction_callback = CALLBACK(target, on_interaction_callback)
|
||||
|
||||
RegisterSignal(target, COMSIG_ITEM_AFTERATTACK, .proc/AfterAttack) //The only signal allowing item -> turf interaction
|
||||
|
||||
/datum/element/liquids_interaction/Detach(mob/living/target)
|
||||
UnregisterSignal(target, COMSIG_ITEM_AFTERATTACK)
|
||||
|
||||
/datum/element/liquids_interaction/proc/AfterAttack(obj/item/target, atom/target2, mob/user)
|
||||
SIGNAL_HANDLER
|
||||
if(!isturf(target2))
|
||||
return
|
||||
var/turf/T = target2
|
||||
if(!T.liquids)
|
||||
return
|
||||
if(interaction_callback.Invoke(target, target2, user, T.liquids))
|
||||
return COMPONENT_CANCEL_ATTACK_CHAIN
|
||||
@@ -1,38 +0,0 @@
|
||||
/area/ocean
|
||||
name = "Ocean"
|
||||
icon_state = "space"
|
||||
requires_power = TRUE
|
||||
always_unpowered = TRUE
|
||||
power_light = FALSE
|
||||
power_equip = FALSE
|
||||
power_environ = FALSE
|
||||
area_flags = NO_ALERTS
|
||||
outdoors = TRUE
|
||||
ambience_index = AMBIENCE_SPACE
|
||||
flags_1 = CAN_BE_DIRTY_1
|
||||
sound_environment = SOUND_AREA_SPACE
|
||||
|
||||
/area/ocean/generated
|
||||
map_generator = /datum/map_generator/ocean_generator
|
||||
|
||||
/area/ocean/trench
|
||||
area_flags = CAVES_ALLOWED | FLORA_ALLOWED | MOB_SPAWN_ALLOWED | NO_ALERTS
|
||||
name = "The Trench"
|
||||
|
||||
/area/ocean/trench/generated
|
||||
map_generator = /datum/map_generator/cave_generator/trench
|
||||
|
||||
/area/ruin/ocean
|
||||
has_gravity = TRUE
|
||||
|
||||
/area/ruin/ocean/listening_outpost
|
||||
area_flags = UNIQUE_AREA
|
||||
|
||||
/area/ruin/ocean/bunker
|
||||
area_flags = UNIQUE_AREA
|
||||
|
||||
/area/ruin/ocean/bioweapon_research
|
||||
area_flags = UNIQUE_AREA
|
||||
|
||||
/area/ruin/ocean/mining_site
|
||||
area_flags = UNIQUE_AREA
|
||||
@@ -1,37 +0,0 @@
|
||||
/datum/biome/ocean_sand
|
||||
turf_type = /turf/open/floor/plating/ocean
|
||||
flora_types = list(/obj/effect/spawner/ocean_curio, /obj/structure/flora/rock, /obj/structure/flora/rock/pile, /obj/structure/flora/ocean/glowweed, /obj/structure/flora/ocean/seaweed, /obj/structure/flora/ocean/longseaweed)
|
||||
flora_density = 10
|
||||
|
||||
/datum/biome/ocean_sand_flora
|
||||
turf_type = /turf/open/floor/plating/ocean
|
||||
flora_types = list(/obj/effect/spawner/ocean_curio, /obj/structure/flora/rock/pile, /obj/structure/flora/ocean/glowweed, /obj/structure/flora/ocean/seaweed, /obj/structure/flora/ocean/longseaweed, /obj/structure/flora/ocean/coral)
|
||||
flora_density = 25
|
||||
fauna_density = 0.03
|
||||
fauna_types = list(/mob/living/simple_animal/hostile/carp)
|
||||
|
||||
/datum/biome/ocean_redsand
|
||||
turf_type = /turf/open/floor/plating/ocean/ironsand
|
||||
flora_types = list(/obj/effect/spawner/ocean_curio, /obj/structure/flora/rock/pile, /obj/structure/flora/ocean/glowweed, /obj/structure/flora/ocean/seaweed, /obj/structure/flora/ocean/longseaweed, /obj/structure/flora/ocean/coral)
|
||||
flora_density = 40
|
||||
fauna_density = 0.06
|
||||
fauna_types = list(/mob/living/simple_animal/hostile/carp)
|
||||
|
||||
/datum/biome/ocean_rocklight
|
||||
turf_type = /turf/open/floor/plating/ocean/rock
|
||||
flora_types = list(/obj/effect/spawner/ocean_curio/rock, /obj/structure/flora/rock, /obj/structure/flora/rock/pile)
|
||||
flora_density = 3
|
||||
|
||||
/datum/biome/ocean_rockmed
|
||||
turf_type = /turf/open/floor/plating/ocean/rock/medium
|
||||
flora_types = list(/obj/effect/spawner/ocean_curio/rock, /obj/structure/flora/rock, /obj/structure/flora/rock/pile)
|
||||
flora_density = 5
|
||||
|
||||
/datum/biome/ocean_rockheavy
|
||||
turf_type = /turf/open/floor/plating/ocean/rock/heavy
|
||||
flora_types = list(/obj/effect/spawner/ocean_curio/rock, /obj/structure/flora/rock, /obj/structure/flora/rock/pile)
|
||||
flora_density = 7
|
||||
|
||||
/datum/biome/ocean_wall
|
||||
turf_type = /turf/closed/mineral/random/stationside/ocean
|
||||
flora_density = 0
|
||||
@@ -1,137 +0,0 @@
|
||||
/obj/structure/flora/ocean
|
||||
icon = 'modular_skyrat/modules/liquids/icons/obj/flora/ocean_flora.dmi'
|
||||
var/random_variants = 0
|
||||
|
||||
/obj/structure/flora/ocean/Initialize()
|
||||
. = ..()
|
||||
if(random_variants)
|
||||
icon_state = "[icon_state][rand(1,random_variants)]"
|
||||
|
||||
/obj/structure/flora/ocean/glowweed
|
||||
name = "glow weed"
|
||||
icon_state = "glowweed"
|
||||
desc = "A plant with glowing bulbs at the end of it."
|
||||
random_variants = 3
|
||||
light_color = LIGHT_COLOR_CYAN
|
||||
light_range = 1.5
|
||||
|
||||
/obj/structure/flora/ocean/seaweed
|
||||
name = "sea weed"
|
||||
icon_state = "seaweed"
|
||||
desc = "Just your regular seaweed."
|
||||
random_variants = 5
|
||||
|
||||
/obj/structure/flora/ocean/longseaweed
|
||||
name ="sea weed"
|
||||
icon_state = "longseaweed"
|
||||
desc = "Less so regular seaweed. This one is very long."
|
||||
random_variants = 4
|
||||
|
||||
/obj/structure/flora/ocean/coral
|
||||
name = "coral"
|
||||
icon_state = "coral"
|
||||
desc = "Beautiful coral."
|
||||
random_variants = 3
|
||||
density = TRUE
|
||||
|
||||
#define SCRAP_WELD_LOW 7
|
||||
#define SCRAP_WELD_HIGH 12
|
||||
|
||||
#define SCRAP_METAL_YIELD_LOW 12
|
||||
#define SCRAP_METAL_YIELD_HIGH 20
|
||||
|
||||
/obj/structure/flora/scrap
|
||||
name = "scrap metal"
|
||||
desc = "A huge chunk of metal, rusted and worn. Perhaps it can still be salvaged into something useful."
|
||||
icon = 'modular_skyrat/modules/liquids/icons/obj/flora/scrap.dmi'
|
||||
icon_state = "scrap"
|
||||
anchored = FALSE
|
||||
density = TRUE
|
||||
var/random_variants = 3
|
||||
var/welds_remaining = 0
|
||||
|
||||
/obj/structure/flora/scrap/Initialize()
|
||||
. = ..()
|
||||
welds_remaining = rand(SCRAP_WELD_LOW, SCRAP_WELD_HIGH)
|
||||
if(random_variants)
|
||||
icon_state = "[icon_state][rand(1,random_variants)]"
|
||||
|
||||
/obj/structure/flora/scrap/welder_act(mob/living/user, obj/item/I, first = TRUE)
|
||||
..()
|
||||
if(!I.tool_start_check(user, amount=0))
|
||||
return TRUE
|
||||
|
||||
playsound(src, 'sound/items/welder2.ogg', 50, TRUE)
|
||||
if(first)
|
||||
to_chat(user, "<span class='notice'>You start slicing the [src]...</span>")
|
||||
if(I.use_tool(src, user, 2 SECONDS))
|
||||
welds_remaining--
|
||||
if(welds_remaining <= 0)
|
||||
to_chat(user, "<span class='notice'>You successfully salvage [src].</span>")
|
||||
new /obj/item/stack/sheet/iron(get_turf(src), rand(SCRAP_METAL_YIELD_LOW, SCRAP_METAL_YIELD_HIGH))
|
||||
qdel(src)
|
||||
else
|
||||
welder_act(user, I, FALSE)
|
||||
return TRUE
|
||||
|
||||
#undef SCRAP_WELD_LOW
|
||||
#undef SCRAP_WELD_HIGH
|
||||
|
||||
#undef SCRAP_METAL_YIELD_LOW
|
||||
#undef SCRAP_METAL_YIELD_HIGH
|
||||
|
||||
/obj/effect/spawner/liquids_spawner
|
||||
name = "Liquids Spawner"
|
||||
var/reagent_list = list(/datum/reagent/water = ONE_LIQUIDS_HEIGHT*LIQUID_WAIST_LEVEL_HEIGHT)
|
||||
var/temp = T20C
|
||||
|
||||
/obj/effect/spawner/liquids_spawner/Initialize(mapload)
|
||||
..()
|
||||
if(!isturf(loc))
|
||||
return INITIALIZE_HINT_QDEL
|
||||
var/turf/T = loc
|
||||
T.add_liquid_list(reagent_list, FALSE, temp)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
/obj/effect/spawner/liquids_spawner/acid_puddle
|
||||
reagent_list = list(/datum/reagent/toxin/acid = ONE_LIQUIDS_HEIGHT)
|
||||
|
||||
/obj/effect/spawner/liquids_spawner/acid_waist
|
||||
reagent_list = list(/datum/reagent/toxin/acid = ONE_LIQUIDS_HEIGHT*LIQUID_WAIST_LEVEL_HEIGHT)
|
||||
|
||||
/obj/effect/spawner/ocean_curio
|
||||
name = "Ocean Curio Spawner"
|
||||
var/default_1 = /obj/structure/flora/ocean/seaweed
|
||||
var/default_2 = /obj/structure/flora/ocean/longseaweed
|
||||
var/allowed_area_types = list(/area/ocean = TRUE, /area/ocean/generated = TRUE)
|
||||
|
||||
/obj/effect/spawner/ocean_curio/Initialize(mapload)
|
||||
..()
|
||||
|
||||
//Way to not spawn stuff inside ruins etc.
|
||||
var/area/A = get_area(src)
|
||||
if(!allowed_area_types[A.type])
|
||||
return INITIALIZE_HINT_QDEL
|
||||
var/turf/T = get_turf(src)
|
||||
if(T.turf_flags & NO_RUINS)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
var/to_spawn_path
|
||||
|
||||
var/random = rand(1,80)
|
||||
switch(random)
|
||||
if(1 to 3)
|
||||
to_spawn_path = /obj/structure/flora/scrap
|
||||
if(4 to 6) //Ocean trash, I guess
|
||||
to_spawn_path = /obj/effect/spawner/lootdrop/maintenance
|
||||
else
|
||||
if(prob(50))
|
||||
to_spawn_path = default_1
|
||||
else
|
||||
to_spawn_path = default_2
|
||||
new to_spawn_path(T)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
/obj/effect/spawner/ocean_curio/rock
|
||||
default_1 = /obj/structure/flora/rock
|
||||
default_2 = /obj/structure/flora/rock/pile
|
||||
@@ -1,95 +0,0 @@
|
||||
//Mostly a copypaste of the jungle generator
|
||||
/datum/map_generator/ocean_generator
|
||||
///2D list of all biomes based on heat and humidity combos.
|
||||
var/list/possible_biomes = list(
|
||||
BIOME_LOW_HEAT = list(
|
||||
BIOME_LOW_HUMIDITY = /datum/biome/ocean_sand,
|
||||
BIOME_LOWMEDIUM_HUMIDITY = /datum/biome/ocean_sand_flora,
|
||||
BIOME_HIGHMEDIUM_HUMIDITY = /datum/biome/ocean_sand_flora,
|
||||
BIOME_HIGH_HUMIDITY = /datum/biome/ocean_sand
|
||||
),
|
||||
BIOME_LOWMEDIUM_HEAT = list(
|
||||
BIOME_LOW_HUMIDITY = /datum/biome/ocean_rocklight,
|
||||
BIOME_LOWMEDIUM_HUMIDITY = /datum/biome/ocean_sand,
|
||||
BIOME_HIGHMEDIUM_HUMIDITY = /datum/biome/ocean_redsand,
|
||||
BIOME_HIGH_HUMIDITY = /datum/biome/ocean_sand_flora
|
||||
),
|
||||
BIOME_HIGHMEDIUM_HEAT = list(
|
||||
BIOME_LOW_HUMIDITY = /datum/biome/ocean_rockmed,
|
||||
BIOME_LOWMEDIUM_HUMIDITY = /datum/biome/ocean_sand,
|
||||
BIOME_HIGHMEDIUM_HUMIDITY = /datum/biome/ocean_redsand,
|
||||
BIOME_HIGH_HUMIDITY =/datum/biome/ocean_redsand
|
||||
),
|
||||
BIOME_HIGH_HEAT = list(
|
||||
BIOME_LOW_HUMIDITY = /datum/biome/ocean_rockheavy,
|
||||
BIOME_LOWMEDIUM_HUMIDITY = /datum/biome/ocean_sand,
|
||||
BIOME_HIGHMEDIUM_HUMIDITY = /datum/biome/ocean_redsand,
|
||||
BIOME_HIGH_HUMIDITY = /datum/biome/ocean_redsand
|
||||
)
|
||||
)
|
||||
///Used to select "zoom" level into the perlin noise, higher numbers result in slower transitions
|
||||
var/perlin_zoom = 65
|
||||
|
||||
///Seeds the rust-g perlin noise with a random number.
|
||||
/datum/map_generator/ocean_generator/generate_terrain(list/turfs)
|
||||
. = ..()
|
||||
var/height_seed = rand(0, 50000)
|
||||
var/humidity_seed = rand(0, 50000)
|
||||
var/heat_seed = rand(0, 50000)
|
||||
|
||||
for(var/t in turfs) //Go through all the turfs and generate them
|
||||
var/turf/gen_turf = t
|
||||
|
||||
if(istype(gen_turf, /turf/open/space/mirage) || istype(gen_turf, /turf/open/openspace/ocean))
|
||||
continue
|
||||
|
||||
var/drift_x = (gen_turf.x + rand(-BIOME_RANDOM_SQUARE_DRIFT, BIOME_RANDOM_SQUARE_DRIFT)) / perlin_zoom
|
||||
var/drift_y = (gen_turf.y + rand(-BIOME_RANDOM_SQUARE_DRIFT, BIOME_RANDOM_SQUARE_DRIFT)) / perlin_zoom
|
||||
|
||||
var/height = text2num(rustg_noise_get_at_coordinates("[height_seed]", "[drift_x]", "[drift_y]"))
|
||||
|
||||
|
||||
var/datum/biome/selected_biome
|
||||
if(height <= 0.85) //If height is less than 0.85, we generate biomes based on the heat and humidity of the area.
|
||||
var/humidity = text2num(rustg_noise_get_at_coordinates("[humidity_seed]", "[drift_x]", "[drift_y]"))
|
||||
var/heat = text2num(rustg_noise_get_at_coordinates("[heat_seed]", "[drift_x]", "[drift_y]"))
|
||||
var/heat_level //Type of heat zone we're in LOW-MEDIUM-HIGH
|
||||
var/humidity_level //Type of humidity zone we're in LOW-MEDIUM-HIGH
|
||||
|
||||
switch(heat)
|
||||
if(0 to 0.25)
|
||||
heat_level = BIOME_LOW_HEAT
|
||||
if(0.25 to 0.5)
|
||||
heat_level = BIOME_LOWMEDIUM_HEAT
|
||||
if(0.5 to 0.75)
|
||||
heat_level = BIOME_HIGHMEDIUM_HEAT
|
||||
if(0.75 to 1)
|
||||
heat_level = BIOME_HIGH_HEAT
|
||||
switch(humidity)
|
||||
if(0 to 0.25)
|
||||
humidity_level = BIOME_LOW_HUMIDITY
|
||||
if(0.25 to 0.5)
|
||||
humidity_level = BIOME_LOWMEDIUM_HUMIDITY
|
||||
if(0.5 to 0.75)
|
||||
humidity_level = BIOME_HIGHMEDIUM_HUMIDITY
|
||||
if(0.75 to 1)
|
||||
humidity_level = BIOME_HIGH_HUMIDITY
|
||||
selected_biome = possible_biomes[heat_level][humidity_level]
|
||||
else //Over 0.85; It's a wall
|
||||
selected_biome = /datum/biome/ocean_wall
|
||||
selected_biome = SSmapping.biomes[selected_biome] //Get the instance of this biome from SSmapping
|
||||
selected_biome.generate_turf(gen_turf)
|
||||
CHECK_TICK
|
||||
|
||||
/datum/map_generator/cave_generator/trench
|
||||
name = "Trench Generator"
|
||||
open_turf_types = list(/turf/open/floor/plating/ocean/rock/heavy = 1)
|
||||
closed_turf_types = list(/turf/closed/mineral/random/ocean = 1)
|
||||
|
||||
feature_spawn_list = null
|
||||
|
||||
mob_spawn_list = list(/mob/living/simple_animal/hostile/carp = 1)
|
||||
mob_spawn_chance = 1
|
||||
|
||||
flora_spawn_chance = 4
|
||||
flora_spawn_list = list(/obj/structure/flora/rock = 1, /obj/structure/flora/rock/pile = 1)
|
||||
@@ -1,80 +0,0 @@
|
||||
/datum/map_template/ruin/ocean
|
||||
prefix = "_maps/RandomRuins/OceanRuins/"
|
||||
|
||||
/datum/map_template/ruin/ocean/fissure
|
||||
name = "Thermal Fissure"
|
||||
id = "ocean-fissure"
|
||||
description = "A tear in the ocean."
|
||||
suffix = "ocean_fissure.dmm"
|
||||
cost = 5
|
||||
|
||||
/datum/map_template/ruin/ocean/fissure/diag
|
||||
name = "Horizontal Thermal Fissure"
|
||||
id = "ocean-fissure-diag"
|
||||
description = "A horizontal tear in the ocean."
|
||||
suffix = "ocean_fissure_diag.dmm"
|
||||
|
||||
/datum/map_template/ruin/ocean/listening_outpost
|
||||
name = "Ocean Listening Outpost"
|
||||
id = "ocean-listening"
|
||||
description = "A listening outpost in the ocean."
|
||||
suffix = "ocean_listening_outpost.dmm"
|
||||
cost = 10
|
||||
allow_duplicates = FALSE
|
||||
|
||||
/datum/map_template/ruin/ocean/mining_site
|
||||
name = "Ocean Mining Site"
|
||||
id = "ocean-miningsite"
|
||||
description = "Ocean mining site."
|
||||
suffix = "ocean_mining_above.dmm"
|
||||
cost = 10
|
||||
allow_duplicates = FALSE
|
||||
always_spawn_with = list(/datum/map_template/ruin/ocean/mining_site_below = PLACE_BELOW)
|
||||
|
||||
/datum/map_template/ruin/ocean/mining_site_below
|
||||
name = "Ocean Mining Site Underground"
|
||||
id = "ocean-miningsite-ug"
|
||||
description = "Ocean mining site down."
|
||||
suffix = "ocean_mining_below.dmm"
|
||||
unpickable = TRUE
|
||||
|
||||
//Some copypastas ahead, but it's how our ruins spawning system works
|
||||
/datum/map_template/ruin/ocean_station
|
||||
prefix = "_maps/RandomRuins/OceanRuins/"
|
||||
|
||||
/datum/map_template/ruin/ocean_station/fissure
|
||||
name = "Thermal Fissure"
|
||||
id = "ocean-fissure"
|
||||
description = "A tear in the ocean."
|
||||
suffix = "ocean_fissure.dmm"
|
||||
cost = 5
|
||||
|
||||
/datum/map_template/ruin/ocean_station/fissure/diag
|
||||
name = "Horizontal Thermal Fissure"
|
||||
id = "ocean-fissure-diag"
|
||||
description = "A horizontal tear in the ocean."
|
||||
suffix = "ocean_fissure_diag.dmm"
|
||||
|
||||
/datum/map_template/ruin/trench
|
||||
prefix = "_maps/RandomRuins/OceanRuins/"
|
||||
|
||||
/datum/map_template/ruin/trench/biolab_research
|
||||
name = "Ocean Biolab Research Station"
|
||||
id = "ocean-biolab"
|
||||
description = "Biolab in the ocean."
|
||||
suffix = "ocean_bioweapon_lab.dmm"
|
||||
cost = 10
|
||||
allow_duplicates = FALSE
|
||||
|
||||
/datum/map_template/ruin/trench/fissure
|
||||
name = "Thermal Fissure"
|
||||
id = "ocean-fissure"
|
||||
description = "A tear in the ocean."
|
||||
suffix = "ocean_fissure.dmm"
|
||||
cost = 5
|
||||
|
||||
/datum/map_template/ruin/trench/fissure/diag
|
||||
name = "Horizontal Thermal Fissure"
|
||||
id = "ocean-fissure-diag"
|
||||
description = "A horizontal tear in the ocean."
|
||||
suffix = "ocean_fissure_diag.dmm"
|
||||
@@ -1,252 +0,0 @@
|
||||
/turf/open/openspace/ocean
|
||||
name = "ocean"
|
||||
planetary_atmos = TRUE
|
||||
baseturfs = /turf/open/openspace/ocean
|
||||
var/replacement_turf = /turf/open/floor/plating/ocean
|
||||
|
||||
/turf/open/openspace/ocean/Initialize()
|
||||
. = ..()
|
||||
var/turf/T = below()
|
||||
if(T.turf_flags & NO_RUINS)
|
||||
ChangeTurf(replacement_turf, null, CHANGETURF_IGNORE_AIR)
|
||||
return
|
||||
for(var/obj/structure/flora/plant in contents)
|
||||
qdel(plant)
|
||||
if(!ismineralturf(T))
|
||||
return
|
||||
var/turf/closed/mineral/M = T
|
||||
M.mineralAmt = 0
|
||||
M.gets_drilled()
|
||||
baseturfs = /turf/open/openspace/ocean //This is to ensure that IF random turf generation produces a openturf, there won't be other turfs assigned other than openspace.
|
||||
|
||||
/turf/open/openspace/ocean/Initialize()
|
||||
. = ..()
|
||||
if(liquids)
|
||||
if(liquids.immutable)
|
||||
liquids.remove_turf(src)
|
||||
else
|
||||
qdel(liquids, TRUE)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(/obj/effect/abstract/liquid_turf/immutable/ocean)
|
||||
new_immmutable.add_turf(src)
|
||||
|
||||
/turf/open/floor/plating/ocean/ironsand
|
||||
baseturfs = /turf/open/floor/plating/ocean/ironsand
|
||||
icon_state = "ironsand"
|
||||
base_icon_state = "ironsand"
|
||||
rand_variants = 15
|
||||
rand_chance = 100
|
||||
|
||||
/turf/open/floor/plating/ocean/rock
|
||||
name = "rock"
|
||||
baseturfs = /turf/open/floor/plating/ocean/rock
|
||||
icon = 'modular_skyrat/modules/liquids/icons/turf/seafloor.dmi'
|
||||
icon_state = "seafloor"
|
||||
base_icon_state = "seafloor"
|
||||
rand_variants = 0
|
||||
|
||||
/turf/open/floor/plating/ocean/rock/warm
|
||||
liquid_type = /obj/effect/abstract/liquid_turf/immutable/ocean/warm
|
||||
|
||||
/turf/open/floor/plating/ocean/rock/warm/fissure
|
||||
name = "fissure"
|
||||
icon = 'modular_skyrat/modules/liquids/icons/turf/fissure.dmi'
|
||||
icon_state = "fissure-0"
|
||||
base_icon_state = "fissure"
|
||||
smoothing_flags = SMOOTH_BITMASK
|
||||
smoothing_groups = list(SMOOTH_GROUP_FISSURE)
|
||||
canSmoothWith = list(SMOOTH_GROUP_FISSURE)
|
||||
light_range = 3
|
||||
light_color = LIGHT_COLOR_LAVA
|
||||
|
||||
/turf/open/floor/plating/ocean/rock/medium
|
||||
icon_state = "seafloor_med"
|
||||
base_icon_state = "seafloor_med"
|
||||
baseturfs = /turf/open/floor/plating/ocean/rock/medium
|
||||
|
||||
/turf/open/floor/plating/ocean/rock/heavy
|
||||
icon_state = "seafloor_heavy"
|
||||
base_icon_state = "seafloor_heavy"
|
||||
baseturfs = /turf/open/floor/plating/ocean/rock/heavy
|
||||
|
||||
/turf/open/floor/plating/ocean
|
||||
gender = PLURAL
|
||||
name = "ocean sand"
|
||||
baseturfs = /turf/open/floor/plating/ocean
|
||||
icon = 'icons/turf/floors.dmi'
|
||||
icon_state = "asteroid"
|
||||
base_icon_state = "asteroid"
|
||||
footstep = FOOTSTEP_SAND
|
||||
barefootstep = FOOTSTEP_SAND
|
||||
clawfootstep = FOOTSTEP_SAND
|
||||
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
|
||||
planetary_atmos = TRUE
|
||||
var/rand_variants = 12
|
||||
var/rand_chance = 30
|
||||
var/liquid_type = /obj/effect/abstract/liquid_turf/immutable/ocean
|
||||
|
||||
/turf/open/floor/plating/ocean/Initialize()
|
||||
. = ..()
|
||||
if(liquids)
|
||||
if(liquids.immutable)
|
||||
liquids.remove_turf(src)
|
||||
else
|
||||
qdel(liquids, TRUE)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(liquid_type)
|
||||
new_immmutable.add_turf(src)
|
||||
|
||||
if(rand_variants && prob(rand_chance))
|
||||
var/random = rand(1,rand_variants)
|
||||
icon_state = "[icon_state][random]"
|
||||
base_icon_state = "[icon_state][random]"
|
||||
|
||||
/turf/open/floor/plating/ocean_plating
|
||||
planetary_atmos = TRUE
|
||||
baseturfs = /turf/open/floor/plating/ocean_plating
|
||||
|
||||
/turf/open/floor/plating/ocean_plating/Initialize()
|
||||
. = ..()
|
||||
if(liquids)
|
||||
if(liquids.immutable)
|
||||
liquids.remove_turf(src)
|
||||
else
|
||||
qdel(liquids, TRUE)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(/obj/effect/abstract/liquid_turf/immutable/ocean)
|
||||
new_immmutable.add_turf(src)
|
||||
|
||||
/turf/open/floor/iron/ocean
|
||||
planetary_atmos = TRUE
|
||||
baseturfs = /turf/open/floor/iron/ocean
|
||||
|
||||
/turf/open/floor/iron/ocean/Initialize()
|
||||
. = ..()
|
||||
if(liquids)
|
||||
if(liquids.immutable)
|
||||
liquids.remove_turf(src)
|
||||
else
|
||||
qdel(liquids, TRUE)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(/obj/effect/abstract/liquid_turf/immutable/ocean)
|
||||
new_immmutable.add_turf(src)
|
||||
|
||||
/turf/closed/mineral/random/ocean
|
||||
baseturfs = /turf/open/floor/plating/ocean/rock/heavy
|
||||
turf_type = /turf/open/floor/plating/ocean/rock/heavy
|
||||
color = "#58606b"
|
||||
|
||||
/turf/closed/mineral/random/high_chance/ocean
|
||||
baseturfs = /turf/open/floor/plating/ocean/rock/heavy
|
||||
turf_type = /turf/open/floor/plating/ocean/rock/heavy
|
||||
color = "#58606b"
|
||||
|
||||
/turf/closed/mineral/random/low_chance/ocean
|
||||
baseturfs = /turf/open/floor/plating/ocean/rock/heavy
|
||||
turf_type = /turf/open/floor/plating/ocean/rock/heavy
|
||||
color = "#58606b"
|
||||
|
||||
//extremely low chance of rare ores, meant mostly for populating stations with large amounts of asteroid
|
||||
/turf/closed/mineral/random/stationside
|
||||
icon_state = "rock_nochance"
|
||||
mineralChance = 4
|
||||
mineralSpawnChanceList = list(
|
||||
/obj/item/stack/ore/uranium = 1, /obj/item/stack/ore/diamond = 1, /obj/item/stack/ore/gold = 3, /obj/item/stack/ore/titanium = 5,
|
||||
/obj/item/stack/ore/silver = 4, /obj/item/stack/ore/plasma = 3, /obj/item/stack/ore/iron = 50)
|
||||
|
||||
/turf/closed/mineral/random/stationside/ocean
|
||||
baseturfs = /turf/open/floor/plating/ocean/rock/heavy
|
||||
turf_type = /turf/open/floor/plating/ocean/rock/heavy
|
||||
color = "#58606b"
|
||||
|
||||
/obj/effect/abstract/liquid_turf/immutable/canal
|
||||
starting_mixture = list(/datum/reagent/water = 100)
|
||||
|
||||
/turf/open/floor/plating/canal
|
||||
gender = PLURAL
|
||||
name = "canal"
|
||||
baseturfs = /turf/open/floor/plating/canal
|
||||
icon = 'icons/turf/floors.dmi'
|
||||
icon_state = "asteroid"
|
||||
base_icon_state = "asteroid"
|
||||
footstep = FOOTSTEP_SAND
|
||||
barefootstep = FOOTSTEP_SAND
|
||||
clawfootstep = FOOTSTEP_SAND
|
||||
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
|
||||
liquid_height = -30
|
||||
turf_height = -30
|
||||
|
||||
/turf/open/floor/plating/canal/Initialize()
|
||||
. = ..()
|
||||
if(liquids)
|
||||
if(liquids.immutable)
|
||||
liquids.remove_turf(src)
|
||||
else
|
||||
qdel(liquids, TRUE)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(/obj/effect/abstract/liquid_turf/immutable/canal)
|
||||
new_immmutable.add_turf(src)
|
||||
|
||||
/turf/open/floor/plating/canal_mutable
|
||||
gender = PLURAL
|
||||
name = "canal"
|
||||
baseturfs = /turf/open/floor/plating/canal_mutable
|
||||
icon = 'icons/turf/floors.dmi'
|
||||
icon_state = "asteroid"
|
||||
base_icon_state = "asteroid"
|
||||
footstep = FOOTSTEP_SAND
|
||||
barefootstep = FOOTSTEP_SAND
|
||||
clawfootstep = FOOTSTEP_SAND
|
||||
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
|
||||
liquid_height = -30
|
||||
turf_height = -30
|
||||
|
||||
/turf/open/floor/iron/submarine
|
||||
name = "submarine floor"
|
||||
icon = 'modular_skyrat/modules/liquids/icons/turf/submarine.dmi'
|
||||
base_icon_state = "submarine_floor"
|
||||
icon_state = "submarine_floor"
|
||||
liquid_height = -30
|
||||
turf_height = -30
|
||||
|
||||
/turf/open/floor/iron/submarine/setup_broken_states()
|
||||
return list("submarine_floor")
|
||||
|
||||
/turf/open/floor/iron/submarine/setup_burnt_states()
|
||||
return list("submarine_floor")
|
||||
|
||||
/turf/open/floor/iron/submarine/rust_heretic_act()
|
||||
return
|
||||
|
||||
/turf/open/floor/iron/submarine_vents
|
||||
name = "submarine floor"
|
||||
icon = 'modular_skyrat/modules/liquids/icons/turf/submarine.dmi'
|
||||
base_icon_state = "submarine_vents"
|
||||
icon_state = "submarine_vents"
|
||||
liquid_height = -30
|
||||
turf_height = -30
|
||||
|
||||
/turf/open/floor/iron/submarine_vents/setup_broken_states()
|
||||
return list("submarine_vents")
|
||||
|
||||
/turf/open/floor/iron/submarine_vents/setup_burnt_states()
|
||||
return list("submarine_vents")
|
||||
|
||||
/turf/open/floor/iron/submarine_vents/rust_heretic_act()
|
||||
return
|
||||
|
||||
/turf/open/floor/iron/submarine_perf
|
||||
name = "submarine floor"
|
||||
icon = 'modular_skyrat/modules/liquids/icons/turf/submarine.dmi'
|
||||
base_icon_state = "submarine_perf"
|
||||
icon_state = "submarine_perf"
|
||||
liquid_height = -30
|
||||
turf_height = -30
|
||||
|
||||
/turf/open/floor/iron/submarine_perf/setup_broken_states()
|
||||
return list("submarine_perf")
|
||||
|
||||
/turf/open/floor/iron/submarine_perf/setup_burnt_states()
|
||||
return list("submarine_perf")
|
||||
|
||||
/turf/open/floor/iron/submarine_perf/rust_heretic_act()
|
||||
return
|
||||
|
||||
//For now just a titanium wall. I'll make sprites for it later
|
||||
/turf/closed/wall/mineral/titanium/submarine
|
||||
name = "submarine wall"
|
||||
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 519 B |
|
Before Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 588 B |
|
Before Width: | Height: | Size: 929 B |
|
Before Width: | Height: | Size: 833 B |
|
Before Width: | Height: | Size: 864 B |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 414 B |
|
Before Width: | Height: | Size: 16 KiB |
@@ -167,7 +167,6 @@
|
||||
#include "code\__DEFINES\~skyrat_defines\examine_defines.dm"
|
||||
#include "code\__DEFINES\~skyrat_defines\faction.dm"
|
||||
#include "code\__DEFINES\~skyrat_defines\factions.dm"
|
||||
#include "code\__DEFINES\~skyrat_defines\game_options.dm"
|
||||
#include "code\__DEFINES\~skyrat_defines\gun.dm"
|
||||
#include "code\__DEFINES\~skyrat_defines\icon_smoothing.dm"
|
||||
#include "code\__DEFINES\~skyrat_defines\integrated_electronics.dm"
|
||||
@@ -175,7 +174,6 @@
|
||||
#include "code\__DEFINES\~skyrat_defines\is_helpers.dm"
|
||||
#include "code\__DEFINES\~skyrat_defines\jobs.dm"
|
||||
#include "code\__DEFINES\~skyrat_defines\keybindings.dm"
|
||||
#include "code\__DEFINES\~skyrat_defines\liquids.dm"
|
||||
#include "code\__DEFINES\~skyrat_defines\logging.dm"
|
||||
#include "code\__DEFINES\~skyrat_defines\maintenance_loot.dm"
|
||||
#include "code\__DEFINES\~skyrat_defines\mapping.dm"
|
||||
@@ -3639,7 +3637,6 @@
|
||||
#include "modular_skyrat\master_files\code\modules\power\lighting.dm"
|
||||
#include "modular_skyrat\master_files\code\modules\projectiles\guns\gun.dm"
|
||||
#include "modular_skyrat\master_files\code\modules\projectiles\guns\ballistic\automatic.dm"
|
||||
#include "modular_skyrat\master_files\code\modules\reagents\chemistry\colors.dm"
|
||||
#include "modular_skyrat\master_files\code\modules\research\designs\misc_designs.dm"
|
||||
#include "modular_skyrat\master_files\code\modules\shuttle\shuttle.dm"
|
||||
#include "modular_skyrat\master_files\code\modules\spells\wizard.dm"
|
||||
@@ -4159,19 +4156,6 @@
|
||||
#include "modular_skyrat\modules\jungle\code\game\objects\structures\flora.dm"
|
||||
#include "modular_skyrat\modules\large_doors\code\large_doors.dm"
|
||||
#include "modular_skyrat\modules\layer_shift\code\modules\mob\mob_movement.dm"
|
||||
#include "modular_skyrat\modules\liquids\code\drains.dm"
|
||||
#include "modular_skyrat\modules\liquids\code\height_floors.dm"
|
||||
#include "modular_skyrat\modules\liquids\code\liquid_plumbers.dm"
|
||||
#include "modular_skyrat\modules\liquids\code\liquid_pump.dm"
|
||||
#include "modular_skyrat\modules\liquids\code\liquids.dm"
|
||||
#include "modular_skyrat\modules\liquids\code\liquids_height.dm"
|
||||
#include "modular_skyrat\modules\liquids\code\liquids_interaction.dm"
|
||||
#include "modular_skyrat\modules\liquids\code\ocean_areas.dm"
|
||||
#include "modular_skyrat\modules\liquids\code\ocean_biomes.dm"
|
||||
#include "modular_skyrat\modules\liquids\code\ocean_flora.dm"
|
||||
#include "modular_skyrat\modules\liquids\code\ocean_mapgen.dm"
|
||||
#include "modular_skyrat\modules\liquids\code\ocean_ruins.dm"
|
||||
#include "modular_skyrat\modules\liquids\code\ocean_turfs.dm"
|
||||
#include "modular_skyrat\modules\lobbyscreen\code\change_titlescreen.dm"
|
||||
#include "modular_skyrat\modules\lobbyscreen\code\load_servers.dm"
|
||||
#include "modular_skyrat\modules\lobbyscreen\code\lobby.dm"
|
||||
|
||||