From 3221c630c532eb52cc80db143ba1fb2e0dac0460 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Sun, 13 Nov 2016 22:31:28 -0600 Subject: [PATCH] Adds the luxury shuttle, adds descriptions to other shuttles --- _maps/shuttles/emergency_luxury.dmm | 77 +++++++++++++++++++ code/datums/shuttles.dm | 29 +++++-- .../game/machinery/computer/communications.dm | 2 +- code/modules/admin/fun_balloon.dm | 47 ++++++++++- 4 files changed, 146 insertions(+), 9 deletions(-) create mode 100644 _maps/shuttles/emergency_luxury.dmm diff --git a/_maps/shuttles/emergency_luxury.dmm b/_maps/shuttles/emergency_luxury.dmm new file mode 100644 index 00000000000..e56f3419356 --- /dev/null +++ b/_maps/shuttles/emergency_luxury.dmm @@ -0,0 +1,77 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/indestructible/riveted/uranium,/area/shuttle/escape) +"ac" = (/obj/machinery/door/airlock/external,/turf/open/floor/plating{tag = "icon-wood-broken2"; icon_state = "wood-broken2"},/area/shuttle/escape) +"ad" = (/obj/machinery/door/airlock/gold,/obj/effect/forcefield/luxury_shuttle{name = "Ticket Booth"},/turf/open/floor/mineral/gold,/area/shuttle/escape) +"ae" = (/obj/docking_port/mobile/emergency{dir = 2; dwidth = 5; height = 14; name = "Luxury emergency shuttle"; timid = 1; width = 25},/obj/machinery/door/airlock/gold,/obj/effect/forcefield/luxury_shuttle{name = "Ticket Booth"},/turf/open/floor/mineral/gold,/area/shuttle/escape) +"af" = (/turf/open/floor/plating{tag = "icon-wood-broken3"; icon_state = "wood-broken3"},/area/shuttle/escape) +"ag" = (/turf/open/floor/plating{tag = "icon-wood"; icon_state = "wood"},/area/shuttle/escape) +"ah" = (/turf/open/floor/plating{tag = "icon-wood-broken"; icon_state = "wood-broken"},/area/shuttle/escape) +"ai" = (/turf/open/floor/plating{tag = "icon-wood-broken5"; icon_state = "wood-broken5"},/area/shuttle/escape) +"aj" = (/turf/open/floor/mineral/gold,/area/shuttle/escape) +"ak" = (/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-10"; icon_state = "plant-10"},/turf/open/floor/mineral/gold,/area/shuttle/escape) +"al" = (/obj/structure/mirror{pixel_y = 32},/turf/open/floor/mineral/gold,/area/shuttle/escape) +"am" = (/turf/open/floor/plating{tag = "icon-wood-broken7"; icon_state = "wood-broken7"},/area/shuttle/escape) +"an" = (/turf/open/floor/plating{tag = "icon-wood-broken2"; icon_state = "wood-broken2"},/area/shuttle/escape) +"ao" = (/turf/open/floor/plating{tag = "icon-wood-broken6"; icon_state = "wood-broken6"},/area/shuttle/escape) +"ap" = (/obj/structure/toilet{dir = 4; icon_state = "toilet00"; tag = "icon-toilet00 (NORTH)"},/turf/open/floor/mineral/gold,/area/shuttle/escape) +"aq" = (/obj/machinery/door/airlock/gold,/turf/open/floor/mineral/gold,/area/shuttle/escape) +"ar" = (/obj/structure/shuttle/engine/propulsion{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/escape) +"as" = (/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/escape) +"at" = (/turf/open/floor/carpet,/area/shuttle/escape) +"au" = (/obj/structure/chair/comfy,/turf/open/floor/carpet,/area/shuttle/escape) +"av" = (/obj/structure/chair/comfy{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/turf/open/floor/mineral/gold,/area/shuttle/escape) +"aw" = (/obj/machinery/computer/communications,/turf/open/floor/mineral/gold,/area/shuttle/escape) +"ax" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/meatballspaghetti,/turf/open/floor/carpet,/area/shuttle/escape) +"ay" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/notasandwich,/turf/open/floor/carpet,/area/shuttle/escape) +"az" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/pastatomato,/turf/open/floor/carpet,/area/shuttle/escape) +"aA" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/kebab/tofu,/turf/open/floor/carpet,/area/shuttle/escape) +"aB" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/honkdae,/turf/open/floor/carpet,/area/shuttle/escape) +"aC" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/enchiladas,/turf/open/floor/carpet,/area/shuttle/escape) +"aD" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/candiedapple,/turf/open/floor/carpet,/area/shuttle/escape) +"aE" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/burger/baconburger,/turf/open/floor/carpet,/area/shuttle/escape) +"aF" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/benedict,/turf/open/floor/carpet,/area/shuttle/escape) +"aG" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/cakeslice/chocolate,/turf/open/floor/carpet,/area/shuttle/escape) +"aH" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/chowmein,/turf/open/floor/carpet,/area/shuttle/escape) +"aI" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/dulcedebatataslice,/turf/open/floor/carpet,/area/shuttle/escape) +"aJ" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/salad/validsalad,/turf/open/floor/carpet,/area/shuttle/escape) +"aK" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/carneburrito,/turf/open/floor/carpet,/area/shuttle/escape) +"aL" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/chawanmushi,/turf/open/floor/carpet,/area/shuttle/escape) +"aM" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/mineral/gold,/area/shuttle/escape) +"aN" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/melonfruitbowl,/turf/open/floor/carpet,/area/shuttle/escape) +"aO" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/khachapuri,/turf/open/floor/carpet,/area/shuttle/escape) +"aP" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/grilledcheese,/turf/open/floor/carpet,/area/shuttle/escape) +"aQ" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry,/turf/open/floor/carpet,/area/shuttle/escape) +"aR" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/honeybun,/turf/open/floor/carpet,/area/shuttle/escape) +"aS" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/eggplantparm,/turf/open/floor/carpet,/area/shuttle/escape) +"aT" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/copypasta,/turf/open/floor/carpet,/area/shuttle/escape) +"aU" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/bearsteak,/turf/open/floor/carpet,/area/shuttle/escape) +"aV" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti,/turf/open/floor/carpet,/area/shuttle/escape) +"aW" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/cherrycupcake,/turf/open/floor/carpet,/area/shuttle/escape) +"aX" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/customizable/pizza,/turf/open/floor/carpet,/area/shuttle/escape) +"aY" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/hotdog,/turf/open/floor/carpet,/area/shuttle/escape) +"aZ" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/pie/grapetart,/turf/open/floor/carpet,/area/shuttle/escape) +"ba" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/burger/superbite,/turf/open/floor/carpet,/area/shuttle/escape) +"bb" = (/obj/structure/table/wood/fancy,/obj/item/weapon/reagent_containers/food/snacks/cakeslice/slimecake,/turf/open/floor/carpet,/area/shuttle/escape) +"bc" = (/obj/machinery/computer/station_alert,/turf/open/floor/mineral/gold,/area/shuttle/escape) +"bd" = (/obj/structure/chair/comfy{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/turf/open/floor/carpet,/area/shuttle/escape) +"be" = (/obj/machinery/computer/crew,/turf/open/floor/mineral/gold,/area/shuttle/escape) +"bf" = (/obj/machinery/sleeper{tag = "icon-sleeper-open (EAST)"; icon_state = "sleeper-open"; dir = 4},/turf/open/floor/mineral/gold,/area/shuttle/escape) +"bg" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1; pixel_x = -3; pixel_y = 3},/turf/open/floor/mineral/gold,/area/shuttle/escape) +"bh" = (/turf/open/floor/plating/beach/coastline_b,/area/shuttle/escape) + +(1,1,1) = {" +aaabababababababababacababadabababababaeababababab +ababafagagagahagagaiagabajajajajajajajajabakajalab +abamaganagagagagagaoagabajajajajajajajajabapajajab +ababababababababababababajajajajajajajajabababaqab +abababakajajajajajajajajajajajajajajajajajajajajab +arasabajatauauauauauauauauauauauauauauauatajavawab +arasabajataxayazaAaBaCaDaEaFaGaHaIaJaKaLatajavaMab +arasabajataNaOaPaQaRaSaTaUaVaWaXaYaZbabbatajavbcab +arasabajatbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdatajavbeab +abababajajajajajajajajajajajajajajajajajajajajajab +abbfajajajajajajajajajajajajajajajajajajajajajajab +abbfajajajbgbhbhbhbhbhbhbhbhbhbhbhbhbhbgajajajajab +abababakajbgbhbhbhbhbhbhbhbhbhbhbhbhbhbgajajajakab +aaabababababababababababababababababababababababab +"} diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index e935bb70ecb..fad7fa23915 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -42,7 +42,8 @@ /datum/map_template/shuttle/emergency/asteroid suffix = "asteroid" - name = "Asteroid emergency shuttle" + name = "Asteroid Station Emergency Shuttle" + description = "A respectable mid-sized shuttle that first saw service shuttling Nanotrasen crew to and from their asteroid belt embedded facilities." credit_cost = 3000 /datum/map_template/shuttle/emergency/bar @@ -58,19 +59,29 @@ /datum/map_template/shuttle/emergency/meteor suffix = "meteor" - name = "an asteroid with engines strapped to it" + name = "An Asteroid With Engines Strapped To It" description = "A hollowed out asteroid with engines strapped to it. Due to its size and difficulty in steering it, this shuttle may damage the docking area." admin_notes = "This shuttle will likely crush escape, killing anyone there." credit_cost = -5000 +/datum/map_template/shuttle/emergency/luxury + suffix = "luxury" + name = "Luxury Shuttle" + description = "A luxurious golden shuttle complete with an indoor swimming pool. Each crewmember wishing to board must bring 500 credits, payable in cash and mineral coin." + admin_notes = "Due to the limited space for non paying crew, this shuttle may cause a riot." + credit_cost = 10000 + /datum/map_template/shuttle/emergency/birdboat suffix = "birdboat" - name = "Birdboat emergency shuttle" + name = "Birdboat Station Emergency Shuttle" + description = "Though a little on the small side, this shuttle is feature complete, which is more than can be said for the pattern of station it was commissioned for." + credit_cost = 1000 /datum/map_template/shuttle/emergency/box suffix = "box" - name = "Box emergency shuttle" + name = "Box Station Emergency Shuttle" credit_cost = 2000 + description = "The gold standard in emergency exfiltration, this tried and true design is equipped with everything the crew needs for a safe flight home." /datum/map_template/shuttle/emergency/clown suffix = "clown" @@ -105,13 +116,15 @@ /datum/map_template/shuttle/emergency/meta suffix = "meta" - name = "Meta emergency shuttle" + name = "Meta Station Emergency Shuttle" credit_cost = 4000 + description = "A fairly standard shuttle, though larger and slightly better equipped than the Box Station variant." /datum/map_template/shuttle/emergency/mini suffix = "mini" name = "Ministation emergency shuttle" credit_cost = 1000 + description = "Despite it's namesake, this shuttle is actually only slightly smaller than standard, and still complete with a brig and medbay." /datum/map_template/shuttle/emergency/narnar suffix = "narnar" @@ -126,7 +139,9 @@ /datum/map_template/shuttle/emergency/pubby suffix = "pubby" - name = "Pubby emergency shuttle" + name = "Pubby Station Emergency Shuttle" + description = "A small, but feature complete shuttle. It boasts a card table to keep crew members occupied on the long flight home." + credit_cost = 1000 /datum/map_template/shuttle/emergency/supermatter suffix = "supermatter" @@ -158,7 +173,7 @@ /datum/map_template/shuttle/emergency/goon suffix = "goon" - name = "NES Port" + name = "NES Port Shuttle" description = "The Nanotrasen Emergency Shuttle Port(NES Port for short) \ is a shuttle used at other less known nanotrasen facilities \ and has a more open inside for larger crowds." diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index fb06b49ed07..7b8b3276bbf 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -527,7 +527,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12 if(S.credit_cost < INFINITY) dat += "[S.name] | [S.credit_cost] Credits
" dat += "[S.description]
" - dat += "(Purchase)
" + dat += "(Purchase)

" dat += "

\[ [(src.state != STATE_DEFAULT) ? "Main Menu | " : ""]Close \]" diff --git a/code/modules/admin/fun_balloon.dm b/code/modules/admin/fun_balloon.dm index a63ad829f7d..ad5190d9bf4 100644 --- a/code/modules/admin/fun_balloon.dm +++ b/code/modules/admin/fun_balloon.dm @@ -98,4 +98,49 @@ var/new_dir = turn(SM.dir, 180) SM.loc = get_ranged_target_turf(SM, new_dir, rand(3,15)) break - qdel(src) \ No newline at end of file + qdel(src) + + + +//meteor/asteroid shuttle slamming into the station + +/obj/effect/station_crash + name = "station crash" + desc = "With no survivors!" + icon = 'icons/obj/weapons.dmi' + icon_state = "syndballoon" + anchored = TRUE + + +//Luxury Shuttle Blockers + +/obj/effect/forcefield/luxury_shuttle + var/threshhold = 500 + var/list/approved_passengers = list() + +/obj/effect/forcefield/luxury_shuttle/CanPass(atom/movable/mover, turf/target, height=0) + if(mover in approved_passengers) + return 1 + + if(!isliving(mover)) //No stowaways + return 0 + + var/total_cash = 0 + var/list/counted_money = list() + + for(var/obj/item/weapon/coin/C in mover) + total_cash += C.value + counted_money += C + for(var/obj/item/stack/spacecash/S in mover) + total_cash += S.value + counted_money += S + + if(total_cash >= threshhold) + for(var/obj/I in counted_money) + qdel() + mover << "Thank you for your payment! Please enjoy your flight." + approved_passengers += mover + return 1 + else + mover << "You don't have enough money to enter the main shuttle. You'll have to fly coach." + return 0