mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
Blob HUD (#9948)
* blob hud sprites * blob HUD * OOP is srs bsns * changelog 9948 * haha holy shit someone stop me * ghnazndjazhnfoizhioHNFAONHIOKZFNDZA
This commit is contained in:
@@ -194,3 +194,17 @@
|
||||
#define ui_adminbus_tdarena "2:4,13:26"
|
||||
#define ui_adminbus_tdgreen "3:6,13:26"
|
||||
#define ui_adminbus_tdobs "2:4,14:28"
|
||||
|
||||
//Blob HUD
|
||||
#define ui_blob_bg "1:0,1:0"
|
||||
#define ui_blob_powerbar "1:0,5:0"
|
||||
#define ui_blob_healthbar "15:14,5:0"
|
||||
#define ui_blob_spawnblob "1:18,5:5"
|
||||
#define ui_blob_spawnstrong "1:18,6:9"
|
||||
#define ui_blob_spawnresource "1:18,7:13"
|
||||
#define ui_blob_spawnfactory "1:18,8:17"
|
||||
#define ui_blob_spawnnode "1:18,9:21"
|
||||
#define ui_blob_spawncore "1:18,10:25"
|
||||
#define ui_blob_ping "14:24,11:21"
|
||||
#define ui_blob_rally "14:24,12:25"
|
||||
#define ui_blob_taunt "14:24,13:29"
|
||||
|
||||
@@ -1,210 +1,210 @@
|
||||
/datum/hud/proc/adminbus_hud()
|
||||
mymob.gui_icons.adminbus_bg = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_bg = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_bg.icon = 'icons/adminbus/fullscreen.dmi'
|
||||
mymob.gui_icons.adminbus_bg.icon_state = "HUD"
|
||||
mymob.gui_icons.adminbus_bg.name = "HUD"
|
||||
mymob.gui_icons.adminbus_bg.layer = 19
|
||||
mymob.gui_icons.adminbus_bg.screen_loc = ui_adminbus_bg
|
||||
|
||||
mymob.gui_icons.adminbus_delete = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_delete = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_delete.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_delete.icon_state = "icon_delete"
|
||||
mymob.gui_icons.adminbus_delete.name = "Delete Bus"
|
||||
mymob.gui_icons.adminbus_delete.screen_loc = ui_adminbus_delete
|
||||
|
||||
mymob.gui_icons.adminbus_delmobs = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_delmobs = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_delmobs.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_delmobs.icon_state = "icon_delmobs"
|
||||
mymob.gui_icons.adminbus_delmobs.name = "Delete Mobs"
|
||||
mymob.gui_icons.adminbus_delmobs.screen_loc = ui_adminbus_delmobs
|
||||
|
||||
mymob.gui_icons.adminbus_spclowns = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_spclowns = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_spclowns.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_spclowns.icon_state = "icon_spclown"
|
||||
mymob.gui_icons.adminbus_spclowns.name = "Spawn Clowns"
|
||||
mymob.gui_icons.adminbus_spclowns.screen_loc = ui_adminbus_spclowns
|
||||
|
||||
mymob.gui_icons.adminbus_spcarps = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_spcarps = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_spcarps.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_spcarps.icon_state = "icon_spcarp"
|
||||
mymob.gui_icons.adminbus_spcarps.name = "Spawn Carps"
|
||||
mymob.gui_icons.adminbus_spcarps.screen_loc = ui_adminbus_spcarps
|
||||
|
||||
mymob.gui_icons.adminbus_spbears = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_spbears = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_spbears.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_spbears.icon_state = "icon_spbear"
|
||||
mymob.gui_icons.adminbus_spbears.name = "Spawn Bears"
|
||||
mymob.gui_icons.adminbus_spbears.screen_loc = ui_adminbus_spbears
|
||||
|
||||
mymob.gui_icons.adminbus_sptrees = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_sptrees = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_sptrees.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_sptrees.icon_state = "icon_sptree"
|
||||
mymob.gui_icons.adminbus_sptrees.name = "Spawn Trees"
|
||||
mymob.gui_icons.adminbus_sptrees.screen_loc = ui_adminbus_sptrees
|
||||
|
||||
mymob.gui_icons.adminbus_spspiders = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_spspiders = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_spspiders.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_spspiders.icon_state = "icon_spspider"
|
||||
mymob.gui_icons.adminbus_spspiders.name = "Spawn Spiders"
|
||||
mymob.gui_icons.adminbus_spspiders.screen_loc = ui_adminbus_spspiders
|
||||
|
||||
mymob.gui_icons.adminbus_spalien = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_spalien = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_spalien.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_spalien.icon_state = "icon_spalien"
|
||||
mymob.gui_icons.adminbus_spalien.name = "Spawn Large Alien Queen"
|
||||
mymob.gui_icons.adminbus_spalien.screen_loc = ui_adminbus_spalien
|
||||
|
||||
mymob.gui_icons.adminbus_loadsids = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_loadsids = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_loadsids.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_loadsids.icon_state = "icon_loadsids"
|
||||
mymob.gui_icons.adminbus_loadsids.name = "Spawn Loads of Captain Spare IDs"
|
||||
mymob.gui_icons.adminbus_loadsids.screen_loc = ui_adminbus_loadsids
|
||||
|
||||
mymob.gui_icons.adminbus_loadsmoney = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_loadsmoney = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_loadsmoney.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_loadsmoney.icon_state = "icon_loadsmone"
|
||||
mymob.gui_icons.adminbus_loadsmoney.name = "Spawn Loads of Money"
|
||||
mymob.gui_icons.adminbus_loadsmoney.screen_loc = ui_adminbus_loadsmone
|
||||
|
||||
mymob.gui_icons.adminbus_massrepair = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_massrepair = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_massrepair.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_massrepair.icon_state = "icon_massrepair"
|
||||
mymob.gui_icons.adminbus_massrepair.name = "Repair Surroundings"
|
||||
mymob.gui_icons.adminbus_massrepair.screen_loc = ui_adminbus_massrepair
|
||||
|
||||
mymob.gui_icons.adminbus_massrejuv = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_massrejuv = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_massrejuv.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_massrejuv.icon_state = "icon_massrejuv"
|
||||
mymob.gui_icons.adminbus_massrejuv.name = "Mass Rejuvination"
|
||||
mymob.gui_icons.adminbus_massrejuv.screen_loc = ui_adminbus_massrejuv
|
||||
|
||||
mymob.gui_icons.adminbus_hook = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_hook = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_hook.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_hook.icon_state = "icon_hook"
|
||||
mymob.gui_icons.adminbus_hook.name = "Singularity Hook"
|
||||
mymob.gui_icons.adminbus_hook.screen_loc = ui_adminbus_hook
|
||||
|
||||
mymob.gui_icons.adminbus_juke = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_juke = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_juke.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_juke.icon_state = "icon_jukebox"
|
||||
mymob.gui_icons.adminbus_juke.name = "Adminbus-mounted Jukebox"
|
||||
mymob.gui_icons.adminbus_juke.screen_loc = ui_adminbus_juke
|
||||
|
||||
mymob.gui_icons.adminbus_tele = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_tele = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_tele.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_tele.icon_state = "icon_teleport"
|
||||
mymob.gui_icons.adminbus_tele.name = "Teleportation"
|
||||
mymob.gui_icons.adminbus_tele.screen_loc = ui_adminbus_tele
|
||||
|
||||
mymob.gui_icons.adminbus_bumpers_1 = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_bumpers_1 = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_bumpers_1.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_bumpers_1.icon_state = "icon_bumpers_1-on"
|
||||
mymob.gui_icons.adminbus_bumpers_1.name = "Capture Mobs"
|
||||
mymob.gui_icons.adminbus_bumpers_1.screen_loc = ui_adminbus_bumpers_1
|
||||
|
||||
mymob.gui_icons.adminbus_bumpers_2 = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_bumpers_2 = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_bumpers_2.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_bumpers_2.icon_state = "icon_bumpers_2-off"
|
||||
mymob.gui_icons.adminbus_bumpers_2.name = "Hit Mobs"
|
||||
mymob.gui_icons.adminbus_bumpers_2.screen_loc = ui_adminbus_bumpers_2
|
||||
|
||||
mymob.gui_icons.adminbus_bumpers_3 = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_bumpers_3 = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_bumpers_3.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_bumpers_3.icon_state = "icon_bumpers_3-off"
|
||||
mymob.gui_icons.adminbus_bumpers_3.name = "Gib Mobs"
|
||||
mymob.gui_icons.adminbus_bumpers_3.screen_loc = ui_adminbus_bumpers_3
|
||||
|
||||
mymob.gui_icons.adminbus_door_0 = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_door_0 = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_door_0.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_door_0.icon_state = "icon_door_0-on"
|
||||
mymob.gui_icons.adminbus_door_0.name = "Close Door"
|
||||
mymob.gui_icons.adminbus_door_0.screen_loc = ui_adminbus_door_0
|
||||
|
||||
mymob.gui_icons.adminbus_door_1 = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_door_1 = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_door_1.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_door_1.icon_state = "icon_door_1-off"
|
||||
mymob.gui_icons.adminbus_door_1.name = "Open Door"
|
||||
mymob.gui_icons.adminbus_door_1.screen_loc = ui_adminbus_door_1
|
||||
|
||||
mymob.gui_icons.adminbus_roadlights_0 = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_roadlights_0 = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_roadlights_0.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_roadlights_0.icon_state = "icon_lights_0-on"
|
||||
mymob.gui_icons.adminbus_roadlights_0.name = "Turn Off Headlights"
|
||||
mymob.gui_icons.adminbus_roadlights_0.screen_loc = ui_adminbus_roadlights_0
|
||||
|
||||
mymob.gui_icons.adminbus_roadlights_1 = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_roadlights_1 = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_roadlights_1.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_roadlights_1.icon_state = "icon_lights_1-off"
|
||||
mymob.gui_icons.adminbus_roadlights_1.name = "Dipped Headlights"
|
||||
mymob.gui_icons.adminbus_roadlights_1.screen_loc = ui_adminbus_roadlights_1
|
||||
|
||||
mymob.gui_icons.adminbus_roadlights_2 = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_roadlights_2 = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_roadlights_2.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_roadlights_2.icon_state = "icon_lights_2-off"
|
||||
mymob.gui_icons.adminbus_roadlights_2.name = "Main Headlights"
|
||||
mymob.gui_icons.adminbus_roadlights_2.screen_loc = ui_adminbus_roadlights_2
|
||||
|
||||
mymob.gui_icons.adminbus_free = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_free = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_free.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_free.icon_state = "icon_free"
|
||||
mymob.gui_icons.adminbus_free.name = "Release Passengers"
|
||||
mymob.gui_icons.adminbus_free.screen_loc = ui_adminbus_free
|
||||
|
||||
mymob.gui_icons.adminbus_home = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_home = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_home.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_home.icon_state = "icon_home"
|
||||
mymob.gui_icons.adminbus_home.name = "Send Passengers Back Home"
|
||||
mymob.gui_icons.adminbus_home.screen_loc = ui_adminbus_home
|
||||
|
||||
mymob.gui_icons.adminbus_antag = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_antag = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_antag.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_antag.icon_state = "icon_antag"
|
||||
mymob.gui_icons.adminbus_antag.name = "Antag Madness!"
|
||||
mymob.gui_icons.adminbus_antag.screen_loc = ui_adminbus_antag
|
||||
|
||||
mymob.gui_icons.adminbus_dellasers = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_dellasers = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_dellasers.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_dellasers.icon_state = "icon_delgiven"
|
||||
mymob.gui_icons.adminbus_dellasers.name = "Delete the given Infinite Laser Guns"
|
||||
mymob.gui_icons.adminbus_dellasers.screen_loc = ui_adminbus_dellasers
|
||||
|
||||
mymob.gui_icons.adminbus_givelasers = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_givelasers = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_givelasers.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_givelasers.icon_state = "icon_givelasers"
|
||||
mymob.gui_icons.adminbus_givelasers.name = "Give Infinite Laser Guns to the Passengers"
|
||||
mymob.gui_icons.adminbus_givelasers.screen_loc = ui_adminbus_givelasers
|
||||
|
||||
mymob.gui_icons.adminbus_delbombs = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_delbombs = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_delbombs.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_delbombs.icon_state = "icon_delgiven"
|
||||
mymob.gui_icons.adminbus_delbombs.name = "Delete the given Fuse-Bombs"
|
||||
mymob.gui_icons.adminbus_delbombs.screen_loc = ui_adminbus_delbombs
|
||||
|
||||
mymob.gui_icons.adminbus_givebombs = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_givebombs = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_givebombs.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_givebombs.icon_state = "icon_givebombs"
|
||||
mymob.gui_icons.adminbus_givebombs.name = "Give Fuse-Bombs to the Passengers"
|
||||
mymob.gui_icons.adminbus_givebombs.screen_loc = ui_adminbus_givebombs
|
||||
|
||||
mymob.gui_icons.adminbus_tdred = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_tdred = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_tdred.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_tdred.icon_state = "icon_tdred"
|
||||
mymob.gui_icons.adminbus_tdred.name = "Send Passengers to the Thunderdome's Red Team"
|
||||
mymob.gui_icons.adminbus_tdred.screen_loc = ui_adminbus_tdred
|
||||
|
||||
mymob.gui_icons.adminbus_tdarena = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_tdarena = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_tdarena.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_tdarena.icon_state = "icon_tdarena"
|
||||
mymob.gui_icons.adminbus_tdarena.name = "Split the Passengers between the two Thunderdome Teams"
|
||||
mymob.gui_icons.adminbus_tdarena.screen_loc = ui_adminbus_tdarena
|
||||
|
||||
mymob.gui_icons.adminbus_tdgreen = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_tdgreen = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_tdgreen.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_tdgreen.icon_state = "icon_tdgreen"
|
||||
mymob.gui_icons.adminbus_tdgreen.name = "Send Passengers to the Thunderdome's Green Team"
|
||||
mymob.gui_icons.adminbus_tdgreen.screen_loc = ui_adminbus_tdgreen
|
||||
|
||||
mymob.gui_icons.adminbus_tdobs = getFromPool(/obj/screen)
|
||||
mymob.gui_icons.adminbus_tdobs = getFromPool(/obj/screen/adminbus)
|
||||
mymob.gui_icons.adminbus_tdobs.icon = 'icons/adminbus/32x32.dmi'
|
||||
mymob.gui_icons.adminbus_tdobs.icon_state = "icon_tdobs"
|
||||
mymob.gui_icons.adminbus_tdobs.name = "Send Passengers to the Thunderdome's Observers' Lodge"
|
||||
@@ -249,7 +249,7 @@
|
||||
)
|
||||
|
||||
for(var/i=1;i<=16;i++)
|
||||
var/obj/screen/S = getFromPool(/obj/screen)
|
||||
var/obj/screen/adminbus/S = getFromPool(/obj/screen/adminbus)
|
||||
S.icon = 'icons/adminbus/32x32.dmi'
|
||||
S.icon_state = ""
|
||||
S.screen_loc = "[12-round(i/2)]:[16*((i-1)%2)],14:16"
|
||||
|
||||
157
code/_onclick/hud/blob.dm
Normal file
157
code/_onclick/hud/blob.dm
Normal file
@@ -0,0 +1,157 @@
|
||||
|
||||
/datum/hud/proc/blob_hud()
|
||||
mymob.gui_icons.blob_bgs = getFromPool(/obj/screen/specialblob)
|
||||
mymob.gui_icons.blob_bgs.icon = 'icons/mob/screen1_blob_fullscreen.dmi'
|
||||
mymob.gui_icons.blob_bgs.icon_state = "backgrounds"
|
||||
mymob.gui_icons.blob_bgs.name = "Blob HUD"
|
||||
mymob.gui_icons.blob_bgs.layer = 19
|
||||
mymob.gui_icons.blob_bgs.screen_loc = ui_blob_bg
|
||||
mymob.gui_icons.blob_bgs.mouse_opacity = 0
|
||||
|
||||
mymob.gui_icons.blob_coverLEFT = getFromPool(/obj/screen/specialblob)
|
||||
mymob.gui_icons.blob_coverLEFT.icon = 'icons/mob/screen1_blob_fullscreen.dmi'
|
||||
mymob.gui_icons.blob_coverLEFT.icon_state = "coverLEFT"
|
||||
mymob.gui_icons.blob_coverLEFT.name = "Points"
|
||||
mymob.gui_icons.blob_coverLEFT.layer = 21
|
||||
mymob.gui_icons.blob_coverLEFT.screen_loc = ui_blob_bg
|
||||
mymob.gui_icons.blob_coverLEFT.maptext_x = 1
|
||||
mymob.gui_icons.blob_coverLEFT.maptext_y = 126
|
||||
|
||||
mymob.gui_icons.blob_coverRIGHT = getFromPool(/obj/screen/specialblob)
|
||||
mymob.gui_icons.blob_coverRIGHT.icon = 'icons/mob/screen1_blob_fullscreen.dmi'
|
||||
mymob.gui_icons.blob_coverRIGHT.icon_state = "coverRIGHT"
|
||||
mymob.gui_icons.blob_coverRIGHT.name = "Health"
|
||||
mymob.gui_icons.blob_coverRIGHT.layer = 21
|
||||
mymob.gui_icons.blob_coverRIGHT.screen_loc = ui_blob_bg
|
||||
mymob.gui_icons.blob_coverRIGHT.maptext_x = 464
|
||||
mymob.gui_icons.blob_coverRIGHT.maptext_y = 126
|
||||
|
||||
mymob.gui_icons.blob_powerbar = getFromPool(/obj/screen/specialblob)
|
||||
mymob.gui_icons.blob_powerbar.icon = 'icons/mob/screen1_blob_bars.dmi'
|
||||
mymob.gui_icons.blob_powerbar.icon_state = "points"
|
||||
mymob.gui_icons.blob_powerbar.name = "Points"
|
||||
mymob.gui_icons.blob_powerbar.layer = 20
|
||||
mymob.gui_icons.blob_powerbar.screen_loc = ui_blob_powerbar
|
||||
|
||||
mymob.gui_icons.blob_healthbar = getFromPool(/obj/screen/specialblob)
|
||||
mymob.gui_icons.blob_healthbar.icon = 'icons/mob/screen1_blob_bars.dmi'
|
||||
mymob.gui_icons.blob_healthbar.icon_state = "health"
|
||||
mymob.gui_icons.blob_healthbar.name = "Health"
|
||||
mymob.gui_icons.blob_healthbar.layer = 20
|
||||
mymob.gui_icons.blob_healthbar.screen_loc = ui_blob_healthbar
|
||||
|
||||
mymob.gui_icons.blob_spawnblob = getFromPool(/obj/screen/specialblob)
|
||||
mymob.gui_icons.blob_spawnblob.icon = 'icons/mob/screen1_blob.dmi'
|
||||
mymob.gui_icons.blob_spawnblob.icon_state = "blob1"
|
||||
mymob.gui_icons.blob_spawnblob.name = "Spawn Blob"
|
||||
mymob.gui_icons.blob_spawnblob.layer = 22
|
||||
mymob.gui_icons.blob_spawnblob.screen_loc = ui_blob_spawnblob
|
||||
|
||||
mymob.gui_icons.blob_spawnstrong = getFromPool(/obj/screen/specialblob)
|
||||
mymob.gui_icons.blob_spawnstrong.icon = 'icons/mob/screen1_blob.dmi'
|
||||
mymob.gui_icons.blob_spawnstrong.icon_state = "strong1"
|
||||
mymob.gui_icons.blob_spawnstrong.name = "Spawn Strong Blob"
|
||||
mymob.gui_icons.blob_spawnstrong.layer = 22
|
||||
mymob.gui_icons.blob_spawnstrong.screen_loc = ui_blob_spawnstrong
|
||||
|
||||
mymob.gui_icons.blob_spawnresource = getFromPool(/obj/screen/specialblob)
|
||||
mymob.gui_icons.blob_spawnresource.icon = 'icons/mob/screen1_blob.dmi'
|
||||
mymob.gui_icons.blob_spawnresource.icon_state = "resource1"
|
||||
mymob.gui_icons.blob_spawnresource.name = "Spawn Resource Blob"
|
||||
mymob.gui_icons.blob_spawnresource.layer = 22
|
||||
mymob.gui_icons.blob_spawnresource.screen_loc = ui_blob_spawnresource
|
||||
|
||||
mymob.gui_icons.blob_spawnfactory = getFromPool(/obj/screen/specialblob)
|
||||
mymob.gui_icons.blob_spawnfactory.icon = 'icons/mob/screen1_blob.dmi'
|
||||
mymob.gui_icons.blob_spawnfactory.icon_state = "factory1"
|
||||
mymob.gui_icons.blob_spawnfactory.name = "Spawn Factory Blob"
|
||||
mymob.gui_icons.blob_spawnfactory.layer = 22
|
||||
mymob.gui_icons.blob_spawnfactory.screen_loc = ui_blob_spawnfactory
|
||||
|
||||
mymob.gui_icons.blob_spawnnode = getFromPool(/obj/screen/specialblob)
|
||||
mymob.gui_icons.blob_spawnnode.icon = 'icons/mob/screen1_blob.dmi'
|
||||
mymob.gui_icons.blob_spawnnode.icon_state = "node1"
|
||||
mymob.gui_icons.blob_spawnnode.name = "Spawn Node Blob"
|
||||
mymob.gui_icons.blob_spawnnode.layer = 22
|
||||
mymob.gui_icons.blob_spawnnode.screen_loc = ui_blob_spawnnode
|
||||
|
||||
mymob.gui_icons.blob_spawncore = getFromPool(/obj/screen/specialblob)
|
||||
mymob.gui_icons.blob_spawncore.icon = 'icons/mob/screen1_blob.dmi'
|
||||
mymob.gui_icons.blob_spawncore.icon_state = "core1"
|
||||
mymob.gui_icons.blob_spawncore.name = "Spawn Blob Core"
|
||||
mymob.gui_icons.blob_spawncore.layer = 22
|
||||
mymob.gui_icons.blob_spawncore.screen_loc = ui_blob_spawncore
|
||||
|
||||
mymob.gui_icons.blob_ping = getFromPool(/obj/screen/specialblob)
|
||||
mymob.gui_icons.blob_ping.icon = 'icons/mob/screen1_blob.dmi'
|
||||
mymob.gui_icons.blob_ping.icon_state = "ping"
|
||||
mymob.gui_icons.blob_ping.name = "Call Overminds"
|
||||
mymob.gui_icons.blob_ping.layer = 22
|
||||
mymob.gui_icons.blob_ping.screen_loc = ui_blob_ping
|
||||
|
||||
mymob.gui_icons.blob_rally = getFromPool(/obj/screen/specialblob)
|
||||
mymob.gui_icons.blob_rally.icon = 'icons/mob/screen1_blob.dmi'
|
||||
mymob.gui_icons.blob_rally.icon_state = "rally"
|
||||
mymob.gui_icons.blob_rally.name = "Rally Spores"
|
||||
mymob.gui_icons.blob_rally.layer = 22
|
||||
mymob.gui_icons.blob_rally.screen_loc = ui_blob_rally
|
||||
|
||||
mymob.gui_icons.blob_taunt = getFromPool(/obj/screen/specialblob)
|
||||
mymob.gui_icons.blob_taunt.icon = 'icons/mob/screen1_blob.dmi'
|
||||
mymob.gui_icons.blob_taunt.icon_state = "taunt"
|
||||
mymob.gui_icons.blob_taunt.name = "Psionic Message"
|
||||
mymob.gui_icons.blob_taunt.layer = 22
|
||||
mymob.gui_icons.blob_taunt.screen_loc = ui_blob_taunt
|
||||
|
||||
mymob.client.reset_screen()
|
||||
|
||||
mymob.client.screen += list(
|
||||
mymob.gui_icons.blob_bgs,
|
||||
mymob.gui_icons.blob_coverLEFT,
|
||||
mymob.gui_icons.blob_coverRIGHT,
|
||||
mymob.gui_icons.blob_powerbar,
|
||||
mymob.gui_icons.blob_healthbar,
|
||||
mymob.gui_icons.blob_spawnblob,
|
||||
mymob.gui_icons.blob_spawnstrong,
|
||||
mymob.gui_icons.blob_spawnresource,
|
||||
mymob.gui_icons.blob_spawnfactory,
|
||||
mymob.gui_icons.blob_spawnnode,
|
||||
mymob.gui_icons.blob_spawncore,
|
||||
mymob.gui_icons.blob_ping,
|
||||
mymob.gui_icons.blob_rally,
|
||||
mymob.gui_icons.blob_taunt,
|
||||
)
|
||||
|
||||
for(var/i=1;i<=24;i++)
|
||||
var/obj/screen/specialblob/S = getFromPool(/obj/screen/specialblob)
|
||||
S.icon = 'icons/mob/screen1_blob.dmi'
|
||||
S.icon_state = ""
|
||||
var/total_offset = -16 + (i * 20)
|
||||
S.screen_loc = "[1 + round(total_offset/32)]:[total_offset%32],15:0"
|
||||
mymob.gui_icons.specialblobs[i] = S
|
||||
|
||||
for(var/i=1;i<=24;i++)
|
||||
mymob.client.screen += mymob.gui_icons.specialblobs[i]
|
||||
|
||||
/*
|
||||
/datum/hud/proc/remove_blob_hud()
|
||||
for(var/i=1;i<=24;i++)
|
||||
mymob.client.screen -= mymob.gui_icons.specialblobs[i]
|
||||
|
||||
mymob.client.screen -= list(
|
||||
mymob.gui_icons.blob_bgs,
|
||||
mymob.gui_icons.blob_coverLEFT,
|
||||
mymob.gui_icons.blob_coverRIGHT,
|
||||
mymob.gui_icons.blob_powerbar,
|
||||
mymob.gui_icons.blob_healthbar,
|
||||
mymob.gui_icons.blob_spawnblob,
|
||||
mymob.gui_icons.blob_spawnstrong,
|
||||
mymob.gui_icons.blob_spawnresource,
|
||||
mymob.gui_icons.blob_spawnfactory,
|
||||
mymob.gui_icons.blob_spawnnode,
|
||||
mymob.gui_icons.blob_spawncore,
|
||||
mymob.gui_icons.blob_ping,
|
||||
mymob.gui_icons.blob_rally,
|
||||
mymob.gui_icons.blob_taunt,
|
||||
)
|
||||
*/
|
||||
@@ -19,8 +19,6 @@ var/global/obj/screen/clicker/catcher = new()
|
||||
var/hotkey_ui_hidden = 0 //This is to hide the buttons that can be used via hotkeys. (hotkeybuttons list of buttons)
|
||||
|
||||
var/obj/screen/lingchemdisplay
|
||||
var/obj/screen/blobpwrdisplay
|
||||
var/obj/screen/blobhealthdisplay
|
||||
var/obj/screen/vampire_blood_display // /vg/
|
||||
var/obj/screen/r_hand_hud_object
|
||||
var/obj/screen/l_hand_hud_object
|
||||
@@ -45,8 +43,6 @@ var/global/obj/screen/clicker/catcher = new()
|
||||
disarm_intent = null
|
||||
help_intent = null
|
||||
lingchemdisplay = null
|
||||
blobpwrdisplay = null
|
||||
blobhealthdisplay = null
|
||||
vampire_blood_display = null
|
||||
r_hand_hud_object = null
|
||||
l_hand_hud_object = null
|
||||
@@ -146,8 +142,6 @@ var/global/obj/screen/clicker/catcher = new()
|
||||
robot_hud()
|
||||
else if(isobserver(mymob))
|
||||
ghost_hud()
|
||||
else if(isovermind(mymob))
|
||||
blob_hud()
|
||||
else if(isshade(mymob))
|
||||
shade_hud()
|
||||
else if(isconstruct(mymob))
|
||||
|
||||
@@ -64,25 +64,6 @@
|
||||
|
||||
/datum/hud/proc/brain_hud(ui_style = 'icons/mob/screen1_Midnight.dmi')
|
||||
|
||||
/datum/hud/proc/blob_hud(ui_style = 'icons/mob/screen1_Midnight.dmi')
|
||||
|
||||
|
||||
blobpwrdisplay = getFromPool(/obj/screen)
|
||||
blobpwrdisplay.name = "blob power"
|
||||
blobpwrdisplay.icon_state = "block"
|
||||
blobpwrdisplay.screen_loc = ui_health
|
||||
blobpwrdisplay.layer = 20
|
||||
|
||||
blobhealthdisplay = getFromPool(/obj/screen)
|
||||
blobhealthdisplay.name = "blob health"
|
||||
blobhealthdisplay.icon_state = "block"
|
||||
blobhealthdisplay.screen_loc = ui_internal
|
||||
blobhealthdisplay.layer = 20
|
||||
|
||||
mymob.client.reset_screen()
|
||||
|
||||
mymob.client.screen += list(blobpwrdisplay, blobhealthdisplay)
|
||||
|
||||
/datum/hud/proc/shade_hud()
|
||||
|
||||
|
||||
|
||||
@@ -28,6 +28,11 @@
|
||||
maptext_height = 480
|
||||
maptext_width = 480
|
||||
|
||||
/obj/screen/adminbus
|
||||
|
||||
/obj/screen/specialblob
|
||||
var/obj/effect/blob/linked_blob = null
|
||||
|
||||
/obj/screen/schematics
|
||||
var/datum/rcd_schematic/ourschematic
|
||||
|
||||
@@ -666,8 +671,12 @@
|
||||
M.wearglasses(null)
|
||||
else if (istype(M.get_active_hand(), /obj/item/clothing/glasses))
|
||||
M.wearglasses(M.get_active_hand())
|
||||
else
|
||||
return 0
|
||||
return 1
|
||||
|
||||
////////////ADMINBUS HUD ICONS////////////
|
||||
/obj/screen/adminbus/Click()
|
||||
switch(name)
|
||||
if("Delete Bus")
|
||||
if(usr.locked_to && istype(usr.locked_to, /obj/structure/bed/chair/vehicle/adminbus))
|
||||
var/obj/structure/bed/chair/vehicle/adminbus/A = usr.locked_to
|
||||
@@ -804,8 +813,51 @@
|
||||
if(usr.locked_to && istype(usr.locked_to, /obj/structure/bed/chair/vehicle/adminbus))
|
||||
var/obj/structure/bed/chair/vehicle/adminbus/A = usr.locked_to
|
||||
A.toggle_lights(usr,2)
|
||||
else
|
||||
return 0
|
||||
|
||||
/obj/screen/specialblob/Click()
|
||||
switch(name)
|
||||
if("Spawn Blob")
|
||||
if(isovermind(usr))
|
||||
var/mob/camera/blob/overmind = usr
|
||||
overmind.expand_blob_power()
|
||||
if("Spawn Strong Blob")
|
||||
if(isovermind(usr))
|
||||
var/mob/camera/blob/overmind = usr
|
||||
overmind.create_shield_power()
|
||||
if("Spawn Resource Blob")
|
||||
if(isovermind(usr))
|
||||
var/mob/camera/blob/overmind = usr
|
||||
overmind.create_resource()
|
||||
if("Spawn Factory Blob")
|
||||
if(isovermind(usr))
|
||||
var/mob/camera/blob/overmind = usr
|
||||
overmind.create_factory()
|
||||
if("Spawn Node Blob")
|
||||
if(isovermind(usr))
|
||||
var/mob/camera/blob/overmind = usr
|
||||
overmind.create_node()
|
||||
if("Spawn Blob Core")
|
||||
if(isovermind(usr))
|
||||
var/mob/camera/blob/overmind = usr
|
||||
overmind.create_core()
|
||||
if("Call Overminds")
|
||||
if(isovermind(usr))
|
||||
var/mob/camera/blob/overmind = usr
|
||||
overmind.callblobs()
|
||||
if("Rally Spores")
|
||||
if(isovermind(usr))
|
||||
var/mob/camera/blob/overmind = usr
|
||||
overmind.rally_spores_power()
|
||||
if("Psionic Message")
|
||||
if(isovermind(usr))
|
||||
var/mob/camera/blob/overmind = usr
|
||||
var/message = input(overmind,"Send a message to the crew.","Psionic Message") as null|text
|
||||
if(message)
|
||||
overmind.telepathy(message)
|
||||
if("Jump to Blob")
|
||||
if(isovermind(usr) && linked_blob)
|
||||
var/mob/camera/blob/overmind = usr
|
||||
overmind.loc = linked_blob.loc
|
||||
return 1
|
||||
|
||||
/obj/screen/inventory/Click()
|
||||
|
||||
@@ -3,38 +3,55 @@
|
||||
|
||||
//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
|
||||
var/obj/screen/adminbus/adminbus_bg = null
|
||||
var/obj/screen/adminbus/adminbus_delete = null
|
||||
var/obj/screen/adminbus/adminbus_delmobs = null
|
||||
var/obj/screen/adminbus/adminbus_spclowns = null
|
||||
var/obj/screen/adminbus/adminbus_spcarps = null
|
||||
var/obj/screen/adminbus/adminbus_spbears = null
|
||||
var/obj/screen/adminbus/adminbus_sptrees = null
|
||||
var/obj/screen/adminbus/adminbus_spspiders = null
|
||||
var/obj/screen/adminbus/adminbus_spalien = null
|
||||
var/obj/screen/adminbus/adminbus_loadsids = null
|
||||
var/obj/screen/adminbus/adminbus_loadsmoney = null
|
||||
var/obj/screen/adminbus/adminbus_massrepair = null
|
||||
var/obj/screen/adminbus/adminbus_massrejuv = null
|
||||
var/obj/screen/adminbus/adminbus_hook = null
|
||||
var/obj/screen/adminbus/adminbus_juke = null
|
||||
var/obj/screen/adminbus/adminbus_tele = null
|
||||
var/obj/screen/adminbus/adminbus_bumpers_1 = null
|
||||
var/obj/screen/adminbus/adminbus_bumpers_2 = null
|
||||
var/obj/screen/adminbus/adminbus_bumpers_3 = null
|
||||
var/obj/screen/adminbus/adminbus_door_0 = null
|
||||
var/obj/screen/adminbus/adminbus_door_1 = null
|
||||
var/obj/screen/adminbus/adminbus_roadlights_0
|
||||
var/obj/screen/adminbus/adminbus_roadlights_1
|
||||
var/obj/screen/adminbus/adminbus_roadlights_2
|
||||
var/obj/screen/adminbus/adminbus_free = null
|
||||
var/obj/screen/adminbus/adminbus_home = null
|
||||
var/obj/screen/adminbus/adminbus_antag = null
|
||||
var/obj/screen/adminbus/adminbus_dellasers = null
|
||||
var/obj/screen/adminbus/adminbus_givelasers = null
|
||||
var/obj/screen/adminbus/adminbus_delbombs = null
|
||||
var/obj/screen/adminbus/adminbus_givebombs = null
|
||||
var/obj/screen/adminbus/adminbus_tdred = null
|
||||
var/obj/screen/adminbus/adminbus_tdarena = null
|
||||
var/obj/screen/adminbus/adminbus_tdgreen = null
|
||||
var/obj/screen/adminbus/adminbus_tdobs = null
|
||||
|
||||
//Blob HUD stuff
|
||||
var/list/specialblobs[24]
|
||||
var/obj/screen/specialblob/blob_bgs = null
|
||||
var/obj/screen/specialblob/blob_coverLEFT = null
|
||||
var/obj/screen/specialblob/blob_coverRIGHT = null
|
||||
var/obj/screen/specialblob/blob_powerbar = null
|
||||
var/obj/screen/specialblob/blob_healthbar = null
|
||||
var/obj/screen/specialblob/blob_spawnblob = null
|
||||
var/obj/screen/specialblob/blob_spawnstrong = null
|
||||
var/obj/screen/specialblob/blob_spawnresource = null
|
||||
var/obj/screen/specialblob/blob_spawnfactory = null
|
||||
var/obj/screen/specialblob/blob_spawnnode = null
|
||||
var/obj/screen/specialblob/blob_spawncore = null
|
||||
var/obj/screen/specialblob/blob_ping = null
|
||||
var/obj/screen/specialblob/blob_rally = null
|
||||
var/obj/screen/specialblob/blob_taunt = null
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
if(blob_looks[looks] == 64)
|
||||
anim(target = loc, a_icon = icon, flick_anim = "corepulse", sleeptime = 15, lay = 12, offX = -16, offY = -16, alph = 200)
|
||||
for(var/mob/M in viewers(src))
|
||||
M.playsound_local(loc, 'sound/effects/blob_pulse.ogg', 50, 0, null, FALLOFF_SOUNDS, 0)
|
||||
M.playsound_local(loc, adminblob_beat, 50, 0, null, FALLOFF_SOUNDS, 0)
|
||||
|
||||
var/turf/T = get_turf(overmind) //The overmind's mind can expand the blob
|
||||
var/obj/effect/blob/O = locate() in T //As long as it is 'thinking' about a blob already
|
||||
@@ -145,6 +145,11 @@
|
||||
B.key = C.key
|
||||
B.blob_core = src
|
||||
src.overmind = B
|
||||
|
||||
B.special_blobs += src
|
||||
B.hud_used.blob_hud()
|
||||
B.update_specialblobs()
|
||||
|
||||
if(!B.blob_core.creator)//If this core is the first of its lineage (created by game mode/event/admins, instead of another overmind) it gets to choose its looks.
|
||||
var/new_name = "Blob Overmind ([rand(1, 999)])"
|
||||
B.name = new_name
|
||||
@@ -155,7 +160,8 @@
|
||||
|
||||
B.verbs += /mob/camera/blob/proc/create_core
|
||||
spawn()
|
||||
var/chosen = input(B,"Select a blob looks", "Blob Looks", blob_looks[1]) as null|anything in blob_looks
|
||||
var/can_choose_from = blob_looks - "adminbus"
|
||||
var/chosen = input(B,"Select a blob looks", "Blob Looks", blob_looks[1]) as null|anything in can_choose_from
|
||||
if(chosen)
|
||||
for(var/obj/effect/blob/nearby_blob in range(src,5))
|
||||
nearby_blob.looks = chosen
|
||||
@@ -164,10 +170,14 @@
|
||||
var/new_name = "Blob Cerebrate ([rand(1, 999)])"
|
||||
B.name = new_name
|
||||
B.real_name = new_name
|
||||
B.gui_icons.blob_spawncore.icon_state = ""
|
||||
B.gui_icons.blob_spawncore.name = ""
|
||||
for(var/mob/camera/blob/O in blob_overminds)
|
||||
if(O != B)
|
||||
to_chat(O,"<span class='notice'>A new blob cerebrate has started thinking inside a blob core! [B] joins the blob! <a href='?src=\ref[O];blobjump=\ref[loc]'>(JUMP)</a></span>")
|
||||
|
||||
|
||||
|
||||
if(istype(ticker.mode, /datum/game_mode/blob))
|
||||
var/datum/game_mode/blob/mode = ticker.mode
|
||||
mode.infected_crew += B.mind
|
||||
|
||||
@@ -52,6 +52,8 @@
|
||||
S.Die()
|
||||
if(!manual_remove && overmind)
|
||||
to_chat(overmind,"<span class='warning'>A factory blob that you had created has been destroyed.</span> <b><a href='?src=\ref[overmind];blobjump=\ref[loc]'>(JUMP)</a></b>")
|
||||
overmind.special_blobs -= src
|
||||
overmind.update_specialblobs()
|
||||
..()
|
||||
|
||||
/obj/effect/blob/factory/update_icon(var/spawnend = 0)
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
blob_nodes -= src
|
||||
if(!manual_remove && overmind)
|
||||
to_chat(overmind,"<span class='warning'>A node blob that you had created has been destroyed.</span> <b><a href='?src=\ref[overmind];blobjump=\ref[loc]'>(JUMP)</a></b>")
|
||||
overmind.special_blobs -= src
|
||||
overmind.update_specialblobs()
|
||||
processing_objects.Remove(src)
|
||||
..()
|
||||
|
||||
@@ -37,7 +39,7 @@
|
||||
if(blob_looks[looks] == 64)
|
||||
anim(target = loc, a_icon = icon, flick_anim = "nodepulse", sleeptime = 15, lay = 12, offX = -16, offY = -16, alph = 150)
|
||||
for(var/mob/M in viewers(src))
|
||||
M.playsound_local(loc, 'sound/effects/blob_pulse.ogg', 50, 0, null, FALLOFF_SOUNDS, 0)
|
||||
M.playsound_local(loc, adminblob_beat, 50, 0, null, FALLOFF_SOUNDS, 0)
|
||||
|
||||
for(var/i = 1; i < 8; i += i)
|
||||
Pulse(5, i)
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
blob_resources -= src
|
||||
if(!manual_remove && overmind)
|
||||
to_chat(overmind,"<span class='warning'>You lost a resource blob.</span> <b><a href='?src=\ref[overmind];blobjump=\ref[loc]'>(JUMP)</a></b>")
|
||||
overmind.special_blobs -= src
|
||||
overmind.update_specialblobs()
|
||||
..()
|
||||
|
||||
/obj/effect/blob/resource/update_health()
|
||||
@@ -40,6 +42,8 @@
|
||||
if(B)
|
||||
to_chat(B,"<span class='notice'>You take control of the resource blob.</span>")
|
||||
overmind = B
|
||||
B.special_blobs += src
|
||||
B.update_specialblobs()
|
||||
update_icon()
|
||||
..()
|
||||
|
||||
|
||||
@@ -29,7 +29,8 @@
|
||||
|
||||
/obj/effect/blob/shield/Cross(atom/movable/mover, turf/target, height=1.5, air_group = 0)
|
||||
if(istype(mover) && mover.checkpass(PASSBLOB)) return 1
|
||||
mover.Bump(src) //Only automatic for dense objects
|
||||
if(mover)
|
||||
mover.Bump(src) //Only automatic for dense objects
|
||||
return 0
|
||||
|
||||
/obj/effect/blob/shield/run_action()
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
|
||||
var/blob_warning = 0
|
||||
|
||||
var/list/special_blobs = list()
|
||||
|
||||
/mob/camera/blob/New()
|
||||
blob_overminds += src
|
||||
..()
|
||||
@@ -70,8 +72,14 @@
|
||||
|
||||
|
||||
/mob/camera/blob/proc/update_health()
|
||||
if(blob_core)
|
||||
hud_used.blobhealthdisplay.maptext = "<div align='center' valign='middle' style='position:relative; top:0px; left:6px'> <font color='#e36600'>[blob_core.health]</font></div>"
|
||||
if(blob_core && hud_used)
|
||||
var/matrix/M = matrix()
|
||||
M.Scale(1,blob_core.health/blob_core.maxhealth)
|
||||
var/total_offset = 60 + (100*(blob_core.health/blob_core.maxhealth))
|
||||
hud_used.mymob.gui_icons.blob_healthbar.transform = M
|
||||
hud_used.mymob.gui_icons.blob_healthbar.screen_loc = "15:14,[round(total_offset/32)]:[total_offset%32]"
|
||||
hud_used.mymob.gui_icons.blob_coverRIGHT.maptext = "[blob_core.health]"
|
||||
|
||||
var/severity = 0
|
||||
switch(round(blob_core.health))
|
||||
if(167 to 199)
|
||||
@@ -86,6 +94,12 @@
|
||||
severity = 5
|
||||
if(-INFINITY to 33)
|
||||
severity = 6
|
||||
|
||||
if(severity >= 5)
|
||||
hud_used.mymob.gui_icons.blob_healthbar.icon_state = "healthcrit"
|
||||
else
|
||||
hud_used.mymob.gui_icons.blob_healthbar.icon_state = "health"
|
||||
|
||||
if(severity > 0)
|
||||
overlay_fullscreen("damage", /obj/screen/fullscreen/brute, severity)
|
||||
else
|
||||
@@ -94,9 +108,42 @@
|
||||
/mob/camera/blob/proc/add_points(var/points)
|
||||
if(points != 0)
|
||||
blob_points = Clamp(blob_points + points, 0, max_blob_points)
|
||||
//sanity for manual spawned blob cameras
|
||||
|
||||
//Updating the HUD
|
||||
if(hud_used)
|
||||
hud_used.blobpwrdisplay.maptext = "<div align='center' valign='middle' style='position:relative; top:0px; left:6px'> <font color='#82ed00'>[src.blob_points]</font></div>"
|
||||
var/matrix/M = matrix()
|
||||
M.Scale(1,blob_points/max_blob_points)
|
||||
var/total_offset = 60 + (100*(blob_points/max_blob_points))
|
||||
hud_used.mymob.gui_icons.blob_powerbar.transform = M
|
||||
hud_used.mymob.gui_icons.blob_powerbar.screen_loc = "1:0,[round(total_offset/32)]:[total_offset%32]"
|
||||
hud_used.mymob.gui_icons.blob_coverLEFT.maptext = "[blob_points]"
|
||||
hud_used.mymob.gui_icons.blob_coverLEFT.maptext_x = 4
|
||||
if(blob_points >= 100)
|
||||
hud_used.mymob.gui_icons.blob_coverLEFT.maptext_x = 1
|
||||
|
||||
hud_used.mymob.gui_icons.blob_spawnblob.color = grayscale
|
||||
hud_used.mymob.gui_icons.blob_spawnstrong.color = grayscale
|
||||
hud_used.mymob.gui_icons.blob_spawnresource.color = grayscale
|
||||
hud_used.mymob.gui_icons.blob_spawnfactory.color = grayscale
|
||||
hud_used.mymob.gui_icons.blob_spawnnode.color = grayscale
|
||||
hud_used.mymob.gui_icons.blob_spawncore.color = grayscale
|
||||
hud_used.mymob.gui_icons.blob_rally.color = grayscale
|
||||
hud_used.mymob.gui_icons.blob_taunt.color = grayscale
|
||||
|
||||
if(blob_points >= 5)
|
||||
hud_used.mymob.gui_icons.blob_spawnblob.color = null
|
||||
hud_used.mymob.gui_icons.blob_rally.color = null
|
||||
if(blob_points >= 10)
|
||||
hud_used.mymob.gui_icons.blob_spawnstrong.color = null
|
||||
if(blob_points >= 15)
|
||||
hud_used.mymob.gui_icons.blob_taunt.color = null
|
||||
if(blob_points >= 40)
|
||||
hud_used.mymob.gui_icons.blob_spawnresource.color = null
|
||||
if(blob_points >= 60)
|
||||
hud_used.mymob.gui_icons.blob_spawnfactory.color = null
|
||||
hud_used.mymob.gui_icons.blob_spawnnode.color = null
|
||||
if(blob_points >= 100)
|
||||
hud_used.mymob.gui_icons.blob_spawncore.color = null
|
||||
|
||||
/mob/camera/blob/say(var/message)
|
||||
if (!message)
|
||||
@@ -191,3 +238,30 @@
|
||||
|
||||
// Update on_moved listeners.
|
||||
INVOKE_EVENT(on_moved,list("loc"=NewLoc))
|
||||
|
||||
/mob/camera/blob/proc/update_specialblobs()
|
||||
if(client && gui_icons)
|
||||
for(var/i=1;i<=24;i++)
|
||||
client.screen -= gui_icons.specialblobs[i]
|
||||
var/obj/screen/specialblob/S = gui_icons.specialblobs[i]
|
||||
var/obj/effect/blob/B = null
|
||||
if(i<=special_blobs.len)
|
||||
B = special_blobs[i]
|
||||
if(!B)
|
||||
S.icon_state = ""
|
||||
S.name = ""
|
||||
S.linked_blob = null
|
||||
else
|
||||
switch(B.type)
|
||||
if(/obj/effect/blob/core)
|
||||
S.icon_state = "smallcore"
|
||||
if(/obj/effect/blob/resource)
|
||||
S.icon_state = "smallresource"
|
||||
if(/obj/effect/blob/factory)
|
||||
S.icon_state = "smallfactory"
|
||||
if(/obj/effect/blob/node)
|
||||
S.icon_state = "smallnode"
|
||||
S.name = "Jump to Blob"
|
||||
S.linked_blob = B
|
||||
gui_icons.specialblobs[i] = S
|
||||
client.screen += gui_icons.specialblobs[i]
|
||||
|
||||
@@ -94,6 +94,8 @@
|
||||
var/obj/effect/blob/resource/R = locate() in T
|
||||
if(R)
|
||||
R.overmind = src
|
||||
special_blobs += R
|
||||
update_specialblobs()
|
||||
return
|
||||
|
||||
/mob/camera/blob/proc/create_core()
|
||||
@@ -162,6 +164,8 @@
|
||||
var/obj/effect/blob/node/N = locate() in T
|
||||
if(N)
|
||||
N.overmind = src
|
||||
special_blobs += N
|
||||
update_specialblobs()
|
||||
return
|
||||
|
||||
|
||||
@@ -196,6 +200,8 @@
|
||||
var/obj/effect/blob/factory/F = locate() in T
|
||||
if(F)
|
||||
F.overmind = src
|
||||
special_blobs += F
|
||||
update_specialblobs()
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -261,6 +261,8 @@ var/list/blob_looks
|
||||
icon = 'icons/mob/blob_64x64.dmi'
|
||||
if("classic")
|
||||
icon = 'icons/mob/blob.dmi'
|
||||
if("adminbus")
|
||||
icon = adminblob_icon
|
||||
//<----------------------------------------------------------------------------DEAR SPRITERS, THIS IS WHERE YOU ADD YOUR NEW BLOB DMIs
|
||||
/*EXAMPLES
|
||||
if("fleshy")
|
||||
@@ -275,6 +277,7 @@ var/list/blob_looks
|
||||
var/list/blob_looks = list(
|
||||
"new" = 64,
|
||||
"classic" = 32,
|
||||
"adminbus" = adminblob_size,
|
||||
)
|
||||
//<---------------------------------------ALSO ADD THE NAME OF YOUR BLOB LOOKS HERE, AS WELL AS THE RESOLUTION OF THE DMIS (64 or 32)
|
||||
|
||||
|
||||
@@ -387,7 +387,7 @@
|
||||
for(var/i=1;i<=MAX_CAPACITY;i++)
|
||||
var/mob/living/M = occupant
|
||||
M.client.screen -= M.gui_icons.rearviews[i]
|
||||
var/obj/screen/S = M.gui_icons.rearviews[i]
|
||||
var/obj/screen/adminbus/S = M.gui_icons.rearviews[i]
|
||||
var/icon/passenger_img = null
|
||||
var/atom/A = null
|
||||
if(i<=passengers.len)
|
||||
|
||||
@@ -404,3 +404,11 @@ var/global/hardcore_mode = 0
|
||||
//Global list of all unsimulated mineral turfs for xenoarch
|
||||
var/global/list/mineral_turfs = list()
|
||||
var/global/list/static_list = list('sound/effects/static/static1.ogg','sound/effects/static/static2.ogg','sound/effects/static/static3.ogg','sound/effects/static/static4.ogg','sound/effects/static/static5.ogg',)
|
||||
|
||||
//Used to set an atom's color var to "grayscale". The magic of color matrixes.
|
||||
var/list/grayscale = list(0.3,0.3,0.3,0,0.59,0.59,0.59,0,0.11,0.11,0.11,0,0,0,0,1,0,0,0,0)
|
||||
|
||||
//For adminbus blob looks
|
||||
var/adminblob_icon = null
|
||||
var/adminblob_size = 64
|
||||
var/adminblob_beat = 'sound/effects/blob_pulse.ogg'
|
||||
|
||||
@@ -1042,12 +1042,32 @@ var/list/admin_verbs_mod = list(
|
||||
set name = "Set Blob Looks"
|
||||
set category = "Fun"
|
||||
|
||||
var/chosen = input("This will change the looks of every blob currently in the world.", "Blob Looks", blob_looks[1]) as null|anything in blob_looks
|
||||
var/to_choose_from = list("ADMINBUS (custom DMI upload)")
|
||||
to_choose_from += blob_looks - "adminbus"
|
||||
var/chosen = input("This will change the looks of every blob currently in the world.", "Blob Looks", blob_looks[1]) as null|anything in to_choose_from
|
||||
|
||||
if(chosen)
|
||||
for(var/obj/effect/blob/B in blobs)
|
||||
B.looks = chosen
|
||||
B.update_looks(1)
|
||||
if(!chosen)
|
||||
return
|
||||
|
||||
if(chosen == "ADMINBUS (custom DMI upload)")
|
||||
adminblob_icon = input("Pick Icon:","Icon") as icon
|
||||
if(!adminblob_icon)
|
||||
return
|
||||
adminblob_size = text2num(alert("Which size are those icons?","","64","32"))
|
||||
|
||||
if((adminblob_size == 64) && (alert("Do you want to use a custom Pulse soundfile?","","Yes","No") == "Yes"))
|
||||
adminblob_beat = input("Pick Soundfile (DO NOT USE AN OVERLY LONG SOUNDFILE UNLESS YOU ARE READY TO FACE THE CONSEQUENCES):","(DO NOT USE AN OVERLY LONG SOUNDFILE UNLESS YOU ARE READY TO FACE THE CONSEQUENCES)") as file
|
||||
else
|
||||
adminblob_beat = 'sound/effects/blob_pulse.ogg'
|
||||
|
||||
blob_looks["adminbus"] = adminblob_size
|
||||
chosen = "adminbus"
|
||||
else
|
||||
adminblob_icon = null
|
||||
|
||||
for(var/obj/effect/blob/B in blobs)
|
||||
B.looks = chosen
|
||||
B.update_looks(1)
|
||||
|
||||
log_admin("[key_name(src)] set all blobs to use the \"[chosen]\" look.")
|
||||
message_admins("<span class='notice'>[key_name_admin(src)] set all blobs to use the \"[chosen]\" look.</span>")
|
||||
|
||||
6
html/changelogs/DeityLink_9948.yml
Normal file
6
html/changelogs/DeityLink_9948.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
author: Deity Link
|
||||
delete-after: true
|
||||
changes:
|
||||
- rscadd: (BLOB HUD) Blob Overminds now have their own amazing custom HUD. Points gauge on the left, Health gauge on the right. The health gauge start flashing when it gets low.
|
||||
- rscadd: (BLOB HUD) Buttons that require more points than you currently have appear grayscale.
|
||||
- rscadd: (BLOB HUD) You can always jump back to your core using the small button to the top left. The first 24 special blobs that you've created (not counting the ones that got destroyed) also appear at the top, and you can quickly teleport from one to another by clicking them.
|
||||
BIN
icons/mob/screen1_blob.dmi
Normal file
BIN
icons/mob/screen1_blob.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
BIN
icons/mob/screen1_blob_bars.dmi
Normal file
BIN
icons/mob/screen1_blob_bars.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 391 B |
BIN
icons/mob/screen1_blob_fullscreen.dmi
Normal file
BIN
icons/mob/screen1_blob_fullscreen.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
@@ -63,6 +63,7 @@
|
||||
#include "code\_onclick\hud\ai.dm"
|
||||
#include "code\_onclick\hud\alien.dm"
|
||||
#include "code\_onclick\hud\alien_larva.dm"
|
||||
#include "code\_onclick\hud\blob.dm"
|
||||
#include "code\_onclick\hud\fullscreen.dm"
|
||||
#include "code\_onclick\hud\hud.dm"
|
||||
#include "code\_onclick\hud\human.dm"
|
||||
|
||||
Reference in New Issue
Block a user