![]() |
#1 |
Prophet
Join Date: Dec 2009
Posts: 9,022
![]() |
Tweaking identification
I've never been a big fan of the identification part of roguelike games. As a matter of practice you're not going to equip gear unless you know it's safe, which means you end up identifying or pseudo-identifying all the gear you see up until you're willing to just outright destroy items in the search for artifacts.
I've come up with this alteration to the base game that I personally think will make it a great deal more fun (by eliminating tedium) without making it significantly more difficult: * The to-hit, to-dam, and to-ac modifiers of all items are always known * The number of charges on wands and staves is always known * Whether an item is an artifact or an ego-item is always known * ego-type is known so long as you have identified at least one of that type of ego-item before (e.g. once you've seen one Westernesse, you can recognize others on sight). This reveals their pvals. Notably, I don't intend to touch flavored items at all (except for noting the number of charges in wands and staves). I haven't looked at the Angband source code in over a decade. I've managed to figure out how to automatically identify every item that gets generated (add "object_notice_everything(j_ptr);" to make_object() in obj-make.c), but the more nuanced changes I'd like to try are going to be trickier. In particular, I have the following questions: * Is there any straightforward way of recognizing "equipment" as distinct from other types of items, or am I stuck checking TV_HARD_ARMOR, TV_SOFT_ARMOR, TV_DRAG_ARMOR, TV_SHIELD, etc.? * Is there currently a listing of ego-types the player has seen before anywhere? If not, is there a guide somewhere to modifying the save file so that I could figure out how to add such a listing? * Is it possible/feasible to display equipment modifiers without displaying pvals, and vice versa? (IIRC the number of charges on a wand/staff is also its pval, right?) As for balance considerations, here's the major changes to gameplay that I predict from this: * As soon as you find an item, you can make a keep/sell/reject decision. You don't need to carry it around to pseudo-ID it; you don't need to stop to cast Identify; you don't have to try destroying it in the hopes that it's an artifact. This grants a significant increase to the speed of gameplay. * You're less likely to accidentally skip over a useful item because of inventory constraints; you can also examine vaults with detection to determine if they're worth your while without actually having to enter. * Early game dungeon dives can be longer, since you aren't carting around a bunch of might-be-good, probably-not-useful equipment items waiting for pseudo-ID to kick in. You're still limited by flavor items for the first few dives, though. * Because you don't have to spend as much money on identification scrolls, and because you can prune out the crap items from your inventory without heading to town to ID them, money is easier to come by in the early game. On the whole, I think that the decreased tedium is worth the slight easing of gameplay. |
![]() |
![]() |
![]() |
#2 |
Prophet
Join Date: Mar 2008
Posts: 2,771
![]() |
to_hitt and to_dam are the flag IDENT_ATTACK
to_ac is IDENT_DEFENCE [SE?] or those into ->ident currently charges are known if aware, not worth effort to fix that I think to know whether ego or artifact, you might need to rewrite or copy sense_inventory to work on a single item, but it might be as simple as adding IDENT_SENSE there is an everseen entry in the ego type, but I think that's for any game ever, not just the current game. You could reset that at birth for every entry in e_info what you call equipment might be the function obj_can_wear equip modifier outputs are ruled by IDENT stuff above You might be halfway there just changing the time to pseudo to happen every game turn for every class, but then you would still have to pick up the items. Do you want to be able to recognize an ego from across the dungeon? Have you played much 3.1? |
![]() |
![]() |
![]() |
#3 |
Prophet
Join Date: Dec 2009
Posts: 9,022
![]() |
Thanks for the info! That should be very helpful.
Re: recognizing items across the dungeon: I think my ideal would be that you can recognize the item as soon as you walk over it. Recognizing on-pickup would just add tedium, but recognizing on-generation makes detection very powerful ("Hmm...looks like the only item of interest in this GCV is that RoS +14 three squares from the exit; guess I'll just skip the rest"). I'm playing 3.1 right now with my auto-*ID*-everything cheat, and I'm really tearing up the dungeon (with a hobbit warrior, currently getting nicely out of his depth through aggressive diving). Not having to deal with ID at all really speeds up gameplay, and I think it should be added as an "official" cheat. But no, I hadn't played 3.1 at all up until yesterday. So it sounds like my approach should be to add the following to a function in identify.c, which gets called when the player changes their position Code:
for object on floor: if object is equippable: reveal to-hit, to-dam, to-ac if object is known ego-item or flavored item: *ID* item if object is not completely known: pseudo-ID object |
![]() |
![]() |
![]() |
#4 | |
Prophet
Join Date: Mar 2008
Posts: 2,771
![]() |
Quote:
You should wipe egos at birth, not at death, if for no other reason than the ability to import a non-modified savefile of a dead char. |
|
![]() |
![]() |
![]() |
#5 |
Prophet
Join Date: Dec 2009
Posts: 9,022
![]() |
Well, it appears that my desire to work in C is even less than I anticipated, so I haven't made it very far with this. However, The Wanderer on RGRA (scroll to near the bottom of the thread) added a refinement to the simple auto-*ID* hack to make it ignore artifacts (thus avoiding breaking Preserve mode). I definitely support this being added as a cheat option, and I think everyone should try playing it at least once just to see how they feel about it.
|
![]() |
![]() |
![]() |
#6 |
Prophet
Join Date: Mar 2008
Posts: 2,771
![]() |
Maybe if you change things to id when you step on them.
The current movement is in the direction opposite to your change. A very recent change is that you cannot see the 4d5 dice on Ringil until you test it or id it. It shows up as 2d5 until then. There was also a recent thread suggesting that even known ring flavors should be ambiguous at a distance. I hope the specifics [color level ambiguity] I read do not happen, but I mention it is a sign of sentiment opposed to what you are proposing. |
![]() |
![]() |
![]() |
#7 |
Swordsman
Join Date: Jun 2008
Location: Portland, OR, USA
Posts: 412
![]() |
Is the current direction opposed to something like Derakon's proposal? I thought Takarria's take on identification was that you should be able to figure out what the items are without excessive use of identify, and it seems like all the ID-by-use has moved Angband much closer to the kind of system which Derakon proposes. The hiding base dice change was more about consistency within the current implementation than anything else, or at least that was my read on it.
|
![]() |
![]() |
![]() |
#8 | |
Prophet
Join Date: Mar 2008
Posts: 2,771
![]() |
Quote:
I've been pushing for a system where you can apply what you learn about one weapon to a similar other weapon, but that requires some learning. |
|
![]() |
![]() |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Display Modes | |
|
|