Fixes master 514 (#5927)

* a

* l

* Update sheet_types.dm
This commit is contained in:
Gandalf
2021-05-25 03:06:58 +01:00
committed by GitHub
parent 8f4b9b3e19
commit aab764575a
98 changed files with 1806 additions and 236478 deletions
File diff suppressed because it is too large Load Diff
@@ -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
"}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-1
View File
@@ -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
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-36
View File
@@ -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"
}
]
}
+3 -12
View File
@@ -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
-80
View File
@@ -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)
+20 -12
View File
@@ -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"
-3
View File
@@ -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"
+1 -4
View File
@@ -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)
/**
+2 -35
View File
@@ -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")
-4
View File
@@ -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))
-1
View File
@@ -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"
+3 -21
View File
@@ -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
-1
View File
@@ -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>"
+1 -29
View File
@@ -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)
+1 -4
View File
@@ -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
-52
View File
@@ -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)
-7
View File
@@ -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
*
-1
View File
@@ -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))
-1
View File
@@ -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)
-22
View File
@@ -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
-6
View File
@@ -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)
-1
View File
@@ -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
+9 -16
View File
@@ -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
+1 -10
View File
@@ -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)
+5 -41
View File
@@ -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)
+15 -26
View File
@@ -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"
-16
View File
@@ -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)
-3
View File
@@ -545,9 +545,6 @@ LAVALAND_BUDGET 60
## Ice Moon Budget
ICEMOON_BUDGET 90
## Ocean Budget
OCEAN_BUDGET 60
## Space Ruin Budget
Space_Budget 16
-2
View File
@@ -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
File diff suppressed because it is too large Load Diff
@@ -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 ..()
File diff suppressed because it is too large Load Diff
@@ -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"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 588 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 929 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 833 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 864 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 414 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-16
View File
@@ -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"