D2 Thief steals things he shouldn't be able to (most recent build)
#11
0.58.1 might not have a 'wicked Thief'. I'm not sure. Invulnerability can be stolen in Dos.
Reply
#12
Your original report did not specify that you had conducted hundreds of trials. We still haven't established whether the multiple thefts are due to unlucky random rolls (which have always been possible) or due to some recent change. You originally asserted that they were a recent regression. I took that on faith and speculated that a recent collision handling change could be at fault, allowing the thief to collide (and steal) much more frequently than in older builds. I later observed that DOS had the ability to do multiple thefts. Since that contradicted your original report, that called into question whether your problem is due to unlucky rolls or a collision handling problem.

Yes, zico is a bit less available these days, but he's supposed to be back next year sometime. Even if he doesn't drop in before then, that'll still make his opinion less tardy than your problem report. Smile I have a bit of difficulty treating this as a top priority issue since you're the first one to mention it and it has been in the repository since only a month after 0.58.1 went out. That says either nobody tests these things, nobody else has an issue with it, or nobody else cared to report it. I'm not sure which of those is worse. Changing it isn't just a matter of adding a checkbox. I assume you want this checkbox to work on both single player and cooperative, which means that I also need to propagate that change over the network, which means revising the protocol again (and breaking the tracker, again, since it snoops into the otherwise game-internal protocol). I also assume you want this persisted across game restarts and that its internal labelling needs to be clear about what it does.

ThugsRook: yes, that is its highest priority target even (and also reattempted after weapons). If you're lucky(?), you can abuse this a bit, since the invulnerability powerup that the thief drops when killed will be at full charge, even if the thief robbed you with very little time remaining on your invulnerability timer. (The same potential for abuse applies to cloaking, although that is farther down the list, so less likely to be stolen.) As far as I know, it has always been like that. I don't recall any DOS games where a thief jumped me while I was invulnerable, but the early D2X snapshot that I linked above has it like that. I recall a few test games where I was checking something else and the thief jumped me and stole my debug-added invulnerability. I've taken to pausing robots whenever practical to avoid that. 0.58.1's thief has the same bug that all prior released versions had, regarding the thief's inability to steal energy weapons because you have no ammo for them. It'd be relatively straightforward to modify the savegame code so that games saved in a current build will have a "wicked thief" even in legacy builds. I just need to set the otherwise unused ammo fields to a nonzero value.

I always treated the thief as a top priority target. As soon as it appeared, killing it (preferably by baiting, not chasing) overrode all other objectives.
Reply
#13
I only play single player, so I don't care if it applies to co-op games. Just an easy check box. And I don't care if it works against game restarts (I'm assuming you mean loading an existing save)? As long as it works when I enter a new mission from the New Game menu.

As for tardiness, well I guess I'm sorry the last time I played Descent before last month was in 2012. I hadn't played for five years.
Reply
#14
No, I mean I assume you don't want to go into the menu and disable the thief every time you restart Rebirth. You may only be using single player, but there's a general expectation that cooperative mode should have feature parity to single player, so any new toggles need to work in both whenever it makes sense to do so. The code isn't really structured for that, so I get to duplicate all the buttons and all their backing code.

Look at this thread from my perspective:
- You reported this as a severe bug, and made it very clear it was so important to you that you polled back a few hours later wanting a status update. You continued to argue that this change was wrong even after I pointed out that it's an obvious bug fix and not a recent one. I generally give less weight to problems that are not reported promptly. I was not aware you had been completely away from Descent for so long. I expected you had been using Rebirth, but not upgrading, and were suddenly surprised to find that new builds work differently than much older ones.
- You reported it as a regression relative to DOS, which is so far back that there is no way I can bisect to find when it failed. Fortunately, the issue was fairly obvious from code inspection. While reports of ancient bugs are not unwelcome, reports of regressions ought to be relative to the most recent readily testable milestones.
- You reported other properties of the DOS thief that are not supported by the code. If I can't trust the reported symptoms, that costs me more time verifying which reported things actually happen or can happen.
- I have limited free time to work on Rebirth. When I see a report of a severe game-breaking problem, I drop other more important work to investigate. Your issue is not only not actually game-breaking (the game does not crash, nor corrupt data, nor interrupt other users, nor ensure you cannot progress further, etc.), it's not even a bug, and it's not a recent change. The new thief could certainly be more annoying if you aren't accustomed to eradicating the thief immediately. It's not a crash, a hang, or a data corruption. Addressing this one thread has already cost more time than I typically devote to Rebirth in a week, and we aren't even done yet.
Reply
#15
Please update to Allow players to remove thief at level start or later, set the new checkboxes to your liking, and retest. This commit adds knobs for removing the thief (but only at level entry, not on load) and for preventing the thief stealing energy weapons. By default, both these knobs are set to the same semantics as recent builds: thief enabled, and thief steals energy weapons.
Reply
#16
@MegaDescent: any update on this? Were the new knobs to your satisfaction?
Reply
#17
Sorry I somehow didn't even notice there was activity in this thread. Before I update - was the lavafall damage and the Driller dropping shields when it shouldn't be also fixed? (I'm going to use 9/3 nightly build, I've never compiled myself before.)

EDIT: I see you didn't fix the lavafall until 9/8. Can you upload a new nightly/weekly build that has that fix as well? I don't see how I won't be okay with the Thief issue (though it should also only steal one item at once, but if I can remove the Thief that is moot).
Reply
#18
Interesting - I just tested the original Descent II engine (using DOSBox), and the thief stole two or three items from me quite often. This happened on both Trainee difficulty and Insane difficulty. Here's a screenshot:

thief_multi_item.png
Reply
#19
I'm not responsible for uploading compiled files. I write the code. Other people build it for selected platforms.

The main path for driller drops looks like it has always been able to drop shields.
Reply
#20
Yep, I just confirmed that too: in the original Descent II engine, Class 1 Drillers do occasionally drop shield boosts. I observed it in level 5 of Descent 2: Vertigo (there's a Driller in the giant room near the level entrance) on Insane difficulty.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)