It is currently 16 Apr 2024, 04:59
   
Text Size

Archenemy for 2014

Moderator: CCGHQ Admins

Archenemy for 2014

Postby Xander9009 » 22 Oct 2016, 12:48

2012 had the Archenemy format, and I remember really liking it. It had been my first introduction to it, and it was really interesting. The recent post in a thread related to archenemy left me curious how difficult an approximation in 2014 would be.

Here's my thought on it so far. A single card, similar to how the leylines work, would put itself onto the battlefield at the start of the game. It would be the single scheme card currently face up. Its code would get very complicated, but it would work like this.

There's a list of possible scheme cards to use. Those cards are treated much the same as the back faces of transform cards in that they aren't included in decks directly, but rather are referenced by other cards.
There's a master list of those cards, each with an index (whether by name, number, or some other method).
A single scheme control card is included in an archenemy deck. At the beginning of the game, it puts itself on the battlefield and creates a manager token. The manager token sets its controller's life total to 40 (only the archenemy needs the manager token), and registers the scheme cards the controller is set up for.
By "set up for", I mean that while any given deck may only have one scheme controller, many controllers would exist. Each one would have a different list of schemes for the manager token to register. Each registered scheme is added to a pseudo-scheme-deck. The manager takes care of everything related to archenemy rules.
Whenever a scheme is set in motion, the controller would take on the characteristics of that scheme, and then the SCHEME_SET_IN_MOTION trigger would be fired (pseudo-trigger using the CW_General_FireTrigger() function).

With this method, there would be a few major issues.
1: There's no way to make the allies take turns at the same time.
2: There's no real way I know of to make them treat each other as allies, so the AI wouldn't be able to handle it very well.
3: While we could prevent each non-archenemy from attacking another non-archenemy with creatures, there's not much else we could do without breaking many cards.

So, the main question here is this: can anyone think of a way to make the players consider one another allies?
I think the answer will be no, and without this, it's a rather fruitless attempt. But if the answer is yes, then it might just work.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Archenemy for 2014

Postby Splinterverse2 » 31 Oct 2016, 13:35

Would one of the players be the archenemy? If so, is there a way to assign a new characteristic to a player that could be filtered? Then maybe you could filter similar to team filters. But if you are asking how to make the AI not target opponents, I don't know if the would work with the simplified targeting blocks. You might have to have separate versions of cards without those tags or with something else to counteract them if the game is in archenemy format.
Splinterverse2
 
Posts: 52
Joined: 20 Sep 2016, 13:52
Has thanked: 13 times
Been thanked: 0 time

Re: Archenemy for 2014

Postby Splinterverse » 28 Nov 2016, 11:27

After working with "The Monarch" and the Vanguard cards, I'm wondering if the schemes could be created as tokens and the manager card could call them into play as they are needed and destroy them when they are not. The Monarch has everything in it to avoid destruction/targeting/board wipes, etc. Just thinking that this method might allow for the art on the scheme cards to be different with each one "played."

I used filters a lot with the Monarch cards to determine who is the Monarch, so if Archenemy is played in free-for-all mode, you might be able to use a filter to see who has the manager. Then, maybe there's a way for it to pre_trigger if an illegal target is chosen (among the allies) or give them hexproof against each other. I don't know. Just stream of thought here. :)
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
Splinterverse
 
Posts: 918
Joined: 04 Sep 2016, 13:32
Has thanked: 150 times
Been thanked: 75 times

Re: Archenemy for 2014

Postby Xander9009 » 29 Nov 2016, 19:50

I wouldn't be able to give them hexproof against just each other without also affecting the archenemy. I might be able to grant them protection from one another, however, and prevent their creatures from attacking one another. It'd be over-zealous in that it would also prevent them from helping one another, but it might be a close enough approximation to work out.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Archenemy for 2014

Postby Splinterverse » 05 Dec 2016, 11:10

Xander9009 wrote:I wouldn't be able to give them hexproof against just each other without also affecting the archenemy. I might be able to grant them protection from one another, however, and prevent their creatures from attacking one another. It'd be over-zealous in that it would also prevent them from helping one another, but it might be a close enough approximation to work out.
Another idea. Are we able to create custom characteristics for players? If so, we might be able to make one called ALLY or something. If the "Archenemy" deck had a control card or manager that assigned that value to each ally and then had several triggers that checked for targeting, it could prevent targeting. Like you said though, it would make them not be able to help each other, but that might be something we have to live with to get this to work.

Another idea I had was to use 2HG. In that format, you could have the archenemy take up one spot and the schemes deck take up the other on one team. Then 2 players could play against it. That would cover the playing ally turns simultaneously. The scheme deck could have just schemes and "the player" could have hexproof etc. If we made the schemes similar to The Monarch/Vanguards where they can't be destroyed, but modified them to be self-destructible, then that could work. If we don't have enough schemes to fill the scheme deck, we could put in lands and have them exiled as soon as they come into play. The only downside to 2HG is the shared life total. Technically the rules are that the archenemy could eliminate the other players 1 at a time. For an approximation, we could start the "Ally" team with 40 life and when 20 life is lost (adjusted for gains), perhaps randomly one of the players could no longer cast anything and his/her side of the board is wiped. More streaming thoughts here.

I would definitely be down to make the scheme cards and deck if you want help with this effort.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
Splinterverse
 
Posts: 918
Joined: 04 Sep 2016, 13:32
Has thanked: 150 times
Been thanked: 75 times

Re: Archenemy for 2014

Postby Xander9009 » 05 Dec 2016, 22:59

The 2HG is an interesting idea. But it reduces the allies from 3 to 2, which would probably interfere heavily with the balance of the scheme cards; making them less powerful when they affect opponents and more powerful when they affect the archenemy.

We can make custom characteristics for players the same way we make custom characteristics for cards. The problem is that it would currently require all cards that target/choose friendly players or enemies to be modified to use that new characteristic, or we'd have to make a master list. And with that many cards involved, the list would probably be too large to be viable. Unless we could find a way to make a master list of just the friendly cards, and then give each opponent protection from the cards (while targeting) unless they're in that list. That would reduce the number of cards in the list significantly, but I don't know if it would be enough to prevent lag issues.

So far, the one I'm liking the most is to give each player protection from each of their allies. I'm not too terribly worried about the rules related to taking turns at the same time, or other minor things like that. Despite not following the rules of the format, it basically just makes what we're making a variant of archenemy, which I'm okay with. But having your allies attacking you with spells isn't just a variant, it's outright game-breaking. Especially when you consider that the AI tends to attack the weakest opponent, and if the allies are attacking each other, then the archenemy will neer be the weakest, since they start off with such a big lead.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Archenemy for 2014

Postby Splinterverse2 » 06 Dec 2016, 13:28

Xander9009 wrote:The 2HG is an interesting idea. But it reduces the allies from 3 to 2, which would probably interfere heavily with the balance of the scheme cards; making them less powerful when they affect opponents and more powerful when they affect the archenemy.

We can make custom characteristics for players the same way we make custom characteristics for cards. The problem is that it would currently require all cards that target/choose friendly players or enemies to be modified to use that new characteristic, or we'd have to make a master list. And with that many cards involved, the list would probably be too large to be viable. Unless we could find a way to make a master list of just the friendly cards, and then give each opponent protection from the cards (while targeting) unless they're in that list. That would reduce the number of cards in the list significantly, but I don't know if it would be enough to prevent lag issues.

So far, the one I'm liking the most is to give each player protection from each of their allies. I'm not too terribly worried about the rules related to taking turns at the same time, or other minor things like that. Despite not following the rules of the format, it basically just makes what we're making a variant of archenemy, which I'm okay with. But having your allies attacking you with spells isn't just a variant, it's outright game-breaking. Especially when you consider that the AI tends to attack the weakest opponent, and if the allies are attacking each other, then the archenemy will neer be the weakest, since they start off with such a big lead.
I'm with you that protection is probably the best approach. Since the archenemy needs to have a regular deck plus a scheme deck, I think the token approach (similar to The Monarch) for schemes would be good. A manager or control card added to the archenemy's deck would generate the schemes and remove them as needed. The control card could also be used to determine who is the archenemy (also like the Monarch).

Over time, we could enhance the variant to allow for helpful card exceptions if we wanted to or enhance it in other ways. :)
Splinterverse2
 
Posts: 52
Joined: 20 Sep 2016, 13:52
Has thanked: 13 times
Been thanked: 0 time

Re: Archenemy for 2014

Postby migookman » 10 Jul 2019, 02:50

Would it be possible for the Archenemy Manager to have all Scheme cards exiled under it face down at the start of the game and put a Scheme into play at the start of the turn of the Archenemy? This way , I believe, 3 players would be able to fight the Archenemy in a Free-for-All game.
User avatar
migookman
 
Posts: 135
Joined: 05 Aug 2014, 06:37
Has thanked: 21 times
Been thanked: 28 times

Re: Archenemy for 2014

Postby Splinterverse » 10 Jul 2019, 20:27

migookman wrote:Would it be possible for the Archenemy Manager to have all Scheme cards exiled under it face down at the start of the game and put a Scheme into play at the start of the turn of the Archenemy? This way , I believe, 3 players would be able to fight the Archenemy in a Free-for-All game.
I don't think that would work unless we want to limit the schemes to 40 or less. A deck can have a max of 100 cards in DOTP2014 before the game crashes (or has other issues).

I think a manager that plays tokens each time it plays a scheme would be best (or a card that invokes other cards that are not in the deck).

I really see two options (but I hope others can weigh in):

-- Use a 2HG variant with one team consisting of the Archenemy and the other player holding the scheme deck. There is a variant out there that uses this for 2v1 Archenemy. The only part of the rules they had to change was that the Archenemy only plays a scheme every other turn as opposed to every turn. Life totals remained the same.

-- Use free-for-all with some of the protections we've got in place for Planechase to work. This would make the "allies" not able to attack or target each other. But, it would also mean that spells that benefit each other would not be able to be cast AND spells like a lot of the ones in Battlebond that reference "team" wouldn't work as intended. They'd only be able to buff/benefit the current ally.

A couple other thoughts:

-- If we can make the schemes actually cards (rather than tokens) that are called in to play similar to flip side cards, we might be able to make Archenemy work in both 2HG and free-for-all.

-- I would like to see our implementation be similar to Commander in that the human player includes a special land (or a manager) and then he/she chooses which player is going to be the Archenemy. I'd hate to have to add a manager to every deck that we want to play against as Archenemy. If we make it so that the manager allows a human to choose that person, it would be more flexible.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
Splinterverse
 
Posts: 918
Joined: 04 Sep 2016, 13:32
Has thanked: 150 times
Been thanked: 75 times

Re: Archenemy for 2014

Postby Splinterverse » 11 Jul 2019, 00:07

To give an example of a card that won't work properly if we use free-for-all . . . Escaped Shapeshifter. Escaped Shapeshifter will gain the abilities listed when one of the allies has a creature with those abilities as opposed to just the Archenemy.

In 2HG, Escaped Shapeshifter would work properly because the :GetTeam() filter would function normally.

Again, I think we can develop for both formats (potentially), we just have to keep in mind that playing it in free-for-all will make some of the rules go sideways.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
Splinterverse
 
Posts: 918
Joined: 04 Sep 2016, 13:32
Has thanked: 150 times
Been thanked: 75 times

Re: Archenemy for 2014

Postby Xander9009 » 09 Oct 2019, 18:05

There 1992 cards that use the function GetTeam(). But GetTeam() is always called exactly the same way. It's always called on an object, and a simple regex could turn
EffectController():GetTeam()
oPlayer:GetTeam()
EffectDC():Get_PlayerPtr(i):GetTeam()

into

CW_General_GetTeam(EffectController())
CW_General_GetTeam(oPlayer)
CW_General_GetTeam(EffectDC():Get_PlayerPtr(i))

with no need to do them all manually. This way, the result of GetTeam() could be easily overridden inside of CW_General_GetTeam() whenever you're in an archenemy game. Simply check the current managers, and if there's an archenemy manager in free for all, then that archenemy returns 2 and everyone else returns 1. It would still not make the AI treat the allies like allies, but the cards' effects would work correctly.

It might even be possible to simply override COMPARTMENT_TEAM_PTR in the PlayerDataChest. Don't know for sure, but could be a route to explore.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times


Return to Programming Talk

Who is online

Users browsing this forum: No registered users and 25 guests


Who is online

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

Login Form