Oh, no, I think rollback in battle would be a nightmare from a balance perspective
You say that, but the recent-ish PSP re-release of Tactics Ogre: Let Us Cling Together
- a classic of the tactical-RPG genre - has added just such a feature! IIRC it lets you roll back something like 30 turns, which is going to be a significant chunk of if not the entire battle. It certainly does make things easier if you want to resort to it, since you can back out of bad decisions or bad luck, but I wouldn't say it's a nightmare. Of course, strictly speaking it's no worse than allowing saving and reloading during battles, since a player could theoretically do that every single turn with every single fighter and revert back to whichever save he wanted...! ;-)
(One big motivator to blocking rollback in battles for me was that I kept doing it by accident during testing, which was rather frustrating since without any extra attention it does the same thing a save and reload would - which generally dumps you back to the beginning of the battle!)
Other thing: I think I'm just being dumb or something, but I'm using what would be legit-ish syntax for a skill on an item, and it's not recognizing the attribute. No crash, just non-reaction. (I've got it so that I'd get some text if 'stab' is detected, and that piece is working fine on a test skill.)
Library.Equipment.POINTY = Weapon("POINTY", attributes=['stab'], attack=5, cost=5)
I'm under the impression from engine-items and example-items that this is doable; could you provide a sample of how a weapon with attributes is supposed to look?
The code looks fine - where and how are you checking for the 'stab' attribute? Attributes on equipment are currently only really used in the FighterEquipment classes - for example, the 'hand' attribute will be counted by the HandedFighterEquipment class. They don't come through to attacks like the attributes on attack skills do, because there's presently no link between the equipment and the attack - if all equipment attributes were transmitted to attacks, then your armour would also contribute attributes!
A piece of work I have on my to-do list - which I'll probably get to as part of the next main release, after the minor release I have planned for Very Soon - is to allow equipment items to impart skills. This would mean that, for example, you don't necessarily have to add an Attack skill to your fighter - adding a weapon equip would grant the Attack skill automatically. When this is done, the attributes from the weapon will be passed through that skill, so you can do stuff like create a fire-elemental sword which makes attacks which have the 'fire' attribute.
One issue I've seen is movement costs differing oddly. I'm chalking this up to the hex jump bug and also the rounding of floats.
Certainly there would have been weirdness if you hadn't modified/reimplemented the existing callback at all to work with a hex grid - because hexes aren't continuous in the same axes as the coordinate system, the approach taken in the A7 callback would have - IIRC - covered four of the 12 potential jump candidates and two hexes that should never have been considered! That much is definitely fixed, and I have made a note in my pre-release to-do list to check that move costs aren't being rounded off anywhere. I'm pretty sure I've had it working without rounding - so, say, a fighter can move 4 squares along the flat, for example, but only 3 if there's an upward movement part-way 'cause that upward movement costs 1.25 or something.