diff --git a/aurorastation.dme b/aurorastation.dme index 5afb580da57..f19f00418f7 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -1850,6 +1850,7 @@ #include "code\modules\games\boardgame.dm" #include "code\modules\games\cardemon.dm" #include "code\modules\games\cards.dm" +#include "code\modules\games\gamehelm.dm" #include "code\modules\games\spaceball_cards.dm" #include "code\modules\games\tarot.dm" #include "code\modules\ghostroles\spawner\base.dm" diff --git a/code/modules/client/preference_setup/loadout/loadout_general.dm b/code/modules/client/preference_setup/loadout/loadout_general.dm index b687f0149da..7ce0c86c667 100644 --- a/code/modules/client/preference_setup/loadout/loadout_general.dm +++ b/code/modules/client/preference_setup/loadout/loadout_general.dm @@ -39,6 +39,28 @@ display_name = "spaceball booster pack" path = /obj/item/pack/spaceball +/datum/gear/gamehelm + display_name = "handheld video game console" + description = "A selection of various Game-Helm consoles." + cost = 1 + path = /obj/item/gamehelm + +/datum/gear/gamehelm/New() + ..() + var/list/gamehelm = list() + gamehelm["red game-helm"] = /obj/item/gamehelm/red + gamehelm["blue game-helm"] = /obj/item/gamehelm/blue + gamehelm["green game-helm"] = /obj/item/gamehelm/green + gamehelm["yellow game-helm"] = /obj/item/gamehelm/yellow + gamehelm["pink game-helm"] = /obj/item/gamehelm/pink + gamehelm["black game-helm"] = /obj/item/gamehelm/black + gamehelm["weathered game-helm"] = /obj/item/gamehelm/weathered + gamehelm["brown game-helm"] = /obj/item/gamehelm/brown + gamehelm["turquoise game-helm"] = /obj/item/gamehelm/turquoise + gamehelm["white game-helm"] = /obj/item/gamehelm + gamehelm["purple game-helm"] = /obj/item/gamehelm/purple + gear_tweaks += new /datum/gear_tweak/path(gamehelm) + /datum/gear/flask display_name = "flask" path = /obj/item/reagent_containers/food/drinks/flask/barflask diff --git a/code/modules/games/gamehelm.dm b/code/modules/games/gamehelm.dm new file mode 100644 index 00000000000..0ca60a2b95a --- /dev/null +++ b/code/modules/games/gamehelm.dm @@ -0,0 +1,110 @@ +/obj/item/gamehelm + name = "\improper InUs Game-Helm" + desc = "The latest device in any self respecting gamer's arsenal, brought to you by the Ingi Usang Entertainment Corporation. Remember to hide it under your desk if the captain walks by." + desc_extended = "The Game-Helm was designed by a subsidiary of NanoTrasen, Ingi Usang Entertainment Co., with games \ + being able to be purchased from an online marketplace hosted by InUs. Thousands of popular and obscure titles are available on the \ + console. Besides being the perfect present, it's also capable of video streaming and sharing files over authorized \ + connections. A quick and easy way to upload your latest montage to the extranet." + desc_info = "You can ALT-click the game-helm to open it up and turn it on. Click on the open device to play." + icon = 'icons/obj/gamehelm.dmi' + w_class = ITEMSIZE_SMALL + var/open = "open_white" + var/closed = "closed_white" + +/obj/item/gamehelm/Initialize() + . = ..() + icon_state = closed + add_overlay("buttons_closed") + +/obj/item/gamehelm/AltClick() + if(use_check(usr)) + return + if(icon_state == open) //Toggle the lid, turn it off. + icon_state = closed + cut_overlays() + add_overlay("buttons_closed") + else if(icon_state == closed) //Otherwise open it up + icon_state = open + cut_overlays() + add_overlay("buttons_open") + +/obj/item/gamehelm/attack_self(mob/user) + if(icon_state == open) + var/choice = input("What do you want to play?") as null|anything in list("anime game", "shooter game", "simulation game", "strategy game", "piloting game", "horror game", "exploration game", "video service", "music service", "turn off the system") + cut_overlays() + add_overlay("buttons_open") + if(choice != "turn off the system") + to_chat(user, "You start the application on your Game-Helm and begin playing.") + else + to_chat(user, "You turn the Game-Helm off.") + if(choice == "anime game") + add_overlay("screen_anime") + if(choice == "shooter game") + add_overlay("screen_shooter") + if(choice == "strategy game") + add_overlay("screen_strategy") + if(choice == "piloting game") + add_overlay("screen_pilot") + if(choice == "horror game") + add_overlay("screen_dread") + if(choice == "simulation game") + add_overlay("screen_emotive") + if(choice == "exploration game") + add_overlay("screen_exploration") + if(choice == "music service") + add_overlay("screen_music") + if(choice == "video service") + add_overlay("screen_video") + else + ..() + +//The colours! +/obj/item/gamehelm/blue + open = "open_blue" + closed = "closed_blue" + icon_state = "closed_blue" + +/obj/item/gamehelm/red + open = "open_red" + closed = "closed_red" + icon_state = "closed_red" + +/obj/item/gamehelm/black + open = "open_black" + closed = "closed_black" + icon_state = "closed_black" + +/obj/item/gamehelm/pink + open = "open_pink" + closed = "closed_pink" + icon_state = "closed_pink" + +/obj/item/gamehelm/purple + open = "open_purple" + closed = "closed_purple" + icon_state = "closed_purple" + +/obj/item/gamehelm/brown + open = "open_brown" + closed = "closed_brown" + icon_state = "closed_brown" + +/obj/item/gamehelm/green + open = "open_green" + closed = "closed_green" + icon_state = "closed_green" + +/obj/item/gamehelm/yellow + open = "open_yellow" + closed = "closed_yellow" + icon_state = "closed_yellow" + +/obj/item/gamehelm/turquoise + open = "open_turquoise" + closed = "closed_turquoise" + icon_state = "closed_turquoise" + +/obj/item/gamehelm/weathered + open = "open_weathered" + closed = "closed_weathered" + icon_state = "closed_weathered" diff --git a/html/changelogs/PurplePineapple-PR-15323.yml b/html/changelogs/PurplePineapple-PR-15323.yml new file mode 100644 index 00000000000..4b111f3fe5c --- /dev/null +++ b/html/changelogs/PurplePineapple-PR-15323.yml @@ -0,0 +1,42 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: PurplePineapple + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added a handheld video game device in the loadout selection called the GameHelm." + - imageadd: "Icons for the GameHelm device. Icon credit goes to Azlan#0852 and PinkestKitten#8019." diff --git a/icons/obj/gamehelm.dmi b/icons/obj/gamehelm.dmi new file mode 100644 index 00000000000..46fb88062c4 Binary files /dev/null and b/icons/obj/gamehelm.dmi differ