Complete Card Games for MT-1.3.b89 (or CGE.CC.S Edition)

Show off your RPG maps, campaigns, and tokens. Share your gaming experiences and stories under General Discussion and save this forum for things you've created that may help others run their own games. Use the subforums when appropriate.

Moderators: dorpond, trevor, Azhrei, Gamerdude

Post Reply
User avatar
Lord.Ashes
Dragon
Posts: 350
Joined: Wed Jul 03, 2013 5:58 am

Complete Card Games for MT-1.3.b89 (or CGE.CC.S Edition)

Post by Lord.Ashes »

I am developing Campaign files for MapTool-1.3.b89 or MapTool-1.3.b89.CGE.CC.S (see post http://forums.rptools.net/viewtopic.php?f=8&t=24372) which implement everything needed to play specific card and board games through MapTool. Each card game or board game will have its own Campaign file and that file will contain everything needed to play the card game except for the rules (which the user should already have).

Since these games are obviously copyright I am not going to post the campaign files here (since that would be a violation of copyright laws) but, under my own interpretation of what I think constitutes fair play, I will provide them to anyone who is interested and can prove to me that they own the original card game or board game. Although I am not a lawyer and thus my interpretation may have little legal merit, I belief that if a user already purchased the card game or board game then the author has been paid for his/her hard work and, in that case, I am only providing a method for that game to be played with friends over the internet as opposed to having everyone present in the same location.

In order to establish that a user owns the game, I will ask them to send a photo of themselves (does not need to show face) with the game contents open and with some component of the game showing (I will tell you which component to showcase). For example, I might ask you to show the contents of your Smallworld box while holding a Troll token. This should prevent users from grabbing generic pictures, off the internet, with some stranger that has opened the game contents.

Please note that these Campaign files do not actually contain any implementation of the rules. They are intended to just be virtual versions of the original box sets with provisions for moving tokens, flipping cards, placing cards in player's hands (where applicable) and sometimes a little assistance with scoring but the rules still need to be known by the players and players can still cheat as they would be able to at a real table playing the physical version of the game.


Current Modules available:

Carcassone
Box.png
Box.png (229.45 KiB) Viewed 1591 times

Smallworld
Smallworld Box.png
Smallworld Box.png (511.09 KiB) Viewed 1589 times

Talisman (3rd Edition)
Talisman.png
Talisman.png (429.7 KiB) Viewed 1569 times

Oh Pharo!
Logo.png
Logo.png (252.27 KiB) Viewed 1591 times

Coming Soon:

Fluxx





If you are interested in any module (Campaign file) and have the original game, you can PM me and I will send you instructions.
Note: Please do not post your "interest" in this thread (PM me instead) so that we can keep the rest of this thread for bug reports and updates.


Edit: Corrected URL from wFunc to URL.
Edit: Added Smallworld to completed Campaign modules.
Edit: Added Talisan (3rd Edition) to completed Campaign modules.
Edit: Added disclaimer about these modules being no-rule modules. Just virtual versions of the physical box sets.
Edit: Added note about PMing interest in a module instead of posting in this thread.
Last edited by Lord.Ashes on Mon Oct 07, 2013 5:15 pm, edited 3 times in total.
"We often compare ourselves to the U.S. and often they come out the best,
but they only have the right to bare arms, while we have the right to bare breasts"
The Right To Bare Breasts by Bowser & Blue


User avatar
Lord.Ashes
Dragon
Posts: 350
Joined: Wed Jul 03, 2013 5:58 am

Re: Complete Card Games for MT-1.3.b89 (or CGE.CC.S Edition)

Post by Lord.Ashes »

Update: Talisman (3rd Edition) has been moved to the completed module section.

Known Issues:

* On Character Cards the Strength, Craft, Lives, Experience and Gold values support showing only values 0 to 9 after which they show "X".
This is typically insufficient for Strength and Craft. However, if you mouse over the Character Cards the stats block will show the
full (correct) value, so the Campaign file is fully usable with this current limitation. Support for up to 20 (or more) is expected
in the next version.

* Due to an oversight with the [wfunc]setOwner()[/wfunc] function, MapTool-1.3.b89 does not allow setting of token ownership back to
"All Players" through macro functions. Yes, MapTool Wiki claims you can do setOwner(getAllPlayerNames("json")) but this is
not the same as setting the "All Player" ownership checkbox. For this reason all new games should always start from the original
Talisman Campaign file and games (in progress) should never be saved using the original Talisman Campaign file name. Saved games
should always use Save As with a different file name. If the reason for this requirement is not clear and you need more info just
PM me and I will be happy to explain. This issue is resolved if you are using my Card Game Edition of MapTools because in that version
I have patched MapTool to allow setting of the "All Players" checkbox when getAllPlayerNames("json") is passed to it.
(See thread http://forums.rptools.net/viewtopic.php?f=8&t=24372 for more information on my Card Game Edition of MapTool)

Requirements:

* When using the Campaign file, all players need to be connected as players (not GM) and the server must run in "Strict Token Ownership".
This will ensure that Spell Cards, which are pick up into a player's hand, are not visible to other players and it will also ensure
that the board tiles can not be accidentally moved by the players.
"We often compare ourselves to the U.S. and often they come out the best,
but they only have the right to bare arms, while we have the right to bare breasts"
The Right To Bare Breasts by Bowser & Blue


User avatar
Lord.Ashes
Dragon
Posts: 350
Joined: Wed Jul 03, 2013 5:58 am

Re: Complete Card Games for MT-1.3.b89 (or CGE.CC.S Edition)

Post by Lord.Ashes »

wolph42 wrote:Have you considered a 'reset all tokens' macro that cycles through ALL tokens and resets the owner?
That is the problem...the unmodified version of MapTool does not allow setting of the All Players ownership by macro function. So it is not possible to create such a macro in MapTool-1.3.b89. In my modified MapTool (Card Game Edition), you don't need such a macro because all you have to do is select all the card tokens and run the "Drop Face Down" token macro. This will remove the card tokens from any player's hand (if any) and set the ownership back to All Players (i.e. actually re-check the All Players checkbox as opposed to just listing all the players in the ownership). However, if you do the same in MapTool-1.3.b89 then the setOwner macro function will just set ownership to all connected players. This means that if after that another player joins you have to re-run the setOwner macro to add him/her to the owner list. This is a known issue of MapTool-1.3.b89. Also the isOwnedByAll macro function (not used in my Campaign file) does not return true when a token is owned by all connected players (but the All Players ownership checkbox is not set).
"We often compare ourselves to the U.S. and often they come out the best,
but they only have the right to bare arms, while we have the right to bare breasts"
The Right To Bare Breasts by Bowser & Blue

User avatar
wolph42
Winter Wolph
Posts: 9999
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands
Contact:

Re: Complete Card Games for MT-1.3.b89 (or CGE.CC.S Edition)

Post by wolph42 »

Ah ok so setOwnedByAll does not exist! Which makes it impossible to reset the board. And that's the issue!
That's close to the broader definition of an MT bug and is something (especially if you write a patch) that might make it into b90. PM Azh about this.

User avatar
Lord.Ashes
Dragon
Posts: 350
Joined: Wed Jul 03, 2013 5:58 am

Re: Complete Card Games for MT-1.3.b89 (or CGE.CC.S Edition)

Post by Lord.Ashes »

wolph42 wrote:Ah ok so setOwnedByAll does not exist! Which makes it impossible to reset the board. And that's the issue!
That's close to the broader definition of an MT bug and is something (especially if you write a patch) that might make it into b90. PM Azh about this.
I PMed Azhrei but I think he is very busy because I sent him a PM regarding my finished Cache Cleaner code and it is still sitting in my Outbox (meaning he has not gotten to it).

In my own patch, to address this issue, I did not create a setOwnerByAll macro function because although this would address any Campaign files going forward it would not address any Campaign files already built (such as the Talisman campaign file). Instead I modified the setOwner() function in two ways:

1. I provided the possibility of a reserved parameter "All" which removes all players from the ownership list and, instead, selects the "All Players" checkbox. This is a easy way for selecting all player ownership for future Campaign files.

2. However, for backwards compatibility, I also did a check to see if the parameter to setOwner() matches the results of getAllPlayerNames() which is how Wiki suggests setting a player's token ownership to all players. If it is a match, the patch ignores the player list provided and instead assumes that the user means "All Players". Thus it also removes all players from the ownership list and, instead, checks the "All Players" checkbox. This allows campaigns built for MT-1.3.b89 (or earlier) to gain the benefit of this fix without needing to make any modifications to the campaign file.

The getOwners() function was fixed so that when a token is owned by All Players, the getOwners() returns the same as getAllPlayerNames().
"We often compare ourselves to the U.S. and often they come out the best,
but they only have the right to bare arms, while we have the right to bare breasts"
The Right To Bare Breasts by Bowser & Blue

User avatar
wolph42
Winter Wolph
Posts: 9999
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands
Contact:

Re: Complete Card Games for MT-1.3.b89 (or CGE.CC.S Edition)

Post by wolph42 »

the getowners fix is a good one... the setallplayers not so much, although i guess it probly work in 99% of the cases, there will be exceptions where the coder will get confused as it not doing what you would expect. im personally all for a setOwnedByAll together with the getOwners returning the list of players when isOwnedByAll is true.

a simple example: you have a game running where the gm shares handouts with whom is playing, players joining later will have no access to it unless specifically said/set so. Or maybe a play by mail style game where two groups log in alternating, group one has access to certain handouts while group 2 has not. In these cases a gm would set ownersship to all players that are currently logged in, but would not want others to have that access (and would also not expect that to happen). Its true that these are unlikely cases, but MT is a generic tool and should keep as generic as possible. Its also not inconceivable that there are more likely cases (which i just don't think off right now)

Give the fact that the same issue is also solved with a setOwnedByAll() for you case, but does not render unexpected results im inclined to go for that option. After all the setOwner and isOwnedByAll were created with two completely seperate purposes, even so seperate that getowners returns '' when isownedbyall is true that you should be carefull with making changes in that design.

User avatar
Lord.Ashes
Dragon
Posts: 350
Joined: Wed Jul 03, 2013 5:58 am

Re: Complete Card Games for MT-1.3.b89 (or CGE.CC.S Edition)

Post by Lord.Ashes »

wolph42 wrote:the getowners fix is a good one... the setallplayers not so much, although i guess it probly work in 99% of the cases, there will be exceptions where the coder will get confused as it not doing what you would expect. im personally all for a setOwnedByAll together with the getOwners returning the list of players when isOwnedByAll is true.

a simple example: you have a game running where the gm shares handouts with whom is playing, players joining later will have no access to it unless specifically said/set so. Or maybe a play by mail style game where two groups log in alternating, group one has access to certain handouts while group 2 has not. In these cases a gm would set ownersship to all players that are currently logged in, but would not want others to have that access (and would also not expect that to happen). Its true that these are unlikely cases, but MT is a generic tool and should keep as generic as possible. Its also not inconceivable that there are more likely cases (which i just don't think off right now)

Give the fact that the same issue is also solved with a setOwnedByAll() for you case, but does not render unexpected results im inclined to go for that option. After all the setOwner and isOwnedByAll were created with two completely seperate purposes, even so seperate that getowners returns '' when isownedbyall is true that you should be carefull with making changes in that design.
With my fix this is still easy to do. Since setOwner checks to see if the parameter matches the result of getAllPlayerNames, you can still get it to use only the connected players (as opposed to all players) by modifying the output. The simplest way, is to add a dummy name. For example: setOwner(getAllPlayerNames("json")+",JustThoseName"). Since the parameter does not match the player list exactly the "All Players" branch of the logic is not tripped and thus the individual player names will be added to the ownership.
"We often compare ourselves to the U.S. and often they come out the best,
but they only have the right to bare arms, while we have the right to bare breasts"
The Right To Bare Breasts by Bowser & Blue

User avatar
wolph42
Winter Wolph
Posts: 9999
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands
Contact:

Re: Complete Card Games for MT-1.3.b89 (or CGE.CC.S Edition)

Post by wolph42 »

Lord.Ashes wrote:
wolph42 wrote:the getowners fix is a good one... the setallplayers not so much, although i guess it probly work in 99% of the cases, there will be exceptions where the coder will get confused as it not doing what you would expect. im personally all for a setOwnedByAll together with the getOwners returning the list of players when isOwnedByAll is true.

a simple example: you have a game running where the gm shares handouts with whom is playing, players joining later will have no access to it unless specifically said/set so. Or maybe a play by mail style game where two groups log in alternating, group one has access to certain handouts while group 2 has not. In these cases a gm would set ownersship to all players that are currently logged in, but would not want others to have that access (and would also not expect that to happen). Its true that these are unlikely cases, but MT is a generic tool and should keep as generic as possible. Its also not inconceivable that there are more likely cases (which i just don't think off right now)

Give the fact that the same issue is also solved with a setOwnedByAll() for you case, but does not render unexpected results im inclined to go for that option. After all the setOwner and isOwnedByAll were created with two completely seperate purposes, even so seperate that getowners returns '' when isownedbyall is true that you should be carefull with making changes in that design.
With my fix this is still easy to do. Since setOwner checks to see if the parameter matches the result of getAllPlayerNames, you can still get it to use only the connected players (as opposed to all players) by modifying the output. The simplest way, is to add a dummy name. For example: setOwner(getAllPlayerNames("json")+",JustThoseName"). Since the parameter does not match the player list exactly the "All Players" branch of the logic is not tripped and thus the individual player names will be added to the ownership.

that sounds like a workaround, which inherently means you're dealing with either a bug or an unwanted feature.

User avatar
Lord.Ashes
Dragon
Posts: 350
Joined: Wed Jul 03, 2013 5:58 am

Re: Complete Card Games for MT-1.3.b89 (or CGE.CC.S Edition)

Post by Lord.Ashes »

Well in my opinion, there are more cases in the current MapTool Campaign files where setOwner(getAllPlayerNames("json")) is used to mean All Players as opposed to MapTool Campaign files where setOwner(getAllPlayerNames("json")) is used to mean only the connected players.

This is why I built in the second backward compatibility patch (in addition to the "All" parameter option). So that existing Campaigns would get fixed by this patch without having to modify the Campaign file. If this is undesirable then you might as well create a setOwnedByAll macro function. This is actually what I wanted to do initially but then, on purpose, did it the other way so that I would not have to edit existing Campaign files and find instances of setOwner(getAllPlayerNames("json")) and change them to setOwnedByAll.

Of course that is just my opinion and I am sure there are those that would support the setOwnedByAll method over my method and there are those that would prefer my backwards compatibility method using setOwner.
"We often compare ourselves to the U.S. and often they come out the best,
but they only have the right to bare arms, while we have the right to bare breasts"
The Right To Bare Breasts by Bowser & Blue

Post Reply

Return to “User Creations”