diff options
-rw-r--r-- | README | 5 | ||||
-rw-r--r-- | about.html | 3 | ||||
-rw-r--r-- | blocks.css | 63 | ||||
-rw-r--r-- | blocks/index.html | 89 | ||||
-rw-r--r-- | info/blocks.html | 64 | ||||
-rw-r--r-- | play.css | 20 | ||||
-rw-r--r-- | play.html | 4 | ||||
-rw-r--r-- | play.js | 28 | ||||
-rw-r--r-- | title.sql | 3 |
9 files changed, 103 insertions, 176 deletions
@@ -0,0 +1,5 @@ +This game is implemented with the generous permission of Columbia Games. + +Rules and art assets are Copyright 2005-2011 Columbia Games and Jerry Taylor. + +Source code to this digital implementation is Copyright 2021-2022 Tor Andersson. @@ -10,7 +10,8 @@ Designer: Jerry Taylor and Tom Dalgliesh. <p> Copyright © 2005-2011 -<a href="https://columbiagames.com/cgi-bin/query/cfg/zoom.cfg?product_id=3151">Columbia Games</a>. +<a href="https://columbiagames.com/cgi-bin/query/cfg/zoom.cfg?product_id=3151">Columbia Games</a> +and Jerry Taylor. <ul> <li><a href="/crusader-rex/info/rules.html">Rulebook</a> diff --git a/blocks.css b/blocks.css deleted file mode 100644 index 771ad39..0000000 --- a/blocks.css +++ /dev/null @@ -1,63 +0,0 @@ -.block_11{background-image:url(blocks/block_11.png)} -.block_12{background-image:url(blocks/block_12.png)} -.block_13{background-image:url(blocks/block_13.png)} -.block_14{background-image:url(blocks/block_14.png)} -.block_15{background-image:url(blocks/block_15.png)} -.block_16{background-image:url(blocks/block_16.png)} -.block_17{background-image:url(blocks/block_17.png)} -.block_21{background-image:url(blocks/block_21.png)} -.block_22{background-image:url(blocks/block_22.png)} -.block_23{background-image:url(blocks/block_23.png)} -.block_24{background-image:url(blocks/block_24.png)} -.block_25{background-image:url(blocks/block_25.png)} -.block_26{background-image:url(blocks/block_26.png)} -.block_27{background-image:url(blocks/block_27.png)} -.block_31{background-image:url(blocks/block_31.png)} -.block_32{background-image:url(blocks/block_32.png)} -.block_33{background-image:url(blocks/block_33.png)} -.block_34{background-image:url(blocks/block_34.png)} -.block_35{background-image:url(blocks/block_35.png)} -.block_36{background-image:url(blocks/block_36.png)} -.block_37{background-image:url(blocks/block_37.png)} -.block_41{background-image:url(blocks/block_41.png)} -.block_42{background-image:url(blocks/block_42.png)} -.block_43{background-image:url(blocks/block_43.png)} -.block_44{background-image:url(blocks/block_44.png)} -.block_45{background-image:url(blocks/block_45.png)} -.block_46{background-image:url(blocks/block_46.png)} -.block_47{background-image:url(blocks/block_47.png)} -.block_51{background-image:url(blocks/block_51.png)} -.block_52{background-image:url(blocks/block_52.png)} -.block_53{background-image:url(blocks/block_53.png)} -.block_54{background-image:url(blocks/block_54.png)} -.block_55{background-image:url(blocks/block_55.png)} -.block_56{background-image:url(blocks/block_56.png)} -.block_57{background-image:url(blocks/block_57.png)} -.block_61{background-image:url(blocks/block_61.png)} -.block_62{background-image:url(blocks/block_62.png)} -.block_63{background-image:url(blocks/block_63.png)} -.block_64{background-image:url(blocks/block_64.png)} -.block_65{background-image:url(blocks/block_65.png)} -.block_66{background-image:url(blocks/block_66.png)} -.block_67{background-image:url(blocks/block_67.png)} -.block_71{background-image:url(blocks/block_71.png)} -.block_72{background-image:url(blocks/block_72.png)} -.block_73{background-image:url(blocks/block_73.png)} -.block_74{background-image:url(blocks/block_74.png)} -.block_75{background-image:url(blocks/block_75.png)} -.block_76{background-image:url(blocks/block_76.png)} -.block_77{background-image:url(blocks/block_77.png)} -.block_81{background-image:url(blocks/block_81.png)} -.block_82{background-image:url(blocks/block_82.png)} -.block_83{background-image:url(blocks/block_83.png)} -.block_84{background-image:url(blocks/block_84.png)} -.block_85{background-image:url(blocks/block_85.png)} -.block_86{background-image:url(blocks/block_86.png)} -.block_87{background-image:url(blocks/block_87.png)} -.block_91{background-image:url(blocks/block_91.png)} -.block_92{background-image:url(blocks/block_92.png)} -.block_93{background-image:url(blocks/block_93.png)} -.block_94{background-image:url(blocks/block_94.png)} -.block_95{background-image:url(blocks/block_95.png)} -.block_96{background-image:url(blocks/block_96.png)} -.block_97{background-image:url(blocks/block_97.png)} diff --git a/blocks/index.html b/blocks/index.html deleted file mode 100644 index 2205856..0000000 --- a/blocks/index.html +++ /dev/null @@ -1,89 +0,0 @@ -<html> -<title>Crusader Rex - Blocks</title> -<link rel="stylesheet" href="../blocks.css"> -<style> -body { - margin: 80px; - background-color: slategray; - display: flex; - flex-wrap: wrap; -} -div.block { - width: 55px; - height: 55px; - margin: 15px; - background-size: cover; - box-shadow: 0 0 6px 4px black; -} -div.block:hover { - transform: scale(2); - box-shadow: 0 0 3px 4px black; -} -div.frank { outline: 4px solid orange; } -div.saracen { outline: 4px solid green; } -div.assassin { outline: 4px solid purple; } -</style> -<body> -<div class="frank block block_11"></div> -<div class="frank block block_12"></div> -<div class="frank block block_13"></div> -<div class="frank block block_14"></div> -<div class="frank block block_15"></div> -<div class="frank block block_16"></div> -<div class="frank block block_17"></div> -<div class="frank block block_21"></div> -<div class="frank block block_22"></div> -<div class="frank block block_23"></div> -<div class="frank block block_24"></div> -<div class="frank block block_25"></div> -<div class="frank block block_26"></div> -<div class="frank block block_27"></div> -<div class="frank block block_31"></div> -<div class="frank block block_32"></div> -<div class="frank block block_33"></div> -<div class="frank block block_34"></div> -<div class="frank block block_35"></div> -<div class="frank block block_36"></div> -<div class="frank block block_37"></div> -<div class="frank block block_41"></div> -<div class="frank block block_42"></div> -<div class="frank block block_43"></div> -<div class="frank block block_44"></div> -<div class="frank block block_45"></div> -<div class="frank block block_46"></div> -<div class="frank block block_47"></div> -<div class="frank block block_51"></div> -<div class="frank block block_52"></div> -<div class="frank block block_53"></div> -<div class="assassin block block_54"></div> -<div class="saracen block block_55"></div> -<div class="saracen block block_56"></div> -<div class="saracen block block_57"></div> -<div class="saracen block block_61"></div> -<div class="saracen block block_62"></div> -<div class="saracen block block_63"></div> -<div class="saracen block block_64"></div> -<div class="saracen block block_65"></div> -<div class="saracen block block_66"></div> -<div class="saracen block block_67"></div> -<div class="saracen block block_71"></div> -<div class="saracen block block_72"></div> -<div class="saracen block block_73"></div> -<div class="saracen block block_74"></div> -<div class="saracen block block_75"></div> -<div class="saracen block block_76"></div> -<div class="saracen block block_77"></div> -<div class="saracen block block_81"></div> -<div class="saracen block block_82"></div> -<div class="saracen block block_83"></div> -<div class="saracen block block_84"></div> -<div class="saracen block block_85"></div> -<div class="saracen block block_86"></div> -<div class="saracen block block_87"></div> -<div class="saracen block block_91"></div> -<div class="saracen block block_92"></div> -<div class="saracen block block_93"></div> -<div class="saracen block block_94"></div> -<div class="saracen block block_95"></div> -<div class="saracen block block_96"></div> -<div class="saracen block block_97"></div> diff --git a/info/blocks.html b/info/blocks.html index f93ec2c..972b95c 100644 --- a/info/blocks.html +++ b/info/blocks.html @@ -1,7 +1,6 @@ <!DOCTYPE html> <html> <title>Crusader Rex - Blocks</title> -<link rel="stylesheet" href="../blocks.css"> <style> body { margin: 40px; @@ -26,6 +25,69 @@ div.frank { border: 3px solid darkkhaki; } div.saracen { border: 3px solid seagreen; } div.assassins { border: 3px solid rebeccapurple; } div.block:hover { transform: scale(2); } +.block_11{background-image:url(blocks/block_11.png)} +.block_12{background-image:url(blocks/block_12.png)} +.block_13{background-image:url(blocks/block_13.png)} +.block_14{background-image:url(blocks/block_14.png)} +.block_15{background-image:url(blocks/block_15.png)} +.block_16{background-image:url(blocks/block_16.png)} +.block_17{background-image:url(blocks/block_17.png)} +.block_21{background-image:url(blocks/block_21.png)} +.block_22{background-image:url(blocks/block_22.png)} +.block_23{background-image:url(blocks/block_23.png)} +.block_24{background-image:url(blocks/block_24.png)} +.block_25{background-image:url(blocks/block_25.png)} +.block_26{background-image:url(blocks/block_26.png)} +.block_27{background-image:url(blocks/block_27.png)} +.block_31{background-image:url(blocks/block_31.png)} +.block_32{background-image:url(blocks/block_32.png)} +.block_33{background-image:url(blocks/block_33.png)} +.block_34{background-image:url(blocks/block_34.png)} +.block_35{background-image:url(blocks/block_35.png)} +.block_36{background-image:url(blocks/block_36.png)} +.block_37{background-image:url(blocks/block_37.png)} +.block_41{background-image:url(blocks/block_41.png)} +.block_42{background-image:url(blocks/block_42.png)} +.block_43{background-image:url(blocks/block_43.png)} +.block_44{background-image:url(blocks/block_44.png)} +.block_45{background-image:url(blocks/block_45.png)} +.block_46{background-image:url(blocks/block_46.png)} +.block_47{background-image:url(blocks/block_47.png)} +.block_51{background-image:url(blocks/block_51.png)} +.block_52{background-image:url(blocks/block_52.png)} +.block_53{background-image:url(blocks/block_53.png)} +.block_54{background-image:url(blocks/block_54.png)} +.block_55{background-image:url(blocks/block_55.png)} +.block_56{background-image:url(blocks/block_56.png)} +.block_57{background-image:url(blocks/block_57.png)} +.block_61{background-image:url(blocks/block_61.png)} +.block_62{background-image:url(blocks/block_62.png)} +.block_63{background-image:url(blocks/block_63.png)} +.block_64{background-image:url(blocks/block_64.png)} +.block_65{background-image:url(blocks/block_65.png)} +.block_66{background-image:url(blocks/block_66.png)} +.block_67{background-image:url(blocks/block_67.png)} +.block_71{background-image:url(blocks/block_71.png)} +.block_72{background-image:url(blocks/block_72.png)} +.block_73{background-image:url(blocks/block_73.png)} +.block_74{background-image:url(blocks/block_74.png)} +.block_75{background-image:url(blocks/block_75.png)} +.block_76{background-image:url(blocks/block_76.png)} +.block_77{background-image:url(blocks/block_77.png)} +.block_81{background-image:url(blocks/block_81.png)} +.block_82{background-image:url(blocks/block_82.png)} +.block_83{background-image:url(blocks/block_83.png)} +.block_84{background-image:url(blocks/block_84.png)} +.block_85{background-image:url(blocks/block_85.png)} +.block_86{background-image:url(blocks/block_86.png)} +.block_87{background-image:url(blocks/block_87.png)} +.block_91{background-image:url(blocks/block_91.png)} +.block_92{background-image:url(blocks/block_92.png)} +.block_93{background-image:url(blocks/block_93.png)} +.block_94{background-image:url(blocks/block_94.png)} +.block_95{background-image:url(blocks/block_95.png)} +.block_96{background-image:url(blocks/block_96.png)} +.block_97{background-image:url(blocks/block_97.png)} </style> <body> <h1> @@ -41,28 +41,36 @@ body.Saracens header.your_turn { background-color: lightgreen; } width: 225px; height: 350px; border-radius: 15px; + box-shadow: 1px 1px 5px rgba(0,0,0,0.5); + transition: 100ms; + display: none; +} + +.card.show { + display: block; } .card.enabled:hover { transform: scale(1.1); } -.small_card.prior { +.role_info .card.prior { filter: grayscale(100%) contrast(70%) brightness(120%); } .role_info { padding: 15px; } -.small_card { width: 90px; height: 140px; border-radius: 5px; } -.small_card:hover { width: 180px; height: 280px; border-radius: 10px; } +.role_info .card { margin: 0 auto; } +.role_info .card { width: 90px; height: 140px; border-radius: 5px; } +.role_info .card:hover { width: 180px; height: 280px; border-radius: 10px; } @media (max-height: 800px) { .role_info { padding: 15px 0 0 0; } - .small_card { width: 180px; height: 80px; border-radius: 10px 10px 0 0; } - .small_card:hover { width: 180px; height: 280px; border-radius: 10px; margin-bottom: 15px; } + .role_info .card { width: 180px; height: 80px; border-radius: 10px 10px 0 0; } + .role_info .card:hover { width: 180px; height: 280px; border-radius: 10px; margin-bottom: 15px; } } @media (min-height: 1200px) { - .small_card { width: 180px; height: 280px; border-radius: 10px; } + .role_info .card { width: 180px; height: 280px; border-radius: 10px; } } /* MAP */ @@ -61,7 +61,7 @@ <div class="role_vp" id="frank_vp">VP</div> <div class="role_user">-</div> </div> - <div class="role_info"><div class="small_card card_back" id="frank_card"></div></div> + <div class="role_info"><div class="show card card_back" id="frank_card"></div></div> </div> <div class="role two"> <div class="role_name"> @@ -69,7 +69,7 @@ <div class="role_vp" id="saracen_vp">VP</div> <div class="role_user">-</div> </div> - <div class="role_info"><div class="small_card card_back" id="saracen_card"></div></div> + <div class="role_info"><div class="show card card_back" id="saracen_card"></div></div> </div> <div id="turn_info">-</div> </div> @@ -589,11 +589,11 @@ function update_map() { function update_card_display(element, card, prior_card) { if (!card && !prior_card) { - element.className = "small_card card_back"; + element.className = "show card card_back"; } else if (prior_card) { - element.className = "small_card prior " + CARDS[prior_card].image; + element.className = "show card prior " + CARDS[prior_card].image; } else { - element.className = "small_card " + CARDS[card].image; + element.className = "show card " + CARDS[card].image; } } @@ -759,17 +759,17 @@ function start_flash() { } function on_update() { - action_button("eliminate_button", "Eliminate"); - action_button("winter_campaign_button", "Winter campaign"); - action_button("sea_move_button", "Sea move"); - action_button("end_sea_move_button", "End sea move"); - action_button("group_move_button", "Group move"); - action_button("end_group_move_button", "End group move"); - action_button("muster_button", "Muster"); - action_button("end_muster_button", "End muster"); - action_button("end_retreat_button", "End retreat"); - action_button("end_regroup_button", "End regroup"); - action_button("end_move_phase_button", "End move phase"); + action_button("eliminate", "Eliminate"); + action_button("winter_campaign", "Winter campaign"); + action_button("sea_move", "Sea move"); + action_button("end_sea_move", "End sea move"); + action_button("group_move", "Group move"); + action_button("end_group_move", "End group move"); + action_button("muster", "Muster"); + action_button("end_muster", "End muster"); + action_button("end_retreat", "End retreat"); + action_button("end_regroup", "End regroup"); + action_button("end_move_phase", "End move phase"); action_button("pass", "Pass"); action_button("next", "Next"); action_button("undo", "Undo"); diff --git a/title.sql b/title.sql new file mode 100644 index 0000000..75b6da7 --- /dev/null +++ b/title.sql @@ -0,0 +1,3 @@ +insert or ignore into titles ( title_id, title_name, bgg ) values ( 'crusader-rex', 'Crusader Rex', 8481 ); +insert or ignore into roles values ( 'crusader-rex', 'Franks' ); +insert or ignore into roles values ( 'crusader-rex', 'Saracens' ); |