diff --git a/.gitignore b/.gitignore index 059cf70e2bb0..6b879cc3ad81 100644 --- a/.gitignore +++ b/.gitignore @@ -22,8 +22,9 @@ info.json /dmis /interface-indented /code-indented +*.new.dmi .metadata /bot/config.yml /bot/data -/analysis +/analysis \ No newline at end of file diff --git a/baystation12.dme b/baystation12.dme index 17914de2334a..2a7b7dc6480e 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1006,6 +1006,7 @@ #include "code\modules\mob\living\login.dm" #include "code\modules\mob\living\logout.dm" #include "code\modules\mob\living\say.dm" +#include "code\modules\mob\living\carbon\_defines.dm" #include "code\modules\mob\living\carbon\carbon.dm" #include "code\modules\mob\living\carbon\carbon_defines.dm" #include "code\modules\mob\living\carbon\give.dm" @@ -1066,6 +1067,7 @@ #include "code\modules\mob\living\carbon\human\update_icons.dm" #include "code\modules\mob\living\carbon\human\whisper.dm" #include "code\modules\mob\living\carbon\human\catbeast\catbeast.dm" +#include "code\modules\mob\living\carbon\human\plasmaman\species.dm" #include "code\modules\mob\living\carbon\metroid\death.dm" #include "code\modules\mob\living\carbon\metroid\emote.dm" #include "code\modules\mob\living\carbon\metroid\examine.dm" diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 2e8d6f8b5132..ece06fcb4a34 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -325,6 +325,13 @@ else contents.Add(0) + // ACK ACK ACK Plasmen + if ("plasma") + if(t.air_contents.toxins) + contents.Add(t.air_contents.toxins) + else + contents.Add(0) + else //no tank so we set contents to 0 diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm index 1e10b522e2ed..0867f8efa8cf 100644 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -96,6 +96,17 @@ src.loc = F return +/obj/item/weapon/tank/plasma/plasmaman + desc = "The lifeblood of plasmamen. Warning: Extremely flammable, do not inhale (unless you're a plasman)." + icon_state = "plasma_fr" + +/obj/item/weapon/tank/plasma/plasmaman/examine() + set src in usr + ..() + if(air_contents.toxins < 0.2 && loc==usr) + usr << text("\red The meter on the [src.name] indicates you are almost out of plasma!") + usr << sound('sound/effects/alert.ogg') + /* * Emergency Oxygen */ diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm index 4f19ed673ffb..2ff38df929fc 100644 --- a/code/modules/clothing/spacesuits/alien.dm +++ b/code/modules/clothing/spacesuits/alien.dm @@ -219,4 +219,55 @@ name = "vox security pressure helmet" icon_state = "vox-pressure-security" item_state = "vox-pressure-security" - desc = "A very alien-looking helmet for Nanotrasen-hired Vox. This one is for shitcurity." \ No newline at end of file + desc = "A very alien-looking helmet for Nanotrasen-hired Vox. This one is for shitcurity." + +// PLASMEN SHIT +// CAN'T WEAR UNLESS YOU'RE A PINK SKELLINGTON +/obj/item/clothing/suit/space/plasmaman + w_class = 3 + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs,/obj/item/weapon/tank) + slowdown = 2 + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 0) + heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS + flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT + max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE + species_restricted = list("Plasmaman") + + icon_state = "plasmaman_suit" + item_state = "plasmaman_suit" + +/obj/item/clothing/head/helmet/space/plasmaman + species_restricted = list("Plasmaman") + + icon_state = "plasmaman_helmet0" + item_state = "plasmaman_helmet0" + var/brightness_on = 4 //luminosity when on + var/on = 0 + var/no_light=0 // Disable the light on the atmos suit + action_button_name = "Toggle Helmet Light" + + attack_self(mob/user) + if(!isturf(user.loc)) + user << "You cannot turn the light on while in this [user.loc]" //To prevent some lighting anomalities. + return + if(no_light) + return + on = !on + icon_state = "plasmaman_helmet[on]" +// item_state = "rig[on]-[_color]" + + if(on) user.SetLuminosity(user.luminosity + brightness_on) + else user.SetLuminosity(user.luminosity - brightness_on) + + pickup(mob/user) + if(on) + user.SetLuminosity(user.luminosity + brightness_on) +// user.UpdateLuminosity() + SetLuminosity(0) + + dropped(mob/user) + if(on) + user.SetLuminosity(user.luminosity - brightness_on) +// user.UpdateLuminosity() + SetLuminosity(brightness_on) \ No newline at end of file diff --git a/code/modules/media/jukebox.dm b/code/modules/media/jukebox.dm index 795cde2bcd54..a333ea81343c 100644 --- a/code/modules/media/jukebox.dm +++ b/code/modules/media/jukebox.dm @@ -497,6 +497,7 @@ var/global/loopModeNames=list( playlist_id="muzak" autoplay = 1 + change_cost = 0 id_tag="DJ Satellite" // For autolink diff --git a/code/modules/media/tapedeck.dm b/code/modules/media/tapedeck.dm index 74b5a8df1871..98f0bf70866b 100644 --- a/code/modules/media/tapedeck.dm +++ b/code/modules/media/tapedeck.dm @@ -7,69 +7,14 @@ #define JUKEMODE_SHUFFLE 1 // Default #define JUKEMODE_REPEAT_SONG 2 #define JUKEMODE_PLAY_ONCE 3 // Play, then stop. -#define JUKEMODE_COUNT 3 - -#define JUKEBOX_SCREEN_MAIN 1 // Default -#define JUKEBOX_SCREEN_PAYMENT 2 -#define JUKEBOX_SCREEN_SETTINGS 3 - -#define JUKEBOX_RELOAD_COOLDOWN 600 // 60s - -// Represents a record returned. -/datum/song_info - var/title = "" - var/artist = "" - var/album = "" - - var/url = "" - var/length = 0 // decaseconds - - var/emagged = 0 - - New(var/list/json) - title = json["title"] - artist = json["artist"] - album = json["album"] - - url = json["url"] - - length = text2num(json["length"]) - - proc/display() - var/str="\"[title]\"" - if(artist!="") - str += ", by [artist]" - if(album!="") - str += ", from '[album]'" - return str - - proc/displaytitle() - if(artist==""&&title=="") - return "\[NO TAGS\]" - var/str="" - if(artist!="") - str += artist+" - " - if(title!="") - str += "\"[title]\"" - else - str += "Untitled" - // Only show album if we have to. - if(album!="" && artist == "") - str += " ([album])" - return str - - -var/global/loopModeNames=list( - JUKEMODE_SHUFFLE = "Shuffle", - JUKEMODE_REPEAT_SONG = "Single", - JUKEMODE_PLAY_ONCE= "Once", -) + + /obj/machinery/media/tapedeck name = "Tape Deck" desc = "What the fuck is \"tape\", anyway?" icon = 'icons/obj/jukebox.dmi' - icon_state = "jukebox2" + icon_state = "tapedeck" density = 1 anchored = 1 @@ -94,33 +39,27 @@ var/global/loopModeNames=list( var/last_reload = 0 // Reload cooldown. var/last_song = 0 // Doubleplay prevention + // Eventually... var/cycletype = TAPEDECK_CYCLE_MUSIC var/adcyc_duration = 2 MINUTES var/last_ad_cyc = 0 // Last world.time of an ad cycle var/list/ad_queue = 0 // Ads queued to play - var/state_base = "jukebox2" - -/obj/machinery/media/jukebox/New(loc) - ..(loc) - if(department) - linked_account = department_accounts[department] - else - linked_account = station_account + var/state_base = "tapedeck" -/obj/machinery/media/jukebox/attack_ai(var/mob/user) +/obj/machinery/media/tapedeck/attack_ai(var/mob/user) attack_hand(user) -/obj/machinery/media/jukebox/attack_paw() +/obj/machinery/media/tapedeck/attack_paw() return -/obj/machinery/media/jukebox/power_change() +/obj/machinery/media/tapedeck/power_change() ..() - if(emagged && !(stat & (NOPOWER|BROKEN))) - playing = 1 + //if(emagged && !(stat & (NOPOWER|BROKEN))) + // playing = 1 update_icon() -/obj/machinery/media/jukebox/update_icon() +/obj/machinery/media/tapedeck/update_icon() overlays = 0 if(stat & (NOPOWER|BROKEN) || !anchored) if(stat & BROKEN) @@ -136,10 +75,10 @@ var/global/loopModeNames=list( else overlays += "[state_base]-running" -/obj/machinery/media/jukebox/proc/check_reload() +/obj/machinery/media/tapedeck/proc/check_reload() return world.time > last_reload + JUKEBOX_RELOAD_COOLDOWN -/obj/machinery/media/jukebox/attack_hand(var/mob/user) +/obj/machinery/media/tapedeck/attack_hand(var/mob/user) if(stat & NOPOWER) usr << "\red You don't see anything to mess with." return @@ -153,12 +92,12 @@ var/global/loopModeNames=list( var/t = "
" switch(screen) if(JUKEBOX_SCREEN_MAIN) t += ScreenMain(user) - if(JUKEBOX_SCREEN_SETTINGS) t += ScreenSettings(user) + //if(JUKEBOX_SCREEN_SETTINGS) t += ScreenSettings(user) user.set_machine(src) var/datum/browser/popup = new (user,"tapedeck",name,420,700) @@ -183,53 +122,49 @@ var/global/loopModeNames=list( else t += "You cannot change the playlist." t += "Artist - Title | Album |
---|
Artist - Title | Album | Controls | |
---|---|---|---|
#[i] | " - if(can_change) t += "" - t += song.displaytitle() - if(can_change) t += "" - t += " | [song.album] | |
#[i] | ++ [song.displaytitle()] + | +[song.album] | ++ Q + X + | +
You've selected [song.displaytitle()].
-Swipe ID card or insert cash to play this song next! ($[num2septext(change_cost)])
- \[ Cancel \] -