It is currently 06 May 2024, 08:59
   
Text Size

Bug Reports (snapshot builds)

Post MTG Forge Related Programming Questions Here

Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins

Re: Bug Reports (snapshot builds)

Postby Marek14 » 28 Dec 2016, 18:08

Covenant of Minds is implemented incorrectly. If the opponent lets you put the three revealed cards into your hand, it should not count as drawing.
Marek14
Tester
 
Posts: 2763
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 297 times

Re: Bug Reports (snapshot builds)

Postby fmartel » 28 Dec 2016, 18:17

Description: [Before starting a game of commander, I was shuffling the random commander decks]

NullPointerException | Open
Code: Select all
Forge Version:    1.5.58-SNAPSHOT-r32845
Operating System: Windows 7 6.1 amd64
Java Version:     1.8.0_25 Oracle Corporation

java.lang.NullPointerException
   at forge.game.replacement.ReplaceGainLife.canReplace(ReplaceGainLife.java:46)
   at forge.game.replacement.ReplacementHandler.run(ReplacementHandler.java:123)
   at forge.game.replacement.ReplacementHandler.run(ReplacementHandler.java:83)
   at forge.game.player.Player.doDraw(Player.java:1332)
   at forge.game.player.Player.drawCards(Player.java:1311)
   at forge.game.GameAction.startGame(GameAction.java:1430)
   at forge.game.Match.startGame(Match.java:95)
   at forge.match.HostedMatch$2.run(HostedMatch.java:220)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
fmartel
 
Posts: 281
Joined: 31 Dec 2013, 19:27
Location: Québec City
Has thanked: 8 times
Been thanked: 4 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 28 Dec 2016, 18:25

Marek14 wrote:Covenant of Minds is implemented incorrectly. If the opponent lets you put the three revealed cards into your hand, it should not count as drawing.
I think I fixed this (implemented it as a ChangeZone instead of as Draw).

- Agetian
Agetian
Programmer
 
Posts: 3473
Joined: 14 Mar 2011, 05:58
Has thanked: 677 times
Been thanked: 562 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 28 Dec 2016, 18:30

fmartel wrote:Description: [Before starting a game of commander, I was shuffling the random commander decks]

NullPointerException | Open
Code: Select all
Forge Version:    1.5.58-SNAPSHOT-r32845
Operating System: Windows 7 6.1 amd64
Java Version:     1.8.0_25 Oracle Corporation

java.lang.NullPointerException
   at forge.game.replacement.ReplaceGainLife.canReplace(ReplaceGainLife.java:46)
   at forge.game.replacement.ReplacementHandler.run(ReplacementHandler.java:123)
   at forge.game.replacement.ReplacementHandler.run(ReplacementHandler.java:83)
   at forge.game.player.Player.doDraw(Player.java:1332)
   at forge.game.player.Player.drawCards(Player.java:1311)
   at forge.game.GameAction.startGame(GameAction.java:1430)
   at forge.game.Match.startGame(Match.java:95)
   at forge.match.HostedMatch$2.run(HostedMatch.java:220)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
Hmm this is an issue with the new replacement effect code, I've taken a look but I'm not sure I fully understand the issue, so I think it would be nice if Hanmac checks it out when he has time. :)

- Agetian
Agetian
Programmer
 
Posts: 3473
Joined: 14 Mar 2011, 05:58
Has thanked: 677 times
Been thanked: 562 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 28 Dec 2016, 18:51

fmartel wrote:with -r32845, in commander, I notice something NOT happening. I have Primal Vigor, Awakening Zone, Angelic Accord OTB, I play Grove of the Guardian and don't receive 2x 8/8 Elemental Token, same goes for the angel and Eldrazi spawn. everything else plays properly, (Angelic Accord [giving me an angel for gaining 4 life], Elemental Bond [Draw], Trostani [life gain])
Edit : The same issue happens with Parallel Lives. It doesnt double the token under my control.
This is odd, I just tried these cases and they worked correctly for me, the tokens are definitely produced in twos (from all the cards mentioned). :/ Were there any other cards on the battlefield that could possibly have affected this?

- Agetian
Agetian
Programmer
 
Posts: 3473
Joined: 14 Mar 2011, 05:58
Has thanked: 677 times
Been thanked: 562 times

Re: Bug Reports (snapshot builds)

Postby fmartel » 28 Dec 2016, 18:51

Agetian wrote:
fmartel wrote:with -r32845, in commander, I notice something NOT happening. I have Primal Vigor, Awakening Zone, Angelic Accord OTB, I play Grove of the Guardian and don't receive 2x 8/8 Elemental Token, same goes for the angel and Eldrazi spawn. everything else plays properly, (Angelic Accord [giving me an angel for gaining 4 life], Elemental Bond [Draw], Trostani [life gain])
Edit : The same issue happens with Parallel Lives. It doesnt double the token under my control.
This is odd, I just tried these cases and they worked correctly for me, the tokens are definitely produced in twos (from all the cards mentioned). :/ Were there any other cards on the battlefield that could possibly have affected this?

- Agetian
You're really quick, or I'm really slow typing ! :D

I have the same issue on another game. I have Parallel Lives OTB, I attack AI1 with Brimaz, King of Oreskos and get only 1 Cat Soldier....


Edit : please, have a look to the attachment.
Capture.PNG
A look at tthe Battlefeild
fmartel
 
Posts: 281
Joined: 31 Dec 2013, 19:27
Location: Québec City
Has thanked: 8 times
Been thanked: 4 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 28 Dec 2016, 19:06

hm the ReplaceEffect => DoubleToken should work again, i broke something while reworking it.
i fixed that with r32846.
(thats why Agetian doesn't get this bugs anymore)
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 29 Dec 2016, 11:40

Agetian wrote:Well, sadly I can't figure out what to do with Lifelink when the combat damage is replaced via ReplaceDamage.
The thing is, it's currently quite broken and even acts differently (and inconsistently) when the damage is dealt to a permanent or to a player. To wit:

* If a lifelink creature deals damage to a player while Gisela, Blade of Goldnight is in play, then double damage is dealt to the player, but no life gain happens at all (the damage is treated at 0 in Combat::dealAssignedDamage).

* If a lifelink creature deals damage to a permanent (creature) while Gisela, Blade of Goldnight is in play, then double damage is dealt to the creature, the life gain happens as well, but only as if the damage dealt was not double (for example, Baneslayer Angel would deal 10 damage to the creature, and the player would gain 5 life from lifelink).

Not sure how to best approach fixing this without breaking other stuff. :/

- Agetian
i did massive changes with Damage/CombatDamage/Lifelink can you test it out?

tested it with Furnace of Rath and Rhox Faithmender.
attacking causes me to gain 1 * 2 * 2 Life. (not tested but Ajani's Pridemate should only trigger once)

that works without other changes to the ReplacementEffects (no cards need to be changed but it can be done)

Edit: not perfect yet, but i am fixing it.

Edit: is fixed now.

Furnace of Rath and Rhox Faithmender blocked by Razorgrass Screen.
Rhox Faithmender deals 1 * 2 damage to Razorgrass Screen (2/lifelink)
Razorgrass Screen deals 2 * 2 damage to Rhox Faithmender (4)
then you gain 2 * 2 life because of lifelink.
Last edited by Hanmac on 29 Dec 2016, 12:46, edited 1 time in total.
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 29 Dec 2016, 12:28

Thanks a lot! :) Sure thing, I'll be happy to test it out, I'll keep this post updated for further test results.

For the time being, however, I'm unable to launch it since I'm getting a lot of compilation errors:
Code: Select all
-------------------------------------------------------------
forge/game/card/Card.java:[86,8] forge.game.card.Card is not abstract and does not override abstract method addDamageAfterPrevention(int,forge.game.card.Card,boolean) in forge.game.GameEntity
forge/game/card/Card.java:[6177,22] addDamageAfterPrevention(int,forge.game.card.Card,boolean) in forge.game.card.Card cannot override addDamageAfterPrevention(int,forge.game.card.Card,boolean) in forge.game.GameEntity
  return type int is not compatible with boolean
forge/game/card/Card.java:[6176,5] method does not override or implement a method from a supertype
forge/game/player/Player.java:[79,8] forge.game.player.Player is not abstract and does not override abstract method addDamageAfterPrevention(int,forge.game.card.Card,boolean) in forge.game.GameEntity
forge/game/player/Player.java:[537,22] addDamageAfterPrevention(int,forge.game.card.Card,boolean) in forge.game.player.Player cannot override addDamageAfterPrevention(int,forge.game.card.Card,boolean) in forge.game.GameEntity
  return type int is not compatible with boolean
forge/game/player/Player.java:[536,5] method does not override or implement a method from a supertype
forge/game/cost/CostDamage.java:[63,34] incompatible types: boolean cannot be converted to int
forge/game/ability/effects/DetachedCardEffect.java:[7,8] addDamageAfterPrevention(int,forge.game.card.Card,boolean) in forge.game.card.Card cannot override addDamageAfterPrevention(int,forge.game.card.Card,boolean) in forge.game.GameEntity
  return type int is not compatible with boolean
forge/game/ability/effects/DamageAllEffect.java:[82,41] incompatible types: boolean cannot be converted to int
forge/game/ability/effects/DamageAllEffect.java:[92,47] incompatible types: boolean cannot be converted to int
forge/game/ability/effects/DamageDealEffect.java:[144,27] bad operand types for binary operator '+'
  first type:  int
  second type: boolean
forge/game/ability/effects/DamageDealEffect.java:[165,70] incompatible types: boolean cannot be converted to int
forge/game/ability/effects/DamageDealEffect.java:[178,54] incompatible types: boolean cannot be converted to int
forge/game/ability/effects/DamageDealEffect.java:[190,70] incompatible types: boolean cannot be converted to int
forge/game/ability/effects/DamageDealEffect.java:[201,54] incompatible types: boolean cannot be converted to int
forge/game/ability/effects/DamageEachEffect.java:[83,35] bad operand types for binary operator '+'
  first type:  int
  second type: boolean
forge/game/ability/effects/DamageEachEffect.java:[89,35] bad operand types for binary operator '+'
  first type:  int
  second type: boolean
forge/game/ability/effects/DamageEachEffect.java:[105,50] incompatible types: boolean cannot be converted to int
forge/game/ability/effects/DamageEachEffect.java:[122,39] bad operand types for binary operator '+'
  first type:  int
  second type: boolean
forge/game/ability/effects/FightEffect.java:[112,43] incompatible types: boolean cannot be converted to int
20 errors
- Agetian
Agetian
Programmer
 
Posts: 3473
Joined: 14 Mar 2011, 05:58
Has thanked: 677 times
Been thanked: 562 times

Re: Bug Reports (snapshot builds)

Postby Marek14 » 29 Dec 2016, 12:42

I played Mana Clash, got heads for opponent and tails for myself, took 1 damage, and then the effect ended. Mana Clash should continue until both players get heads.

Fiery Gambit doesn't work for me (no coin flips appear). I had Krark's Thumb and cast Fiery Gambit vie Eye of the Storm.

EDIT: Next attempt to cast Fiery Gambit worked, except that when I guessed tails and both Krark's Thumb flips were heads, I won the flip anyway.

EDIT2: I just can't get Fiery Gambit to deal any damage, no matter how I win or lose the flips. Also, the effect doesn't stop after I lose the flip, I still can flip more coins, which is wrong.
Last edited by Marek14 on 29 Dec 2016, 12:51, edited 2 times in total.
Marek14
Tester
 
Posts: 2763
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 297 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 29 Dec 2016, 12:48

Agetian wrote:Thanks a lot! :) Sure thing, I'll be happy to test it out, I'll keep this post updated for further test results.

For the time being, however, I'm unable to launch it since I'm getting a lot of compilation errors:
Code: Select all
-------------------------------------------------------------
forge/game/card/Card.java:[86,8] forge.game.card.Card is not abstract and does not override abstract method addDamageAfterPrevention(int,forge.game.card.Card,boolean) in forge.game.GameEntity
forge/game/card/Card.java:[6177,22] addDamageAfterPrevention(int,forge.game.card.Card,boolean) in forge.game.card.Card cannot override addDamageAfterPrevention(int,forge.game.card.Card,boolean) in forge.game.GameEntity
  return type int is not compatible with boolean
forge/game/card/Card.java:[6176,5] method does not override or implement a method from a supertype
forge/game/player/Player.java:[79,8] forge.game.player.Player is not abstract and does not override abstract method addDamageAfterPrevention(int,forge.game.card.Card,boolean) in forge.game.GameEntity
forge/game/player/Player.java:[537,22] addDamageAfterPrevention(int,forge.game.card.Card,boolean) in forge.game.player.Player cannot override addDamageAfterPrevention(int,forge.game.card.Card,boolean) in forge.game.GameEntity
  return type int is not compatible with boolean
forge/game/player/Player.java:[536,5] method does not override or implement a method from a supertype
forge/game/cost/CostDamage.java:[63,34] incompatible types: boolean cannot be converted to int
forge/game/ability/effects/DetachedCardEffect.java:[7,8] addDamageAfterPrevention(int,forge.game.card.Card,boolean) in forge.game.card.Card cannot override addDamageAfterPrevention(int,forge.game.card.Card,boolean) in forge.game.GameEntity
  return type int is not compatible with boolean
forge/game/ability/effects/DamageAllEffect.java:[82,41] incompatible types: boolean cannot be converted to int
forge/game/ability/effects/DamageAllEffect.java:[92,47] incompatible types: boolean cannot be converted to int
forge/game/ability/effects/DamageDealEffect.java:[144,27] bad operand types for binary operator '+'
  first type:  int
  second type: boolean
forge/game/ability/effects/DamageDealEffect.java:[165,70] incompatible types: boolean cannot be converted to int
forge/game/ability/effects/DamageDealEffect.java:[178,54] incompatible types: boolean cannot be converted to int
forge/game/ability/effects/DamageDealEffect.java:[190,70] incompatible types: boolean cannot be converted to int
forge/game/ability/effects/DamageDealEffect.java:[201,54] incompatible types: boolean cannot be converted to int
forge/game/ability/effects/DamageEachEffect.java:[83,35] bad operand types for binary operator '+'
  first type:  int
  second type: boolean
forge/game/ability/effects/DamageEachEffect.java:[89,35] bad operand types for binary operator '+'
  first type:  int
  second type: boolean
forge/game/ability/effects/DamageEachEffect.java:[105,50] incompatible types: boolean cannot be converted to int
forge/game/ability/effects/DamageEachEffect.java:[122,39] bad operand types for binary operator '+'
  first type:  int
  second type: boolean
forge/game/ability/effects/FightEffect.java:[112,43] incompatible types: boolean cannot be converted to int
20 errors
- Agetian
fixed i forgot GameEntity :?
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 29 Dec 2016, 12:59

Okie doke, let's get testing :)

For starters, I tried the scenario where Kalitas, Traitor of Ghet would deal damage to a number of creatures on the battlefield in the presence of Ajani's Pridemate via Chandra's Ignition. However, no life gain happened at all in that case and Ajani's Pridemate did not trigger either.

Gisela, Blade of Goldnight + Kalitas, Traitor of Ghet worked correctly, I gained 6 life (double the amount), and Ajani's Pridemate triggered in response to the life gain event as well.

- Agetian
Agetian
Programmer
 
Posts: 3473
Joined: 14 Mar 2011, 05:58
Has thanked: 677 times
Been thanked: 562 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 29 Dec 2016, 13:20

for the Kalitas, Traitor of Ghet + Chandra's Ignition + Ajani's Pridemate i fixed it. (was wrong sourceLKI)

what does not yet work is if you add Gisela, Blade of Goldnight too.
For that damage multiplicators need to be rewritten with with my new Replacement Effect (does not work yet for DamageRedirection)
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Bug Reports (snapshot builds)

Postby Agetian » 29 Dec 2016, 13:25

I can confirm the interaction works now (and Ajani's Pridemate triggered only once, which is good). :)
Marek made a report a few posts above related to damage too, may be related to the recent changes or not.

- Agetian
Agetian
Programmer
 
Posts: 3473
Joined: 14 Mar 2011, 05:58
Has thanked: 677 times
Been thanked: 562 times

Re: Bug Reports (snapshot builds)

Postby Hanmac » 29 Dec 2016, 13:49

updated cards with "ReplaceCount$DamageAmount/Twice"

that does fix
Kalitas, Traitor of Ghet + Chandra's Ignition + Ajani's Pridemate + Gisela, Blade of Goldnight

(does still not work yet for other redirection)
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 15 guests


Who is online

In total there are 15 users online :: 0 registered, 0 hidden and 15 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 15 guests

Login Form