Adminbus part 6

This commit is contained in:
DeityLink
2014-11-21 01:42:55 +01:00
parent 5afca6f51f
commit 7890a3f08b
18 changed files with 1011 additions and 310 deletions

View File

@@ -53,6 +53,7 @@
#include "code\_onclick\overmind.dm"
#include "code\_onclick\telekinesis.dm"
#include "code\_onclick\hud\_defines.dm"
#include "code\_onclick\hud\adminbus.dm"
#include "code\_onclick\hud\ai.dm"
#include "code\_onclick\hud\alien.dm"
#include "code\_onclick\hud\alien_larva.dm"

View File

@@ -146,3 +146,40 @@
#define ui_ai_pda_log "SOUTH:6,WEST+10:16"
#define ui_ai_take_picture "SOUTH:6,WEST+11:16"
#define ui_ai_view_images "SOUTH:6,WEST+12:16"
//Adminbus HUD
#define ui_adminbus_bg "1:0,1:0"
#define ui_adminbus_delete "11:31,1:6"
#define ui_adminbus_delmobs "1:6,5:14"
#define ui_adminbus_spclowns "1:8,6:14"
#define ui_adminbus_spcarps "1:8,7:10"
#define ui_adminbus_spbears "1:8,8:6"
#define ui_adminbus_sptrees "1:8,9:2"
#define ui_adminbus_spspiders "1:8,9:30"
#define ui_adminbus_spalien "1:5,10:26"
#define ui_adminbus_loadsids "5:0,2:9"
#define ui_adminbus_loadsmone "5:0,3:5"
#define ui_adminbus_massrepair "6:3,2:9"
#define ui_adminbus_massrejuv "6:3,3:5"
#define ui_adminbus_hook "10:0,3:7"
#define ui_adminbus_juke "11:11,3:7"
#define ui_adminbus_tele "12:22,3:7"
#define ui_adminbus_bumpers_1 "9:21,2:14"
#define ui_adminbus_bumpers_2 "10:5,2:14"
#define ui_adminbus_bumpers_3 "10:21,2:14"
#define ui_adminbus_door_0 "11:11,2:14"
#define ui_adminbus_door_1 "11:27,2:14"
#define ui_adminbus_roadlights_0 "12:17,2:14"
#define ui_adminbus_roadlights_1 "13:1,2:14"
#define ui_adminbus_roadlights_2 "13:17,2:14"
#define ui_adminbus_free "13:9,14:20"
#define ui_adminbus_home "14:6,14:20"
#define ui_adminbus_antag "15:3,14:20"
#define ui_adminbus_dellasers "6:13,13:26"
#define ui_adminbus_givelasers "6:29,13:26"
#define ui_adminbus_delbombs "9:18,13:26"
#define ui_adminbus_givebombs "10:2,13:26"
#define ui_adminbus_tdred "1:18,13:26"
#define ui_adminbus_tdarena "2:4,13:26"
#define ui_adminbus_tdgreen "3:6,13:26"
#define ui_adminbus_tdobs "2:4,14:28"

View File

@@ -0,0 +1,302 @@
/datum/hud/proc/adminbus_hud()
mymob.adminbus_bg = new /obj/screen()
mymob.adminbus_bg.icon = 'icons/adminbus/fullscreen.dmi'
mymob.adminbus_bg.icon_state = "HUD"
mymob.adminbus_bg.name = "HUD"
mymob.adminbus_bg.layer = 19
mymob.adminbus_bg.screen_loc = ui_adminbus_bg
mymob.adminbus_delete = new /obj/screen()
mymob.adminbus_delete.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_delete.icon_state = "icon_delete"
mymob.adminbus_delete.name = "Delete Bus"
mymob.adminbus_delete.screen_loc = ui_adminbus_delete
mymob.adminbus_delmobs = new /obj/screen()
mymob.adminbus_delmobs.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_delmobs.icon_state = "icon_delmobs"
mymob.adminbus_delmobs.name = "Delete Mobs"
mymob.adminbus_delmobs.screen_loc = ui_adminbus_delmobs
mymob.adminbus_spclowns = new /obj/screen()
mymob.adminbus_spclowns.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_spclowns.icon_state = "icon_spclowns"
mymob.adminbus_spclowns.name = "Spawn Clowns"
mymob.adminbus_spclowns.screen_loc = ui_adminbus_spclowns
mymob.adminbus_spcarps = new /obj/screen()
mymob.adminbus_spcarps.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_spcarps.icon_state = "icon_spcarps"
mymob.adminbus_spcarps.name = "Spawn Carps"
mymob.adminbus_spcarps.screen_loc = ui_adminbus_spcarps
mymob.adminbus_spbears = new /obj/screen()
mymob.adminbus_spbears.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_spbears.icon_state = "icon_spbears"
mymob.adminbus_spbears.name = "Spawn Bears"
mymob.adminbus_spbears.screen_loc = ui_adminbus_spbears
mymob.adminbus_sptrees = new /obj/screen()
mymob.adminbus_sptrees.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_sptrees.icon_state = "icon_sptrees"
mymob.adminbus_sptrees.name = "Spawn Trees"
mymob.adminbus_sptrees.screen_loc = ui_adminbus_sptrees
mymob.adminbus_spspiders = new /obj/screen()
mymob.adminbus_spspiders.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_spspiders.icon_state = "icon_spspiders"
mymob.adminbus_spspiders.name = "Spawn Spiders"
mymob.adminbus_spspiders.screen_loc = ui_adminbus_spspiders
mymob.adminbus_spalien = new /obj/screen()
mymob.adminbus_spalien.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_spalien.icon_state = "icon_spalien"
mymob.adminbus_spalien.name = "Spawn Large Alien Queen"
mymob.adminbus_spalien.screen_loc = ui_adminbus_spalien
mymob.adminbus_loadsids = new /obj/screen()
mymob.adminbus_loadsids.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_loadsids.icon_state = "icon_loadsids"
mymob.adminbus_loadsids.name = "Spawn Loads of Captain Spare IDs"
mymob.adminbus_loadsids.screen_loc = ui_adminbus_loadsids
mymob.adminbus_loadsmoney = new /obj/screen()
mymob.adminbus_loadsmoney.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_loadsmoney.icon_state = "icon_loadsmone"
mymob.adminbus_loadsmoney.name = "Spawn Loads of Money"
mymob.adminbus_loadsmoney.screen_loc = ui_adminbus_loadsmone
mymob.adminbus_massrepair = new /obj/screen()
mymob.adminbus_massrepair.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_massrepair.icon_state = "icon_massrepair"
mymob.adminbus_massrepair.name = "Repair Surroundings"
mymob.adminbus_massrepair.screen_loc = ui_adminbus_massrepair
mymob.adminbus_massrejuv = new /obj/screen()
mymob.adminbus_massrejuv.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_massrejuv.icon_state = "icon_massrejuv"
mymob.adminbus_massrejuv.name = "Mass Rejuvination"
mymob.adminbus_massrejuv.screen_loc = ui_adminbus_massrejuv
mymob.adminbus_hook = new /obj/screen()
mymob.adminbus_hook.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_hook.icon_state = "icon_hook"
mymob.adminbus_hook.name = "Singularity Hook"
mymob.adminbus_hook.screen_loc = ui_adminbus_hook
mymob.adminbus_juke = new /obj/screen()
mymob.adminbus_juke.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_juke.icon_state = "icon_teleport"
mymob.adminbus_juke.name = "Adminbus-mounted Jukebox"
mymob.adminbus_juke.screen_loc = ui_adminbus_juke
mymob.adminbus_tele = new /obj/screen()
mymob.adminbus_tele.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_tele.icon_state = "icon_jukebox"
mymob.adminbus_tele.name = "Teleportation"
mymob.adminbus_tele.screen_loc = ui_adminbus_tele
mymob.adminbus_bumpers_1 = new /obj/screen()
mymob.adminbus_bumpers_1.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_bumpers_1.icon_state = "icon_stickleft"
mymob.adminbus_bumpers_1.name = "Capture Mobs"
mymob.adminbus_bumpers_1.screen_loc = ui_adminbus_bumpers_1
mymob.adminbus_bumpers_2 = new /obj/screen()
mymob.adminbus_bumpers_2.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_bumpers_2.icon_state = ""
mymob.adminbus_bumpers_2.name = "Hit Mobs"
mymob.adminbus_bumpers_2.screen_loc = ui_adminbus_bumpers_2
mymob.adminbus_bumpers_3 = new /obj/screen()
mymob.adminbus_bumpers_3.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_bumpers_3.icon_state = ""
mymob.adminbus_bumpers_3.name = "Gib Mobs"
mymob.adminbus_bumpers_3.screen_loc = ui_adminbus_bumpers_3
mymob.adminbus_door_0 = new /obj/screen()
mymob.adminbus_door_0.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_door_0.icon_state = "icon_stickleft"
mymob.adminbus_door_0.name = "Close Door"
mymob.adminbus_door_0.screen_loc = ui_adminbus_door_0
mymob.adminbus_door_1 = new /obj/screen()
mymob.adminbus_door_1.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_door_1.icon_state = ""
mymob.adminbus_door_1.name = "Open Door"
mymob.adminbus_door_1.screen_loc = ui_adminbus_door_1
mymob.adminbus_roadlights_0 = new /obj/screen()
mymob.adminbus_roadlights_0.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_roadlights_0.icon_state = "icon_stickleft"
mymob.adminbus_roadlights_0.name = "Turn Off Headlights"
mymob.adminbus_roadlights_0.screen_loc = ui_adminbus_roadlights_0
mymob.adminbus_roadlights_1 = new /obj/screen()
mymob.adminbus_roadlights_1.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_roadlights_1.icon_state = ""
mymob.adminbus_roadlights_1.name = "Dipped Headlights"
mymob.adminbus_roadlights_1.screen_loc = ui_adminbus_roadlights_1
mymob.adminbus_roadlights_2 = new /obj/screen()
mymob.adminbus_roadlights_2.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_roadlights_2.icon_state = ""
mymob.adminbus_roadlights_2.name = "Main Headlights"
mymob.adminbus_roadlights_2.screen_loc = ui_adminbus_roadlights_2
mymob.adminbus_free = new /obj/screen()
mymob.adminbus_free.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_free.icon_state = "icon_free"
mymob.adminbus_free.name = "Release Passengers"
mymob.adminbus_free.screen_loc = ui_adminbus_free
mymob.adminbus_home = new /obj/screen()
mymob.adminbus_home.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_home.icon_state = "icon_home"
mymob.adminbus_home.name = "Send Passengers Back Home"
mymob.adminbus_home.screen_loc = ui_adminbus_home
mymob.adminbus_antag = new /obj/screen()
mymob.adminbus_antag.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_antag.icon_state = "icon_antag"
mymob.adminbus_antag.name = "Antag Madness!"
mymob.adminbus_antag.screen_loc = ui_adminbus_antag
mymob.adminbus_dellasers = new /obj/screen()
mymob.adminbus_dellasers.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_dellasers.icon_state = "icon_delgiven"
mymob.adminbus_dellasers.name = "Delete the given Infinite Laser Guns"
mymob.adminbus_dellasers.screen_loc = ui_adminbus_dellasers
mymob.adminbus_givelasers = new /obj/screen()
mymob.adminbus_givelasers.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_givelasers.icon_state = "icon_givelasers"
mymob.adminbus_givelasers.name = "Give Infinite Laser Guns to the Passengers"
mymob.adminbus_givelasers.screen_loc = ui_adminbus_givelasers
mymob.adminbus_delbombs = new /obj/screen()
mymob.adminbus_delbombs.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_delbombs.icon_state = "icon_delgiven"
mymob.adminbus_delbombs.name = "Delete the given Fuse-Bombs"
mymob.adminbus_delbombs.screen_loc = ui_adminbus_delbombs
mymob.adminbus_givebombs = new /obj/screen()
mymob.adminbus_givebombs.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_givebombs.icon_state = "icon_givebombs"
mymob.adminbus_givebombs.name = "Give Fuse-Bombs to the Passengers"
mymob.adminbus_givebombs.screen_loc = ui_adminbus_givebombs
mymob.adminbus_tdred = new /obj/screen()
mymob.adminbus_tdred.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_tdred.icon_state = "icon_tdred"
mymob.adminbus_tdred.name = "Send Passengers to the Thunderdome's Red Team"
mymob.adminbus_tdred.screen_loc = ui_adminbus_tdred
mymob.adminbus_tdarena = new /obj/screen()
mymob.adminbus_tdarena.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_tdarena.icon_state = "icon_tdarena"
mymob.adminbus_tdarena.name = "Split the Passengers between the two Thunderdome Teams"
mymob.adminbus_tdarena.screen_loc = ui_adminbus_tdarena
mymob.adminbus_tdgreen = new /obj/screen()
mymob.adminbus_tdgreen.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_tdgreen.icon_state = "icon_tdgreen"
mymob.adminbus_tdgreen.name = "Send Passengers to the Thunderdome's Green Team"
mymob.adminbus_tdgreen.screen_loc = ui_adminbus_tdgreen
mymob.adminbus_tdobs = new /obj/screen()
mymob.adminbus_tdobs.icon = 'icons/adminbus/32x32.dmi'
mymob.adminbus_tdobs.icon_state = "icon_tdobs"
mymob.adminbus_tdobs.name = "Send Passengers to the Thunderdome's Observers' Lodge"
mymob.adminbus_tdobs.screen_loc = ui_adminbus_tdobs
mymob.client.screen += list(
mymob.adminbus_bg,
mymob.adminbus_delete,
mymob.adminbus_delmobs,
mymob.adminbus_spclowns,
mymob.adminbus_spcarps,
mymob.adminbus_spbears,
mymob.adminbus_sptrees,
mymob.adminbus_spspiders,
mymob.adminbus_spalien,
mymob.adminbus_loadsids,
mymob.adminbus_loadsmoney,
mymob.adminbus_massrepair,
mymob.adminbus_massrejuv,
mymob.adminbus_hook,
mymob.adminbus_juke,
mymob.adminbus_tele,
mymob.adminbus_bumpers_1,
mymob.adminbus_bumpers_2,
mymob.adminbus_bumpers_3,
mymob.adminbus_door_0,
mymob.adminbus_door_1,
mymob.adminbus_roadlights_0,
mymob.adminbus_roadlights_1,
mymob.adminbus_roadlights_2,
mymob.adminbus_free,
mymob.adminbus_home,
mymob.adminbus_antag,
mymob.adminbus_dellasers,
mymob.adminbus_givelasers,
mymob.adminbus_delbombs,
mymob.adminbus_givebombs,
mymob.adminbus_tdred,
mymob.adminbus_tdarena,
mymob.adminbus_tdgreen,
mymob.adminbus_tdobs,
)
for(var/i=1;i<=16;i++)
var/obj/screen/S = new /obj/screen()
S.icon = 'icons/adminbus/32x32.dmi'
S.icon_state = ""
S.screen_loc = "[12-round(i/2)]:[16*((i-1)%2)],14:16"
mymob.rearviews[i] = S
for(var/i=1;i<=16;i++)
mymob.client.screen += mymob.rearviews[i]
/datum/hud/proc/remove_adminbus_hud()
for(var/i=1;i<=16;i++)
mymob.client.screen -= mymob.rearviews[i]
mymob.client.screen -= list(
mymob.adminbus_bg,
mymob.adminbus_delete,
mymob.adminbus_delmobs,
mymob.adminbus_spclowns,
mymob.adminbus_spcarps,
mymob.adminbus_spbears,
mymob.adminbus_sptrees,
mymob.adminbus_spspiders,
mymob.adminbus_spalien,
mymob.adminbus_loadsids,
mymob.adminbus_loadsmoney,
mymob.adminbus_massrepair,
mymob.adminbus_massrejuv,
mymob.adminbus_hook,
mymob.adminbus_juke,
mymob.adminbus_tele,
mymob.adminbus_bumpers_1,
mymob.adminbus_bumpers_2,
mymob.adminbus_bumpers_3,
mymob.adminbus_door_0,
mymob.adminbus_door_1,
mymob.adminbus_roadlights_0,
mymob.adminbus_roadlights_1,
mymob.adminbus_roadlights_2,
mymob.adminbus_free,
mymob.adminbus_home,
mymob.adminbus_antag,
mymob.adminbus_dellasers,
mymob.adminbus_givelasers,
mymob.adminbus_delbombs,
mymob.adminbus_givebombs,
mymob.adminbus_tdred,
mymob.adminbus_tdarena,
mymob.adminbus_tdgreen,
mymob.adminbus_tdobs,
)

View File

@@ -13,7 +13,7 @@
mymob.client.screen += list(mymob.visible)
/datum/hud/proc/corgi_hud(u)
/datum/hud/proc/corgi_hud()
mymob.fire = new /obj/screen()
mymob.fire.icon = 'icons/mob/screen1_corgi.dmi'
mymob.fire.icon_state = "fire0"

View File

@@ -663,6 +663,144 @@
C.harvesterharvest()
else
C << "<span class='warning'>The nullrod's power interferes with your own!</span>"
////////////ADMINBUS HUD ICONS////////////
if("Delete Bus")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.Adminbus_Deletion(usr)
if("Delete Mobs")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.remove_mobs(usr)
if("Spawn Clowns")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.spawn_clowns(usr)
if("Spawn Carps")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.spawn_carps(usr)
if("Spawn Bears")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.spawn_bears(usr)
if("Spawn Trees")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.spawn_trees(usr)
if("Spawn Spiders")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.spawn_spiders(usr)
if("Spawn Large Alien Queen")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.spawn_alien(usr)
if("Spawn Loads of Captain Spare IDs")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.Loadsa_Captains_Spares(usr)
if("Spawn Loads of Money")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.Loadsa_Money(usr)
if("Repair Surroundings")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.Mass_Repair(usr)
if("Mass Rejuvination")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.mass_rejuvinate(usr)
if("Singularity Hook")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.throw_hookshot(usr)
if("Adminbus-mounted Jukebox")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.Mounted_Jukebox(usr)
if("Teleportation")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.Teleportation(usr)
if("Release Passengers")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.release_passengers(usr)
if("Send Passengers Back Home")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.Send_Home(usr)
if("Antag Madness!")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.Make_Antag(usr)
if("Give Infinite Laser Guns to the Passengers")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.give_lasers(usr)
if("Delete the given Infinite Laser Guns")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.delete_lasers(usr)
if("Give Fuse-Bombs to the Passengers")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.give_bombs(usr)
if("Delete the given Fuse-Bombs")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.delete_bombs(usr)
if("Send Passengers to the Thunderdome's Red Team")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.Sendto_Thunderdome_Arena_Red(usr)
if("Split the Passengers between the two Thunderdome Teams")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.Sendto_Thunderdome_Arena(usr)
if("Send Passengers to the Thunderdome's Green Team")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.Sendto_Thunderdome_Arena_Green(usr)
if("Send Passengers to the Thunderdome's Observers' Lodge")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.Sendto_Thunderdome_Obs(usr)
if("Capture Mobs")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.toggle_bumpers(usr,1)
if("Hit Mobs")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.toggle_bumpers(usr,2)
if("Gib Mobs")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.toggle_bumpers(usr,3)
if("Close Door")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.toggle_door(usr,0)
if("Open Door")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.toggle_door(usr,1)
if("Turn Off Headlights")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.toggle_lights(usr,0)
if("Dipped Headlights")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.toggle_lights(usr,1)
if("Main Headlights")
if(usr.buckled && istype(usr.buckled, /obj/structure/stool/bed/chair/vehicle/adminbus))
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = usr.buckled
A.toggle_lights(usr,2)
else
return 0
return 1

View File

@@ -114,13 +114,8 @@ var/list/adminbusteleportlocs = list()
proc/process_adminbus_teleport_locs()
for(var/area/AR in world)
if(adminbusteleportlocs.Find(AR.name)) continue
if(istype(AR, /area/turret_protected/aisat) || istype(AR, /area/derelict) || istype(AR, /area/tdome))
adminbusteleportlocs += AR.name
adminbusteleportlocs[AR.name] = AR
var/turf/picked = pick(get_area_turfs(AR.type))
if (picked.z == 1 || picked.z == 5 || picked.z == 3)
adminbusteleportlocs += AR.name
adminbusteleportlocs[AR.name] = AR
adminbusteleportlocs += AR.name
adminbusteleportlocs[AR.name] = AR
var/not_in_order = 0
do

View File

@@ -233,7 +233,7 @@
access_heads_vault, access_mining_station, access_xenobiology, access_ce, access_hop, access_hos, access_RC_announce,
access_keycard_auth, access_tcomsat, access_gateway, /*vg paramedic*/, access_paramedic, access_mechanic, access_taxi,
access_cent_general, access_cent_thunder, access_cent_specops, access_cent_medical, access_cent_living, access_cent_storage, access_cent_teleporter, access_cent_creed, access_cent_captain,
access_syndicate,
access_syndicate, access_salvage_captain,
)
/proc/get_all_centcom_access()

View File

@@ -14,7 +14,7 @@
var/list/overlays_bus[4]//1=underlay 2=roadlights 3=ad 4=door
var/list/passengers[] = list()
var/unloading = 0
var/capture_mode = 1//1=capture mobs 2=roll over mobs(deals light brute damage and push them down) 3=gib mobs
var/bumpers = 1//1=capture mobs 2=roll over mobs(deals light brute damage and push them down) 3=gib mobs
var/door_mode = 0//0=closed door, players cannot climb or leave on their own 1=openned door, players can climb and leave on their own
var/spawned_mobs[] = list()//keeps track of every mobs spawned by the bus, so we can remove them all with the push of a button in needed
var/hook = 1
@@ -27,6 +27,7 @@
var/spawnedbombs[] = list()
var/spawnedlasers[] = list()
var/obj/structure/teleportwarp/warp = null
var/obj/machinery/media/jukebox/superjuke/adminbus/busjuke = null
/obj/structure/stool/bed/chair/vehicle/adminbus/New()
..()
@@ -47,6 +48,7 @@
lightsource = new/obj/structure/buslight(src.loc)
lightsource.x += 2
warp = new/obj/structure/teleportwarp(src.loc)
busjuke = new/obj/machinery/media/jukebox/superjuke/adminbus(src.loc)
/obj/structure/stool/bed/chair/vehicle/adminbus/update_mob()
if(buckled_mob)
@@ -149,6 +151,11 @@
handle_mob_bumping()
if(warp)
warp.loc = src.loc
if(busjuke)
busjuke.loc = src.loc
busjuke.dir = dir
if((busjuke.icon_state != null) && (busjuke.icon_state != ""))
busjuke.repack()
if(chain_base)
chain_base.move_child(T)
for(var/i=1;i<=passengers.len;i++)
@@ -180,7 +187,7 @@
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/handle_mob_bumping()
var/turf/S = get_turf(src)
switch(capture_mode)
switch(bumpers)
if(1)
for(var/mob/living/L in S)
if(L.isolated)
@@ -285,6 +292,7 @@
B.dir = src.dir
passengers += B
update_mob()
update_rearview()
/obj/structure/stool/bed/chair/vehicle/adminbus/buckle_mob(mob/M, mob/user)
if(M != user || !ismob(M) || get_dist(src, user) > 1 || user.restrained() || user.lying || user.stat || M.buckled || istype(user, /mob/living/silicon) || destroyed)
@@ -322,6 +330,7 @@
roadlights = 1
lightsource.SetLuminosity(2)
playsound(src, 'sound/machines/hiss.ogg', 50, 0, 0)
add_HUD(user)
return
@@ -359,6 +368,7 @@
/obj/structure/stool/bed/chair/vehicle/adminbus/unbuckle()
if(buckled_mob)
remove_HUD(buckled_mob)
buckled_mob.buckled = null
buckled_mob.anchored = initial(buckled_mob.anchored)
buckled_mob.update_canmove()
@@ -372,6 +382,35 @@
lightsource.SetLuminosity(0)
return
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/add_HUD(var/mob/M)
if(!M || !(M.hud_used)) return
M.hud_used.adminbus_hud()
update_rearview()
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/remove_HUD(var/mob/M)
if(!M || !(M.hud_used)) return
M.hud_used.remove_adminbus_hud()
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/update_rearview()
if(buckled_mob)
for(var/i=1;i<=16;i++)
buckled_mob.client.screen -= buckled_mob.rearviews[i]
var/obj/screen/S = buckled_mob.rearviews[i]
var/icon/img = null
var/atom/A = null
if(i<=passengers.len)
A = passengers[i]
if(!A)
S.icon = 'icons/adminbus/32x32.dmi'
S.icon_state = ""
else
img = getFlatIcon(A,SOUTH,0)
S.icon = img
buckled_mob.rearviews[i] = S
buckled_mob.client.screen += buckled_mob.rearviews[i]
/obj/structure/stool/bed/chair/vehicle/adminbus/emp_act(severity)
return
@@ -444,10 +483,14 @@
if(!dropped)
var/obj/machinery/singularity/S = locate(/obj/machinery/singularity) in src.loc
if(S)
if(abus.buckled_mob)
abus.buckled_mob.adminbus_hook.icon_state = "icon_singulo"
abus.capture_singulo(S)
forceMove(get_step_towards(src,abus))
max_distance++
if(max_distance >= 7)
if(abus.buckled_mob)
abus.buckled_mob.adminbus_hook.icon_state = "icon_hook"
abus.hook = 1
del(src)
return

View File

@@ -4,18 +4,14 @@
//RELEASE PASSENGERS
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/release_passengers()
set name = "Release Passengers"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/release_passengers(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
unloading = 1
flick("icon_free-push",bususer.adminbus_free)
for(var/i=passengers.len;i>0;i--)
var/atom/A = passengers[i]
@@ -37,6 +33,7 @@
B.isolated = 0
B.anchored = 0
passengers -= B
update_rearview()
sleep(3)
unloading = 0
@@ -62,20 +59,18 @@
L.update_canmove()
L << "<span class='notice'>Thank you for riding with the Adminbus, have a secure day.</span>"
passengers -= L
update_rearview()
//MOB SPAWNING
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/spawn_clowns()
set name = "Spawn Clowns"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/spawn_clowns(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
flick("icon_spclowns-push",bususer.adminbus_spclowns)
var/turflist[] = list()
for(var/turf/T in orange(src,1))
if((T.density == 0) && (T!=src.loc))
@@ -91,17 +86,14 @@
T.beamin("clown")
sleep(5)
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/spawn_carps()
set name = "Spawn Carps"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/spawn_carps(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
flick("icon_spcarps-push",bususer.adminbus_spcarps)
var/turflist[] = list()
for(var/turf/T in orange(src,1))
if((T.density == 0) && (T!=src.loc))
@@ -117,17 +109,14 @@
T.beamin("carp")
sleep(5)
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/spawn_bears()
set name = "Spawn Bears"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/spawn_bears(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
flick("icon_spbears-push",bususer.adminbus_spbears)
var/turflist[] = list()
for(var/turf/T in orange(src,1))
if((T.density == 0) && (T!=src.loc))
@@ -147,17 +136,14 @@
T.beamin("bear")
sleep(5)
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/spawn_trees()
set name = "Spawn Trees"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/spawn_trees(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
flick("icon_sptrees-push",bususer.adminbus_sptrees)
var/turflist[] = list()
for(var/turf/T in range(src,1))
if(((T.density == 0) && (T!=src.loc)) && (T!=src.loc))
@@ -173,17 +159,14 @@
T.beamin("tree")
sleep(5)
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/spawn_spiders()
set name = "Spawn Spiders"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/spawn_spiders(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
flick("icon_spspiders-push",bususer.adminbus_spspiders)
var/turflist[] = list()
for(var/turf/T in orange(src,1))
if((T.density == 0) && (T!=src.loc))
@@ -199,17 +182,14 @@
T.beamin("spider")
sleep(5)
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/spawn_alien()
set name = "Spawn Alien"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/spawn_alien(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
flick("icon_spalien-push",bususer.adminbus_spalien)
var/turflist[] = list()
for(var/turf/T in orange(src,1))
if((T.density == 0) && (T!=src.loc))
@@ -222,17 +202,14 @@
spawned_mobs += M
T.beamin("alien")
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/remove_mobs()
set name = "Remove Mobs"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/remove_mobs(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
flick("icon_delmobs-push",bususer.adminbus_delmobs)
for(var/mob/M in spawned_mobs)
var/turf/T = get_turf(M)
if(T)
@@ -268,52 +245,38 @@
chain += A //once the anchor has reached the singulo, it parents itself to the last element in the chain
A.target = singulo //and stays on top of the singulo.
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/throw_hookshot()
set name = "Throw Hookshot"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/throw_hookshot(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
if(!hook)
if(!hook && !singulo)
return
hook = 0
if(hook)
bususer.adminbus_hook.icon_state = "icon_hook-push"
hook = 0
var/obj/structure/hookshot/claw/C = new/obj/structure/hookshot/claw(get_step(src,src.dir)) //First we spawn the claw
hookshot += C
C.abus = src
var/obj/structure/hookshot/claw/C = new/obj/structure/hookshot/claw(get_step(src,src.dir)) //First we spawn the claw
hookshot += C
C.abus = src
var/obj/machinery/singularity/S = C.launchin(src.dir) //The claw moves forward, spawning hookshot-chains on its path
if(S)
capture_singulo(S) //If the claw hits a singulo, we remove the hookshot-chains and replace them with singulo-chains
else
for(var/obj/structure/hookshot/A in hookshot) //If it doesn't hit anything, all the elements of the chain come back toward the bus,
spawn()//so they all return at once //deleting themselves when they reach it.
A.returnin()
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/release_singulo()
set name = "Release Singulo"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
return
if(chain_base)
var/obj/machinery/singularity/S = C.launchin(src.dir) //The claw moves forward, spawning hookshot-chains on its path
if(S)
bususer.adminbus_hook.icon_state = "icon_singulo"
capture_singulo(S) //If the claw hits a singulo, we remove the hookshot-chains and replace them with singulo-chains
else
for(var/obj/structure/hookshot/A in hookshot) //If it doesn't hit anything, all the elements of the chain come back toward the bus,
spawn()//so they all return at once //deleting themselves when they reach it.
A.returnin()
else if(singulo)
bususer.adminbus_hook.icon_state = "icon_hook-push"
var/obj/structure/singulo_chain/anchor/A = locate(/obj/structure/singulo_chain/anchor) in chain
if(A)
del(A)//so we don't drag the singulo back to us along with the rest of the chain.
if(singulo)
singulo.on_release()
singulo = null
singulo.on_release()
singulo = null
while(chain_base)
var/obj/structure/singulo_chain/C = chain_base
C.move_child(get_turf(src))
@@ -325,75 +288,116 @@
del(N)
chain.len = 0
bususer.adminbus_hook.icon_state = "icon_hook"
hook = 1
/////////////////
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/mass_rejuvinate()
set name = "Mass Rejuvinate"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/mass_rejuvinate(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
flick("icon_massrejuv-push",bususer.adminbus_massrejuv)
for(var/mob/living/M in orange(src,3))
M.revive()
M << "<span class='notice'>THE ADMINBUS IS LOVE. THE ADMINBUS IS LIFE.</span>"
sleep(2)
update_rearview()
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/toggle_lights()
set name = "Toggle Roadlights"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/toggle_lights(mob/bususer as mob,var/lightpower=0)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
if(roadlights)
roadlights = 0
overlays -= overlays_bus[2]
lightsource.SetLuminosity(0)
else
roadlights = 1
overlays += overlays_bus[2]
lightsource.SetLuminosity(2)
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/toggle_door()
set name = "Toggle Door"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(lightpower == roadlights)
return
if(door_mode)
door_mode = 0
overlays -= overlays_bus[4]
else
door_mode = 1
overlays += overlays_bus[4]
switch(lightpower)
if(0)
bususer.adminbus_roadlights_0.icon_state = "icon_stickleft"
bususer.adminbus_roadlights_1.icon_state = ""
bususer.adminbus_roadlights_2.icon_state = ""
lightsource.SetLuminosity(0)
if(roadlights == 1 || roadlights == 2)
overlays -= overlays_bus[2]
roadlights = 0
if(1)
bususer.adminbus_roadlights_0.icon_state = ""
bususer.adminbus_roadlights_1.icon_state = "icon_stickcenter"
bususer.adminbus_roadlights_2.icon_state = ""
lightsource.SetLuminosity(2)
if(roadlights == 0)
overlays += overlays_bus[2]
roadlights = 1
if(2)
bususer.adminbus_roadlights_0.icon_state = ""
bususer.adminbus_roadlights_1.icon_state = ""
bususer.adminbus_roadlights_2.icon_state = "icon_stickright"
lightsource.SetLuminosity(3)
if(roadlights == 0)
overlays += overlays_bus[2]
roadlights = 2
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/Loadsa_Captains_Spares()
set name = "Loadsa Captains Spares"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/toggle_bumpers(mob/bususer as mob,var/bumperpower=1)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
if(bumperpower == bumpers)
return
switch(bumperpower)
if(1)
bususer.adminbus_bumpers_1.icon_state = "icon_stickleft"
bususer.adminbus_bumpers_2.icon_state = ""
bususer.adminbus_bumpers_3.icon_state = ""
bumpers = 1
if(2)
bususer.adminbus_bumpers_1.icon_state = ""
bususer.adminbus_bumpers_2.icon_state = "icon_stickcenter"
bususer.adminbus_bumpers_3.icon_state = ""
bumpers = 2
if(3)
bususer.adminbus_bumpers_1.icon_state = ""
bususer.adminbus_bumpers_2.icon_state = ""
bususer.adminbus_bumpers_3.icon_state = "icon_stickright"
bumpers = 3
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/toggle_door(mob/bususer as mob,var/doorstate=0)
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
if(doorstate == door_mode)
return
switch(doorstate)
if(0)
bususer.adminbus_door_0.icon_state = "icon_stickleft"
bususer.adminbus_door_1.icon_state = ""
door_mode = 0
overlays -= overlays_bus[4]
if(1)
bususer.adminbus_door_0.icon_state = ""
bususer.adminbus_door_1.icon_state = "icon_stickright"
door_mode = 1
overlays += overlays_bus[4]
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/Loadsa_Captains_Spares(mob/bususer as mob)
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
flick("icon_loadsids-push",bususer.adminbus_loadsids)
visible_message("<span class='notice'>All Access for Everyone!</span>")
var/joy_sound = list('sound/voice/SC4Mayor1.ogg','sound/voice/SC4Mayor2.ogg','sound/voice/SC4Mayor3.ogg')
playsound(src, pick(joy_sound), 50, 0, 0)
@@ -405,17 +409,14 @@
var/obj/item/weapon/card/id/captains_spare/S = new/obj/item/weapon/card/id/captains_spare(src.loc)
S.throw_at(pick(throwzone),rand(2,5),0)
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/Loadsa_Money()
set name = "Loadsa Money"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/Loadsa_Money(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
flick("icon_loadsmone-push",buckled_mob.adminbus_loadsmoney)
visible_message("<span class='notice'>Loads of Money!</span>")
var/joy_sound = list('sound/voice/SC4Mayor1.ogg','sound/voice/SC4Mayor2.ogg','sound/voice/SC4Mayor3.ogg')
playsound(src, pick(joy_sound), 50, 0, 0)
@@ -443,17 +444,14 @@
var/obj/item/C = new fuckingmoney(src.loc)
C.throw_at(pick(throwzone),rand(2,5),0)
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/give_bombs()
set name = "Give Bombs"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/give_bombs(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
flick("icon_givebombs-push",bususer.adminbus_givebombs)
var/distributed = 0
if(buckled_mob && iscarbon(buckled_mob))
@@ -485,21 +483,18 @@
distributed++
C.update_inv_l_hand()
usr << "[distributed] bombs distributed to passengers.</span>"
bususer << "[distributed] bombs distributed to passengers.</span>"
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/delete_bombs()
set name = "Delete Bombs"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/delete_bombs(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
flick("icon_delbombs-push",bususer.adminbus_delbombs)
if(spawnedbombs.len == 0)
usr << "No bombs to delete.</span>"
bususer << "No bombs to delete.</span>"
return
var/distributed = 0
@@ -511,20 +506,17 @@
distributed++
spawnedbombs -= spawnedbombs[i]
usr << "Deleted all [distributed] bombs.</span>"
bususer << "Deleted all [distributed] bombs.</span>"
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/give_lasers()
set name = "Give Laser Guns"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/give_lasers(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
flick("icon_givelasers-push",bususer.adminbus_givelasers)
var/distributed = 0
if(buckled_mob && iscarbon(buckled_mob))
@@ -557,21 +549,19 @@
distributed++
C.update_inv_l_hand()
usr << "[distributed] infinite laser guns distributed to passengers.</span>"
update_rearview()
bususer << "[distributed] infinite laser guns distributed to passengers.</span>"
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/delete_lasers()
set name = "Delete Laser Guns"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/delete_lasers(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
flick("icon_dellasers-push",bususer.adminbus_dellasers)
if(spawnedlasers.len == 0)
usr << "No laser guns to delete.</span>"
bususer << "No laser guns to delete.</span>"
return
var/distributed = 0
@@ -583,19 +573,17 @@
distributed++
spawnedlasers -= spawnedlasers[i]
usr << "Deleted all [distributed] laser guns.</span>"
update_rearview()
bususer << "Deleted all [distributed] laser guns.</span>"
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/Mass_Repair()
set name = "Mass Repair"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/Mass_Repair(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
flick("icon_massrepair-push",bususer.adminbus_massrepair)
visible_message("<span class='notice'>WE BUILD!</span>")
for(var/obj/machinery/M in range(src,3))
@@ -638,23 +626,23 @@
new/obj/item/stack/sheet/glass(S.loc)
del(S)
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/Teleportation()
set name = "Teleportation"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/Teleportation(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
if(warp.icon_state == "warp_activated")
return
bususer.adminbus_tele.icon_state = "icon_teleport-push"
warp.icon_state = "warp_activated"
var/A
A = input(usr, "Area to jump to", "Teleportation Warp", A) as null|anything in adminbusteleportlocs
A = input(bususer, "Area to jump to", "Teleportation Warp", A) as null|anything in adminbusteleportlocs
var/area/thearea = adminbusteleportlocs[A]
if(!thearea)
bususer.adminbus_tele.icon_state = "icon_teleport"
warp.icon_state = ""
return
@@ -664,35 +652,36 @@
L+=T
if(!L || !L.len)
usr << "No area available."
bususer << "No area available."
bususer.adminbus_tele.icon_state = "icon_teleport"
warp.icon_state = ""
return
var/turf/T1 = get_turf(src)
var/turf/T2 = pick(L)
bususer.adminbus_tele.icon_state = "icon_teleport"
warp.icon_state = ""
src.loc = T2
src.Move()
T1.busteleport()
T2.busteleport()
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/Sendto_Thunderdome_Obs()
set name = "Send Passengers to Thunderdome as Observers"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/Sendto_Thunderdome_Obs(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
if(passengers.len == 0)
usr << "<span class='warning'>There are no passengers to send.</span>"
flick("icon_tdobs-push",bususer.adminbus_tdobs)
bususer << "<span class='warning'>There are no passengers to send.</span>"
return
if(alert(usr, "Send all passengers to the thunderdome's spectating area?", "Adminbus", "Yes", "No") != "Yes")
bususer.adminbus_tdobs.icon_state = "icon_tdobs-push"
if(alert(bususer, "Send all passengers to the thunderdome's spectating area?", "Adminbus", "Yes", "No") != "Yes")
bususer.adminbus_tdobs.icon_state = "icon_tdobs"
return
bususer.adminbus_tdobs.icon_state = "icon_tdobs"
var/turf/T = get_turf(src)
if(T)
@@ -743,23 +732,22 @@
sleep(1)
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/Sendto_Thunderdome_Arena()//this one sends an equal number of fighter to each side.
set name = "Send Passengers to Thunderdome Arena"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/Sendto_Thunderdome_Arena(mob/bususer as mob)//this one sends an equal number of fighter to each side.
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
if(passengers.len == 0)
usr << "<span class='warning'>There are no passengers to send.</span>"
flick("icon_tdarena-push",bususer.adminbus_tdarena)
bususer << "<span class='warning'>There are no passengers to send.</span>"
return
if(alert(usr, "Split passengers between the two thunderdome teams?", "Adminbus", "Yes", "No") != "Yes")
bususer.adminbus_tdarena.icon_state = "icon_tdarena-push"
if(alert(bususer, "Split passengers between the two thunderdome teams?", "Adminbus", "Yes", "No") != "Yes")
bususer.adminbus_tdarena.icon_state = "icon_tdarena"
return
bususer.adminbus_tdarena.icon_state = "icon_tdarena"
var/turf/T = get_turf(src)
if(T)
@@ -776,25 +764,24 @@
green_team(A)
alternate = 1
usr << "The passengers' belongings were stored inside the Thunderdome's admin lodge."
bususer << "The passengers' belongings were stored inside the Thunderdome's admin lodge."
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/Sendto_Thunderdome_Arena_Green()
set name = "Send Passengers to Thunderdome Arena Green"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/Sendto_Thunderdome_Arena_Green(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
if(passengers.len == 0)
usr << "<span class='warning'>There are no passengers to send.</span>"
flick("icon_tdgreen-push",bususer.adminbus_tdgreen)
bususer << "<span class='warning'>There are no passengers to send.</span>"
return
if(alert(usr, "Send all passengers to the thunderdome's Green Team?", "Adminbus", "Yes", "No") != "Yes")
bususer.adminbus_tdgreen.icon_state = "icon_tdgreen-push"
if(alert(bususer, "Send all passengers to the thunderdome's Green Team?", "Adminbus", "Yes", "No") != "Yes")
bususer.adminbus_tdgreen.icon_state = "icon_tdgreen"
return
bususer.adminbus_tdgreen.icon_state = "icon_tdgreen"
var/turf/T = get_turf(src)
if(T)
@@ -804,25 +791,24 @@
var/atom/A = passengers[i]
green_team(A)
usr << "The passengers' belongings were stored inside the Thunderdome's admin lodge."
bususer << "The passengers' belongings were stored inside the Thunderdome's admin lodge."
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/Sendto_Thunderdome_Arena_Red()
set name = "Send Passengers to Thunderdome Arena Red"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/Sendto_Thunderdome_Arena_Red(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
if(passengers.len == 0)
usr << "<span class='warning'>There are no passengers to send.</span>"
flick("icon_tdred-push",bususer.adminbus_tdred)
bususer << "<span class='warning'>There are no passengers to send.</span>"
return
if(alert(usr, "Send all passengers to the thunderdome's Red Team?", "Adminbus", "Yes", "No") != "Yes")
bususer.adminbus_tdred.icon_state = "icon_tdred-push"
if(alert(bususer, "Send all passengers to the thunderdome's Red Team?", "Adminbus", "Yes", "No") != "Yes")
bususer.adminbus_tdred.icon_state = "icon_tdred"
return
bususer.adminbus_tdred.icon_state = "icon_tdred"
var/turf/T = get_turf(src)
if(T)
@@ -832,7 +818,7 @@
var/atom/A = passengers[i]
red_team(A)
usr << "The passengers' belongings were stored inside the Thunderdome's admin lodge."
bususer << "The passengers' belongings were stored inside the Thunderdome's admin lodge."
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/green_team(var/atom/A)
if(isliving(A))
@@ -1040,24 +1026,23 @@
icon_state = "belongings-red"
desc = "Items belonging to one of the Thunderdome contestants."
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/Send_Home()
set name = "Send Back Home"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/Send_Home(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
return
if(alert(usr, "Send all mobs among the passengers back where they first appeared? (Risky: This sends them back where their \"object\" was created. If they were cloned they will teleport back at genetics, If they had their species changed they'll spawn back where it happenned, etc...)", "Adminbus", "Yes", "No") != "Yes")
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
if(passengers.len == 0)
usr << "<span class='warning'>There are no passengers to send.</span>"
flick("icon_home-push",bususer.adminbus_home)
bususer << "<span class='warning'>There are no passengers to send.</span>"
return
bususer.adminbus_home.icon_state = "icon_home-push"
if(alert(bususer, "Send all mobs among the passengers back where they first appeared? (Risky: This sends them back where their \"object\" was created. If they were cloned they will teleport back at genetics, If they had their species changed they'll spawn back where it happenned, etc...)", "Adminbus", "Yes", "No") != "Yes")
bususer.adminbus_home.icon_state = "icon_home"
return
bususer.adminbus_home.icon_state = "icon_home"
var/turf/T1 = get_turf(src)
if(T1)
T1.beamin("")
@@ -1070,29 +1055,27 @@
if(T2)
T2.beamin("")
/obj/structure/stool/bed/chair/vehicle/adminbus/verb/Make_Antag()
set name = "Make all passengers antags after a delay"
set category = "Adminbus"
set src = view(0)
set popup_menu = 0
set hidden = 0
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/Make_Antag(mob/bususer as mob)
if(!(istype(usr,/mob/living/carbon/human/dummy) || istype(usr,/mob/living/simple_animal/corgi/Ian)))
usr << "Nice try."
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
if(passengers.len == 0)
usr << "<span class='warning'>There are no make antag.</span>"
flick("icon_antag-push",bususer.adminbus_antag)
bususer << "<span class='warning'>There are no passengers to make antag.</span>"
return
bususer.adminbus_antag.icon_state = "icon_antag-push"
var/list/delays = list("CANCEL", "No Delay", "10 seconds", "30 seconds", "1 minute", "5 minutes", "15 minutes")
var/delay = input("How much delay before the transformation occurs?", "Antag Madness") in delays
switch(delay)
if("CANCEL")
bususer.adminbus_antag.icon_state = "icon_antag"
return
if("No Delay")
bususer.adminbus_antag.icon_state = "icon_antag"
for(var/mob/M in passengers)
spawn()
M << "<span class='danger'>YOU JUST REMEMBERED SOMETHING IMPORTANT!</span>"
@@ -1118,6 +1101,7 @@
for(var/mob/M in passengers)
spawn()
Delay_Antag(M,9000)
bususer.adminbus_antag.icon_state = "icon_antag"
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/Delay_Antag(var/mob/M,var/delay=100)
if(!M.mind) return
@@ -1135,4 +1119,73 @@
sleep(20)
antag_madness_adminbus(M)
antag_madness_adminbus(M)
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/Mounted_Jukebox(mob/bususer as mob)
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
flick("icon_jukebox-push",bususer.adminbus_juke)
busjuke.attack_hand(bususer)
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/Adminbus_Deletion(mob/bususer as mob)//make sure to always use this proc when deleting an adminbus
if(!(istype(bususer,/mob/living/carbon/human/dummy) || istype(bususer,/mob/living/simple_animal/corgi/Ian)))
bususer << "Nice try."
return
bususer.adminbus_delete.icon_state = "icon_delete-push"
if(alert(bususer, "This will free all passengers, remove any spawned mobs/laserguns/bombs, [singulo ? "free the captured singularity" : ""], and remove all the entities associated with the bus(chains, roadlights, jukebox,...)<BR>Are you sure?", "Adminbus Deletion", "Yes", "No") != "Yes")
bususer.adminbus_delete.icon_state = "icon_delete"
return
for(var/i=passengers.len;i>0;i--)
var/atom/A = passengers[i]
if(isliving(A))
var/mob/living/L = A
freed(L)
else if(isbot(A))
var/obj/machinery/bot/B = A
switch(dir)
if(SOUTH)
B.x = x-1
if(WEST)
B.y = y+1
if(NORTH)
B.x = x+1
if(EAST)
B.y = y-1
B.turn_on()
B.isolated = 0
B.anchored = 0
passengers -= B
delete_bombs()
delete_lasers()
remove_mobs()
if(singulo)
singulo.on_release()
for(var/obj/structure/singulo_chain/N in chain)
del(N)
for(var/obj/structure/hookshot/H in hookshot)
del(H)
busjuke.disconnect_media_source()
del(busjuke)
del(warp)
lightsource.SetLuminosity(0)
del(lightsource)
var/turf/T = get_turf(src)
T.busteleport()
if(buckled_mob)
buckled_mob.hud_used.remove_adminbus_hud()
del(src)//RIP ADMINBUS

View File

@@ -2600,6 +2600,7 @@
feedback_add_details("admin_secrets_fun_used","AB")
var/obj/structure/stool/bed/chair/vehicle/adminbus/A = new /obj/structure/stool/bed/chair/vehicle/adminbus(get_turf(usr))
A.dir = EAST
A.busjuke.dir = EAST
message_admins("[key_name_admin(usr)] has spawned an Adminbus. Who gave him the keys?")
if("spawnselfdummy")
feedback_inc("admin_secrets_fun_used",1)

View File

@@ -18,29 +18,46 @@ client/proc/antag_madness(var/mob/M in mob_list)
usr << "<span class='warning'>Only humans and monkeys can become overpowered antags.</span>"
return
var/list/role_list = list("traitor", "changeling", "vampire", "cult", "rev", "nuke", "deathsquad", "wizard")//"monkey"
var/list/role_list = list("traitor", "changeling", "vampire", "cult", "rev", "nuke", "deathsquad", "wizard", "monkey")
var/got_a_job = 0
if(ismonkey(M))
role_list = list("cult", "monkey")
while(role_list.len > 0)
var/choice = pick(role_list)
if(create_madness(M,choice))
got_a_job = 1
break
else
role_list -= choice
var/list/input_list = list("RANDOM")
input_list += role_list
input_list += "CANCEL"
var/procedure = input("Choose antag type.", "Antag Madness") in input_list
if(!got_a_job)//aka: if the mob already is every single type of antag.
usr << "<span class='danger'>The mob is already every type of antag at once holy shit stop that.</span>"
if(procedure == "CANCEL")
return
else if(procedure == "RANDOM")
while(role_list.len > 0)
var/choice = pick(role_list)
if(create_madness(M,choice))
log_admin("[key_name(usr)] turned [key_name(M)] into an overpowered [choice]")
message_admins("[key_name_admin(usr)] turned [key_name_admin(M)]into an overpowered [choice]", 1)
got_a_job = 1
break
else
role_list -= choice
if(!got_a_job)//aka: the mob failed all the antag creation checks
usr << "<span class='danger'>The mob is already every type of antag at once holy shit stop that.</span>"
return
else
if(create_madness(M,procedure))
log_admin("[key_name(usr)] turned [key_name(M)] into an overpowered [procedure]")
message_admins("[key_name_admin(usr)] turned [key_name_admin(M)]into an overpowered [procedure]", 1)
else
usr << "<span class='danger'>The mob is already a [procedure].</span>"
return
var/turf/T = get_turf(M)
T.beamin("")
log_admin("[key_name(usr)] turned [key_name(M)] into an overpowered ")
message_admins("[key_name_admin(usr)] turned [key_name_admin(M)]into an overpowered", 1)
feedback_add_details("admin_verb","AM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/obj/structure/stool/bed/chair/vehicle/adminbus/proc/antag_madness_adminbus(var/mob/M)
@@ -158,6 +175,7 @@ client/proc/antag_madness(var/mob/M in mob_list)
M.equip_to_slot_or_del(new/obj/item/clothing/under/batmansuit, slot_w_uniform)
M.equip_to_slot_or_del(new/obj/item/weapon/storage/backpack/satchel, slot_back)
M.equip_to_slot_or_del(new/obj/item/clothing/shoes/jackboots, slot_shoes)
M.equip_to_slot_or_del(new/obj/item/clothing/gloves/batmangloves, slot_gloves)
M.equip_to_slot_or_del(new/obj/item/clothing/mask/gas/death_commando, slot_wear_mask)
M.equip_to_slot_or_del(new/obj/item/clothing/suit/hgpirate, slot_wear_suit)
M.equip_to_slot_or_del(new/obj/item/clothing/head/chaplain_hood, slot_head)
@@ -224,13 +242,16 @@ client/proc/antag_madness(var/mob/M in mob_list)
M.equip_to_slot_or_del(pack, slot_in_backpack)
M.equip_to_slot_or_del(T, slot_in_backpack)
M.equip_to_slot_or_del(A, slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/melee/cultblade, slot_r_hand)
else if(istype(M, /mob/living/carbon/monkey))
var/mob/living/carbon/monkey/K = M
var/obj/item/weapon/storage/backpack/cultpack/P = new/obj/item/weapon/storage/backpack/cultpack(K)
K.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/death_commando(K), slot_wear_mask)
K.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/cultpack(K), slot_back)
pack.loc = get_turf(K)
K.equip_to_slot_or_del(T, slot_r_hand)
K.equip_to_slot_or_del(A, slot_l_hand)
K.equip_to_slot_or_del(P, slot_back)
pack.loc = P
T.loc = P
A.loc = P
K.equip_to_slot_or_del(new /obj/item/weapon/melee/cultblade(K), slot_r_hand)
var/obj/item/clothing/monkeyclothes/cultrobes/JS = new /obj/item/clothing/monkeyclothes/cultrobes(K)
var/obj/item/clothing/head/culthood/alt/CH = new /obj/item/clothing/head/culthood/alt(K)
var/obj/item/clothing/monkeyclothes/olduniform = null

View File

@@ -531,6 +531,8 @@ var/global/loopModeNames=list(
desc = "The ultimate jukebox. Your brain begins to liquify from simply looking at it."
state_base = "superjuke"
icon_state = "superjuke"
change_cost = 0
playlist_id="bar"
@@ -543,7 +545,7 @@ var/global/loopModeNames=list(
"emagged" = "Syndie Mix",
"shuttle" = "Shuttle",
"endgame" = "Apocalypse"
"endgame" = "Apocalypse",
)
/obj/machinery/media/jukebox/superjuke/attackby(obj/item/W, mob/user)
@@ -576,4 +578,71 @@ var/global/loopModeNames=list(
// Send update to clients.
for(var/mob/M in mob_list)
if(M && M.client)
M.force_music(media_url,media_start_time,volume)
M.force_music(media_url,media_start_time,volume)
/obj/machinery/media/jukebox/superjuke/adminbus
name = "adminbus-mounted Jukebox"
desc = "It really doesn't get any better."
icon = 'icons/obj/bus.dmi'
icon_state = ""
l_color = "#000066"
luminosity = 0
layer = FLY_LAYER+1
pixel_x = -32
pixel_y = -32
var/datum/browser/popup = null
req_access = list()
playlist_id="endgame"
/obj/machinery/media/jukebox/superjuke/adminbus/New()
..()
return
/obj/machinery/media/jukebox/superjuke/adminbus/attack_hand(var/mob/user)
var/t = "<div class=\"navbar\">"
t += "<a href=\"?src=\ref[src];screen=[JUKEBOX_SCREEN_MAIN]\">Main</a>"
t += "</div>"
t += ScreenMain(user)
user.set_machine(src)
popup = new (user,"jukebox",name,420,700)
popup.set_content(t)
popup.set_title_image(user.browse_rsc_icon(icon, icon_state))
popup.open()
if(icon_state != "jukebox")
deploy()
/obj/machinery/media/jukebox/superjuke/adminbus/proc/deploy()
update_media_source()
icon_state = "jukebox"
SetLuminosity(4)
flick("deploying",src)
/obj/machinery/media/jukebox/superjuke/adminbus/proc/repack()
if(playing)
for(var/mob/M in range (src,1))
M << "<span class='notice'>The jukebox turns itself off to protect itself from any cahot induced damage.</span>"
if(popup)
popup.close()
playing = 0
SetLuminosity(0)
icon_state = ""
flick("repacking",src)
update_music()
disconnect_media_source()
update_icon()
/obj/machinery/media/jukebox/superjuke/adminbus/update_icon()
if(playing)
overlays += "beats"
else
overlays = 0
return
/obj/machinery/media/jukebox/superjuke/adminbus/ex_act(severity)
return
/obj/machinery/media/jukebox/superjuke/adminbus/cultify()
return

View File

@@ -52,8 +52,10 @@
var/area/A = get_area_master(src)
// Check if there's a media source already.
if(A.media_source && A.media_source!=src)
master_area=null
if(A.media_source && A.media_source!=src) //if it does, the new media source replaces it. basically, the last media source arrived gets played on top.
A.media_source.disconnect_media_source()//you can turn a media source off and on for it to come back on top.
A.media_source=src
master_area=A
return
// Update Media Source.
@@ -82,7 +84,6 @@
for(var/mob/M in mobs_in_area(A))
if(M && M.client)
M.update_music()
master_area=null
/obj/machinery/media/Move()
@@ -98,6 +99,7 @@
/obj/machinery/media/New()
..()
if(istype(src, /obj/machinery/media/jukebox/superjuke/adminbus)) return//ugly but necessary
update_media_source()
/obj/machinery/media/Destroy()

View File

@@ -54,6 +54,44 @@
var/image/narsimage = null
var/image/narglow = null
//Adminbus HUD stuff
var/list/rearviews[16]
var/obj/screen/adminbus_bg = null
var/obj/screen/adminbus_delete = null
var/obj/screen/adminbus_delmobs = null
var/obj/screen/adminbus_spclowns = null
var/obj/screen/adminbus_spcarps = null
var/obj/screen/adminbus_spbears = null
var/obj/screen/adminbus_sptrees = null
var/obj/screen/adminbus_spspiders = null
var/obj/screen/adminbus_spalien = null
var/obj/screen/adminbus_loadsids = null
var/obj/screen/adminbus_loadsmoney = null
var/obj/screen/adminbus_massrepair = null
var/obj/screen/adminbus_massrejuv = null
var/obj/screen/adminbus_hook = null
var/obj/screen/adminbus_juke = null
var/obj/screen/adminbus_tele = null
var/obj/screen/adminbus_bumpers_1 = null
var/obj/screen/adminbus_bumpers_2 = null
var/obj/screen/adminbus_bumpers_3 = null
var/obj/screen/adminbus_door_0 = null
var/obj/screen/adminbus_door_1 = null
var/obj/screen/adminbus_roadlights_0
var/obj/screen/adminbus_roadlights_1
var/obj/screen/adminbus_roadlights_2
var/obj/screen/adminbus_free = null
var/obj/screen/adminbus_home = null
var/obj/screen/adminbus_antag = null
var/obj/screen/adminbus_dellasers = null
var/obj/screen/adminbus_givelasers = null
var/obj/screen/adminbus_delbombs = null
var/obj/screen/adminbus_givebombs = null
var/obj/screen/adminbus_tdred = null
var/obj/screen/adminbus_tdarena = null
var/obj/screen/adminbus_tdgreen = null
var/obj/screen/adminbus_tdobs = null
/*A bunch of this stuff really needs to go under their own defines instead of being globally attached to mob.
A variable should only be globally attached to turfs/objects/whatever, when it is in fact needed as such.
The current method unnecessarily clusters up the variable list, especially for humans (although rearranging won't really clean it up a lot but the difference will be noticable for other mobs).

View File

@@ -11,6 +11,7 @@ var/global/list/uneatable = list(
/obj/structure/hookshot,
/obj/structure/buslight,
/obj/structure/teleportwarp,
/obj/machinery/media/jukebox/superjuke/adminbus,
)
/obj/machinery/singularity/

BIN
icons/adminbus/32x32.dmi Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 32 KiB