[MIRROR] Icebox QoL minus features (#3459)

* Icebox QoL minus features (#56472)

* Icebox QoL minus features

Co-authored-by: Whoneedspacee <yougotreallyowned@gmail.com>
This commit is contained in:
SkyratBot
2021-02-21 22:02:33 +00:00
committed by GitHub
co-authored by Whoneedspacee
parent 2d7650c37b
commit fc2fc8db6b
36 changed files with 11651 additions and 11372 deletions
@@ -1,50 +1,57 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/closed/mineral/random,
/area/icemoon/surface/outdoors/unexplored)
/turf/open/genturf,
/area/mine/unexplored)
"b" = (
/turf/closed/mineral/random/snow,
/area/icemoon/surface/outdoors/unexplored)
/area/icemoon/surface)
"c" = (
/turf/closed/wall/mineral/bronze,
/area/icemoon/surface)
"d" = (
/obj/structure/fluff/clockwork/fallen_armor,
/turf/open/floor/bronze/icemoon,
/turf/open/floor/bronze,
/area/icemoon/surface)
"i" = (
/turf/open/floor/bronze/icemoon,
/turf/open/floor/bronze,
/area/icemoon/surface)
"k" = (
/obj/structure/fluff/clockwork/alloy_shards,
/turf/open/floor/bronze/icemoon,
/turf/open/floor/bronze,
/area/icemoon/surface)
"n" = (
/obj/effect/mob_spawn/human/skeleton,
/turf/open/floor/bronze/icemoon,
/turf/open/floor/bronze,
/area/icemoon/surface)
"p" = (
/obj/structure/fluff/clockwork/alloy_shards/large,
/turf/open/floor/bronze/icemoon,
/turf/open/floor/bronze,
/area/icemoon/surface)
"r" = (
/obj/structure/fluff/clockwork/blind_eye,
/turf/open/floor/bronze/icemoon,
/turf/open/floor/bronze,
/area/icemoon/surface)
"u" = (
/obj/structure/table/bronze,
/turf/open/floor/bronze/icemoon,
/turf/open/floor/bronze,
/area/icemoon/surface)
"v" = (
/obj/structure/fluff/clockwork/alloy_shards/medium_gearbit,
/turf/open/floor/bronze/icemoon,
/turf/open/floor/bronze,
/area/icemoon/surface)
"w" = (
/turf/open/floor/bronze{
initial_gas_mix = "TEMP=2.7"
},
/area/icemoon/surface)
"x" = (
/obj/effect/mob_spawn/human/skeleton,
/obj/item/clothing/suit/bronze,
/obj/item/clothing/shoes/bronze,
/obj/item/clothing/head/bronze,
/turf/open/floor/bronze/icemoon,
/turf/open/floor/bronze{
initial_gas_mix = "TEMP=2.7"
},
/area/icemoon/surface)
"z" = (
/obj/structure/table/bronze,
@@ -52,38 +59,38 @@
desc = "You can still feel the embers of a once great empire in your hand...";
name = "drained clockwork slab"
},
/turf/open/floor/bronze/icemoon,
/area/icemoon/surface)
"H" = (
/obj/machinery/door/airlock/bronze/seethru,
/obj/structure/fans/tiny,
/turf/open/floor/bronze/icemoon,
/turf/open/floor/bronze,
/area/icemoon/surface)
"P" = (
/obj/structure/fluff/clockwork/clockgolem_remains,
/turf/open/floor/bronze/icemoon,
/turf/open/floor/bronze,
/area/icemoon/surface)
"Q" = (
/obj/item/paper{
info = "We tried to use the power of this moon to bring him back, but we've failed... I've contained what remains of his power here... if you find this, make sure those Nar-Sian Dogs don't last a second."
},
/obj/item/pen,
/turf/open/floor/bronze/icemoon,
/turf/open/floor/bronze{
initial_gas_mix = "TEMP=2.7"
},
/area/icemoon/surface)
"R" = (
/obj/item/nullrod/spear{
name = "empowered bronze spear"
},
/turf/open/floor/bronze/icemoon,
/turf/open/floor/bronze{
initial_gas_mix = "TEMP=2.7"
},
/area/icemoon/surface)
"U" = (
/obj/machinery/door/airlock/bronze,
/obj/structure/fans/tiny,
/turf/open/floor/bronze/icemoon,
/obj/machinery/door/airlock/bronze{
use_power = 0
},
/turf/open/floor/bronze,
/area/icemoon/surface)
"V" = (
/obj/structure/fluff/clockwork/alloy_shards/medium,
/turf/open/floor/bronze/icemoon,
/turf/open/floor/bronze,
/area/icemoon/surface)
(1,1,1) = {"
@@ -274,8 +281,8 @@ a
c
c
c
H
H
U
U
c
c
c
@@ -862,8 +869,8 @@ a
a
a
c
i
i
w
w
c
a
a
@@ -889,7 +896,7 @@ b
U
k
n
H
U
a
a
a
@@ -903,10 +910,10 @@ a
a
a
a
i
w
x
i
i
w
w
a
a
a
@@ -920,7 +927,7 @@ a
a
a
a
H
U
n
i
U
@@ -931,7 +938,7 @@ b
U
i
P
H
U
a
a
a
@@ -945,10 +952,10 @@ a
a
a
a
i
w
R
Q
i
w
a
a
a
@@ -962,7 +969,7 @@ a
a
a
a
H
U
v
d
U
@@ -988,8 +995,8 @@ a
a
a
c
i
i
w
w
c
a
a
@@ -1576,8 +1583,8 @@ a
c
c
c
H
H
U
U
c
c
c
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -2,19 +2,15 @@
"a" = (
/turf/open/floor/plating/ice/icemoon,
/area/icemoon/underground/explored)
"c" = (
/obj/structure/ladder,
"b" = (
/obj/structure/ladder{
travel_time = 40
},
/turf/open/floor/plating/ice/icemoon,
/area/icemoon/underground/explored)
"d" = (
/turf/template_noop,
/area/icemoon/underground/unexplored)
"f" = (
/obj/item/flashlight/lantern{
on = 1
},
/turf/open/floor/plating/ice/icemoon,
/area/icemoon/underground/explored)
/area/template_noop)
"g" = (
/obj/item/clothing/suit/hooded/explorer,
/obj/effect/decal/cleanable/blood/gibs/up,
@@ -28,10 +24,18 @@
/obj/item/kitchen/knife/combat/survival,
/turf/open/floor/plating/ice/icemoon,
/area/icemoon/underground/explored)
"T" = (
"l" = (
/turf/closed/indestructible/rock/snow/ice/ore,
/area/icemoon/underground/explored)
"V" = (
/obj/structure/frost_miner_prism,
/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner,
/turf/open/floor/plating/ice/icemoon,
/area/icemoon/underground/explored)
"Z" = (
/obj/structure/frost_miner_prism,
/turf/open/floor/plating/ice/icemoon,
/area/icemoon/underground/explored)
(1,1,1) = {"
d
@@ -40,19 +44,21 @@ d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
d
d
d
@@ -66,21 +72,23 @@ d
d
d
d
d
d
a
a
a
a
a
a
a
a
a
a
a
d
d
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
d
d
d
@@ -92,23 +100,25 @@ d
d
d
d
d
l
l
l
l
Z
a
a
a
a
Z
a
a
a
a
a
a
a
a
a
a
d
d
Z
l
l
l
l
d
d
d
@@ -118,7 +128,10 @@ d
d
d
d
d
l
l
l
l
a
a
a
@@ -132,11 +145,10 @@ a
a
a
a
a
a
a
d
d
l
l
l
l
d
d
d
@@ -144,7 +156,10 @@ d
(5,1,1) = {"
d
d
d
l
l
l
l
a
a
a
@@ -160,17 +175,19 @@ a
a
a
a
a
a
a
d
d
l
l
l
l
d
d
"}
(6,1,1) = {"
d
d
l
l
l
l
a
a
a
@@ -188,16 +205,17 @@ a
a
a
a
a
a
a
d
d
l
l
l
l
d
"}
(7,1,1) = {"
d
d
l
l
l
l
a
a
a
@@ -217,13 +235,15 @@ a
a
a
a
a
a
d
d
l
l
l
l
"}
(8,1,1) = {"
d
l
l
l
a
a
a
@@ -234,6 +254,7 @@ a
a
a
a
Z
a
a
a
@@ -244,13 +265,14 @@ a
a
a
a
a
a
d
d
l
l
l
"}
(9,1,1) = {"
d
l
l
Z
a
a
a
@@ -272,12 +294,13 @@ a
a
a
a
a
a
d
Z
l
l
"}
(10,1,1) = {"
d
l
l
a
a
a
@@ -285,6 +308,7 @@ a
a
a
a
Z
a
a
a
@@ -292,6 +316,7 @@ a
a
a
a
Z
a
a
a
@@ -299,12 +324,12 @@ a
a
a
a
a
a
d
l
l
"}
(11,1,1) = {"
d
l
l
a
a
a
@@ -328,10 +353,12 @@ a
a
a
a
d
l
l
"}
(12,1,1) = {"
d
l
l
a
a
a
@@ -355,10 +382,12 @@ a
a
a
a
d
l
l
"}
(13,1,1) = {"
d
l
l
a
a
a
@@ -382,10 +411,12 @@ a
a
a
a
d
l
l
"}
(14,1,1) = {"
d
l
l
a
a
a
@@ -397,7 +428,6 @@ a
a
a
a
T
a
a
a
@@ -409,10 +439,13 @@ a
a
a
a
d
a
l
l
"}
(15,1,1) = {"
d
l
l
a
a
a
@@ -436,37 +469,41 @@ a
a
a
a
d
l
l
"}
(16,1,1) = {"
d
l
l
Z
a
a
a
a
Z
a
a
a
a
a
V
a
a
a
a
a
Z
a
a
a
a
a
a
a
a
a
a
a
a
a
d
Z
l
l
"}
(17,1,1) = {"
d
l
l
a
a
a
@@ -490,10 +527,12 @@ a
a
a
a
d
l
l
"}
(18,1,1) = {"
d
l
l
a
a
a
@@ -507,7 +546,6 @@ a
a
a
a
c
a
a
a
@@ -517,10 +555,13 @@ a
a
a
a
d
a
l
l
"}
(19,1,1) = {"
d
l
l
a
a
a
@@ -534,6 +575,7 @@ a
a
a
a
b
a
a
a
@@ -543,11 +585,12 @@ a
a
a
a
a
d
l
l
"}
(20,1,1) = {"
d
l
l
a
a
a
@@ -571,10 +614,12 @@ a
a
a
a
d
l
l
"}
(21,1,1) = {"
d
l
l
a
a
a
@@ -598,10 +643,12 @@ a
a
a
a
d
l
l
"}
(22,1,1) = {"
d
l
l
a
a
a
@@ -609,6 +656,7 @@ a
a
a
a
Z
a
a
a
@@ -616,6 +664,7 @@ a
a
a
a
Z
a
a
a
@@ -623,12 +672,13 @@ a
a
a
a
a
a
d
l
l
"}
(23,1,1) = {"
d
l
l
Z
a
a
a
@@ -650,18 +700,48 @@ a
a
a
a
a
d
d
Z
l
l
"}
(24,1,1) = {"
d
d
l
l
l
a
a
a
a
a
a
a
a
a
a
Z
a
a
a
a
a
a
a
a
a
a
l
l
l
"}
(25,1,1) = {"
l
l
l
l
a
a
a
a
f
i
a
a
@@ -677,15 +757,17 @@ a
a
a
a
d
d
d
l
l
l
l
"}
(25,1,1) = {"
(26,1,1) = {"
d
d
d
a
l
l
l
l
a
a
a
@@ -703,17 +785,19 @@ a
a
a
a
d
d
d
l
l
l
l
d
"}
(26,1,1) = {"
(27,1,1) = {"
d
d
d
d
a
l
l
l
l
a
a
h
@@ -729,36 +813,10 @@ a
a
a
a
d
d
d
d
d
"}
(27,1,1) = {"
d
d
d
d
d
a
a
a
a
a
a
a
a
a
a
a
a
a
a
d
d
d
d
l
l
l
l
d
d
"}
@@ -766,10 +824,10 @@ d
d
d
d
d
d
d
d
l
l
l
l
a
a
a
@@ -781,10 +839,12 @@ a
a
a
a
d
d
d
d
a
a
l
l
l
l
d
d
d
@@ -794,21 +854,81 @@ d
d
d
d
l
l
l
l
Z
a
a
a
a
Z
a
a
a
a
Z
l
l
l
l
d
d
d
d
"}
(30,1,1) = {"
d
d
d
d
d
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
d
d
d
d
d
"}
(31,1,1) = {"
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
l
l
l
l
l
l
l
l
l
l
l
l
l
l
l
d
d
d
@@ -1,7 +1,7 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/icemoon/underground/unexplored)
/area/template_noop)
"b" = (
/turf/open/floor/plating/asteroid/snow/icemoon,
/area/icemoon/underground/explored)
@@ -7,7 +7,7 @@
/area/icemoon/underground/unexplored)
"d" = (
/turf/template_noop,
/area/icemoon/underground/unexplored)
/area/template_noop)
"j" = (
/obj/effect/mob_spawn/human/miner/explorer,
/turf/open/floor/plating/asteroid/snow/ice/icemoon,
@@ -4,7 +4,7 @@
/area/icemoon/underground/explored)
"b" = (
/turf/closed/mineral/random/snow,
/area/icemoon/underground/unexplored)
/area/icemoon/underground/explored)
"e" = (
/obj/structure/spawner/nether,
/turf/open/floor/plating/asteroid/snow/icemoon,
+2 -2
View File
@@ -32,7 +32,7 @@
"Linkage": null,
"Gravity": true,
"Ice Ruins Underground": true,
"Baseturf": "/turf/open/openspace/icemoon"
"Baseturf": "/turf/open/openspace/icemoon/keep_below"
},
{
"Down": -1,
@@ -41,7 +41,7 @@
"Gravity": true,
"Ice Ruins": true,
"Weather_Snowstorm": true,
"Baseturf": "/turf/open/openspace/icemoon"
"Baseturf": "/turf/open/openspace/icemoon/keep_below"
}
],
"minetype": "none",
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -70,7 +70,6 @@ SUBSYSTEM_DEF(mapping)
repopulate_sorted_areas()
process_teleport_locs() //Sets up the wizard teleport locations
preloadTemplates()
run_map_generation()
#ifndef LOWMEMORYMODE
// Create space ruin levels
@@ -119,6 +118,8 @@ SUBSYSTEM_DEF(mapping)
seedRuins(space_ruins, CONFIG_GET(number/space_budget), list(/area/space), space_ruins_templates)
loading_ruins = FALSE
#endif
// Run map generation after ruin generation to prevent issues
run_map_generation()
// Add the transit level
transit = add_new_zlevel("Transit/Reserved", list(ZTRAIT_RESERVED = TRUE))
repopulate_sorted_areas()
+14 -11
View File
@@ -1,22 +1,19 @@
/datum/map_generator/cave_generator
var/name = "Cave Generator"
///Weighted list of the types that spawns if the turf is open
var/open_turf_types = list(/turf/open/floor/plating/asteroid = 1)
var/open_turf_types = list(/turf/open/floor/plating/asteroid/airless = 1)
///Weighted list of the types that spawns if the turf is closed
var/closed_turf_types = list(/turf/closed/mineral/random/volcanic = 1)
var/closed_turf_types = list(/turf/closed/mineral/random = 1)
///Weighted list of extra features that can spawn in the area, such as geysers.
var/list/feature_spawn_list = list(/obj/structure/geyser/random = 1)
///Weighted list of mobs that can spawn in the area.
var/list/mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/goliath/beast/random = 50, /obj/structure/spawner/lavaland/goliath = 3, \
/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/random = 40, /obj/structure/spawner/lavaland = 2, \
/mob/living/simple_animal/hostile/asteroid/hivelord/legion/random = 30, /obj/structure/spawner/lavaland/legion = 3, \
SPAWN_MEGAFAUNA = 4, /mob/living/simple_animal/hostile/asteroid/goldgrub = 10)
///Weighted list of flora that can spawn in the area.
var/list/flora_spawn_list = list(/obj/structure/flora/ash/leaf_shroom = 2 , /obj/structure/flora/ash/cap_shroom = 2 , /obj/structure/flora/ash/stem_shroom = 2 , /obj/structure/flora/ash/cacti = 1, /obj/structure/flora/ash/tall_shroom = 2)
var/list/mob_spawn_list
// Weighted list of Megafauna that can spawn in the caves
var/list/megafauna_spawn_list
///Weighted list of flora that can spawn in the area.
var/list/flora_spawn_list
///Weighted list of extra features that can spawn in the area, such as geysers.
var/list/feature_spawn_list
///Base chance of spawning a mob
@@ -39,8 +36,14 @@
/datum/map_generator/cave_generator/New()
. = ..()
if(!mob_spawn_list)
mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/goldgrub = 1, /mob/living/simple_animal/hostile/asteroid/goliath = 5, /mob/living/simple_animal/hostile/asteroid/basilisk = 4, /mob/living/simple_animal/hostile/asteroid/hivelord = 3)
if(!megafauna_spawn_list)
megafauna_spawn_list = GLOB.megafauna_spawn_list
megafauna_spawn_list = GLOB.megafauna_spawn_list
if(!flora_spawn_list)
flora_spawn_list = list(/obj/structure/flora/ash/leaf_shroom = 2 , /obj/structure/flora/ash/cap_shroom = 2 , /obj/structure/flora/ash/stem_shroom = 2 , /obj/structure/flora/ash/cacti = 1, /obj/structure/flora/ash/tall_shroom = 2)
if(!feature_spawn_list)
feature_spawn_list = list(/obj/structure/geyser/random = 1)
/datum/map_generator/cave_generator/generate_terrain(list/turfs)
. = ..()
+4 -2
View File
@@ -3,12 +3,12 @@
closed_turf_types = list(/turf/closed/mineral/random/snow = 1)
feature_spawn_list = list(/obj/structure/geyser/random = 1)
mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/wolf = 50, /obj/structure/spawner/ice_moon = 3, \
/mob/living/simple_animal/hostile/asteroid/polarbear = 30, /obj/structure/spawner/ice_moon/polarbear = 3, \
/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow = 50, /mob/living/simple_animal/hostile/asteroid/goldgrub = 10, \
/mob/living/simple_animal/hostile/asteroid/lobstrosity = 15)
flora_spawn_list = list(/obj/structure/flora/tree/pine = 2, /obj/structure/flora/rock/icy = 2, /obj/structure/flora/rock/pile/icy = 2, /obj/structure/flora/grass/both = 6, /obj/structure/flora/ash/chilly = 2)
feature_spawn_list = list(/obj/structure/geyser/random = 1)
/datum/map_generator/cave_generator/icemoon/surface
flora_spawn_chance = 4
@@ -22,5 +22,7 @@
closed_turf_types = list(/turf/closed/mineral/random/snow/underground = 1)
mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/ice_demon = 50, /obj/structure/spawner/ice_moon/demonic_portal = 3, \
/mob/living/simple_animal/hostile/asteroid/ice_whelp = 30, /obj/structure/spawner/ice_moon/demonic_portal/ice_whelp = 3, \
/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow = 50, /obj/structure/spawner/ice_moon/demonic_portal/snowlegion = 3)
/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow = 50, /obj/structure/spawner/ice_moon/demonic_portal/snowlegion = 3, \
SPAWN_MEGAFAUNA = 2)
megafauna_spawn_list = list(/mob/living/simple_animal/hostile/megafauna/colossus = 1)
flora_spawn_list = list(/obj/structure/flora/rock/icy = 6, /obj/structure/flora/rock/pile/icy = 6, /obj/structure/flora/ash/chilly = 1)
@@ -3,12 +3,12 @@
closed_turf_types = list(/turf/closed/mineral/random/volcanic = 1)
feature_spawn_list = list(/obj/structure/geyser/random = 1)
mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/goliath/beast/random = 50, /obj/structure/spawner/lavaland/goliath = 3, \
/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/random = 40, /obj/structure/spawner/lavaland = 2, \
/mob/living/simple_animal/hostile/asteroid/hivelord/legion/random = 30, /obj/structure/spawner/lavaland/legion = 3, \
SPAWN_MEGAFAUNA = 4, /mob/living/simple_animal/hostile/asteroid/goldgrub = 10)
flora_spawn_list = list(/obj/structure/flora/ash/leaf_shroom = 2 , /obj/structure/flora/ash/cap_shroom = 2 , /obj/structure/flora/ash/stem_shroom = 2 , /obj/structure/flora/ash/cacti = 1, /obj/structure/flora/ash/tall_shroom = 2)
feature_spawn_list = list(/obj/structure/geyser/random = 1)
initial_closed_chance = 45
smoothing_iterations = 50
+3 -2
View File
@@ -32,7 +32,8 @@
outdoors = TRUE
flags_1 = NONE
ambience_index = AMBIENCE_MINING
area_flags = VALID_TERRITORY | UNIQUE_AREA | FLORA_ALLOWED | CAVES_ALLOWED | NO_ALERTS
area_flags = VALID_TERRITORY | UNIQUE_AREA | NO_ALERTS | CAVES_ALLOWED | FLORA_ALLOWED | MOB_SPAWN_ALLOWED | MEGAFAUNA_SPAWN_ALLOWED
map_generator = /datum/map_generator/cave_generator
min_ambience_cooldown = 70 SECONDS
max_ambience_cooldown = 220 SECONDS
@@ -131,11 +132,11 @@
/area/lavaland/surface/outdoors/unexplored //monsters and ruins spawn here
icon_state = "unexplored"
area_flags = VALID_TERRITORY | UNIQUE_AREA | CAVES_ALLOWED | FLORA_ALLOWED | MOB_SPAWN_ALLOWED | NO_ALERTS
map_generator = /datum/map_generator/cave_generator/lavaland
/area/lavaland/surface/outdoors/unexplored/danger //megafauna will also spawn here
icon_state = "danger"
area_flags = VALID_TERRITORY | UNIQUE_AREA | CAVES_ALLOWED | FLORA_ALLOWED | MOB_SPAWN_ALLOWED | MEGAFAUNA_SPAWN_ALLOWED | NO_ALERTS
map_generator = /datum/map_generator/cave_generator/lavaland
/area/lavaland/surface/outdoors/explored
name = "Lavaland Labor Camp"
@@ -80,6 +80,10 @@ GLOBAL_LIST_INIT(ore_probability, list(
light_range = 1
light_color = COLOR_SOFT_RED
/obj/structure/spawner/ice_moon/demonic_portal/Initialize()
. = ..()
AddComponent(/datum/component/gps, "Netheric Signal")
/obj/structure/spawner/ice_moon/demonic_portal/clear_rock()
for(var/turf/F in RANGE_TURFS(3, src))
if(abs(src.x - F.x) + abs(src.y - F.y) > 5)
+7 -2
View File
@@ -5,10 +5,12 @@
icon = 'icons/obj/structures.dmi'
icon_state = "ladder11"
anchored = TRUE
obj_flags = CAN_BE_HIT | BLOCK_Z_OUT_DOWN
var/obj/structure/ladder/down //the ladder below this one
var/obj/structure/ladder/up //the ladder above this one
var/crafted = FALSE
obj_flags = CAN_BE_HIT | BLOCK_Z_OUT_DOWN
/// Optional travel time for ladder in deciseconds
var/travel_time = 0
/obj/structure/ladder/Initialize(mapload, obj/structure/ladder/up, obj/structure/ladder/down)
..()
@@ -70,8 +72,11 @@
/obj/structure/ladder/proc/travel(going_up, mob/user, is_ghost, obj/structure/ladder/ladder)
if(!is_ghost)
show_fluff_message(going_up, user)
ladder.add_fingerprint(user)
if(!do_after(user, travel_time, target = src))
return
show_fluff_message(going_up, user)
var/turf/T = get_turf(ladder)
var/atom/movable/AM
+25 -1
View File
@@ -1,3 +1,5 @@
#define MINING_MESSAGE_COOLDOWN 20
/**********************Mineral deposits**************************/
/turf/closed/mineral //wall piece
@@ -22,6 +24,8 @@
var/last_act = 0
var/scan_state = "" //Holder for the image we display when we're pinged by a mining scanner
var/defer_change = 0
// If true you can mine the mineral turf with your hands
var/weak_turf = FALSE
/turf/closed/mineral/Initialize()
. = ..()
@@ -80,6 +84,22 @@
else
return attack_hand(user)
/turf/closed/mineral/attack_hand(mob/user)
if(!weak_turf)
return ..()
var/turf/user_turf = user.loc
if (!isturf(user_turf))
return
if(last_act + MINING_MESSAGE_COOLDOWN > world.time)//prevents message spam
return
last_act = world.time
to_chat(user, "<span class='notice'>You start pulling out pieces of [src] with your hands...</span>")
if(!do_after(user, 15 SECONDS, target = src))
return
if(ismineralturf(src))
to_chat(user, "<span class='notice'>You finish pulling apart [src].</span>")
gets_drilled(user)
/turf/closed/mineral/proc/gets_drilled(user, give_exp = FALSE)
if (mineralType && (mineralAmt > 0))
new mineralType(src, mineralAmt)
@@ -97,9 +117,10 @@
var/flags = NONE
if(defer_change) // TODO: make the defer change var a var for any changeturf flag
flags = CHANGETURF_DEFER_CHANGE
ScrapeAway(null, flags)
var/turf/open/mined = ScrapeAway(null, flags)
addtimer(CALLBACK(src, .proc/AfterChange), 1, TIMER_UNIQUE)
playsound(src, 'sound/effects/break_stone.ogg', 50, TRUE) //beautiful destruction
mined.update_visuals()
/turf/closed/mineral/attack_animal(mob/living/simple_animal/user, list/modifiers)
if((user.environment_smash & ENVIRONMENT_SMASH_WALLS) || (user.environment_smash & ENVIRONMENT_SMASH_RWALLS))
@@ -241,6 +262,7 @@
turf_type = /turf/open/floor/plating/asteroid/snow/icemoon
baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
weak_turf = TRUE
/turf/closed/mineral/random/snow/Change_Ore(ore_type, random = 0)
. = ..()
@@ -630,3 +652,5 @@
/turf/closed/mineral/strong/ex_act(severity, target)
return
#undef MINING_MESSAGE_COOLDOWN
@@ -254,6 +254,9 @@
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
slowdown = 0
/turf/open/floor/plating/ice/icemoon/no_planet_atmos
planetary_atmos = FALSE
/turf/open/floor/plating/snowed
name = "snowed-over plating"
desc = "A section of heated plating, helps keep the snow from stacking up too high."
+12 -2
View File
@@ -152,17 +152,27 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
planetary_atmos = TRUE
var/replacement_turf = /turf/open/floor/plating/asteroid/snow/icemoon
/// Replaces itself with replacement_turf if the turf below this one is in a no ruins allowed area (usually ruins themselves)
var/protect_ruin = TRUE
/// If true mineral turfs below this openspace turf will be mined automatically
var/drill_below = TRUE
/turf/open/openspace/icemoon/Initialize()
. = ..()
var/turf/T = below()
if(T.flags_1 & NO_RUINS_1)
if(T.flags_1 & NO_RUINS_1 && protect_ruin)
ChangeTurf(replacement_turf, null, CHANGETURF_IGNORE_AIR)
return
if(!ismineralturf(T))
if(!ismineralturf(T) || !drill_below)
return
var/turf/closed/mineral/M = T
M.mineralAmt = 0
M.gets_drilled()
baseturfs = /turf/open/openspace/icemoon //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/icemoon/keep_below
drill_below = FALSE
/turf/open/openspace/icemoon/ruins
protect_ruin = FALSE
drill_below = FALSE
@@ -249,13 +249,6 @@
baseturfs = /turf/open/lava/plasma/mafia
slowdown = 0
/obj/vehicle/ridden/lavaboat/plasma
name = "plasma boat"
desc = "A boat used for traversing the streams of plasma without turning into an icecube."
icon_state = "goliath_boat"
icon = 'icons/obj/lavaland/dragonboat.dmi'
resistance_flags = FREEZE_PROOF
can_buckle = TRUE
/////////// papers
+5 -1
View File
@@ -74,8 +74,10 @@
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/spear)
armor = list(MELEE = 70, BULLET = 30, LASER = 50, ENERGY = 50, BOMB = 70, BIO = 60, RAD = 50, FIRE = 100, ACID = 100)
hoodtype = /obj/item/clothing/head/hooded/cloakhood/drake
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
transparent_protection = HIDEGLOVES|HIDESUITSTORAGE|HIDEJUMPSUIT|HIDESHOES
@@ -86,6 +88,8 @@
desc = "The skull of a dragon."
armor = list(MELEE = 70, BULLET = 30, LASER = 50, ENERGY = 50, BOMB = 70, BIO = 60, RAD = 50, FIRE = 100, ACID = 100)
clothing_flags = SNUG_FIT
cold_protection = HEAD
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
heat_protection = HEAD
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
+1
View File
@@ -46,6 +46,7 @@
new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/pickaxe/diamond, 2000),
new /datum/data/mining_equipment("Super Resonator", /obj/item/resonator/upgraded, 2500),
new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500),
new /datum/data/mining_equipment("Ice Hiking Boots", /obj/item/clothing/shoes/winterboots/ice_boots, 2500),
new /datum/data/mining_equipment("Luxury Shelter Capsule", /obj/item/survivalcapsule/luxury, 3000),
new /datum/data/mining_equipment("Luxury Bar Capsule", /obj/item/survivalcapsule/luxuryelite, 10000),
new /datum/data/mining_equipment("Nanotrasen Minebot", /mob/living/simple_animal/hostile/mining_drone, 800),
@@ -1,3 +1,5 @@
GLOBAL_LIST_EMPTY(frost_miner_prisms)
/*
Difficulty: Extremely Hard
@@ -23,10 +25,11 @@ Difficulty: Extremely Hard
armour_penetration = 100
melee_damage_lower = 10
melee_damage_upper = 10
aggro_vision_range = 18 // large vision range so combat doesn't abruptly end when someone runs a bit away
vision_range = 18 // large vision range so combat doesn't abruptly end when someone runs a bit away
rapid_melee = 4
speed = 20
move_to_delay = 20
gps_name = "Bloodchilling Signal"
ranged = TRUE
crusher_loot = list(/obj/effect/decal/remains/plasma, /obj/item/crusher_trophy/ice_block_talisman)
loot = list(/obj/effect/decal/remains/plasma)
@@ -51,6 +54,8 @@ Difficulty: Extremely Hard
/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/Initialize()
. = ..()
for(var/obj/structure/frost_miner_prism/prism_to_set in GLOB.frost_miner_prisms)
prism_to_set.set_prism_light(LIGHT_COLOR_BLUE, 5)
AddComponent(/datum/component/knockback, 7, FALSE, TRUE)
AddComponent(/datum/component/lifesteal, 50)
@@ -77,7 +82,7 @@ Difficulty: Extremely Hard
/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/OpenFire()
check_enraged()
projectile_speed_multiplier = 1 - enraged * 0.25
projectile_speed_multiplier = 1 - enraged * 0.5
SetRecoveryTime(100, 100)
if(client)
@@ -129,7 +134,7 @@ Difficulty: Extremely Hard
icon_state = "nuclear_particle"
damage = 5
armour_penetration = 100
speed = 4
speed = 3
damage_type = BRUTE
/obj/projectile/ice_blast
@@ -137,7 +142,7 @@ Difficulty: Extremely Hard
icon_state = "ice_2"
damage = 15
armour_penetration = 100
speed = 4
speed = 3
damage_type = BRUTE
/obj/projectile/ice_blast/on_hit(atom/target, blocked = FALSE)
@@ -252,6 +257,8 @@ Difficulty: Extremely Hard
icon_state = "demonic_miner_phase2"
animate(src, pixel_y = pixel_y - 96, time = 8, flags = ANIMATION_END_NOW)
spin(8, 2)
for(var/obj/structure/frost_miner_prism/prism_to_set in GLOB.frost_miner_prisms)
prism_to_set.set_prism_light(LIGHT_COLOR_PURPLE, 5)
SLEEP_CHECK_DEATH(8)
for(var/mob/living/L in viewers(src))
shake_camera(L, 3, 2)
@@ -265,6 +272,8 @@ Difficulty: Extremely Hard
return
var/turf/T = get_turf(src)
var/loot = rand(1, 3)
for(var/obj/structure/frost_miner_prism/prism_to_set in GLOB.frost_miner_prisms)
prism_to_set.set_prism_light(COLOR_GRAY, 1)
switch(loot)
if(1)
new /obj/item/resurrection_crystal(T)
@@ -312,7 +321,7 @@ Difficulty: Extremely Hard
desc = "A pair of winter boots contractually made by a devil, they cannot be taken off once put on."
actions_types = list(/datum/action/item_action/toggle)
var/on = FALSE
var/change_turf = /turf/open/floor/plating/ice/icemoon
var/change_turf = /turf/open/floor/plating/ice/icemoon/no_planet_atmos
var/duration = 6 SECONDS
/obj/item/clothing/shoes/winterboots/ice_boots/ice_trail/Initialize()
@@ -376,12 +385,17 @@ Difficulty: Extremely Hard
/datum/status_effect/ice_block_talisman
id = "ice_block_talisman"
duration = 40
status_type = STATUS_EFFECT_REFRESH
duration = 4 SECONDS
status_type = STATUS_EFFECT_REPLACE
alert_type = /atom/movable/screen/alert/status_effect/ice_block_talisman
/// Stored icon overlay for the hit mob, removed when effect is removed
var/icon/cube
/datum/status_effect/ice_block_talisman/on_creation(mob/living/new_owner, set_duration)
if(isnum(set_duration))
duration = set_duration
return ..()
/atom/movable/screen/alert/status_effect/ice_block_talisman
name = "Frozen Solid"
desc = "You're frozen inside an ice cube, and cannot move!"
@@ -406,3 +420,22 @@ Difficulty: Extremely Hard
to_chat(owner, "<span class='notice'>The cube melts!</span>")
owner.cut_overlay(cube)
UnregisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE)
/obj/structure/frost_miner_prism
name = "frost miner light prism"
desc = "A magical crystal enhanced by a demonic presence."
icon = 'icons/obj/slimecrossing.dmi'
icon_state = "lightprism"
density = FALSE
anchored = TRUE
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF | FREEZE_PROOF
/obj/structure/frost_miner_prism/Initialize(mapload)
. = ..()
GLOB.frost_miner_prisms |= src
set_prism_light(LIGHT_COLOR_BLUE, 5)
/obj/structure/frost_miner_prism/proc/set_prism_light(new_color, new_range)
color = new_color
set_light_color(new_color)
set_light(new_range)
@@ -276,19 +276,26 @@
dragon_fire_line(src, turfs)
//fire line keeps going even if dragon is deleted
/proc/dragon_fire_line(atom/source, list/turfs)
/proc/dragon_fire_line(atom/source, list/turfs, frozen = FALSE)
var/list/hit_list = list()
for(var/turf/T in turfs)
if(istype(T, /turf/closed))
break
new /obj/effect/hotspot(T)
var/obj/effect/hotspot/drake_fire_hotspot = new /obj/effect/hotspot(T)
if(frozen)
drake_fire_hotspot.add_atom_colour(COLOR_BLUE_LIGHT, FIXED_COLOUR_PRIORITY)
T.hotspot_expose(DRAKE_FIRE_TEMP,DRAKE_FIRE_EXPOSURE,1)
for(var/mob/living/L in T.contents)
if(L in hit_list || istype(L, source.type))
continue
hit_list += L
L.adjustFireLoss(20)
to_chat(L, "<span class='userdanger'>You're hit by [source]'s fire breath!</span>")
if(!frozen)
L.adjustFireLoss(20)
to_chat(L, "<span class='userdanger'>You're hit by [source]'s fire breath!</span>")
continue
L.adjustFireLoss(10)
L.apply_status_effect(/datum/status_effect/ice_block_talisman, 20)
to_chat(L, "<span class='userdanger'>You're hit by [source]'s freezing breath!</span>")
// deals damage to mechs
for(var/obj/vehicle/sealed/mecha/M in T.contents)
@@ -154,7 +154,7 @@
/mob/living/simple_animal/hostile/megafauna/proc/SetRecoveryTime(buffer_time, ranged_buffer_time)
recovery_time = world.time + buffer_time
ranged_cooldown = world.time + buffer_time
if(ranged_buffer_time)
if(isnum(ranged_buffer_time))
ranged_cooldown = world.time + ranged_buffer_time
/// Grants medals and achievements to surrounding players
@@ -30,6 +30,7 @@ Difficulty: Hard
ranged = TRUE
pixel_x = -16
base_pixel_x = -16
gps_name = "Berserk Signal"
loot = list()
butcher_results = list()
guaranteed_butcher_results = list(/obj/item/wendigo_blood = 1)
@@ -15,7 +15,7 @@
projectilesound = 'sound/weapons/pierce.ogg'
ranged = TRUE
ranged_message = "manifests ice"
ranged_cooldown_time = 30
ranged_cooldown_time = 3 SECONDS
minimum_distance = 3
retreat_distance = 3
maxHealth = 150
@@ -46,20 +46,20 @@
/obj/projectile/temp/basilisk/ice
name = "ice blast"
damage = 5
speed = 4
nodamage = FALSE
temperature = -75
/mob/living/simple_animal/hostile/asteroid/ice_demon/OpenFire()
ranged_cooldown = world.time + ranged_cooldown_time
// Sentient ice demons teleporting has been linked to server crashes
if(client)
return ..()
if(teleport_distance <= 0)
return ..()
var/list/possible_ends = list()
for(var/turf/T in view(teleport_distance, target.loc) - view(teleport_distance - 1, target.loc))
if(isclosedturf(T))
continue
possible_ends |= T
var/list/possible_ends = view(teleport_distance, target.loc) - view(teleport_distance - 1, target.loc)
for(var/turf/closed/turf_to_remove in possible_ends)
possible_ends -= turf_to_remove
if(!possible_ends.len)
return ..()
var/turf/end = pick(possible_ends)
@@ -10,12 +10,12 @@
friendly_verb_continuous = "stares down"
friendly_verb_simple = "stare down"
speak_emote = list("roars")
speed = 30
move_to_delay = 30
speed = 12
move_to_delay = 12
ranged = TRUE
ranged_cooldown_time = 50
maxHealth = 350
health = 350
ranged_cooldown_time = 5 SECONDS
maxHealth = 300
health = 300
obj_damage = 40
armour_penetration = 20
melee_damage_lower = 20
@@ -23,6 +23,7 @@
attack_verb_continuous = "chomps"
attack_verb_simple = "chomp"
attack_sound = 'sound/magic/demon_attack1.ogg'
ranged_message = "breathes fire at"
vision_range = 9
aggro_vision_range = 9
move_force = MOVE_FORCE_VERY_STRONG
@@ -39,10 +40,10 @@
/// How far the whelps fire can go
var/fire_range = 4
/mob/living/simple_animal/hostile/asteroid/ice_whelp/OpenFire()
var/turf/T = get_ranged_target_turf_direct(src, target, fire_range)
var/list/burn_turfs = getline(src, T) - get_turf(src)
dragon_fire_line(src, burn_turfs)
/mob/living/simple_animal/hostile/asteroid/ice_whelp/Shoot()
var/turf/target_fire_turf = get_ranged_target_turf_direct(src, target, fire_range)
var/list/burn_turfs = getline(src, target_fire_turf) - get_turf(src)
dragon_fire_line(src, burn_turfs, frozen = TRUE)
/mob/living/simple_animal/hostile/asteroid/ice_whelp/Life(delta_time = SSMOBS_DT, times_fired)
. = ..()
@@ -10,8 +10,8 @@
friendly_verb_continuous = "growls at"
friendly_verb_simple = "growl at"
speak_emote = list("growls")
speed = 12
move_to_delay = 12
speed = 8
move_to_delay = 8
maxHealth = 300
health = 300
obj_damage = 40
@@ -28,7 +28,6 @@
butcher_results = list(/obj/item/food/meat/slab/bear = 3, /obj/item/stack/sheet/bone = 2)
guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 1)
loot = list()
crusher_loot = /obj/item/crusher_trophy/goliath_tentacle
stat_attack = HARD_CRIT
robust_searching = TRUE
footstep_type = FOOTSTEP_MOB_CLAW
@@ -30,7 +30,6 @@
pull_force = MOVE_FORCE_WEAK
butcher_results = list(/obj/item/food/meat/slab = 2, /obj/item/stack/sheet/sinew/wolf = 2, /obj/item/stack/sheet/bone = 2)
loot = list()
crusher_loot = /obj/item/crusher_trophy/watcher_wing
stat_attack = HARD_CRIT
robust_searching = TRUE
footstep_type = FOOTSTEP_MOB_CLAW
+13
View File
@@ -41,6 +41,19 @@
time = 50
category = CAT_PRIMAL
/obj/vehicle/ridden/lavaboat/plasma
name = "plasma boat"
desc = "A boat used for traversing the streams of plasma without turning into an icecube."
icon_state = "goliath_boat"
icon = 'icons/obj/lavaland/dragonboat.dmi'
resistance_flags = FREEZE_PROOF
can_buckle = TRUE
/datum/crafting_recipe/boat/plasma
name = "Polar Bear Hide Boat"
result = /obj/vehicle/ridden/lavaboat/plasma
reqs = list(/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 3)
//Dragon Boat
Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 KiB

After

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 416 KiB

After

Width:  |  Height:  |  Size: 403 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 KiB

After

Width:  |  Height:  |  Size: 146 KiB