[REQ] Customizable item groups for favorites menu

Post » Sat May 18, 2013 5:17 am

I am looking for an experienced scripter who'd be interested in joining up with me for a project that should eventually become part of SkyUI.

The goal is to extend the favorites menu to support customizable item groups. Examples for such a group would be a set of armor or dual wield weapons/spells, which can be equipped at once.

During the last few days, I started reworking the favorites menu, and what you can see in the screenshots is so far functional:
http://imgur.com/a/001E6#0

The filter box at the bottom is pretty much pointless though, and I'd like to replace it with a horizontal bar of ~8 button slots, each representing an item group.

Usage scenarios:
  • Add item to a group: Select item, press F, select group, confirm.
  • View contents of group: Press Alt, select group.
  • Remove item from a group: Press Alt, select group, select item, press F.
  • Activate group: Press Alt, select group, confirm.
This is the part I'll be handling.


The backend for this system will be done completely in Papyrus. This includes:
- storing the items in each group;
- executing the group activation;
- sending the group lists to the UI when requested.

This is the part I'd like someone else to handle. The reason why I'm asking for help is not necessarily because I don't know how to do it, but because I don't feel like doing it alone :smile:
While I have some ideas, tweaking and testing will still require a moderate amount of time and constantly switching back and forth between C++, AS and Papyrus can be really tiresome.
I'd like to be able to concentrate on a single aspect if possible (while still offering advice and reviewing the other part).

The person I'm looking for should have
- experience with Papyrus;
- optionally experience with MCM;
- initiative, motivation and enough time.

If you're interested or have any questions, please let me know.

-------------------------

What follows are a few details on how I imagined the implementation:

The favorites menu will communicate with the backend via SKSE mod events.

Pseudo-signatures:
OnGroupAdd(int groupIndex, Form item, string typeDescriptor)
OnGroupRemove(int groupIndex, int itemIndex)
OnGroupActivate(int slotIndex)

For the other direction, the group lists will be sent from the backend to the UI as soon as the fav menu opens.

For each group, there will be 2 arrays:

Form[] group1Items
string[] group1TypeDescriptors

If a GroupAdd event is received, add form and descriptor to the arrays.
If a GroupRemove event is received, ....

If a GroupActivate revent is received, iterate the group items and execute an action based on the type descriptor.
For example, "armor" will be equipped, "potion" will be consumed, "weapon" will be equipped (first weapon left hand, second one right hand, etc.).

Further additions could be support of binding groups to the keyboard via MCM, and all kinds of other smart things :smile:

The interface is clearly defined in the form of these 3 events OnGroupAdd, OnGroupRemove, OnGroupActivate (sending the lists back can be tackled later), so you'll be able to work and test independently of my progress.
User avatar
Stace
 
Posts: 3455
Joined: Sun Jun 18, 2006 2:52 pm

Return to V - Skyrim