mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2026-08-20 04:56:37 +01:00
* move phoronlock define * t * force rename * nuke unneeded things * don't do that * tgui sync? * changes * unit testing module * backend * tools update * aaah * go and stay go * path replace * move everything * toss out more stuff * remove * fine those can stay * dependencies.sh * ruin datum move + rename * level assets why did you guys put the turfs in my atmosphers folder grr * more moving * basemap, force stuff * fix that desync meme * move more stuff * move those too * repath * get rid of useless initializers * hacky patchy * reservations * alright * tgui * changelog example * checksum * md5 * errors * more * turf empty * stop * fix * bad kwarg * let's get those in again * alright * rid of that * huh * newlines * newlines * folder * mood * woops * readme * might as well trim now * let's go * fuck it tether isn't being used anyways lol * ok * empty files go * tether is demoted * sorry but this goes too * okay * make that work too * ok * wow. * whew * Fix * fixes * ok * sigh * fix * fix * aah. * rust_g logging * update rust g file * fix * funny * Fix * map issues * fix * initialize hints * solves some problems * those too * ok * pills * let's do that. * hit that too * runtime * add that too * alright * fix * fix * fix * Fix * add * fix * wildwest, what have they done to you... * do that too' git push * fixes * fixes * fixes * pack this tightly * let's not have empty files * sigh * fix * FUCK OFF * fix icon * rip old mapmerge * zz * woo yeah woo yeah * logging * fix * better logs * GRRRRRR * last commit?? * awful
94 lines
3.6 KiB
Plaintext
94 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
|
|
log_world("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)
|
|
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)
|
|
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])")
|
|
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)
|