From fd00e8453fd6ba59d6ca0500a1eee8117f47b2af Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Sat, 24 Jul 2021 00:47:05 -0400 Subject: [PATCH] Improve admin spawn features --- code/game/objects/structures/droppod.dm | 133 ++++++++++++++++++++++ code/modules/admin/admin_verb_lists.dm | 2 + code/modules/admin/admin_verb_lists_vr.dm | 4 +- code/modules/admin/verbs/randomverbs.dm | 102 +++++++++++++++-- icons/obj/structures/droppod.dmi | Bin 0 -> 1871 bytes sound/effects/droppod.ogg | Bin 0 -> 22833 bytes vorestation.dme | 1 + 7 files changed, 232 insertions(+), 10 deletions(-) create mode 100644 code/game/objects/structures/droppod.dm create mode 100644 icons/obj/structures/droppod.dmi create mode 100644 sound/effects/droppod.ogg diff --git a/code/game/objects/structures/droppod.dm b/code/game/objects/structures/droppod.dm new file mode 100644 index 0000000000..3afef81584 --- /dev/null +++ b/code/game/objects/structures/droppod.dm @@ -0,0 +1,133 @@ +/obj/structure/drop_pod + name = "drop pod" + desc = "Standard Commonwealth drop pod. There are file marks where the serial number should be, however." + icon = 'icons/obj/structures/droppod.dmi' + icon_state = "pod" + density = TRUE + anchored = TRUE + + var/polite = FALSE // polite ones don't violently murder everything + var/finished = FALSE + var/datum/gas_mixture/pod_air/air + +/obj/structure/drop_pod/polite + polite = TRUE + +/obj/structure/drop_pod/New(newloc, atom/movable/A, auto_open = FALSE) + ..() + if(A) + A.forceMove(src) // helo + podfall(auto_open) + air = new(1000) + +/obj/structure/drop_pod/proc/podfall(auto_open) + set waitfor = FALSE // sleeping in new otherwise + + var/turf/T = get_turf(src) + if(!T) + warning("Drop pod wasn't spawned on a turf") + return + + moveToNullspace() + icon_state = "[initial(icon_state)]_falling" + + // Show warning on 3x3 area centred on our drop spot + var/list/turfs_nearby = block(get_step(T, SOUTHWEST), get_step(T, NORTHEAST)) + for(var/turf/TN in turfs_nearby) + new /obj/effect/temporary_effect/shuttle_landing(TN) + + // Wait a minute + sleep(4 SECONDS) + + // Wheeeeeee + pixel_z = 300 + alpha = 0 + forceMove(T) + playsound(T, 'sound/effects/droppod.ogg', 50, 1) + animate(src, pixel_z = 0, time = 3 SECONDS, easing = SINE_EASING|EASE_OUT) + animate(src, alpha = 255, time = 1 SECOND, flags = ANIMATION_PARALLEL) + filters += filter(type="drop_shadow", x=-64, y=100, size=10) + animate(filters[filters.len], x=0, y=0, size=0, time=3 SECONDS, flags=ANIMATION_PARALLEL, easing=SINE_EASING|EASE_OUT) + sleep(2 SECONDS) + new /obj/effect/effect/smoke(T) + sleep(1 SECOND) + filters = null + + // CRONCH + playsound(src, 'sound/effects/meteorimpact.ogg', 50, 1) + if(!polite) + for(var/atom/A in view(1, T)) + if(A == src) + continue + A.ex_act(2) + else + for(var/turf/simulated/floor/F in view(1, T)) + F.burn_tile(900) + + for(var/obj/O in T) + if(O == src) + continue + qdel(O) + for(var/mob/living/L in T) + L.gib() + + // Landed! Simmer + icon_state = "[initial(icon_state)]" + + if(auto_open) + sleep(2 SECONDS) + open_pod() + visible_message("\The [src] pops open!") + else + for(var/mob/M in src) + to_chat(M, "You've landed! Open the hatch if you think it's safe! \The [src] has enough air to last for a while...") + +/obj/structure/drop_pod/proc/open_pod() + if(finished) + return + icon_state = "[initial(icon_state)]_open" + playsound(src, 'sound/effects/magnetclamp.ogg', 100, 1) + for(var/atom/movable/AM in src) + AM.forceMove(loc) + AM.set_dir(SOUTH) // cus + qdel_null(air) + finished = TRUE + +/obj/structure/drop_pod/attack_hand(mob/living/user) + if(istype(user) && (Adjacent(user) || (user in src)) && !user.incapacitated()) + if(finished) + to_chat(user, "Nothing left to do with it now. Maybe you can break it down into materials.") + else + open_pod() + user.visible_message("[user] opens \the [src]!","You open \the [src]!") + +/obj/structure/drop_pod/attackby(obj/item/O, mob/user) + if(O.is_wrench()) + if(finished) + to_chat(user, "You start breaking down \the [src].") + if(do_after(user, 10 SECONDS, src, exclusive = TASK_ALL_EXCLUSIVE)) + var/obj/item/stack/S = new /obj/item/stack/material/plasteel(loc) + S.amount = 10 + qdel(src) + playsound(src, O.usesound, 50, 1) + else + to_chat(user, "\The [src] hasn't been opened yet. Do that first.") + return ..() + +/obj/structure/drop_pod/return_air() + return return_air_for_internal_lifeform() + +/obj/structure/drop_pod/return_air_for_internal_lifeform() + return air + +// This is about 0.896m^3 of atmosphere, which is enough to last for quite a while. +/datum/gas_mixture/pod_air + volume = 2500 + temperature = 293.150 + total_moles = 104 + +/datum/gas_mixture/pod_air/New() + . = ..() + gas = list( + "oxygen" = 21, + "nitrogen" = 79) diff --git a/code/modules/admin/admin_verb_lists.dm b/code/modules/admin/admin_verb_lists.dm index aa37774d35..9fbabaafd5 100644 --- a/code/modules/admin/admin_verb_lists.dm +++ b/code/modules/admin/admin_verb_lists.dm @@ -141,6 +141,7 @@ var/list/admin_verbs_fun = list( /datum/admins/proc/call_drop_pod, /client/proc/smite, /client/proc/admin_lightning_strike, + /client/proc/cmd_admin_droppod_deploy ) var/list/admin_verbs_spawn = list( @@ -149,6 +150,7 @@ var/list/admin_verbs_spawn = list( /datum/admins/proc/check_custom_items, /datum/admins/proc/spawn_plant, /datum/admins/proc/spawn_atom, //allows us to spawn instances, + /client/proc/cmd_admin_droppod_spawn, /client/proc/respawn_character, /client/proc/virus2_editor, /client/proc/spawn_chemdisp_cartridge, diff --git a/code/modules/admin/admin_verb_lists_vr.dm b/code/modules/admin/admin_verb_lists_vr.dm index 597c229478..0cc95ff8c6 100644 --- a/code/modules/admin/admin_verb_lists_vr.dm +++ b/code/modules/admin/admin_verb_lists_vr.dm @@ -155,7 +155,8 @@ var/list/admin_verbs_fun = list( /client/proc/smite, /client/proc/smite_vr, //VOREStation Add, /client/proc/admin_lightning_strike, - /client/proc/resize //VOREStation Add, + /client/proc/resize, //VOREStation Add, + /client/proc/cmd_admin_droppod_deploy ) var/list/admin_verbs_spawn = list( @@ -164,6 +165,7 @@ var/list/admin_verbs_spawn = list( /datum/admins/proc/check_custom_items, /datum/admins/proc/spawn_plant, /datum/admins/proc/spawn_atom, //allows us to spawn instances, + /client/proc/cmd_admin_droppod_spawn, /client/proc/respawn_character, /client/proc/spawn_character_mob, //VOREStation Add, /client/proc/virus2_editor, diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index a581d3fb82..c41116686c 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -390,7 +390,7 @@ Traitors and the like can also be revived with the previous role mostly intact. if(location == "Cancel" || !location) return - var/announce = tgui_alert(src,"Announce as if they had just arrived?", "Announce", list("Yes", "No", "Cancel")) + var/announce = tgui_alert(src,"Announce as if they had just arrived?", "Announce", list("No", "Yes", "Cancel")) if(announce == "Cancel") return else if(announce == "Yes") //Too bad buttons can't just have 1/0 values and different display strings @@ -420,7 +420,7 @@ Traitors and the like can also be revived with the previous role mostly intact. else if(samejob == USELESS_JOB) //VOREStation Edit - Visitor not Assistant charjob = USELESS_JOB //VOREStation Edit - Visitor not Assistant else - records = tgui_alert(src,"No data core entry detected. Would you like add them to the manifest, and sec/med/HR records?","Records",list("Yes","No","Cancel")) + records = tgui_alert(src,"No data core entry detected. Would you like add them to the manifest, and sec/med/HR records?","Records",list("No", "Yes", "Cancel")) if(records == "Cancel") return if(records == "Yes") @@ -457,17 +457,19 @@ Traitors and the like can also be revived with the previous role mostly intact. var/mob/living/carbon/human/new_character var/spawnloc - var/sparks + var/showy //Where did you want to spawn them? switch(location) if("Right Here") //Spawn them on your turf spawnloc = get_turf(src.mob) - sparks = tgui_alert(src,"Sparks like they teleported in?", "Showy", list("Yes", "No", "Cancel")) - if(sparks == "Cancel") + showy = tgui_alert(src,"Showy entrance?", "Showy", list("No", "Telesparks", "Drop Pod", "Cancel")) + if(showy == "Cancel") return - if(sparks == "No") - sparks = FALSE + if(showy == "Drop Pod") + showy = tgui_alert(src,"Destructive drop pods cause damage in a 3x3 and may break turfs. Polite drop pods lightly damage the turfs but won't break through.", "Drop Pod", list("Polite", "Destructive", "Cancel")) // reusing var + if(showy == "Cancel") + return if("Arrivals") //Spawn them at a latejoin spawnpoint spawnloc = pick(latejoin) @@ -483,7 +485,7 @@ Traitors and the like can also be revived with the previous role mostly intact. new_character = new(spawnloc) - if(sparks) + if(showy == "Telesparks") anim(spawnloc,new_character,'icons/mob/mob.dmi',,"phasein",,new_character.dir) playsound(spawnloc, "sparks", 50, 1) var/datum/effect/effect/system/spark_spread/spk = new(new_character) @@ -546,9 +548,21 @@ Traitors and the like can also be revived with the previous role mostly intact. log_admin("[admin] has spawned [player_key]'s character [new_character.real_name].") message_admins("[admin] has spawned [player_key]'s character [new_character.real_name].", 1) - to_chat(new_character, "You have been fully spawned. Enjoy the game.") + feedback_add_details("admin_verb","RSPCH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + // Drop pods + if(showy == "Polite") + var/turf/T = get_turf(new_character) + new /obj/structure/drop_pod/polite(T, new_character) + to_chat(new_character, "Please wait for your arrival.") + else if(showy == "Destructive") + var/turf/T = get_turf(new_character) + new /obj/structure/drop_pod(T, new_character) + to_chat(new_character, "Please wait for your arrival.") + else + to_chat(new_character, "You have been fully spawned. Enjoy the game.") return new_character @@ -1057,3 +1071,73 @@ Traitors and the like can also be revived with the previous role mostly intact. else if(isliving(M)) M.ghostize() qdel(M) //Bye + +/client/proc/cmd_admin_droppod_spawn(var/object as text) + set name = "Drop Pod Spawn" + set desc = "Spawn a new atom/movable in a drop pod where you are." + set category = "Fun" + + if(!check_rights(R_SPAWN)) + return + + var/list/types = typesof(/atom/movable) + var/list/matches = new() + + for(var/path in types) + if(findtext("[path]", object)) + matches += path + + if(!matches.len) + return + + var/chosen + if(matches.len==1) + chosen = matches[1] + else + chosen = tgui_input_list(usr, "Select an atom type", "Spawn Atom", matches) + if(!chosen) + return + + var/podtype = tgui_alert(src,"Destructive drop pods cause damage in a 3x3 and may break turfs. Polite drop pods lightly damage the turfs but won't break through.", "Drop Pod", list("Polite", "Destructive", "Cancel")) + if(podtype == "Cancel") + return + var/autoopen = tgui_alert(src,"Should the pod open automatically?", "Drop Pod", list("Yes", "No", "Cancel")) + if(autoopen == "Cancel") + return + switch(podtype) + if("Destructive") + var/atom/movable/AM = new chosen(usr.loc) + new /obj/structure/drop_pod(get_turf(usr), AM, autoopen == "Yes" ? TRUE : FALSE) + if("Polite") + var/atom/movable/AM = new chosen(usr.loc) + new /obj/structure/drop_pod/polite(get_turf(usr), AM, autoopen == "Yes" ? TRUE : FALSE) + + feedback_add_details("admin_verb","DPS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_admin_droppod_deploy() + set name = "Drop Pod Deploy" + set desc = "Drop an existing mob where you are in a drop pod." + set category = "Fun" + + if(!check_rights(R_SPAWN)) + return + + var/mob/living/L = tgui_input_list(usr, "Select the mob to drop:", "Drop!", living_mob_list) + if(!L) + return + + var/podtype = tgui_alert(src,"Destructive drop pods cause damage in a 3x3 and may break turfs. Polite drop pods lightly damage the turfs but won't break through.", "Drop Pod", list("Polite", "Destructive", "Cancel")) + if(podtype == "Cancel") + return + var/autoopen = tgui_alert(src,"Should the pod open automatically?", "Drop Pod", list("Yes", "No", "Cancel")) + if(autoopen == "Cancel") + return + if(!L || QDELETED(L)) + return + switch(podtype) + if("Destructive") + new /obj/structure/drop_pod(get_turf(usr), L, autoopen == "Yes" ? TRUE : FALSE) + if("Polite") + new /obj/structure/drop_pod/polite(get_turf(usr), L, autoopen == "Yes" ? TRUE : FALSE) + + feedback_add_details("admin_verb","DPD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! \ No newline at end of file diff --git a/icons/obj/structures/droppod.dmi b/icons/obj/structures/droppod.dmi new file mode 100644 index 0000000000000000000000000000000000000000..9254c59eeb29a697d08bb01be7aeeb1e23b26f31 GIT binary patch literal 1871 zcmV-V2e9~wP)trT_o{>h}Q4*8~`F z{{Zp-koo`r|NlBjB0fzdGCdtgSt|wx2xn(!CMG6#cX!wMGW7re00DGTPE!Ct=GbNc z005SHR9JLGWpiV4X>fFDZ*Bkpc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM;w;Zh zDainGjE%TBGg33tGfIFQQvHD4>oX15DC|~qxIHNK} zh*^(|QHsq>qt_H`9+~m#X8DpplYuO~$#D=8a-)JP}k4Z(B}AU+RrwZ9F)DAaFR6p~zLFs87Ht zO95AeU!odiJy9ZRmqXP(bebB-yqbkScgXo9Eg%LsqslJ>1F#n`W9WShiJloC#x`Yq&6O z<)Dq=jdR9`>NvwM4-etY%E34R+~dCLI8LmNOl=rCqde8}6L7|@wQz_GW0C+vzuHDev42WXF^HD!w=+<%ncq9Jx|8!yjBYxQ0C|zC*cDAyd}Iu^u++?|{qr zOE^AXydnG#>QBMx{bdM@vGeKGnowTeY4YZJd%0a#cqp&&mzS3fPUX%0x841>)%`JB zf`IERS?3}Fc>o8Y4Nm1Z{3_9)ye{}$W~&D@h=-lmtJYbRnoR@W;n&-BgQL79c)M+I zBJhU8gDb9-)#3E2twM<(!>>F1dgy*8X-;CgMx&p|Unk+! zv&a94f2(-Zvtq@gm_VuGQEJ7CN2wJn9>oN@FBJ{@0d9Z0{UXKVHwcs{9>wjKDjvlI z`ZC3%xcySaqnJQnrg#*$U#fT%6X^3453}HAgBQ1-sd$K$Z4{4U0)3X^A;Lm5jw5{u z^@}0MR6N8;t>5o=;xLMp;!#W>OYsonBp;7^xE^u}41Osa<|!U>oSu(+AaH*?69M4= zZ0&Vl&L;4U;z0zar+z;1H*E;~yRp}8F`K}*iihNA+qX!Bt;a8v7Xq)JTNZ&l#e*W? zr*Wi@M+9WTLBKj^LX!5z4tDwN++hM=C?25;#>ay`(~bbOA6|!g?d;(6TrhbAG8GRZ zfZ<1WA0vT?69FT_|13l#FwnaQKX{WzAW!j#v)~avcOsB*5D5Rj*6RpR$@we-nTiJu z!p9te#}jAUgo6OR2z(y_KMZ*U@)Qp#rYS|>F-=dIa1aQ6{y_xt#z3axAw%HPAiUpY z!gmpHha-@qc=QcN9)3Q@iEKn?JS1=WfNvsTC<5kK1acIQu5UoVFL}U&K+|^te?JDy zu?XZS9#|(R0%$zgL=nJxp$ShBn5X`*B!%1vWjV%jB)eH~z>?#J*$~R`?I@-Q zAgxDv1in=~Iw@)F&xZCF0*Jtn`aHFs2xTrt8H$JPuqE_UGLKzhXCuDr0ykKL4K!8d zc0rcnfqCE&gW06V9GLO#AdH#t*dWYNJglR|cePgHoMI!sn}&8U`rtIoQ9Qh*+?0y<5f}!YO`t?E*=@^* zb>RSkpDP~aC!^THj}?#dv*F5qqIi^_j^DL#4F947UUT*X{{hN+Nl;s2b5sBT002ov JPDHLkV1lCyYf=CJ literal 0 HcmV?d00001 diff --git a/sound/effects/droppod.ogg b/sound/effects/droppod.ogg new file mode 100644 index 0000000000000000000000000000000000000000..161216ff2bd3774477d038b0484d713cc4ece14b GIT binary patch literal 22833 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 C$BE(q literal 0 HcmV?d00001 diff --git a/vorestation.dme b/vorestation.dme index ea3fdd0832..f1e7b2d321 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1440,6 +1440,7 @@ #include "code\game\objects\structures\displaycase.dm" #include "code\game\objects\structures\dogbed.dm" #include "code\game\objects\structures\door_assembly.dm" +#include "code\game\objects\structures\droppod.dm" #include "code\game\objects\structures\electricchair.dm" #include "code\game\objects\structures\extinguisher.dm" #include "code\game\objects\structures\fence.dm"