-
-
Notifications
You must be signed in to change notification settings - Fork 168
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
17 changed files
with
7,680 additions
and
3,281 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
//map-based enemy faction selection | ||
//this will need its own folder | ||
/datum/enemy | ||
var/name = "enemy" | ||
var/level = 0//this is determined the same way as ordeals: 1-4 as dawn through midnight | ||
var/list/ordeal_types = list() | ||
var/datum/ordeal/chosen_ordeal | ||
var/group_size = 1 | ||
var/risk_multiplier = 1//triggering an event dealier than the ordeal will spawn units equal to group_size times this amount | ||
|
||
/datum/enemy/proc/Run(turf/T, level) | ||
if(!level)//not a subtype | ||
return | ||
for(var/i = 1, i <= 4, i++)//This counts up | ||
chosen_ordeal = ordeal_types[i] | ||
if(i == level) | ||
break | ||
i++ | ||
if(!chosen_ordeal) | ||
return | ||
for(group_size in T) | ||
chosen_ordeal.spawngrunts(T, spawn_amount = risk_multiplier) | ||
|
||
/datum/enemy/gold | ||
ordeal_types = list( | ||
/datum/ordeal/gold_dawn = 1, | ||
/datum/ordeal/boss/gold_noon = 2, | ||
/datum/ordeal/gold_dawn/gold_dusk = 3, | ||
/datum/ordeal/gold_dawn/gold_midnight = 4, | ||
) | ||
group_size = 2 | ||
|
||
/datum/enemy/brown | ||
ordeal_types = list( | ||
/datum/ordeal/brown_dawn = 1, | ||
) | ||
group_size = 2 | ||
risk_multiplier = 2 | ||
|
||
/datum/enemy/steel | ||
ordeal_types = list( | ||
/datum/ordeal/simplespawn/steel_dawn = 1, | ||
/datum/ordeal/simplecommander/steel_noon = 2, | ||
/datum/ordeal/simplecommander/steel_dusk = 3, | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
//move this to a mapping folder | ||
/obj/effect/spawner/room/dist4_briah | ||
name = "district 4 briah layer spawner" | ||
dir = NORTH | ||
icon_state = "random_room" | ||
room_width = 54 | ||
room_height = 70 | ||
room_type = "enkephalin_rush" | ||
|
||
|
||
/datum/map_template/random_room/enkephalin_rush/dist4_briah | ||
centerspawner = FALSE | ||
template_width = 49 | ||
template_height = 35 | ||
room_type = "enkephalin_rush" | ||
weight = 1 | ||
mappath = "_maps/templates/enkephalin_rush/dist4_briah.dmm" |
30 changes: 30 additions & 0 deletions
30
ModularTegustation/tegu_items/enkephalin_rush/itemspawner.dm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
//Mainly supplies for latejoiners | ||
/obj/effect/landmark/enkritemspawn | ||
name = "site burial requisitions" | ||
desc = "It spawns an item. Notify a coder. Thanks!" | ||
icon = 'icons/effects/landmarks_static.dmi' | ||
icon_state = "x4" | ||
var/list/possible_items = list( | ||
/obj/item/ksyringe, | ||
/obj/item/reagent_containers/hypospray/medipen/salacid, | ||
/obj/item/reagent_containers/hypospray/medipen/mental, | ||
/obj/item/flashlight/flare, | ||
/obj/item/pickaxe, | ||
) | ||
|
||
/obj/effect/landmark/enkritemspawn/Initialize() | ||
..() | ||
var/spawning = pick(possible_items) | ||
new spawning(get_turf(src)) | ||
var/timeradd = rand(1200, 1800) | ||
addtimer(CALLBACK(src, PROC_REF(spawnagain)), timeradd) | ||
|
||
/obj/effect/landmark/enkritemspawn/proc/spawnagain() | ||
var/timeradd = rand(1200, 1800) | ||
addtimer(CALLBACK(src, PROC_REF(spawnagain)), timeradd) | ||
|
||
if(prob(50)) //50% to spawn | ||
return | ||
|
||
var/spawning = pick(possible_items) | ||
new spawning(get_turf(src)) |
223 changes: 223 additions & 0 deletions
223
ModularTegustation/tegu_items/enkephalin_rush/ore_turfs.dm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,223 @@ | ||
//path is closed/minerals.dm | ||
//'icons/turf/mining.dmi' | ||
//FIXME: destroys tile decals and grants 4 experience by default | ||
/turf/closed/mineral/facility//wall piece | ||
name = "rubble" | ||
icon = 'icons/turf/mining.dmi' | ||
smooth_icon = 'icons/turf/walls/rock_wall.dmi' | ||
icon_state = "rock2" | ||
base_icon_state = "rock_wall" | ||
smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER | ||
canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS) | ||
baseturfs = /turf/open/floor/plating | ||
initial_gas_mix = OPENTURF_DEFAULT_ATMOS | ||
environment_type = "waste" | ||
turf_type = /turf/open/floor/plating/asteroid | ||
defer_change = TRUE | ||
|
||
/turf/closed/mineral/random/facility | ||
name = "rubble" | ||
icon = 'icons/turf/mining.dmi' | ||
smooth_icon = 'icons/turf/walls/rock_wall.dmi' | ||
icon_state = "rock2" | ||
base_icon_state = "rock_wall" | ||
smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER | ||
canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS) | ||
defer_change = TRUE | ||
environment_type = "waste" | ||
turf_type = /turf/open/floor/plating | ||
baseturfs = /turf/open/floor/plating | ||
initial_gas_mix = OPENTURF_DEFAULT_ATMOS | ||
var/risk_level = 1 | ||
var/mining_time = 40 | ||
var/list/chem_list | ||
/* | ||
Tool speeds for pickaxes are the following: | ||
improvised pick: 3 | ||
pickaxe: 1 | ||
drill: 0.6 | ||
silver p: 0.5 | ||
diamond p: 0.3 | ||
diamond drill: 0.2 | ||
jackhammer: 0.1 | ||
*/ | ||
|
||
/turf/closed/mineral/random/facility/Initialize() | ||
if(prob(30)) | ||
baseturfs = /turf/open/floor/plating/rust | ||
if(prob(30)) | ||
risk_level += 1 | ||
..() | ||
|
||
/turf/closed/mineral/random/facility/Change_Ore(ore_type, random = 0) | ||
. = ..() | ||
if(mineralType) | ||
smooth_icon = 'icons/turf/walls/rock_wall.dmi' | ||
icon = 'icons/turf/walls/rock_wall.dmi' | ||
icon_state = "rock_wall-0" | ||
base_icon_state = "rock_wall" | ||
smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER | ||
|
||
/turf/closed/mineral/random/facility//assiyah, ZAYIN-TETH level | ||
mineralChance = 10 | ||
mineralSpawnChanceList = list( | ||
/obj/item/stack/ore/uranium = 1, /obj/item/stack/ore/diamond = 1, /obj/item/stack/ore/gold = 2, /obj/item/stack/ore/silver = 3, | ||
/obj/item/stack/ore/ironscrap = 20, /obj/item/stack/ore/glassrubble = 40, /obj/item/stack/ore/plasteel = 5) | ||
|
||
/turf/closed/mineral/random/facility/briah//HE-WAW level | ||
mineralChance = 15 | ||
mineralSpawnChanceList = list( | ||
/obj/item/stack/ore/uranium = 3, /obj/item/stack/ore/diamond = 2, /obj/item/stack/ore/gold = 3, /obj/item/stack/ore/silver = 5, | ||
/obj/item/stack/ore/ironscrap = 40, /obj/item/stack/ore/glassrubble = 20, /obj/item/stack/ore/plasteel = 10) | ||
risk_level = 3 | ||
mining_time = 120 | ||
|
||
/turf/closed/mineral/random/facility/atzliuth//WAW-ALEPH level | ||
mineralChance = 20 | ||
mineralSpawnChanceList = list( | ||
/obj/item/stack/ore/uranium = 5, /obj/item/stack/ore/diamond = 10, /obj/item/stack/ore/gold = 5, /obj/item/stack/ore/silver = 5, | ||
/obj/item/stack/ore/ironscrap = 5, /obj/item/stack/ore/glassrubble = 10, /obj/item/stack/ore/plasteel = 30) | ||
risk_level = 4 | ||
mining_time = 300 | ||
|
||
/turf/closed/mineral/random/facility/attackby(obj/item/I, mob/user, params) | ||
if (!ISADVANCEDTOOLUSER(user)) | ||
to_chat(usr, "<span class='warning'>You don't have the dexterity to do this!</span>") | ||
return | ||
|
||
if(I.tool_behaviour == TOOL_MINING) | ||
var/turf/T = user.loc | ||
if (!isturf(T)) | ||
return | ||
if(mining_time * I.toolspeed >= 100) | ||
to_chat(user, "<span class='notice'>Your [I] barely chips the rock!</span>") | ||
return | ||
|
||
if(last_act + (mining_time * I.toolspeed) > world.time)//prevents message spam | ||
return | ||
last_act = world.time | ||
to_chat(user, "<span class='notice'>You start picking...</span>") | ||
if(I.use_tool(src, user, mining_time, volume=50)) | ||
if(ismineralturf(src)) | ||
to_chat(user, "<span class='notice'>You finish cutting into the rock.</span>") | ||
gets_drilled(user, TRUE) | ||
SSblackbox.record_feedback("tally", "pick_used_mining", 1, I.type) | ||
else | ||
return attack_hand(user) | ||
|
||
/turf/closed/mineral/random/facility/gets_drilled(user)//no experience | ||
if(mineralType && (mineralAmt > 0)) | ||
new mineralType(src, mineralAmt) | ||
SSblackbox.record_feedback("tally", "ore_mined", mineralAmt, mineralType) | ||
|
||
for(var/obj/effect/temp_visual/mining_overlay/M in src) | ||
qdel(M) | ||
var/flags = NONE | ||
if(defer_change) // TODO: make the defer change var a var for any changeturf flag | ||
flags = CHANGETURF_DEFER_CHANGE | ||
if(prob(10)) | ||
PickEvents(user) | ||
ScrapeAway(null, flags) | ||
addtimer(CALLBACK(src, PROC_REF(AfterChange)), 1, TIMER_UNIQUE) | ||
playsound(get_turf(src), 'sound/effects/break_stone.ogg', 50, TRUE) //beautiful destruction | ||
|
||
/turf/closed/mineral/random/facility/proc/PickEvents(user) | ||
if(prob(100)) | ||
MiningEvent() | ||
if(prob(30)) | ||
SummonMobs() | ||
return | ||
else | ||
AbnoEvent() | ||
|
||
/turf/closed/mineral/random/facility/proc/MiningEvent(user) | ||
if(prob(50))//explosion | ||
var/explosion_damage = (risk_level * 20) | ||
if(prob(risk_level * 10))//explode | ||
visible_message(span_danger("[src] suddenly explodes!")) | ||
new /obj/effect/temp_visual/explosion(get_turf(src)) | ||
playsound(get_turf(src), 'sound/effects/ordeals/steel/gcorp_boom.ogg', 60, TRUE) | ||
for(var/mob/living/L in view(3, src)) | ||
L.apply_damage(explosion_damage, RED_DAMAGE, null, L.run_armor_check(null, RED_DAMAGE)) | ||
return | ||
else | ||
visible_message(span_danger("You feel a sudden rush of air as [src] crumbles down!")) | ||
var/datum/effect_system/smoke_spread/chem/S = new | ||
var/turf/location = get_turf(src) | ||
// Create the reagents to put into the air | ||
create_reagents(100) | ||
PickChems(risk_level) | ||
S.attach(location) | ||
S.set_up(reagents, 2, location, silent = FALSE) | ||
S.start() | ||
|
||
/turf/closed/mineral/random/facility/proc/PickChems(risk_level)//TODO: make sure these are actually dangerous | ||
switch(risk_level) | ||
if(1) | ||
chem_list = list( | ||
/datum/reagent/toxin/mutagen = 1, | ||
/datum/reagent/toxin/minttoxin = 10,//fatties get ownzoned | ||
/datum/reagent/toxin/mutetoxin = 15, | ||
/datum/reagent/drug/space_drugs = 30, | ||
/datum/reagent/toxin/chloralhydrate = 30, | ||
/datum/reagent/toxin/staminatoxin = 50, | ||
) | ||
if(2) | ||
chem_list = list( | ||
/datum/reagent/toxin/acid = 5, | ||
/datum/reagent/toxin/minttoxin = 10, | ||
/datum/reagent/toxin/mutetoxin = 30, | ||
/datum/reagent/drug/space_drugs = 15, | ||
/datum/reagent/toxin/chloralhydrate = 20, | ||
/datum/reagent/toxin/staminatoxin = 30, | ||
) | ||
if(3) | ||
chem_list = list( | ||
/datum/reagent/toxin/cyanide = 1, | ||
/datum/reagent/toxin = 10, | ||
/datum/reagent/toxin/mutagen = 5, | ||
/datum/reagent/toxin/acid = 10, | ||
/datum/reagent/toxin/minttoxin = 10, | ||
/datum/reagent/toxin/mutetoxin = 10, | ||
/datum/reagent/toxin/mindbreaker = 10, | ||
/datum/reagent/toxin/chloralhydrate = 10, | ||
/datum/reagent/toxin/staminatoxin = 10, | ||
) | ||
if(4) | ||
chem_list = list( | ||
/datum/reagent/toxin/cyanide = 1, | ||
/datum/reagent/toxin = 20, | ||
/datum/reagent/toxin/mutagen = 10, | ||
/datum/reagent/toxin/acid = 20, | ||
/datum/reagent/toxin/minttoxin = 5, | ||
/datum/reagent/toxin/mutetoxin = 5, | ||
/datum/reagent/toxin/mindbreaker = 15, | ||
/datum/reagent/toxin/chloralhydrate = 20, | ||
/datum/reagent/toxin/staminatoxin = 5, | ||
) | ||
else//5, or 6 if it somehow appears | ||
chem_list = list( | ||
/datum/reagent/toxin/cyanide = 1, | ||
/datum/reagent/toxin = 30, | ||
/datum/reagent/toxin/mutagen = 10, | ||
/datum/reagent/toxin/acid = 30, | ||
/datum/reagent/toxin/minttoxin = 1, | ||
/datum/reagent/toxin/mutetoxin = 1, | ||
/datum/reagent/toxin/mindbreaker = 10, | ||
/datum/reagent/toxin/chloralhydrate = 30, | ||
/datum/reagent/toxin/staminatoxin = 1, | ||
) | ||
|
||
var/chosen_reagent = pickweight(chem_list) | ||
reagents.add_reagent(chosen_reagent, (risk_level * 20)) | ||
|
||
/turf/closed/mineral/random/facility/proc/SummonMobs(user) | ||
|
||
/turf/closed/mineral/random/facility/proc/AbnoEvent(user) | ||
|
||
/turf/closed/mineral/random/facility/abnospawner | ||
name = "shifty rubble"//you need to varedit the threat levels | ||
|
||
/turf/closed/mineral/random/facility/abnospawner/gets_drilled(user) | ||
AbnoEvent() | ||
..() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
//refer to ores_coins.dm for the base type | ||
//use mining.dmi for icons | ||
/obj/item/stack/ore/ironscrap | ||
name = "scrap" | ||
icon_state = "Iron ore" | ||
inhand_icon_state = "Iron ore" | ||
singular_name = "iron ore chunk" | ||
points = 1 | ||
mats_per_unit = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT) | ||
refined_type = /obj/item/stack/sheet/metal | ||
mine_experience = 0 | ||
scan_state = "rock_Iron" | ||
spreadChance = 20//FIND OUT WHAT THIS IS | ||
merge_type = /obj/item/stack/ore/ironscrap | ||
|
||
/obj/item/stack/ore/glassrubble | ||
name = "broken glass" | ||
icon = 'icons/obj/shards.dmi' | ||
icon_state = "large" | ||
inhand_icon_state = "Glass ore"//TODO: find these | ||
points = 1 | ||
mats_per_unit = list(/datum/material/glass=MINERAL_MATERIAL_AMOUNT) | ||
refined_type = /obj/item/stack/sheet/glass | ||
mine_experience = 0 | ||
merge_type = /obj/item/stack/ore/glassrubble | ||
|
||
/obj/item/stack/ore/plasteel | ||
name = "X corp scrap alloy" | ||
icon_state = "Adamantine ore" | ||
inhand_icon_state = "Adamantine ore" | ||
points = 15 | ||
mats_per_unit = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT, /datum/material/iron=MINERAL_MATERIAL_AMOUNT) | ||
refined_type = /obj/item/stack/sheet/plasteel | ||
mine_experience = 0 | ||
scan_state = "rock_Plasma" | ||
spreadChance = 8 | ||
merge_type = /obj/item/stack/ore/plasteel |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
{ | ||
"version": 1, | ||
"map_name": "District 4", | ||
"map_path": "map_files/Enkephalin Rush", | ||
"map_file": [ | ||
"district_4.dmm" | ||
], | ||
"traits": [ | ||
{ | ||
"Baseturf": "/turf/open/floor/plating/asteroid" | ||
} | ||
], | ||
"space_ruin_levels": 0, | ||
"space_empty_levels": 0, | ||
"minetype": "none", | ||
"maptype": "enkephalin_rush" | ||
} |
Oops, something went wrong.