User:Bumsakalaka
Hi Carcassonne community. I'm Bumsakalaka (CarcC, CarcCZ)
I discovered Carcassonne couple years ago and during COVID quarantine I discovered a big world of Fan expansions. This totally changed my view to this game. With IT background I joined teams on Czech forum, Carcassonne Central, JCloisterZone and finally WikiCarpedia.
My idea is to choose best fan expansions and update rules for them to allow to play it with other official and also fan expansions. This is not so easy tasks, because some of authors are not active these days. But community which knows official rules and common rules principles helped me and others to make rules consistent and create nice example pictures how it can be played.
Wen you are interested on fan expansions then check:
- Fan Expansions with Complete Rules - processed fan expansions with solved interactions with other expansions
- Expansion List Selector - full list of known expansions including 1399 records (in 3rd January 2024).
Translations help to Slovak language
Quick links
- Fan Expansions
- User:Bumsakalaka/Page template - Fan Expansion
- Talk:Fan_Expansions
- User:Bumsakalaka/FFOOP
- User:Bumsakalaka/JCloisterZoneLocale
- User:Bumsakalaka/Cliffs_and_Waterfalls
- User:Bumsakalaka/NKO New King's Orders
- User:Bumsakalaka/WP Wandering Preachers
- User:Bumsakalaka/Gambler's_Luck_(Fan_Expansion) The Pope of Avignon
- User:Bumsakalaka/ČV Czech Flag
- User:Bumsakalaka/HA Halfling Abbey
- User:Bumsakalaka/JS JPutt's Seasons
- User:Bumsakalaka/BC Bumbalka Cottage
- User:Bumsakalaka/OT Olomouc Curd Cheese
- User:Bumsakalaka/RG Royal Gateways
- Alternative scoring boards Alternative scoring boards
- Expansion Selector
- MediaWiki Pages
- Special:ImportTranslations
- action=purge to delete page cache
- MediaWiki:Group-user.css
- MediaWiki:Common.css
Features & Roles / Územia a role
Feature | Role | Územie | Rola | Expansion C1 | Expansion C2 | ||
---|---|---|---|---|---|---|---|
Road | Highwayman | Cesta | Lupič | ![]() |
![]() | ||
City | Knight | Mesto | Rytier | ![]() |
![]() | ||
Monastery | Monk | Kláštor | Mních | ![]() |
![]() | ||
Field | Farmer | Lúka | Sedliak | - | ![]() | ||
Garden | 'Monk' | Záhrada | Mních | - | ![]() | ||
Large expansions | |||||||
Inn | - | Hostinec | - | ![]() |
![]() | ||
Cathedral | - | Katedrála | - | ![]() |
![]() | ||
Trade token | - | Žetón s tovarom | - | ![]() |
![]() | ||
Magic portal | - | Tajná chodba | - | ![]() |
![]() | ||
Volcano | - | Sopka | - | ![]() |
![]() | ||
Abbey | Monk | Opátstvo | Mních | ![]() |
![]() | ||
Shrine | Monk | Svätyňa | Kacír | ![]() |
![]() | ||
City of Carcassonne | - | Mesto Carcassonne | ![]() |
![]() | |||
The castle | - | Zámok | ![]() |
![]() | |||
The market | - | Tržnica | ![]() |
![]() | |||
The blacksmith | - | Kováčska dieľňa | ![]() |
![]() | |||
The cathedral | - | Katedrála | ![]() |
![]() | |||
Bazaar | - | Bazár | ![]() |
![]() | |||
Bridge | - | Most | ![]() |
![]() | |||
Castle | - | Hrad | - | ![]() |
![]() | ||
Vineyars | - | Vinice | - | ![]() |
![]() | ||
Abrobarts place? | - | Cvičisko? | - | - | ![]() | ||
Mini expansions | |||||||
Club Crop Circle | ̠ | Feature | ![]() | ||||
Baba Yaga | Chalúpka Baby Jagy | ![]() |
Solovei Razboynik | Slavík lúpežník | ![]() | ||
Vodyanoy | Vodník | ![]() | |||||
Coiners quarter | Štvrť minciarov | ![]() | |||||
Tanners quarter | Štvrť garbiarov | ![]() | |||||
PnP expansions | |||||||
Fortune Teller | - | Veštecký stan | Veštkyňa | ![]() | |||
Fan expansions | |||||||
Castle | - | Hrad | - | ![]() |
|||
Castle Road | Castle Lord | Hradná cesta | Hradný pán | ![]() |
Figures / Figúrky & Tokens / Žetóny & Pieces / ?
English | Slovak | Type | Player color |
Limited Features |
Introducing Expanion |
Prináša rozšírenie |
---|---|---|---|---|---|---|
Tile | Kartička krajiny | Tile | - | - | ![]() |
![]() |
Figure | Figúrka | Figure | - | - | ![]() |
![]() |
Follower | Spoločník | Meeple | Yes | - | ![]() |
![]() |
Abbot | Opát | Meeple | Yes | Monastery, Garden | ![]() |
![]() |
Large expansions | ||||||
Large Meeple | Veľký spoločník | Meeple | - | - | ![]() |
![]() |
Trade tokens | Žetóny tovaru | Special token | - | - | ![]() |
![]() |
Supporting figure | ??? | Supporting figure | - | - | ![]() |
![]() |
Pig | Prasiatko | Supporting figure | Yes | - | ![]() |
![]() |
Builder | Staviteľ | Supporting figure | Yes | - | ![]() |
![]() |
Special figure | Špeciálna figúrka | Special figure | - | - | ![]() |
![]() |
Dragon | Drak | Neutral figure | - | - | ![]() |
![]() |
Fairy | Víla | Neutral figure | - | - | ![]() |
![]() |
Mayor | Starosta | Meeple | Yes | City | ![]() |
![]() |
Wagon | Voz | Meeple | Yes | - | ![]() |
![]() |
Barn | Statok | Supporting figure | Yes | - | ![]() |
![]() |
Count | Gróf | Neutral figure | - | - | ![]() |
![]() |
Special Tile | Špeciálna kartička | Special tile | - | - | ![]() |
![]() |
King Tile | Kartička Kráľ | Special tile | - | - | ![]() |
![]() |
Robber Tile | Kartička Lúpežný rytier | Special tile | - | - | ![]() |
![]() |
Scoring Marker | Žetón bodov | Special token | - | - | ![]() |
![]() |
King Marker | Žetón Kráľ | Special token | - | - | ![]() |
![]() |
Robber Marker | Žetón Lúpežný rytier | Special token | - | - | ![]() |
![]() |
Castle token | Žetón hradu | Special token | - | - | ![]() |
![]() |
Wooden bridge | Drevený most | Neutral piece | - | - | ![]() |
![]() |
Mini expansions | ||||||
Gold piece | Zlatá tehlička | Neutral piece | - | - | ![]() | |
Change Position | Zmena pozície | Card | - | - | ![]() |
|
Road Sweeper | Zametač ciest | Card | - | - | ![]() |
|
Synod | Synoda | Card | - | - | ![]() |
|
PnP expansions | ||||||
Fan expansions |
Turn phases / Fázy ťahu
English | Slovak |
---|---|
1. Placing a tile | 1. Priloženie kartičky |
2. Placing a follower | 2. Umiestnenie figúrky spoločníka |
2. Placing a figure X | 2. Umiestnenie figúrky X |
3. Scoring a feature | 3. Započítanie bodov |
Expansions / Rozšírenia
Wiki / WiCa / WikiMedia
Topic | URL | Description |
---|---|---|
ExpansionLink | Template:ExpansionLink | Description of ExpansionLink template |
Tables | [[1]] | colspan for table cell |
Carcassonne Boxes | [[2]] | Murphy031:Boxes |
Unfinished | [[3]] | Open pages for translation into Slovak |
Page Language | [[4]] | Possible usage of languaage code in Templates |
Translation of language | [[5]] | Translation of language to page language |
numbered | Numbered name of expansion | |
full | Full name of expansion | |
short | Short name of expansion | |
abbr | Abbr. of expansion | |
name | Name of expansion | |
Magic words | [[6]] | |
Conditionals and parsing | [[7]] | |
Translating wiki | [[8]] | |
Convert template to text | [[9]] - using {{subst:teamplte name}} | |
Formating | Help:Formating | |
Substituing | Substitution | |
Image Extended syntax | Images syntax | |
Sitemap | sitemap.xml | |
Collapsible content | Manual:Collapsible_elements | |
Grammar forms of words for translators | Manual:$wgGrammarForms |
Some texts
English | Slovak | |
---|---|---|
Back of tile | Rub kartičky (svetlý / tmavý) | |
Starting tile | Štartovacia kartička | |
showing / depicing | vyznačené (v zmysle zobrazené napr. kláštory) | |
Large city tiles | Dosky mesta | |
Points tile | Kartička bodov 50/100 | |
Small city | Malé mesto | |
Content | Herný materiál | |
* '''X new land tiles''' depicting XYZ.
|
* '''X kartičky krajiny''' s XYZ.
| |
New land tiles | Nové kartičky krajiny | |
New land tiles are played.. mix ... | Nové kartičky krajiny sa prikladajú k hernému plánu podľa obvyhlých pravidiel zo {{BasicGameLink/sk|text=základnej hry}}. | |
Rules | Pravidlá | |
Tile distribution | Zoznam kartičiek | |
Total tiles | Celkovo kartičiek | |
... | Niektoré kartičky krajiny znázorňujú dodatečné ilustrácie, ktoré môžu mať význam v kombinácii s niektorým z ďalších rozšírení. Označenie písmenami ponechávame v pôvodnom znení: | |
... | G - záhrada, B - farma, T - vodná veža, S - kravín | |
... | Voz sa premiestňuje | |
... | Územie sa uzatvára | |
draw tile | otočenie artičky (v zmysle potiahnutia si novej) | |
väčšina | prevaha | |
Final scoring | Záverečné vyhodnotenie | |
Completly surround | Úplne obklopený | |
Completed/Finished | Uzavretý | |
Unfinished | Neuzavretý | |
Occupied | Obsadený | |
.... | ... obsadí ako mních | |
??? | Susedné kartičky | |
capture meeple | zajať spoločníka | |
... | získa body | |
{{#translation:}} |
||
Extended variant | Pokročilý variant | ![]() |
Extended variant | Pokročilý variant | ![]() |
Double tile | Dvojkartička | ![]() |
Some codes
Include example image with larger image, needs to shring it
[[File:Gambler%27s_Luck_C2_Example_01.png|400px|thumb|frame|none|'''Example:''' Example description will be wrapped into width of image frame.]]
[telegram] <jhsoby> ok. then CSS is your best bet.
[telegram] <jhsoby> In the template, you do something like this:
[telegram] <jhsoby>
[telegram] <jhsoby> `<span class="templateedit">[edit link here]</span>
[telegram] <jhsoby>
[telegram] <jhsoby> `then in MediaWiki:Common.css, you put:
[telegram] <jhsoby>
[telegram] <jhsoby> ```
[telegram] <jhsoby> .templateedit { display: none; }
[telegram] <jhsoby>
[telegram] <jhsoby> ```
[telegram] <jhsoby> And then in MediaWiki:Group-sysop.css, you put:
[telegram] <jhsoby>
[telegram] <jhsoby> `.templateedit { display: block; }`
[telegram] <jhsoby> Maybe there's a different group that can edit templates on your wiki. In that case, substitute "sysop" with the canonical name of that group (find the canonical name by going to Special:Listusers, choosing the group that can edit templates, and look in the URL what that group is called in the software
[telegram] <jhsoby> `<span class="plainlinks templateedit">[{{fullurl:Template:Prague/̣̪{{PAGELANGUAGE}}|action=edit}} edit]</span>`
[telegram] <jhsoby> the `plainlinks` class makes it so there's no external link icon before the link, since this is technically an external link
Version selector
As responsive grid
![]() |
Tieto pravidlá sú k dizajnu týchto kartičiek | ![]() |
![]() |
Ak majú vaše kartičky tento dizajn, otvorte si pravidlá ![]() |
![]() |
Alebo majú vaše kartičky úplne iný dizajn? Potom si vyberte z hier rodiny Carcassonne | ![]() |
By template
{{ChooseDesign}}
[[File:{{{image}}}|x75px|class=notpageimage|link=]] | You are reading the rules for this tile design. |
If your tiles have a different design, then choose a game from Spin-offs. | ![]() |
{{ChooseDesign|image=20AE_Base_Game_C2_Tile_O.png|image2=Base_Game_C2_Tile_O.jpg}}
![]() |
You are reading the rules for this tile design. | ![]() |
If your tiles have a different design, then choose a game from Spin-offs. | ![]() |
{{ChooseDesign|image=20AE_Base_Game_C2_Tile_O.png|image2=Base_Game_C2_Tile_O.jpg|otherimage=Base_Game_C1_Tile_10.jpg|otherlink={{BaseGameLink|edition=C1|logo=noborder}}}}
![]() |
You are reading the rules for this tile design. | ![]() |
![]() | Read the following rules if your tiles look like this.![]() |
If your tiles have a different design, then choose a game from Spin-offs. | ![]() |
{{ChooseDesign|image=Princess_And_Dragon_C2_Tile_M.jpg|otherimage=Princess_And_Dragon_C1_Tile_17.jpg|otherlink={{PrincessDragonLink|edition=C1|logo=noborder}}}}
![]() |
You are reading the rules for this tile design. |
![]() | Read the following rules if your tiles look like this.![]() |
If your tiles have a different design, then choose a game from Spin-offs. | ![]() |
{{ChooseDesign|image=Home_Page_The_Castle_Zamek.jpg|image2=Home_Page_The_Castle.jpg}}
![]() |
You are reading the rules for this tile design. | ![]() |
If your tiles have a different design, then choose a game from Spin-offs. | ![]() |
Fan Expansions Summary Table
Test how will be output of table for Fan Expansions with Complete Rules when designed as table.
Expansion | Author(s) | C1 | C2 | C3 | New tiles | New features | New figures | New game mechanics |
---|---|---|---|---|---|---|---|---|
![]() |
Trebuchet | Yes | - | - | Yes | - | - | Yes |
![]() |
Trebuchet | Yes | - | - | Yes | Yes | - | Yes |
![]() |
PresetM | Yes | - | - | Yes | Yes | - | Yes |
![]() |
Danka/šmoula | - | - | Yes | Yes | - | - | Yes |
![]() |
Fritz_Spinne | Yes | - | - | Yes | Yes | Yes | Yes |
![]() |
Frédérick Renaud/Novelty | Yes | - | - | Yes | - | - | Yes |
![]() |
Jeffrey Putnam | Yes | Yes | - | Yes | Yes | - | Yes |
![]() |
Stalcupojoy | Yes | - | - | Yes | - | - | - |
![]() |
Oriol Comas i Coma | Yes | - | - | Yes | - | - | Yes |
![]() |
Snearone | Yes | Yes | - | Yes | - | - | Yes |
![]() |
meepleater/novelty | Yes | - | - | Yes | - | - | Yes |
Link Attributes / Breadcrumbs tests
Link Attributes
External link carcassonnecentral.com|itemprop=item with itemprop=item (text from link |itemprop=item has to be hidden)
Internal link Main Page|itemprop=item with itemprop=item (text from link |itemprop=item has to be hidden)
Breadcrumbs
- this has to be replaced with {{TranslatedPageNameLink|type=breadcrumbs}}
- About the author
- Foreword to the first edition
- Foreword to the second edition
Other expansions
Transmogrifying...
Meeple on Piece
Basic width of Price|name=Bridge is 150px
Basic width of Price|name=CityBridge is 195px
Multiple features template prototype
SVG Image test
Ideas for MediaWiki extensions
Automatic purge page after mark for translations
- Automatic purge page after mark for translations - this will speed up distribution of changes of translated page, specially for templates
https://www.mediawiki.org/wiki/Manual:Pywikibot/touch.py [telegram] <jhsoby> [telegram] <jhsoby> `python3 pwb.py touch -transcludes:"your template's name"
- Check also proper settings of [Manual:Job_queue]
Developer Search
- Search over source codes like Special:ReplaceText but without possibility of accidentally replacing text.
Mobile depends parsing, which stores two version of same page. One for mobile devices and one for desktops. It allows to change styles etc. directly in Templates and in content
Styles for mobile view likedata-mobile-style="blah blah"
which will be used on mobile view and will rewritestyle
if anyFind a way how to generate mobile device cache and desktop device cache file and provide it be template- Example for show different cache for mobile and desktop by MobileDetect extention
$mobile = wfMobileDetect(); $cacheKey = $title->getPrefixedDBkey(); if ($mobile) { $cacheKey .= '-mobile'; } else { $cacheKey .= '-desktop'; } $page = $cache->get($cacheKey); if (!$page) { // Generate the page and store it in the cache $page = generatePage($title); $cache->set($cacheKey, $page); } // Output the page echo $page;
- Example by MobileContext extension which is part of MediaWiki
$context = MobileContext::singleton(); $isMobile = $context->shouldDisplayMobileView(); if ($isMobile) { // Code for mobile devices } else { // Code for non-mobile devices }
- New parser function which test if current user is mobile device or not usage
{{#ifmobile:stuff for mobiles|stuff for destop}}
$parser->setFunctionHook( 'ifmobile', static function ( Parser $parser, $mobile_input = '', $nomobile_input = '' ) { if ( wfMobileDetect() ) { return $parser->recursiveTagParse( $mobile_input ); } else { return $parser->recursiveTagParse( $mobile_input ); } } );
Delete cache for both page $title = /* the title of the page to purge */;
$cacheKeyDesktop = $title->getPrefixedDBkey() . '-desktop'; $cacheKeyMobile = $title->getPrefixedDBkey() . '-mobile'; $cache->delete($cacheKeyDesktop); $cache->delete($cacheKeyMobile);
Call public
static function onArticlePurge( &$article ) { ... }
extension.json { "Hooks": { "ArticlePurge": "MediaWiki\\Extension\\MyExtension\\Hooks::onArticlePurge" } } extenstion file namespace MediaWiki\Extension\MyExtension; class Hooks { public static function onArticlePurge( $wikiPage ) { $title = $wikiPage->getTitle(); $cache = \MediaWiki\MediaWikiServices::getInstance()->getMainWANObjectCache(); // Get the cache keys for mobile and desktop versions $cacheKeyDesktop = $cache->makeKey( 'page', $title->getPrefixedDBkey(), 'desktop' ); $cacheKeyMobile = $cache->makeKey( 'page', $title->getPrefixedDBkey(), 'mobile' ); // Delete both caches $cache->delete( $cacheKeyDesktop ); $cache->delete( $cacheKeyMobile ); return true; } }
Another solution CustomCacheKey,but it looks like not used that $thatus->value['cacheKey'] value when reading the cache, need to be tests. If this is working, this will be best solution.
<?php extensions/CustomCacheKey/CustomCacheKey.php class CustomCacheKey { public static function onPageContentSaveComplete($wikiPage, $user, $content, $summary, $isMinor, $isWatch, $section, $flags, $revision, $status) { // Your custom logic here // Modify the cache key based on the page content, user, or other factors $cacheKey = $wikiPage->getTitle()->getPrefixedDBkey(); if (wfMobileDetect()) { $cacheKey .= '_mobile'; // Add your custom suffix } // Set the modified cache key $status->value['cacheKey'] = $cacheKey; } } extension.json { "Hooks": { "PageContentSaveComplete": "CustomCacheKey::onPageContentSaveComplete" } }
- Final solution IfMobile extension. Which is total easy.