Difference between revisions of "User talk:Ge0ff"

From CrawlWiki
Jump to: navigation, search
m (Unrelated rcfile question: Part 4 of the unrelated rcfile question saga)
m (Unrelated rcfile question: part 5)
Line 93: Line 93:
 
::: I talked to gammafunk about your rcfile questions on the [https://discord.gg/VEyx4Yk Roguelikes Discord]. It's unlikely that a function for getting the precise willpower would be added, mainly because lua functions shouldn't give more info than what's displayed in the UI. The devs are interested in having a way to check monster spells, though. Currently, lua API allows getting a list of monsters in your LOS, iterating over them, and checking their spells (see <code>monster.info:spells()</code> in [http://doc.dcss.io/modules/monster.html#monster.info:spells Crawl Lua API]; it's a bit outdated, but mostly relevant) What's missing is a function like <code>monster.info:spell_chance(spell_name)</code> that accepts a spell name and returns the same % chance, as displayed in the UI. It would provide a reliable way of detecting enemies with para chance > 0. This includes even pan lords who could have Paralysis at different spellpower (due to random HD). So if you know how to program in C++/lua, you could try submitting a pull request for this :).
 
::: I talked to gammafunk about your rcfile questions on the [https://discord.gg/VEyx4Yk Roguelikes Discord]. It's unlikely that a function for getting the precise willpower would be added, mainly because lua functions shouldn't give more info than what's displayed in the UI. The devs are interested in having a way to check monster spells, though. Currently, lua API allows getting a list of monsters in your LOS, iterating over them, and checking their spells (see <code>monster.info:spells()</code> in [http://doc.dcss.io/modules/monster.html#monster.info:spells Crawl Lua API]; it's a bit outdated, but mostly relevant) What's missing is a function like <code>monster.info:spell_chance(spell_name)</code> that accepts a spell name and returns the same % chance, as displayed in the UI. It would provide a reliable way of detecting enemies with para chance > 0. This includes even pan lords who could have Paralysis at different spellpower (due to random HD). So if you know how to program in C++/lua, you could try submitting a pull request for this :).
 
::: Also, do you have a Discord account? You might find the #dcss channel useful. There's a bunch of players and devs who might answer your questions. You could share your game knowledge and help new players there too. [[User:Ge0ff|Ge0ff]] ([[User talk:Ge0ff|talk]]) 22:13, 7 October 2023 (CEST)
 
::: Also, do you have a Discord account? You might find the #dcss channel useful. There's a bunch of players and devs who might answer your questions. You could share your game knowledge and help new players there too. [[User:Ge0ff|Ge0ff]] ([[User talk:Ge0ff|talk]]) 22:13, 7 October 2023 (CEST)
 +
 +
:::: I do use Discord occasionally, but I refuse to join for personal reasons that I won't name here. [[User:Hordes|Hordes]] ([[User talk:Hordes|talk]]) 22:17, 7 October 2023 (CEST)

Revision as of 21:17, 7 October 2023

XP values

Where are you getting updated XP values for monsters from? I've looked through some of the files and stuff on the github site, but I haven't been able to find experience yields yet. --spudwalt (talk) 01:42, 25 May 2018 (CEST)

Monsters don't have fixed XP values. The XP value is dynamic: it depends on the monster's max HP, HD, speed, spell set, etc. For instance, an orc wizard can give 33-43 XP. If you need the details, check the exper_value() function in mon-util.cc (https://github.com/crawl/crawl/blob/stone_soup-0.21/crawl-ref/source/mon-util.cc#L2312)
I use XP values from the Gretell IRC bot. You can query it on the ##crawl channel (http://webchat.freenode.net/?channels=%23%23crawl). Usage is @?monster, for example, @?pandemonium lord. The bot gets the information from the monster utility which is a part of the DCSS codebase. When you query it for the monster's stats it creates 100 monsters and returns the average values (https://github.com/crawl/crawl/blob/stone_soup-0.21/crawl-ref/source/util/monster/monster-main.cc#L810). Ge0ff (talk) 11:24, 25 May 2018 (CEST)
Ah, thanks! That's exactly what I was looking for. --spudwalt (talk) 17:37, 25 May 2018 (CEST)

Source code links

Just wanted to make sure I let you know how much I appreciate you going to the trouble of putting those links to the source code into articles. Good work! --spudwalt (talk) 22:43, 29 August 2019 (CEST)

Armour/shields penalties

Hi! Regarding this, would you be able to take a pass through the information we have about the penalties for armour and shields? Armour talks about EV and spellcasting at the beginning, but later in the article mentions stealth and accuracy as well. Armour (skill) doesn't mention accuracy at all. Are the formulas on Encumbrance rating what are actually used?

Shields (skill) and Shields talk about EV, spellcasting, accuracy, and attack speed, but Kite shield only mentions accuracy, evasion, and spellcasting; Buckler just refers to "attack and spellcasting penalties"; and Tower shield only says "attack penalties". Emufarmers (talk) 02:09, 4 July 2020 (CEST)

If you want to know how armour and shields really work, you could use wiz-mode and check the source code.
You could try wearing different armours and shields and check what happens when your character has different values for Armour and Shields skills. fsim could help you to see changes in accuracy and attack speed.
I recommend this site for searching through commit history and for grepping the source code. For example, if you search for armour penalty, you get only a few results, and the 2nd one, in attack.cc, would be the one you need. You could open that file on GitHub, if you prefer having syntax highlighting. In attack.cc, attack::calc_to_hit() computes an attacker's to-hit, and you could see all the parameters that affect player's accuracy there. Ge0ff (talk) 21:09, 6 July 2020 (CEST)

Kimchi

Thanks for adding Kimchi to Variants; please could you write a bit about its current significant changes? There's nothing there now about what it actually _changes_ - and I fear I cannot read Korean. Pinkbeast (talk) 11:52, 25 August 2020 (CEST)

Done. I cannot read Korean either, but it's not a problem thanks to the miracles of modern technology :). Also, although most of the information about this fork is in Korean, the change log is partially in English. Ge0ff (talk) 12:01, 26 August 2020 (CEST)

Unrandart staff flavor

Those second bits you added to the flavor text in the Staff of Olgreb, Staff of Dispater, etc articles are more of a description of what the artefact's special properties do (kind of like the description of a brand on a branded weapon). Flavor text is found in the dat/descript folder.

If you think we should include brand descriptions in the unrandart articles, I'm open for debate, but that sort of thing is generally already covered in the properties list or sometimes a separate Mechanics section for the especially complex artefacts. --spudwalt (talk) 23:13, 5 January 2022 (CET)

If the procedures for such change require a discussion, then let's have it :). Others are welcome to join too.
We already use the {flavour} template for more than just flavour text. Articles for monsters use this template for flavour and quotes, even though they come from different files, dat/descript/monsters.txt and dat/descript/quotes.txt. Articles for gods are another example. On the Beogh page, the flavour consists of four different parts:
  • "Beogh is an evil deity, worshipped by the cave orcs…" and "Followers of Beogh can smite their foes,…" are two sections from dat/descript/gods.txt, namely "Beogh" and "Beogh powers".
  • "Beogh likes…" and "Beogh strongly dislikes…" parts are auto-generated and come from god-conduct.cc.
Does it make sense to split such flavour blocks into different parts? I think the current approach is more convenient for providing an overview.
Since 0.27, there are two new fields in art-data.txt:
  • DESCRIP: Description of powers of the artefact which are specific to this artefact, not provided by the fields in this file.
  • DBRAND: Description of a brand which is specific to this artefact.
For example, the Elemental Staff has the following:
  • DBRAND: If the wielder is skilled in Evocations, they can discharge powerful blasts of elemental energy when striking with it.
  • DESCRIP: It enhances your fire, ice, earth and air magic.
I think we should use these in-game descriptions to provide an overview of unrands' special powers and/or unique brands. --Ge0ff (talk) 14:42, 6 January 2022 (CET)
Thing is, we're already providing an overview of unrands' special powers and such in the article itself. And it'd feel weird to have a special "this thing lets you shoot hellfire" line (which goes in the brands section of the item's in-game description, not by the flavor text) on the Staff of Dispater page but not have a "this thing swings fast" line on the Skullcrusher page.
Also, we don't include property description text as part of more mundane items' flavor text. The trident page, for example, says nothing about being evoked to extend your reach.
If we're going to add property descriptions, then I'd want to be consistent about it and add them for everything. Which would take a while, in addition to being kinda superfluous in many places.
For the other examples you provided, what are quotes but somewhat more convoluted flavor text? And the stuff in the gods' flavor boxes is found in the in-game god overview menu (^), so it all goes together apart from the stuff that specifically talks about divine wrath, which goes in that subsection of each god's page. (I guess an argument could be made for subdividing the flavor text on the god pages further, but that's a different discussion.)
Anybody else want to weigh in on this? --spudwalt (talk) 08:16, 7 January 2022 (CET)
Skullcrusher's Speed ego is not unique to this unrand, it's not a DBRAND. We probably don't need a line for reaching on the trident page, because there's already an article for reaching. Although, thinking about it, it's odd that trident has no mentions of reaching at all. It probably should be a field in the {weapon} template, instead of the "Ranged?" field.
Also, why do we have to be over-consistent and add property descriptions for trivial things? I agree with you that it feels unnecessary. I only suggest adding in-game descriptions of unique powers and brands - DESCRIP and DBRAND lines from art-data.txt - and only for unrands.
0.28 will have a bunch of new early-game unrands, so it might be useful to take them into account too. For example, Throatcutter has the following DBRAND line: "It may instantly kill foes which have little health.", which is a great summary of what the unrand does. Should we ignore this in-game description and reinvent a new one when describing its powers? Or should we include the in-game description in the overview/flavour block and expand what exactly "little health" means later in the article, with links to source code, numbers, and formulas? An overview/in-game description comes first, details come later. Can we agree on this scheme? --Ge0ff (talk) 14:48, 7 January 2022 (CET)
That's what I'm saying -- keep the flavor text (and any quotes) in the flavor text box, but add stuff like the DBRAND lines in the properties list below it.
The Wyrmbane page is a good example of how I think we should do it. You've got the flavor text in the top, then there's a basic list of the weapon's properties (+8 lance, dragon slaying, gives AC and some resistances, "Enchantment level rises when you kill dragons"), then a section explaining exactly how the enchantment mechanics work.
The DBRAND lines are useful information -- I just don't feel they belong with the flavor text. --spudwalt (talk) 01:03, 10 January 2022 (CET)
OK, you've convinced me. I'll revert the changes. --Ge0ff (talk) 21:18, 10 January 2022 (CET)

Re: SRC links & punctuation

I would imagine that SRC links are closer to citations than anything. In that case, wouldn't the ref come after the punctuation mark? (see wikipedia & nethackwiki) I think [placing it after the punctuation] looks better even if it isn't technically "correct" Hordes (talk) 00:10, 28 June 2023 (CEST)

Yeah, it makes sense to follow the existing style conventions. I've reverted changes for a couple of articles I edited recently. Also, it might be worth mentioning the preferred way of dealing with src links/citations in the CrawlWiki's Style guide. Ge0ff (talk) 02:33, 28 June 2023 (CEST)

Unrelated rcfile question

This has nothing to do with the wiki, but I figured you can send this q to someone who knows better. Basically, I am attempting to add LUA code to do the following:

    If willpower > 135
force_more_message += orc sorcerer

However using you.willpower() is giving the number of pips; that is, you get you.willpower() = 4 at Will++++, not the desired 160. Is there a way to get the exact willpower score? This is useful as, e.g. a {Minotaur, XL 22, display Will+++} is immune to great orb of eyes' paralysis, but same mino at XL 21 isn't. If possible, I would prefer not to add "If you.species() == "(Minotaur|Hill Orc|Human|(etc.)" and you.xl() > x and you.willpower() > 3" for a ton of different cases. Hordes (talk)

There's no way to get the exact Will currently. I asked the devs about adding a lua function for that, so we'll see what they say. Also, checking for species, will pips, and xl wouldn't be sufficient, since you need to check if you have the Will/2 status too. That is available in lua, but you'd need to reimplement player_willpower() from player.cc to get the perfect answer. I just use a permanent force_more for all monsters with paralyze. You'll get some false positives, but it's a safer way. Ge0ff (talk) 15:53, 6 October 2023 (CEST)
Ah, thanks for the answer. Re: Will/2: if you are under Will/2, there's no way to get to Will+++. So if the forcemore updates every turn (as my copy of UV4/gammafunk rc should do), then {will=3, species=Mi, XL >22} or {will >= 4} should cover every case. Either way, I have forcemores for the phantasmal warrior/Strip Willpower message, so I know to watch out. Hordes (talk) 18:27, 6 October 2023 (CEST)
I didn't know that Will/2 makes Will+++ unreachable, that's a cool fact.
I talked to gammafunk about your rcfile questions on the Roguelikes Discord. It's unlikely that a function for getting the precise willpower would be added, mainly because lua functions shouldn't give more info than what's displayed in the UI. The devs are interested in having a way to check monster spells, though. Currently, lua API allows getting a list of monsters in your LOS, iterating over them, and checking their spells (see monster.info:spells() in Crawl Lua API; it's a bit outdated, but mostly relevant) What's missing is a function like monster.info:spell_chance(spell_name) that accepts a spell name and returns the same % chance, as displayed in the UI. It would provide a reliable way of detecting enemies with para chance > 0. This includes even pan lords who could have Paralysis at different spellpower (due to random HD). So if you know how to program in C++/lua, you could try submitting a pull request for this :).
Also, do you have a Discord account? You might find the #dcss channel useful. There's a bunch of players and devs who might answer your questions. You could share your game knowledge and help new players there too. Ge0ff (talk) 22:13, 7 October 2023 (CEST)
I do use Discord occasionally, but I refuse to join for personal reasons that I won't name here. Hordes (talk) 22:17, 7 October 2023 (CEST)