Making "haggle" more fun

Started by CirclelessBard, December 04, 2023, 02:53:28 PM

Haggle is kind of an odd misfit of a skill in my view. I'm going to mix analysis of haggle as it is, and suggestions for its improvement together, in the hopes that it will help explain why I think haggle is due for a rework.

There is no real cost to haggling
"Haggle" is used automatically when you use the "offer" command to propose a lower price or a trade of one item for another. You can use it as often as you want with essentially no cost. Whereas most skills do have some sort of cost - whether it's a delay, a stamina cost, or even some sort of risk of failure, "haggle" only presents the possibility that you will anger a shopkeeper enough to be temporarily banned from haggling with the shop.

This NPC anger is loosely tied to what essentially amounts to a guessing game of how much below/above the shopkeeper's price, or their perceived value of an item, the NPC is willing to tolerate. Combined with the fact that "offer" can be repeated without cost, once a player learns an NPC's "sweet spot" for buying/selling certain items, it becomes trivial to repeat the same offer repeatedly until the shopkeeper either accepts the price that you already know they'll eventually accept, or until you have failed your "haggle" roll enough that the shopkeeper is getting close to being too angry to bother with you. This allows you to haggle indefinitely.

All this is to say there should probably be a cost to haggling. As for what that cost should be, that itself is hard to say. It doesn't really make sense to use stamina or focus points IMO. In my view, the ideal would be to build on the "angry shopkeeper" model. If the game permanently tracked a shopkeeper's disposition towards your PC, then it could go down whenever a shopkeeper was successfully haggled with, and go up whenever a PC paid full price (or over full price) or accepted a more raw deal on selling an item. A positive disposition would make haggling easier; a negative one would make it harder. A negative or positive disposition would slowly go back to zero over time (or a shifted "zero" based on the PC's race, citizenship, or clan affiliation). While this still doesn't put a cost on "haggle" in the same way other skills have a cost, this would at least help with ensuring the player treats the setting like a living world, and severely angering an NPC can come with the cost of not being able to haggle or being ignored entirely, while pleasing an NPC can come with its own rewards.

Also, as a small aside, NPCs could express their disposition with emotes:
> n
The Salarri Shop [S]
The Salarri merchant is here.

The Salarri merchant smiles as they see you enter, and beckons you closer.

The tall elf walks in from the south.
The Salarri merchant rolls their eyes as they spot the tall elf.

Haggling is possible everywhere
This problem, in my view, is a bit simpler. Haggling is possible in every NPC shop, at least the ones that print a table when you "list". This doesn't always make sense. For example, haggling in a high-end shop or tavern might not be tolerated as much as haggling in a place commonly frequented by commoners trying to stretch every last coin they have. IMO certain NPCs should outright refuse to haggle and this would probably involve adding some kind of value to the NPCs that will not haggle (just to make implementation easier).

Haggling is reliant on text spam
In the helpfile, "haggle" is described as automatic presumably because it automatically triggers upon using the "offer" command, and there is no "haggle" command in and of itself. As I described before, "haggle" relies on repeatedly spamming the "offer" command toward a desired value, as an NPC will only change their offer a few coins at a time.

This is not ideal for those using screen readers to access the game. While this is resolvable through a multiline trigger and some gagging of client output, the ideal for accessibility is that this process isn't necessary.

This is also not ideal for play. In most other cases, spamming game commands is generally frowned upon. There are only so many ways to roleplay haggling as it's currently implemented, since it generally involves making the same or similar offer and walking the NPC up or down to it. It's hard to imagine haggling this way actually working in the real world, even with a merchant that tolerates haggling, by simply stating the same price you desire repeatedly.

Haggle should truly be automated, and I think the best implementation is by changing how NPCs react to offers. Ideally, an NPC either says yes or no to a PC's offer, and will always have that same response to the same offer made by a PC with the same skill level. This forces the PC to actually change their offer to haggle more successfully. For example, suppose my PC is trying to buy a sword that costs 100 coins from the Salarri shop:

> offer 80 sword
The Salarri merchant says: "I can't accept such a low price. How about 92 coins?"

> offer 80 sword
The Salarri merchant says: "I already told you no!"

> offer 85 sword
The Salarri merchant says: "I can't accept such a low price. How about 89 coins?"

> barter
You give the Salarri merchant 89 coins in exchange for a bone sword.

I think if all proposed changes were implemented, it would do wonders for integrating haggling more with the overall RP experience that Armageddon provides. What do you think? Do you have other ideas for improving how "haggle" works?
"All stories eventually come to an end." - Narci, Fable Singer

Honestly I'd like to see more of a "Reputation" score either with particular merchants or particular areas. The better your haggle skill, the more favorable your trades are from the outset. As you work with the same trader more and more, your "reputation" goes up. Rather than spam haggle, on the first offer they will accept the base price +/- your reptuation.
Quote from: IAmJacksOpinion on May 20, 2013, 11:16:52 PM
Masks are the Armageddon equivalent of Ed Hardy shirts.

If you haggle with a merchant about an item, you should be able to buy multiples of that item at the negotiated price.  Would be wonderful when you're buying 20 pieces of bone, or something like that.
"No live organism can continue for long to exist sanely under conditions of absolute reality; even larks and katydids are supposed, by some, to dream." - Shirley Jackson, The Haunting of Hill House

This is a skill issue and I definitely need to git gud, but it would also be nice if they had some kind of cancel sale/undo feature. Maybe you have to surrender a little bit of sids just for messing up and wasting the NPCs time? I know it's my bad for using the wrong keywords but I can't be the only one who accidentally pays 500 sid for a single piece of linen when I really meant the bolt. :P Would be a nice thing somehow tied to haggle?

Sanity checking would be nice yeah.

Just to get the idea out of my head:

No Haggle - 0 Reputation. List price is List Price.
Haggle Skill - At maximum skill level, 35-40 Reputation with merchants in general.
As you offer and barter with particular merchants, increase reputation up to 50, which puts you at the "maximum haggle price" ~50% off. Generally the buy/sell for the same price that we see with haggle now.

The question then becomes how do you train or fail haggle, and I think basically having <40 Reputation and offering something has a chance to increase skill.

Caveat: There needs to be a malus ... a negative consequence to failing haggle. Maybe if you fail the roll, they will only offer you list price and won't budge?
Quote from: IAmJacksOpinion on May 20, 2013, 11:16:52 PM
Masks are the Armageddon equivalent of Ed Hardy shirts.

February 28, 2024, 06:40:24 PM #6 Last Edit: February 28, 2024, 06:42:12 PM by NinjaFruitSalad
The idea of "reputation" with merchants has got me thinking...

What if your reputation had nothing to do with the haggle skill, but generally how much you have traded with that merchant without pissing them off?

So in short term, haggle could get you some savings, but slowly you anger the merchants and they're likely to start off with a big "F U" price cause they know you're just going to haggle and play games with them anyway. Meanwhile, strategic and careful haggling done sparingly might get you lesser savings, but so long as you aren't annoying the merchant, they still appreciate doing business with you and are likely to lower their prices a bit in the long run.