New Gateway Stuff!
Some new gateway things, it mostly works I just need to populate things and work out a couple kinks.
@@ -50,10 +50,10 @@ What is the naming convention for planes or layers?
|
||||
#define PLANE_LOOKINGGLASS_IMG -77 // For the Looking Glass holodecks
|
||||
|
||||
// OPENSPACE_PLANE reserves all planes between OPENSPACE_PLANE_START and OPENSPACE_PLANE_END inclusive
|
||||
#define OPENSPACE_PLANE -75 // /turf/simulated/open will use OPENSPACE_PLANE + z (Valid z's being 2 thru 17)
|
||||
#define OPENSPACE_PLANE -75 // /turf/simulated/open will use OPENSPACE_PLANE + z (Valid z's being 2 thru 27) //VOREStation Edit
|
||||
#define OPENSPACE_PLANE_START -73
|
||||
#define OPENSPACE_PLANE_END -58
|
||||
#define OVER_OPENSPACE_PLANE -57
|
||||
#define OPENSPACE_PLANE_END -48 //VOREStation Edit
|
||||
#define OVER_OPENSPACE_PLANE -47 //VOREStation Edit
|
||||
|
||||
// Turf Planes
|
||||
#define PLATING_PLANE -44 // Plating
|
||||
|
||||
@@ -25,4 +25,14 @@
|
||||
/obj/effect/map_effect/perma_light/concentrated/incandescent
|
||||
name = "permanent light (concentrated incandescent)"
|
||||
|
||||
light_color = LIGHT_COLOR_INCANDESCENT_TUBE
|
||||
light_color = LIGHT_COLOR_INCANDESCENT_TUBE
|
||||
|
||||
// VOREStation Addition Start
|
||||
/obj/effect/map_effect/perma_light/gateway
|
||||
name = "permanent light (gateway)"
|
||||
icon_state = "permalight"
|
||||
|
||||
light_range = 10
|
||||
light_power = 5
|
||||
light_color = "#b6cdff"
|
||||
// VOREStation Addition End
|
||||
@@ -0,0 +1,186 @@
|
||||
/mob/living/simple_mob //makes it so that any simplemob can potentially be revived by players and joined by ghosts
|
||||
var/ghostjoin = 0
|
||||
var/ic_revivable = 0
|
||||
var/revivedby = "no one"
|
||||
|
||||
//The stuff we want to be revivable normally
|
||||
/mob/living/simple_mob/animal
|
||||
ic_revivable = 1
|
||||
/mob/living/simple_mob/otie
|
||||
ic_revivable = 1
|
||||
/mob/living/simple_mob/vore
|
||||
ic_revivable = 1
|
||||
//The stuff that would be revivable but that we don't want to be revivable
|
||||
/mob/living/simple_mob/animal/giant_spider/nurse //no you can't revive the ones who can lay eggs and get webs everywhere
|
||||
ic_revivable = 0
|
||||
/mob/living/simple_mob/animal/giant_spider/carrier //or the ones who fart babies when they die
|
||||
ic_revivable = 0
|
||||
|
||||
//WHEN GHOSTS ATTACK!!!!!
|
||||
/mob/living/simple_mob/attack_ghost(mob/observer/dead/user as mob)
|
||||
if(!ghostjoin)
|
||||
return ..()
|
||||
|
||||
var/reply = alert("Would you like to become [src]? It is bound to [revivedby].",,"Yes","No")
|
||||
if(reply == "No")
|
||||
return
|
||||
|
||||
if(ckey) //FIRST ONE TO CLICK YES GETS IT!!!!!! Channel your inner youtube commenter.
|
||||
to_chat(src, "<span class='notice'>Sorry, someone else has already inhabited [src].</span>")
|
||||
return
|
||||
|
||||
log_and_message_admins("[key_name_admin(user)] joined [src] as a ghost [ADMIN_FLW(src)]")
|
||||
active_ghost_pods -= src
|
||||
if(user.mind)
|
||||
user.mind.active = TRUE
|
||||
user.mind.transfer_to(src)
|
||||
else
|
||||
src.ckey = user.ckey
|
||||
qdel(user)
|
||||
ghostjoin = 0
|
||||
ghostjoin_icon()
|
||||
if(revivedby != "no one")
|
||||
to_chat(src, "<span class='notice'>Where once your life had been rough and scary, you have been assisted by [revivedby]. They seem to be the reason you are on your feet again... so perhaps you should help them out.</span> <span class= warning> Being as you were revived, you are allied with the station. Do not attack anyone unless they are threatening the one who revived you. And try to listen to the one who revived you within reason. Of course, you may do scenes as you like, but you must still respect preferences.</span>")
|
||||
visible_message("[src]'s eyes flicker with a curious intelligence.")
|
||||
|
||||
|
||||
/obj/item/device/denecrotizer //Away map reward. FOR TRAINED NECROMANCERS ONLY. >:C
|
||||
name = "experimental denecrotizer"
|
||||
desc = "It looks simple on the outside but this device radiates some unknown dread. It does not appear to be of any ordinary make, and just how it works is unclear, but this device seems to interact with dead flesh."
|
||||
icon = 'icons/obj/device_vr.dmi'
|
||||
icon_state = "denecrotizer"
|
||||
w_class = ITEMSIZE_COST_NORMAL
|
||||
var/charges = 5 //your army of minions can only be this big
|
||||
var/last_used
|
||||
var/cooldown = 10 MINUTES //LONG
|
||||
var/revive_time = 30 SECONDS //Don't do this in combat
|
||||
var/advanced = 1 //allows for ghosts to join mobs who get revived by this, and updates their faction to yours
|
||||
|
||||
/obj/item/device/denecrotizer/examine(var/mob/user)
|
||||
. = ..()
|
||||
var/cooldowntime = round((cooldown - (world.time - last_used)) * 0.1)
|
||||
if(Adjacent(user))
|
||||
if(cooldowntime <= 0)
|
||||
. += "<span class='notice'>The screen indicates that this device is ready to be used, and that it has enough energy for [charges] uses.</span>"
|
||||
else
|
||||
. += "<span class='notice'>The screen indicates that this device can be used again in [cooldowntime] seconds, and that it has enough energy for [charges] uses.</span>"
|
||||
|
||||
/obj/item/device/denecrotizer/proc/check_target(mob/living/simple_mob/target, mob/living/user)
|
||||
if(!target.Adjacent(user))
|
||||
return FALSE
|
||||
if(user.a_intent != I_HELP) //be gentle
|
||||
user.visible_message("[user] bonks [target] with [src].", runemessage = "bonks [target]")
|
||||
return FALSE
|
||||
if(!istype(target))
|
||||
to_chat(user, "<span class='notice'>[target] seems to be too complicated for [src] to interface with.</span>")
|
||||
return FALSE
|
||||
if(!(world.time - last_used > cooldown))
|
||||
to_chat(user, "<span class='notice'>[src] doesn't seem to be ready yet.</span>")
|
||||
return FALSE
|
||||
if(!charges)
|
||||
to_chat(user, "<span class='notice'>[src] doesn't seem to be active anymore.</span>")
|
||||
return FALSE
|
||||
if(!target.ic_revivable)
|
||||
to_chat(user, "<span class='notice'>[src] doesn't seem to interface with [target].</span>")
|
||||
return FALSE
|
||||
if(target.stat != DEAD)
|
||||
if(!advanced)
|
||||
to_chat(user, "<span class='notice'>[src] doesn't seem to work on that.</span>")
|
||||
return FALSE
|
||||
if(target.ai_holder.retaliate || target.ai_holder.hostile) // You can be friends with still living mobs if they are passive I GUESS
|
||||
to_chat(user, "<span class='notice'>[src] doesn't seem to work on that.</span>")
|
||||
return FALSE
|
||||
if(!target.mind)
|
||||
user.visible_message("[user] gently presses [src] to [target]...", runemessage = "presses [src] to [target]")
|
||||
if(do_after(user, revive_time, exclusive = 1, target = target))
|
||||
target.faction = user.faction
|
||||
target.revivedby = user.name
|
||||
target.ghostjoin = 1
|
||||
active_ghost_pods += target
|
||||
target.ghostjoin_icon()
|
||||
last_used = world.time
|
||||
charges--
|
||||
log_and_message_admins("[key_name_admin(user)] used a denecrotizer to tame/offer a simplemob to ghosts: [target]. [ADMIN_FLW(src)]")
|
||||
target.visible_message("[target]'s eyes widen, as though in revelation as it looks at [user].", runemessage = "eyes widen")
|
||||
if(charges == 0)
|
||||
icon_state = "[initial(icon_state)]-o"
|
||||
update_icon()
|
||||
return FALSE
|
||||
else
|
||||
to_chat(user, "<span class='notice'>[src] doesn't seem to work on that.</span>")
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/item/device/denecrotizer/proc/ghostjoin_rez(mob/living/simple_mob/target, mob/living/user)
|
||||
user.visible_message("[user] gently presses [src] to [target]...", runemessage = "presses [src] to [target]")
|
||||
if(do_after(user, revive_time, exclusive = 1, target = target))
|
||||
target.faction = user.faction
|
||||
target.revivedby = user.name
|
||||
target.revive()
|
||||
target.sight = initial(target.sight)
|
||||
target.see_in_dark = initial(target.see_in_dark)
|
||||
target.see_invisible = initial(target.see_invisible)
|
||||
target.update_icon()
|
||||
visible_message("[target] lifts its head and looks at [user].", runemessage = "lifts its head and looks at [user]")
|
||||
log_and_message_admins("[key_name_admin(user)] used a denecrotizer to revive a simple mob: [target]. [ADMIN_FLW(src)]")
|
||||
if(!target.mind) //if it doesn't have a mind then no one has been playing as it, and it is safe to offer to ghosts.
|
||||
target.ghostjoin = 1
|
||||
active_ghost_pods += target
|
||||
target.ghostjoin_icon()
|
||||
last_used = world.time
|
||||
charges--
|
||||
if(charges == 0)
|
||||
icon_state = "[initial(icon_state)]-o"
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/device/denecrotizer/proc/basic_rez(mob/living/simple_mob/target, mob/living/user) //so medical can have a way to bring back people's pets or whatever, does not change any settings about the mob or offer it to ghosts.
|
||||
user.visible_message("[user] presses [src] to [target]...", runemessage = "presses [src] to [target]")
|
||||
if(do_after(user, revive_time, exclusive = 1, target = target))
|
||||
target.revive()
|
||||
target.sight = initial(target.sight)
|
||||
target.see_in_dark = initial(target.see_in_dark)
|
||||
target.see_invisible = initial(target.see_invisible)
|
||||
target.update_icon()
|
||||
visible_message("[target] lifts its head and looks at [user].", runemessage = "lifts its head and looks at [user]")
|
||||
last_used = world.time
|
||||
charges--
|
||||
if(charges == 0)
|
||||
icon_state = "[initial(icon_state)]-o"
|
||||
update_icon()
|
||||
return
|
||||
else
|
||||
user.visible_message("[user] bonks [target] with [src]. Nothing happened.")
|
||||
return
|
||||
|
||||
|
||||
|
||||
/obj/item/device/denecrotizer/attack(mob/living/simple_mob/target, mob/living/user)
|
||||
if(check_target(target, user))
|
||||
if(advanced)
|
||||
ghostjoin_rez(target, user)
|
||||
else
|
||||
basic_rez(target, user)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/proc/ghostjoin_icon() //puts an icon on mobs for ghosts, so they can see if a mob has been revived and is joinable
|
||||
var/static/image/I
|
||||
if(!I)
|
||||
I = image('icons/mob/hud_vr.dmi', "ghostjoin")
|
||||
I.invisibility = INVISIBILITY_OBSERVER
|
||||
I.plane = PLANE_GHOSTS
|
||||
I.appearance_flags = KEEP_APART|RESET_TRANSFORM
|
||||
|
||||
if(ghostjoin)
|
||||
add_overlay(I)
|
||||
else
|
||||
cut_overlay(I)
|
||||
|
||||
/obj/item/device/denecrotizer/medical //Can revive more things, but without the special ghost and faction stuff. For medical use.
|
||||
name = "commercial denecrotizer"
|
||||
desc = "A curious device who's purpose is reviving simpler life forms. It seems to radiate menace."
|
||||
icon_state = "m-denecrotizer"
|
||||
advanced = 0 //This one isn't as fancy
|
||||
cooldown = 5 MINUTES //not as long
|
||||
charges = 20 //in case spiders merc Ian
|
||||
@@ -1345,6 +1345,28 @@
|
||||
/obj/random/multiple/large_corp_crate
|
||||
)
|
||||
)
|
||||
//VOREStation Add - Random good, no guns gooder
|
||||
/obj/random/multiple/random_size_crate/no_weapons
|
||||
name = "random size corporate crate (no weapons)"
|
||||
desc = "A random size corporate crate with thematic contents: prefers small crates."
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "largermetal"
|
||||
spawn_nothing_percentage = 50
|
||||
|
||||
/obj/random/multiple/random_size_crate/no_weapons/item_to_spawn()
|
||||
return pick(
|
||||
prob(85);list(
|
||||
/obj/random/multiple/corp_crate/no_weapons
|
||||
),
|
||||
prob(15);list(
|
||||
/obj/random/multiple/large_corp_crate/no_weapons
|
||||
)
|
||||
)
|
||||
|
||||
/obj/random/multiple/random_size_crate/no_weapons/nofail
|
||||
spawn_nothing_percentage = 0
|
||||
|
||||
//VOREStation Add End
|
||||
/*
|
||||
* Turf swappers.
|
||||
*/
|
||||
|
||||
@@ -249,6 +249,7 @@
|
||||
prob(8);/obj/item/weapon/storage/firstaid/o2,
|
||||
prob(6);/obj/item/weapon/storage/firstaid/adv,
|
||||
prob(8);/obj/item/weapon/storage/firstaid/fire,
|
||||
prob(1);/obj/item/device/denecrotizer/medical, //VOREStation Add,
|
||||
prob(1);/obj/item/weapon/storage/firstaid/combat)
|
||||
|
||||
/obj/random/contraband
|
||||
|
||||
@@ -8,4 +8,44 @@
|
||||
|
||||
/obj/random/explorer_shield/item_to_spawn()
|
||||
return pick(/obj/item/weapon/shield/riot/explorer,
|
||||
/obj/item/weapon/shield/riot/explorer/purple)
|
||||
/obj/item/weapon/shield/riot/explorer/purple)
|
||||
|
||||
/obj/random/awayloot
|
||||
name = "random away mission loot"
|
||||
desc = "A list of things that people can find in away missions."
|
||||
icon = 'icons/mob/randomlandmarks.dmi'
|
||||
icon_state = "awayloot"
|
||||
spawn_nothing_percentage = 50
|
||||
|
||||
/obj/random/awayloot/item_to_spawn()
|
||||
return pick(prob(50);/obj/item/weapon/aliencoin,
|
||||
prob(40);/obj/item/weapon/aliencoin/silver,
|
||||
prob(30);/obj/item/weapon/aliencoin/gold,
|
||||
prob(20);/obj/item/weapon/aliencoin/phoron,
|
||||
prob(10);/obj/item/device/denecrotizer,
|
||||
prob(5);/obj/item/device/perfect_tele,
|
||||
prob(5);/obj/item/weapon/bluespace_harpoon,
|
||||
prob(1);/obj/item/weapon/cell/infinite,
|
||||
prob(1);/obj/item/weapon/cell/void,
|
||||
prob(1);/obj/item/weapon/cell/device/weapon/recharge/alien,
|
||||
prob(1);/obj/item/clothing/shoes/boots/speed,
|
||||
prob(1);/obj/item/device/nif,
|
||||
prob(1);/obj/item/device/paicard,
|
||||
prob(2);/obj/item/weapon/storage/backpack/dufflebag/syndie,
|
||||
prob(2);/obj/item/weapon/storage/backpack/dufflebag/syndie/ammo,
|
||||
prob(2);/obj/item/weapon/storage/backpack/dufflebag/syndie/med,
|
||||
prob(2);/obj/item/clothing/mask/gas/voice,
|
||||
prob(2);/obj/item/device/radio_jammer,
|
||||
prob(1);/obj/item/toy/bosunwhistle,
|
||||
prob(1);/obj/item/weapon/bananapeel,
|
||||
prob(5);/obj/fiftyspawner/platinum,
|
||||
prob(3);/obj/fiftyspawner/gold,
|
||||
prob(3);/obj/fiftyspawner/silver,
|
||||
prob(1);/obj/fiftyspawner/diamond,
|
||||
prob(5);/obj/fiftyspawner/phoron,
|
||||
prob(1);/obj/item/weapon/telecube/randomized
|
||||
)
|
||||
|
||||
/obj/random/awayloot/nofail
|
||||
name = "garunteed random away mission loot"
|
||||
spawn_nothing_percentage = 0
|
||||
|
||||
@@ -257,4 +257,8 @@
|
||||
prob(5);/obj/item/weapon/rig/eva,
|
||||
prob(4);/obj/item/weapon/rig/light/stealth,
|
||||
prob(3);/obj/item/weapon/rig/hazard,
|
||||
prob(1);/obj/item/weapon/rig/merc/empty)
|
||||
prob(1);/obj/item/weapon/rig/merc/empty)
|
||||
//VOREStation Add Start
|
||||
/obj/random/rigsuit/chancetofail
|
||||
spawn_nothing_percentage = 50
|
||||
//VOREStation Add End
|
||||
@@ -0,0 +1,22 @@
|
||||
/obj/structure/flora/tree/bigtree
|
||||
icon = 'icons/obj/flora/moretrees_vr.dmi'
|
||||
icon_state = "bigtree1"
|
||||
base_state = "tree"
|
||||
product = /obj/item/stack/material/log
|
||||
product_amount = 20
|
||||
health = 2000
|
||||
max_health = 2000
|
||||
pixel_x = -65
|
||||
pixel_y = -8
|
||||
layer = MOB_LAYER - 1
|
||||
shake_animation_degrees = 2
|
||||
|
||||
/obj/structure/flora/tree/bigtree/choose_icon_state()
|
||||
return "[base_state][rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/tree/bigtree/Initialize()
|
||||
. = ..()
|
||||
|
||||
var/image/i = image('icons/obj/flora/moretrees_vr.dmi', "[icon_state]-b")
|
||||
i.plane = ABOVE_MOB_PLANE
|
||||
add_overlay(i)
|
||||
@@ -0,0 +1,102 @@
|
||||
/turf/simulated/floor/tiled/asteroid_steel/outdoors
|
||||
name = "weathered tiles"
|
||||
desc = "Old tiles left out in the elements."
|
||||
outdoors = 1
|
||||
edge_blending_priority = 1
|
||||
|
||||
/turf/simulated/floor/outdoors/newdirt
|
||||
name = "dirt"
|
||||
desc = "Looks dirty."
|
||||
icon = 'icons/turf/outdoors_vr.dmi'
|
||||
icon_state = "dirt0"
|
||||
edge_blending_priority = 2
|
||||
initial_flooring = /decl/flooring/outdoors/newdirt
|
||||
|
||||
/decl/flooring/outdoors/newdirt
|
||||
name = "dirt"
|
||||
desc = "Looks dirty."
|
||||
icon = 'icons/turf/outdoors_vr.dmi'
|
||||
icon_base = "dirt0"
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/asteroid1.ogg',
|
||||
'sound/effects/footstep/asteroid2.ogg',
|
||||
'sound/effects/footstep/asteroid3.ogg',
|
||||
'sound/effects/footstep/asteroid4.ogg',
|
||||
'sound/effects/footstep/asteroid5.ogg',
|
||||
'sound/effects/footstep/MedDirt1.ogg',
|
||||
'sound/effects/footstep/MedDirt2.ogg',
|
||||
'sound/effects/footstep/MedDirt3.ogg',
|
||||
'sound/effects/footstep/MedDirt4.ogg'))
|
||||
|
||||
/turf/simulated/floor/outdoors/newdirt/Initialize(mapload)
|
||||
var/possibledirts = list(
|
||||
"dirt0" = 150,
|
||||
"dirt1" = 25,
|
||||
"dirt2" = 25,
|
||||
"dirt3" = 10,
|
||||
"dirt4" = 3,
|
||||
"dirt5" = 3,
|
||||
"dirt6" = 1,
|
||||
"dirt7" = 25,
|
||||
"dirt8" = 10,
|
||||
"dirt9" = 25
|
||||
)
|
||||
flooring_override = pickweight(possibledirts)
|
||||
return ..()
|
||||
|
||||
|
||||
/turf/simulated/floor/outdoors/newdirt_nograss
|
||||
name = "dirt"
|
||||
desc = "Looks dirty."
|
||||
icon = 'icons/turf/outdoors_vr.dmi'
|
||||
icon_state = "dirt0"
|
||||
edge_blending_priority = 2
|
||||
initial_flooring = /decl/flooring/outdoors/newdirt
|
||||
|
||||
/turf/simulated/floor/outdoors/newdirt_nograss/Initialize(mapload)
|
||||
var/possibledirts = list(
|
||||
"dirt0" = 200,
|
||||
"dirt3" = 20,
|
||||
"dirt4" = 3,
|
||||
"dirt5" = 3,
|
||||
"dirt6" = 1
|
||||
)
|
||||
flooring_override = pickweight(possibledirts)
|
||||
return ..()
|
||||
|
||||
/turf/simulated/floor/outdoors/sidewalk
|
||||
name = "sidewalk"
|
||||
desc = "Concrete shaped into a path!"
|
||||
icon = 'icons/turf/outdoors_vr.dmi'
|
||||
icon_state = "sidewalk0"
|
||||
edge_blending_priority = 1
|
||||
movement_cost = -0.5
|
||||
initial_flooring = /decl/flooring/outdoors/sidewalk
|
||||
|
||||
/decl/flooring/outdoors/sidewalk
|
||||
name = "sidewalk"
|
||||
desc = "Concrete shaped into a path!"
|
||||
icon = 'icons/turf/outdoors_vr.dmi'
|
||||
icon_base = "sidewalk0"
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/LightStone1.ogg',
|
||||
'sound/effects/footstep/LightStone2.ogg',
|
||||
'sound/effects/footstep/LightStone3.ogg',
|
||||
'sound/effects/footstep/LightStone4.ogg',))
|
||||
|
||||
/turf/simulated/floor/outdoors/sidewalk/Initialize(mapload)
|
||||
var/possibledirts = list(
|
||||
"sidewalk0" = 150,
|
||||
"sidewalk1" = 3,
|
||||
"sidewalk2" = 3,
|
||||
"sidewalk3" = 3,
|
||||
"sidewalk4" = 3,
|
||||
"sidewalk5" = 3,
|
||||
"sidewalk6" = 2,
|
||||
"sidewalk7" = 2,
|
||||
"sidewalk8" = 2,
|
||||
"sidewalk9" = 2,
|
||||
"sidewalk10" = 2
|
||||
)
|
||||
flooring_override = pickweight(possibledirts)
|
||||
return ..()
|
||||
@@ -148,6 +148,13 @@ obj/machinery/gateway/centerstation/process()
|
||||
if(dest)
|
||||
M.forceMove(dest.loc)
|
||||
M.set_dir(SOUTH)
|
||||
//VOREStation Addition Start: Mcguffin time!
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!H.client)
|
||||
awaygate.entrydetect()
|
||||
//VOREStation Addition End: Mcguffin time!
|
||||
|
||||
//VOREStation Addition Start: Abduction!
|
||||
if(istype(M, /mob/living) && dest.abductor)
|
||||
var/mob/living/L = M
|
||||
@@ -318,4 +325,4 @@ obj/machinery/gateway/centerstation/process()
|
||||
else
|
||||
to_chat(user, "<font color='blue'><b>Recalibration successful!</b>:</font><font color='black'> This gate's systems have been fine tuned. Travel to this gate will now be on target.</font>")
|
||||
calibrated = 1
|
||||
return
|
||||
return
|
||||
@@ -0,0 +1,79 @@
|
||||
//This gateway type takes a special item that you will have to find on the map to activate, instead of using a multitool//
|
||||
|
||||
/obj/machinery/gateway/centeraway/mcguffin
|
||||
icon = 'icons/obj/machines/gateway_vr.dmi'
|
||||
calibrated = 0
|
||||
var/mcguffin_type = /obj/item/device/mcguffin/brass //you should be able to change the var to be whatever kind of path you like, so maybe you can use other things on it sometimes
|
||||
var/key //holds a ref to the key we spawned
|
||||
|
||||
/obj/machinery/gateway/centeraway/mcguffin/attackby(obj/item/device/W as obj, mob/user as mob)
|
||||
if(calibrated && stationgate)
|
||||
to_chat(user, "<span class='info'>The gate is already configured, you should be able to activate it.</span>")
|
||||
return
|
||||
else if(!stationgate)
|
||||
to_chat(user, "<span class='danger'>Error: Configuration failed. No destination found... That can't be good.</span>")
|
||||
return
|
||||
|
||||
if(istype(W,mcguffin_type) && !calibrated)
|
||||
to_chat(user, "<span class='emote'>As the device nears the gateway, mechanical clunks and whirrs can be heard. <br><font color='blue'><b>Configuration successful! </b></font><br>This gate's systems have been fine tuned. Travel to this gate will now be on target.</span>")
|
||||
calibrated = 1
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='danger'>This device does not seem to interface correctly with the gateway. Perhaps you should try something else.</span>")
|
||||
return
|
||||
|
||||
//If you use this kind of gateway you NEED one of these on the map or the players won't be able to leave//
|
||||
//You should use the random spawner though so it won't always be in the same place//
|
||||
/obj/item/device/mcguffin/brass
|
||||
name = "mysterious brass device"
|
||||
desc = "A curious object made of what appears to be brass and silver. Its purpose is unclear by looking at it. Perhaps it should be used with something of similar materials?"
|
||||
icon = 'icons/obj/machines/gateway_vr.dmi'
|
||||
icon_state = "mcguffin"
|
||||
drop_sound = 'sound/items/drop/wrench.ogg'
|
||||
pickup_sound = 'sound/items/pickup/wrench.ogg'
|
||||
|
||||
/obj/effect/landmark/mcguffin_spawner
|
||||
name = "gateway key spawner"
|
||||
icon = 'icons/mob/randomlandmarks.dmi'
|
||||
icon_state = "key"
|
||||
|
||||
/obj/machinery/gateway/centeraway/proc/entrydetect()
|
||||
return
|
||||
|
||||
/obj/machinery/gateway/centeraway/mcguffin/entrydetect()
|
||||
if(key)
|
||||
return
|
||||
|
||||
var/list/spawners = list()
|
||||
for(var/obj/effect/landmark/mcguffin_spawner/sp in world)
|
||||
spawners += sp
|
||||
|
||||
var/obj/effect/landmark/mcguffin_spawner/the_cool_one = pick(spawners)
|
||||
|
||||
var/atom/destination = get_turf(the_cool_one)
|
||||
var/obj/structure/closet/CL = locate() in destination
|
||||
if(CL)
|
||||
destination = CL
|
||||
|
||||
if(!destination)
|
||||
warning("A gateway is trying to spawn it's mcguffin but there are no mapped in spawner landmarks")
|
||||
destination = get_turf(src)
|
||||
|
||||
key = new mcguffin_type(destination)
|
||||
|
||||
/obj/machinery/gateway/centeraway/mcguffin/Bumped(atom/movable/M as mob|obj)
|
||||
if(!ready) return
|
||||
if(!active) return
|
||||
M.forceMove(get_step(stationgate.loc, SOUTH))
|
||||
M.set_dir(SOUTH)
|
||||
M << 'sound/effects/swooshygate.ogg'
|
||||
playsound(src, 'sound/effects/swooshygate.ogg', 100, 1)
|
||||
|
||||
/obj/machinery/gateway/brass
|
||||
name = "mysterious brass gateway"
|
||||
desc = "A gateway of strange construction. It appears to be made primarily of materials resembling brass and silver."
|
||||
icon = 'icons/obj/machines/gateway_vr.dmi'
|
||||
|
||||
//No, you can't digest the key to leave the gateway.
|
||||
/obj/item/device/mcguffin/digest_act(var/atom/movable/item_storage = null)
|
||||
return FALSE
|
||||
@@ -0,0 +1,55 @@
|
||||
//Weird coins that I would prefer didn't work with normal vending machines. Might use them to make weird vending machines later.
|
||||
|
||||
/obj/item/weapon/aliencoin
|
||||
icon = 'icons/obj/aliencoins.dmi'
|
||||
name = "curious coin"
|
||||
desc = "A curious triangular coin made primarily of some kind of dark, smooth metal. "
|
||||
icon_state = "triangle"
|
||||
randpixel = 8
|
||||
force = 0.5
|
||||
throwforce = 0.5
|
||||
w_class = ITEMSIZE_TINY
|
||||
slot_flags = SLOT_EARS
|
||||
var/sides = 2
|
||||
var/value = 1
|
||||
drop_sound = 'sound/items/drop/ring.ogg'
|
||||
pickup_sound = 'sound/items/pickup/ring.ogg'
|
||||
|
||||
/obj/item/weapon/aliencoin/New()
|
||||
randpixel_xy()
|
||||
|
||||
/obj/item/weapon/aliencoin/gold
|
||||
name = "curious coin"
|
||||
icon_state = "triangle-g"
|
||||
desc = "A curious triangular coin made primarily of some kind of dark, smooth metal. This one's markings appear to reveal a golden material underneath."
|
||||
value = 3
|
||||
|
||||
/obj/item/weapon/aliencoin/silver
|
||||
name = "curious coin"
|
||||
icon_state = "triangle-s"
|
||||
desc = "A curious triangular coin made primarily of some kind of dark, smooth metal. This one's markings appear to reveal a silver material underneath."
|
||||
value = 2
|
||||
|
||||
/obj/item/weapon/aliencoin/phoron
|
||||
name = "curious coin"
|
||||
icon_state = "triangle-p"
|
||||
desc = "A curious triangular coin made primarily of some kind of dark, smooth metal. This one's markings appear to reveal a purple material underneath."
|
||||
value = 4
|
||||
|
||||
|
||||
/obj/item/weapon/aliencoin/attack_self(mob/user as mob)
|
||||
var/result = rand(1, sides)
|
||||
var/comment = ""
|
||||
if(result == 1)
|
||||
comment = "tails"
|
||||
else if(result == 2)
|
||||
comment = "heads"
|
||||
user.visible_message("<span class='notice'>[user] has thrown [src]. It lands on [comment]! </span>", runemessage = "[src] landed on [comment]")
|
||||
if(rand(1,20) == 1)
|
||||
user.visible_message("<span class='notice'>[user] fumbled the [src]!</span>", runemessage = "fumbles [src]")
|
||||
user.remove_from_mob(src)
|
||||
|
||||
/obj/item/weapon/aliencoin/examine(var/mob/user)
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
. += "<span class='notice'>It has some writing along its edge that seems to be some language that you are not familiar with. The face of the coin is very smooth, with what appears to be some kind of angular logo along the left side, and a couple of lines of the alien text along the opposite side. The reverse side is similarly smooth, the top of it features what appears to be some kind of vortex, surrounded by six stars, three on either side, with further swirls and intricate patterns along the bottom sections of this face. Looking closely, you can see that there is more text hidden among the swirls.</span>"
|
||||
@@ -17,6 +17,22 @@
|
||||
"brightness" = 2.5,
|
||||
"color" = "#EE9AC6"
|
||||
),
|
||||
list(
|
||||
"brightness" = 1.5,
|
||||
"color" = "#F07AD8"
|
||||
),
|
||||
list(
|
||||
"brightness" = 1.5,
|
||||
"color" = "#61AEF3"
|
||||
),
|
||||
list(
|
||||
"brightness" = 1,
|
||||
"color" = "#f3932d"
|
||||
),
|
||||
list(
|
||||
"brightness" = 1,
|
||||
"color" = "#631E8A"
|
||||
|
||||
list(
|
||||
"brightness" = 1.0,
|
||||
"color" = "#A3A291"
|
||||
@@ -90,4 +106,70 @@
|
||||
LC.update_gen = update_gen
|
||||
LC.update_lumcount(lum_r, lum_g, lum_b)
|
||||
update_gen--
|
||||
qdel(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/fake_sun/warm
|
||||
name = "warm fake sun"
|
||||
desc = "Deletes itself, but first updates all the lighting on outdoor turfs to warm colors."
|
||||
|
||||
possible_light_setups = list(
|
||||
|
||||
list(
|
||||
"brightness" = 6.0,
|
||||
"color" = "#E9FFB8"
|
||||
),
|
||||
|
||||
list(
|
||||
"brightness" = 4.0,
|
||||
"color" = "#F4EA55"
|
||||
),
|
||||
list(
|
||||
"brightness" = 1.0,
|
||||
"color" = "#F07AD8"
|
||||
),
|
||||
list(
|
||||
"brightness" = 1.0,
|
||||
"color" = "#b4361f"
|
||||
),
|
||||
|
||||
list(
|
||||
"brightness" = 0.7,
|
||||
"color" = "#f3932d"
|
||||
),
|
||||
|
||||
list(
|
||||
"brightness" = 0.1,
|
||||
"color" = "#B92B00"
|
||||
)
|
||||
)
|
||||
|
||||
/obj/effect/fake_sun/cool
|
||||
name = "fake sun"
|
||||
desc = "Deletes itself, but first updates all the lighting on outdoor turfs to cool colors."
|
||||
possible_light_setups = list(
|
||||
|
||||
list(
|
||||
"brightness" = 6.0,
|
||||
"color" = "#abfff7"
|
||||
),
|
||||
list(
|
||||
"brightness" = 4.0,
|
||||
"color" = "#2e30c9"
|
||||
),
|
||||
list(
|
||||
"brightness" = 1.0,
|
||||
"color" = "#61AEF3"
|
||||
),
|
||||
list(
|
||||
"brightness" = 1.0,
|
||||
"color" = "#61ddf3"
|
||||
),
|
||||
list(
|
||||
"brightness" = 0.3,
|
||||
"color" = "#253682"
|
||||
),
|
||||
list(
|
||||
"brightness" = 0.1,
|
||||
"color" = "#27024B"
|
||||
)
|
||||
)
|
||||
@@ -28,3 +28,10 @@
|
||||
|
||||
//Hooks need to return true otherwise they're considered having failed
|
||||
return TRUE
|
||||
|
||||
//For making sure that if a mob is able to be joined by ghosts, that ghosts can't join it if it dies
|
||||
/mob/living/simple_mob/death()
|
||||
..()
|
||||
ghostjoin = 0
|
||||
active_ghost_pods -= src
|
||||
ghostjoin_icon()
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
B.digest_brute = 0.05
|
||||
B.digest_burn = 0.05
|
||||
B.mode_flags = 8
|
||||
B.belly_fullscreen = "base"
|
||||
B.belly_fullscreen = "a_tumby"
|
||||
B.struggle_messages_inside = list(
|
||||
"Your struggling only causes %pred's doughy gut to smother you against those wrinkled walls...",
|
||||
"As you squirm, %pred's %belly flexxes over you heavily, forming you back into a small ball...",
|
||||
@@ -169,6 +169,7 @@
|
||||
icon_living = "cass"
|
||||
icon_dead = "cass_dead"
|
||||
icon_rest = "cass_rest"
|
||||
ic_revivable = 0
|
||||
|
||||
faction = "theatre"
|
||||
gender = PLURAL
|
||||
@@ -244,4 +245,21 @@
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/ranged/kiting/threatening/woof
|
||||
|
||||
projectiletype = /obj/item/projectile/forcebolt/harmless/awoobolt
|
||||
projectilesound = 'sound/voice/long_awoo.ogg'
|
||||
projectilesound = 'sound/voice/long_awoo.ogg'
|
||||
|
||||
/mob/living/simple_mob/vore/woof/cass/attack_hand(mob/living/carbon/human/M as mob)
|
||||
if(stat != DEAD)
|
||||
return ..()
|
||||
if(M.a_intent == I_HELP)
|
||||
M.visible_message("[M] pets [src].", runemessage = "pets [src]")
|
||||
if(do_after(M, 30 SECONDS, exclusive = 1, target = src))
|
||||
faction = M.faction
|
||||
revive()
|
||||
sight = initial(sight)
|
||||
see_in_dark = initial(see_in_dark)
|
||||
see_invisible = initial(see_invisible)
|
||||
update_icon()
|
||||
visible_message("[src] stops playing dead.", runemessage = "[src] stops playing dead")
|
||||
else
|
||||
M.visible_message("The petting was interrupted!!!", runemessage = "The petting was interrupted")
|
||||
return
|
||||
|
Before Width: | Height: | Size: 867 KiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 913 B |
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 8.3 KiB |
@@ -0,0 +1,169 @@
|
||||
/obj/effect/overmap/visitable/sector/tether_gateway/eggnogtown
|
||||
name = "bluespace shimmer"
|
||||
desc = "The shimmering reflection of some sort of bluespace phenomena."
|
||||
scanner_desc = @{"It is difficult to tell just what is beyond this strange shimmering shape. The air beyond seems breathable, if cold."}
|
||||
icon = 'icons/obj/overmap_vr.dmi'
|
||||
icon_state = "shimmer"
|
||||
color = "#171DFF" //bloo
|
||||
in_space = 0
|
||||
|
||||
/datum/map_template/tether_lateload/gateway/eggnogtown/on_map_loaded(z)
|
||||
. = ..()
|
||||
new /datum/random_map/automata/cave_system/no_cracks(null, 3, 3, z, world.maxx - 4, world.maxy - 4) // Create the mining Z-level.
|
||||
new /datum/random_map/noise/ore(null, 1, 1, z, 64, 64) // Create the mining ore distribution map.
|
||||
|
||||
/datum/map_template/tether_lateload/gateway/eggnogtownunderground/on_map_loaded(z)
|
||||
. = ..()
|
||||
new /datum/random_map/automata/cave_system/no_cracks(null, 3, 3, z, world.maxx - 4, world.maxy - 4) // Create the mining Z-level.
|
||||
new /datum/random_map/noise/ore(null, 1, 1, z, 64, 64) // Create the mining ore distribution map.
|
||||
|
||||
|
||||
/obj/effect/landmark/map_data/eggnogtown
|
||||
height = 2
|
||||
|
||||
//Areas//
|
||||
|
||||
/area/gateway/eggnogtown
|
||||
name = "Eggnog Town"
|
||||
icon = 'icons/turf/areas_vr.dmi'
|
||||
icon_state = "purwhicir"
|
||||
requires_power = FALSE
|
||||
dynamic_lighting = TRUE
|
||||
flags = RAD_SHIELDED
|
||||
base_turf = /turf/simulated/floor/outdoors/newdirt
|
||||
|
||||
|
||||
/area/gateway/eggnogtown/gateway
|
||||
name = "Eggnog Town Gateway"
|
||||
icon_state = "cyawhisqu"
|
||||
|
||||
/area/gateway/eggnogtown/bar
|
||||
name = "Heart's Hearth Bar"
|
||||
icon_state = "cyawhisqu"
|
||||
|
||||
/area/gateway/eggnogtown/hall
|
||||
name = "Eggnog Town Event Hall"
|
||||
icon_state = "cyawhisqu"
|
||||
/area/gateway/eggnogtown/hall/north
|
||||
name = "Eggnog Town Event Hall north"
|
||||
icon_state = "cyawhisqu"
|
||||
/area/gateway/eggnogtown/hall/south
|
||||
name = "Eggnog Town Event Hall south"
|
||||
icon_state = "cyawhisqu"
|
||||
|
||||
/area/gateway/eggnogtown/dining
|
||||
name = "Eggnog Town Dining Hall"
|
||||
icon_state = "cyawhisqu"
|
||||
/area/gateway/eggnogtown/dining/kitchen
|
||||
name = "Eggnog Town Dining Hall Kitchen"
|
||||
icon_state = "cyawhisqu"
|
||||
/area/gateway/eggnogtown/dining/botany
|
||||
name = "Eggnog Town Dining Hall Botany"
|
||||
icon_state = "cyawhisqu"
|
||||
/area/gateway/eggnogtown/dining/storage
|
||||
name = "Eggnog Town Dining Hall Storage"
|
||||
icon_state = "cyawhisqu"
|
||||
|
||||
/area/gateway/eggnogtown/storage
|
||||
name = "Eggnog Town Storage Shed"
|
||||
icon_state = "cyawhisqu"
|
||||
|
||||
/area/gateway/eggnogtown/visitorlounge
|
||||
name = "Eggnog Town Visitor Lounge"
|
||||
icon_state = "cyawhisqu"
|
||||
/area/gateway/eggnogtown/visitorlounge/room1
|
||||
name = "Eggnog Town Visitor Lounge Room 1"
|
||||
/area/gateway/eggnogtown/visitorlounge/room2
|
||||
name = "Eggnog Town Visitor Lounge Room 2"
|
||||
|
||||
/area/gateway/eggnogtown/houserhomestead
|
||||
name = "Houser Homestead"
|
||||
icon_state = "redwhisqu"
|
||||
/area/gateway/eggnogtown/houserhomestead/basement
|
||||
name = "Houser Homestead Basement"
|
||||
|
||||
/area/gateway/eggnogtown/teshnest
|
||||
name = "Je'rehi's Nest"
|
||||
icon_state = "redwhisqu"
|
||||
|
||||
/area/gateway/eggnogtown/arturoswolfden
|
||||
name = "Arturo's Wolf Den"
|
||||
icon_state = "redwhisqu"
|
||||
|
||||
/area/gateway/eggnogtown/kitchihome
|
||||
name = "Kitchi's House"
|
||||
icon_state = "redwhisqu"
|
||||
/area/gateway/eggnogtown/kitchihome/bedroom
|
||||
name = "Kitchi's Bedroom"
|
||||
/area/gateway/eggnogtown/kitchihome/kitchen
|
||||
name = "Kitchi's Kitchen"
|
||||
/area/gateway/eggnogtown/kitchihome/diningroom
|
||||
name = "Kitchi's Dining Room"
|
||||
/area/gateway/eggnogtown/kitchihome/guestroom
|
||||
name = "Kitchi's Guest Room"
|
||||
/area/gateway/eggnogtown/kitchihome/den
|
||||
name = "Kitchi's House's Den"
|
||||
|
||||
/area/gateway/eggnogtown/alipad
|
||||
name = "Ali's Kickass Pad of Awesomeness"
|
||||
icon_state = "redwhisqu"
|
||||
/area/gateway/eggnogtown/alipad/bedroom
|
||||
name = "Ali's Bedroom"
|
||||
|
||||
/area/gateway/eggnogtown/loniabode
|
||||
name = "Loni Nesumi's Humble Abode"
|
||||
icon_state = "redwhisqu"
|
||||
|
||||
/area/gateway/eggnogtown/vibeout
|
||||
name = "Voided Vibeout"
|
||||
icon_state = "redwhisqu"
|
||||
/area/gateway/eggnogtown/vibeout/underground
|
||||
name = "Voided Vibeout Underground"
|
||||
|
||||
/area/gateway/eggnogtown/stokeswashere
|
||||
name = "Underground Sneakzone"
|
||||
icon_state = "redwhisqu"
|
||||
/area/gateway/eggnogtown/stokeswashere/bathroom
|
||||
name = "Underground Sneakzone Bathroom"
|
||||
/area/gateway/eggnogtown/stokeswashere/bedroom
|
||||
name = "Underground Sneakzone Bedroom"
|
||||
|
||||
/area/gateway/eggnogtown/cavehome
|
||||
name = "Cave Home"
|
||||
icon_state = "redwhisqu"
|
||||
/area/gateway/eggnogtown/cavehome/office
|
||||
name = "Cave Home Office"
|
||||
/area/gateway/eggnogtown/cavehome/bedroom
|
||||
name = "Cave Home Bedroom"
|
||||
|
||||
/area/gateway/eggnogtown/sigloo
|
||||
name = "Southern Igloo"
|
||||
icon_state = "cyawhisqu"
|
||||
|
||||
/area/gateway/eggnogtown/nigloo
|
||||
name = "Northern Igloo"
|
||||
icon_state = "redwhisqu"
|
||||
|
||||
/area/gateway/eggnogtown/eastcaveland
|
||||
name = "Cave Lounge"
|
||||
icon_state = "redwhisqu"
|
||||
|
||||
/area/gateway/eggnogtown/hotspring
|
||||
name = "Eggnog Town Hotspring"
|
||||
icon_state = "redwhisqu"
|
||||
|
||||
/area/gateway/eggnogtown/caves
|
||||
name = "caves"
|
||||
icon_state = "purblacir"
|
||||
|
||||
/area/gateway/eggnogtown/underground
|
||||
name = "underground"
|
||||
icon_state = "purblacir"
|
||||
|
||||
/area/gateway/eggnogtown/hotsprings
|
||||
name = "Eggnog Town Hotsprings"
|
||||
icon_state = "cyawhisqu"
|
||||
|
||||
/area/gateway/eggnogtown/greenhouse
|
||||
name = "Eggnog Town Greenhouse"
|
||||
icon_state = "cyawhisqu"
|
||||
@@ -0,0 +1,85 @@
|
||||
/obj/effect/overmap/visitable/sector/tether_gateway/arynthilake
|
||||
name = "bluespace shimmer"
|
||||
desc = "The shimmering reflection of some sort of bluespace phenomena."
|
||||
scanner_desc = @{"It is difficult to tell just what is beyond this strange shimmering shape. The air beyond seems breathable."}
|
||||
icon = 'icons/obj/overmap_vr.dmi'
|
||||
icon_state = "shimmer"
|
||||
color = "#171DFF" //bloo
|
||||
in_space = 0
|
||||
|
||||
/datum/map_template/tether_lateload/gateway/arynthilake/on_map_loaded(z)
|
||||
. = ..()
|
||||
new /datum/random_map/automata/cave_system/no_cracks(null, 3, 3, z, world.maxx - 4, world.maxy - 4) // Create the mining Z-level.
|
||||
new /datum/random_map/noise/ore(null, 1, 1, z, 64, 64) // Create the mining ore distribution map.
|
||||
|
||||
/datum/map_template/tether_lateload/gateway/arynthilakeunderground/on_map_loaded(z)
|
||||
. = ..()
|
||||
new /datum/random_map/automata/cave_system/no_cracks(null, 3, 3, z, world.maxx - 4, world.maxy - 4) // Create the mining Z-level.
|
||||
new /datum/random_map/noise/ore(null, 1, 1, z, 64, 64) // Create the mining ore distribution map.
|
||||
|
||||
/datum/map_template/tether_lateload/gateway/arynthilake_b/on_map_loaded(z)
|
||||
. = ..()
|
||||
new /datum/random_map/automata/cave_system/no_cracks(null, 3, 3, z, world.maxx - 4, world.maxy - 4) // Create the mining Z-level.
|
||||
new /datum/random_map/noise/ore(null, 1, 1, z, 64, 64) // Create the mining ore distribution map.
|
||||
|
||||
/datum/map_template/tether_lateload/gateway/arynthilakeunderground_b/on_map_loaded(z)
|
||||
. = ..()
|
||||
new /datum/random_map/automata/cave_system/no_cracks(null, 3, 3, z, world.maxx - 4, world.maxy - 4) // Create the mining Z-level.
|
||||
new /datum/random_map/noise/ore(null, 1, 1, z, 64, 64) // Create the mining ore distribution map.
|
||||
|
||||
|
||||
/obj/effect/landmark/map_data/arynthilake
|
||||
height = 2
|
||||
|
||||
|
||||
//Areas//
|
||||
|
||||
/area/gateway/arynthilake
|
||||
name = "Arynthi Lake"
|
||||
icon = 'icons/turf/areas_vr.dmi'
|
||||
icon_state = "bluwhicir"
|
||||
requires_power = TRUE
|
||||
dynamic_lighting = TRUE
|
||||
flags = RAD_SHIELDED
|
||||
base_turf = /turf/simulated/floor/outdoors/newdirt
|
||||
|
||||
/area/gateway/arynthilake/dome
|
||||
name = "Dome Power Grid"
|
||||
icon_state = "cyawhisqu"
|
||||
|
||||
/area/gateway/arynthilake/caves
|
||||
name = "caves"
|
||||
icon_state = "purblacir"
|
||||
|
||||
/area/gateway/arynthilake/gateway
|
||||
name = "gateway"
|
||||
icon_state = "cyawhisqu"
|
||||
|
||||
/area/gateway/arynthilake/caveruins
|
||||
icon_state = "cyawhisqu"
|
||||
|
||||
/area/gateway/arynthilake/oldcabin
|
||||
icon_state = "cyawhisqu"
|
||||
|
||||
/area/gateway/arynthilake/engine
|
||||
name = "Power Plant"
|
||||
icon_state = "orawhisqu"
|
||||
|
||||
/area/gateway/arynthilake/underground
|
||||
icon_state = "purblacir"
|
||||
|
||||
/area/gateway/arynthilake/underground/maintenance
|
||||
name = "Underground Maintenance"
|
||||
icon_state = "bluwhisqu"
|
||||
|
||||
/area/gateway/arynthilake/underground/intocave
|
||||
icon_state = "redwhisqu"
|
||||
|
||||
/obj/item/weapon/paper/gateway/arynthilake
|
||||
name = "Maintenance Tunnel Notes"
|
||||
info = {"<font size=20><b>Please be advised</b></font><br><br>
|
||||
Beyond this point, the underground maintenance tunnels are in fact dangerous. Monsters have taken to making their nests in the tunnels. As such, we have installed an automatic defense system.<br><br>
|
||||
The turrets and supply caches in the tunnels are powered by this facility. Should there be undesired creatures or personnel in the tunnels, the turrets exist to keep them clear.<br><br>
|
||||
The turret control system is situated within the local administration building. It is advised that you never enter the tunnels outside of regularly scheduled maintenance windows, and never without security escort.<br><br>
|
||||
If you should need to enter the tunnels outside of regularly scheduled maintenance windows, it is advised that you contact the administration building to disable the turrets, and, when you are done, contact them again to re-enable them.<br><br>
|
||||
Your safety is important to us. Should you end up within the tunnels when dangerous entities are present, it is advised to seek out the supply caches scattered throughout. Survival equipment can be obtained from within."}
|
||||
@@ -0,0 +1,72 @@
|
||||
/obj/effect/overmap/visitable/sector/tether_gateway/honlethhighlands
|
||||
name = "bluespace shimmer"
|
||||
desc = "The shimmering reflection of some sort of bluespace phenomena."
|
||||
scanner_desc = @{"It is difficult to tell just what is beyond this strange shimmering shape. The air beyond seems breathable, if very cold."}
|
||||
icon = 'icons/obj/overmap_vr.dmi'
|
||||
icon_state = "shimmer"
|
||||
color = "#171DFF" //bloo
|
||||
in_space = 0
|
||||
|
||||
/datum/map_template/tether_lateload/gateway/honlethhighlands_a/on_map_loaded(z)
|
||||
. = ..()
|
||||
new /datum/random_map/automata/cave_system/no_cracks(null, 3, 3, z, world.maxx - 4, world.maxy - 4) // Create the mining Z-level.
|
||||
new /datum/random_map/noise/ore(null, 1, 1, z, 64, 64) // Create the mining ore distribution map.
|
||||
|
||||
/datum/map_template/tether_lateload/gateway/honlethhighlands_b/on_map_loaded(z)
|
||||
. = ..()
|
||||
new /datum/random_map/automata/cave_system/no_cracks(null, 3, 3, z, world.maxx - 4, world.maxy - 4) // Create the mining Z-level.
|
||||
new /datum/random_map/noise/ore(null, 1, 1, z, 64, 64) // Create the mining ore distribution map.
|
||||
|
||||
|
||||
//Areas//
|
||||
|
||||
/area/gateway/honlethhighlands
|
||||
name = "Winterland"
|
||||
icon = 'icons/turf/areas_vr.dmi'
|
||||
icon_state = "bluwhicir"
|
||||
requires_power = TRUE
|
||||
dynamic_lighting = TRUE
|
||||
flags = RAD_SHIELDED
|
||||
base_turf = /turf/simulated/floor/outdoors/newdirt
|
||||
|
||||
/area/gateway/honlethhighlands/beach
|
||||
name = "frozen beach"
|
||||
|
||||
/area/gateway/honlethhighlands/caves
|
||||
name = "frozen caves"
|
||||
|
||||
/area/gateway/honlethhighlands/gate
|
||||
name = "abandoned gateway"
|
||||
icon_state = "magwhicir"
|
||||
|
||||
/area/gateway/honlethhighlands/town
|
||||
icon_state = "bluwhisqu"
|
||||
name = "abandoned town"
|
||||
|
||||
/area/gateway/honlethhighlands/town/command
|
||||
icon_state = "cyawhisqu"
|
||||
name = "command"
|
||||
|
||||
/area/gateway/honlethhighlands/town/garden
|
||||
icon_state = "cyawhisqu"
|
||||
name = "garden"
|
||||
|
||||
/area/gateway/honlethhighlands/town/xenobio
|
||||
icon_state = "cyawhisqu"
|
||||
name = "xenobio"
|
||||
|
||||
/area/gateway/honlethhighlands/town/bar
|
||||
icon_state = "cyawhisqu"
|
||||
name = "bar"
|
||||
|
||||
/area/gateway/honlethhighlands/town/supply
|
||||
icon_state = "cyawhisqu"
|
||||
name = "supply"
|
||||
|
||||
/area/gateway/honlethhighlands/town/engineering
|
||||
icon_state = "cyawhisqu"
|
||||
name = "engineering"
|
||||
|
||||
/area/gateway/honlethhighlands/town/kitchen
|
||||
icon_state = "cyawhisqu"
|
||||
name = "kitchen"
|
||||
@@ -17,6 +17,8 @@
|
||||
power_equip = FALSE
|
||||
power_environ = FALSE
|
||||
power_light = FALSE
|
||||
base_turf = /turf/simulated/mineral/floor/cave
|
||||
|
||||
/area/submap/admin_upload/pow
|
||||
name = "\improper Unknown Area AU+P"
|
||||
requires_power = 0
|
||||
|
||||
@@ -303,6 +303,58 @@
|
||||
mappath = 'maps/gateway_vr/listeningpost.dmm'
|
||||
associated_map_datum = /datum/map_z_level/tether_lateload/gateway_destination
|
||||
|
||||
#include "../../gateway_vr/variable/honlethhighlands.dm"
|
||||
/datum/map_template/tether_lateload/gateway/honlethhighlands_a
|
||||
name = "Honleth Highlands A"
|
||||
desc = "The cold surface of some planet."
|
||||
mappath = 'maps/gateway_vr/variable/honlethhighlands_a.dmm'
|
||||
associated_map_datum = /datum/map_z_level/tether_lateload/gateway_destination
|
||||
|
||||
/datum/map_template/tether_lateload/gateway/honlethhighlands_b
|
||||
name = "Honleth Highlands B"
|
||||
desc = "The cold surface of some planet."
|
||||
mappath = 'maps/gateway_vr/variable/honlethhighlands_b.dmm'
|
||||
associated_map_datum = /datum/map_z_level/tether_lateload/gateway_destination
|
||||
|
||||
|
||||
#include "../../gateway_vr/variable/arynthilake.dm"
|
||||
/datum/map_template/tether_lateload/gateway/arynthilake
|
||||
name = "Arynthi Lake A"
|
||||
desc = "A grassy surface with some abandoned structures."
|
||||
mappath = 'maps/gateway_vr/variable/arynthilake_a.dmm'
|
||||
associated_map_datum = /datum/map_z_level/tether_lateload/gateway_destination
|
||||
|
||||
/datum/map_template/tether_lateload/gateway/arynthilakeunderground
|
||||
name = "Arynthi Lake Underground A"
|
||||
desc = "A grassy surface with some abandoned structures."
|
||||
mappath = 'maps/gateway_vr/variable/arynthilakeunderground_a.dmm'
|
||||
associated_map_datum = /datum/map_z_level/tether_lateload/gateway_destination
|
||||
|
||||
/datum/map_template/tether_lateload/gateway/arynthilake_b
|
||||
name = "Arynthi Lake B"
|
||||
desc = "A grassy surface with some abandoned structures."
|
||||
mappath = 'maps/gateway_vr/variable/arynthilake_b.dmm'
|
||||
associated_map_datum = /datum/map_z_level/tether_lateload/gateway_destination
|
||||
|
||||
/datum/map_template/tether_lateload/gateway/arynthilakeunderground_b
|
||||
name = "Arynthi Lake Underground B"
|
||||
desc = "A grassy surface with some abandoned structures."
|
||||
mappath = 'maps/gateway_vr/variable/arynthilakeunderground_b.dmm'
|
||||
associated_map_datum = /datum/map_z_level/tether_lateload/gateway_destination
|
||||
|
||||
#include "../../gateway_vr/eggnogtown.dm"
|
||||
/datum/map_template/tether_lateload/gateway/eggnogtown
|
||||
name = "Eggnog Town"
|
||||
desc = "A comfortable snowy town."
|
||||
mappath = 'maps/gateway_vr/eggnogtown.dmm'
|
||||
associated_map_datum = /datum/map_z_level/tether_lateload/gateway_destination
|
||||
|
||||
/datum/map_template/tether_lateload/gateway/eggnogtownunderground
|
||||
name = "Eggnog Town Underground"
|
||||
desc = "A comfortable snowy town."
|
||||
mappath = 'maps/gateway_vr/eggnogtownunderground.dmm'
|
||||
associated_map_datum = /datum/map_z_level/tether_lateload/gateway_destination
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
// Admin-use z-levels for loading whenever an admin feels like
|
||||
#if AWAY_MISSION_TEST
|
||||
|
||||
@@ -36,7 +36,11 @@
|
||||
"tether_night" = 50,
|
||||
"tether2_night" = 50,
|
||||
"tether2_dog" = 1,
|
||||
"tether2_love" = 1
|
||||
"tether2_love" = 1,
|
||||
"tether_future" = 10,
|
||||
"logo1" = 20,
|
||||
"logo2" = 20,
|
||||
"gateway" = 5
|
||||
))
|
||||
if(choice)
|
||||
lobby_screens = list(choice)
|
||||
@@ -160,9 +164,14 @@
|
||||
)
|
||||
|
||||
lateload_single_pick = list(
|
||||
//list("Carp Farm"),
|
||||
//list("Snow Field"),
|
||||
//list("Listening Post")
|
||||
list("Carp Farm"),
|
||||
list("Snow Field"),
|
||||
list("Listening Post"),
|
||||
list("Honleth Highlands A"),
|
||||
list("Honleth Highlands B"),
|
||||
list("Arynthi Lake Underground A","Arynthi Lake A"),
|
||||
list("Arynthi Lake Underground B","Arynthi Lake B"),
|
||||
list("Eggnog Town Underground","Eggnog Town")
|
||||
)
|
||||
|
||||
ai_shell_restricted = TRUE
|
||||
|
||||
@@ -1088,6 +1088,7 @@
|
||||
#include "code\game\objects\effects\misc.dm"
|
||||
#include "code\game\objects\effects\overlays.dm"
|
||||
#include "code\game\objects\effects\portals.dm"
|
||||
#include "code\game\objects\effects\semirandom_mobs_vr.dm"
|
||||
#include "code\game\objects\effects\spiders.dm"
|
||||
#include "code\game\objects\effects\spiders_vr.dm"
|
||||
#include "code\game\objects\effects\step_triggers.dm"
|
||||
@@ -1164,6 +1165,7 @@
|
||||
#include "code\game\objects\items\devices\chameleonproj.dm"
|
||||
#include "code\game\objects\items\devices\debugger.dm"
|
||||
#include "code\game\objects\items\devices\defib.dm"
|
||||
#include "code\game\objects\items\devices\denecrotizer.dm"
|
||||
#include "code\game\objects\items\devices\flash.dm"
|
||||
#include "code\game\objects\items\devices\flash_vr.dm"
|
||||
#include "code\game\objects\items\devices\flashlight.dm"
|
||||
@@ -1522,6 +1524,7 @@
|
||||
#include "code\game\objects\structures\flora\flora.dm"
|
||||
#include "code\game\objects\structures\flora\flora_vr.dm"
|
||||
#include "code\game\objects\structures\flora\grass.dm"
|
||||
#include "code\game\objects\structures\flora\moretrees_vr.dm"
|
||||
#include "code\game\objects\structures\flora\trees.dm"
|
||||
#include "code\game\objects\structures\ghost_pods\event_vr.dm"
|
||||
#include "code\game\objects\structures\ghost_pods\ghost_pods.dm"
|
||||
@@ -1588,6 +1591,7 @@
|
||||
#include "code\game\turfs\simulated\outdoors\grass.dm"
|
||||
#include "code\game\turfs\simulated\outdoors\outdoors.dm"
|
||||
#include "code\game\turfs\simulated\outdoors\outdoors_attackby.dm"
|
||||
#include "code\game\turfs\simulated\outdoors\outdoors_vr.dm"
|
||||
#include "code\game\turfs\simulated\outdoors\sky.dm"
|
||||
#include "code\game\turfs\simulated\outdoors\snow.dm"
|
||||
#include "code\game\turfs\snow\snow.dm"
|
||||
@@ -1767,6 +1771,7 @@
|
||||
#include "code\modules\awaymissions\corpse.dm"
|
||||
#include "code\modules\awaymissions\exile.dm"
|
||||
#include "code\modules\awaymissions\gateway.dm"
|
||||
#include "code\modules\awaymissions\gateway_vr.dm"
|
||||
#include "code\modules\awaymissions\loot.dm"
|
||||
#include "code\modules\awaymissions\loot_vr.dm"
|
||||
#include "code\modules\awaymissions\pamphlet.dm"
|
||||
@@ -2080,6 +2085,7 @@
|
||||
#include "code\modules\economy\cash.dm"
|
||||
#include "code\modules\economy\cash_register.dm"
|
||||
#include "code\modules\economy\coins.dm"
|
||||
#include "code\modules\economy\coins_vr.dm"
|
||||
#include "code\modules\economy\economy_misc.dm"
|
||||
#include "code\modules\economy\EFTPOS.dm"
|
||||
#include "code\modules\economy\Events.dm"
|
||||
|
||||