It is currently 07 Jul 2021, 11:58
   
Text Size

Shandalar - Program Bugs

Gauntlet of Might causes display error regarding which spells in hand are castable (fix completed)

 

GoM.jpg


It seems like the display function sees it as I have as much possible extra mana as I have Mountains, which is true when they are all untapped but not in the situation in the screenshot. If I double-click on e.g. the Rukh Egg here, I get asked for 3 {R} which I of course can't produce.

This does not really affect the gameplay but it can be very confusing to the player.
Last edited by Korath on 22 Jun 2015, 15:41, edited 1 time in total.
Reason: Version Loremaster's Tower 1->Ruined Tower 4: bug extant in RT series (and original Shandalar)

Comments

Posted by Korath » 22 Jun 2015, 15:42

It's declaring {R} available for each mountain on the bf, even if the mountain's tapped.

Posted by Korath » 02 Aug 2015, 00:25

commit 63c1052fe1470775f7a09063da2bd0a8f0e19504
Author: Korath <dgk@Dirge.none>
Date: Sat Aug 1 20:24:55 2015 -0400

[TH] FIX #634: rewrite cards with tapped-for-mana triggers

Largely importing the Manalink scheme of setting tapped_for_mana_color to -2 to
indicate a mana ability that's not "tapping a permanent for mana" per rule
106.10 ("To 'tap a permanent for mana' is to activate a mana ability of that
permanent that includes the {T} symbol in its activation cost. See rule 605,
'Mana Abilities.'); and a value >= 0x100 to indicate either zero or more than
one mana was produced from a tapping-a-permanent-for-mana ability (whether of
more than one color or not), and putting the exact amounts in a new
tapped_for_mana[] array. It differs slightly from Manalink in that it puts a
color_test_t of all colors produced in byte1 of tapped_for_mana_color, or 0x80
instead if zero mana was produced, instead of just setting it to 0x100 and
requiring tapped_for_mana[] to be examined to determine the colors.

As well as fixing Mana Flare for multicolor mana producers (none of which are
currently in the game), this prevents responding to the mana abilities of
Morselhoarder, (Seton, Krosan Protector), Heritage Druid

Also move finalize_activation() into Shandalar.dll and fix it to use
card_instance_t::backup_internal_card_id, as in Manalink, so that it properly
recognizes the mana abilities of cards that sacrifice themselves to activate.
This prevents responding to the mana abilities of Basal Thrull, Lotus Petal,
and Black Lotus (which couldn't be responded to in original Shandalar, but the
mechanism used sometimes prevented responding to the effect it was sacrificed
to pay the mana for in some circumstances). Together with the expansion above
to tapped_for_mana_color, this also prevents responding to the mana abilities
of Eldrazi Spawn tokens, Gold tokens, Wild Cantor, Blood Vassal, and
Composite Golem.

Rewritten:
Elves of Deep Shadow
Gauntlet of Might
Mana Flare/Dictate of Karametra/Heartbeat of Spring/Zhur-Taa Ancient
Manabarbs
Wild Growth

Support:
finalize_activation()
produce_mana_of_any_type_tapped_for()

Posted by Korath » 02 Aug 2015, 01:05

commit 5cd37a8f7d3e2f161db52cb8e7c0ffa52d5430e7
Author: Korath <dgk@Dirge.none>
Date: Sat Aug 1 20:24:55 2015 -0400

[RT] backport FIX #634: rewrite cards with tapped-for-mana triggers

Largely importing the Manalink scheme of setting tapped_for_mana_color to -2 to
indicate a mana ability that's not "tapping a permanent for mana" per rule
106.10 ("To 'tap a permanent for mana' is to activate a mana ability of that
permanent that includes the {T} symbol in its activation cost. See rule 605,
'Mana Abilities.'); and a value >= 0x100 to indicate either zero or more than
one mana was produced from a tapping-a-permanent-for-mana ability (whether of
more than one color or not), and putting the exact amounts in a new
tapped_for_mana[] array. It differs slightly from Manalink in that it puts a
color_test_t of all colors produced in byte1 of tapped_for_mana_color, or 0x80
instead if zero mana was produced, instead of just setting it to 0x100 and
requiring tapped_for_mana[] to be examined to determine the colors.

As well as fixing Mana Flare for multicolor mana producers (none of which are
currently in the game), this prevents responding to the mana abilities of
Morselhoarder, (Seton, Krosan Protector), Heritage Druid

Also move finalize_activation() into Shandalar.dll and fix it to use
card_instance_t::backup_internal_card_id, as in Manalink, so that it properly
recognizes the mana abilities of cards that sacrifice themselves to activate.
This prevents responding to the mana abilities of Basal Thrull, Lotus Petal,
and Black Lotus (which couldn't be responded to in original Shandalar, but the
mechanism used sometimes prevented responding to the effect it was sacrificed
to pay the mana for in some circumstances). Together with the expansion above
to tapped_for_mana_color, this also prevents responding to the mana abilities
of Eldrazi Spawn tokens, Gold tokens, Wild Cantor, Blood Vassal, and
Composite Golem.

Rewritten:
Elves of Deep Shadow
Gauntlet of Might
Mana Flare/Dictate of Karametra/Heartbeat of Spring/Zhur-Taa Ancient
Manabarbs
Wild Growth

Support:
finalize_activation()
produce_mana_of_any_type_tapped_for()

(cherry-picked from commit 63c1052)

Ticket details

  • Ticket ID: 634
  • Project: Shandalar
  • Status: Fix completed
  • Component: Duel Engine
  • Project version: Ruined Tower 4
  • Priority: Normal
  • Severity: Normal
  • Assigned to: Korath
  • Reported by: jiansonz
  • Reporter's tickets: List all tickets
  • Reported on: 21 Jun 2015, 20:12
  • Last visited by Korath » 04 Aug 2015, 09:29.
 

Login Form