mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-27 23:27:34 +01:00
Luxury shuttle improvements (#48395)
This commit is contained in:
+702
-414
File diff suppressed because it is too large
Load Diff
@@ -16,6 +16,7 @@
|
||||
|
||||
var/port_x_offset
|
||||
var/port_y_offset
|
||||
var/extra_desc = ""
|
||||
|
||||
/datum/map_template/shuttle/proc/prerequisites_met()
|
||||
return TRUE
|
||||
@@ -226,6 +227,7 @@
|
||||
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."
|
||||
extra_desc = "This shuttle costs 500 credits to board."
|
||||
admin_notes = "Due to the limited space for non paying crew, this shuttle may cause a riot."
|
||||
credit_cost = 10000
|
||||
|
||||
|
||||
@@ -169,7 +169,7 @@
|
||||
SSshuttle.existing_shuttle = SSshuttle.emergency
|
||||
SSshuttle.action_load(S)
|
||||
D.adjust_money(-S.credit_cost)
|
||||
minor_announce("[usr.real_name] has purchased [S.name] for [S.credit_cost] credits." , "Shuttle Purchase")
|
||||
minor_announce("[usr.real_name] has purchased [S.name] for [S.credit_cost] credits.[S.extra_desc ? " [S.extra_desc]" : ""]" , "Shuttle Purchase")
|
||||
message_admins("[ADMIN_LOOKUPFLW(usr)] purchased [S.name].")
|
||||
SSblackbox.record_feedback("text", "shuttle_purchase", 1, "[S.name]")
|
||||
else
|
||||
|
||||
@@ -86,6 +86,12 @@
|
||||
icon = 'icons/turf/walls/uranium_wall.dmi'
|
||||
icon_state = "uranium"
|
||||
|
||||
/turf/closed/indestructible/riveted/diamond
|
||||
name = "diamond wall"
|
||||
desc = "A wall with diamond plating. You monster."
|
||||
icon = 'icons/turf/walls/diamond_wall.dmi'
|
||||
icon_state = "diamond"
|
||||
|
||||
/turf/closed/indestructible/abductor
|
||||
icon_state = "alien1"
|
||||
|
||||
|
||||
@@ -316,7 +316,7 @@
|
||||
mode = SHUTTLE_DOCKED
|
||||
setTimer(SSshuttle.emergencyDockTime)
|
||||
send2tgs("Server", "The Emergency Shuttle has docked with the station.")
|
||||
priority_announce("The Emergency Shuttle has docked with the station. You have [timeLeft(600)] minutes to board the Emergency Shuttle.", null, 'sound/ai/shuttledock.ogg', "Priority")
|
||||
priority_announce("[SSshuttle.emergency] has docked with the station. You have [timeLeft(600)] minutes to board the Emergency Shuttle.", null, 'sound/ai/shuttledock.ogg', "Priority")
|
||||
ShuttleDBStuff()
|
||||
|
||||
|
||||
|
||||
@@ -213,17 +213,19 @@
|
||||
|
||||
//Luxury Shuttle Blockers
|
||||
|
||||
/obj/effect/forcefield/luxury_shuttle
|
||||
name = "luxury shuttle ticket booth"
|
||||
desc = "A forceful money collector."
|
||||
timeleft = 0
|
||||
/obj/machinery/scanner_gate/luxury_shuttle
|
||||
name = "luxury shuttle ticket field"
|
||||
density = FALSE //allows shuttle airlocks to close, nothing but an approved passenger gets past CanPass
|
||||
locked = TRUE
|
||||
use_power = FALSE
|
||||
var/threshold = 500
|
||||
var/static/list/approved_passengers = list()
|
||||
var/static/list/check_times = list()
|
||||
var/list/payees = list()
|
||||
|
||||
/obj/effect/forcefield/luxury_shuttle/CanPass(atom/movable/mover, turf/target)
|
||||
/obj/machinery/scanner_gate/luxury_shuttle/CanPass(atom/movable/mover, turf/target)
|
||||
if(mover in approved_passengers)
|
||||
set_scanline("scanning", 10)
|
||||
return TRUE
|
||||
|
||||
if(!isliving(mover)) //No stowaways
|
||||
@@ -231,10 +233,19 @@
|
||||
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/scanner_gate/luxury_shuttle/Crossed(atom/movable/AM)
|
||||
return
|
||||
|
||||
/obj/machinery/scanner_gate/luxury_shuttle/attackby(obj/item/W, mob/user, params)
|
||||
return
|
||||
|
||||
/obj/machinery/scanner_gate/luxury_shuttle/emag_act(mob/user)
|
||||
return
|
||||
|
||||
#define LUXURY_MESSAGE_COOLDOWN 100
|
||||
/obj/effect/forcefield/luxury_shuttle/Bumped(atom/movable/AM)
|
||||
/obj/machinery/scanner_gate/luxury_shuttle/Bumped(atom/movable/AM)
|
||||
if(!isliving(AM))
|
||||
alarm_beep()
|
||||
return ..()
|
||||
|
||||
var/datum/bank_account/account
|
||||
@@ -315,18 +326,18 @@
|
||||
var/change = FALSE
|
||||
if(payees[AM] > 0)
|
||||
change = TRUE
|
||||
var/obj/item/holochip/HC
|
||||
var/obj/item/holochip/HC = new /obj/item/holochip(AM.loc)
|
||||
HC.credits = payees[AM]
|
||||
HC.name = "[HC.credits] credit holochip"
|
||||
if(istype(AM, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = AM
|
||||
if(!H.put_in_hands(new HC))
|
||||
if(!H.put_in_hands(HC))
|
||||
AM.pulling = HC
|
||||
else
|
||||
new HC(AM.loc)
|
||||
AM.pulling = HC
|
||||
payees[AM] -= payees[AM]
|
||||
|
||||
say("<span class='robot'>Welcome aboard, [AM]![change ? " Here is your change." : ""]</span>")
|
||||
say("<span class='robot'>Welcome to first class, [AM]![change ? " Here is your change." : ""]</span>")
|
||||
approved_passengers += AM
|
||||
|
||||
check_times -= AM
|
||||
@@ -335,10 +346,12 @@
|
||||
for(var/obj/I in counted_money)
|
||||
qdel(I)
|
||||
if(!check_times[AM] || check_times[AM] < world.time) //Let's not spam the message
|
||||
to_chat(AM, "<span class='notice'>$[payees[AM]] received. You need $[threshold-payees[AM]] more.</span>")
|
||||
to_chat(AM, "<span class='notice'>[payees[AM]] credits received. You need [threshold-payees[AM]] more.</span>")
|
||||
check_times[AM] = world.time + LUXURY_MESSAGE_COOLDOWN
|
||||
alarm_beep()
|
||||
return ..()
|
||||
else
|
||||
alarm_beep()
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/bear/fightpit
|
||||
|
||||
Reference in New Issue
Block a user