Files
Aurora.3/code/game/objects/effects/landmarks.dm
2022-12-08 21:33:05 +01:00

317 lines
8.1 KiB
Plaintext

/obj/effect/landmark
name = "landmark"
icon = 'icons/mob/screen/generic.dmi'
icon_state = "x2"
anchored = 1.0
unacidable = 1
simulated = 0
invisibility = 101
var/delete_me = 0
/obj/effect/landmark/New()
..()
tag = text("landmark*[]", name)
do_landmark_effect()
return 1
/obj/effect/landmark/proc/do_landmark_effect()
switch(name) //some of these are probably obsolete
if("start")
newplayer_start = get_turf(loc)
delete_me = 1
return
if("JoinLate")
latejoin += loc
delete_me = 1
return
if("KickoffLocation")
kickoffsloc += loc
delete_me = 1
return
if("JoinLateGateway")
latejoin_gateway += loc
delete_me = 1
return
if("JoinLateCryo")
latejoin_cryo += loc
delete_me = 1
return
if("JoinLateCryoCommand")
latejoin_cryo_command += loc
delete_me = 1
if("JoinLateLift")
latejoin_living_quarters_lift += loc
delete_me = 1
return
if("JoinLateCyborg")
latejoin_cyborg += loc
delete_me = 1
return
if("JoinLateMerchant")
latejoin_merchant += loc
delete_me = 1
return
if("tdome1")
tdome1 += loc
if("tdome2")
tdome2 += loc
if("tdomeadmin")
tdomeadmin += loc
if("tdomeobserve")
tdomeobserve += loc
if("endgame_exit")
endgame_safespawns += loc
delete_me = 1
return
if("bluespacerift")
endgame_exits += loc
delete_me = 1
return
if("asteroid spawn")
asteroid_spawn += loc
delete_me = 1
return
if("skrell_entry")
dream_entries += loc
delete_me = 1
return
if("virtual_reality_spawn")
virtual_reality_spawn += loc
delete_me = 1
return
landmarks_list += src
/obj/effect/landmark/proc/delete()
delete_me = 1
/obj/effect/landmark/Initialize()
. = ..()
if(delete_me)
qdel(src)
/obj/effect/landmark/Destroy()
landmarks_list -= src
return ..()
/obj/effect/landmark/start
name = "start"
icon = 'icons/mob/screen/generic.dmi'
icon_state = "x"
anchored = 1.0
invisibility = 101
/obj/effect/landmark/start/New()
..()
tag = "start*[name]"
return 1
//Costume spawner landmarks
/obj/effect/landmark/costume/New() //costume spawner, selects a random subclass and disappears
var/list/options = typesof(/obj/effect/landmark/costume)
var/PICK= options[rand(1,options.len)]
new PICK(src.loc)
delete_me = 1
//SUBCLASSES. Spawn a bunch of items and disappear likewise
/obj/effect/landmark/costume/chicken/New()
new /obj/item/clothing/suit/chickensuit(src.loc)
new /obj/item/clothing/head/chicken(src.loc)
new /obj/item/reagent_containers/food/snacks/egg(src.loc)
delete_me = 1
/obj/effect/landmark/costume/gladiator/New()
new /obj/item/clothing/under/gladiator(src.loc)
new /obj/item/clothing/head/helmet/gladiator(src.loc)
delete_me = 1
/obj/effect/landmark/costume/madscientist/New()
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/suit/storage/toggle/labcoat(src.loc)
new /obj/item/clothing/glasses/regular(src.loc)
delete_me = 1
/obj/effect/landmark/costume/elpresidente/New()
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/mask/smokable/cigarette/cigar/havana(src.loc)
new /obj/item/clothing/shoes/jackboots(src.loc)
delete_me = 1
/obj/effect/landmark/costume/maid/New()
new /obj/item/clothing/under/skirt/(src.loc)
var/CHOICE = pick( /obj/item/clothing/head/beret , /obj/item/clothing/head/rabbitears )
new CHOICE(src.loc)
new /obj/item/clothing/glasses/sunglasses/blindfold(src.loc)
delete_me = 1
/obj/effect/landmark/costume/butler/New()
new /obj/item/clothing/suit/wcoat(src.loc)
new /obj/item/clothing/under/suit_jacket(src.loc)
new /obj/item/clothing/head/that(src.loc)
delete_me = 1
/obj/effect/landmark/costume/scratch/New()
new /obj/item/clothing/gloves/white(src.loc)
new /obj/item/clothing/shoes/white(src.loc)
new /obj/item/clothing/under/suit_jacket/white(src.loc)
delete_me = 1
/obj/effect/landmark/costume/highlander/New()
new /obj/item/clothing/under/kilt(src.loc)
new /obj/item/clothing/head/beret/red(src.loc)
delete_me = 1
/obj/effect/landmark/costume/prig/New()
new /obj/item/clothing/suit/wcoat(src.loc)
new /obj/item/clothing/glasses/monocle(src.loc)
var/CHOICE= pick( /obj/item/clothing/head/bowler, /obj/item/clothing/head/that)
new CHOICE(src.loc)
new /obj/item/clothing/shoes/black(src.loc)
new /obj/item/cane(src.loc)
new /obj/item/clothing/under/sl_suit(src.loc)
new /obj/item/clothing/mask/fakemoustache(src.loc)
delete_me = 1
/obj/effect/landmark/costume/nightowl/New()
new /obj/item/clothing/under/owl(src.loc)
new /obj/item/clothing/mask/gas/owl_mask(src.loc)
delete_me = 1
/obj/effect/landmark/costume/waiter/New()
new /obj/item/clothing/under/waiter(src.loc)
new /obj/item/clothing/head/rabbitears(src.loc)
new /obj/item/clothing/suit/apron(src.loc)
delete_me = 1
/obj/effect/landmark/costume/pirate/New()
new /obj/item/clothing/suit/pirate(src.loc)
var/CHOICE = pick( /obj/item/clothing/head/pirate , /obj/item/clothing/head/bandana/pirate)
new CHOICE(src.loc)
new /obj/item/clothing/glasses/eyepatch(src.loc)
delete_me = 1
/obj/effect/landmark/costume/commie/New()
new /obj/item/clothing/head/ushanka/grey(src.loc)
delete_me = 1
/obj/effect/landmark/costume/holiday_priest/New()
new /obj/item/clothing/suit/holidaypriest(src.loc)
delete_me = 1
/obj/effect/landmark/costume/cutewitch/New()
new /obj/item/clothing/under/sundress(src.loc)
new /obj/item/clothing/head/witchwig(src.loc)
new /obj/item/staff/broom(src.loc)
delete_me = 1
/obj/effect/landmark/costume/fakewizard/New()
new /obj/item/clothing/suit/wizrobe/fake(src.loc)
new /obj/item/clothing/head/wizard/fake(src.loc)
new /obj/item/staff/(src.loc)
delete_me = 1
/obj/effect/landmark/costume/sexymime/New()
new /obj/item/clothing/mask/gas/sexymime(src.loc)
new /obj/item/clothing/under/sexymime(src.loc)
delete_me = 1
/obj/effect/landmark/dungeon_spawn
name = "asteroid spawn"
icon = 'icons/1024x1024.dmi'
icon_state = "yellow"
/obj/effect/landmark/distress_team_equipment
name = "distress equipment"
/obj/effect/landmark/force_spawnpoint
name = "force spawnpoint"
var/job_tag = "Anyone"
/obj/effect/landmark/force_spawnpoint/do_landmark_effect()
LAZYINITLIST(force_spawnpoints)
LAZYADD(force_spawnpoints[job_tag], loc)
var/list/ruin_landmarks = list()
/obj/effect/landmark/ruin
var/datum/map_template/ruin/ruin_template
/obj/effect/landmark/ruin/New(loc, my_ruin_template)
name = "ruin_[sequential_id(/obj/effect/landmark/ruin)]"
..(loc)
ruin_template = my_ruin_template
ruin_landmarks |= src
/obj/effect/landmark/ruin/Destroy()
ruin_landmarks -= src
ruin_template = null
. = ..()
/obj/effect/landmark/entry_point
name = "entry point landmark"
icon_state = "dir_arrow"
movable_flags = MOVABLE_FLAG_EFFECTMOVE
/obj/effect/landmark/entry_point/Initialize()
..()
return INITIALIZE_HINT_LATELOAD
/obj/effect/landmark/entry_point/LateInitialize()
if(current_map.use_overmap)
SSshuttle.entry_points_to_initialize += src
name += " [x], [y]"
/obj/effect/landmark/entry_point/proc/get_candidate()
var/obj/effect/overmap/visitable/sector = map_sectors["[z]"]
if(!sector)
return
return attempt_hook_up_recursive(sector)
/obj/effect/landmark/entry_point/proc/attempt_hook_up_recursive(var/obj/effect/overmap/visitable/sector)
if(attempt_hook_up(sector))
return sector
for(var/obj/effect/overmap/visitable/ship/candidate in sector)
if((. = .(candidate)))
return
/obj/effect/landmark/entry_point/proc/attempt_hook_up(var/obj/effect/overmap/visitable/sector)
if(!istype(sector))
return FALSE
if(sector.check_ownership(src))
return TRUE
return FALSE
//The four entry point landmarks below are named assuming that fore is facing DOWNWARDS.
/obj/effect/landmark/entry_point/aft
name = "aft"
/obj/effect/landmark/entry_point/starboard
name = "starboard"
dir = 4
/obj/effect/landmark/entry_point/port
name = "port"
dir = 8
/obj/effect/landmark/entry_point/fore
name = "fore"
dir = 1
/obj/effect/landmark/entry_point/south
name = "south"
/obj/effect/landmark/entry_point/east
name = "east"
dir = 4
/obj/effect/landmark/entry_point/west
name = "west"
dir = 8
/obj/effect/landmark/entry_point/north
name = "north"
dir = 1