00:42:31 Unstable branch on crawl.kelbi.org updated to: 0.32-a0-898-g7811c86cf0 (34) 00:42:31 Unstable branch on crawl.kelbi.org updated to: 0.32-a0-898-g7811c86cf0 (34) 00:44:02 Fork (bcrawl) on crawl.kelbi.org updated to: 0.23-a0-5186-gbdc6987af4 00:44:02 Fork (bcrawl) on crawl.kelbi.org updated to: 0.23-a0-5186-gbdc6987af4 03:02:32 <06m​umra> Was having a bit of a delve into webtiles code and how it's performing in the browser. Some observations: - There is no js bundling, the static js files are copied as-is to the output dir. So the browser has to make dozens of requests to the server, and there is 2mb+ of js which would be a fraction of that with minification. (The server does use gzip to compress files over the wire so it's not that terrible, but - Because there is no 03:02:33 bundling, there is also no linting or static checking at build time. There are great tools for this these days (there is eslint, and modern js syntax has a built-in import/export syntax rather than the 3rd party module system used here, with the import/export syntax it's possible to perform all kinds of static checking during the bundling, as well as automatic dead code removal; and you get a way better dev experience like code completion, function 03:02:33 parameter hints etc) - Also noticed, all the title art gets downloaded when you're in the lobby. Only really need to download the one that you actually display. On top of that, once you've been in at least one game, all the js assets are cached so the next game will start instantly, so the next title screen flashes up for about 1ms. It'd probably be better to display a title image in the lobby itself, especially with bundling as I mentioned it shouldn't 03:02:34 ever take the game assets very long to download. 03:06:22 <06m​umra> Also I made a Dockerfile so you can build and start a local webtiles server in about 2 steps with no prerequisites except docker itself, i'll submit that later (just need to finish readme) 03:12:22 <06m​umra> I needed to make some webtiles changes for player blindness and in the process realised screen flashes in webtiles are not consistent with desktop ... it'd also be nice to implement the other animation effects like Shatter screen shake 🙂 ... it is turning into a huge rabbit hole but javascript is just horrible to work with without proper tooling 03:25:21 <06m​umra> The one major issue with switching to import/export modules is that every js file's indentation will move up 4 spaces because we lose the wrapping function that does the imports and localises the scope, instead all the code is top level and every file is automatically locally scoped. Which is a good thing because now you don't have a pointless indent and scope is safer, but it will probably cause big headaches for anyone with a branch or 03:25:22 a fork with js changes. 03:32:08 Experimental (bcrawl) branch on underhound.eu updated to: 0.23-a0-5186-gbdc6987af4 03:51:48 <05i​coson> hope docker would not be required 03:54:01 <05i​coson> if that change is just to make it easier to run now, fwiw it's already two steps 04:00:04 <05i​coson> I guess more generally, pls keep in mind that webtiles server runs from trunk and the non-version-specific code (on the js side, mainly webserver/static/scripts) needs to remain compatible with older versions 04:09:50 <05i​coson> also, any build steps need to be runnable on a (potentially potato) server 04:11:59 <06m​umra> Yes it's just adding an additional way to run it 04:12:21 <06m​umra> There are a few more steps involved if you don't already have python (or the correct version) installed 04:12:52 <06m​umra> Hmm i guess that is required anyway for crawl build 04:13:35 <05i​coson> yeah, iirc it's just pyyaml and python 04:14:06 <06m​umra> You can also just use it as a general crawl build container 04:14:20 <06m​umra> Since it has all the deps ready installed 04:14:26 <05i​coson> makes sense, I'm sure people will find that useful 04:15:19 <06m​umra> That'a good point, we would still need to know how to load old-style requirejs game code 04:15:39 <06m​umra> Until some future time when nobody is hosting those versions anymore 04:17:12 <05i​coson> the story of online crawl dev 04:17:39 <05i​coson> I've always wished there was a way to separately version webtiles server from the game itself, but I've never really come up with anything good for that 04:17:42 <06m​umra> That time might be never given how many versions are still available online 04:17:42 <06m​umra> https://cdn.discordapp.com/attachments/747522859361894521/1225403922227658783/image.png?ex=66210155&is=660e8c55&hm=00b9daa3570a116bb5a3b0f9319db5834a93f93e248c05a5b55c20cc426ed687& 04:18:11 <05i​coson> haha yeah 04:18:27 <05i​coson> which server is that? 04:20:29 <05i​coson> also, alexjurkewicz/chequers was recently working on a complete webtiles modernized rewrite, not sure where that got to (I guess not to PR stage) 04:20:38 <06m​umra> that's underhound.eu 04:22:26 <05i​coson> the "has to build on server" thing always seems like an unfortunate blocker to modernization afaict (I'm not a web developer) 04:23:17 <05i​coson> there's probably alternatives, like doing some steps in ci 04:23:18 <06m​umra> i can probably imagine why, it's be a nice thing but it's be a huge task. for what is just a frontend it's hugely complicated. and webtiles doesn't change often but it's still a moving target 04:24:02 <06m​umra> so yeah if there was a bundler we could then output the artifacts in a CI step and release that as a package 04:24:24 <06m​umra> just have that bit done in a nodejs container 04:24:27 <05i​coson> alex's thing at first glance would have seemed to require servers to be able to run docker, for example 04:24:39 <05i​coson> yeah 04:25:10 <06m​umra> right, well he was probably designing it as something that can be deployed on docker hosting 04:25:18 <06m​umra> but that doesn't mean they have to run docker 04:25:29 <06m​umra> anything that's running inside a docker container you can just run on a normal system 04:25:55 <06m​umra> the dockerfile just codifies the steps of how you would set up another system to exactly the same state 04:26:01 <05i​coson> I think this is the branch: https://github.com/alexjurkiewicz/crawl-ref/tree/webtiles-client 04:30:06 <06m​umra> oh he's done a lot actually 04:39:52 03advil02 07[ci-python-fix] * 0.32-a0-888-g4d140d736b: build: fix macos ci? 10(2 days ago, 1 file, 494+ 490-) 13https://github.com/crawl/crawl/commit/4d140d736b73 04:40:21 <05i​coson> this stupid ci issue has become extremely heisenbug-ish this time 04:40:44 <05i​coson> last night I had an instance where one job triggered it and one didn't 04:49:25 03advil02 07[ci-python-fix] * 0.32-a0-888-g78e9a4eadf: build: fix macos ci? 10(2 days ago, 1 file, 505+ 490-) 13https://github.com/crawl/crawl/commit/78e9a4eadfd2 05:04:16 03advil02 07[ci-python-fix] * 0.32-a0-888-g8ed2c03195: build: fix macos ci 10(2 days ago, 1 file, 28+ 2-) 13https://github.com/crawl/crawl/commit/8ed2c0319509 05:08:55 <12g​e0ff> re: bundling files for WebTiles. Because loading the client takes 96 requests (!), sometimes the browser can get stuck. 05:09:19 <12g​e0ff> Like, if you don't have all the resources cached, then clicking "Play trunk" downloads everything and the browser gets stuck on the Loading... screen, so you need to reload the page to actually start the game. 05:10:51 <12g​e0ff> also, as mumra said, downloading 8 mb of title screens just to show the lobby is pretty bad 05:11:12 <05i​coson> yes, the initial download step after a server restart is one of the heavier things for the server as well (it is usually cached after that) 05:11:38 <05i​coson> tile sheets are probably worse than the title screens though 05:12:14 Unstable branch on crawl.akrasiac.org updated to: 0.32-a0-898-g7811c86 (34) 05:13:17 <12g​e0ff> the tile sheets - feat, floor, gui, icons, main, player, and wall.png - are 4.1 mb 05:13:41 <05i​coson> ok yeah, it's not worse 05:14:30 <05i​coson> one other thing is that those title screens are extremely varied in size both in terms of display and download 05:15:49 <05i​coson> there are some that always seem too big in webtiles? 05:16:05 <05i​coson> I haven't paid consistent attent because I'm usually trying to fix something else 05:16:53 <12g​e0ff> title_SpinningBird_djinn_sears_gnolls.png is the biggest, 1573 x 1174 (which doesn't fit on a 1080p screen) 05:18:08 <05i​coson> ah yep that's one of the ones I have noticed 05:21:15 <12g​e0ff> (there's also title_micah_c_ereshkigal.png, 1125 x 1125; others seem fine) 05:33:58 03advil02 07* 0.32-a0-899-geb5ba95c15: build: fix macos ci 10(2 days ago, 1 file, 28+ 2-) 13https://github.com/crawl/crawl/commit/eb5ba95c1518 06:21:28 -!- hedy- is now known as hedy 07:30:21 <06m​umra> at least there are only a few of them, and they're already packed pretty efficiently 07:32:09 <06m​umra> (could also separate the storage of the tiles from being tied to the version of the game, and store them against a hash of the tileset: then tiles can be cached locally across releases where there have been no graphical updates) 07:33:24 <06m​umra> i feel like this could be resized for desktop tiles as well 07:34:34 <06m​umra> i wonder if this might be clicking Play too quickly, before all the assets have downloaded in the lobby (e.g. title screens) 07:34:44 <06m​umra> But yeah 96 requests is a lot 07:53:08 <12g​e0ff> Pressing Play Trunk too quickly or loading the lobby/title screens doesn't seem relevant to being stuck on the Loading screen at all. 07:53:20 <12g​e0ff> It happens every 1st load, when nothing's cached, or when opening a direct Play Trunk link like https://crawl.xtahua.com/#play-dcss-git in Incognito mode (which guarantees that the cache is empty) 07:53:36 <12g​e0ff> All resources are downloaded, status 200, but it's just stuck like this for 5 min: 07:53:37 <12g​e0ff> https://cdn.discordapp.com/attachments/747522859361894521/1225458256915206154/stuck.png?ex=662133f0&is=660ebef0&hm=cf60de63b00a0e7aea3d562489f7b0980092b22fa6710e521b2573561107fe00& 07:54:00 <06m​umra> what you can't see in the requests tab is websocket errors 07:55:05 <06m​umra> https://cdn.discordapp.com/attachments/747522859361894521/1225458630267113584/image.png?ex=66213449&is=660ebf49&hm=2885ee47bbcebe5c9c80408073bd88a6e74338642000770c0c0ecf6fae133ee2& 07:55:29 <06m​umra> If you click on the "socket" request and go to messages tab, now you can see all the websocket messages sent back and forth with the server 07:56:13 <06m​umra> So maybe something is actually going wrong here rather 07:56:36 <06m​umra> (Oh you can also check in main "console" tab for javascript errors of course) 07:57:25 <12g​e0ff> > Uncaught Error: Load timeout for modules: app > http://requirejs.org/docs/errors.html#timeout > at B (require.js:8:220) > at E (require.js:13:440) > at require.js:14:109 07:57:35 <06m​umra> Ah well there we go 07:58:38 <06m​umra> So yeah because require js is loading modules as needed asynchronously, this is actually terrible on a slow connection because it has to load each one before it can know the dependencies of that one, and so on (i assume) 07:59:12 <06m​umra> Bundling all the code would completely bypass this anyway 08:00:42 <06m​umra> We'd end up with two bundles: main lobby bundle, and the game bundle per release 08:02:43 <12g​e0ff> a side note: it's pretty funny when you load an old version like 0.16 and get a loading screen art that was added just a year ago. 08:10:58 <12g​e0ff> CWZ has a bunch of additional title screens, so their lobby must be the heaviest: "103 requests 14.96 MB / 6.14 kB transferred" 09:15:20 <05i​coson> I'm not sure what's going on there exactly but when I've seen load timeout errors like that in the past it's something more going on with the server 09:25:30 <12g​e0ff> i just tried cbr2 and cao and both got stuck on Loading... with the same require.js error 09:26:11 <12g​e0ff> this error appears in DevTools' console almost immediately, in less than 2 sec 09:28:10 any chance it's trying to load a remote (i.e. not yours) resource? 09:28:50 I have a completely unrelated page that is just spinning, I'm wondering if some common bit of JS somewhere has gone missing 09:36:46 <05i​coson> yeah, I'm not seeing that on cao in a private browser tab 09:39:06 <05i​coson> firefox/chrome 09:39:19 <05i​coson> I guess it's dependent on connection speed though 09:39:27 <05i​coson> looks like the default require.js timeout should be 7s 09:42:13 <06m​umra> if that was the case you should see something in the network tab though 09:42:17 <06m​umra> an unfinished request 09:42:46 <06m​umra> or a 404 on the missing script 09:45:21 <06m​umra> it's actually easy to reproduce the issue 09:45:36 <06m​umra> chrome has a throttling feature in the network tab 09:45:50 <06m​umra> https://cdn.discordapp.com/attachments/747522859361894521/1225486502591598692/image.png?ex=66214e3e&is=660ed93e&hm=40cb94cbe241b92ef113e17a20cfc9583316c4522135e56ea6726631abc1a44b& 09:46:02 <06m​umra> on Slow 3G, not even the lobby loads 09:46:06 <06m​umra> same timeout error 09:48:11 <06m​umra> on easy win would be setting the timeout to something much larger so at least things will load eventually 09:52:57 <06m​umra> ok the other thing happening is that all the title screens start downloading before any js modules start loading 09:53:40 <06m​umra> so the whole thing is stuck until most title screens are down 09:54:03 <06m​umra> hmm, would be a sensible time to show a title screen, while all these images are downloading 😂 09:55:04 <06m​umra> similar thing happens with all the tiles downloading before any of the game js 10:10:51 <05i​coson> yeah I noticed that too, no idea why it has that load order or why it really needs to load them all 10:11:19 <05i​coson> for the titles 10:11:48 <05i​coson> if the image load times are interacting with the require.js timeout that seems extremely bad 😄 10:12:35 <05i​coson> although a few years ago we probably had half the number of title images, and all of them were small 10:12:41 <05i​coson> tile sheets also used to be a lot smaller 10:12:51 <05i​coson> so probably there was a time when none of this mattered 10:16:19 <06m​umra> yep 10:16:36 <06m​umra> and average internet speeds have gone up a lot too so your average dev doesn't notice 10:16:40 <06p​leasingfungus> one very quick hack would be to downsize some of the ultralarge title images, if we're concerned about that 10:17:41 <06m​umra> it's still the sheer quantity of images, because the browser has a limit to how many requests it'll actually queue (i think it's 12) 10:17:43 <06p​leasingfungus> ahh 10:18:31 <06m​umra> and the images all get queued immediately, and require modules end up after them 10:20:57 <06m​umra> ideally you'd load all your lobby js before any images, then load one title screen, then if you're feeling proactive you could start preloading the tiles and js for the latest trunk gamedata 12:45:46 relying on fast internet is like relying on a politician, a very very very foolish notion. 13:02:19 -!- thornAvery is now known as Guest7841 13:11:14 -!- Menchers is now known as RadicalOrchid 15:36:29 Unstable branch on underhound.eu updated to: 0.32-a0-899-geb5ba95c15 (34) 15:48:03 03mumra02 07https://github.com/crawl/crawl/pull/3746 * 0.32-a0-899-g22c5578b39: Wand of Light can now Blind players 10(5 days ago, 11 files, 86+ 7-) 13https://github.com/crawl/crawl/commit/22c5578b3970 15:48:03 03mumra02 07https://github.com/crawl/crawl/pull/3746 * 0.32-a0-900-g2caf002fac: Fix a comment 10(5 days ago, 1 file, 2+ 4-) 13https://github.com/crawl/crawl/commit/2caf002facf3 15:48:03 03mumra02 07https://github.com/crawl/crawl/pull/3746 * 0.32-a0-901-g82339fc7cb: wip tiles display 10(3 days ago, 11 files, 58+ 15-) 13https://github.com/crawl/crawl/commit/82339fc7cb75 15:48:03 03mumra02 07https://github.com/crawl/crawl/pull/3746 * 0.32-a0-902-g8841fb69b0: Dockerise webtiles 10(25 hours ago, 6 files, 119+ 24-) 13https://github.com/crawl/crawl/commit/8841fb69b0a8 15:48:03 03mumra02 07https://github.com/crawl/crawl/pull/3746 * 0.32-a0-903-gb94c5f2df7: Implement flashes properly in webtiles 10(3 minutes ago, 5 files, 22+ 54-) 13https://github.com/crawl/crawl/commit/b94c5f2df73e 15:48:03 03mumra02 07https://github.com/crawl/crawl/pull/3746 * 0.32-a0-904-g78304a0f09: Blindness tweaks and bugfixes 10(2 minutes ago, 6 files, 18+ 13-) 13https://github.com/crawl/crawl/commit/78304a0f092b 15:50:06 <06m​umra> Current visual effect for player blindness looks like this 15:50:07 <06m​umra> https://cdn.discordapp.com/attachments/747522859361894521/1225578171580026910/image.png?ex=6621a39e&is=660f2e9e&hm=8ad980108fa8ee9149b2103ddbf77ee11822e97c1a8eadcc995fc60c6971bd79& 15:51:05 <06m​umra> It's using the flash code (with added opacity per cell). Flash colour can change depending on the source of the blindness, but this is for dazzled by a light wand 15:51:15 <12e​bering> have you tested with Ba/Ko 15:51:20 <12e​bering> and scarf of darkness 15:51:34 <06m​umra> not tested but i did allow for them in the math 15:51:41 <12e​bering> 👍 15:52:00 <06m​umra> https://cdn.discordapp.com/attachments/747522859361894521/1225578648439095389/image.png?ex=6621a40f&is=660f2f0f&hm=d7cbb35e979142c8837cce8455852d1b95526ee671afae6fedd809ce7609dc27& 15:52:14 <06m​umra> barachi just gets 1 extra radius at slightly higher opacity 15:53:05 <06m​umra> the effect on accuracy increases by distance from player so barachi just gets affected worse at max range than other characters (and kobold/scarf means you are less affected) 15:53:27 <09g​ammafunk> this seems like it wouldn't work at all in console 15:53:34 <06m​umra> no, in console there is no effect 15:54:26 <06m​umra> but you can still see your % to hit when you aim at things so they aren't losing information 15:54:50 <12e​bering> !clap 256 color term support for crawl 15:54:51 <04C​erebot> 👏 256 👏 color 👏 term 👏 support 👏 for 👏 crawl 👏 15:54:57 <12e​bering> (some day) 15:55:11 <06m​umra> yes that would give options 😉 15:58:41 <06m​umra> you could do something in console like giving a white background and dark glyph like a silhouette, but then you lose other information (but i think it's fine for console players to just know they have Blind status and see the bad % anyway) 16:01:03 <06m​umra> (maybe a tile overlay would look better, like little sparkles increasing in density further from the player; and different tiles for different blindness sources; but this is at least simple and doesn't increase tileset size. and as a bonus I fixed the webtiles flash code which was working a whole different way than desktop tiles) 16:02:06 DimondSprtn (L20 FeAr) ASSERT(_valid()) in 'ray.cc' at line 107 failed. (Vaults:1) 16:06:16 <06p​leasingfungus> mumra: recommend leaning toward subtlety with the visual effect 16:06:25 <06p​leasingfungus> don't want players to be squinting to figure out what's going on 16:06:29 <06p​leasingfungus> immersive though that'd be 🙂 16:07:19 <06m​umra> haha 16:07:26 <06m​umra> honestly it's like you're really there 16:19:53 03mumra02 07https://github.com/crawl/crawl/pull/3746 * 0.32-a0-905-g73ef28ffdd: Tone it down a bit 10(77 seconds ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/73ef28ffdd1e 16:20:48 <12g​e0ff> looking forward to antiflashbang hacks for dcss :kobold: 16:20:53 <06m​umra> i've toned it down a bit, it's hard to strike a balance between visually communicating how the effect is worse over distance vs actually making the player blind 16:21:54 <12g​e0ff> (the effect looks very cool though) 16:27:15 <06m​umra> an actual graphical overlay would probably be easier to get right, but i don't mind the current state (and it's easy to tweak) 16:30:12 <06m​umra> the alpha channel for the flash could be useful elsewhere too (like, maybe the toxic radiance green could fade out over a few turns) 16:35:44 <06m​umra> something i'm not sure about: i added blindness both to the chaos effects list and also to klown pies. if more chaos monsters came to zot then having it on pies as well seems overkill. but it seems so obvious that a pie in the face could possibly blind you (it would literally be the one klown pie effect that you could actually reason might be there). so also wondering if there should just be a fixed chance for any pie to blind you, on top 16:35:45 of whatever randomised effect you rolled? 16:36:36 <04d​racoomega> I don't think pies need double effects. An individual blinding pie seems fine. Somewhat uncertain about blind being on the chaos list. 16:37:14 <12e​bering> if it's on the "regular" chaos list I'm a no 16:37:21 <12e​bering> if it's on the "bonus" chaos list then yes 16:37:39 <12e​bering> (the bonus list is funni and small enough probability that it's part of the hazard) 16:43:17 <06m​umra> by bonus list do you just mean the lower probability ones? 16:44:07 <12e​bering> last time I messed with chaos it went in two rolls 16:44:19 <12e​bering> roll 1 picked from amongst the usual AF_ brands 16:44:21 <12e​bering> if it came up chaos again then it went to a bonus list 16:48:40 <06m​umra> yes you are right 16:49:00 <06m​umra> and this how i implemented it (the bonus effects are in a chaos_effects vector which i added to) 16:49:17 <06m​umra> i just missed that there was an initial roll 16:50:53 <06m​umra> and i think that's only true for melee and ranged; for clouds it always uses the bonus list 16:57:27 <06m​umra> for now i'll keep it how i've done it. there are extremely few sources of the effect anyway until any monsters are added that specifically use it. dazzling flash isn't even available to ghosts 17:01:36 <06m​umra> maybe could be used in a couple other niche places, like zin or gozag penance 17:35:07 <04d​racoomega> I intended to implement Fusillade and a couple other things today and instead have spent literal hours debating specifics of its operation (and that of several other spells swirling in a nebulous cloud together) 17:36:02 the only thing worse than crawlcode: crawlbikeshed 17:47:48 <04d​racoomega> There's been a bunch of partially-overlapping concepts that I've been trying to disentangle. Concepts that needed 'a little bit more', except all of the things I could think to add were too much more. Then some of that maybe getting split off into something else entirely and so forth 18:12:27 03DracoOmega02 07* 0.32-a0-900-g30fb1b0edc: Don't let Coglins equip jewellery when polymorphed (ragingrage) 10(9 minutes ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/30fb1b0edc33 18:23:07 <04d​racoomega> Somehow an alchemy draft may be becoming earth/air. Maybe?? 18:27:29 <06p​leasingfungus> ooh, earth air 18:35:54 <06d​olorous_84348> Thematically, it can work. I remember some ancient idea (I think it was on Mantis, when that was the way to report bugs/feature requests, but I don't remember exactly who came up with it) of making an earth/air spell called Summon Dust Devil. 18:42:31 <04d​racoomega> The design history of this particular idea is extremely long and old versions don't even resemble it at all, but the most recent swerve was like... a high level alchemy/conj spell with unusual targeting/beam behavior called '[something] alkahest' (another iteration on the whole 'gather/collect materials in combat for alchemical purposes') And it wanted a bit more than just the unusual aiming, but possible ideas kept being either 18:42:32 too complex or having other implementation issues. (For a while, I liked the idea of grabbing a resist off of the monsters you hit based on the resists of the monsters you hit. Essentially decomposing part of their structure and reconstituting it for yourself. But so many nonliving things just resist everything that I wasn't sure there was any intuitive logic of what the player 'should' get from hitting them. Even orbs of fire resist everything, even 18:42:32 if the obvious thing you 'should' get from them would be rF (and not rC). Not sure there's any non-ad-hoc way to do this) 18:43:36 <04d​racoomega> r-i felt that a simple primarily irresistible thing wasn't feeling 'alchemy' enough, so I wondered at moving it somewhere else 18:46:04 <04d​racoomega> The targeting idea - hasn't been implemented/tested, so I can't vouch for it yet beyond interest - was essentially 'Smite target a 3x3 area, and then it fires a penetrating beam at each enemy in the targeted area.' No damage from the smite itself, just the beams. But this means that you can hit things in the front multiple times, even targeting it behind closer enemies to hit all of them multiple times. But at the same time, you 18:46:05 want to maximize the number of targets in the aimer, and denser clusters may be closer, etc. 18:47:22 <04d​racoomega> Earth/air flavor was marking the enemies with highly conductive magnetic debris that acts essentially as a lightning rod to attract a built up charge at them specifically 18:47:56 <06d​olorous_84348> Yes, that works. 18:49:43 <04d​racoomega> I dunno if it has too much nearby design space competition for [electric damage to an area with unusual targeting] between arcjolt and chain lightning, though obviously the schools are different. Had been thinking level 7, maybe?? 19:00:03 <06d​olorous_84348> The penetration angle seems to make it easier to determine what's going to be hit than the bouncing-between-enemies angle of Arcjolt, and (I think, since I haven't used it outside of wizard mode) Chain Lightning. 19:02:09 <04d​racoomega> Chain Lightning is the complicated one. Arcjolt is pretty simple. (Just 'All enemies in radius 2 of the player, and then all enemies adjacent to those) 19:02:39 <06d​olorous_84348> Ah. 19:02:42 <04d​racoomega> (Chain Lightning is super complicated, but fortunately it's not actually very required to understand how it works since you just cast it a few times and everything dies) 19:03:02 <06d​olorous_84348> I've watched playthroughs involving it, and that's certainly what it looks like 🙂 19:03:24 <04d​racoomega> I mean, by the time you get a level 9 dual-school spell operational, you're allowed a certain degree of 'And then the room just died' 😛 19:03:34 <04d​racoomega> (It is also extremely loud, of course) 19:04:37 <04d​racoomega> I wonder if there's any conceptually simple way to make this Magnavolt spell not just be lightning beams that are aimed oddly. 19:04:44 <06d​olorous_84348> Well, yes; spells like "Blow Everything In Sight Up With [Element], But Named More Sophisticatedly" tend to be like that. 19:06:31 <06d​olorous_84348> You could lean into the magnetism angle, and have certain metallic enemies affected more by it, but that may not be as simple as you're looking for, since it would probably involve a list of properties like that of LRD. 19:07:06 <04d​racoomega> Yes, unfortunately. (And what Earth often brings to the table in terms of hitting things is either plain damage, or damage that is strongly affected by armor, which is the opposite of what electricity is doing here) 19:10:14 <06d​olorous_84348> Hmmm. Hitting living things with electricity can stop their hearts, but the in-game equivalent would probably lean more toward necromancy. 19:12:12 <04d​racoomega> What else can we do with magnets? (That isn't moving things around, since I already just added multiple sources of that ^^; ) 19:12:40 <06d​olorous_84348> Levitation? 19:13:08 <06p​leasingfungus> earth can also do mud, barbs, maybe the vague concept of 'slowness' ala petrify 19:13:28 <06p​leasingfungus> (barbs probably not correct for a high level spell or relevant here generally) 19:13:36 <06p​leasingfungus> (just continuing to incept that one into the discourse) 19:15:07 <04d​racoomega> I thought about petrify for a bit, though it does feel silly to give damage-resistance to the thing you're directly blasting (although you're also using it as an anchor to blast other things....) 19:19:29 <02M​onkooky> I feel like long/delayed casting is a good niche to develop for earth 19:20:31 <04d​racoomega> Hmmm 19:20:56 <06r​egret-⸸nde※> Somewhat awkward of an identity, of course, considering that DoTs are heavily represented between Ice and Alchemy. :P 19:21:35 <02M​onkooky> eh, I'm thinking more in the vein of sandblast/passwall/petrify 19:21:44 <06r​egret-⸸nde※> Boulder too, I guess? 19:22:19 <02M​onkooky> not a damage over time, but a non-immediate spiky effect 19:22:32 <04d​racoomega> Delayed casting is slightly awkward when you're using mobile things as the end points of the beams you're actually shooting. Slowcasting is a possibility, though I wonder if that feels awkward with positioning moving here, too?). Toying around in my head with 'mark the targets in the AoE' and then spend the next couple turns blasting them in a channelled fashion as you're stuck in place. 19:22:38 <06p​leasingfungus> how could i forget! 19:23:15 <02M​onkooky> shoulda studied spells.txt more! 19:23:45 <02M​onkooky> (odds are very low spells.txt has anything germane in it) 19:23:52 <06r​egret-⸸nde※> (I'd say a niche for giving earth another identity facet would be making more seperate "entities", but I've already convinced Draco of the merits of a certain refraction spell idea, so.) 19:24:40 <04d​racoomega> Then again, I guess we could always root the marked enemies in place for as long as the spell delay is, since you can't actually use that to kite or anything. They could still shoot at you while you're delayed. (But I worry that the aiming would feel dissatisfying or fiddly if you'd need to predict which other monsters would move in or out of the beam path by the time it fires) 19:25:58 <04d​racoomega> Wondered slightly at making like... brief-lived fire-vortex-esque things out of magnetic metal and electricity on tiles of things that were marked and also killed by it. Some kind of scrap golem. But that may be the wrong end to work at here entirely. 19:26:44 <06r​egret-⸸nde※> (Reading my rewrite of spells.txt reminds me I forgot to mention a single aspect of Earth beyond the irresistable single-shots and fragmentation damage.) 19:27:12 <04d​racoomega> Everything you kill creates a lightning spire 19:27:29 <06r​egret-⸸nde※> If only I had a screenshot of Sprigganmaker immediately on hand. 19:27:36 <04d​racoomega> "A stone giant-shaped lightning spire.", "A caustic strike-shaped lightning spire." 😛 19:33:41 <12e​bering> coding that up for next april 1 19:37:41 <12e​bering> "Nikola's Touch" 19:37:41 <12e​bering> available in a randbook dropped by Nikola only 19:37:41 <12e​bering> (and sif gifting) 22:35:38 Unstable branch on crawl.develz.org updated to: 0.32-a0-900-g30fb1b0edc (34) 22:59:02 Windows builds of master branch on crawl.develz.org updated to: 0.32-a0-900-g30fb1b0edc 23:12:59 Unstable branch on cbro.berotato.org updated to: 0.32-a0-900-g30fb1b0edc (34) 23:55:49 Monster database of master branch on crawl.develz.org updated to: 0.32-a0-900-g30fb1b0edc