mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-22 12:29:46 +01:00
New Away Site: Hiskyn Treasure Trove (#21324)
EDIT: This is complete and no longer a work in progress. I've tried to make sure that everything is tested and working properly but if there are issues please let me know. This away site is intended to be a high risk, high reward, encounter. I'm also attempting to increase its replayability by incorporating a number of sections and submaps that will be newly generated each time. Things added or changed: - Additional traps and environmental hazards. - Lava is now more deadly. It used to only set you on fire, now it will burn you appropriately. - Minor sprite fixes for uncommon elements for easier mapping; throwers, step triggers. - Map and associated files, submap json, landmarks, areas, ect. --------- Signed-off-by: Evandorf <ej_denton@msn.com> Co-authored-by: Kano <89972582+kano-dot@users.noreply.github.com>
This commit is contained in:
@@ -207,6 +207,9 @@
|
||||
var/explosion_size = 3
|
||||
var/spread_range = 7
|
||||
|
||||
/obj/item/landmine/frag/deployed
|
||||
deployed = TRUE
|
||||
|
||||
/obj/item/landmine/frag/trigger(mob/living/triggerer)
|
||||
spark(src, 3, GLOB.alldirs)
|
||||
fragem(src,num_fragments,num_fragments,explosion_size,explosion_size+1,fragment_damage,damage_step,TRUE)
|
||||
@@ -304,6 +307,9 @@
|
||||
/obj/item/landmine/phoron
|
||||
icon_state = "phoronlandmine"
|
||||
|
||||
/obj/item/landmine/phoron/deployed
|
||||
deployed = TRUE
|
||||
|
||||
/obj/item/landmine/phoron/trigger(mob/living/triggerer)
|
||||
spark(src, 3, GLOB.alldirs)
|
||||
for (var/turf/simulated/floor/target in range(1,src))
|
||||
@@ -322,6 +328,9 @@
|
||||
/obj/item/landmine/n2o
|
||||
icon_state = "phoronlandmine"
|
||||
|
||||
/obj/item/landmine/n2o/deployed
|
||||
deployed = TRUE
|
||||
|
||||
/obj/item/landmine/n2o/trigger(mob/living/L)
|
||||
spark(src, 3, GLOB.alldirs)
|
||||
for (var/turf/simulated/floor/target in range(1,src))
|
||||
@@ -338,6 +347,9 @@
|
||||
/obj/item/landmine/emp
|
||||
icon_state = "emplandmine"
|
||||
|
||||
/obj/item/landmine/emp/deployed
|
||||
deployed = TRUE
|
||||
|
||||
/obj/item/landmine/emp/trigger(mob/living/triggerer)
|
||||
spark(src, 3, GLOB.alldirs)
|
||||
empulse(src.loc, 2, 4)
|
||||
|
||||
@@ -209,29 +209,28 @@
|
||||
desc = "This is a random soap."
|
||||
icon = 'icons/obj/soap.dmi'
|
||||
icon_state = "soap"
|
||||
|
||||
/obj/random/soap/item_to_spawn()
|
||||
return pick(/obj/item/soap, \
|
||||
/obj/item/soap/nanotrasen, \
|
||||
/obj/item/soap/deluxe,\
|
||||
/obj/item/soap/space_soap,\
|
||||
/obj/item/soap/space_soap,\
|
||||
/obj/item/soap/water_soap,\
|
||||
/obj/item/soap/fire_soap,\
|
||||
/obj/item/soap/rainbow_soap,\
|
||||
/obj/item/soap/diamond_soap,\
|
||||
/obj/item/soap/uranium_soap,\
|
||||
/obj/item/soap/silver_soap,\
|
||||
/obj/item/soap/brown_soap,\
|
||||
/obj/item/soap/white_soap,\
|
||||
/obj/item/soap/grey_soap,\
|
||||
/obj/item/soap/pink_soap,\
|
||||
/obj/item/soap/purple_soap,\
|
||||
/obj/item/soap/blue_soap,\
|
||||
/obj/item/soap/cyan_soap,\
|
||||
/obj/item/soap/green_soap,\
|
||||
/obj/item/soap/yellow_soap,\
|
||||
/obj/item/soap/orange_soap,\
|
||||
/obj/item/soap/red_soap,\
|
||||
/obj/item/soap/golden_soap,\
|
||||
spawnlist = list(
|
||||
/obj/item/soap,
|
||||
/obj/item/soap/nanotrasen,
|
||||
/obj/item/soap/deluxe,
|
||||
/obj/item/soap/space_soap,
|
||||
/obj/item/soap/space_soap,
|
||||
/obj/item/soap/water_soap,
|
||||
/obj/item/soap/fire_soap,
|
||||
/obj/item/soap/rainbow_soap,
|
||||
/obj/item/soap/diamond_soap,
|
||||
/obj/item/soap/uranium_soap,
|
||||
/obj/item/soap/silver_soap,
|
||||
/obj/item/soap/brown_soap,
|
||||
/obj/item/soap/white_soap,
|
||||
/obj/item/soap/grey_soap,
|
||||
/obj/item/soap/pink_soap,
|
||||
/obj/item/soap/purple_soap,
|
||||
/obj/item/soap/blue_soap,
|
||||
/obj/item/soap/cyan_soap,
|
||||
/obj/item/soap/green_soap,
|
||||
/obj/item/soap/yellow_soap,
|
||||
/obj/item/soap/orange_soap,
|
||||
/obj/item/soap/red_soap,
|
||||
/obj/item/soap/golden_soap,
|
||||
)
|
||||
|
||||
@@ -256,7 +256,7 @@
|
||||
/obj/item/trap/punji/attack_mob(mob/living/L)
|
||||
|
||||
//Reveal the trap, if not already visible
|
||||
hide(FALSE)
|
||||
invisibility = 0
|
||||
|
||||
//Select a target zone
|
||||
var/target_zone
|
||||
@@ -352,6 +352,57 @@
|
||||
deployed = TRUE
|
||||
anchored = TRUE
|
||||
|
||||
/obj/item/trap/punji/deployed/hidden
|
||||
invisibility = INVISIBILITY_MAXIMUM
|
||||
|
||||
/obj/item/trap/jagged_rock
|
||||
name = "treacherous rock"
|
||||
desc = "A jagged and dangerous outcropping."
|
||||
icon = 'icons/obj/flora/rocks_grey.dmi'
|
||||
icon_state = "basalt"
|
||||
anchored = TRUE
|
||||
invisibility = 0
|
||||
|
||||
/obj/item/trap/jagged_rock/on_entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs)
|
||||
if(isliving(arrived))
|
||||
var/mob/living/L = arrived
|
||||
attack_mob(L)
|
||||
update_icon()
|
||||
|
||||
/obj/item/trap/jagged_rock/attack_mob(mob/living/L)
|
||||
|
||||
//Select a target zone
|
||||
var/target_zone
|
||||
if(L.lying)
|
||||
target_zone = pick(BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG, BP_L_HAND, BP_L_ARM, BP_R_HAND, BP_R_ARM)
|
||||
else
|
||||
target_zone = pick(BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG)
|
||||
|
||||
//Try to apply the damage
|
||||
var/success = L.apply_damage(50, DAMAGE_BRUTE, target_zone, used_weapon = src, armor_pen = activated_armor_penetration)
|
||||
//Apply weakness, so the victim doesn't walk immediately back out of the trap
|
||||
L.Weaken(10)
|
||||
|
||||
//If successfully applied, give the message
|
||||
if(success)
|
||||
|
||||
//Give a simple message and return if it's not a human
|
||||
if(!ishuman(L))
|
||||
L.visible_message(SPAN_DANGER("[L] slams into \the [src]!"))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/human = L
|
||||
var/obj/item/organ/organ = human.get_organ(target_zone)
|
||||
|
||||
if(isipc(L) || isrobot(L))
|
||||
playsound(src, 'sound/weapons/smash.ogg', 100, TRUE)
|
||||
else
|
||||
playsound(src, 'sound/weapons/heavysmash.ogg', 100, TRUE)
|
||||
|
||||
human.visible_message(SPAN_DANGER("\The [human] slams into \the [src]!"),
|
||||
SPAN_WARNING(FONT_LARGE(SPAN_DANGER("You crash on \the [src], feel your body crumble, and something sharp penetrate your [organ.name]!"))),
|
||||
SPAN_WARNING("<b>You feel your body crumble, and something sharp penetrate your [organ.name]!</b>"))
|
||||
|
||||
/**
|
||||
* # Animal trap
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user