mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-19 05:26:28 +00:00
## About The Pull Request Third /icon/ cleansing splinter 1. Comments on commits say all it does pretty much.  ## Why It's Good For The Game Inhand for walkietalkie was requested in the project, gets rid of some usecases of old 'gangtool', headset splitoff requested by Fazzie. Inhands reflecting the items they are supposed to represent is nice. ## Changelog 🆑 image: Following now have unique item sprites: syndicate war declaration radio, curator and chief beacon's, chaplain beacon. image: Following now have unique inhand sprites: radio, export scanner, walkie-talkie, syndicate war declaration radio, curator and chief beacon's, chaplain beacon. /🆑
145 lines
4.4 KiB
Plaintext
145 lines
4.4 KiB
Plaintext
/**
|
|
* Bitrunning tech disks which let you load items or programs into the vdom on first avatar generation.
|
|
* For the record: Balance shouldn't be a primary concern.
|
|
* You can make the custom cheese spells you've always wanted.
|
|
* Just make it fun and engaging, it's PvE content.
|
|
*/
|
|
/obj/item/bitrunning_disk
|
|
name = "generic bitrunning program"
|
|
desc = "A disk containing source code."
|
|
icon = 'icons/obj/assemblies/circuitry_n_data.dmi'
|
|
base_icon_state = "datadisk"
|
|
icon_state = "datadisk0"
|
|
/// Name of the choice made
|
|
var/choice_made
|
|
|
|
/obj/item/bitrunning_disk/Initialize(mapload)
|
|
. = ..()
|
|
|
|
icon_state = "[base_icon_state][rand(0, 7)]"
|
|
update_icon()
|
|
|
|
/obj/item/bitrunning_disk/examine(mob/user)
|
|
. = ..()
|
|
. += span_infoplain("This disk must be carried on your person into a netpod to be used.")
|
|
|
|
if(isnull(choice_made))
|
|
. += span_notice("To make a selection, toggle the disk in hand.")
|
|
return
|
|
|
|
. += span_info("It has been used to select: <b>[choice_made]</b>.")
|
|
. += span_notice("It cannot make another selection.")
|
|
|
|
/obj/item/bitrunning_disk/ability
|
|
desc = "A disk containing source code. It can be used to preload abilities into the virtual domain. Duplicate abilities will be ignored."
|
|
/// The selected ability that this grants
|
|
var/datum/action/granted_action
|
|
/// The list of actions that this can grant
|
|
var/list/datum/action/selectable_actions = list()
|
|
|
|
/obj/item/bitrunning_disk/ability/attack_self(mob/user, modifiers)
|
|
. = ..()
|
|
|
|
if(choice_made)
|
|
return
|
|
|
|
var/names = list()
|
|
for(var/datum/action/thing as anything in selectable_actions)
|
|
names += initial(thing.name)
|
|
|
|
var/choice = tgui_input_list(user, message = "Select an ability", title = "Bitrunning Program", items = names)
|
|
if(isnull(choice))
|
|
return
|
|
|
|
for(var/datum/action/thing as anything in selectable_actions)
|
|
if(initial(thing.name) == choice)
|
|
granted_action = thing
|
|
|
|
if(isnull(granted_action))
|
|
return
|
|
|
|
balloon_alert(user, "selected")
|
|
playsound(user, 'sound/items/click.ogg', 50, TRUE)
|
|
choice_made = choice
|
|
|
|
/// Tier 1 programs. Simple, funny, or helpful.
|
|
/obj/item/bitrunning_disk/ability/tier1
|
|
name = "bitrunning program: basic"
|
|
selectable_actions = list(
|
|
/datum/action/cooldown/spell/conjure/cheese,
|
|
/datum/action/cooldown/spell/basic_heal,
|
|
)
|
|
|
|
/// Tier 2 programs. More complex, powerful, or useful.
|
|
/obj/item/bitrunning_disk/ability/tier2
|
|
name = "bitrunning program: complex"
|
|
selectable_actions = list(
|
|
/datum/action/cooldown/spell/pointed/projectile/fireball,
|
|
/datum/action/cooldown/spell/pointed/projectile/lightningbolt,
|
|
/datum/action/cooldown/spell/forcewall,
|
|
)
|
|
|
|
/// Tier 3 abilities. Very powerful, game breaking.
|
|
/obj/item/bitrunning_disk/ability/tier3
|
|
name = "bitrunning program: elite"
|
|
selectable_actions = list(
|
|
/datum/action/cooldown/spell/shapeshift/dragon,
|
|
/datum/action/cooldown/spell/shapeshift/polar_bear,
|
|
)
|
|
|
|
/obj/item/bitrunning_disk/item
|
|
desc = "A disk containing source code. It can be used to preload items into the virtual domain."
|
|
/// The selected item that this grants
|
|
var/obj/granted_item
|
|
/// The list of actions that this can grant
|
|
var/list/obj/selectable_items = list()
|
|
|
|
/obj/item/bitrunning_disk/item/attack_self(mob/user, modifiers)
|
|
. = ..()
|
|
|
|
if(choice_made)
|
|
return
|
|
|
|
var/names = list()
|
|
for(var/obj/thing as anything in selectable_items)
|
|
names += initial(thing.name)
|
|
|
|
var/choice = tgui_input_list(user, message = "Select an ability", title = "Bitrunning Program", items = names)
|
|
if(isnull(choice))
|
|
return
|
|
|
|
for(var/obj/thing as anything in selectable_items)
|
|
if(initial(thing.name) == choice)
|
|
granted_item = thing
|
|
|
|
balloon_alert(user, "selected")
|
|
playsound(user, 'sound/items/click.ogg', 50, TRUE)
|
|
choice_made = choice
|
|
|
|
/// Tier 1 items. Simple, funny, or helpful.
|
|
/obj/item/bitrunning_disk/item/tier1
|
|
name = "bitrunning gear: simple"
|
|
selectable_items = list(
|
|
/obj/item/pizzabox/infinite,
|
|
/obj/item/gun/medbeam,
|
|
/obj/item/grenade/c4,
|
|
)
|
|
|
|
/// Tier 2 items. More complex, powerful, or useful.
|
|
/obj/item/bitrunning_disk/item/tier2
|
|
name = "bitrunning gear: complex"
|
|
selectable_items = list(
|
|
/obj/item/reagent_containers/hypospray/medipen/survival/luxury,
|
|
/obj/item/gun/ballistic/automatic/pistol,
|
|
/obj/item/clothing/suit/armor/vest,
|
|
)
|
|
|
|
/// Tier 3 items. Very powerful, game breaking.
|
|
/obj/item/bitrunning_disk/item/tier3
|
|
name = "bitrunning gear: advanced"
|
|
selectable_items = list(
|
|
/obj/item/gun/energy/e_gun/nuclear,
|
|
/obj/item/dualsaber/green,
|
|
/obj/item/grenade/syndieminibomb,
|
|
)
|