mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 12:41:09 +01:00
feat: new floppy disk sprites; most disks are now under the /item/disk type; adds disk stacking, uqinue styling and wrapping (#94112)
## About The Pull Request Floppy disks received a sprite upgrade, as well as unique wraps: <img width="364" height="150" alt="image" src="https://github.com/user-attachments/assets/0ac433e3-7432-4c06-bec2-aeae00b6852f" /> <img width="786" height="527" alt="image" src="https://github.com/user-attachments/assets/0f36bd0d-0362-4431-8131-49060a2fe348" /> You can now stack floppy disks! They also scatter around when thrown. The video also showcases new styling options with a selection of stickers! You can also write something on the disk instead of selecting an icon: https://github.com/user-attachments/assets/ff0a8542-9d79-4108-ae46-672ca5d620a2 MOST disks now inherit the `/item/disk` type to properly stack and do... stuff. An updatepaths script included. ## Why It's Good For The Game Old school is cool. Stacking disks makes them feel more authentic, while styling allows for more crearivity! ## Changelog 🆑 add: New unique wraps for floppy disks qol: Floppy disks can now be stacked image: New sprites and stickers for floppy disks map: Added and ran an updatepaths script refactor: Most disks are now under the base disk item type /🆑 --------- Co-authored-by: The-Tyrant <tyrantofgaming@gmail.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
/obj/item/bitrunning_debug
|
||||
name = "bitrunning debug item"
|
||||
desc = "Adds points and reduces cooldown time for debugging"
|
||||
icon = 'icons/obj/devices/circuitry_n_data.dmi'
|
||||
icon = 'icons/obj/devices/floppy_disks.dmi'
|
||||
base_icon_state = "datadisk"
|
||||
icon_state = "datadisk0"
|
||||
|
||||
|
||||
@@ -4,16 +4,17 @@
|
||||
* 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
|
||||
/obj/item/disk/bitrunning
|
||||
name = "generic bitrunning program"
|
||||
desc = "A disk containing source code."
|
||||
icon = 'icons/obj/devices/circuitry_n_data.dmi'
|
||||
base_icon_state = "datadisk"
|
||||
icon_state = "datadisk0"
|
||||
sticker_icon_state = "o_code"
|
||||
reskin_allowed = FALSE
|
||||
/// Name of the choice made
|
||||
var/choice_made
|
||||
|
||||
/obj/item/bitrunning_disk/Initialize(mapload)
|
||||
/obj/item/disk/bitrunning/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
icon_state = "[base_icon_state][rand(0, 7)]"
|
||||
@@ -23,7 +24,7 @@
|
||||
load_callback = CALLBACK(src, PROC_REF(load_onto_avatar)), \
|
||||
)
|
||||
|
||||
/obj/item/bitrunning_disk/examine(mob/user)
|
||||
/obj/item/disk/bitrunning/examine(mob/user)
|
||||
. = ..()
|
||||
. += span_infoplain("This disk must be carried on your person into a netpod to be used.")
|
||||
|
||||
@@ -35,18 +36,17 @@
|
||||
. += span_notice("It cannot make another selection.")
|
||||
|
||||
/// Handles loading our stuff onto avatars
|
||||
/obj/item/bitrunning_disk/proc/load_onto_avatar(mob/living/carbon/human/neo, mob/living/carbon/human/avatar, domain_flags)
|
||||
/obj/item/disk/bitrunning/proc/load_onto_avatar(mob/living/carbon/human/neo, mob/living/carbon/human/avatar, domain_flags)
|
||||
return NONE
|
||||
|
||||
|
||||
/obj/item/bitrunning_disk/ability
|
||||
/obj/item/disk/bitrunning/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/load_onto_avatar(mob/living/carbon/human/neo, mob/living/carbon/human/avatar, domain_flags)
|
||||
/obj/item/disk/bitrunning/ability/load_onto_avatar(mob/living/carbon/human/neo, mob/living/carbon/human/avatar, domain_flags)
|
||||
if(domain_flags & DOMAIN_FORBIDS_ABILITIES)
|
||||
return BITRUNNER_GEAR_LOAD_BLOCKED
|
||||
|
||||
@@ -60,8 +60,8 @@
|
||||
our_action.Grant(avatar)
|
||||
return NONE
|
||||
|
||||
/obj/item/bitrunning_disk/ability/attack_self(mob/user, modifiers)
|
||||
. = ..()
|
||||
/obj/item/disk/bitrunning/ability/attack_self(mob/user, modifiers)
|
||||
// Not calling parent to not flip the protection tab
|
||||
|
||||
if(choice_made)
|
||||
return
|
||||
@@ -86,7 +86,7 @@
|
||||
choice_made = choice
|
||||
|
||||
/// Tier 1 programs. Simple, funny, or helpful.
|
||||
/obj/item/bitrunning_disk/ability/tier1
|
||||
/obj/item/disk/bitrunning/ability/tier1
|
||||
name = "bitrunning program: basic"
|
||||
selectable_actions = list(
|
||||
/datum/action/cooldown/spell/conjure/cheese,
|
||||
@@ -94,7 +94,7 @@
|
||||
)
|
||||
|
||||
/// Tier 2 programs. More complex, powerful, or useful.
|
||||
/obj/item/bitrunning_disk/ability/tier2
|
||||
/obj/item/disk/bitrunning/ability/tier2
|
||||
name = "bitrunning program: complex"
|
||||
selectable_actions = list(
|
||||
/datum/action/cooldown/spell/pointed/projectile/fireball,
|
||||
@@ -103,7 +103,7 @@
|
||||
)
|
||||
|
||||
/// Tier 3 abilities. Very powerful, game breaking.
|
||||
/obj/item/bitrunning_disk/ability/tier3
|
||||
/obj/item/disk/bitrunning/ability/tier3
|
||||
name = "bitrunning program: elite"
|
||||
selectable_actions = list(
|
||||
/datum/action/cooldown/spell/shapeshift/dragon,
|
||||
@@ -111,14 +111,14 @@
|
||||
)
|
||||
|
||||
|
||||
/obj/item/bitrunning_disk/item
|
||||
/obj/item/disk/bitrunning/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/load_onto_avatar(mob/living/carbon/human/neo, mob/living/carbon/human/avatar, domain_flags)
|
||||
/obj/item/disk/bitrunning/item/load_onto_avatar(mob/living/carbon/human/neo, mob/living/carbon/human/avatar, domain_flags)
|
||||
if(domain_flags & DOMAIN_FORBIDS_ITEMS)
|
||||
return BITRUNNER_GEAR_LOAD_BLOCKED
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
avatar.put_in_hands(new granted_item())
|
||||
return NONE
|
||||
|
||||
/obj/item/bitrunning_disk/item/attack_self(mob/user, modifiers)
|
||||
/obj/item/disk/bitrunning/item/attack_self(mob/user, modifiers)
|
||||
. = ..()
|
||||
|
||||
if(choice_made)
|
||||
@@ -151,7 +151,7 @@
|
||||
choice_made = choice
|
||||
|
||||
/// Tier 1 items. Simple, funny, or helpful.
|
||||
/obj/item/bitrunning_disk/item/tier1
|
||||
/obj/item/disk/bitrunning/item/tier1
|
||||
name = "bitrunning gear: simple"
|
||||
selectable_items = list(
|
||||
/obj/item/pizzabox/infinite,
|
||||
@@ -160,7 +160,7 @@
|
||||
)
|
||||
|
||||
/// Tier 2 items. More complex, powerful, or useful.
|
||||
/obj/item/bitrunning_disk/item/tier2
|
||||
/obj/item/disk/bitrunning/item/tier2
|
||||
name = "bitrunning gear: complex"
|
||||
selectable_items = list(
|
||||
/obj/item/reagent_containers/hypospray/medipen/survival/luxury,
|
||||
@@ -169,7 +169,7 @@
|
||||
)
|
||||
|
||||
/// Tier 3 items. Very powerful, game breaking.
|
||||
/obj/item/bitrunning_disk/item/tier3
|
||||
/obj/item/disk/bitrunning/item/tier3
|
||||
name = "bitrunning gear: advanced"
|
||||
selectable_items = list(
|
||||
/obj/item/gun/energy/e_gun/nuclear,
|
||||
@@ -178,7 +178,7 @@
|
||||
)
|
||||
|
||||
///proto-kinetic accelerator mods, to be applied to pka's given inside domains
|
||||
/obj/item/bitrunning_disk/item/pka_mods
|
||||
/obj/item/disk/bitrunning/item/pka_mods
|
||||
name = "bitrunning gear: proto-kinetic accelerator mods"
|
||||
selectable_items = list(
|
||||
/obj/item/borg/upgrade/modkit/range,
|
||||
@@ -188,7 +188,7 @@
|
||||
/obj/item/borg/upgrade/modkit/human_passthrough,
|
||||
)
|
||||
|
||||
/obj/item/bitrunning_disk/item/pka_mods/premium
|
||||
/obj/item/disk/bitrunning/item/pka_mods/premium
|
||||
name = "bitrunning gear: premium proto-kinetic accelerator mods"
|
||||
selectable_items = list(
|
||||
/obj/item/borg/upgrade/modkit/cooldown/repeater,
|
||||
@@ -199,7 +199,7 @@
|
||||
)
|
||||
|
||||
///proto-kinetic crusher trophies, to be applied to pkc's given inside domains
|
||||
/obj/item/bitrunning_disk/item/pkc_mods
|
||||
/obj/item/disk/bitrunning/item/pkc_mods
|
||||
name = "bitrunning gear: proto-kinetic crusher mods"
|
||||
selectable_items = list(
|
||||
/obj/item/crusher_trophy/watcher_wing,
|
||||
@@ -208,7 +208,7 @@
|
||||
/obj/item/crusher_trophy/wolf_ear,
|
||||
)
|
||||
|
||||
/obj/item/bitrunning_disk/item/pkc_mods/premium
|
||||
/obj/item/disk/bitrunning/item/pkc_mods/premium
|
||||
name = "bitrunning gear: premium proto-kinetic crusher mods"
|
||||
selectable_items = list(
|
||||
/obj/item/crusher_trophy/watcher_wing/ice_wing,
|
||||
@@ -220,7 +220,7 @@
|
||||
/obj/item/crusher_trophy/ice_demon_cube,
|
||||
)
|
||||
|
||||
/obj/item/bitrunning_disk/item/mini_uzi
|
||||
/obj/item/disk/bitrunning/item/mini_uzi
|
||||
name = "bitrunning gear: mini-uzi"
|
||||
selectable_items = list(
|
||||
/obj/item/gun/ballistic/automatic/mini_uzi,
|
||||
|
||||
@@ -2,23 +2,23 @@
|
||||
/**
|
||||
* Bitrunning tech disks which let you load full loadouts into the vdom on first avatar generation.
|
||||
*/
|
||||
/obj/item/bitrunning_disk/gimmick
|
||||
/obj/item/disk/bitrunning/gimmick
|
||||
desc = "A disk containing source code. It can be used to preload gimmick loadouts into the virtual domain."
|
||||
/// The selected loadout that this grants
|
||||
var/datum/bitrunning_gimmick/granted_loadout
|
||||
/// The list of loadouts that this can grant
|
||||
var/list/datum/bitrunning_gimmick/selectable_loadouts
|
||||
|
||||
/obj/item/bitrunning_disk/gimmick/Destroy()
|
||||
/obj/item/disk/bitrunning/gimmick/Destroy()
|
||||
QDEL_NULL(granted_loadout)
|
||||
return ..()
|
||||
|
||||
/obj/item/bitrunning_disk/gimmick/load_onto_avatar(mob/living/carbon/human/neo, mob/living/carbon/human/avatar, domain_flags)
|
||||
/obj/item/disk/bitrunning/gimmick/load_onto_avatar(mob/living/carbon/human/neo, mob/living/carbon/human/avatar, domain_flags)
|
||||
if(isnull(granted_loadout))
|
||||
return BITRUNNER_GEAR_LOAD_FAILED
|
||||
return granted_loadout.grant_loadout(neo, avatar, domain_flags)
|
||||
|
||||
/obj/item/bitrunning_disk/gimmick/attack_self(mob/user, modifiers)
|
||||
/obj/item/disk/bitrunning/gimmick/attack_self(mob/user, modifiers)
|
||||
. = ..()
|
||||
|
||||
if(granted_loadout)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* Bitrunning gimmick loadouts themed around dungeon crawling.
|
||||
* Mostly for fun, have niche but not insignificant advantages.
|
||||
*/
|
||||
/obj/item/bitrunning_disk/gimmick/dungeon
|
||||
/obj/item/disk/bitrunning/gimmick/dungeon
|
||||
name = "bitrunning gimmick: dungeon crawling"
|
||||
selectable_loadouts = list(
|
||||
/datum/bitrunning_gimmick/alchemist,
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* Bitrunning gimmick loadouts themed around sports.
|
||||
* Mostly for fun, have niche or little advantages.
|
||||
*/
|
||||
/obj/item/bitrunning_disk/gimmick/sports
|
||||
/obj/item/disk/bitrunning/gimmick/sports
|
||||
name = "bitrunning gimmick: sports"
|
||||
selectable_loadouts = list(
|
||||
/datum/bitrunning_gimmick/boxer,
|
||||
|
||||
Reference in New Issue
Block a user