summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--cards/armour.rb58
-rw-r--r--cards/beginner_spells.html420
-rw-r--r--cards/card.html857
-rw-r--r--cards/card.rb6
-rw-r--r--cards/class_abilities.rb181
-rw-r--r--cards/common_weapons.html861
-rw-r--r--cards/common_weapons.rb181
-rw-r--r--cards/spells.rb16
-rw-r--r--src/SUMMARY.md2
-rw-r--r--src/classes.md17
10 files changed, 406 insertions, 2193 deletions
diff --git a/cards/armour.rb b/cards/armour.rb
new file mode 100644
index 0000000..da6cf68
--- /dev/null
+++ b/cards/armour.rb
@@ -0,0 +1,58 @@
+load 'card.rb'
+
+armour = {}
+
+armour[:iron_plate] = Card.new(
+ title: "Iron Plate",
+ defence: '5',
+ #blood: 1,
+ #reposte: 'Prc',
+ #actions: [
+ #Card::Action.new(
+ # content: '(**even**) Engulf your hand in flames for short while. You need to maintain concentration.',
+ # symbol: [:clubs, :blood]
+ #),
+ #Card::Action.new(
+ # seperator: true,
+ # content: '(**while concentrating**) Deal melee damage to a target with your flame engulfed hand. If the target is a small object set it on fire.',
+ # symbol: [:tap]
+ #),
+ #],
+ color: 'cadetblue',
+ flavour: '"Strong but heavy"',
+ type: 'Body Armour'
+)
+
+armour[:chain_mail] = Card.new(
+ title: "Chain Mail",
+ defence: '4',
+ color: 'cadetblue',
+ flavour: '"The fairly lightweight option"',
+ type: 'Body Armour'
+)
+
+armour[:leather] = Card.new(
+ title: "Leather",
+ defence: '3',
+ color: 'cadetblue',
+ flavour: '"Popular with goths and punks"',
+ type: 'Body Armour'
+)
+
+armour[:padded] = Card.new(
+ title: "Padded",
+ defence: '2',
+ color: 'cadetblue',
+ flavour: '"A *LOT* of regular clothing stacked together"',
+ type: 'Body Armour'
+)
+
+armour[:none] = Card.new(
+ title: "None",
+ defence: '1',
+ color: 'cadetblue',
+ flavour: '"Just the skin on your back"',
+ type: 'Body Armour'
+)
+
+File.write('armour.html', Card.build(armour.values))
diff --git a/cards/beginner_spells.html b/cards/beginner_spells.html
deleted file mode 100644
index 7de8bd0..0000000
--- a/cards/beginner_spells.html
+++ /dev/null
@@ -1,420 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <style>
- .flavour {
- color: rgba(0,0,0,0.5);
- padding: 35px;
- font-size: 35px;
- }
- .flavour_wrapper {
- position: absolute;
- bottom: 0;
- left: 0;
- width: 100%;
- text-align: center;
- }
- .action_detail {
- padding-top: 0px;
- text-align: left;
- }
- .symbol_wrapper_inner {
- display: flex;
- flex-direction: column;
- gap: 5px;
- }
- .symbol_wrapper_outer {
- display: flex;
- gap: 20px;
- }
- .card_type {
- background-color: antiquewhite;
- text-align: center;
- font-size: 40px;
- padding: 10px;
- -moz-border-radius: 15px 15px 0 0;
- -webkit-border-radius: 15px 15px 0 0;
- border-radius: 15px 15px 0 0;
- font-weight: bold;
- border-width: 2px 2px 0 2px;
- border-color: black;
- border-style: solid;
- }
- .face_icon {
- color: white;
- display: inline-block;
- padding: 4px;
- height: 62px;
- min-width: 62px;
- font-size: 55px;
- -moz-border-radius: 15px;
- -webkit-border-radius: 15px;
- border-radius: 15px;
- background-color: black;
- }
- .icon {
- display: inline-block;
- padding: 8px 4px 0px 4px;
- -moz-border-radius: 15px;
- -webkit-border-radius: 15px;
- border-radius: 15px;
- aspect-ratio: 1/1;
- font-size: 40px;
- height: 52px;
- width: 52px;
- }
- .hearts_icon {
- color: orangered;
- }
- .diamonds_icon {
- color: orangered;
- }
- .clubs_icon {
- color: antiquewhite;
- }
- .spades_icon {
- color: antiquewhite;
- }
- .suit_icon {
- background-color: black;
- text-align: center;
- font-size: 60px;
- line-height: 40px;
- }
- .blood_icon {
- background-color: black;
- padding: 6px 3px 2px 5px;
- }
- .joker_icon {
- background-color: black;
- padding: 6px 3px 2px 5px;
- }
- .tap_icon {
- background-color: black;
- }
- .content {
- background-color: antiquewhite;
- color: black;
- flex: 5;
- -moz-border-radius: 25px;
- -webkit-border-radius: 25px;
- border-radius: 25px;
- overflow: hidden;
- position: relative;
- font-size: 50px;
- display: flex;
- justify-content: flex-start;
- gap: 5px;
- text-align: left;
- padding: 35px 30px 30px 30px;
- flex-direction: column;
- border-width: 2px 2px 2px 2px;
- border-color: black;
- border-style: solid;
- }
- .attrib_bottom_icons {
- bottom: 0;
- }
- .attrib_top_icons {
- top: 0;
- }
- .attrib_bl {
- position: absolute;
- bottom: 0;
- left: 0;
- -moz-border-radius: 0 50px 0 0;
- -webkit-border-radius: 0 50px 0 0;
- border-radius: 0 50px 0 0;
- border-color: rgba(255,255,255,0.50);
- border-style: solid;
- border-width: 5px 5px 0 0;
- padding: 15px 25px 15px 15px;
- }
- .attrib_br {
- position: absolute;
- bottom: 0;
- right: 0;
- -moz-border-radius: 50px 0 0 0;
- -webkit-border-radius: 50px 0 0 0;
- border-radius: 50px 0 0 0;
- border-color: rgba(255,255,255,0.50);
- border-style: solid;
- border-width: 5px 0 0 5px;
- padding: 15px 15px 15px 25px;
- }
- .attrib_tr {
- position: absolute;
- top: 0;
- right: 0;
- -moz-border-radius: 0 0 0 50px;
- -webkit-border-radius: 0 0 0 50px;
- border-radius: 0 0 0 50px;
- border-color: rgba(255,255,255,0.50);
- border-style: solid;
- border-width: 0 0 5px 5px;
- padding: 15px 15px 15px 25px;
- }
- .attrib_tl {
- position: absolute;
- top: 0;
- left: 0;
- -moz-border-radius: 0 0 50px 0;
- -webkit-border-radius: 0 0 50px 0;
- border-radius: 0 0 50px 0;
- border-color: rgba(255,255,255,0.50);
- border-style: solid;
- border-width: 0 5px 5px 0;
- padding: 15px 25px 15px 15px;
- }
- .attrib_icon {
- background-color: rgba(255,255,255,0.10);
- }
- .title {
- background-color: black;
- color: antiquewhite;
- flex: 3;
- -moz-border-radius: 25px;
- -webkit-border-radius: 25px;
- border-radius: 25px;
- overflow: hidden;
- position: relative;
- font-size: 85px;
- display: flex;
- align-items: center;
- justify-content: center;
- text-align: center;
- flex-direction: column;
- padding: 25px;
- border-width: 2px 2px 2px 2px;
- border-color: black;
- border-style: solid;
- }
- .group {
- margin: 50px 50px 0px 50px;
- -moz-border-radius: 25px;
- -webkit-border-radius: 25px;
- border-radius: 25px;
- display: flex;
- flex-direction: column;
- align-content: space-between;
- height: auto;
- flex: 2;
- gap: 35px;
- }
- .card {
- height: 1425px;
- width: 825px;
- background-color: black;
- display: flex;
- }
- .card_wrapper {
- min-height: 2850px;
- width: 5775px;
- display: flex;
- flex-wrap: wrap;
- height: 100%;
- }
- button {
- font-size: 50px;
- padding: 30px;
- margin: 30px;
- }
- p {
- margin: 0;
- }
- body {
- background-color: #1e1e1e;
- }
- </style>
- </head>
- <button onclick="downloadAsImage()">
- Download
- </button>
- <div id="card_wrapper" class="card_wrapper">
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, firebrick 100%)" class="card">
- <div class="group">
- <div class="title">
- <div class="attrib_icon attrib_tr">
- 1 🩸
- </div>
- <p>
- Wispy Flame
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ d4
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon suit_icon clubs_icon">
- ♣️
- </span>
- <span class="icon blood_icon">
- 🩸
- </span>
- </div>
- <div class="action_detail">
- <p>(<strong>even</strong>) Engulf your hand in flames for short while. You need to maintain concentration.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>(<strong>while concentrating</strong>) Deal melee damage. If it is a small object set it on fire.</p>
- </div>
- </div>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“Portable Candle”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Blood Magic (Igneous)
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, firebrick 100%)" class="card">
- <div class="group">
- <div class="title">
- <div class="attrib_icon attrib_tr">
- 1 🩸
- </div>
- <p>
- Summon Flesh
- </p>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon suit_icon hearts_icon">
- ♥️
- </span>
- <span class="icon blood_icon">
- 🩸
- </span>
- </div>
- <div class="action_detail">
- <p>(<strong>5 or less</strong>) Heal a target within arms reach equal to the card played.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <p>If this spell heals for more then half of the target’s max health then they get flesh mass disease.</p>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“Writhing flesh mass that assimilates”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Blood Magic (Eldritch)
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, firebrick 100%)" class="card">
- <div class="group">
- <div class="title">
- <div class="attrib_icon attrib_tr">
- 1 🩸
- </div>
- <p>
- Lightning Fork
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 2d4
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon suit_icon clubs_icon">
- ♣️
- </span>
- <span class="icon blood_icon">
- 🩸
- </span>
- </div>
- <div class="action_detail">
- <p>(<strong>even</strong>) Deal 1d4 damage to one target and 1d4 to another.</p>
- </div>
- </div>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“Double the static, double the fun!”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Blood Magic (Storm)
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, firebrick 100%)" class="card">
- <div class="group">
- <div class="title">
- <div class="attrib_icon attrib_tr">
- 2 🩸
- </div>
- <p>
- Summon Alchemicals
- </p>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon suit_icon diamonds_icon">
- ♦️
- </span>
- <span class="icon blood_icon">
- 🩸
- </span>
- </div>
- <div class="action_detail">
- <p>(<strong>odd</strong>) Summon a random amount of a random alchemical depending on the card played and the number rolled for blood.</p>
- </div>
- </div>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“You arent making a bomb, are you?”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Blood Magic (Eldritch)
- </div>
- </div>
- </div>
- </div>
- <script src="./web/bundle.js">
- </script>
- <script>
- function downloadAsImage() {
- htmlToImage.toPng(document.getElementById('card_wrapper'))
- .then(function (dataUrl) {
- download(dataUrl, 'card_wrapper.png');
- });
- }
- </script>
-</html>
diff --git a/cards/card.html b/cards/card.html
deleted file mode 100644
index 764fe1d..0000000
--- a/cards/card.html
+++ /dev/null
@@ -1,857 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <style>
- .flavour {
- color: rgba(0,0,0,0.5);
- padding: 35px;
- font-size: 35px;
- }
- .flavour_wrapper {
- position: absolute;
- bottom: 0;
- left: 0;
- width: 100%;
- text-align: center;
- }
- .action_detail {
- padding-top: 0px;
- text-align: left;
- }
- .symbol_wrapper_inner {
- display: flex;
- flex-direction: column;
- gap: 5px;
- }
- .symbol_wrapper_outer {
- display: flex;
- gap: 20px;
- }
- .card_type {
- background-color: antiquewhite;
- text-align: center;
- font-size: 40px;
- padding: 10px;
- -moz-border-radius: 15px 15px 0 0;
- -webkit-border-radius: 15px 15px 0 0;
- border-radius: 15px 15px 0 0;
- font-weight: bold;
- border-width: 2px 2px 0 2px;
- border-color: black;
- border-style: solid;
- }
- .face_icon {
- color: white;
- display: inline-block;
- padding: 4px;
- height: 62px;
- min-width: 62px;
- font-size: 55px;
- -moz-border-radius: 15px;
- -webkit-border-radius: 15px;
- border-radius: 15px;
- background-color: black;
- }
- .icon {
- display: inline-block;
- padding: 8px 4px 0px 4px;
- -moz-border-radius: 15px;
- -webkit-border-radius: 15px;
- border-radius: 15px;
- aspect-ratio: 1/1;
- font-size: 40px;
- height: 52px;
- width: 52px;
- }
- .hearts_icon {
- color: orangered;
- }
- .diamonds_icon {
- color: orangered;
- }
- .clubs_icon {
- color: antiquewhite;
- }
- .spades_icon {
- color: antiquewhite;
- }
- .suit_icon {
- background-color: black;
- text-align: center;
- font-size: 60px;
- line-height: 40px;
- }
- .joker_icon {
- background-color: black;
- padding: 6px 3px 2px 5px;
- }
- .tap_icon {
- background-color: black;
- }
- .content {
- background-color: antiquewhite;
- color: black;
- flex: 5;
- -moz-border-radius: 25px;
- -webkit-border-radius: 25px;
- border-radius: 25px;
- overflow: hidden;
- position: relative;
- font-size: 50px;
- display: flex;
- justify-content: flex-start;
- gap: 5px;
- text-align: left;
- padding: 35px 30px 30px 30px;
- flex-direction: column;
- border-width: 2px 2px 2px 2px;
- border-color: black;
- border-style: solid;
- }
- .attrib_bottom_icons {
- bottom: 0;
- }
- .attrib_top_icons {
- top: 0;
- }
- .attrib_bl {
- position: absolute;
- bottom: 0;
- left: 0;
- -moz-border-radius: 0 50px 0 0;
- -webkit-border-radius: 0 50px 0 0;
- border-radius: 0 50px 0 0;
- border-color: rgba(255,255,255,0.50);
- border-style: solid;
- border-width: 5px 5px 0 0;
- padding: 15px 25px 15px 15px;
- }
- .attrib_br {
- position: absolute;
- bottom: 0;
- right: 0;
- -moz-border-radius: 50px 0 0 0;
- -webkit-border-radius: 50px 0 0 0;
- border-radius: 50px 0 0 0;
- border-color: rgba(255,255,255,0.50);
- border-style: solid;
- border-width: 5px 0 0 5px;
- padding: 15px 15px 15px 25px;
- }
- .attrib_tr {
- position: absolute;
- top: 0;
- right: 0;
- -moz-border-radius: 0 0 0 50px;
- -webkit-border-radius: 0 0 0 50px;
- border-radius: 0 0 0 50px;
- border-color: rgba(255,255,255,0.50);
- border-style: solid;
- border-width: 0 0 5px 5px;
- padding: 15px 15px 15px 25px;
- }
- .attrib_tl {
- position: absolute;
- top: 0;
- left: 0;
- -moz-border-radius: 0 0 50px 0;
- -webkit-border-radius: 0 0 50px 0;
- border-radius: 0 0 50px 0;
- border-color: rgba(255,255,255,0.50);
- border-style: solid;
- border-width: 0 5px 5px 0;
- padding: 15px 25px 15px 15px;
- }
- .attrib_icon {
- background-color: rgba(255,255,255,0.10);
- }
- .title {
- background-color: black;
- color: antiquewhite;
- flex: 3;
- -moz-border-radius: 25px;
- -webkit-border-radius: 25px;
- border-radius: 25px;
- overflow: hidden;
- position: relative;
- font-size: 85px;
- display: flex;
- align-items: center;
- justify-content: center;
- text-align: center;
- flex-direction: column;
- padding: 25px;
- border-width: 2px 2px 2px 2px;
- border-color: black;
- border-style: solid;
- }
- .group {
- margin: 50px 50px 0px 50px;
- -moz-border-radius: 25px;
- -webkit-border-radius: 25px;
- border-radius: 25px;
- display: flex;
- flex-direction: column;
- align-content: space-between;
- height: auto;
- flex: 2;
- gap: 35px;
- }
- .card {
- height: 1425px;
- width: 825px;
- background-color: black;
- display: flex;
- }
- .card_wrapper {
- min-height: 2850px;
- width: 5775px;
- display: flex;
- flex-wrap: wrap;
- height: 100%;
- }
- button {
- font-size: 50px;
- padding: 30px;
- margin: 30px;
- }
- p {
- margin: 0;
- }
- body {
- background-color: #1e1e1e;
- }
- </style>
- </head>
- <button onclick="downloadAsImage()">
- Download
- </button>
- <div id="card_wrapper" class="card_wrapper">
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Thrusting Sword
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 3
- </div>
- <div class="attrib_icon attrib_br">
- Prc 🎲
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d8 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <p><strong>Opportune Strike</strong>: When targeting an enemy with this weapon, mark them until the end of their turn. While marked if they attack somone other then you then you can perform a reposte on them.</p>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“World Famous Iron Toothpick”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Thrusting Sword Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Polearm
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 3
- </div>
- <div class="attrib_icon attrib_br">
- Str 🎲
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Str</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <p><strong>Reach</strong>: When making an attack, you ignore repostes from your target unless they also have Reach.</p>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“Getting up close and personal while staying far away”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Polearm Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Dagger
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 2
- </div>
- <div class="attrib_icon attrib_br">
- Prc 🎲
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon suit_icon spades_icon">
- ♠️
- </span>
- </div>
- <div class="action_detail">
- <p>(even) <strong>Swift Attack</strong>: Refresh this card.</p>
- </div>
- </div>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“A quick and convinient way to turn a spleen into a sheath”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Dagger Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Bow
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 3
- </div>
- <div class="attrib_icon attrib_br">
- 1 🎲
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d4 + (2·Prc)</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <p><strong>Ranged</strong>: When making an attack, you ignore repostes from your target. You can’t deal a reposte either.</p>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“One stringed instrument that got repurposed as a weapon.”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Bow Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Crossbow
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 4
- </div>
- <div class="attrib_icon attrib_br">
- 1 🎲
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>(must be loaded) 🎲 <strong>d6 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p><strong>Reload</strong>: Load this weapon.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <p><strong>Ranged</strong>: When making an attack, you ignore repostes from your target. You can’t deal a reposte either.</p>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“No one will cross you with this weapon”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Crossbow Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Hammer
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 3
- </div>
- <div class="attrib_icon attrib_br">
- Str 🎲
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Str</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p><strong>Power Swing</strong>: 🎲 <strong>d4 + Str</strong> to hit. Deal <strong>Str + 2</strong> damage.</p>
- </div>
- </div>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“If you can pick it up, then you are worthy enough to use it.”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Hammer Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Straight Sword
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 3
- </div>
- <div class="attrib_icon attrib_br">
- Str 🎲
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Str</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>(Two Handed) 🎲 <strong>d6 + Str</strong> to hit. Deal <strong>Str</strong> damage.</p>
- </div>
- </div>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“El Classico”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Straight Sword Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Axe
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 3
- </div>
- <div class="attrib_icon attrib_br">
- Str 🎲
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d8 + Str</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p><strong>Throw</strong>: 🎲 <strong>d6 + Str</strong> to hit. This attack is <strong>Ranged</strong> and thus you ignore repostes from your target. You lose this weapon by using this attack.</p>
- </div>
- </div>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“Looks great with a flannel shirt.”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Axe Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Staff
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 2
- </div>
- <div class="attrib_icon attrib_br">
- Str 🎲
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Str</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>(Two Handed) 🎲 <strong>d8 + Str</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon suit_icon spades_icon">
- ♠️
- </span>
- </div>
- <div class="action_detail">
- <p>(odd) <strong>Swift Attack</strong>: Refresh this card.</p>
- </div>
- </div>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“Says ‘Made by the Ninja Custodial Group’ on the handle”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Staff Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Curved Sword
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 3
- </div>
- <div class="attrib_icon attrib_br">
- Prc 🎲
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon suit_icon spades_icon">
- ♠️
- </span>
- </div>
- <div class="action_detail">
- <p>(odd, recieving a reposte) <strong>Close Quarters</strong>: Deal damage equal to your reposte.</p>
- </div>
- </div>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“Arrrgh”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Curved Sword Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, DarkBlue 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Caestus
- </p>
- </div>
- <div class="content">
- <div class="action">
- <p>While equipped: Unarmed Strikes deal <strong>Str</strong> additional damage.</p>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“Weapon of choice for a fit bronze statue”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Weapon Equipment
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Test Weapon
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 3
- </div>
- <div class="attrib_icon attrib_br">
- Prc 🎲
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon suit_icon spades_icon">
- ♠️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon suit_icon clubs_icon">
- ♣️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon suit_icon diamonds_icon">
- ♦️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon joker_icon">
- 🃏
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- <span class="icon suit_icon hearts_icon">
- ♥️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“Arrrgh”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Curved Sword Weapon
- </div>
- </div>
- </div>
- </div>
- <script src="./web/bundle.js">
- </script>
- <script>
- function downloadAsImage() {
- htmlToImage.toPng(document.getElementById('card_wrapper'))
- .then(function (dataUrl) {
- download(dataUrl, 'card_wrapper.png');
- });
- }
- </script>
-</html>
diff --git a/cards/card.rb b/cards/card.rb
index 2a9af5b..1521e77 100644
--- a/cards/card.rb
+++ b/cards/card.rb
@@ -23,10 +23,12 @@ class Card
attrib_top_right_icon: '🩸',
blood: nil,
attrib_top_left: nil,
- attrib_top_left_icon: '🛡️',
+ attrib_top_left_icon: '🎲',
+ roll: nil,
attrib_bottom_right: nil,
attrib_bottom_right_icon: '🛡️',
reposte: nil,
+ defence: nil,
attrib_bottom_left: nil,
attrib_bottom_left_icon: '⚔️',
damage: nil,
@@ -35,8 +37,10 @@ class Card
type: nil
)
attrib_top_right ||= blood.to_s unless blood.nil?
+ attrib_bottom_right ||= defence.to_s unless defence.nil?
attrib_bottom_right ||= reposte.to_s unless reposte.nil?
attrib_bottom_left ||= damage.to_s unless damage.nil?
+ attrib_top_left ||= roll.to_s unless roll.nil?
self.title = title
self.color = color
self.attrib_top_left = attrib_top_left
diff --git a/cards/class_abilities.rb b/cards/class_abilities.rb
new file mode 100644
index 0000000..117005b
--- /dev/null
+++ b/cards/class_abilities.rb
@@ -0,0 +1,181 @@
+load 'card.rb'
+
+class_abilities = {}
+
+class_colors = {
+ rogue: 'Maroon',
+ ranger: 'ForestGreen',
+ astrologist: 'DodgerBlue',
+ monk: 'OrangeRed'
+}
+
+class_abilities[:quick_attack] = Card.new(
+ title: "Quick Attack",
+ actions: [
+ Card::Action.new(
+ symbol: :spades,
+ content: '(odd) **Refresh** a **light** weapon.',
+ ),
+ ],
+ color: class_colors[:rogue],
+ flavour: '"Stabby stabby stab"',
+ type: 'Rogue Ability',
+)
+class_abilities[:duck_and_weave] = Card.new(
+ title: "Duck and Weave",
+ actions: [
+ Card::Action.new(
+ symbol: [:tap, :diamonds],
+ content: ' Ignore up to the card played worth of damage from a **reposte**.',
+ ),
+ ],
+ color: class_colors[:rogue],
+ flavour: '"Missed me"',
+ type: 'Rogue Ability',
+)
+
+class_abilities[:surgical_strike] = Card.new(
+ title: "Surgical Strike",
+ actions: [
+ Card::Action.new(
+ symbol: [:tap, :spades],
+ content: '(less then 5) Replace a weapon\'s damage with the value of the card played. Only affects the current attack.',
+ ),
+ ],
+ color: class_colors[:rogue],
+ #flavour: '"Missed me"',
+ type: 'Rogue Ability',
+)
+
+class_abilities[:down_they_alleys] = Card.new(
+ title: "Down the Alleys",
+ actions: [
+ Card::Action.new(
+ symbol: [:diamonds],
+ content: '(odd) When travelling inside a settlement, after an encounter has been revealed: you may choose to either discard the encounter and draw another one or skip the encounter.',
+ ),
+ ],
+ color: class_colors[:rogue],
+ #flavour: '"Missed me"',
+ type: 'Rogue Ability',
+)
+
+class_abilities[:spot] = Card.new(
+ title: "Spot",
+ actions: [
+ Card::Action.new(
+ symbol: [:hearts],
+ content: '(face) Mark a target. Choose up to one dice to reroll on each attack agaisnt this target. You can only have one target marked at a time. Lasts until 3 rerolls or the end of combat.',
+ ),
+ ],
+ color: class_colors[:ranger],
+ #flavour: '"Missed me"',
+ type: 'Ranger Ability',
+)
+class_abilities[:flexible_shooter] = Card.new(
+ title: "Flexible Shooter",
+ actions: [
+ Card::Action.new(
+ #symbol: [:hearts],
+ content: 'You can deal reposte damage with any ranged weapon.',
+ ),
+ ],
+ color: class_colors[:ranger],
+ #flavour: '"Missed me"',
+ type: 'Ranger Ability',
+)
+
+class_abilities[:scouting_ahead] = Card.new(
+ title: "Scouting Ahead",
+ actions: [
+ Card::Action.new(
+ symbol: [:diamonds],
+ content: '(even) When travelling outside of a settlement, before the next encounter: reveal 2 encounters and pick 1. Discard the other.',
+ ),
+ ],
+ color: class_colors[:ranger],
+ #flavour: '"Missed me"',
+ type: 'Ranger Ability',
+)
+
+class_abilities[:healing_salve_recipe] = Card.new(
+ title: "Healing Salve Recipe",
+ actions: [
+ Card::Action.new(
+ symbol: [:diamonds, :hearts],
+ content: '(each suit) Healberry Herb, Cloth.',
+ ),
+ ],
+ color: class_colors[:ranger],
+ flavour: '"*Don\'t* eat the berries"',
+ type: 'Ranger Recipe',
+)
+
+class_abilities[:recast] = Card.new(
+ title: "Recast",
+ actions: [
+ Card::Action.new(
+ symbol: [:tap, :hearts],
+ content: '(less then or equal to your max blood roll) Replace the blood roll with the value of the card played and reroll any other associated dice with a spell you cast.',
+ ),
+ ],
+ color: class_colors[:astrologist],
+ #flavour: '"Missed me"',
+ type: 'Astrologist Ability',
+)
+class_abilities[:focused_cast] = Card.new(
+ title: "Focused Cast",
+ actions: [
+ Card::Action.new(
+ symbol: [:tap],
+ content: 'Upgrade the blood dice for one spell you cast.',
+ ),
+ ],
+ color: class_colors[:astrologist],
+ #flavour: '"Missed me"',
+ type: 'Astrologist Ability',
+)
+
+class_abilities[:focused_cast] = Card.new(
+ title: "Focused Cast",
+ actions: [
+ Card::Action.new(
+ symbol: [:tap],
+ content: 'Upgrade the blood dice for one spell you cast.',
+ ),
+ ],
+ color: class_colors[:astrologist],
+ #flavour: '"Missed me"',
+ type: 'Astrologist Ability',
+)
+
+class_abilities[:change_of_fate] = Card.new(
+ title: "Change of Fate",
+ blood: 1,
+ actions: [
+ Card::Action.new(
+ symbol: [:blood],
+ content: 'Swap 1 card with a willing player.',
+ ),
+ ],
+ color: class_colors[:astrologist],
+ #flavour: '"Missed me"',
+ type: 'Astrologist Ability',
+)
+
+class_abilities[:palm_reading] = Card.new(
+ title: "Palm Reading",
+ blood: 1,
+ actions: [
+ Card::Action.new(
+ symbol: [:blood],
+ content: 'Discard a willing players hand and replace it with new cards drawn.',
+ ),
+ ],
+ color: class_colors[:astrologist],
+ #flavour: '"Missed me"',
+ type: 'Astrologist Ability',
+)
+
+File.write('class_abilities.html', Card.build(class_abilities.values))
+
diff --git a/cards/common_weapons.html b/cards/common_weapons.html
deleted file mode 100644
index 5cc46d1..0000000
--- a/cards/common_weapons.html
+++ /dev/null
@@ -1,861 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <style>
- .flavour {
- color: rgba(0,0,0,0.5);
- padding: 35px;
- font-size: 35px;
- }
- .flavour_wrapper {
- position: absolute;
- bottom: 0;
- left: 0;
- width: 100%;
- text-align: center;
- }
- .action_detail {
- padding-top: 0px;
- text-align: left;
- }
- .symbol_wrapper_inner {
- display: flex;
- flex-direction: column;
- gap: 5px;
- }
- .symbol_wrapper_outer {
- display: flex;
- gap: 20px;
- }
- .card_type {
- background-color: antiquewhite;
- text-align: center;
- font-size: 40px;
- padding: 10px;
- -moz-border-radius: 15px 15px 0 0;
- -webkit-border-radius: 15px 15px 0 0;
- border-radius: 15px 15px 0 0;
- font-weight: bold;
- border-width: 2px 2px 0 2px;
- border-color: black;
- border-style: solid;
- }
- .face_icon {
- color: white;
- display: inline-block;
- padding: 4px;
- height: 62px;
- min-width: 62px;
- font-size: 55px;
- -moz-border-radius: 15px;
- -webkit-border-radius: 15px;
- border-radius: 15px;
- background-color: black;
- }
- .icon {
- display: inline-block;
- padding: 8px 4px 0px 4px;
- -moz-border-radius: 15px;
- -webkit-border-radius: 15px;
- border-radius: 15px;
- aspect-ratio: 1/1;
- font-size: 40px;
- height: 52px;
- width: 52px;
- }
- .hearts_icon {
- color: orangered;
- }
- .diamonds_icon {
- color: orangered;
- }
- .clubs_icon {
- color: antiquewhite;
- }
- .spades_icon {
- color: antiquewhite;
- }
- .suit_icon {
- background-color: black;
- text-align: center;
- font-size: 60px;
- line-height: 40px;
- }
- .blood_icon {
- background-color: black;
- padding: 6px 3px 2px 5px;
- }
- .joker_icon {
- background-color: black;
- padding: 6px 3px 2px 5px;
- }
- .tap_icon {
- background-color: black;
- }
- .content {
- background-color: antiquewhite;
- color: black;
- flex: 5;
- -moz-border-radius: 25px;
- -webkit-border-radius: 25px;
- border-radius: 25px;
- overflow: hidden;
- position: relative;
- font-size: 50px;
- display: flex;
- justify-content: flex-start;
- gap: 5px;
- text-align: left;
- padding: 35px 30px 30px 30px;
- flex-direction: column;
- border-width: 2px 2px 2px 2px;
- border-color: black;
- border-style: solid;
- }
- .attrib_bottom_icons {
- bottom: 0;
- }
- .attrib_top_icons {
- top: 0;
- }
- .attrib_bl {
- position: absolute;
- bottom: 0;
- left: 0;
- -moz-border-radius: 0 50px 0 0;
- -webkit-border-radius: 0 50px 0 0;
- border-radius: 0 50px 0 0;
- border-color: rgba(255,255,255,0.50);
- border-style: solid;
- border-width: 5px 5px 0 0;
- padding: 15px 25px 15px 15px;
- }
- .attrib_br {
- position: absolute;
- bottom: 0;
- right: 0;
- -moz-border-radius: 50px 0 0 0;
- -webkit-border-radius: 50px 0 0 0;
- border-radius: 50px 0 0 0;
- border-color: rgba(255,255,255,0.50);
- border-style: solid;
- border-width: 5px 0 0 5px;
- padding: 15px 15px 15px 25px;
- }
- .attrib_tr {
- position: absolute;
- top: 0;
- right: 0;
- -moz-border-radius: 0 0 0 50px;
- -webkit-border-radius: 0 0 0 50px;
- border-radius: 0 0 0 50px;
- border-color: rgba(255,255,255,0.50);
- border-style: solid;
- border-width: 0 0 5px 5px;
- padding: 15px 15px 15px 25px;
- }
- .attrib_tl {
- position: absolute;
- top: 0;
- left: 0;
- -moz-border-radius: 0 0 50px 0;
- -webkit-border-radius: 0 0 50px 0;
- border-radius: 0 0 50px 0;
- border-color: rgba(255,255,255,0.50);
- border-style: solid;
- border-width: 0 5px 5px 0;
- padding: 15px 25px 15px 15px;
- }
- .attrib_icon {
- background-color: rgba(255,255,255,0.10);
- }
- .title {
- background-color: black;
- color: antiquewhite;
- flex: 3;
- -moz-border-radius: 25px;
- -webkit-border-radius: 25px;
- border-radius: 25px;
- overflow: hidden;
- position: relative;
- font-size: 85px;
- display: flex;
- align-items: center;
- justify-content: center;
- text-align: center;
- flex-direction: column;
- padding: 25px;
- border-width: 2px 2px 2px 2px;
- border-color: black;
- border-style: solid;
- }
- .group {
- margin: 50px 50px 0px 50px;
- -moz-border-radius: 25px;
- -webkit-border-radius: 25px;
- border-radius: 25px;
- display: flex;
- flex-direction: column;
- align-content: space-between;
- height: auto;
- flex: 2;
- gap: 35px;
- }
- .card {
- height: 1425px;
- width: 825px;
- background-color: black;
- display: flex;
- }
- .card_wrapper {
- min-height: 2850px;
- width: 5775px;
- display: flex;
- flex-wrap: wrap;
- height: 100%;
- }
- button {
- font-size: 50px;
- padding: 30px;
- margin: 30px;
- }
- p {
- margin: 0;
- }
- body {
- background-color: #1e1e1e;
- }
- </style>
- </head>
- <button onclick="downloadAsImage()">
- Download
- </button>
- <div id="card_wrapper" class="card_wrapper">
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Thrusting Sword
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 3
- </div>
- <div class="attrib_icon attrib_br">
- Prc 🛡️
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d8 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <p><strong>Opportune Strike</strong>: When targeting an enemy with this weapon, mark them until the end of their turn. While marked if they attack somone other then you then you can perform a reposte on them.</p>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“World Famous Iron Toothpick”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Thrusting Sword Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Polearm
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 3
- </div>
- <div class="attrib_icon attrib_br">
- Str 🛡️
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Str</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <p><strong>Reach</strong>: When making an attack, you ignore repostes from your target unless they also have Reach.</p>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“Getting up close and personal while staying far away”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Polearm Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Dagger
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 2
- </div>
- <div class="attrib_icon attrib_br">
- Prc 🛡️
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon suit_icon spades_icon">
- ♠️
- </span>
- </div>
- <div class="action_detail">
- <p>(even) <strong>Swift Attack</strong>: Refresh this card.</p>
- </div>
- </div>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“A quick and convinient way to turn a spleen into a sheath”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Dagger Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Bow
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 3
- </div>
- <div class="attrib_icon attrib_br">
- 1 🛡️
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d4 + (2·Prc)</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <p><strong>Ranged</strong>: When making an attack, you ignore repostes from your target. You can’t deal a reposte either.</p>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“One stringed instrument that got repurposed as a weapon.”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Bow Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Crossbow
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 4
- </div>
- <div class="attrib_icon attrib_br">
- 1 🛡️
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>(must be loaded) 🎲 <strong>d6 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p><strong>Reload</strong>: Load this weapon.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <p><strong>Ranged</strong>: When making an attack, you ignore repostes from your target. You can’t deal a reposte either.</p>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“No one will cross you with this weapon”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Crossbow Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Hammer
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 3
- </div>
- <div class="attrib_icon attrib_br">
- Str 🛡️
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Str</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p><strong>Power Swing</strong>: 🎲 <strong>d4 + Str</strong> to hit. Deal <strong>Str + 2</strong> damage.</p>
- </div>
- </div>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“If you can pick it up, then you are worthy enough to use it.”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Hammer Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Straight Sword
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 3
- </div>
- <div class="attrib_icon attrib_br">
- Str 🛡️
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Str</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>(Two Handed) 🎲 <strong>d6 + Str</strong> to hit. Deal <strong>Str</strong> damage.</p>
- </div>
- </div>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“El Classico”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Straight Sword Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Axe
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 3
- </div>
- <div class="attrib_icon attrib_br">
- Str 🛡️
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d8 + Str</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p><strong>Throw</strong>: 🎲 <strong>d6 + Str</strong> to hit. This attack is <strong>Ranged</strong> and thus you ignore repostes from your target. You lose this weapon by using this attack.</p>
- </div>
- </div>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“Looks great with a flannel shirt.”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Axe Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Staff
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 2
- </div>
- <div class="attrib_icon attrib_br">
- Str 🛡️
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Str</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>(Two Handed) 🎲 <strong>d8 + Str</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon suit_icon spades_icon">
- ♠️
- </span>
- </div>
- <div class="action_detail">
- <p>(odd) <strong>Swift Attack</strong>: Refresh this card.</p>
- </div>
- </div>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“Says ‘Made by the Ninja Custodial Group’ on the handle”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Staff Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Curved Sword
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 3
- </div>
- <div class="attrib_icon attrib_br">
- Prc 🛡️
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon suit_icon spades_icon">
- ♠️
- </span>
- </div>
- <div class="action_detail">
- <p>(odd, recieving a reposte) <strong>Close Quarters</strong>: Deal damage equal to your reposte.</p>
- </div>
- </div>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“Arrrgh”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Curved Sword Weapon
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, DarkBlue 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Caestus
- </p>
- </div>
- <div class="content">
- <div class="action">
- <p>While equipped: Unarmed Strikes deal <strong>Str</strong> additional damage.</p>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“Weapon of choice for a fit bronze statue”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Weapon Equipment
- </div>
- </div>
- </div>
- <div style="background:linear-gradient(225deg, rgba(0,0,0,1) -50%, rebeccapurple 100%)" class="card">
- <div class="group">
- <div class="title">
- <p>
- Test Weapon
- </p>
- <div class="attrib_icon attrib_bl">
- ⚔️ 3
- </div>
- <div class="attrib_icon attrib_br">
- Prc 🛡️
- </div>
- </div>
- <div class="content">
- <div class="action">
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon suit_icon spades_icon">
- ♠️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon suit_icon clubs_icon">
- ♣️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon suit_icon diamonds_icon">
- ♦️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon joker_icon">
- 🃏
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="action">
- <hr>
- <div class="symbol_wrapper_outer">
- <div class="symbol_wrapper_inner">
- <span class="icon tap_icon">
- ↪️
- </span>
- <span class="icon suit_icon hearts_icon">
- ♥️
- </span>
- </div>
- <div class="action_detail">
- <p>🎲 <strong>d6 + Prc</strong> to hit.</p>
- </div>
- </div>
- </div>
- <div class="flavour_wrapper">
- <div class="flavour">
- <hr>
- <p>“Arrr”</p>
- </div>
- </div>
- </div>
- <div class="card_type">
- Curved Sword Weapon
- </div>
- </div>
- </div>
- </div>
- <script src="./web/bundle.js">
- </script>
- <script>
- function downloadAsImage() {
- htmlToImage.toPng(document.getElementById('card_wrapper'))
- .then(function (dataUrl) {
- download(dataUrl, 'card_wrapper.png');
- });
- }
- </script>
-</html>
diff --git a/cards/common_weapons.rb b/cards/common_weapons.rb
index 3526c05..55931af 100644
--- a/cards/common_weapons.rb
+++ b/cards/common_weapons.rb
@@ -12,10 +12,10 @@ common_weapons[:thrusting_sword] = Card.new(
content: '🎲 **d8 + Prc** to hit.',
symbol: :tap,
),
- Card::Action.new(
- seperator: true,
- content: '**Opportune Strike**: When targeting an enemy with this weapon, mark them until the end of their turn. While marked if they attack somone other then you then you can perform a reposte on them.',
- )
+ #Card::Action.new(
+ # seperator: true,
+ # content: '**Opportune Strike**: When targeting an enemy with this weapon, mark them until the end of their turn. While marked if they attack somone other then you then you can perform a reposte on them.',
+ #)
],
flavour: '"World Famous Iron Toothpick"',
type: 'Thrusting Sword Weapon'
@@ -25,8 +25,8 @@ common_weapons[:thrusting_sword] = Card.new(
common_weapons[:polearm] = Card.new(
title: "Polearm",
color: 'rebeccapurple',
- reposte: 'Str',
- damage: '3',
+ reposte: 'Prc',
+ damage: '4',
actions: [
Card::Action.new(
content: '🎲 **d6 + Str** to hit.',
@@ -34,15 +34,44 @@ common_weapons[:polearm] = Card.new(
),
Card::Action.new(
seperator: true,
- content: '**Reach**: When making an attack, you ignore repostes from your target unless they also have Reach.',
- # TODO: this is the same as the bow making it superiour
- #symbol: :spades,
+ content: '**Reach**',
),
+ #Card::Action.new(
+ # seperator: true,
+ # content: '**Reach**: When making an attack, you ignore repostes from your target unless they also have Reach.',
+ # # TODO: this is the same as the bow making it superiour
+ # #symbol: :spades,
+ #),
],
flavour: '"Getting up close and personal while staying far away"',
type: 'Polearm Weapon'
)
+common_weapons[:spear] = Card.new(
+ title: "Spear",
+ color: 'rebeccapurple',
+ reposte: 'Prc',
+ damage: '3',
+ actions: [
+ Card::Action.new(
+ content: '🎲 **d6 + Prc** to hit.',
+ symbol: :tap,
+ ),
+ Card::Action.new(
+ seperator: true,
+ content: '**Reach**, **Throwable**',
+ ),
+ #Card::Action.new(
+ # seperator: true,
+ # content: '**Reach**: When making an attack, you ignore repostes from your target unless they also have Reach.',
+ # # TODO: this is the same as the bow making it superiour
+ # #symbol: :spades,
+ #),
+ ],
+ flavour: '"5x more throwable then previous editions"',
+ type: 'Polearm Weapon'
+)
+
common_weapons[:dagger] = Card.new(
title: "Dagger",
color: 'rebeccapurple',
@@ -50,24 +79,29 @@ common_weapons[:dagger] = Card.new(
damage: '2',
actions: [
Card::Action.new(
- content: '🎲 **d6 + Prc** to hit.',
+ content: '🎲 **d4 + Prc** to hit.',
symbol: :tap,
),
Card::Action.new(
seperator: true,
- content: '(even) **Swift Attack**: Refresh this card.',
- symbol: :spades
+ content: '**Light**, **Throwable**',
+ #symbol: :spades
),
+ #Card::Action.new(
+ # seperator: true,
+ # content: '(even) **Swift Attack**: Refresh this card.',
+ # symbol: :spades
+ #),
],
flavour: '"A quick and convinient way to turn a spleen into a sheath"',
type: 'Dagger Weapon'
)
-common_weapons[:bow] = Card.new(
- title: "Bow",
+common_weapons[:longbow] = Card.new(
+ title: "Longbow",
color: 'rebeccapurple',
damage: '3',
- reposte: 1,
+ #reposte: 1,
actions: [
Card::Action.new(
content: '🎲 **d4 + (2·Prc)** to hit.',
@@ -75,8 +109,12 @@ common_weapons[:bow] = Card.new(
),
Card::Action.new(
seperator: true,
- content: '**Ranged**: When making an attack, you ignore repostes from your target. You can\'t deal a reposte either.',
+ content: '**Ranged**',
)
+ #Card::Action.new(
+ # seperator: true,
+ # content: '**Ranged**: When making an attack, you ignore repostes from your target. You can\'t deal a reposte either.',
+ #)
],
flavour: '"One stringed instrument that got repurposed as a weapon."',
type: 'Bow Weapon'
@@ -85,8 +123,8 @@ common_weapons[:bow] = Card.new(
common_weapons[:crossbow] = Card.new(
title: "Crossbow",
color: 'rebeccapurple',
- damage: '4',
- reposte: 1,
+ damage: '3',
+ #reposte: 1,
actions: [
Card::Action.new(
content: '(must be loaded) 🎲 **d6 + Prc** to hit.',
@@ -99,7 +137,7 @@ common_weapons[:crossbow] = Card.new(
),
Card::Action.new(
seperator: true,
- content: '**Ranged**: When making an attack, you ignore repostes from your target. You can\'t deal a reposte either.',
+ content: '**Ranged**',
)
],
flavour: '"No one will cross you with this weapon"',
@@ -112,14 +150,14 @@ common_weapons[:hammer] = Card.new(
damage: 3,
actions: [
Card::Action.new(
- content: '🎲 **d6 + Str** to hit.',
+ content: '🎲 **d4 + (2·Str)** to hit.',
symbol: :tap,
),
- Card::Action.new(
- seperator: true,
- content: '**Power Swing**: 🎲 **d4 + Str** to hit. Deal **Str + 2** damage.',
- symbol: :tap
- ),
+ #Card::Action.new(
+ # seperator: true,
+ # content: '**Power Swing**: 🎲 **d4 + Str** to hit. Deal **Str + 2** damage.',
+ # symbol: :tap
+ #),
],
flavour: '"If you can pick it up, then you are worthy enough to use it."',
color: 'rebeccapurple',
@@ -132,14 +170,14 @@ common_weapons[:straight_sword] = Card.new(
reposte: 'Str',
actions: [
Card::Action.new(
- content: '🎲 **d6 + Str** to hit.',
+ content: '🎲 **d8 + Str** to hit.',
symbol: :tap,
),
- Card::Action.new(
- seperator: true,
- content: '(Two Handed) 🎲 **d6 + Str** to hit. Deal **Str** damage.',
- symbol: :tap,
- )
+ #Card::Action.new(
+ # seperator: true,
+ # content: '(Two Handed) 🎲 **d6 + Str** to hit. Deal **Str** damage.',
+ # symbol: :tap,
+ #)
],
flavour: '"El Classico"',
color: 'rebeccapurple',
@@ -148,18 +186,18 @@ common_weapons[:straight_sword] = Card.new(
common_weapons[:axe] = Card.new(
title: "Axe",
- damage: 3,
+ damage: 4,
reposte: 'Str',
actions: [
Card::Action.new(
- content: '🎲 **d8 + Str** to hit.',
+ content: '🎲 **d6 + Str** to hit.',
symbol: :tap,
),
- Card::Action.new(
- seperator: true,
- content: '**Throw**: 🎲 **d6 + Str** to hit. This attack is **Ranged** and thus you ignore repostes from your target. You lose this weapon by using this attack.',
- symbol: :tap
- ),
+ #Card::Action.new(
+ # seperator: true,
+ # content: '**Throw**: 🎲 **d6 + Str** to hit. This attack is **Ranged** and thus you ignore repostes from your target. You lose this weapon by using this attack.',
+ # symbol: :tap
+ #),
],
flavour: '"Looks great with a flannel shirt."',
color: 'rebeccapurple',
@@ -182,9 +220,13 @@ common_weapons[:staff] = Card.new(
),
Card::Action.new(
seperator: true,
- content: '(odd) **Swift Attack**: Refresh this card.',
- symbol: :spades
- ),
+ content: '**Light**',
+ )
+ #Card::Action.new(
+ # seperator: true,
+ # content: '(odd) **Swift Attack**: Refresh this card.',
+ # symbol: :spades
+ #),
],
color: 'rebeccapurple',
flavour: '"Says \'Made by the Ninja Custodial Group\' on the handle"',
@@ -197,18 +239,38 @@ common_weapons[:curved_sword] = Card.new(
reposte: 'Prc',
actions: [
Card::Action.new(
- content: '🎲 **d6 + Prc** to hit.',
+ content: '🎲 **d8 + Str** to hit.',
+ symbol: :tap,
+ ),
+ #Card::Action.new(
+ # seperator: true,
+ # content: '(odd, recieving a reposte) **Close Quarters**: Deal damage equal to your reposte.',
+ # symbol: :spades
+ #),
+ ],
+ color: 'rebeccapurple',
+ flavour: '"Arrrgh"',
+ type: 'Curved Sword Weapon',
+)
+
+common_weapons[:forked_sword] = Card.new(
+ title: "Forked Sword",
+ damage: 3,
+ reposte: 'Str',
+ roll: '1d6',
+ actions: [
+ Card::Action.new(
+ content: '🎲 **d6 + Str** to hit.',
symbol: :tap,
),
Card::Action.new(
seperator: true,
- content: '(odd, recieving a reposte) **Close Quarters**: Deal damage equal to your reposte.',
- symbol: :spades
+ content: '**Casting Focus**',
),
],
color: 'rebeccapurple',
- flavour: '"Arrrgh"',
- type: 'Curved Sword Weapon',
+ flavour: '"Weapon used in the war against the gods. Vintage!"',
+ type: 'Forked Sword Weapon',
)
common_weapons[:caestus] = Card.new(
@@ -223,6 +285,33 @@ common_weapons[:caestus] = Card.new(
type: 'Weapon Equipment'
)
+common_weapons[:tuning_fork] = Card.new(
+ title: "Tuning Fork",
+ roll: '1d4',
+ actions: [
+ Card::Action.new(
+ content: '**Casting Focus**',
+ ),
+ ],
+ color: 'DarkBlue',
+ flavour: '"Resonates with various magical frequencies to help with casting blood magic"',
+ type: 'Magic Casting Tool',
+)
+
+common_weapons[:casters_glove] = Card.new(
+ title: "Caster's Glove",
+ roll: '1d8',
+ actions: [
+ Card::Action.new(
+ content: '**Casting Focus**',
+ ),
+ ],
+ color: 'DarkBlue',
+ flavour: '"Modern casting tool that works by directly drawing your blood"',
+ type: 'Magic Casting Tool',
+)
+
+
common_weapons[:test_weapon] = Card.new(
title: "Test Weapon",
damage: 3,
diff --git a/cards/spells.rb b/cards/spells.rb
index 64986b2..693f6c6 100644
--- a/cards/spells.rb
+++ b/cards/spells.rb
@@ -76,20 +76,20 @@ beginner_spells[:summon_alchemicals] = Card.new(
type: 'Blood Magic (Eldritch)'
)
-beginner_spells[:summon_alchemicals] = Card.new(
- title: "Summon Alchemicals",
- #damage: 3,
- blood: 2,
+beginner_spells[:northern_wind] = Card.new( #TODO
+ title: "Northern Wind",
+ damage: '2d4',
+ blood: 1,
#reposte: 'Prc',
actions: [
Card::Action.new(
- content: '(**odd**) Summon a random amount of a random alchemical depending on various hidden factors.',
- symbol: [:diamonds, :blood]
+ content: '(**odd**) Shoot a cold wind from your hands, freezing things in its path.',
+ symbol: [:clubs, :blood]
),
],
color: 'firebrick',
- flavour: '"You arent making a bomb, are you?"',
- type: 'Blood Magic (Eldritch)'
+ flavour: '"Won\'t fail blowing out birthday candles"',
+ type: 'Blood Magic (Storm)'
)
diff --git a/src/SUMMARY.md b/src/SUMMARY.md
index e2373a6..196530d 100644
--- a/src/SUMMARY.md
+++ b/src/SUMMARY.md
@@ -10,6 +10,8 @@
- [Vices](build/vices.md)
- [Races](./races.md)
- [Attributes](./attributes.md)
+ - [Classes](classes.md)
+ -
- [What You Have]()
- [Gear]()
- [Armour](armour.md)
diff --git a/src/classes.md b/src/classes.md
new file mode 100644
index 0000000..86c896f
--- /dev/null
+++ b/src/classes.md
@@ -0,0 +1,17 @@
+# Classes
+
+## Rogue
+Can attack many times at once
+specialized in the "city"
+
+## Ranger
+Good at focusing a target(mark)
+specialized in "nature"
+
+## Sorcerer
+Specialized at casting
+specialized in "magic"
+
+## Monk
+Specialized at inner peace?
+can move cards around the field \ No newline at end of file