It is currently 19 Apr 2024, 23:45
   
Text Size

Developer Plans

Post MTG Forge Related Programming Questions Here

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

Re: Developer Plans

Postby Agetian » 08 Jan 2014, 06:53

@ friarsol: Yes, I noticed the ante not displaying correctly in the match UI a very, very long time ago (I think it's been like that for over a year, at the very least, and I'm not sure if it was ever right, at least since I started helping out with the project). Sadly, I wasn't able to figure out a way to fix it back in the day since I was never much into UI coding, hopefully someone will be able to fix it. Good news about the upcoming cards, by the way!

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Developer Plans

Postby friarsol » 08 Jan 2014, 12:55

Agetian wrote:@ friarsol: Yes, I noticed the ante not displaying correctly in the match UI a very, very long time ago (I think it's been like that for over a year, at the very least, and I'm not sure if it was ever right, at least since I started helping out with the project). Sadly, I wasn't able to figure out a way to fix it back in the day since I was never much into UI coding, hopefully someone will be able to fix it. Good news about the upcoming cards, by the way!
It's kinda gone back and forth between kinda working and not working at all. At one point it printed all the cards in it, but didn't actually clear out as you moved forward in the match, so it would show all cards anted in all games played.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Developer Plans

Postby swordshine » 09 Jan 2014, 12:28

I'll try to convert Old Man of the Sea. Lots of codes are related to this single card in forge.game.StaticEffects. I hope Rootwater Matriarch might be scriptable after the convertion.
swordshine
 
Posts: 682
Joined: 11 Jul 2010, 02:37
Has thanked: 116 times
Been thanked: 87 times

Re: Developer Plans

Postby Agetian » 16 Jan 2014, 05:25

My immediate dev targets are:
- Finishing the support for multiple card art (almost done, in the process of some final tweaking and will then try to do something about choosing the particular set for random cards instead of always the latest set);
- Continuing to work on foils (will add routines for generating foils in boosters and quest card pools, will possibly also add match/quest-based preferences for whether the player wants to play with foils or without them; I won't enable any of this by default until the deck editor is updated to visualize the foils and add foils to deck separately from non-foils though).
- Continuing to work on AI personalities (the project has been stagnant for a while; as soon as I finish my long-planned card-related work it's likely to be all AI work for me).

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Developer Plans

Postby Marek14 » 16 Jan 2014, 07:57

Agetian wrote:My immediate dev targets are:
- Finishing the support for multiple card art (almost done, in the process of some final tweaking and will then try to do something about choosing the particular set for random cards instead of always the latest set);
One slightly off thing that would be nice would be if, in case of Zendikar basic lands, you could also choose "random, but full pictures only" and "random, but normal pictures only".
Marek14
Tester
 
Posts: 2759
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 296 times

Re: Developer Plans

Postby Agetian » 16 Jan 2014, 12:45

@ Marek14: Hmm, sounds like an interesting option, but I'm not sure where exactly it'll fit in. On the one hand, if you have a handful of Zendikar lands in a quest or sealed/draft, you can deliberately choose to put/not to put certain ones into your deck, ditto the Constructed mode where you can compose your deck with any art in mind that you'd like. It sounds like a nice option for random color Constructed decks, but I'm not sure if it can become a global option with the current module split in mind (it might require some calls to Singletons that are currently deprecated elsewhere outside GUI and will become impossible after the module split is complete). Anyhow, I'll think about how this can be best implemented and I'll do something if possible. ;)

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Developer Plans

Postby Marek14 » 16 Jan 2014, 17:46

Agetian wrote:@ Marek14: Hmm, sounds like an interesting option, but I'm not sure where exactly it'll fit in. On the one hand, if you have a handful of Zendikar lands in a quest or sealed/draft, you can deliberately choose to put/not to put certain ones into your deck, ditto the Constructed mode where you can compose your deck with any art in mind that you'd like. It sounds like a nice option for random color Constructed decks, but I'm not sure if it can become a global option with the current module split in mind (it might require some calls to Singletons that are currently deprecated elsewhere outside GUI and will become impossible after the module split is complete). Anyhow, I'll think about how this can be best implemented and I'll do something if possible. ;)

- Agetian
One option would be to make the syntax accept two numbers.

ZEN would be unlimited from Zendikar.
ZEN|1 would be a specific picture.
ZEN|1|4 would be random picture from range 1-4.
Marek14
Tester
 
Posts: 2759
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 296 times

Re: Developer Plans

Postby Agetian » 17 Jan 2014, 02:26

@ Marek14: Hmm, to be honest that sounds like too much overcomplication for the deck format - in addition to one more numeric parameter for a card, it'll introduce the unwanted ambiguousness of the first numeric parameter (it will then either mean a specific art or the beginning of a random art range). Don't worry, I'll think about it and try to come up with something acceptable if I can ;)

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Developer Plans

Postby friarsol » 03 Feb 2014, 04:56

Not particularly a feature, but I plan on going through as many of the keywords I can and adding reminder text. I know for me the keywords that released in the mid 00s I can never quite rememember what they do, and I'm sure we have plenty of people using forge who has no idea what some of them do.

After I get done with that, if Max's trigger changes still don't seem to be having issues (which I haven't noticed since the last fix, thanks Max). I'll add in the Phasing triggers and Teferi's Imp since it contains both triggers for examples for other scripters.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Developer Plans

Postby Max mtg » 03 Feb 2014, 05:41

friarsol wrote:Not particularly a feature, but I plan on going through as many of the keywords I can and adding reminder text. I know for me the keywords that released in the mid 00s I can never quite rememember what they do, and I'm sure we have plenty of people using forge who has no idea what some of them do.
You can go even further and gather all keywords into a dedicated enum with their descriptions and possible parameter type [none (many common keywords), magnitude (k:suspend), cost (k:equip), creature type (k:offering), land type(k:~landtype~walk)]
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

Re: Developer Plans

Postby drdev » 03 Feb 2014, 18:00

Max mtg wrote:
friarsol wrote:Not particularly a feature, but I plan on going through as many of the keywords I can and adding reminder text. I know for me the keywords that released in the mid 00s I can never quite rememember what they do, and I'm sure we have plenty of people using forge who has no idea what some of them do.
You can go even further and gather all keywords into a dedicated enum with their descriptions and possible parameter type [none (many common keywords), magnitude (k:suspend), cost (k:equip), creature type (k:offering), land type(k:~landtype~walk)]
I second this idea. When I was working on supporting mana symbols in details, prompt, and abilities, I found keywords to be very tricky to work with in their current organization. There also is room to optimize things given how many String comparisons that are currently involved.
drdev
Programmer
 
Posts: 1958
Joined: 27 Jul 2013, 02:07
Has thanked: 189 times
Been thanked: 565 times

Re: Developer Plans

Postby Max mtg » 04 Feb 2014, 12:35

My challenges of the month:
1. Untie AI from game (module separation, lots of refactoring)
2. Background images loading. (You just start the download and it continues in its own thread, the interface is no longer blocked and you don't have to wait till it's finished). As an extra mile there could be implemented download by request (prioritize images of cards you are currenly playing with or building in deck editor).
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

Re: Developer Plans

Postby Hellfish » 09 Feb 2014, 21:03

Keyword changes
How would you guys feel about changing keywords in a pretty major way and make them more inline with abilities, giving them named parameters among other things? So CantBeBlockedBy or equip would become
Code: Select all
K:Type$ CantBeBlockedBy | Valid$ Creature.PowerGE3 | Description$ CARDNAME can't be blocked by creatures with power 3 or greater.
K:Type$ Equip | Cost$ 2 | Description$ Equip COST (COST: Attach to target creature you control. Equip only as a sorcery.)
Turning keywords into proper objects would allow them to take advantage of extending CardTraitBase and make it generally easier to implement proper text replacement.
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
User avatar
Hellfish
Programmer
 
Posts: 1297
Joined: 07 Jun 2009, 10:41
Location: South of the Pumphouse
Has thanked: 110 times
Been thanked: 169 times

Re: Developer Plans

Postby Max mtg » 09 Feb 2014, 21:53

Hellfish wrote:
Keyword changes
How would you guys feel about changing keywords in a pretty major way and make them more inline with abilities, giving them named parameters among other things? So CantBeBlockedBy or equip would become
Code: Select all
K:Type$ CantBeBlockedBy | Valid$ Creature.PowerGE3 | Description$ CARDNAME can't be blocked by creatures with power 3 or greater.
K:Type$ Equip | Cost$ 2 | Description$ Equip COST (COST: Attach to target creature you control. Equip only as a sorcery.)
Turning keywords into proper objects would allow them to take advantage of extending CardTraitBase and make it generally easier to implement proper text replacement.
That's the worst idea that can bloat cards with tons of useless data.
Keywords don't need decsriptions in scripts or explaination of what the parameter is - because that data is part of keyword's definition and should not be repeated on each card

Turning kw instances from string into objects is good idea, but do not use map<String,String> ever again. A keyword instance is to contain KeywordType enum member, and keyword's parameter (kw instance can use parameter type as generic) - looks like there's nothing else that is unique for each kw instance.
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

Re: Developer Plans

Postby Hellfish » 09 Feb 2014, 22:41

That's fine, it was just one idea.

The main thing I was after was letting the keyword itself track wether it's intrinsic or not, like SpellAbility,Trigger,ReplacementEffect and StaticAbility do now. Tracking wether it is "HIDDEN" or not also seems like a good idea.
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
User avatar
Hellfish
Programmer
 
Posts: 1297
Joined: 07 Jun 2009, 10:41
Location: South of the Pumphouse
Has thanked: 110 times
Been thanked: 169 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 101 guests


Who is online

In total there are 101 users online :: 0 registered, 0 hidden and 101 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 101 guests

Login Form