Closed DanVanAtta closed 6 years ago
This is not a bug, at most an indirect limit. It was me that removed the "over buy" warning in 270BC, when me and @veqryn made version 1.5. The property is "Placement Restricted By Factory" and I turned it off because the new (back then) placement rules to support forts placement are outside the support of that property (meaning that, if you enable it, it won't work correctly for RomanRepublic, thus I considered better nobody having it, to minimise confusion).
This is the same at least in "270BC Cernel Variant" and "270BC 40%" inside the "270bc_variants".
Also, it would not be a bug, just usability, because in Classic I'm almost sure you are allowed to buy more than you can place, and waste it (but since you have unlimited placement in original, that is very marginal a case). I think it is the same in Revised too (that if you buy more that you can place, it is not illegal, you just lose what you don't place).
I thought we were consistent in most maps to give a warning "you are about to buy more than you can place". Is it all behind a map option all along that is usually off?
I thought we were consistent in most maps to give a warning "you are about to buy more than you can place". Is it all behind a map option all along that is usually off?
You have that warning only as long as the property "Placement Restricted By Factory" is true. So, since all properties are false default, you should not normally have it.
Also, maybe I should have been clearer. Not sure if you played the map and know how fort placement works in there? In 270BC, forts can be placed both by city and by legionaire (by levis too in my variants, and legionaire is called legionary, there), and that is not supported by that warning property, that it is functionally limited only to standard basic placement. Legionaire and city are both factory, but all non-construction units but forts require the presence of city. Even if that property would be expanded to cover this, and this is would be a good feature request, there is still the mobile factory item to consider, in that legionaire units may move during your turn, thus expanding or reducing your placement abilities from the picture taken during purchase.
I agree that this is a considerable issue in 270BC, because you have a lot of stuff to place, due to the income in the map (imo, way too much income, thus also why I made "270BC 40%" in variants), but, also considering that almost nobody plays 270BC, I never got around making any tickets about solving this problem.
@DanVanAtta As @Cernelius describes, the warning is only shown for simple maps that use just standard factories for production (Placement Restricted By Factory). Any map the uses more complex place rules doesn't have that warning as the logic to determine it is significantly more complex when you have different types of unit place requirements, different types of factories, etc.
I have a feeling to cover all the various production rules across all maps, this would require a significant amount of effort to implement but would be a valid feature request.
this would require a significant amount of effort to implement
I don't think that is very material. Likely we need to clean things up to have less hacky rules, a good design for how to do this and it can be clean perhaps. It may be a larger project yes.
valid feature request.
I'm very not interested in the feature request vs bug debate... This is a broken feature because it was disabled on maps where it was too difficult to implement. That's a hack. There is no reason this should be map specific, either let the user know when it is there or not, or have it everywhere or nowhere. IMHO those are three options where this is actually a well done and working feature.
warning is only shown for simple maps that use just standard factories for production (Placement Restricted By Factory). Any map the uses more complex place rules doesn't have that warning as the logic to determine it is significantly more complex when you have different types of unit place requirements, different types of factories, etc.
Correct. That is why I disabled it for 270BC. It could show there and for any not-simple maps too, if enabled, but there is no point in this, as it would not be reliable nor accurate (thus mapmakers should take care to have it disabled, in such cases).
Personally, I see this as not something that "has to work", but just as a bonus.
Thinking at TripleA as a digitalised boardgame, you should consider that in a boardgame there is noone popping up and telling that you are buying more. It is up to you to do the math correctly, then losing the units if you bought in excess. So, doing that correctly is part of the game, as well.
Still, going a bit past the concept of the digitalised boardgame, since it is just basic management, I agree with having the computer telling your math is wrong; likely, at this point, it should tell that in advance, not requiring you to math at all to start with, not just if you happen to buy too much.
However, if TripleA will ever have a timer, that option should be, then, false as default, as accounting your stuff correctly would be part of your timed effort, as per what you would do in a timed boardgame competition.
you should consider that in a boardgame there is noone popping up and telling that you are buying more.
Except there is, until there is not, and an average player has no idea when to rely on it. That's the problem, it's not consistent and the reason is not made obvious. To fix we can make it obvious, or make it consistent.
270BC this may not be the biggest problem, other maps it can be more signfiicant since the setting can vary by the variant. It can be easy to rely on it, or use it as a safety net, which is a big problem when you forget or did not knwo it did not apply to a given variant.
I'l note - That math is not interesting, does not make one player better than the other other than it encourages mistakes, and can slow games down as players spend 2, 3 or 4 times longer double checking their and re-checking their math in fear their purchase has a fatal flaw. Mis-calculating a purchase can be devastating. But I digress, really the problem is not 270BC per say at all, that just happened to be the map where I was regression testing.
The engine should really tell what is your limit in the purchase window, not only after you buy too much.
This would be helpful itself and, when you don't see it displayed, this means that in that particular game the engine is not giving you a limit.
Strongly agree with that, a total purchase capacity would be really useful, many times playing WaW I've wanted that.
To make it really work, I think we would have to have the game 'warn' only when you go over the limit, and maybe have some hovertext to indicate that on same maps the limit may not be 100% accurate. So if you know you can "over-buy" (ie: our rules were not 100%), then you can do so knowing that you really can place everything, otherwise you get to see how many units you can place and get a warning when you go over.
Tangentially related but I've noticed a couple of times units bought being counted twice when "buy" is clicked twice. Not sure how to reproduce it though.
FWIW, I just want to add here that in "A&A"games you regularly are allowed to "purchase as much as you can afford". Consequences of an overbuy are different depending on the game version (map). But those conseqences are part of the the unit placement
phase.
The official FAQ of Global added the interdiction of "intentional overbuy" - but this is subject to argue between the players and not something to be coded.
I don't know @panther2 , if it wasn't for the USA facility upgrade bug, I think it would be preferred to prohibit overbuys.
Indeed, @simon33-2 , the USA facility upgrade bug (https://github.com/triplea-maps/world_war_ii_global/issues/4) is a point in global.
That brought me to remember our last year's discussion, especially my answer here: https://github.com/triplea-maps/world_war_ii_global/issues/4#issuecomment-244552740
The addition of the prohibition of the "intentional overbuy" into the FAQ did not remove the refund for units that were overbuyed. That refund takes place during the placement phase.
So in case the player purchases (intentionally) more than he can place - and no (other) player realizes this when it occurs (during Purchase Phase), it would be hard to argue for the opponents that this overbuy had been intentional - and to agree about consequences - during Placement Phase.
In other words it would be "compliant behaviour" to not overbuy - and intentionally overbuying hoping that no one realizes this would be sort of cheating.
An additional consideration, would be great if we had a way to indicate somewhere if over-bought units would be lost, refunded, or held over to the next turn. I don't know if we expose that property/setting anywhere at all in the UI.
There is a setting? Is it a map property?
I don't know if we expose that property/setting anywhere at all in the UI.
No. The only settings shown are the editable ones, and showing them all would not cover all rules, as many are either defined not with properties or have settings beside the related properties.
The mapmaker is supposed to explain in Notes what ruleset the game follows and detail all exceptions to it or provide a rulebook in Notes (like in the case of Total World War). In this case, the mapmaker should tell in Notes either what ruleset the map is following or specifically telling what happens to unplaced units, if a ruleset is not referenced or unplaced units make exception to it.
Forbidding overbuy is not advisable, because TA is supposed to support a series of rulesets not all clearly forbidding overbuy (the overbuy rules are often an obscure matter) and because you can have mobile factory units (forbidding overbuy would necessitate disabling the same for 270BC and Napoleonic Empires, as well as a few other maps, for example).
You should also notice that placement obligations are not supported, either, and those, too, vary between rulesets, and are partially obscure. For example, in V3 you are obliged to place as much as you can (that is everything, if you didn't overbuy), but the game doesn't force you to do so.
Regarding "WWII Global", to be fully rules compliant, you should totally disable the overbuy warning, because, if the engine tells you are overbuying, you can't unintentionally do it, while you should be able to make such a mistake or feign to do it. Also, the matter of other player noticing needs to be better defined as a matter of timing, as the purchase phase ends immediately upon deciding the same, starting the CM phase, thus how about if the others notice in the middle of the CM phase or even after dice are rolled? As said, this is pretty much true of any traditional games, because, playing a boardgame, you don't have anything popping up telling you are overbuying or surely stopping you from doing so.
To clarify the proposed task:
So far looks like best route for this is to list total placement capacity in purchase window. We could potentially use that as a UI placeholder to click for more information on over-buy rules.
@Cernelius
No. The only settings shown are the editable ones, and showing them all would not cover all rules, as many are either defined not with properties or have settings beside the related properties.
We agree, the UI does not show the value of this setting nor what behavior the engine would take. The problem is that if we just simply turn off the over-buy warning in some cases without any attempt to do anything else, it makes the over-buy inconsistent and less valuable of a feature. It's argument even to delete it altogether since it's not something you can rely on.
Forbidding overbuy is not advisable
Yeah, not being suggested, thsese should be warnings since we don't always want to assume we got the placement rule counts 100% right
because you can have mobile factory units (forbidding overbuy would necessitate disabling the same for 270BC and Napoleonic Empires, as well as a few other maps, for example).
I'm not sure about that, perhaps the handling of such units could be made slightly more clever and accounted for.
You should also notice that placement obligations are not supported
Indeed, though that does get into a different topic which would need it's own coding work. There is plenty to do until these details would start to matter.
If it is already possible to refund over bought units, that is the correct behaviour for the Axis and Allies games AFAIK. Definitely so for global. How do we enable this?
v1: units are lost, no refund v2: units are lost, no refund (per FAQ: Technically (which means, in a tournament), yes. In a friendly game, tell the player he's making a mistake and let him take it back or refund him the money. You don't want to win that way.) v2: LHTR: units are lost, no refund v3: units are not lost but can be placed during a future mobilization phase v4; return units, get refund (only in case it occured inadvertently) v5: return units, get refund (only in case it occured inadvertently) v6: return units, get refund (only in case it occured inadvertently) Europe, Pacific, Global 1940: return units, get refund (only in case it occured inadvertently)
In other words: The rule for v4+ is "Overbuy is forbidden, there is no refund (except "unintentional")".
Good summary. It can vary by map. The task at hand here is to display the value of the setting in one way or another to users.
The discussion has been somehow continued here: #3506
Placement mistakes easily can shift a game, and not in a fun way, a game you are slightly winning suddenly you are slowly losing and you then get to play out for the next 8 hours to see if you can make up the mistake and not lose because of it.
TripleA is ideally a game about who plays better and less about who makes fewer mistakes. The UI should help out here.
I'd rather let this issue sit. I removed ice-box since we are reviving this problem and have some new follow up items:
Note the purchase cannot be placed in its entirety. We are supposed to show a 'you bought more than you can place' warning window in this scenario if you proceed with this purchase, but did not show such a window.
Save game: overbuy.zip