Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Development

Reply
 
Thread Tools Display Modes
Old May 25, 2016, 11:53   #1
PowerWyrm
Prophet
 
PowerWyrm's Avatar
 
Join Date: Apr 2008
Posts: 2,665
PowerWyrm is on a distinguished road
PWMAngband: implementing the rune-based ID branch

After stabilizing 1.1.11, I started working on 1.1.12 for which I will look at the new additions from Angband 4.1... and the first one is rune-based ID.

First changeset... and I'm already facing a big problem. Change in V: object knowledge is updated on walkover using the player's knowledge (known runes).

PWMAngband scenario:
- object is created with basic knowledge
- player 1 (high level with full knowledge) looks at the object and gets basic knowledge
- player 1 walks over the object, which becomes fully known
- player 2 (low level with no knowledge) looks at the object... and gets full knowledge
- player 2 walks over the object... which becomes unknown again

This is clearly not working in a multiplayer environment. Sounds like the "obj->known" structure becomes obsolete with rune-based ID and should be replaced by "player->obj_k" for each player.
__________________
PWMAngband variant maintainer - check http://powerwyrm.monsite-orange.fr (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!
PowerWyrm is offline   Reply With Quote
Old May 30, 2016, 09:29   #2
PowerWyrm
Prophet
 
PowerWyrm's Avatar
 
Join Date: Apr 2008
Posts: 2,665
PowerWyrm is on a distinguished road
After toying around with stuff, I decided to simply add the rune-based system over the old system instead of replacing it. This means:
- keep object knowledge, learned "by use" ("obj->known" -- useful for other players)
- add player knowedge, learned "by use" ("player->obj_k" -- useful for a particular player)
- transfer player knowledge on walkover, but only the known bits (in theory not required -- "player->obj_k" is set --> "obj->known" is set; "player->obj_k" is not set --> "obj->known" is unchanged)
- redo the info/description (display info not only if "obj->known" is set, but also if "player->obj_k" is set)
- leave objects identified in stores ("obj->known" set, "player->obj_k" not affected)

Basically a player learns runes by use, uses player knowledge for the objects he finds and object knowledge for the objects he sees.
__________________
PWMAngband variant maintainer - check http://powerwyrm.monsite-orange.fr (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!
PowerWyrm is offline   Reply With Quote
Old June 3, 2016, 13:57   #3
PowerWyrm
Prophet
 
PowerWyrm's Avatar
 
Join Date: Apr 2008
Posts: 2,665
PowerWyrm is on a distinguished road
This is pretty much a "partial" version of the auto-id flag: with an auto-id item, you learn everything on walkover; with the rune system, you learn every known rune on walkover. This means that once you've learned all the runes, you have full auto-id. I like that.
__________________
PWMAngband variant maintainer - check http://powerwyrm.monsite-orange.fr (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!
PowerWyrm is offline   Reply With Quote
Old June 28, 2016, 16:04   #4
PowerWyrm
Prophet
 
PowerWyrm's Avatar
 
Join Date: Apr 2008
Posts: 2,665
PowerWyrm is on a distinguished road
I've now implemented most of the changes up to the point where consumables are IDed by use. Last thing to decide: transfer knowledge on walkover or pickup. Currently we have:

* V:
- knowledge on walkover
- items are assessed and ignored if ignorable

* PW:
- auto-ID on walkover
- items are ignorable if picked up with 'g' and not ignorable if picked up with ','
- items are assessed (currently using the old pseudo-id system) shortly after pickup and ignored if ignorable

This cannot work if I want to make auto-ID a "know all runes" flag and manage auto-ID and rune knowledge at the same time. Basically I'll have to decide between two systems:

* transfer knowledge on walkover:
- knowledge of carried + floor objects is updated from player knowledge (known runes or all runes if using auto-ID) on walkover
- items are assessed and ignored if ignorable

* transfer knowledge on pickup:
- items are ignorable if picked up with 'g' and not ignorable if picked up with ','
- knowledge of carried + floor objects is updated from player knowledge (known runes or all runes if using auto-ID) on pickup
- items are assessed and ignored if ignorable

First system: the easiest to implement, and closest to V. Only problem: it makes the "bypass ignore with ',' command" feature obsolete, since the ignoring is made on walkover. If I go this route, I'll have to examine all objects more closely and make more ignore categories, since this was the main reason for having that feature in PWMAngband.

Second system: the closest to current PW code/old system. Harder to implement: need to move auto-ID to pickup and transfer knowledge not only for items picked up, but also for items equipped directly from the floor (and I really don't like having to pick up stuff to "auto-ID" them). I'll start by this one and see how it goes.
__________________
PWMAngband variant maintainer - check http://powerwyrm.monsite-orange.fr (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!
PowerWyrm is offline   Reply With Quote
Old June 29, 2016, 13:16   #5
PowerWyrm
Prophet
 
PowerWyrm's Avatar
 
Join Date: Apr 2008
Posts: 2,665
PowerWyrm is on a distinguished road
Concerning the two systems, it seems that is is the second one that is easier to implement. I simply put the knowledge transfer into inven_carry() and that took care of everything. For walkover, I need to put transfer into move_player(), but also every time a player is "moved" and lands on an object (not mentioning psychic classes that can transfer objects from their inventory to someone else's inventory with their Telekinesis spell).

Transfer on pickup is nice, but I don't like the idea of auto-ID on pickup -- it should be immediate. And since new curses are around the corner, I don't imagine having to pick up a cursed item to get knowledge about the curse (it could be a "curse no drop" item too).
__________________
PWMAngband variant maintainer - check http://powerwyrm.monsite-orange.fr (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!
PowerWyrm is offline   Reply With Quote
Old July 4, 2016, 12:18   #6
PowerWyrm
Prophet
 
PowerWyrm's Avatar
 
Join Date: Apr 2008
Posts: 2,665
PowerWyrm is on a distinguished road
Rune-based ID has now been ported to PWMAngband. I've adapted the system to work well in a multiplayer environment.

What has been ported:
- Add ?? inscription for unknown runes
- Improve player screen object property grid
- Add rune knowledge screen
- Give messages on learning jewellery and ego types
- Display real damage dice/base armor class if known, otherwise display damage dice/base armor class from object kind
- Display header in red on the player screen object property grid for vulnerabilities
- Add an extra panel for ESP flags on the player screen object property grid (press 'm' to switch between skills/history, equipment flags and ESP flags)
- Don't notice brands on wield (only notice when hitting a monster susceptible to the brand)
- Transfer object knowledge on walkover
- Don't learn the flavor of jewelry with obvious properties until all of them are learned
- Remove IDENTIFY activation
- Remove staves and rods of Identify, scrolls of Identify still exist but are not sold in the Alchemy Shop anymore
- Remove IDENTIFY_PACK effect (from potions of *Enlightenment*)
- Remove pseudo-id (PWMAngband: remove PSEUDO_ID_IMPROV, make pseudo-id automatic and immediate on walkover)
- Make dice and ac (runes) known at birth
- Make IDENTIFY effect (scroll + spell) identify an unknown rune on an item
- ID flavored consumables on first use
- Make basic lights and diggers have innate not magical properties
- Make *Slay*s have a random power or base resist
- Learn sustains if their item also boosts the stat
- Identify obvious effects on abort (IDENTIFY, RECHARGE...)
- Make devices that affect monsters require a target to ID
- Make standard body armor to-hit penalties not part of the to-hit rune
- Port and adapt object knowledge from Angband: transfer player knowledge (automatically notice damage dice and base armor class), set ego type if known, notice artifacts, apply auto-id, "assess" objects, ignore items eligible for ignoring
- Replace activation on Eriril by DETECT_TREASURE
- Remove Greater Identify and Knowledge Explosion spells
- Remove scrolls of *Identify*
- Prevent probability travel on grids with items
- Prevent earthquakes placing players and monsters on grids with items
- Give Dungeon Master full knowledge of runes
- Rename obj-identify module to obj-knowledge
- Add rune module
- Handle non-magical object properties with flags

What has NOT been ported:
- Player knowledge for store objects (objects still get fully identified when generated in or sold to store, flavors are learned when selling flavored objects to store)
- Pseudo-id completely removed (objects still get a feeling message on walkover or when sent via telekinesis -- this may change in the future: once the system is fully playtested, the messages/inscriptions will probably go away)
- Runes learned on buying (since objects in stores are still fully identified, it would make the shops too powerful)
- Birth option for knowing all runes (because it makes autoID pointless)

Time to do some playtesting, then move to the new trap system.
__________________
PWMAngband variant maintainer - check http://powerwyrm.monsite-orange.fr (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!
PowerWyrm is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Rune-based ID Nick Vanilla 503 October 2, 2016 00:48
Rune-based ID - yes or no? Nick Vanilla 55 September 21, 2016 23:35
Nasty bug in Rune ID branch calris Vanilla 1 April 9, 2016 14:43
How about Rune-based squelching? Tobias v4 3 January 17, 2012 11:18
Rune-based ID just got a little better Magnate v4 24 December 8, 2011 07:31


All times are GMT +1. The time now is 13:56.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.