From: <gi...@cr...> - 2025-07-17 21:50:10
|
via 2c30cb724a28f5c94bdd4c139e4a30100f53c888 (commit) via 1458e82541da783d6fb0440c54235665463c1de9 (commit) via e9671bf27a1ed58cb8b5be203fb43f9650337dfc (commit) via 950e44d591b74fffda387e3b642d11adfd249423 (commit) via 7cc3d47e4f6f6006b9babb83d976b2773e35a42a (commit) via 758b7540862a2d61abc67fb4616358f35387d03c (commit) from 3f22ea3c6ad96d816a3d4ae7410ef3f1d9fabc5f (commit) ----------------------------------------------------------------------- commit 2c30cb724a28f5c94bdd4c139e4a30100f53c888 Author: DracoOmega <dra...@gm...> Date: Thu Jul 17 19:15:27 2025 -0230 Don't forbid Coglins from putting on talismans commit 1458e82541da783d6fb0440c54235665463c1de9 Author: DracoOmega <dra...@gm...> Date: Thu Jul 17 19:15:04 2025 -0230 Don't auto-remove a jewellery item while wearing a talisman (Planckenstein) If you had a single ring or amulet on at the same time as a talisman, the game would automatically remove it when you pressed (R) instead of asking which item you wanted to remove. commit e9671bf27a1ed58cb8b5be203fb43f9650337dfc Author: DracoOmega <dra...@gm...> Date: Thu Jul 17 19:13:56 2025 -0230 Fix enter being broken in the (F)ire menu (Planckenstein) commit 950e44d591b74fffda387e3b642d11adfd249423 Author: DracoOmega <dra...@gm...> Date: Thu Jul 17 19:13:37 2025 -0230 Fix default hotkeys for !magic/!might both being m (Planckenstein) commit 7cc3d47e4f6f6006b9babb83d976b2773e35a42a Author: DracoOmega <dra...@gm...> Date: Thu Jul 17 19:10:43 2025 -0230 Fix missing kauxes for a number of beam attacks (ebonnov) I'm not sure the full list, but a bunch of spells that used beams for damage but didn't fire normal projectiles were missing an aux_source, resulting in non-specific death messages. (Regular projectile beams would fill in their aux_source from their name member automatically, but many other uses of them would not.) There's a small chance something out there relied on this behavior, but hopefully not. commit 758b7540862a2d61abc67fb4616358f35387d03c Author: DracoOmega <dra...@gm...> Date: Thu Jul 17 19:08:35 2025 -0230 Fix broken kauxes for LoS attack spells (gammafunk) Apparently broken since 733a6ea, causing Ozocubu's Refrigeration to produce death messages suggesting it was caused by the monster hitting you in melee instead (which is rather more noticable now that it is cast by Orbs of Winter, which have no attack...) This also simultaneously gives a unique kaux for dying to the Singing Sword's sonic wave, which I'm not sure it had before. Who will be the first to die to it, I wonder? (Will anyone?) ----------------------------------------------------------------------- Summary of changes: crawl-ref/source/beam.cc | 4 ++-- crawl-ref/source/dat/defaults/consumable_shortcuts.txt | 2 +- crawl-ref/source/invent.cc | 2 +- crawl-ref/source/item-use.cc | 6 ++++-- crawl-ref/source/mon-cast.cc | 2 -- crawl-ref/source/spl-damage.cc | 12 +++++++++++- crawl-ref/source/spl-monench.cc | 1 + 7 files changed, 20 insertions(+), 9 deletions(-) diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc index ec29c6fd55..0dd1080e91 100644 --- a/crawl-ref/source/beam.cc +++ b/crawl-ref/source/beam.cc @@ -3185,11 +3185,11 @@ void bolt::internal_ouch(int dam) else if (MON_KILL(thrower)) { ouch(dam, KILLED_BY_BEAM, source_id, - aux_source.c_str(), true, + what, true, source_name.empty() ? nullptr : source_name.c_str()); } else // KILL_NON_ACTOR || (YOU_KILL && aux_source) - ouch(dam, KILLED_BY_WILD_MAGIC, source_id, aux_source.c_str()); + ouch(dam, KILLED_BY_WILD_MAGIC, source_id, what); } // [ds] Apply a fuzz if the monster lacks see invisible and is trying to target diff --git a/crawl-ref/source/dat/defaults/consumable_shortcuts.txt b/crawl-ref/source/dat/defaults/consumable_shortcuts.txt index ad186388bd..1b17f7f278 100644 --- a/crawl-ref/source/dat/defaults/consumable_shortcuts.txt +++ b/crawl-ref/source/dat/defaults/consumable_shortcuts.txt @@ -29,7 +29,7 @@ consumable_shortcut ^= potion of cancellation:C consumable_shortcut ^= potion of ambrosia:a consumable_shortcut ^= potion of invisibility:i consumable_shortcut ^= potion of experience:E -consumable_shortcut ^= potion of magic:m +consumable_shortcut ^= potion of magic:g consumable_shortcut ^= potion of berserk rage:B consumable_shortcut ^= potion of mutation:M consumable_shortcut ^= potion of resistance:r diff --git a/crawl-ref/source/invent.cc b/crawl-ref/source/invent.cc index aa455871a4..8465a4e00e 100644 --- a/crawl-ref/source/invent.cc +++ b/crawl-ref/source/invent.cc @@ -1887,7 +1887,7 @@ int prompt_invent_item(const char *prompt, // hacky, but lets the inscription checks below trip // TODO: this code should not rely on keyin, it breaks cmd // bindings - keyin = items[0].slot; + keyin = items[0].item->slot; } else if (other_valid_char != 0 && keyin == other_valid_char) { diff --git a/crawl-ref/source/item-use.cc b/crawl-ref/source/item-use.cc index 18701f45da..e5f2c6ae54 100644 --- a/crawl-ref/source/item-use.cc +++ b/crawl-ref/source/item-use.cc @@ -969,7 +969,9 @@ static bool _can_generically_use(operation_types oper) return false; } // can't differentiate between these two at this point - if (!you_can_wear(SLOT_RING, true) && !you_can_wear(SLOT_AMULET, true)) + if (you_can_wear(SLOT_RING, true) == false + && you_can_wear(SLOT_AMULET, true) == false + && you.transform_uncancellable) { mprf(MSGCH_PROMPT, "You can't %s jewellery%s.", oper == OPER_PUTON ? "wear" : "remove", @@ -1003,7 +1005,7 @@ bool use_an_item(operation_types oper, item_def *target) if (!target && oper == OPER_REMOVE && !Options.jewellery_prompt) { vector<item_def*> jewellery = you.equipment.get_slot_items(SLOT_ALL_JEWELLERY); - if (jewellery.size() == 1) + if (jewellery.size() == 1 && !you.active_talisman()) target = jewellery[0]; } diff --git a/crawl-ref/source/mon-cast.cc b/crawl-ref/source/mon-cast.cc index 9939ff2cff..dba48d91cb 100644 --- a/crawl-ref/source/mon-cast.cc +++ b/crawl-ref/source/mon-cast.cc @@ -2654,8 +2654,6 @@ bool setup_mons_cast(const monster* mons, bolt &pbolt, spell_type spell_cast, pbolt.target = theBeam.target; pbolt.source = mons->pos(); pbolt.set_is_tracer(false); - if (pbolt.aux_source.empty() && !pbolt.is_enchantment()) - pbolt.aux_source = pbolt.name; return true; } diff --git a/crawl-ref/source/spl-damage.cc b/crawl-ref/source/spl-damage.cc index 73bfb1d056..a4170da441 100644 --- a/crawl-ref/source/spl-damage.cc +++ b/crawl-ref/source/spl-damage.cc @@ -603,7 +603,17 @@ static int _los_spell_damage_actor(const actor* agent, actor &target, you.pet_target = target.mindex(); } else if (hurted) - target.hurt(agent, hurted, beam.flavour); + { + kill_method_type ktype = KILLED_BY_BEAM; + if (beam.origin_spell == SPELL_DRAIN_LIFE) + ktype = KILLED_BY_DRAINING; + else if (beam.origin_spell == SPELL_OZOCUBUS_REFRIGERATION) + ktype = KILLED_BY_FREEZING; + + string aux = beam.origin_spell == SPELL_SONIC_WAVE ? "sonic wave" : ""; + + target.hurt(agent, hurted, beam.flavour, ktype, "", aux); + } // Cold-blooded creatures can be slowed. if (beam.origin_spell == SPELL_OZOCUBUS_REFRIGERATION diff --git a/crawl-ref/source/spl-monench.cc b/crawl-ref/source/spl-monench.cc index 765014d858..151c39198e 100644 --- a/crawl-ref/source/spl-monench.cc +++ b/crawl-ref/source/spl-monench.cc @@ -440,6 +440,7 @@ spret cast_percussive_tempering(const actor& caster, monster& target, int power, shockwave.is_explosion = true; shockwave.ex_size = 1; shockwave.origin_spell = SPELL_PERCUSSIVE_TEMPERING; + shockwave.aux_source = "blast of sparks and slag"; zappy(ZAP_PERCUSSIVE_TEMPERING, power, true, shockwave); shockwave.explode(true, true); -- Dungeon Crawl Stone Soup |