Forge Android App: 11-13-2016 Alpha 1.5.58.002
by mtgrares
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Forge Android App: 08-22-2014 Alpha 1.5.25.002
by drdev » 22 Aug 2014, 05:26
kestell wrote:Description: [Ravnica draft, AI played graven dominator. This happened twice already ]
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.25.001
Operating System: Linux 3.4.5-1083225 armv7l
Java Version: 0 The Android Project
java.lang.NullPointerException
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:213)
at com.google.common.collect.Lists.newArrayList(Lists.java:127)
at forge.game.KeywordsChange.<init>(KeywordsChange.java:54)
at forge.game.card.Card.addChangedCardKeywords(Card.java:4478)
at forge.game.ability.effects.AnimateEffectBase.doAnimate(AnimateEffectBase.java:102)
at forge.game.ability.effects.AnimateAllEffect.resolve(AnimateAllEffect.java:140)
at forge.game.ability.AbilityApiBased.resolve(AbilityApiBased.java:60)
at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1240)
at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1222)
at forge.ai.ComputerUtil.playNoStack(ComputerUtil.java:302)
at forge.ai.PlayerControllerAi.playSpellAbilityNoStack(PlayerControllerAi.java:317)
at forge.game.trigger.WrappedAbility.resolve(WrappedAbility.java:402)
at forge.game.ability.AbilityUtils.resolveApiAbility(AbilityUtils.java:1240)
at forge.game.ability.AbilityUtils.resolve(AbilityUtils.java:1222)
at forge.game.zone.MagicStack.resolveStack(MagicStack.java:576)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:1062)
at forge.game.GameAction.startGame(GameAction.java:1558)
at forge.game.Match.startGame(Match.java:81)
at forge.screens.match.FControl$2.run(FControl.java:189)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:856)
kestell wrote:the search is still not as it was. It does search the text field now as well, but it doesn't search for 2 terms.
equip 0 should find lightning greaves but it doesn't.
I just released 1.5.25.002, which should fix these issues. It also makes End Turn smart enough to cancel the auto-yield if a new spell/ability is put on the stack by an opponent after you press End Turn without having to be quick enough to press Cancel in time if you want to respond.kestell wrote:Bug: Pressing "end turn" while having creatures that must attack results in them not attacking.
Turns out I had fixed it, but it was after I released 1.5.25.001. So the fix should now be available with 1.5.25.002.friarsol wrote:I'm on 25.001, I upgraded just yesterday or could have been on Monday. I'll try it again when I have time and see, but I'm absolutely sure the one apparent way to get this to work for me was to switch to Auto Accept, and then back to Auto Decline. Maybe it was fixed after the most recent release?drdev wrote:EDIT: Wait, you're not able to turn it off by clicking it to uncheck? I think you must be on an older version, as I'm pretty sure I fixed that particular bug.
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Forge Android App: 08-22-2014 Alpha 1.5.25.003
by drdev » 23 Aug 2014, 04:05
I just released 1.5.25.003, which adds a prompt before downloading resource files, giving you the option to Download, Ignore, or Exit. It also informs you of the approximate download size, as well as whether or not you are currently on wifi.kestell wrote:Having said that, Reenen has a good point, not everybody has unlimited data, and an open ended downloading resource files could be daunting to some people - so just a heads up on the first run - "this is a 20 MB download, do you wish to continue?" prompt can't hurt.
Or how many MB it is.
Note that if you are running Forge for the very first time and haven't previously downloaded these files, you won't get the option to ignore. And if you don't have any internet connection, you'll be informed as much, with the app auto-exiting afterward if you haven't previously downloaded the files.
Also note that these prompts look a bit different than other prompts because I need to show them without access to the resource files that contain the actual skin colors and the icons for the buttons.
Let me know if you have any questions or concerns regarding these new prompts.
Thanks.
-Dan
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Forge Android App: 08-22-2014 Alpha 1.5.25.003
by bevryde » 23 Aug 2014, 06:49
It's a good change. But it killed my Forge.
1. Updated from .002 to 003
2. Downloaded ressource files.
3. Forge got stuck in "deleting old ressource files".
4. I waited like 10 minutes, then restarted Forge
5. Now it's stuck in "Checking for updates..."
Sony XPeria Z1 here.
1. Updated from .002 to 003
2. Downloaded ressource files.
3. Forge got stuck in "deleting old ressource files".
4. I waited like 10 minutes, then restarted Forge
5. Now it's stuck in "Checking for updates..."
Sony XPeria Z1 here.
Re: Forge Android App: 08-22-2014 Alpha 1.5.25.003
by bevryde » 23 Aug 2014, 16:25
I downgraded to .002 and then again updated to .003, then it worked. Maybe it was a problem on my end.
So it always say "checking for updates" - i.e., it has auto update of Forge now?
So it always say "checking for updates" - i.e., it has auto update of Forge now?
Re: Forge Android App: 08-22-2014 Alpha 1.5.25.003
by drdev » 23 Aug 2014, 16:56
Not in .003, but I'm just about ready to release that support. It won't auto-update though. It will just prompt you to update if there's an update available, with the option to update later.bevryde wrote:I downgraded to .002 and then again updated to .003, then it worked. Maybe it was a problem on my end.
So it always say "checking for updates" - i.e., it has auto update of Forge now?
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Forge Android App: 08-22-2014 Alpha 1.5.25.003
by Scion of Darkness » 23 Aug 2014, 22:03
For the swipe to change cards it could be optional if swipe on, zoom on field off and swipe to change view would stay only available via buttons, for swipe cards off default behaviour
Thanks
Thanks
-
Scion of Darkness - Posts: 235
- Joined: 27 Aug 2012, 13:14
- Has thanked: 17 times
- Been thanked: 23 times
Re: Forge Android App: 08-24-2014 Alpha 1.5.25.004
by drdev » 24 Aug 2014, 19:26
I just released 1.5.25.004, which finally fixes the issue where the app would stick around even after exiting it.
More importantly, it introduces a check for updates on startup. From now on, every time your run the app, if you're connected to the internet, it will check if there's a new version of the app available. If so, you'll be prompted as shown below (with an additional blurb if you aren't on wifi). You can choose to update later, but if you choose to update now, it will automatically download the latest installer and open the Android screen to install it.
Obviously nobody will be able to test this new update check until I release another new version, but please let me know at that point if you encounter any problems with it. Hopefully this will make it easier for people to stay on the latest and greatest version of this app.
Thanks.
-Dan
More importantly, it introduces a check for updates on startup. From now on, every time your run the app, if you're connected to the internet, it will check if there's a new version of the app available. If so, you'll be prompted as shown below (with an additional blurb if you aren't on wifi). You can choose to update later, but if you choose to update now, it will automatically download the latest installer and open the Android screen to install it.
Obviously nobody will be able to test this new update check until I release another new version, but please let me know at that point if you encounter any problems with it. Hopefully this will make it easier for people to stay on the latest and greatest version of this app.
Thanks.
-Dan
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Forge Android App: 08-24-2014 Alpha 1.5.25.004
by Agetian » 25 Aug 2014, 06:50
I have a little suggestion as to how the "auto-yields" functionality can be improved: I think in a two-player game (which is the only type of game the Android build supports yet, and also the most commonly played type of MTG in the desktop version), it'd be nice to be able to auto-yield to the "Choose target opponent" thing, since there's only one choice. It's somewhat annoying to always have to click on the opponent's face, especially if you have a recurring ability that has "choose an opponent" as a part of it. Otherwise, by the way, the auto yields are absolutely fantastic! 
- Agetian

- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Forge Android App: 08-24-2014 Alpha 1.5.25.004
by friarsol » 25 Aug 2014, 12:12
I see what you are saying, but that's not the same functionality as auto yield. "Auto yield" means if this spell is on the stack, automatically pass priority to it. What you are saying is "If I need to target an opponent and there is only one valid option, choose that target" so really what you want is "auto targeting" a new functionality altogether.Agetian wrote:I have a little suggestion as to how the "auto-yields" functionality can be improved: I think in a two-player game (which is the only type of game the Android build supports yet, and also the most commonly played type of MTG in the desktop version), it'd be nice to be able to auto-yield to the "Choose target opponent" thing, since there's only one choice. It's somewhat annoying to always have to click on the opponent's face, especially if you have a recurring ability that has "choose an opponent" as a part of it. Otherwise, by the way, the auto yields are absolutely fantastic!
- Agetian
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Forge Android App: 08-24-2014 Alpha 1.5.25.004
by Agetian » 25 Aug 2014, 13:29
@ Friarsol: Yes, true, I just kind of thought it'd be along the same lines (something like "Always This Opponent", much like answering "Always Yes" or "Always No" when deciding to yield to the abilities with yes/no questions). I agree it's better to call it auto-targeting though, yes.
- Agetian
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Forge Android App: 08-24-2014 Alpha 1.5.25.004
by drdev » 25 Aug 2014, 14:03
Rather than make it something you have to manually select from a menu while the ability is on the stack, what if I just made it so, if there is only one valid target for a spell or ability, it just auto-chooses that target for you? That would work well with all target opponent cards, plus would work nice with cards that target creatures when only one creature is in play. The targeting arrows would still make it clear what got targeted while the spell or ability is on the stack.
How does that sound?
How does that sound?
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Forge Android App: 08-24-2014 Alpha 1.5.25.004
by friarsol » 25 Aug 2014, 14:08
The main reason I bring it up is because the location that it would need to happen. Depending on which spells you are referring to an "autotarget" happens either: during the announcement of the SA/as the trigger occurs (TargetSelection) or as the SA effect resolves if it's a "Choose an opponent" spell. Where the work for auto-yielding happens in the PhaseHandler. "I'm about to gain priority, oh but the top of the stack says I yield to this SA. So pass priority instead of providing it to the UI."
Edit: Of course this doesn't matter for triggers, only activated abilities and spells. If a trigger is going on the stack, and there's only one legal target there's no reason to not auto-select it. For SAs, we just need a way to streamline it so understanding isn't sacrificed for convenience.
I'm trying to think if there's any SAs that exist that this would be bad for. What about the case of tapping a Blood Cultist and expecting to target an opponent's creature, but then you realize it has Hexproof and the Cultist targets itself? The tap ability won't prompt you, and the target will choose immediately...what if I just made it so, if there is only one valid target for a spell or ability, it just auto-chooses that target for you?
Edit: Of course this doesn't matter for triggers, only activated abilities and spells. If a trigger is going on the stack, and there's only one legal target there's no reason to not auto-select it. For SAs, we just need a way to streamline it so understanding isn't sacrificed for convenience.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Forge Android App: 08-24-2014 Alpha 1.5.25.004
by Agetian » 25 Aug 2014, 15:15
An interesting suggestion, Dan! I agree with Friarsol that it should be transparent to the end user as to what is auto-selected and why and that it shouldn't hinder usability in the sense that it may erroneously auto-select something when there's an actual option available to select something else. Targeting arrows are a nice idea (to show what exactly is selected). Overall a nice idea, if implemented right it'll effectively get rid of a good deal of additional "annoying" clicks and keyboard presses.
- Agetian

- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Forge Android App: 08-24-2014 Alpha 1.5.25.004
by drdev » 25 Aug 2014, 17:16
How about if the check that determines whether to auto-target only takes into account the total number of GameEntitys (cards/players) that meet the targetting restrictions on the spell/ability but ignores effects that make the any of those potential targets an invalid target (such as Hexproof or protection).
That way, a target creature card would only auto-target if there is only one creature in play, but not auto-target if there are two creatures in play but one is untargettable. That way, it would be very transparent before playing the spell or activating the ability what's going to be targetted.
Also (or alternatively), since I'd be adding logic for determining valid targets, I could actually highlight the first valid target with a border (or the selection icon), then enable the OK button to select the highlighted target. For the desktop game, you could then use the left and right arrow keys to move the highlight box around, then press Enter, thus enabling you to pick targets using just the keyboard. For the mobile game, it would just allow pressing OK as another way to confirm that you want to target the first valid target. We can also update the prompt message to indicate what the highlighted target is.
Note that if we chose to not implement auto-targetting without input when only a single target exists, or if we made that a setting, this would still allow pressing OK to confirm that you want to target the first valid target, such as your opponent for a "target opponent" effect.
How's that sound?
That way, a target creature card would only auto-target if there is only one creature in play, but not auto-target if there are two creatures in play but one is untargettable. That way, it would be very transparent before playing the spell or activating the ability what's going to be targetted.
Also (or alternatively), since I'd be adding logic for determining valid targets, I could actually highlight the first valid target with a border (or the selection icon), then enable the OK button to select the highlighted target. For the desktop game, you could then use the left and right arrow keys to move the highlight box around, then press Enter, thus enabling you to pick targets using just the keyboard. For the mobile game, it would just allow pressing OK as another way to confirm that you want to target the first valid target. We can also update the prompt message to indicate what the highlighted target is.
Note that if we chose to not implement auto-targetting without input when only a single target exists, or if we made that a setting, this would still allow pressing OK to confirm that you want to target the first valid target, such as your opponent for a "target opponent" effect.
How's that sound?
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Who is online
Users browsing this forum: No registered users and 61 guests