Auto-sell and other improvements to buying/selling

Recently we have reworked the buy/sell code and related ui. In the armory menu we have split the buy items list into two lists, one for the weapons, and the other for the upgrades.

We have implemented auto-selling, where if you attempt to buy a weapon or an upgrade that conflicts with a/some item(s) you already have, such as taking up a/some required slot(s), the conflicting item(s) are automatically sold when you select an item to buy. An additional convenient feature that has been included with the auto-sell is if you have a battery pack, and you buy a non-energy weapon, the battery pack is automatically sold, since currently it provides no advantage if you aren’t carrying an energy weapon.

These changes greatly reduce the time required to spend in the armory menu, and brings the efficiency of the use of that menu closer to that of the use of binds. The buy/sell menu should also be more user friendly to new players than how it has been previously. Not to mention buy-sell binds can be simplified with these changes.

Regarding the actual buy/sell code, it has been overhauled to be more modular, so that the armory, the /give command, the advanced mapping patch (AMP) system, and soon the bot system, all make use of the same buy/sell functions. This allows any needed modifications to be done to the buy/sell code, to occur in a single place, and propagate to all depending systems. This new buy/sell code is also more friendly to game mode switching.

With all that said, the buy/sell menu could perhaps be made more efficient in the future with new ui elements, such as with circle menus, or a grid of buttons.

4 Likes

Circle menus are a thing, not only for consoles but very effective on mouse hover

Some examples for inspirations
(PROTOTYPE)


(CSGO)

(UNVANQ)

extra: fullscreen with angled 3d versioned as KF2

3 Likes

I moved the auto-sell feature to for use in its own command, /autosellbuy, and I made the /buy command behave conventionally without auto-sell so as to not interfere with existing custom binds that depend on failure of the buy command when there are conflicts.

3 Likes