forked from crawl/crawl
-
Notifications
You must be signed in to change notification settings - Fork 0
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
Mumra/fix macos build #1
Closed
Closed
Conversation
This file contains 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
It was renamed Mercury Vapours awhile ago. Also add a placeholder tile for Mercury Vapours: a palette-shifted version of the Poisonous Cloud tile instead of a straight copy of it.
The initial numbers for this spell were intended to err on the side of 'too powerful'. And they were! Now that playtesting confirms the spell is strong, let's pull back on its damage a bit. The goal is for it to still be strong, just a bit less so.
When an item that has a randomized appearance (potions, staves) on the floor is rendered, the item's main tile is actually the "brand". The randomized tile gets added on later by calling add_main_tile which calls tileidx_known_base_item on the main tile when. This is a hack, but it lets you see the brands of identified items on the ground. However with randart staves, the main tile gets put in the special tile slot instead. Normally this won't cause any issues, but the local tiles inventory renders items as if they were on the ground. It calls add_main_tile on the special slot which then renders the randomized staff appearance on top of the randart staff tile. Fixed by not doing this for special tile slots.
Initial balancing of this spell was far too conservative. Players were wary of using it because of the -move after cast and the damage payoff was generally not good enough to make it enticing. I could adjust those things, but -move isn't very popular in general, so let's see if the unique aiming restrictions keep it from being too powerful even without any cooldown or downside attached. I have rescaled the damage-by-distance formula so that close range piledrivers are less effective than before (though max range ones can be somewhat *more* effective than before, depending on power) and lowered it to level 3. The hope is that this better addresses some of Warper's weak earlygame and entices more translocations investment. It may also benefit from being further away from the more flexible Vhi's. We'll see how this version fares.
Enemies with the PREFER_RANGED flag have a 10% chance not to shoot on any given turn where they have line of fire, and if they rolled this chance while adjacent to their target, were likely to try to melee attack them instead, which looked very silly (Master Archers don't even generate with melee weapons, so they'd just try to punch you!)
Technically they already tried to prefer blinking things away, but were so bad at it that I'm not sure anyone even noticed. (They simply picked TWO random valid destinations and would move the victim to the further of these two). This repurposes some existing blink_ranged code and in the process improves some jankiness with it to prevent this making the *worst* case for dispersal darts worse (even as the average case improves). Now the code will ignore possible destinations that are closer than where the blinker already is. (Yes, it was very possible for a monster to cast Blink Away and actually blink towards instead...) This is effectively a minor buff to monsters with Blink Away (and also Disjunction), but those spots were always downweighted so I don't think it's a significant balance change, so much as polishing off odd behaviour. Mostly, this is intended to buff Warper earlygame a small bit by making one of their trademark consumables better at its job.
There was virtually no reasonable use-case for doing so (and it even required stepping through multiple different confirmation prompts!). Dispersal darts were approximately the only case where this could bring the player any benefit but: a) That's kind of dumb b) You were very likely to miss anyway, so it would almost never be *actually* good to try to blink this way, anyway.
Blink Away will happily move the monster out of sight of their target (which is usually the player) while Blink Ranged attempts to create distance while still being able to see the target. It seems better behaviour in the majority of cases if enemies don't leave the range at which they can threaten the player altogether. I left Blink Away alone for summoners (who often benefit actively from leaving their summons to hit you, even if they can't see you themselves) and boulder beetles (because they can be so dangerous early on and them sometimes disappearing is a more of a mercy to the player than a nuissance)
In partial compensation for it being less likely to move them closer now instead. They're already quite dangerous, and being inside of their effective range is important counterplay.
I don't expect this raises the spell's power overly much, but avoids the unfortunate scenario of spending all your MP to overcome a monster's will only to have it land 2 spaces to your left and not improve your situation at all. Now it is at least guaranteed to land out of LoS (though nothing is stopping it from being immediately around the corner and walking back in, of course)
Remove stray pixels.
These are taken from the colour list used for the scrolls of random effects before they were removed in 00efbec, but with the rainbow colours removed; black, white, and grey removed; and alizarin crimson, saffron, and vermilion added.
Given that it's intrinsically music-based, possible this feels a little better than it being marked as 'quiet' if you examine it? (The exact amount of noise here is basically arbitrary)
You already couldn't use a friendly as the main target, but it was possible to slam an enemy *into* a friendly without warning. Now the player is warned properly.
The constriction interaction was even more weirdly buggy, as they could remain constricted on the other side of the stairs, even if the constrictor themselves was left behind on the previous floor. (Note: things the player is physically constricting will still follow you, as the very act of taking the stairs first releases them)
This commit attempts to make the macos CI workaround robust for all scenarios I have seen, and clearly document how it works.
This may have always been bizarrely high, but was a lot less visible before the recent-ish constriction changes that are more explicit about the damage it does - which is evidently a whopping 25-50 unavoidable damage *per turn*. Mutant beasts (which this is) use the same number as damage for all of their aux attacks, but the scale of damage done by a constriction attack really isn't on the same scale, so let's divide it a bit. (10-20 is still a decent bit)
regret-index plans to use them on Cerebov's level and it would be deeply silly to replace Cerebov's trademark sword with something else. But even in general, unrandarts are noteworthy enough not to overwrite with this effect.
As much as a swarm of angry fish ghosts savaging a lone plant is hilarious to imagine, it's a little much to subject the player to in many circumstances.
Also remove unneeded blank lines.
* Abominations earlier than post-Lair have been tweaked down slightly, due to large abominations being capable of rolling demonic crawler levels of regeneration and small abominations being harder to escape from. Aside from a few vaults, this noticeably reduces the highest rolls of small abominations in gauntlets and slightly lowers large abominations in Gauntlets overall, while reducing their count a bit in the Abyssal Lair end. A few other uses of abominations are mildly tweaked otherwise. * Undying armouries get another few uses in extended. One or two now place in most of Cerebov's vaults, finally emphasizing the steel part of their Fire and Steel title beyond iron shots and red devil tridents by using the armoury weapon granting gimmick on balrugs. (Since Cerebov's already plenty scary, these sparing placements are decently far away from Cerebov themself when possible.) They also get a use in earth zigs (which helps them further differentiate from Dis floors by arming gargoyles and giants), plus a grated ziggurat pillar. * Spider rune vaults at the outliers of kill rates have been slightly tweaked up or down accordingly, and the _arachne_lair vault previously at an acceptable middle-of-the-pack position has been nudged upwards in jorogumo count to the moving out Arachne from Spider. * Ossuary killrate top and bottom ends have been also nudged correspondingly towards the center, and two of the current weakest ones (silent_tomb and city_of_the_dead) both get the fresh new marrowcuda option.
Only player ghosts can do this presently, I believe?
When an enemy is killed in a way that causes their corpse to explode (eg: mindburst or iood) while worshipping Gozag, multiple piles of gold are scattered around the general area. The amount of gold in each pile is determined by randomly rounding 'total gold' / 'number of piles'. For medium-sized creatures specifically, if the player rolled the lowest possible amount of gold and the highest possible amount of chunks, it was possible for this to round down to 0 gold in a pile. Which was already specifically guarded against! Piles of 0 gold will not be placed by _explode_corpse. ...but _explode_corpse operates using a reference to the 'original' corpse and while place_monster_corpse attempts to destroy the corpse item after an explosion, destroy_item() specifically doesn't do anything to an item with a quantity of 0, so the original corpse (now gold) would remain with a quantity of 0. Mostly this was invisible, but upon leaving the current floor, attempting to save the present floor would trigger an assert for the 0-gold pile being invalid, causing this crash. Now just make sure that none of the piles ever has less than 0 gold in it.
To help integrate Nemelex vault-wise as a chaotic god, since there are Zin/Xom vaults and Zin/Makhleb vaults. This has (cosmetic) pink crystal walls, a talking Zin angel, and a talking goblin sharper worshipping Nemelex (only dialogue, no abilities). Note that the latter's dialogue provides minor spoilers as to what some cards do.
…hopefully
So that its messages consistently show up.
Monsters behind glass in vaults tagged as transparent need "opaque" KMASKs to tell the builder those spaces aren't actually breaking connectivity (since the monsters can't be freed without freeing up connectivity).
(Impassible is not the same as impassable, but the former is still a word in its own right.)
Orbs of destruction don't always blow up their targets.
The goblins sharper has enough dialogue now that it won't come up often anyway.
Also, make them more likely to show up than the other misplaced cards.
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.
No description provided.