forked from crawl/crawl
-
Notifications
You must be signed in to change notification settings - Fork 4
Enchanted anvils #63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
alexjurkiewicz
wants to merge
5,005
commits into
Hellmonk:master
Choose a base branch
from
alexjurkiewicz:anvil
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Enchanted anvils #63
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
853fe2e fixed this for harming allies, but not yourself.
The vault cheibrodos_wizard_tower placed on-average 3 8-tier monsters at Lair depth, which is fairly nasty. This commit reworks the monster and loot placement to better scale with depth, starting with 1.25 monsters at D:7-9. The monster set now includes a possible deep elf annihilator in Dungeon, but only at depths where those are possible 8 spawns, and with a small chance. The monster count in Elf has been increased as well. The vault range is now increased to include D:13-D:$. The loot now has some thematic aux armor, randbooks, and staves mixed in, and the loot scales in count with depth.
This has been broken for a while; it was a mid/mindex confusion. I've also refactored the call so that it will better handle the case where your summon does before the fineff fires.
We'll see if players think this is too spammy or too obscure, but for 0.24.0 at least this will be helpful for testing any seed issues that come up.
(cherry picked from commit 54606e7)
(cherry picked from commit a7d21de)
I found some names (apparently) not in here while writing the release post. Also, apparently CXC was missing from here??
This introduces a bunch of extra detail and modifies some of the recommendations based on our experience packaging debs over the last few releases. Main changes: * explicit discussion of how to check dependencies of the built debs, hopefully avoiding ubuntu incompatibilities. * recommend always fully specifying OS/DIST/ARCH for creating and updating cows; this would head off some mistakes I've made at least. * convert doc to md, some cosmetic overhauls
Win32 colour adjustment was added so that the new menu implementation was legible on windows console, but the legibility issue was fixed at 6844edd, which added explicit menu colouring. Meanwhile, colour adjustment is breaking the foreground text colour on the species/job menu on Windows. I'm not sure why unix is not affected. This reverts commit 40b4c61.
This fixes weird behavior in two cases: (i) it keeps the permastore from being updated when ghosts are used during level load but the level is vetoed, and (ii) it keeps the permastore from being updated unintentionally using wizmode commands.
Unfortunately it's not a good idea to cherry-pick this to 0.24 during the tournament (or maybe during 0.24) as this change will potentially affect any seed that uses minmay_the_grid.
Console crawl has a concept of 'branding' colours, which involves setting one of several high bits each corresponding to a given brand. This brand is then looked up in the options, allowing customization of e.g. how summons are displayed. On win32 console, branded colours were converted into actual colour pairs (fg and bg) much earlier than on unix console, (inside the real_colour() function), with the background colour being stored in bits 0xF0. This worked fine because win32 textcolour() actually updated both foreground and background colours simultaneously, until db4295c, which corrected this API inconsistency, inadvertently breaking branded colours. This commit moves win32 console branding into libw32c.cc, and applies branding in the same way it is applied for unix console, fixing this issue. I'm not sure why the win32 branding was also enabled for all local tiles builds, since tiles never draws anything via the console...
It's generally assumed that titles and entries of the same number of characters will have the same width. This was not the case because menu entry text has a right-padding of 10px. This commit adds a right-margin of 10px to both the title and the more, which fixes ellipsizing of menu entries when the window width is reduced.
The spell info and memorise menus were slightly wider than the minimum width. When viewing a description from one of these menus on a console screen with minimum width (79 chars), the UI layout engine takes the width of the lower layout into account, and makes the description view wider than the viewport. Any text outside the viewport is then truncated, leading to seemingly incorrect wordwrapping. Menu minimum widths are primarily determined by the width of the title string. Trimming off empty spaces at the end is enough to fix the issue.
Keyboard events now have to be explicitly passed to scroller widgets, as they cannot (currently) be focused. A better implementation is in the works.
This commit reworks worms_lemuel to place more reasonable numbers of monsters in the earliest depths and to scale monsters and loot up with depth. For example, in D:7-10 it places only two on-average and 3 at maximum. The moths of wrath and/or torpor snails are also scaled more reasonably, only beginning to appear in Lair. Previously the vault used absolute depth for monster placement, but now it looks at branch and branch level. The vault's layout is slightly changed to accommodate the potential max number of spawns. I've also made the vault place within-branch monsters in Swamp/Spider, since placing swamp worms in Spider is not too interesting. Now it uses demonic crawlers in Spider and only torpor snails as the "assistant" monster there, since crawlers can't be berserked by moth of wrath.
[skip ci]
cursorto() moves the on-screen cursor to the correct position, given the cursor offset in the input text. However, resumable_line_reader never renders to the screen directly, so it's safe to NOP this function entirely. The crash itself seems to have something to do with the line reader start position, but I'm less interested in fixing this hacky mess because a replacement (textentry widget) is almost finished.
Change i_feel_safe to alert the player instead of waiting near friendly fulminant prisms, ball lightning, or ballistomyete spores. Currently this is slightly overzealous and will refuse to wait in sight of a fulminant prism regardless of distance, but this minor edge case is preferable to players waiting after a fight with Fedhas or CBL and dying after pressing 5.
The UI layer calls viewwindow() via redraw_screen() to ensure that the base layout (view, hud, and messages) is fully rendered before rendering any popups (if there are any). viewwindow() does not render the main view if the player is currently running, however, so if autoexplore is paused during a prompt (e.g. the inventory full during pickup prompt or rune pickup force-more), the view is not fully rendered on either tiles or console. This commit fixes this issue by only skipping rendering while running if the current mouse_control mode is MOUSE_MODE_NORMAL. Prompts via more() and yesno() change the mouse mode, forcing full rendering. This commit also fixes the turn counter not being updated while running, and partially fixes the more prompt while running. Currently, at least on local tiles, resizing the window causes the --more-- line to disappear, due to the way the message code is structured.
Scattershot and Cloud cone were incorrectly using a fake_beam tracer to determine when to be used as wand spells, instead of the relevant tracer functions from mon-cast.cc
[ Committer's note: Squashed and rebased. Closes crawl#1109 ]
Ability slots need to be claimed before setting initial piety. This is because if a player's starting piety is at least 1*, the local tiles version will trigger a redraw of the ability tab, a side effect of which is to fix any available but unassigned abilities using the default logic (starting at f) rather than the god ability rules (a-e + X).
Divine abilities are blocked by silence, but renouncing your religion isn't really a divine ability.
The cause was an unintentional fallthrough.
The function get_monster_equipment_desc already tried to get a description including what is quivered, but this part of the inventory wasn't copied from the monster to its corresponding monster info. This commit makes that copying happen. This allows players to rely less on animations to tell which monsters are doing what.
Update conditions for including information about monster gear in the
"comes into view" message in several ways:
- monster gear is all identified, so no need to check that
- now warn for all artefacts as well as for branded equipment (an orc
warrior with Maxwell's Patent Armour is often at least as interesting as
an orc with branded plate, but its armour wasn't noted)
- the old rules were not warning for wands in the alt weapon slot (I'm
not clear on whether this can even happen?) if they were not offensive
wands. The rules for warning about wands shouldn't depend on what slot
the wand is in. Also one often wants to be warned or force-mored for
monsters with wands of digging, despite their being non-offensive. That
leaves wands of random effects as the only non-offensive wand; rather
than special casing the single wand type, we warn for all wand types.
[ Committer's note: Monsters may learn to use random effects in the
future, this is good future proofing. ]
When multiple monsters come into view at the same time, the game warned you if a monster was using a dangerous weapon but ignored other equipment, even if that equipment was interesting enough that it would be flagged if the monster were alone. This commit liberalizes what the game is willing to note. It also changes the function to check equipment through the monster info instead of directly, on the grounds that warnings should be based on revealed information only. As a side-effect this liberalization also fixes a small bug with alerts for dual-wielding monsters. This commit increases message spam, which is unfortunate. But warnings about what items monsters have are relatively important messages, especially since many players use force_mores to warn about dangerous monsters. [ Committer's note: Squashed and rebased. Reworded one commit message since the change had been implemented in trunk but the commit contained helpful comment clarifications. Closes crawl#1215 ]
Through 0.25-a0-277-g7046ed1b37.
The range check always considered it to be cast with power -1 so would falsely claim that no enemies were in range when the flash reached radius 3.
This is sort of a quick fix. e48d713 changed the behavior of split_string so that it parsed '' into a single segment '', where before it would turn '' into an empty segments list. The old behavior implicitly prevented the log replay from filling the buffer with many empty lines. This commit fixes the issue by restoring the old behavior just for log replays, and doesn't address the question of why these empty log messages are there in the first place.
And improve its descriptions.
Use the predefined aux armour list in dungeon.lua instead of making our own list, use better syntax for NSUBST, and clean up statement alignment.
Prepare to get slurped! Swamp worms line a narrow corridor of Zot traps with briar patches on either side. The worms are contained by lava and try to collide the player with lava, the briar patches, or the Zot traps, depending on the player's position and whether they are flying. Either flying over the lava or destroying the briar patches offer paths to the loot. Loot consists of good jewellery and aux armour along with some star items. Number of worms and loot items scale with depth, which is D:12-$ and Swamp. Original notion suggested by mikee, but you can definitely blame me for everything about this vault.
Includes an undead lerny (which should generally be weaker than a living lerny; the only one that does more damage is simulacrum which is 8 speed and low MR). Equal chance of the rune being in each lobe. Yred lobe has 2 vampire knights, assorted yred gifts and some undead hydrae/drakes. Fedhas lobe has several thorn hunters/shambling mangroves, 2 spriggan druids, and a handful of oklobs. The antechamber is watery, and populated by a bunch of swamp drakes/dragons and an undead Lerny.
act->as_monster() returns nullptr for the player, so some check like this needs to happen. Not immediately sure if clouds under the player should return 0 or a negative value, this goes with negative.
When starting up the game and opening the seed selection dialog, the game fills in a seed and attempts to sync that to the js client. If the js client doesn't receive and process that message fast enough, it will send a sync message to the game with a blank text field; in my local setup these actually cross paths and things end up in an inconsistent state: the game thinks the field is empty, but there is still a number showing on the client side. (If the player does more things in the UI that number will be resynced, so it is only on immediately pressing enter that there is buggy behavior.) This fix is very brute-force, and I'm not sure it'll really get all the cases. I'm generally worried that this syncing mechanism can have race-cases like this beyond just the game start, and also it seems like the possibility of messages crossing paths might need to be dealt with more consistently.
This started just as an attempt to get the seed input dialog to be focused on game start, but that led to various other issues: * [enter] only begins the game when seed selection or the begin game button are selected. * ctrl-v now works for pasting. * the [enter] button is disabled when there is no valid seed (rather than acting like esc in that case) * full pregen button is reenabled offline, there is still demand. * hotkeys -, p, and d now work when the seed input box is focused. * hotkeys -, p, d now cause the seed input box to become focused. * a bug (I think) where hotkeys always preempt other events, even if their handler returns false, is fixed. (I could be misunderstanding the intent here, as this looked semi-purposeful -- but this doesn't seem like the behavior that would be intended.) * other formatting / wording tweaks. Main remaining issues that I know of: * clicking enter while - or d buttons are selected (via tab) in webtiles still starts the game if it can; in local tiles it does nothing. This seems to be because clicking on a button in webtiles doesn't change the focus. * in all platforms, hitting [esc] while anything is focused defocuses it. This is most weird in the seed input box, on tiles/webtiles, where players won't have been as likely to navigate the ui with keys, and so will be expecting [esc] to cancel. * webtiles could use some visual tweaking * if you hit esc from the species menus after seed selection, it returns to the main menu instead of seed selection. * It's posible this ui should give some clearer indication that entering 0 will actually start a different game type than anything else.
There was a crack in the stone wall surrounding it
This function was routinely called with *act->as_monster(), which is a fairly bad paradigm since player::as_monster() returns nullptr, and so a segfault was guaranteed of a protecting monster check is missed. As long as this is so, it is better for this function to take a monster pointer instead of reference.
This prompt should trigger for monsters that are not protected by fedhas, rather than players that are not protected by fedhas.
Single-use dungeon feature that can enhance (or damage) a non-artefact weapon/armour item.
0b78b11 to
579c8d2
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Single-use dungeon feature that can enhance (or damage) a non-artefact
weapon/armour item. The success chance decreases with increasing
enchantment/ego level. On success, add enchantment or an ego; failure
can do the opposite.
Has a few bugs right now.