mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-26 10:02:28 +00:00
This implements UDP Logging with GELF. It will allow full text search over all the logs and attributes sent over GELF to the log server.
93 lines
3.6 KiB
Plaintext
93 lines
3.6 KiB
Plaintext
/datum/random_map/droppod/supply
|
|
descriptor = "supply drop"
|
|
limit_x = 5
|
|
limit_y = 5
|
|
|
|
placement_explosion_light = 7
|
|
placement_explosion_flash = 5
|
|
|
|
// UNLIKE THE DROP POD, this map deals ENTIRELY with strings and types.
|
|
// Drop type is a string representing a mode rather than an atom or path.
|
|
// supplied_drop_types is a list of types to spawn in the pod.
|
|
/datum/random_map/droppod/supply/get_spawned_drop(var/turf/T)
|
|
|
|
if(!drop_type) drop_type = pick(supply_drop_random_loot_types())
|
|
|
|
if(drop_type == "custom")
|
|
if(supplied_drop_types.len)
|
|
var/obj/structure/largecrate/C = locate() in T
|
|
for(var/drop_type in supplied_drop_types)
|
|
var/atom/movable/A = new drop_type(T)
|
|
if(!istype(A, /mob))
|
|
if(!C) C = new(T)
|
|
C.contents |= A
|
|
return
|
|
else
|
|
drop_type = pick(supply_drop_random_loot_types())
|
|
|
|
if(istype(drop_type, /datum/supply_drop_loot))
|
|
var/datum/supply_drop_loot/SDL = drop_type
|
|
SDL.drop(T)
|
|
else
|
|
error("Unhandled drop type: [drop_type]")
|
|
|
|
|
|
/datum/admins/proc/call_supply_drop()
|
|
set category = "Fun"
|
|
set desc = "Call an immediate supply drop on your location."
|
|
set name = "Call Supply Drop"
|
|
|
|
if(!check_rights(R_FUN)) return
|
|
|
|
var/chosen_loot_type
|
|
var/list/chosen_loot_types
|
|
var/choice = alert("Do you wish to supply a custom loot list?",,"No","Yes")
|
|
if(choice == "Yes")
|
|
chosen_loot_types = list()
|
|
|
|
choice = alert("Do you wish to add mobs?",,"No","Yes")
|
|
if(choice == "Yes")
|
|
while(1)
|
|
var/adding_loot_type = input("Select a new loot path. Cancel to finish.", "Loot Selection", null) as null|anything in typesof(/mob/living)
|
|
if(!adding_loot_type)
|
|
break
|
|
chosen_loot_types |= adding_loot_type
|
|
choice = alert("Do you wish to add structures or machines?",,"No","Yes")
|
|
if(choice == "Yes")
|
|
while(1)
|
|
var/adding_loot_type = input("Select a new loot path. Cancel to finish.", "Loot Selection", null) as null|anything in typesof(/obj) - typesof(/obj/item)
|
|
if(!adding_loot_type)
|
|
break
|
|
chosen_loot_types |= adding_loot_type
|
|
choice = alert("Do you wish to add any non-weapon items?",,"No","Yes")
|
|
if(choice == "Yes")
|
|
while(1)
|
|
var/adding_loot_type = input("Select a new loot path. Cancel to finish.", "Loot Selection", null) as null|anything in typesof(/obj/item) - typesof(/obj/item/weapon)
|
|
if(!adding_loot_type)
|
|
break
|
|
chosen_loot_types |= adding_loot_type
|
|
|
|
choice = alert("Do you wish to add weapons?",,"No","Yes")
|
|
if(choice == "Yes")
|
|
while(1)
|
|
var/adding_loot_type = input("Select a new loot path. Cancel to finish.", "Loot Selection", null) as null|anything in typesof(/obj/item/weapon)
|
|
if(!adding_loot_type)
|
|
break
|
|
chosen_loot_types |= adding_loot_type
|
|
choice = alert("Do you wish to add ABSOLUTELY ANYTHING ELSE? (you really shouldn't need to)",,"No","Yes")
|
|
if(choice == "Yes")
|
|
while(1)
|
|
var/adding_loot_type = input("Select a new loot path. Cancel to finish.", "Loot Selection", null) as null|anything in typesof(/atom/movable)
|
|
if(!adding_loot_type)
|
|
break
|
|
chosen_loot_types |= adding_loot_type
|
|
else
|
|
choice = alert("Do you wish to specify a loot type?",,"No","Yes")
|
|
if(choice == "Yes")
|
|
chosen_loot_type = input("Select a loot type.", "Loot Selection", null) as null|anything in supply_drop_random_loot_types()
|
|
|
|
choice = alert("Are you SURE you wish to deploy this supply drop? It will cause a sizable explosion and gib anyone underneath it.",,"No","Yes")
|
|
if(choice == "No")
|
|
return
|
|
log_admin("[key_name(usr)] dropped supplies at ([usr.x],[usr.y],[usr.z])",admin_key=key_name(usr))
|
|
new /datum/random_map/droppod/supply(null, usr.x-2, usr.y-2, usr.z, supplied_drops = chosen_loot_types, supplied_drop = chosen_loot_type) |