mirror of
https://github.com/CHOMPstation/CHOMPstation.git
synced 2026-08-29 15:06:39 +01:00
Merge pull request #2848 from VOREStation/aro-exploration
Exploration Update
This commit is contained in:
@@ -378,10 +378,15 @@
|
||||
qdel(adminmob)
|
||||
feedback_add_details("admin_verb","ADC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/take_picture(var/atom/A in world)
|
||||
set name = "Save PNG"
|
||||
set category = "Debug"
|
||||
set desc = "Opens a dialog to save a PNG of any object in the game."
|
||||
|
||||
if(!check_rights(R_DEBUG))
|
||||
return
|
||||
|
||||
|
||||
|
||||
downloadImage(A)
|
||||
|
||||
/client/proc/cmd_admin_areatest()
|
||||
set category = "Mapping"
|
||||
|
||||
@@ -41,7 +41,12 @@
|
||||
if(!map)
|
||||
return
|
||||
template = map_templates[map]
|
||||
|
||||
|
||||
if(template.width > world.maxx || template.height > world.maxy)
|
||||
if(alert(usr,"This template is larger than the existing z-levels. It will EXPAND ALL Z-LEVELS to match the size of the template. This may cause chaos. Are you sure you want to do this?","DANGER!!!","Cancel","Yes") == "Cancel")
|
||||
to_chat(usr,"Template placement aborted.")
|
||||
return
|
||||
|
||||
if(alert(usr,"Confirm map load.", "Template Confirm","No","Yes") == "Yes")
|
||||
if(template.load_new_z())
|
||||
message_admins("<span class='adminnotice'>[key_name_admin(usr)] has placed a map template ([template.name]) on Z level [world.maxz].</span>")
|
||||
|
||||
@@ -163,6 +163,7 @@ var/list/debug_verbs = list (
|
||||
,/client/proc/atmos_toggle_debug
|
||||
,/client/proc/spawn_tanktransferbomb
|
||||
,/client/proc/debug_process_scheduler
|
||||
,/client/proc/take_picture
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -95,6 +95,9 @@ obj/machinery/gateway/centerstation/process()
|
||||
if(world.time < wait)
|
||||
user << "<span class='notice'>Error: Warpspace triangulation in progress. Estimated time to completion: [round(((wait - world.time) / 10) / 60)] minutes.</span>"
|
||||
return
|
||||
if(!awaygate.calibrated && LAZYLEN(awaydestinations))
|
||||
user << "<span class='notice'>Error: Destination gate uncalibrated. Gateway unsafe to use without far-end calibration update.</span>"
|
||||
return
|
||||
|
||||
for(var/obj/machinery/gateway/G in linked)
|
||||
G.active = 1
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
if(alt_title && !(alt_title in job.alt_titles))
|
||||
pref.player_alt_titles -= job.title
|
||||
|
||||
/datum/category_item/player_setup_item/occupation/content(mob/user, limit = 18, list/splitJobs = list("Chief Medical Officer"))
|
||||
/datum/category_item/player_setup_item/occupation/content(mob/user, limit = 18, list/splitJobs = list("Chief Engineer"))
|
||||
if(!job_master)
|
||||
return
|
||||
|
||||
|
||||
@@ -102,18 +102,23 @@ var/list/global/map_templates = list()
|
||||
|
||||
admin_notice("<span class='danger'>Submap initializations finished.</span>", R_DEBUG)
|
||||
|
||||
/datum/map_template/proc/load_new_z()
|
||||
var/x = round(world.maxx/2)
|
||||
var/y = round(world.maxy/2)
|
||||
/datum/map_template/proc/load_new_z(var/centered = FALSE, var/dont_init = FALSE)
|
||||
var/x = 1
|
||||
var/y = 1
|
||||
|
||||
var/list/bounds = maploader.load_map(file(mappath), x, y)
|
||||
if(centered)
|
||||
x = round((world.maxx - width)/2)
|
||||
y = round((world.maxy - height)/2)
|
||||
|
||||
var/list/bounds = maploader.load_map(file(mappath), x, y, no_changeturf = TRUE)
|
||||
if(!bounds)
|
||||
return FALSE
|
||||
|
||||
// repopulate_sorted_areas()
|
||||
|
||||
//initialize things that are normally initialized after map load
|
||||
initTemplateBounds(bounds)
|
||||
if(!dont_init)
|
||||
initTemplateBounds(bounds)
|
||||
log_game("Z-level [name] loaded at at [x],[y],[world.maxz]")
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
/mob/living/simple_animal/fennec
|
||||
name = "fennec"
|
||||
desc = "It's a dusty big-eared sandfox! Adorable!"
|
||||
icon = 'icons/mob/vore.dmi'
|
||||
icon_state = "fennec"
|
||||
icon_living = "fennec"
|
||||
icon_dead = "fennec_dead"
|
||||
icon_rest = "fennec_rest"
|
||||
|
||||
faction = "fennec"
|
||||
maxHealth = 30
|
||||
health = 30
|
||||
|
||||
response_help = "pats the"
|
||||
response_disarm = "gently pushes aside the"
|
||||
response_harm = "hits the"
|
||||
|
||||
harm_intent_damage = 5
|
||||
melee_damage_lower = 5
|
||||
melee_damage_upper = 2
|
||||
attacktext = "bapped"
|
||||
|
||||
speak_chance = 1
|
||||
speak = list("SKREEEE!",
|
||||
"Chrp?",
|
||||
"Ararrrararr.")
|
||||
emote_hear = list("screEEEEeeches!","chirps.")
|
||||
emote_see = list("earflicks","sniffs at the ground")
|
||||
|
||||
// Activate Noms!
|
||||
/mob/living/simple_animal/fennec
|
||||
vore_active = 1
|
||||
vore_bump_chance = 10
|
||||
vore_bump_emote = "playfully lunges at"
|
||||
vore_pounce_chance = 40
|
||||
vore_default_mode = DM_HOLD
|
||||
vore_icons = SA_ICON_LIVING
|
||||
@@ -150,9 +150,9 @@
|
||||
move(interim, destination, direction)
|
||||
moving_status = SHUTTLE_IDLE
|
||||
|
||||
//on_shuttle_arrival()//VOREStation Edit.
|
||||
on_shuttle_arrival()
|
||||
|
||||
//make_sounds(destination, HYPERSPACE_END)//VOREStation Edit. See above comment.
|
||||
make_sounds(destination, HYPERSPACE_END)
|
||||
|
||||
/datum/shuttle/proc/dock()
|
||||
if (!docking_controller)
|
||||
@@ -255,4 +255,8 @@
|
||||
if(HYPERSPACE_END)
|
||||
sound_to_play = 'sound/effects/shuttles/hyperspace_end.ogg'
|
||||
for(var/obj/machinery/door/E in A) //dumb, I know, but playing it on the engines doesn't do it justice
|
||||
playsound(E, sound_to_play, 50, FALSE)
|
||||
playsound(E, sound_to_play, 50, FALSE)
|
||||
|
||||
/datum/shuttle/proc/message_passengers(area/A, var/message)
|
||||
for(var/mob/M in A)
|
||||
M.show_message(message, 2)
|
||||
|
||||
@@ -57,10 +57,6 @@
|
||||
|
||||
..() // Do everything else
|
||||
|
||||
/datum/shuttle/proc/message_passengers(area/A, var/message)
|
||||
for(var/mob/M in A)
|
||||
M.show_message(message, 2)
|
||||
|
||||
/*
|
||||
/datum/shuttle/ferry/arrivals/current_dock_target()
|
||||
if(location) // If we're off station.
|
||||
|
||||
@@ -379,3 +379,35 @@
|
||||
icon_state = "right"
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
|
||||
//An object for creating a shuttle destination to dynamically loaded maps
|
||||
/obj/shuttle_connector
|
||||
name = "shuttle connector"
|
||||
var/shuttle_name //Text name of the shuttle to connect to
|
||||
var/start_time = 60 SECONDS //After round start (needs to be some time, to let other destinations set up)
|
||||
var/list/destinations //Make sure this STARTS with a destination that builds a route to one that always exists as an anchor.
|
||||
|
||||
/obj/shuttle_connector/initialize()
|
||||
. = ..()
|
||||
|
||||
processing_objects += src
|
||||
|
||||
/obj/shuttle_connector/process()
|
||||
if(world.time < start_time)
|
||||
return
|
||||
|
||||
if(destinations && shuttle_name)
|
||||
var/datum/shuttle/web_shuttle/ES = shuttle_controller.shuttles[shuttle_name]
|
||||
var/datum/shuttle_web_master/WM = ES.web_master
|
||||
|
||||
for(var/new_dest in destinations)
|
||||
var/datum/shuttle_destination/D = new new_dest(WM)
|
||||
WM.destinations += D
|
||||
|
||||
for(var/type_to_link in D.routes_to_make)
|
||||
var/travel_delay = D.routes_to_make[type_to_link]
|
||||
D.link_destinations(WM.get_destination_by_type(type_to_link), D.preferred_interim_area, travel_delay)
|
||||
|
||||
processing_objects -= src
|
||||
|
||||
qdel(src)
|
||||
|
||||
@@ -54,6 +54,7 @@
|
||||
var/datum/shuttle_web_master/master = null // The datum that does the coordination with the actual shuttle datum.
|
||||
var/list/routes = list() // Routes that are connected to this destination.
|
||||
var/preferred_interim_area = null // When building a new route, use this interim area.
|
||||
var/skip_me = FALSE // We will not autocreate this one. Some map must be doing it.
|
||||
|
||||
var/dock_target = null // The tag_id that the shuttle will use to try to dock to the destination, if able.
|
||||
|
||||
@@ -194,8 +195,10 @@
|
||||
// First, instantiate all the destination subtypes relevant to this datum.
|
||||
var/list/destination_types = typesof(destination_class) - destination_class
|
||||
for(var/new_type in destination_types)
|
||||
var/datum/shuttle_destination/D = new new_type(src)
|
||||
destinations += D
|
||||
var/datum/shuttle_destination/D = new_type
|
||||
if(initial(D.skip_me))
|
||||
continue
|
||||
destinations += new new_type(src)
|
||||
|
||||
// Now start the process of connecting all of them.
|
||||
for(var/datum/shuttle_destination/D in destinations)
|
||||
|
||||
Reference in New Issue
Block a user