diff --git a/5th Edition OGL by Roll20/5th Edition OGL by Roll20.html b/5th Edition OGL by Roll20/5th Edition OGL by Roll20.html index 9d9a05193f..af134ac699 100644 --- a/5th Edition OGL by Roll20/5th Edition OGL by Roll20.html +++ b/5th Edition OGL by Roll20/5th Edition OGL by Roll20.html @@ -6778,10 +6778,7 @@ } setAttrs({ already_transitioned: '1' }); - if((!attrs.is_npc && !attrs.pcornpc) || (attrs.is_npc && attrs.is_npc !== '1')) { - transferPC(attrs.is_shaped === '1'); - } - else if(attrs.is_npc) { + if(attrs.is_npc && (attrs.is_npc === '1' || attrs.is_npc === 1)) { if(attrs.is_shaped === '1') { transferNPCShaped(); } @@ -6789,6 +6786,9 @@ transferNPCSimple(); } } + else { + transferPC(attrs.is_shaped === '1'); + } }); }; diff --git a/Aliens/Aliens.css b/Aliens/Aliens.css new file mode 100644 index 0000000000..0e4703e1bc --- /dev/null +++ b/Aliens/Aliens.css @@ -0,0 +1,94 @@ +div.sheet-tab-content { display: none; } + +input.sheet-tab1:checked ~ div.sheet-tab1, +input.sheet-tab2:checked ~ div.sheet-tab2, +input.sheet-tab3:checked ~ div.sheet-tab3, +input.sheet-tab4:checked ~ div.sheet-tab4, +input.sheet-tab5:checked ~ div.sheet-tab5 + +{ + display: block; +} +input.sheet-tab +{ + width: 150px; + height: 20px; + position: relative; + top: 5px; + left: 6px; + margin: -1.5px; + cursor: pointer; + z-index: 1; +} + +input.sheet-tab::before +{ + content: attr(title); + + + border: solid 1px #a8a8a8; + border-bottom-color: black; + text-align: center; + display: inline-block; + + background: #fff; + background: -moz-linear-gradient(to top, #c8c8c8, #fff, #c8c8c8); + background: -webkit-linear-gradient(to top, #c8c8c8, #fff, #c8c8c8); + background: -ms-linear-gradient(to top, #c8c8c8, #fff, #c8c8c8); + background: -o-linear-gradient(to top, #c8c8c8, #fff, #c8c8c8); + background: linear-gradient(to top, #c8c8c8, #fff, #c8c8c8); + + width: 150px; + height: 20px; + font-size: 18px; +} + +input.sheet-tab:checked::before +{ + background: #dcdcdc; + background: -moz-linear-gradient(to top, #fcfcfc, #dcdcdc, #fcfcfc); + background: -webkit-linear-gradient(to top, #fcfcfc, #dcdcdc, #fcfcfc); + background: -ms-linear-gradient(to top, #fcfcfc, #dcdcdc, #fcfcfc); + background: -o-linear-gradient(to top, #fcfcfc, #dcdcdc, #fcfcfc); + background: linear-gradient(to top, #fcfcfc, #dcdcdc, #fcfcfc); + border-bottom-color: #fff; +} + +input.sheet-tab:not(:first-child)::before +{ + border-left: none; +} + +input.sheet-tab2::before +{ + background: #fff; + background: -moz-linear-gradient(to top, #c8c8c8, #fff, #c8c8c8); + background: -webkit-linear-gradient(to top, #c8c8c8, #fff, #c8c8c8); + background: -ms-linear-gradient(to top, #c8c8c8, #fff, #c8c8c8); + background: -o-linear-gradient(to top, #c8c8c8, #fff, #c8c8c8); + background: linear-gradient(to top, #c8c8c8, #fff, #c8c8c8); +} + +input.sheet-tab2:checked::before +{ + background: #dcdcdc; + background: -moz-linear-gradient(to top, #fcfcfc, #dcdcdc, #fcfcfc); + background: -webkit-linear-gradient(to top, #fcfcfc, #dcdcdc, #fcfcfc); + background: -ms-linear-gradient(to top, #fcfcfc, #dcdcdc, #fcfcfc); + background: -o-linear-gradient(to top, #fcfcfc, #dcdcdc, #fcfcfc); + background: linear-gradient(to top, #fcfcfc, #dcdcdc, #fcfcfc); + border-bottom-color: #fff; +} + +div.sheet-tab-content +{ + border: 1px solid #a8a8a8; + border-top-color: #000; + margin: 2px 0 0 5px; + padding: 5px; +} + +div.sheet-tab2 +{ + background-color: #dcdcdc; +} \ No newline at end of file diff --git a/Aliens/Aliens.html b/Aliens/Aliens.html new file mode 100644 index 0000000000..96c620d52a --- /dev/null +++ b/Aliens/Aliens.html @@ -0,0 +1,731 @@ + + +Aliens Character Sheet + + +
+Name:
+Rank:  + +
+Branch: + +
+Specialty:  + +
+Grade: + +
+
+ + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CHARACTERISTICS
Character +Point Total
PrimarySecondary
StrengthCharisma
IntelligenceLeadership
WillPerception
HealthMotivation
Agility
Learning +RollKnockout +Value
+
+ + + + + + + + + + + + + + + + + + + + + + + +
Combat +LoadFully +Loaded
Base +Speed + + + +
Max +Speed + + + +
Combat +Actions + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Combat +Actions by Impulse
1234
Combat +Load + + + + + + + +
Fully +Loaded + + + + + + + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Physical +StatusKnockout +Table
AgeTotal Physical DmgValue%
Visual ScarsUnder +1/10 KV0%
Over +1/10 KV10%
Physical DamageOver +KV25%
Disabling InjuriesOver +2x KV75%
Over +3x KV98%
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
General SkillsN
+-4
C
+0
P
+4
E
+6
M
+8
G
+10
Class 1
Gun Combat
Class 2
Balance + + +
Hand +to Hand + + + + + +
Class 3
Climbing + + + + + +
Scouting + + + + + +
Survival + + + + + +
Class 4
Espionage + + + + + +
Infiltration + + + + + +
Class 5
Diplomacy + + + + + +
Awareness + + + + + +
+

Support Skills

+
+          
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WeaponPhysical
+Data
Aim
+Time
Aim
+Mod
Shot
+Acc
Ballistic
+Data
204080140200400600800
L1 + + + +
W2 + + + +
3 + + + +
RT4 + + + +
ROF5 + + + +
6 + + + +
Cap7 + + + +
AW8 + + + +
9 + + + +
KD10 + + + +
11 + + + +
SAB12 + + + +
+
+
+
+
+ + + + + + + + + + + +
Combat +EquipmentWeight
Armor: BPF:
+
+         
+
+ + + + + + + +
EquipmentWeight
+
+          +
+
+
+ \ No newline at end of file diff --git a/Aliens/alienscs.jpg b/Aliens/alienscs.jpg new file mode 100644 index 0000000000..fe998a748f Binary files /dev/null and b/Aliens/alienscs.jpg differ diff --git a/Aliens/header.jpg b/Aliens/header.jpg new file mode 100644 index 0000000000..88aaa5c8bf Binary files /dev/null and b/Aliens/header.jpg differ diff --git a/Aliens/sheet.json b/Aliens/sheet.json new file mode 100644 index 0000000000..10e47af5d5 --- /dev/null +++ b/Aliens/sheet.json @@ -0,0 +1,8 @@ +{ + "html": "Aliens.html", + "css": "Aliens.css", + "authors": "Garrett G.", + "roll20userid": "197441", + "preview": "alienscs.jpg", + "instructions": "No sheet rolls currently available." +} diff --git a/Atomic Highway/Atomic Highway.html b/Atomic Highway/Atomic Highway.html index 08269a796a..c711aab82a 100644 --- a/Atomic Highway/Atomic Highway.html +++ b/Atomic Highway/Atomic Highway.html @@ -1,1951 +1,1307 @@ - - -Character - -Vehicle - -All + + + Character + Vehicle + +All
-

Atomic
l
Highway

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - - - - - - - - - - - -
Name
Concept
Rearing
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Skills
Athletics - - - - - - - Ride - - - - - - -
Boat - - - - - - - Scavenge - - - - - - -
Brawl - - - - - - - Shoot - - - - - - -
Criminal - - - - - - - Sleight - - - - - - -
Drive - - - - - - - Stealth - - - - - - -
Heal - - - - - - - Survive - - - - - - -
Intimidate - - - - - - - Tech - - - - - - -
Lore - - - - - - - Zoofinity - - - - - - -
Melee - - - - - - - - - - - - - -
Notice - - - - - - - - - - - - - -
Persuade - - - - - - - - - - - - - -
Pilot - - - - - - - - - - - - - -
-
-
- - - - - - - - - - - - - -
Player
Race
Pursuit
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Difficulty
Difficulty RatingSuccesses Needed
Difficult1
Extreme2
Arduous3
Tremendous4
Heroic5+
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Fortune Costs
EffectCost
Extra Success1
Reroll Bad Things Happen3
Plot Tweak2
Plot Twist5
Reduce Opponent’s Success2
Reduce Injury1
Perform Dual Action2
-
-
- - - - - - - - - - - - - - - - - - - - - - -
Mutations

-
-
- - - - - - - - - - - - - - - - - - - - - - - -
Flaws

-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Fortune
Armor

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Weapons
RollWeaponAttributeSkillDamageDamage
Type
Max
Range
CapacityReloadHandsBurst

-
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Gear
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Health
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-
-
- - - - - - -
-

Health = (Muscle+Tenacity+Toughness) x2
-
-
-
+

Atomic
l
Highway

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + +
Name
Concept
Rearing
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skills
Athletics + + + + + + +Ride + + + + + + +
Boat + + + + + + +Scavenge + + + + + + +
Brawl + + + + + + +Shoot + + + + + + +
Criminal + + + + + + +Sleight + + + + + + +
Drive + + + + + + +Stealth + + + + + + +
Heal + + + + + + +Survive + + + + + + +
Intimidate + + + + + + +Tech + + + + + + +
Lore + + + + + + +Zoofinity + + + + + + +
Melee + + + + + + + + + + + + + +
Notice + + + + + + + + + + + + + +
Persuade + + + + + + + + + + + + + +
Pilot + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + +
Player
Race
Pursuit
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Difficulty
Difficulty RatingSuccesses Needed
Difficult1
Extreme2
Arduous3
Tremendous4
Heroic5+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Fortune Costs
EffectCost
Extra Success1
Reroll Bad Things Happen3
Plot Tweak2
Plot Twist5
Reduce Opponent’s Success2
Reduce Injury1
Perform Dual Action2
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
Mutations

+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
Flaws

+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Fortune
Armor

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Weapons
RollWeaponAttributeSkillDamageDamage
Type
Max
Range
CapacityReloadHandsBurst

+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Gear
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Health
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+
+
+ + + + + + +
+

Health = (Muscle+Tenacity+Toughness) x2
+
+
+
-

Vehicular
l
Action!

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Passengers
(Not Counting Driver)
Health
(Muscle + Toughness) x15
Armor
-
-
- - - - - -
Vehicle Name
-
- - - - - - - - - - - - - - - - - - - - - - -
Vehicle Customizations

-
-
- - - - - -
Type
-
- - - - - - - - - - - - - - - - - - - - - - - -
Vehicle Flaws

-
-
-
-
-
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Vehicle Weapons
RollWeaponAttributeSkillDamageDamage
Type
Max
Range
CapacityReloadArcBurst

-
-
+

Vehicular
l
Action!

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Passengers
(Not Counting Driver)
Health
(Muscle + Toughness) x15
Armor
+
+ + + + + +
Vehicle Name
+
+ + + + + + + + + + + + + + + + + + + + + + +
Vehicle Customizations

+
+
+ + + + + +
Type
+
+ + + + + + + + + + + + + + + + + + + + + + + +
Vehicle Flaws

+
+
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Vehicle Weapons
RollWeaponAttributeSkillDamageDamage
Type
Max
Range
CapacityReloadArcBurst

+
+
+
\ No newline at end of file diff --git a/CWOD-W20/W20.html b/CWOD-W20/W20.html index 2e12f14c5c..d7779a8a06 100644 --- a/CWOD-W20/W20.html +++ b/CWOD-W20/W20.html @@ -260,7 +260,7 @@

Abilities

- +

Talents

@@ -699,7 +699,6 @@

-

Dice Pools

@@ -772,8 +771,8 @@ - - + + @@ -835,8 +834,8 @@ - - + + @@ -898,8 +897,8 @@ - - + + @@ -961,8 +960,8 @@ - - + + @@ -1024,14 +1023,14 @@ - - + +
- + - - + + + +
+
+
+ +
+

Specialties

+ + + + +
Attribute/AbilityLabel
+
+ + + +
+ + +
@@ -1443,7 +1504,7 @@
- +
@@ -1472,7 +1533,7 @@


- +
@@ -1499,7 +1560,7 @@


- +
@@ -1548,7 +1609,7 @@
- + @@ -1675,7 +1736,7 @@ - + @@ -1688,19 +1749,19 @@ - - - - - - + + + + + + - - - - - + + + + + @@ -1718,19 +1779,19 @@ - - - - - - + + + + + + - - - - - + + + + + @@ -1748,19 +1809,19 @@ - - - - - - + + + + + + - - - - - + + + + + @@ -1902,8 +1963,7 @@

Combat




ManMan Near-Man Hybrid Near-Beast
StrengthStrength
Dexterity
StaminaStamina
Appearance
ManipulationManipulation

- - + @@ -1916,8 +1976,7 @@ - - - - - - -
AttackDamageRoll Weapon/Attack Attribute SkillClip
- +
- +
- +
- +
- +
- +
- +

-

Brawling

+

Brawling

@@ -2203,27 +2256,27 @@ - - - - - @@ -2233,44 +2286,44 @@ - - + - - - - - - -
ManeuverDamage
Type
+ Dex + Brawl 5 Strength +1 + Aggravated
+ Dex + Brawl 5 Strength +2 + Aggravated
+ Dex + Brawl 7Bashing
+ Dex + Brawl 6Strength +1Strength +2 + Aggravated
+ Dex + Brawl 6 Strength + Bashing
+ Dex + Brawl 7 Strength +1 + Bashing
+ Dex + Brawl 6 Strength + Bashing

@@ -2278,6 +2331,17 @@

Health

+ + + + + @@ -2381,28 +2445,28 @@ - + - + - + - + @@ -2410,20 +2474,4 @@
Extra Bruised +
Bruised Apply Armor?
-
- - - - - - - - - - {{#diff}} - - - - - {{/diff}} - + \ No newline at end of file diff --git a/CahiersDuVastemonde/ReadMe.md b/CahiersDuVastemonde/ReadMe.md new file mode 100644 index 0000000000..07998362d7 --- /dev/null +++ b/CahiersDuVastemonde/ReadMe.md @@ -0,0 +1,15 @@ +# Les Cahiers du Vastemonde + +Feuille de Personnage VF (avec jets intégrés) pour les [Cahiers du Vastemonde](http://legrumph.org/Terrier/?Les-Cahiers-du-Vastemonde/Les-Cahiers-du-Vastemonde) de **John Grümph**. + +Cette fiche pour Roll20 a été développée à la demande et avec la participation de l'auteur. + +Soutenez le développement des Cahiers du Vastemonde sur [Tipee](https://www.tipeee.com/les-cahiers-du-vastemonde). + +# Version courante +1.0 [Capture d'écran](vastemonde.png) + +# Notes de version + +##v1.0 (2016-02-20) +Création de la fiche. diff --git a/CahiersDuVastemonde/sheet.json b/CahiersDuVastemonde/sheet.json new file mode 100644 index 0000000000..aba078b0b4 --- /dev/null +++ b/CahiersDuVastemonde/sheet.json @@ -0,0 +1,8 @@ +{ + "html": "vastemonde.htm", + "css": "vastemonde.css", + "authors": "Nathanael TERRIEN", + "roll20userid": "75857", + "preview": "vastemonde.png", + "instructions": "Feuille de Personnage VF (avec jets intégrés) pour les [Cahiers du Vastemonde](http://legrumph.org/Terrier/?Les-Cahiers-du-Vastemonde/Les-Cahiers-du-Vastemonde) de John Grümph. v1.0 (20/02/2016)." +} diff --git a/CahiersDuVastemonde/vastemonde.css b/CahiersDuVastemonde/vastemonde.css new file mode 100644 index 0000000000..533fe76af9 --- /dev/null +++ b/CahiersDuVastemonde/vastemonde.css @@ -0,0 +1,641 @@ +/*** GENERIC *********************************************************/ +div, +button, +textarea, +span, +input, +select, +table, +tr, +td, +th{ + box-sizing: border-box; +} +/********* DIV *************************************************/ +div{ + padding: 0px 0px 0px 0px; + margin: 0px 0px 0px 0px; + vertical-align: top; + display: inline-block; + text-align: center; +} +div.sheet-main{ + padding: 4px; + width: 900px; + background: white; + text-align:center; + font-family: 'Verdana'; + border-width: 1px; + border-style: solid; + border-color: #AAAAAA; +} +div.sheet-ligne{ + display: block; + width: 100%; + text-align: left; + vertical-align: middle; + margin: 1px 0px 1px 0px; + /*border: 1px solid red;*/ +} +div.sheet-mycol{ + display: inline-block; + vertical-align: top; + /*border: 1px solid blue;*/ +} +div.sheet-mycolbrd{ + display: inline-block; + vertical-align: top; + border: 1px solid #DD5633; + border-radius: 6px; + text-align: center; + padding: 3px; + margin-bottom: 3px; +} +div.sheet-libel1{ + color: #DD5633; + display: inline-block; + font-size: 0.9em; + font-weight: bold; + text-align: right; + width: 60px; + text-transform: uppercase; +} +div.sheet-libel2{ + color: #DD5633; + display: inline-block; + font-size: 0.9em; + font-weight: bold; + text-transform: uppercase; +} +div.sheet-libel3{ + color: black; + display: inline-block; + font-size: 0.85em; + font-weight: normal; + vertical-align: middle; +} +div.sheet-subtag{ + display: block; + font-style: italic; + color: #888888; +} +div.sheet-boxnum{ + padding: 10px 2px 10px 2px; + border: none; + vertical-align: middle; +} +div.sheet-arme{ + display: none; +} +input[type="checkbox"].sheet-dispcheck:checked ~ div.sheet-arme{ + display: inline; +} +div.sheet-sortdesc{ + display: none; + position: absolute; + padding: 2px; + width: 590px; + height: 430px; + border: 2px solid #DD5633; + border-radius: 6px; + background: #EEEEEE; + z-index: 10; + left: -595px; + top: -410px; + box-shadow: 5px 5px 30px black; + resize: both; + overflow: auto; +} +input[type="checkbox"].sheet-dispcheck:checked ~ div.sheet-sortdesc{ + display: inline-block; +} +div.sheet-pactedesc{ + display: none; + position: absolute; + padding: 2px; + width: 560px; + height: 470px; + border: 2px solid #DD5633; + border-radius: 6px; + background: #EEEEEE; + z-index: 10; + left: -455px; + top: -400px; + box-shadow: 5px 5px 30px black; + resize: both; + overflow: auto; +} +input[type="checkbox"].sheet-dispcheck:checked ~ div.sheet-pactedesc{ + display: inline-block; +} +div.sheet-regledesc{ + display: none; + position: absolute; + padding: 2px; + width: 790px; + height: 450px; + border: 2px solid #DD5633; + border-radius: 6px; + background: #EEEEEE; + z-index: 10; + left: -735px; + top: 0px; + box-shadow: 5px 5px 30px black; + resize: both; + overflow: auto; +} +input[type="checkbox"].sheet-dispcheck:checked ~ div.sheet-regledesc{ + display: inline-block; +} +/********* ONGLETS ************************************************/ +div.sheet-onglvie, +div.sheet-ongltalent, +div.sheet-onglequip, +div.sheet-onglcompa, +div.sheet-onglprofane, +div.sheet-ongldivine, +div.sheet-onglpacte{ + display: none; + width: 100%; + text-align: left; + vertical-align: middle; + margin: 1px 0px 1px 0px; + border: 1px solid #DD5633; + border-radius: 0px 6px 6px 6px; + padding: 3px; + z-index: 0; +} +input[type="radio"].sheet-onglvie, +input[type="radio"].sheet-ongltalent, +input[type="radio"].sheet-onglequip, +input[type="radio"].sheet-onglcompa{ + margin: 0; + margin-top: -4px; + margin-bottom: -4px; + padding: 0; + display: inline-block; + opacity: 0; + width: 110px; + height: 25px; + z-index: 2; +} +input[type="radio"].sheet-onglvie + span, +input[type="radio"].sheet-ongltalent + span, +input[type="radio"].sheet-onglequip + span, +input[type="radio"].sheet-onglcompa + span{ + color: #666666; + background-color: #BBBBBB; + font-size:15px; + text-align:center; + display: inline-block; + width: 110px; + height: 28px; + margin: 0; + margin-left: -110px; + margin-right: -5px; + padding:0; + margin-bottom: -2px; + padding-top: 5px; + font-size: 0.9em; + text-transform: uppercase; + border-style: solid; + border-width: 1px; + border-left-color: #DDBBBB; + border-top-color: #DDBBBB; + border-right-color: #DDBBBB; + border-bottom-color: #DD5633; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + z-index: 1; +} +input[type="radio"].sheet-onglprofane, +input[type="radio"].sheet-ongldivine, +input[type="radio"].sheet-onglpacte{ + margin: 0; + margin-top: -4px; + margin-bottom: -4px; + padding: 0; + display: inline-block; + opacity: 0; + width: 140px; + height: 25px; + z-index: 2; +} +input[type="radio"].sheet-onglprofane + span, +input[type="radio"].sheet-ongldivine + span, +input[type="radio"].sheet-onglpacte + span { + color: #666666; + background-color: #BBBBBB; + font-size:15px; + text-align:center; + display: inline-block; + width: 140px; + height: 28px; + margin: 0; + margin-left: -140px; + margin-right: -5px; + padding:0; + margin-bottom: -2px; + padding-top: 5px; + font-size: 0.9em; + text-transform: uppercase; + border-style: solid; + border-width: 1px; + border-left-color: #DDBBBB; + border-top-color: #DDBBBB; + border-right-color: #DDBBBB; + border-bottom-color: #DD5633; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + z-index: 1; +} +input[type="radio"].sheet-onglvie:checked + span, +input[type="radio"].sheet-ongltalent:checked + span, +input[type="radio"].sheet-onglequip:checked + span, +input[type="radio"].sheet-onglprofane:checked + span, +input[type="radio"].sheet-ongldivine:checked + span, +input[type="radio"].sheet-onglpacte:checked + span, +input[type="radio"].sheet-onglcompa:checked + span { + font-weight: bold; + color: #DD5633; + background-color: white; + border-left-color: #DD5633; + border-top-color: #DD5633; + border-right-color: #DD5633; + border-bottom-color: white; +} +input[type="radio"].sheet-onglvie:checked ~ div.sheet-onglvie{ + display: block; +} +input[type="radio"].sheet-ongltalent:checked ~ div.sheet-ongltalent{ + display: block; +} +input[type="radio"].sheet-onglequip:checked ~ div.sheet-onglequip{ + display: block; +} +input[type="radio"].sheet-onglcompa:checked ~ div.sheet-onglcompa{ + display: block; +} +input[type="radio"].sheet-onglprofane:checked ~ div.sheet-onglprofane{ + display: block; +} +input[type="radio"].sheet-ongldivine:checked ~ div.sheet-ongldivine{ + display: block; +} +input[type="radio"].sheet-onglpacte:checked ~ div.sheet-onglpacte{ + display: block; +} +/********* INPUTS *************************************************/ +input{ + box-shadow: none; + text-shadow: none; + padding: 0; + margin: 0; + color: black; + font-family: cursive; + font-weight: normal; + border-radius: 0px; +} +input[type="text"]{ + padding: 0px 0px 1px 2px; + border-width: 0px 0px 1px 0px; + border-style: dotted; +} +input[type="text"].sheet-biginp{ + font-size: 1.2em; + font-weight: bold; +} +input[type="number"]{ + text-align: right; + border-width: 0px 1px 1px 0px; + border-style: dotted; +} +input[type="number"].sheet-inpnum1c{ + width: 25px; +} +input[type="number"].sheet-inpnum2c{ + width: 35px; +} +input[type="number"].sheet-inpnum2cbig{ + width: 50px; + font-size: 1.5em; +} +input[type="number"].sheet-inpnum2cboxed{ + /* border: 1px solid black; */ + width: 35px; +} +input[type="checkbox"].sheet-dispcheck{ + width: 18px; + height: 18px; + max-width: 18px; + opacity: 0; + z-index: 2; +} +input[type="checkbox"].sheet-dispcheck + span{ + display: inline-block; + text-align: center; + margin-left: -18px; + width: 18px; + max-width: 18px; + height: 18px; + z-index: 1; + font-family: pictos; + color: #888888; +} +input[type="checkbox"].sheet-dispcheck:hover + span{ + color: black; +} +input[type="checkbox"].sheet-dispcheck:checked + span{ + font-weight: bold; + color: black; +} +/******* TEXTAREA *************************************************/ +textarea{ + box-shadow: none; + text-shadow: none; + padding: 0; + margin: 0; + color: black; + font-family: cursive; + font-weight: normal; + border-radius: 0px; +} +textarea.sheet-textdesc{ + font-family: 'Verdana', serif; + font-size: 0.9em; + height: 22px; + resize: none; +} +input[type="checkbox"]:checked ~ textarea.sheet-textdesc{ + height: 140px; +} +textarea.sheet-textsort{ + font-family: 'Verdana', serif; + font-size: 0.9em; + resize: none; + height: calc(100% - 30px); + width: 100%; +} +/******* SELECTS *************************************************/ +select{ + box-shadow: none; + text-shadow: none; + padding: 0px 0px 1px 2px; + margin: 0; + color: black; + width: 100px; + height: 22px; + font-family: cursive; + font-size: 1em; + border-radius: 0; + border-width: 0px 1px 1px 0px; + border-style: dotted; +} +/*** BOUTONS *********************************************************/ +button[type=roll].sheet-btRoll20, +button[type=roll].sheet-btRoll20big, +button[type=roll].sheet-btRoll6, +button[type=roll].sheet-btRoll8, +button[type=roll].sheet-btRoll8small, +button[type=roll].sheet-btDesc, +button[type=roll].sheet-btLien{ + color: black; + padding:0; + margin: 0; + border:none; + background:none; + opacity: 0.5; +} +button[type=roll]:hover{ + opacity: 1.0; +} +button[type=roll].sheet-btRoll20 { + height: 2em; + width: 2em; + line-height: 2em; +} +button[type=roll].sheet-btRoll20:before { + font-size: 2em; +} +button[type=roll].sheet-btRoll20big{ + height: 3em; + width: 3em; + line-height: 3em; +} +button[type=roll].sheet-btRoll20big:before { + font-size: 3em; +} +button[type=roll].sheet-btRoll6:before{ + font-family: "dicefontd6"; + font-size: 1.6em; + content: 'e'; +} +button[type=roll].sheet-btRoll8{ + height: 2em; + width: 2em; + line-height: 2em; +} +button[type=roll].sheet-btRoll8:before{ + font-family: "dicefontd8"; + font-size: 2em; + content: 'h'; +} +button[type=roll].sheet-btRoll8small{ + height: 1em; + width: 1em; + vertical-align: middle; +} +button[type=roll].sheet-btRoll8small:before{ + font-family: "dicefontd8"; + font-size: 1em; + content: 'h'; +} +button[type=roll].sheet-btDesc{ + color: black; + height: 18px; + width: 18px; + line-height: 16px; + opacity: 0.4; +} +button[type=roll].sheet-btDesc:before{ + font-family: "Pictos"; + font-size: 1.0em; + content: 'i'; +} +button[type=roll].sheet-btDesc:hover{ + opacity: 1.0; +} +button[type=roll].sheet-btLien:before{ + font-family: "Pictos"; + font-size: 0.9em; + content: 'G'; + width: 1em; + vertical-align: top; +} +button[type=roll].sheet-btLien:hover{ + opacity: 1.0; +} +/* Formatage des boutons de fieldset */ +.charsheet .repcontrol_add, +.charsheet .repcontrol_edit, +.charsheet .repcontrol_del{ + opacity: 0.5; + display: inline; + background: white; + box-shadow: none; + border: 1px solid black; + border-radius: 6px; + font-size:0.9em; + height:2.0em; + margin-bottom: 4px; + color: black; +} +.charsheet .repcontrol_add:hover, +.charsheet .repcontrol_edit:hover, +.charsheet .repcontrol_del:hover{ + opacity: 1.0; +} +/******************** DOTS ******************/ +.sheet-dots { + display: block; +} +.sheet-dots input[type="radio"] { + position: absolute; + opacity: 0; + z-index: 1; +} +.sheet-dots input[type="radio"], +.sheet-dots input[type="radio"] + span { + width: 10px; + height: 10px; + margin: 4px -1px; +} +.sheet-dots input[type="radio"] + span { + display: inline-block; + vertical-align: top; + position: relative; + border: none; +} +.sheet-dots input[type="radio"]:not([value="0"]) + span { + border-radius: 50%; + background-color: rgba(0,0,0,.1); + border: 1px solid black; +} +.sheet-dots input[type="radio"]:not([value="0"]) + span::before { + content: " "; + position: absolute; + top: 50%; + left: 50%; + height: 4px; + width: 4px; + margin-left: -2px; + margin-top: -2px; + background: black; + border-radius: 50%; +} +.sheet-dots input[type="radio"]:checked ~ input[type="radio"] + span::before { + background: transparent; +} +.sheet-dots input[type="radio"][value="0"] + span:before { + content: "x"; + font-size: 11px; + position: relative; + top: -5px; + left: 1px; + opacity: 0; +} +.sheet-dots:hover input[type="radio"][value="0"] + span:before { + opacity: 1; +} +.sheet-rolltemplate-jet table{ + background: white; + border: 1px solid #DD5633; + border-radius: 6px; + width: 100%; + padding: 2px; + font-family: 'Verdana'; + color: black; + font-size: 0.9em; +} +.sheet-rolltemplate-jet tr{ + padding-top: 2px; + padding-bottom: 2px; + padding-right: 0px; + padding-left: 0px; +} +.sheet-rolltemplate-jet th{ + padding: 3px; + font-size: 1.1em; + text-align: center; + font-family: 'Contrail One'; + color: white; + background: #DD5633; +} +.sheet-rolltemplate-jet td{ + padding: 2px; + text-align: left; +} +.sheet-rolltemplate-jet td.sheet-tcat{ + color: #DD5633; + font-style: italic; + text-align: right; + border-right: 1px dashed #DD5633; +} +.sheet-rolltemplate-jet .sheet-subheader{ + font-style: italic; + text-align: right; + border-bottom: 1px dashed #DD5633; + color: #DD5633; +} +.sheet-rolltemplate-jet .sheet-desctitre{ + font-style: italic; + text-align: right; + border-bottom: 1px dashed #DD5633; + border-top: 1px solid #DD5633; + color: #DD5633; +} +.sheet-rolltemplate-jet div.sheet-jetdesc{ + font-family: 'Verdana', serif; + font-size: 0.9em; + max-height: 140px; + overflow-y: auto; +} +.sheet-rolltemplate-jet .inlinerollresult{ + font-size: 1em; + background-color: transparent; + border-width: 0px 0px 0px 0px; + border-top-style: none; + border-right-style: none; + border-left-style: none; + border-bottom-style: none; +} +.sheet-rolltemplate-jet .inlinerollresult.fullcrit{ + color: #3FB315; + font-size: 1em; + background-color: transparent; + border-width: 0px 0px 0px 0px; + border-top-style: none; + border-right-style: none; + border-left-style: none; + border-bottom-style: none; +} +.sheet-rolltemplate-jet .inlinerollresult.fullfail{ + color: #B31515; + font-size: 1em; + background-color: transparent; + border-width: 0px 0px 0px 0px; + border-top-style: none; + border-right-style: none; + border-left-style: none; + border-bottom-style: none; +} +.sheet-rolltemplate-jet .inlinerollresult.importantroll{ + color: #4A57ED; + font-size: 1em; + background-color: transparent; + border-width: 0px 0px 0px 0px; + border-top-style: none; + border-right-style: none; + border-left-style: none; + border-bottom-style: none; +} diff --git a/CahiersDuVastemonde/vastemonde.htm b/CahiersDuVastemonde/vastemonde.htm new file mode 100644 index 0000000000..3a4029e466 --- /dev/null +++ b/CahiersDuVastemonde/vastemonde.htm @@ -0,0 +1,1223 @@ + + +
+
+
+
+
+ +
Jet
+
+
+ +
En danger
+
+
+
+ +
Sauvegarde
+
+
+ x +
Initiative
+
+
+
+
+
+
Les Cahiers du Vastemonde
+ +
+
+
+
+
+
Nom
+ +
+
+
Peuple
+ +
+
+
Classe
+ + +
+
+
+
+
Destin
+
+
+ + / + +
+
+
+
+ +
+
+
+
+
+
Réputation
+
+
+
+ +
+
+
+
+
+
Classe d'Armure
+
+
+
+
+
+ +
+
+
+
+
+
Témérité
+
+ +
+
+
+
Protection
+
+ + B: +
+
+
+
+
+
+
+
+
Folie
+
+ +
+
+
+
+
Points de Magie
+
+
+
+ + / + +
+
+
+
+
+
Grâces Divines
+
+
+
+ + / + +
+
+
+
+
+
Points de Pacte
+
+
+
+ + / + +
+
+
+
+
+
+
+
+
+
+
+
+
+
Points de Vie
+
+
+
+ + / + +
+
+
+
+
+
+
+
+
Récupérations
+ +
+
+
+ +
+
+
+
+ + + + + + + + + + +
+
+ + + + + + + + + + +
+
+
+
+
+
+
Blessures
+ +
+
+
+ + + + + + + + + + +
+
+ + + + + + + + + + +
+
+
+
+
+
Repos court
+
+ +
Spartiate
+
+
+ +
Correct
+
+
+ +
Confortable
+
+
+ +
Douillet
+
+
+ +
Grand luxe
+
+
+
+
+
+
Risques
+
+ +
Classe d’armure -2 (soi ou un allié)
+
+
+ +
Dégâts +1d8 (Rmaj) ou +1 (Rmin)
+
+
+ +
Deuxième manoeuvre
+
+
+ +
Ignorer en danger (soi ou un allié)
+
+
+ +
Initiative +1d8
+
+
+ +
Seuil d’attaque +2 (soi ou un allié)
+
+
+ +
Prouesse physique +2 (soi ou un allié)
+
+
+ +
Points de vie +2 (soi ou un allié)
+
+
+
+
Blessure
+
+ +
+
Réussite crit.
+
+ +
+
Échec crit.
+
+ +
+
+
+
+
+ Lignes de vie + Talents + Inventaire + Familiers +
+ +
+
+ +
+
+
+
+ +
+
+ + + s + +
+
+
+
+ +
+
+ + ➳ +
+ + + + d + + +
+
+
+ + s + +
+
+
+
+ +
+
+ + + s + +
+
+
+
+
+ Magie Profane + Magie Divine + Pactes Démon. +
+ +
+
+ + +
+ s +
+ Sort : + +
+
+ +
+
+
+
+ +
+
Dieu
+ +
+
+
Domaines
+
+
Capacités spéciales et Pouvoirs :
+
+
+ s + +
+
+
+
+ +
+
Pouvoirs de pactes
+ s +
+
Mon action est projetée dans le futur
+
+ • je tire une flèche, mais elle ne file le long de la trajectoire donnée que six heures plus tard
+ • je détruis un mur de pierre qui ne tombera que dans un mois
+ • j'écris un message sur un mur qui apparaîtra dans un an
+ • je vends la peau de l'ours
+
Mon action est projetée dans l'espace
+
+ • je crochète une serrure à distance
+ • je tape sur l'épaule de quelqu'un en vue
+ • je chuchote et me fais entendre d'une cible à plusieurs mètres de là
+
Mon action n'est remarquée par personne
+
+ • je change de vêtements sans que personne ne s'en rende compte
+ • je pousse un hurlement sans qu'une foule sache qu'il provient de vous
+ • je peints une marque sur une porte sans se faire voir
+
Mon action a des capacités étranges ou décalées
+
+ • je joue d'un instrument et des papillons colorés volent partout dans les airs
+ • je porte des vêtements qui semblent s'animer de flammes
+ • je lance des coups d'épée accompagnés d'un rugissement terrifiant
+
Mon action émane d'une autre source
+
+ • je crie, mais le son émane de quelqu'un d'autre
+ • je tire une flèche, mais c'est d'un autre arc que part la flèche
+ • je vide ma bouteille de poison, mais il jaillit du pichet de la serveuse
+
Mon action est plus rapide
+
+ • je crochète une serrure complexe en quelques secondes
+ • je cours à la vitesse d'un guépard
+ • je condamne solidement une porte en quelques instants
+
Mon action agit sur une plus grande distance
+
+ • je déclame un discours qui porte à des centaines de mètres
+ • je lance des objets en l'air qui s'étalent sur des dizaines de mètres
+ • je tire une flèche sur trois kilomètres
+
Mon action agit sur plus de cibles
+
+ • je soigne plusieurs blessés en même temps
+ • je toque brutalement à la porte d'une dizaine de maisons
+ • je désarme les dix soldats qui m'entourent d'une manoeuvre habile
+
Mon action est multipliée
+
+ • je murmure une phrase qui est répétée cent fois au même instant à l'endroit où je me trouve
+ • je donne dix coups d'épée sur une corde alors que je ne viens d'en porter qu'un
+ • je fais des petits pains... plein
+
Mon action est amplifiée
+
+ • je tape sur une porte avec mon poing comme si c'était le projectile d'une catapulte
+ • je tracte une charette comme si j'avais la force de dix hommes
+ • je hurle comme un millier de soldats
+
Mon action dure dans le temps
+
+ • j'exerce une pression sur une porte qui continue de s'exercer bien après que je sois sorti de la pièce
+ • je retiens ma respiration pendant de longues minutes
+ • j'éclaire une zone qui le restera pendant des jours
+
Mon action est simulée
+
+ • je file un coup de poing au chef des gardes sans qu'il n'impacte
+ • je me tranche la gorge sans me blesser réellement
+ • je saute dans une rivière alors que je suis resté au bord de l'eau
+
Mon action n'affecte qu'une cible précise
+
+ • je tire un carreau qui ne blessera que le Roi
+ • j'allume un feu qui ne blessera que des gobelins
+ • je transperce des sacs de blé mais seul celui ne contenant pas que du blé sera affecté
+
Mon action se passe d'accessoire matériel
+
+ • je crochète une porte sans outil
+ • je tire une flèche sans arc
+ • je joue d'un instrument sans l'avoir sur moi
+
Mon action affecte l'esprit
+
+ • je parle à quelqu'un... dans sa tête
+ • je raconte un souvenir qui s'incruste dans l'esprit de mon interlocuteur comme si il l'avait vécu
+ • je chante une chanson idiote que les gens se sentiront obligés de répéter
+
Mon action est soumise à des conditions
+
+ • je me réveille debout et en armure si quelqu'un pénètre dans ma chambre
+ • j'appuie sur la clanche d'une porte qui ne s'ouvre que si personne n'est derrière
+ • je profère des insultes envers un soldat prononcées seulement s'il a le sang de mon frère sur les mains
+
Mon action ignore certains obstacles
+
+ • je tire une boulette de papier qui passe à travers les murs
+ • je passe ma main à travers le bois pour retirer le crochet d'une porte
+ • je donne des coups de lance qui passent au travers du métal
+
Mon action se réalise dans le passé (sans l'affecter)
+
+ • j'écoute les délibérations du conseil qui s'est déroulé hier
+ • je regarde l'arrivée d'une lame mercenaire dans la ville, alors que l'évènement date d'un mois
+ • je copie un tableau qui a été détruit il y a cinquante ans
+
Mon action est répétée
+
+ • je fabrique une grue en papier, cela se répète sur les cinq mille qui me restent à faire
+ • je façonne un lingot de fer, le reste de la fournée se fait tout seul
+ • je tape contre un mur au bélier, l'impact se répète des dizaines de fois par la suite
+
Mon action se passe de ressources
+
+ • j'allume un feu de camp qui ne consume pas le bois
+ • je tire des flèches sans que mon carquois ne se vide
+ • je bois, jusqu'à plus soif, car le liquide dans ma bouteille ne se tarit pas
+
+
+
+
+
Avec
+
+
+
Pacte
+
+
+
+
+
+
+ + +
{{character}} {{dicepool}}
{{roll}} Success(es)
Difficulty{{diff}}
+ {{#perso}} + + + + {{/perso}} + + {{#subtags}} + + {{/subtags}} + {{#rollGreater() seuil 0}} + + {{/rollGreater() seuil 0}} + {{#jetdanger}} + + + + + {{/jetdanger}} + {{#jet}} + + + + + {{/jet}} + {{#initiative}} + + {{/initiative}} + {{#repos}} + + {{/repos}} + {{#sauvegarde}} + + + + + {{/sauvegarde}} + {{#degats}} + + {{/degats}} + {{#rollTotal() arme 1}} + + + + + {{/rollTotal() arme 1}} + {{#risquejet}} + + {{#^rollTotal() risquejet risquenum}} + + {{/^rollTotal() risquejet risquenum}} + {{/risquejet}} + {{#blessure}} + + + + {{/blessure}} + {{#reussite}} + + {{/reussite}} + {{#echec}} + + {{/echec}} + {{#description}} + + + {{/description}} +
{{perso}}
{{name}}
{{subtags}}
Seuil{{seuil}}
Jet + {{jetdanger}} + {{#^rollLess() jetdanger 20}} + (échec) + {{/^rollLess() jetdanger 20}} + {{#rollTotal() jetdanger 2}} + (réussite critique) + {{/rollTotal() jetdanger 2}} + {{#rollBetween() jetdanger 3 19}} + {{#rollGreater() seuil 0}} + {{#rollGreater() jetdanger 2}} + {{#rollGreater() jetdanger seuil}} + (réussite mineure) + {{/rollGreater() jetdanger seuil}} + {{#^rollGreater() jetdanger seuil}} + (réussite majeure) + {{/^rollGreater() jetdanger seuil}} + {{/rollGreater() jetdanger 2}} + {{/rollGreater() seuil 0}} + {{/rollBetween() jetdanger 3 19}} +
Jet + {{jet}} + {{#^rollLess() jet 20}} + (échec) + {{/^rollLess() jet 20}} + {{#rollTotal() jet 1}} + (réussite critique) + {{/rollTotal() jet 1}} + {{#rollBetween() jet 2 19}} + {{#rollGreater() seuil 0}} + {{#rollGreater() jet 1}} + {{#rollGreater() jet seuil}} + (réussite mineure) + {{/rollGreater() jet seuil}} + {{#^rollGreater() jet seuil}} + (réussite majeure) + {{/^rollGreater() jet seuil}} + {{/rollGreater() jet 1}} + {{/rollGreater() seuil 0}} + {{/rollBetween() jet 2 19}} +
Jet{{initiative}}
Points de Vie+{{repos}}
Jet + {{sauvegarde}} + {{#rollGreater() sauvegarde 4}} + (réussite) + {{/rollGreater() sauvegarde 4}} + {{#rollLess() sauvegarde 5}} + (échec) + {{/rollLess() sauvegarde 5}} +
Dégâts{{degats}}
Dégâts + {{degatsdesc}} + {{#rollTotal() brutal 1}} + Brutal/Précis + {{/rollTotal() brutal 1}} +
Avantage + {{#rollTotal() risquenum 1}} + Classe d’armure -2 + {{/rollTotal() risquenum 1}} + {{#rollTotal() risquenum 2}} + Dégâts +{{desavde}} (Rmaj) ou +1 (Rmin) + {{/rollTotal() risquenum 2}} + {{#rollTotal() risquenum 3}} + Deuxième manoeuvre + {{/rollTotal() risquenum 3}} + {{#rollTotal() risquenum 4}} + Ignorer un état en danger (soi ou un allié) + {{/rollTotal() risquenum 4}} + {{#rollTotal() risquenum 5}} + Initiative +{{desavde}} + {{/rollTotal() risquenum 5}} + {{#rollTotal() risquenum 6}} + Seuil d’attaque +2 (soi ou un allié) + {{/rollTotal() risquenum 6}} + {{#rollTotal() risquenum 7}} + Prouesse physique +2 (soi ou un allié) + {{/rollTotal() risquenum 7}} + {{#rollTotal() risquenum 8}} + Points de vie +2 (soi ou un allié) + {{/rollTotal() risquenum 8}} +
Désavantage + {{#rollTotal() risquejet 1}} + Classe d’armure +2 + {{/rollTotal() risquejet 1}} + {{#rollTotal() risquejet 2}} + Dégâts -{{desavde}} ou 1 dégât reçu + {{/rollTotal() risquejet 2}} + {{#rollTotal() risquejet 3}} + Perte de la prochaine manoeuvre + {{/rollTotal() risquejet 3}} + {{#rollTotal() risquejet 4}} + En danger + {{/rollTotal() risquejet 4}} + {{#rollTotal() risquejet 5}} + Initiative -{{desavde}} + {{/rollTotal() risquejet 5}} + {{#rollTotal() risquejet 6}} + Seuil d’attaque -2 + {{/rollTotal() risquejet 6}} + {{#rollGreater() risquejet 6}} + Aucun + {{/rollGreater() risquejet 6}} +
Localisation + {{#rollBetween() localisation 1 3}} + Bras + {{/rollBetween() localisation 1 3}} + {{#rollTotal() localisation 4}} + Tête + {{/rollTotal() localisation 4}} + {{#rollBetween() localisation 5 6}} + Tronc + {{/rollBetween() localisation 5 6}} + {{#rollBetween() localisation 7 8}} + Jambes + {{/rollBetween() localisation 7 8}} +
Gravité{{blessure}}
+ {{#rollBetween() localisation 1 3}} + {{#rollTotal() blessure 1}}Égratignure{{/rollTotal() blessure 1}} + {{#rollTotal() blessure 2}}Vous lâchez l’objet que vous tenez dans la main{{/rollTotal() blessure 2}} + {{#rollTotal() blessure 3}}Vous perdez l’objet que vous tenez dans la main – vous ne le retrouverez qu’à la fin du combat{{/rollTotal() blessure 3}} + {{#rollTotal() blessure 4}}Vous perdez l’usage de la main pendant {{d4tours}} tours{{/rollTotal() blessure 4}} + {{#rollTotal() blessure 5}}Vous perdez l’usage du bras pendant {{d4tours}} tours{{/rollTotal() blessure 5}} + {{#rollTotal() blessure 6}}Vous perdez l’usage de la main jusqu’à la fin du combat{{/rollTotal() blessure 6}} + {{#rollTotal() blessure 7}}Vous perdez l’usage du bras jusqu’à la fin du combat{{/rollTotal() blessure 7}} + {{#rollTotal() blessure 8}}Vous perdez définitivement l’usage de la main{{/rollTotal() blessure 8}} + {{#rollTotal() blessure 9}}Vous perdez définitivement l’usage du bras{{/rollTotal() blessure 9}} + {{#rollTotal() blessure 10}}Vous serez mort dans {{d8tours}} tours si personne ne vous aide{{/rollTotal() blessure 10}} + {{#rollTotal() blessure 11}}Vous serez mort dans {{d4tours}} tours si personne ne vous aide{{/rollTotal() blessure 11}} + {{#rollGreater() blessure 12}}Vous mourez sur le coup à cause du choc{{/rollGreater() blessure 12}} + {{/rollBetween() localisation 1 3}} + {{#rollTotal() localisation 4}} + {{#rollTotal() blessure 1}}Estafilade{{/rollTotal() blessure 1}} + {{#rollTotal() blessure 2}}Vous perdez votre prochaine action{{/rollTotal() blessure 2}} + {{#rollTotal() blessure 3}}Vous ne pouvez rien faire durant tout le prochain tour{{/rollTotal() blessure 3}} + {{#rollTotal() blessure 4}}Vous êtes inconscient pendant {{d4tours}} tours{{/rollTotal() blessure 4}} + {{#rollTotal() blessure 5}}Vous êtes inconscient pendant {{d8tours}} tours{{/rollTotal() blessure 5}} + {{#rollTotal() blessure 6}}Vous perdez quelques dents et vous êtes en danger jusqu’à ce que la blessure soit soignée{{/rollTotal() blessure 6}} + {{#rollTotal() blessure 7}}Vous perdez un oeil ou une oreille – vous êtes désormais contraint pour tous vos jets de perception{{/rollTotal() blessure 7}} + {{#rollTotal() blessure 8}}Vous êtes inconscient au sol jusqu’à la fin du combat{{/rollTotal() blessure 8}} + {{#rollTotal() blessure 9}}Vous perdez un rang de Réputation{{/rollTotal() blessure 9}} + {{#rollTotal() blessure 10}}Vous serez mort dans {{d8tours}} tours si personne ne vous aide{{/rollTotal() blessure 10}} + {{#rollTotal() blessure 11}}Vous serez mort dans {{d4tours}} tours si personne ne vous aide{{/rollTotal() blessure 11}} + {{#rollGreater() blessure 12}}Vous mourez sur le coup à cause du choc{{/rollGreater() blessure 12}} + {{/rollTotal() localisation 4}} + {{#rollBetween() localisation 5 6}} + {{#rollTotal() blessure 1}}Contusion{{/rollTotal() blessure 1}} + {{#rollTotal() blessure 2}}Vous perdez votre prochaine manoeuvre{{/rollTotal() blessure 2}} + {{#rollTotal() blessure 3}}Vous perdez votre prochaine action{{/rollTotal() blessure 3}} + {{#rollTotal() blessure 4}}Vous tombez à terre et vous perdez la moitié de votre initiative{{/rollTotal() blessure 4}} + {{#rollTotal() blessure 5}}Vous ne pouvez rien faire durant tout le prochain tour{{/rollTotal() blessure 5}} + {{#rollTotal() blessure 6}}Vous avez mal partout et vous êtes en danger jusqu’à ce que la blessure soit soignée{{/rollTotal() blessure 6}} + {{#rollTotal() blessure 7}}Vous tombez au sol inconscient pendant {{d4tours}} tours{{/rollTotal() blessure 7}} + {{#rollTotal() blessure 8}}Un poumon est percé. Vous encaissez une blessure pour chaque action que vous entreprenez{{/rollTotal() blessure 8}} + {{#rollTotal() blessure 9}}Vous êtes inconscient au sol jusqu’à la fin du combat{{/rollTotal() blessure 9}} + {{#rollTotal() blessure 10}}Vous serez mort dans {{d8tours}} tours si personne ne vous aide{{/rollTotal() blessure 10}} + {{#rollTotal() blessure 11}}Vous serez mort dans {{d4tours}} tours si personne ne vous aide{{/rollTotal() blessure 11}} + {{#rollGreater() blessure 12}}Vous mourez sur le coup à cause du choc{{/rollGreater() blessure 12}} + {{/rollBetween() localisation 5 6}} + {{#rollBetween() localisation 7 8}} + {{#rollTotal() blessure 1}}Ecchymose{{/rollTotal() blessure 1}} + {{#rollTotal() blessure 2}}Vous perdez votre prochaine manoeuvre{{/rollTotal() blessure 2}} + {{#rollTotal() blessure 3}}Vous tombez à terre{{/rollTotal() blessure 3}} + {{#rollTotal() blessure 4}}Vous perdez la moitié de votre initiative{{/rollTotal() blessure 4}} + {{#rollTotal() blessure 5}}Chaque déplacement vous coûte deux manoeuvres{{/rollTotal() blessure 5}} + {{#rollTotal() blessure 6}}Vous perdez l’usage de la jambe jusqu’à la fin du combat et vous tombez à terre{{/rollTotal() blessure 6}} + {{#rollTotal() blessure 7}}Vous tombez à 0 point d’initiative et vous êtes en danger jusqu’à la fin du combat{{/rollTotal() blessure 7}} + {{#rollTotal() blessure 8}}Vous perdez définitivement l’usage de la jambe à partir du genou{{/rollTotal() blessure 8}} + {{#rollTotal() blessure 9}}Vous perdez définitivement l’usage de la jambe à partir du bassin{{/rollTotal() blessure 9}} + {{#rollTotal() blessure 10}}Vous serez mort dans {{d8tours}} tours si personne ne vous aide{{/rollTotal() blessure 10}} + {{#rollTotal() blessure 11}}Vous serez mort dans {{d4tours}} tours si personne ne vous aide{{/rollTotal() blessure 11}} + {{#rollGreater() blessure 12}}Vous mourez sur le coup à cause du choc{{/rollGreater() blessure 12}} + {{/rollBetween() localisation 7 8}} +
+ {{#rollTotal() reussite 1}}Doublez les dégâts des dés {{/rollTotal() reussite 1}} + {{#rollTotal() reussite 2}}Enchaînez avec une seconde attaque sur un autre adversaire à portée {{/rollTotal() reussite 2}} + {{#rollTotal() reussite 3}}Gagnez {{d8}} en initiative {{/rollTotal() reussite 3}} + {{#rollTotal() reussite 4}}Gagnez un bonus de 1 en classe d’armure jusqu’à la fin de la bataille {{/rollTotal() reussite 4}} + {{#rollTotal() reussite 5}}Infligez {{d8}} dégâts supplémentaires {{/rollTotal() reussite 5}} + {{#rollTotal() reussite 6}}Infligez les dégâts maximum {{/rollTotal() reussite 6}} + {{#rollTotal() reussite 7}}La cible est assommée net si sa puissance est inférieure à votre Réputation, sinon elle est étourdie et perd sa prochaine action {{/rollTotal() reussite 7}} + {{#rollTotal() reussite 8}}La cible est étourdie et perd sa prochaine action {{/rollTotal() reussite 8}} + {{#rollTotal() reussite 9}}La cible perd la moitié de son initiative {{/rollTotal() reussite 9}} + {{#rollTotal() reussite 10}}La cible perd son arme ou subit {{d8}} dégâts supplémentaires si c’est une arme naturelle {{/rollTotal() reussite 10}} + {{#rollTotal() reussite 11}}La cible subit une blessure (1d8) {{/rollTotal() reussite 11}} + {{#rollTotal() reussite 12}}La cible est à terre {{/rollTotal() reussite 12}} + {{#rollTotal() reussite 13}}Portez une seconde attaque sur le même adversaire {{/rollTotal() reussite 13}} + {{#rollTotal() reussite 14}}Récupérez {{d8}} points de vie {{/rollTotal() reussite 14}} + {{#rollTotal() reussite 15}}Vous avez une action supplémentaire en toute fin de tour, après tout le monde {{/rollTotal() reussite 15}} + {{#rollTotal() reussite 16}}Vous infligez +1 dégâts (Rmaj et Rmin) jusqu’à la fin du combat {{/rollTotal() reussite 16}} +
+ {{#rollTotal() echec 1}}Vous êtes contraint pendant {{d4}} actions {{/rollTotal() echec 1}} + {{#rollTotal() echec 2}}Vous êtes en danger pendant {{d4}} actions {{/rollTotal() echec 2}} + {{#rollTotal() echec 3}}Vous frappez un allié et lui infligez {{d8}} dégâts {{/rollTotal() echec 3}} + {{#rollTotal() echec 4}}Vous perdez {{d4}} manoeuvres {{/rollTotal() echec 4}} + {{#rollTotal() echec 5}}Vous perdez {{d8}} en initiative {{/rollTotal() echec 5}} + {{#rollTotal() echec 6}}Vous perdez la moitié de votre initiative {{/rollTotal() echec 6}} + {{#rollTotal() echec 7}}Vous perdez un dé de dégâts jusqu’à la fin de l’affrontement {{/rollTotal() echec 7}} + {{#rollTotal() echec 8}}Vous perdez votre arme qui vole à quelques mètres {{/rollTotal() echec 8}} + {{#rollTotal() echec 9}}Vous perdez votre prochaine action {{/rollTotal() echec 9}} + {{#rollTotal() echec 10}}Vous ratez complètement votre cible {{/rollTotal() echec 10}} + {{#rollTotal() echec 11}}Vous subissez 1 dégât pour chaque action que vous entreprenez désormais {{/rollTotal() echec 11}} + {{#rollTotal() echec 12}}Vous subissez {{d4}} dégâts {{/rollTotal() echec 12}} + {{#rollTotal() echec 13}}Vous subissez {{d8}} dégâts {{/rollTotal() echec 13}} + {{#rollTotal() echec 14}}Vous subissez une blessure (1d8) {{/rollTotal() echec 14}} + {{#rollTotal() echec 15}}Vous tombez au sol {{/rollTotal() echec 15}} + {{#rollTotal() echec 16}}Vous vous assommez et vous restez étendu au sol pendant {{d8}} tours avant de reprendre conscience{{/rollTotal() echec 16}} +
Description/Effets
{{description}}
+
diff --git a/CahiersDuVastemonde/vastemonde.png b/CahiersDuVastemonde/vastemonde.png new file mode 100644 index 0000000000..9d943e6009 Binary files /dev/null and b/CahiersDuVastemonde/vastemonde.png differ diff --git a/CypherSystem/CypherSystem.css b/CypherSystem/CypherSystem.css index dde87bf23a..10603790cd 100644 --- a/CypherSystem/CypherSystem.css +++ b/CypherSystem/CypherSystem.css @@ -644,9 +644,50 @@ input[type=radio].sheet-styleNumenera:checked ~ div.sheet-main img.sheet-gamelog input[type=radio].sheet-styleTheStrange:checked ~ div.sheet-main img.sheet-gamelogoTheStrange{ display: block; } +/************ DESCRIPTION TAILLE VARIABLE **************************/ +input[type="checkbox"].sheet-dispcheck{ + width: 18px; + height: 18px; + max-width: 18px; + opacity: 0; + z-index: 2; +} +input[type="checkbox"].sheet-dispcheck + span{ + display: inline-block; + text-align: center; + margin-left: -18px; + width: 18px; + max-width: 18px; + height: 18px; + z-index: 1; + font-family: pictos; + color: #888888; + font-size: 15px; +} +input[type="checkbox"].sheet-dispcheck:hover + span{ + color: black; +} +input[type="checkbox"].sheet-dispcheck:checked + span{ + font-weight: bold; + color: black; +} +textarea{ + box-shadow: none; + text-shadow: none; + padding: 1px; + margin: 2px; +} +textarea.sheet-textdesc{ + height: 22px; + resize: none; + font-size: 12px; +} +input[type="checkbox"].sheet-dispcheck:checked ~ textarea.sheet-textdesc{ + height: 140px; +} /* Roll templates */ .sheet-rolltemplate-cyphMsg table { - width: 189px; + width: 100%; padding: 2px; border-top-left-radius:6px; border-top-right-radius:6px; @@ -675,7 +716,7 @@ input[type=radio].sheet-styleTheStrange:checked ~ div.sheet-main img.sheet-game margin-bottom: 6px; } .sheet-rolltemplate-cyphInit table { - width: 189px; + width: 100%; padding: 2px; border-top-left-radius:6px; border-top-right-radius:6px; @@ -704,7 +745,7 @@ input[type=radio].sheet-styleTheStrange:checked ~ div.sheet-main img.sheet-game margin-bottom: 6px; } .sheet-rolltemplate-cyphRecovery table { - width: 189px; + width: 100%; padding: 2px; border-top-left-radius:6px; border-top-right-radius:6px; @@ -733,7 +774,7 @@ input[type=radio].sheet-styleTheStrange:checked ~ div.sheet-main img.sheet-game margin-bottom: 6px; } .sheet-rolltemplate-cyphDesc table { - width: 189px; + width: 100%; padding: 2px; border-top-left-radius:6px; border-top-right-radius:6px; @@ -765,7 +806,7 @@ input[type=radio].sheet-styleTheStrange:checked ~ div.sheet-main img.sheet-game font-weight: bold; } .sheet-rolltemplate-cyphBasicRoll table { - width: 189px; + width: 100%; padding: 2px; border-top-left-radius:6px; border-top-right-radius:6px; @@ -838,3 +879,9 @@ input[type=radio].sheet-styleTheStrange:checked ~ div.sheet-main img.sheet-game background-image: -ms-linear-gradient(left, rgba(0,0,0,0), rgba(5,109,161,1.75), rgba(0,0,0,0)); background-image: -o-linear-gradient(left, rgba(0,0,0,0), rgba(5,109,161,1.75), rgba(0,0,0,0)); } +.sheet-rolltemplate-cyphDesc div.sheet-jetdesc{ + font-family: 'Verdana', serif; + font-size: 0.9em; + max-height: 140px; + overflow-y: auto; +} \ No newline at end of file diff --git a/CypherSystem/CypherSystem.htm b/CypherSystem/CypherSystem.htm index efe2aa9da7..6f20dc0ccd 100644 --- a/CypherSystem/CypherSystem.htm +++ b/CypherSystem/CypherSystem.htm @@ -11,7 +11,7 @@ Assets bonus Costs -
- v1.5 (2015-12-21)
+
- v1.6 (2016-02-21)
+
+ + +
+ +
+
+
Dégâts
+ + +
+
+
Armure
+ +
+
+
Niveau
+ +
+
+
PX
+ + / + +
+
+ + +
PV
+ + / + + +
Base
+ +
+
+
+ +
+
+ + +
+ +
+ +
+ +
+ +
+ + +
+ + +
+
+ + +
+ +
+ +
+ +
+ +
+ + +
+ + +
+
+ + +
+ +
+ +
+ +
+ +
+ + +
+ + +
+
+ + +
+ +
+ +
+ +
+ +
+ + +
+ + +
+
+ + +
+ +
+ +
+ +
+ +
+ + +
+ + +
+
+ + +
+ +
+ +
+ +
+ +
+ + +
+ + +
+
+
+ +
+ +
+
Alignement
+
+
+ +
+ +
+ + +
+
Peuple
+
+
+ +
+ +
+ + +
+
Liens
+
+
+
+ +
+
+
+ +
+ + +
+
Matériel
+ + + + + / + + Charge + + + Base +
+
+
+ + + +
+
+
+
+ +
+ +
+
Actions
+
+
+
+ + + +
+
+
+ +
+
+ + +
+
Sorts
+
+
+
+ + + +
+
diff --git a/DungeonWorldFrench/dwfr.png b/DungeonWorldFrench/dwfr.png new file mode 100644 index 0000000000..947c5c2579 Binary files /dev/null and b/DungeonWorldFrench/dwfr.png differ diff --git a/DungeonWorldFrench/sheet.json b/DungeonWorldFrench/sheet.json new file mode 100644 index 0000000000..38953ea307 --- /dev/null +++ b/DungeonWorldFrench/sheet.json @@ -0,0 +1,8 @@ +{ + "html": "dwfr.htm", + "css": "dwfr.css", + "authors": "Willem den Besten (Morenim), Devindra Payment (@Ardnived), Natha (french adaptation)", + "roll20userid": "298278,75857", + "preview": "dwfr.png", + "instructions": "Feuille de personnage FR pour Dungeon World, adaptée de la feuille VO. Consultez le [readme](ReadMe.md). v1.0 (2016-02-21)" +} diff --git a/New World of Darkness Offical/NWoD_Official.css b/New World of Darkness Official/NWoD_Official.css similarity index 100% rename from New World of Darkness Offical/NWoD_Official.css rename to New World of Darkness Official/NWoD_Official.css diff --git a/New World of Darkness Offical/NWoD_Official.html b/New World of Darkness Official/NWoD_Official.html similarity index 100% rename from New World of Darkness Offical/NWoD_Official.html rename to New World of Darkness Official/NWoD_Official.html diff --git a/New World of Darkness Offical/NWoD_Official.png b/New World of Darkness Official/NWoD_Official.png similarity index 100% rename from New World of Darkness Offical/NWoD_Official.png rename to New World of Darkness Official/NWoD_Official.png diff --git a/New World of Darkness Offical/sheet.json b/New World of Darkness Official/sheet.json similarity index 100% rename from New World of Darkness Offical/sheet.json rename to New World of Darkness Official/sheet.json diff --git a/Nightshade Academy/nightshade-preview.png b/Nightshade Academy/nightshade-preview.png new file mode 100644 index 0000000000..a8a99a830d Binary files /dev/null and b/Nightshade Academy/nightshade-preview.png differ diff --git a/Nightshade Academy/nightshade.css b/Nightshade Academy/nightshade.css new file mode 100644 index 0000000000..1a01cc70f3 --- /dev/null +++ b/Nightshade Academy/nightshade.css @@ -0,0 +1,112 @@ +/* === GENERAL === */ +.charsheet { + min-width: 800px; +} + +.sheet-header { + margin-bottom: 4px; + padding: 2px 4px; + + background: black; + color: white; + font-weight: bold; +} + +.sheet-section { + float: left; + width: 100%; + + margin: 4px 0; + padding: 1px; + box-sizing: border-box; +} + +.sheet-half { + max-width: 50%; +} + +.sheet-break { + clear: both; +} + +label, +select { + margin: 0; +} + +textarea { + margin: 0; + width: 100%; + height: 400px; + resize: vertical; + box-sizing: border-box; +} + +.sheet-repitem, +.repitem { + margin-bottom: 2px; +} + +/* Override Roll20 Button styling for something less conspicious */ +button { + height: 22px; + line-height: 16px; + margin: 0 !important; + border-radius: 0 !important; + background-image: none !important; + border: none !important; + box-shadow: none !important; +} + +.repitem button { + height: 28px; + line-height: 20px; +} + +/* === BASIC === */ +.sheet-section-basic tr { + margin-left: 5px; +} + +.sheet-section-basic td { + padding: 2px; +} + +.sheet-section-basic input[type="number"] { + width: 100px; +} + +.sheet-section-basic .sheet-column { + width: calc(50% - 200px); +} + +/* === SKILLS === */ +.sheet-section-skills { +} + +.sheet-skill-name { + width: calc(100% - 130px); +} + +.sheet-skill-rating { + width: 90px; +} + +/* === ASPECT === */ +.sheet-section-aspects input { + width: 100%; +} + +/* === ATTRIBUTES (GIFTS/FLAWS) === */ +.sheet-section-attributes input { + width: 100%; +} + +/* === BACKLASH === */ +.sheet-section-backlash { + float: right; +} + +.sheet-section-backlash input { + width: 100%; +} diff --git a/Nightshade Academy/nightshade.html b/Nightshade Academy/nightshade.html new file mode 100644 index 0000000000..cc77612606 --- /dev/null +++ b/Nightshade Academy/nightshade.html @@ -0,0 +1,97 @@ +
+
Basic Info
+ + + + + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+
+ +
+ +
+
Aspects
+
+ +
+
+ +
+
Gifts
+
+ +
+
+ +
+
+ +
+
+ +
+
Flaws
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+
Backlash
+
+ +
+
+ +
+
Skills
+
+ + + +
+
+
diff --git a/Nightshade Academy/sheet.json b/Nightshade Academy/sheet.json new file mode 100644 index 0000000000..42059742f1 --- /dev/null +++ b/Nightshade Academy/sheet.json @@ -0,0 +1,7 @@ +{ + "html": "nightshade.html", + "css": "nightshade.css", + "authors": "Eric Finn, based on work by Andrew Bailey (krathognis) and Devindra Payment (@Ardnived)", + "instructions": "Nightshade Academy Character Sheet", + "preview": "nightshade-preview.png" +} diff --git a/Oltree-FR/Oltree.html b/Oltree-FR/Oltree.html index f1a1f10b80..6691339387 100644 --- a/Oltree-FR/Oltree.html +++ b/Oltree-FR/Oltree.html @@ -3,7 +3,7 @@ - + @@ -244,7 +244,7 @@ - + diff --git a/Oltree-FR/ReadMe.md b/Oltree-FR/ReadMe.md index 898ae3ee5f..a780f005b1 100644 --- a/Oltree-FR/ReadMe.md +++ b/Oltree-FR/ReadMe.md @@ -3,6 +3,9 @@ Feuille de personnage pour Oltréé! Un jeu de rôle créé par Le Grümph. Plus d'informations : http://www.legrog.org/jeux/oltree/oltree-fr +##v1.2 (2016-02-02) +Correction d'un bug d'affichage du dé d'exaltation sur le jet de soldat. + ##v1.1 (2016-02-02) Ajout des métiers du compagnon. Ceux-ci sont marqué d'un * pour les reconnaitre. diff --git a/Pathfinder-Neceros/pathfinder-neceros.css b/Pathfinder-Neceros/pathfinder-neceros.css index 173a381878..5ee2742bf5 100644 --- a/Pathfinder-Neceros/pathfinder-neceros.css +++ b/Pathfinder-Neceros/pathfinder-neceros.css @@ -11,6 +11,9 @@ .sheet-buffs2-show:not(:checked)~.sheet-buffs2 { display: none; } +.sheet-expand-show:checked ~div .sheet-sect-show:checked ~.sheet-expand { + display:none; +} .sheet-table { display: table; width: 100%; @@ -20,7 +23,6 @@ div.repitem.repitembroken, .sheet-repeating-fields div.repitem.repitembroken { border:3px dashed red !important; - } .sheet-table-buff { display: table; @@ -66,17 +68,22 @@ div.repitem.repitembroken, .sheet-center { text-align: center; } - /* this is ignored even with !important */ div.sheet-section.sheet-section-core div.sheet-table-flow{ overflow-x:auto; } - +span.sheet-table-data.sheet-entry-wide input, +span.sheet-entry-wide input, +span.sheet-table-data.sheet-entry-wide input[type="text"], +span.sheet-entry-wide input[type="text"], +span.sheet-table-data.sheet-entry-wide textarea, +span.sheet-entry-wide textarea { + width:100%; +} .sheet-entry_med, input[type="text"].sheet-entry_med, -span.sheet-entry_med - { +span.sheet-entry_med { /*min-width:60px; - width:100px;*/ + width:100px;*/ width:8em; text-align:left; } @@ -101,9 +108,8 @@ span.sheet-table-data.sheet-divider-lg, span.sheet-table-data.sheet-divider { span.sheet-table-header.sheet-divider-lg,span.sheet-table-header.sheet-divider { vertical-align:bottom; } - span.sheet-table-header.sheet-buff-cell, span.sheet-table-data.sheet-buff-cell { - /*width:40px;*/ + /*width:40px;*/ /*width:3em;*/ min-width:2.5em; max-width:3.5em; @@ -137,7 +143,6 @@ span.sheet-table-data.sheet-buff-cell input[type="number"].sheet-calc { min-width:2.5em; max-width:3.5em; } - span.sheet-table-data.sheet-buff-cell textarea.sheet-skill-macro-text, span.sheet-table-data.sheet-buff-cell input[type="text"].sheet-skill-macro-text { text-align: left; @@ -158,7 +163,7 @@ span.sheet-table-data.sheet-buff-cell input[type="text"].sheet-skill-macro-text .sheet-table-row { display: table-row; vertical-align: bottom; - width: 100%; + width: 100%; } .sheet-buff-row { display: table-row; @@ -181,52 +186,43 @@ span.sheet-table-data.sheet-buff-cell input[type="text"].sheet-skill-macro-text min-width:70px; text-align: center; } - .sheet-select-small { font-size: .90em; height: 26px; padding: 0; } - input[type="text"], input[type="number"] { background-color: transparent; border: 0 solid #000; border-bottom-width: 1px; } - span.sheet-table-data.sheet-center, span.sheet-table-data { padding-left:1px; padding-right:1px; } - span.sheet-table-data.sheet-center input.sheet-calc, span.sheet-table-data input.sheet-calc , span.sheet-table-data.sheet-center input[readonly], -span.sheet-table-data input[readonly] -{ + span.sheet-table-data input[readonly] { margin-top:1px; margin-bottom:1px; } - /* color for disabled/sheet-calc */ - .sheet-calc, input[readonly] , input[type="text"].sheet-calc, input[type="number"].sheet-calc, input[type="text"]:disabled, input[type="number"]:disabled, input.sheet-calc, textarea.sheet-calc { - background-color: rgba(74, 100, 134, 0.28); - border-width: 0px; - color: #222; + background-color: rgba(74, 100, 134, 0.28); + border-width: 0px; + color: #222; padding-left:4px; padding-right:0px; text-align:left; min-width:2.5em; } - .charsheet input[type="number"]{ -moz-appearance: textfield; } - /* hide spinner for all disabled/sheet-calc */ .charsheet input.sheet-calc[type="number"]:hover, .charsheet input.sheet-calc[type="number"]:focus, @@ -236,7 +232,6 @@ input.sheet-calc, textarea.sheet-calc { -webkit-appearance: none; -moz-appearance: textfield; } - input[type="text"], select { width: 100%; margin: 0; @@ -415,8 +410,7 @@ input.sheet-spellclass-tab2:checked + span.sheet-spellclass-tab2 { } button, button:hover, -button:active -{ +button:active { background-image: none; } /*show and hide*/ @@ -428,10 +422,37 @@ input[type="checkbox"] + span:not(.sheet-not-sheet-show)::before { font-size: .85em; } input[type="checkbox"]:checked + span:not(.sheet-not-sheet-show)::before { - content: '▼'; + content: '▼'; } -input[type="checkbox"]:Hover + span:not(.sheet-not-sheet-show) { - color:#ff0000; +input[type="checkbox"]:hover + span:not(.sheet-not-sheet-show) { + color:#ff0000; +} +/* min/max repeating rows */ +input[type="checkbox"].sheet-expand-show + span:not(.sheet-not-sheet-show)::before { + content: '☰ )'; + display: inline-block; + width: auto; + font-size: .75em; + background-color: rgba(0, 0, 0, 0); + color: #000; + border-radius: 5px; + border: 1px solid #808080; + padding: 0 5px 1px 5px; + height:1.4em; + margin-bottom: 2px; + font-family: "Pictos"; +} +input[type="checkbox"].sheet-expand-show:checked + span:not(.sheet-not-sheet-show)::before { + content: '⚌ ('; + display: inline-block; + width: auto; + font-size: .75em; + background-color: #4a6486; + color: #FFF; + padding: 0 5px 2px 5px; + height:1.4em; + margin-bottom: 2px; + font-family: "Pictos"; } input[name*="condition"]:checked + b:not(.sheet-offCase), input[name*="notes"]:checked + b:not(.sheet-offCase), @@ -445,19 +466,18 @@ input[name*="check"]:checked + b:not(.sheet-offCase) { padding-bottom: 1px; padding-top: 1px; } - /*repeating item counter*/ .sheet-repeating-fields { - counter-reset: sheet-rep-items -1; + counter-reset: sheet-rep-items -1; } input[type="checkbox"].sheet-counted + span:not(.sheet-not-sheet-show)::before { - counter-increment: sheet-rep-items; - content: counter(sheet-rep-items) '. ►' !important; + counter-increment: sheet-rep-items; + content: counter(sheet-rep-items) '. ►' !important; width: auto !important; } input[type="checkbox"].sheet-counted:checked + span:not(.sheet-not-sheet-show)::before { - counter-increment: sheet-rep-items; - content: counter(sheet-rep-items) '. ▼' !important; + counter-increment: sheet-rep-items; + content: counter(sheet-rep-items) '. ▼' !important; width: auto !important; } /* end repeating item counter*/ @@ -503,7 +523,7 @@ textarea { .sheet-footer { text-align: center; font-size: xx-small; - background-color: #FFF8DC; + background-color: #FFF8DC; border: 1px #000 solid; border-radius: 3px; } @@ -520,12 +540,12 @@ textarea { margin: 0; resize:vertical; } -.charsheet .sheet-weapon-notes , +.charsheet .sheet-weapon-notes, .sheet-init-notes, .sheet-speed-notes { - height: 2.15em; - overflow: hidden; - margin: 0; + height: 2.15em; + overflow: hidden; + margin: 0; resize:vertical; } .charsheet .repcontainer .repitem { @@ -535,18 +555,28 @@ textarea { border-radius: 3px !important; } .charsheet button[type=roll] { - margin: 2px 2px 0 2px !important; + margin: 2px 2px 0 2px !important; } [data-groupname=repeating_class-ability] > button.btn.repcontrol_add::after { content: " New Class Ability"; } + +[data-groupname=repeating_mythic-ability] > button.btn.repcontrol_add::after { + content: " New Mythic Ability"; +} + [data-groupname=repeating_weapon] > button.btn.repcontrol_add::after { content: " New Weapon"; } [data-groupname=repeating_feat] > button.btn.repcontrol_add::after { content: " New Feat"; } + +[data-groupname=repeating_mythic-feat] > button.btn.repcontrol_add::after { + content: " New Mythic Feat"; +} + [data-groupname=repeating_item] > button.btn.repcontrol_add::after { content: " New Item"; } @@ -556,18 +586,27 @@ textarea { [data-groupname=repeating_trait] > button.btn.repcontrol_add::after { content: " New Trait"; } - .charsheet .repcontrol_add, .charsheet .repcontrol_edit, .charsheet .repcontrol_del { - display: block; - background: #000; - color: white; - box-shadow:none; - font-size:0.9em; - height:2.2em; + display: block; + background: #000; + color: white; + box-shadow:none; + font-size:0.9em; + height:2.2em; +} +button[type=roll].sheet-blank-roll-button::before { + content: ' '; +} +.sheet-options { + display: block; + width:auto; + padding: 2px; + border: 1px solid #808080; + border-radius: 5px; + background-color: #d3d3d3; } - /*Roll Templates*/ /*Spells*/ .sheet-rolltemplate-pf_spell table { @@ -577,7 +616,7 @@ textarea { border-spacing: 0; border-collapse: separate; border-radius: 5px; - -moz-box-shadow: 2px 2px 5px #000; + -moz-box-shadow: 2px 2px 5px #000; -webkit-box-shadow: 2px 2px 5px #000; box-shadow: 2px 2px 5px #000; overflow: hidden; @@ -589,7 +628,7 @@ textarea { font-family: "Helvetica Neue",Helvetica,sans-serif; font-size: 1.1em; font-weight: bold; - text-align: left; + text-align: left; } .sheet-rolltemplate-pf_spell .sheet-header-table { display:table; @@ -613,7 +652,7 @@ textarea { font-family: "Helvetica Neue",Helvetica,sans-serif; font-size: 1em; font-weight:normal; - text-align: left; + text-align: left; } .sheet-rolltemplate-pf_spell img { vertical-align:middle; @@ -631,27 +670,29 @@ textarea { background-color: #D3D3D3; } .sheet-rolltemplate-pf_spell .sheet-tcat { - font-weight: bold; + font-weight: bold; } .sheet-rolltemplate-pf_spell .inlinerollresult { - background-color: transparent; - border: none; - display: inline-block; + color: #FFF; + background-color: #000; + border-color: #000; min-width: 1em; text-align: center; + display: inline-block; + margin-left: 1px; padding:0px; } .sheet-rolltemplate-pf_spell .inlinerollresult.fullcrit { - color: #3FB315; - border: none; + color: #FFF; + background-color: #3FB315; } .sheet-rolltemplate-pf_spell .inlinerollresult.fullfail { - color: #B31515; - border: none; + color: #FFF; + background-color: #B31515; } .sheet-rolltemplate-pf_spell .inlinerollresult.importantroll { - color: #4A57ED; - border: none; + color: #FFF; + background-color: #4A57ED; } /* Attacks */ .sheet-rolltemplate-pf_attack table { @@ -661,7 +702,7 @@ textarea { border-spacing: 0; border-collapse: separate; border-radius: 5px; - -moz-box-shadow: 2px 2px 5px #000; + -moz-box-shadow: 2px 2px 5px #000; -webkit-box-shadow: 2px 2px 5px #000; box-shadow:2px 2px 5px #000; overflow: hidden; @@ -673,7 +714,6 @@ textarea { font-family:"Helvetica Neue",Helvetica,sans-serif; font-size: 1.1em; font-weight: bold; - padding: 5px; } .sheet-rolltemplate-pf_attack .sheet-header-table { display:table; @@ -682,7 +722,7 @@ textarea { .sheet-rolltemplate-pf_attack .sheet-header-middle { display:table-cell; vertical-align:middle; -} +} .sheet-rolltemplate-pf_attack .sheet-header-image { float: right; display: table-cell; @@ -697,7 +737,7 @@ textarea { font-family: "Helvetica Neue",Helvetica,sans-serif; font-size: 1em; font-weight:normal; - text-align: left; + text-align: left; } .sheet-rolltemplate-pf_attack img { vertical-align:middle; @@ -747,7 +787,7 @@ textarea { border-spacing: 0; border-collapse: separate; border-radius: 5px; - -moz-box-shadow: 2px 2px 5px #000; + -moz-box-shadow: 2px 2px 5px #000; -webkit-box-shadow: 2px 2px 5px #000; box-shadow:2px 2px 5px #000; overflow: hidden; @@ -758,7 +798,6 @@ textarea { color: #FFF; font-family:"Helvetica Neue",Helvetica,sans-serif; font-size: 1.1em; - padding: 5px; } .sheet-rolltemplate-pf_defense .sheet-header-table { display:table; @@ -782,7 +821,7 @@ textarea { font-family: "Helvetica Neue",Helvetica,sans-serif; font-size: 1em; font-weight:normal !important; - text-align: left; + text-align: left; } .sheet-rolltemplate-pf_defense img { vertical-align:middle; @@ -833,7 +872,7 @@ textarea { border-spacing: 0; border-collapse: separate; border-radius: 5px; - -moz-box-shadow: 2px 2px 5px #000; + -moz-box-shadow: 2px 2px 5px #000; -webkit-box-shadow: 2px 2px 5px #000; box-shadow:2px 2px 5px #000; overflow: hidden; @@ -844,7 +883,6 @@ textarea { color: #FFF; font-family:"Helvetica Neue",Helvetica,sans-serif; font-size: 1.1em; - padding: 5px; } .sheet-rolltemplate-pf_generic .sheet-header-table { display:table; @@ -868,7 +906,7 @@ textarea { font-family: "Helvetica Neue",Helvetica,sans-serif; font-size: 1em; font-weight:normal !important; - text-align: left; + text-align: left; } .sheet-rolltemplate-pf_generic img { vertical-align:middle; @@ -920,7 +958,7 @@ textarea { border-spacing: 0; border-collapse: separate; border-radius: 5px; - -moz-box-shadow: 2px 2px 5px #000; + -moz-box-shadow: 2px 2px 5px #000; -webkit-box-shadow: 2px 2px 5px #000; box-shadow:2px 2px 5px #000; overflow: hidden; @@ -931,7 +969,6 @@ textarea { color: #FFF; font-family:"Helvetica Neue",Helvetica,sans-serif; font-size: 1.1em; - padding: 5px; } .sheet-rolltemplate-pf_block .sheet-header-table { display:table; @@ -955,7 +992,7 @@ textarea { font-family: "Helvetica Neue",Helvetica,sans-serif; font-size: 1em; font-weight:normal !important; - text-align: left; + text-align: left; } .sheet-rolltemplate-pf_block img { vertical-align:middle; diff --git a/Pathfinder-Neceros/pathfinder-neceros.html b/Pathfinder-Neceros/pathfinder-neceros.html index d8114887dd..3ff3798bb0 100644 --- a/Pathfinder-Neceros/pathfinder-neceros.html +++ b/Pathfinder-Neceros/pathfinder-neceros.html @@ -1,45 +1,44 @@
- Attention: - + Attention: +
-
-
Pathfinder RPG Character Sheet
-

Character Name
-

Player Name
-

Race
-

Cond
- -

Buffs
- -

Recalc
-

Version
-
+
+
Pathfinder RPG Character Sheet
+

Character Name
+

Player Name
+

Race
+

Cond
+ +

Buffs
+ +

Recalc
+

Version
+
- - Core - - Classes + + Core + + Classes Defenses - Attacks + Attacks Skills @@ -55,127 +54,127 @@ y
-
 
-
- Ability Scores - -
- Ability Scores -
- Ability - Total - Mod - | - Base - | - Enhan - Misc +
 
+
+ Ability Scores + +
+ Ability Scores +
+ Ability + Total + Mod + | + Base + | + Enhan + Misc Buffs - | - Damage - Penalty - Drain - Cond -
-
- - - - | - - | - - + | + Damage + Penalty + Drain + Cond +
+
+ + + + | + + | + + - | - - - - -
-
- - - - | - - | - - + | + + + + +
+
+ + + + | + + | + + - | - - - - -
-
- - - - | - - | - - + | + + + + +
+
+ + + + | + + | + + - | - - - - -
-
- - - - | - - | - - + | + + + + +
+
+ + + + | + + | + + - | - - - - -
-
- - - - | - - | - - + | + + + + +
+
+ + + + | + + | + + - | - - - - -
-
- - - - | - - | - - + | + + + + +
+
+ + + + | + + | + + - | - - - - -
-
-
-
+ | + + + + +
+
+
+
Buffs @@ -183,13 +182,13 @@ Buffs Buffs 1-5 -
+
# Name - | + | Melee - | + | Rnged | DMG @@ -205,7 +204,7 @@ Will | Check - Cast + Cast | Str Dex @@ -219,7 +218,7 @@ | - | + | | @@ -243,47 +242,47 @@ -
+
- + | - - | - + | - + + | + | - - - + + + | - + | - - - + + + | - - + + | - - - - - - + + + + + +
2. | - | + | | - | + | @@ -303,47 +302,47 @@ -
+
- + | - - | - + | - - | - - - + | - + | - - - + + + | - - + | - - - - - - -
+ + + + | + + + | + + + + + + +
3. | - | + | | - | + | @@ -363,47 +362,47 @@ -
+
- + | - - | - + | - - | - - - + | - + | - - - + + + | - - + | - - - - - - + + + + | + + + | + + + + + +
4. | - | + | | - | + | @@ -423,47 +422,47 @@ -
+
- + | - - | - + | - - | - - - + | - + | - - - + + + | - - + | - - - - - - -
+ + + + | + + + | + + + + + + +
5. | - | + | | - | + | @@ -483,43 +482,43 @@ -
+
- + | - - | - + | - - | - - - + | - + | - - - + + + | - - + | - - - - - - -
+ + + + | + + + | + + + + + + +
Totals - + @@ -537,13 +536,13 @@ - + -
+
Buffs 6-10 @@ -552,9 +551,9 @@
# Name - | + | Melee - | + | Rnged | DMG @@ -570,7 +569,7 @@ Will | Check - Cast + Cast | Str Dex @@ -578,13 +577,13 @@ Int Wis Cha -
+
6. | - | + | | @@ -608,43 +607,43 @@ -
+
- + | - - | - + | - - | - - - + | - + | - - - + + + | - - + | - - - - - - -
+ + + + | + + + | + + + + + + +
7. | - | + | | @@ -668,43 +667,43 @@ -
+
- + | - - | - + | - + + | + | - - - + + + | - + | - - - + + + | - - + + | - - - - - - -
+ + + + + + +
8. | - | + | | @@ -728,43 +727,43 @@ -
+
- + | - - | - + | - - | - - - + | - + | - - - + + + | - - + | - - - - - - -
+ + + + | + + + | + + + + + + +
9. | - | + | | @@ -788,47 +787,47 @@ -
+
- + | - - | - + | - - | - - - + | - + | - - - + + + | - - + | - - - - - - -
+ + + + | + + + | + + + + + + +
10. | - | + | | - | + | @@ -848,43 +847,43 @@ -
+
- + | - - | - + | - - | - - - + | - + | - - - + + + | - - + | - - - - - - + + + + | + + + | + + + + + +
Totals - + @@ -902,87 +901,87 @@ - + -
+
-
- Conditions - -
- Conditions -
- - - - - -
-
- - - - - -
-
- - - - -   +
+ Conditions + +
+ Conditions +
+ + + + + +
+
+ + + + + +
+
+ + + + +   -
-
+
+
    -
-
-
-
-
- Health and Wounds - -
- Health and Wounds -
- Current HP - / - Max HP +
+
+
+
+
+ Health and Wounds + +
+ Health and Wounds +
+ Current HP + / + Max HP   Ability Mod   - HP adj1 - HP adj2 + HP adj1 + HP adj2 Mod2   - Temp HP + Temp HP   Temp HP Misc Buffs   - Nonlethal Dmg -
-
- - / - + Nonlethal Dmg +
+
+ + / + = - - + + + - +  |  - + = +  |  - -
+ +
- +
- Wound Threshold -   - - - - -
-
-
-
-
- Initiative and Speeds - -
-
-
-
- Initiative -
- - Total + Wound Threshold +   + + + + +
+
+
+
+
+ Initiative and Speeds + +
+
+
+
+ Initiative +
- Ability + Total + + Ability Mod - - Trait - - Misc -
-
- - + + Trait + + Misc +
+
+ + = + + + + + + + - - + - - + - -
-
-
-
-   -
-
-
- Speeds -
- Base - Fly - Swim - Climb - Misc -
-
- - - - - -
-
-
-
-
-
-
-
- Experience and Hero Points - -
- Experience and Hero Points -
- Current Experience - / - Next Level - | - Prestige Points - / - Fame - | - Hero Points -
-
- - / - - | - - / - - | - -
-
-
-
+ + + + + + + +
+
+
+
+   +
+
+
+ Speeds +
+ Base + Fly + Swim + Climb + Misc +
+
+ + + + + +
+
+
+
+
+ + + + + + + +   + + + + + +
+
+
+ +
+ Experience and Hero Points + +
+ Experience and Hero Points +
+ Current Experience + / + Next Level + | + Prestige Points + / + Fame + | + Hero Points +
+
+ + / + + | + + / + + | + +
+
+
+
-
 
-
- Class Information - -
- Class Information -
- # - HP - FC HP - Class Name - BAB - Skills/lvl - FC Skill +
 
+
+ Class Information + +
+ Class Information +
+ # + HP + FC HP + Class Name + BAB + Skills/lvl + FC Skill FC Alt - Fort - Ref - Will - Levels -
-
- 0. - - - - - - + Fort + Ref + Will + Levels +
+
+ 0. + + + + + + - - - - -
-
- 1. - - - - - - + + + + +
+
+ 1. + + + + + + - - - - -
-
- 2. - - - - - - + + + + +
+
+ 2. + + + + + + - - - - -
-
- 3. - - - - - - + + + + +
+
+ 3. + + + + + + - - - - -
-
- 4. - - - - - - + + + + +
+
+ 4. + + + + + + - - - - -
-
- 5. - - - - - - + + + + +
+
+ 5. + + + + + + - - - - -
-
- Totals - - FC: - - - - - - - - - -
-
-
+ + + + +
+
+ Totals + + FC: + + + + + + + + + +
+
-
- Class Features and Abilities - -
- Class Features and Abilities -
- - - Class # - Class - Name - Short Description - Uses - / - Max - Max Calc +
+ +
+ +
+
+ Mythic Hero Information and Mythic Power + +
+
+
+
+ Mythic Information +
+ # + Mythic Path + Tier + Bonus HP +
+
+ 0. + + + +
+
+ 1. + + Total Mythic HP: + +
+
+
+
+   +
+
+
+ Mythic Power +
+ Current MP + / + Max MP + + Tier MP + + Misc +
+
+ + / + + = + + + + +
+
+ +
+
+
+
+
+
-
-
+
+
+ Class Features and Abilities + + +
+ Class Features and Abilities +
+ + + Class # + Class + Name + Short Description + Uses + / + Max + Max Calc +
+
+
+
- - + + - + -
+
Description Macro Text IDs - - - - - + + +
+ + + + + +
+
+
+
+
+
+ +
+ +
+
+
+ Mythic Path Features and Abilities + + +
+ Mythic Path Features and Abilities +
+ + + Path # + Path + Name + Short Description + Uses + / + Max + Max Calc +
+
+
+
+
+ + + + + + + + + + + / + + +
+ Description + + Macro Text + + IDs + + + + + +
- -
ID
-   + + + + +
+
+
-
-
+
-
 
-
- Defense Values - -
- Defense Values -
- Armor Class - Total -   - Armor -   - Shield -   - Ability - Mod -   - Size -   - Dodge - - Natural -   - Deflect -   - Misc +
 
+
+ Defense Values + +
+ Defense Values +
+ Armor Class + Total +   + Armor +   + Shield +   + Ability + Mod +   + Size +   + Dodge + + Natural +   + Deflect +   + Misc   Buffs - | - Cond -
-
- AC - - = 10 + - - + - - + + | + Cond +
+
+ AC + + = 10 + + + + + + + + - - + - - + - - + - - + - + + + + + + + + + + + + + + - + - -
-
- Touch - - = 10 + - - - - + + + +
+
+ Touch + + = 10 + + + + + - - + - - + - - + - - + - - + - + + + + + + + + + - - + - -
-
- Flat-Footed - - = 10 + - - + - - + + + + + + + + + + + + + +
+
+ Flat-Footed + + = 10 + + + + + + + - + + + + + + + + + + + + + + + + - - - - + - - + - - + - - + - + - -
- -
- - Total - - BAB - + + + +
+
+ + Total + + BAB + Ability Mod Ability Mod - - Size - - Dodge - - - - Deflect - - Misc - - - | - Cond -
-
- CMD - - = 10 + - - + + + Size + + Dodge + + + + Deflect + + Misc + + + | + Cond +
+
+ CMD + + = 10 + + + + - - + + - + - - - + - - - - + - - + - - - - + - -
-
- FF CMD - - = 10 + - - + + + + + + + + + + + + + + + + + + + +
+
+ FF CMD + + = 10 + + + + - + - - + + - - - + - - - - + - - + - - - - + - -
-
-
-
-
- Special Defenses - -
- Special Defenses -
- DR - Resistances - Immunities - Weaknesses + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ Special Defenses + +
+ Special Defenses +
+ DR + Resistances + Immunities + Weaknesses Vision - SR -
-
- - - - + SR +
+
+ + + + - -
-
-
-
-
- Armor Penalties - -
- Armor Penalties -
- ACP - - - - - Attack Penalty - - - Max DEX - - - - - - % + +
+
+
+
+
+ Armor Penalties + +
+ Armor Penalties +
+ ACP + + + + + Attack Penalty + + Max DEX + + + + + + % -
-
-
-
-
- Saving Throws - -
- Saving Throws -
- Save - Total - - Base - +
+
+
+
+
+ Saving Throws + +
+ Saving Throws +
+ Save + Total + + Base + Ability Mod - - Trait - - Enhan - - Resistance - - Misc - - Cond + + Trait + + Enhan + + Resistance + + Misc + + Cond Buffs -
-
- - - = - - + +
+
+ + + = + + + - + + - - + - - + - - + - - + - + + + + + + + + + + + + + + -
-
- - - = - - + +
+
+ + + = + + + - - + + + - - + - - + - - + - - + - + + + + + + + + + + + + + + -
-
- - - = - - + +
+
+ + + = + + + - + + - - + - - + - - + - - + - + + + + + + + + + + + + + + -
+
Options - + @@ -1750,180 +1897,187 @@
- Include info? - - - - - + Include info? + + + + +
-   - - - - -   +   + + + + +  
-
-
-
-
- Armor and Shield - -
- Armor and Shield -
- Equipped? - Name - AC Bonus - Max DEX - ACP - Spell Fail - Type - Proficiency   +
+
+
+
+ Armor and Shield + +
+ Armor and Shield +
+ Equipped? + Name + AC Bonus + Max DEX + ACP + Spell Fail + Type + Proficiency   Hardness HP - Weight -
-
- - - - - - % - - - - - - + Max HP + Weight +
+
+ + + + + + % + + + + + + - -
-
- - - - - - % - - - - - - + + +
+
+ + + + + + % + + + + + + - -
-
- - - - - - % - - - - + +
+
+ + + + + + % + + + + + - -
-
- - - - - - % - - - - + +
+
+ + + + + + % + + + + + - -
-
-
-
-
- Defense Notes - -
-
-
-
- Armor Notes -
- -
-
-
-
-
- Save Notes -
- -
-
-
-
-
- CMD Notes -
- -
-
-
-
-
- Defense Notes -
- -
-
-
-
-
-
-
+ + +
+
+
+
+
+ Defense Notes + +
+
+
+
+ Armor Notes +
+ +
+
+
+
+
+ Save Notes +
+ +
+
+
+
+
+ CMD Notes +
+ +
+
+
+
+
+ Defense Notes +
+ +
+
+
+
+
+
+
 
@@ -1957,17 +2111,17 @@ = + - - - + + + + @@ -1986,17 +2140,17 @@ = + - - - + + + + @@ -2015,17 +2169,17 @@ = + - - - + + + - @@ -2044,7 +2198,7 @@ = - + @@ -2062,7 +2216,7 @@
Attack and Damage Effects - +
Attack and Damage Effects
@@ -2092,12 +2246,12 @@ Mod 4 Type - +
Attack - + = ( @@ -2121,7 +2275,7 @@ ( - ) + )
Damage @@ -2150,8 +2304,8 @@ ( - ) -
+ ) +

@@ -2201,14 +2355,15 @@
Attacks +
Attacks -
+
- - + +
Enh

Mwk
@@ -2226,7 +2381,6 @@
ATK Type
mod
- +
Other
= @@ -2241,7 +2395,7 @@
Proficiency -
+

Dice
@@ -2281,8 +2435,8 @@
DMG Ability -
Max
-
Mod
+
Max
+
Mod
+
Other
+ @@ -2297,14 +2451,16 @@
-
Hardness
-
HP
Notes +
Hardness
+
HP
+
Max HP
- Iterative Attacks + Iterative Attacks + Options @@ -2427,7 +2583,7 @@
- +
@@ -2439,18 +2595,20 @@ - +
- - - + + +
- -
ID
-   + + + + +
@@ -2460,56 +2618,60 @@
-
 
-
Skill Ranks - -
- Skill Ranks -
- Skill Misc +
 
+
+ Skill Ranks + +
+ Skill Ranks +
+ Skill Misc Mod - + Misc2 - | - Max Skill Ranks - - Total Skill Ranks - - Skill Ranks Remaining - Background Skills Remaining -
-
- - - - - | - - - - - = - - - -
-
-
+ | + Max Skill Ranks + + Total Skill Ranks + + Skill Ranks Remaining + Background Skills Remaining +
+
+ + + + + | + + - + + = + + + + + +
+
+
-
+
- +
-
Unchained Skills +
+ Unchained Skills - -
+ +
Adventure Background Consolidated - +
Adventure Skills @@ -2536,7 +2698,7 @@ RT Macro
- +
@@ -2569,7 +2731,7 @@
- +
@@ -4318,7 +4480,7 @@ -
+
@@ -4351,7 +4513,7 @@ -
+
@@ -4383,7 +4545,7 @@ -
+
@@ -4416,7 +4578,7 @@ -
+
@@ -4449,7 +4611,7 @@ -
+
@@ -4483,7 +4645,7 @@ -
+
@@ -4516,7 +4678,7 @@ -
+
@@ -4592,1685 +4754,1688 @@
-
Skills - -
- Skills -
- - CS - Skill - Total - - Ranks - - Ability - Mod - - Racial - - Feat - - Item - - Misc - - Cl/Ac/Sz/Co  - RT - Macro -
-
- - - Acrobatics - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Appraise - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Artistry - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Bluff - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Climb - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Diplomacy - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Disable-Device - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Disguise - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Escape-Artist - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Fly - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Handle-Animal - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Heal - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Intimidate - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Knowledge (Arcana) - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Knowledge (Dungeoneering) - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Knowledge (Engineering) - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Knowledge (Geography) - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Knowledge (History) - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Knowledge (Local) - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Knowledge (Nature) - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Knowledge (Nobility) - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Knowledge (Planes) - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Knowledge (Religion) - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Linguistics - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Lore: - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Perception - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - - - = - - + - - - - - + - - + - - + - - + - - + - - - -
+
+ Skills + +
+ Skills
- - - - - = - - + - - - - - + - - + - - + - - + - - + - - - -
+ + CS + Skill + Total + + Ranks + + Ability + Mod + + Racial + + Feat + + Item + + Misc + + Cl/Ac/Sz/Co  + RT + Macro +
- - - - - = - - + - - - - - + - - + - - + - - + - - + - - - -
+ + + Acrobatics + + = + + + + + + + + + + + + + + + + + + + + + + + + +
- - - - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Ride - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Sense-Motive - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Sleight-of-Hand - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Spellcraft - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Stealth - - = - - + - - - - - + - - + - - + - - + - - + - - - + + + Appraise + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Artistry + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Bluff + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Climb + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Diplomacy + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Disable-Device + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Disguise + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Escape-Artist + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Fly + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Handle-Animal + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Heal + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Intimidate + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Knowledge (Arcana) + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Knowledge (Dungeoneering) + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Knowledge (Engineering) + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Knowledge (Geography) + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Knowledge (History) + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Knowledge (Local) + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Knowledge (Nature) + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Knowledge (Nobility) + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Knowledge (Planes) + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Knowledge (Religion) + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Linguistics + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Lore: + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Perception + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Ride + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Sense-Motive + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Sleight-of-Hand + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Spellcraft + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Stealth + + = + + + + + + + + + + + + + + + + + + + + + + + + -
-
- - - Survival - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Swim - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - Use Magic Device - - = - - + - - - - - + - - + - - + - - + - - + - - - -
+
+
+ + + Survival + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Swim + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + Use Magic Device + + = + + + + + + + + + + + + + + + + + + + + + + + + +
-
- - - - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - - - = - - + - - - - - + - - + - - + - - + - - + - - - -
-
- - - - - = - - + - - - - - + - - + - - + - - + - - + - - - -
- - - - - = - - + - - + + + = + + + + + - - - + - - + - - + - - + - - + - - - -
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + = + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + = + + + + + + + + + + + + + + + + + + + + + + + + +
-
+
CS = Class Skill | RT = Requires Training | Cl/Ac/Sz/Co = Class Skill Bonus / Armor check penalty / Size mod / Condition penalty

-
Skill Notes - -
- Skill Notes -
- -
-
-
-
+
+ Skill Notes + +
+ Skill Notes +
+ +
+
+
+
-
 
-
- Feats Available - -
- Feats Available -
- Feats by Level - - Racial Bonus - - Class Bonus - - Misc Bonus - - Total Feats -
-
- - + - - + - - + - - = - -
-
-
-
-
- Feats - +
 
+
+ Feats Available +
- Feats -
- + Feats Available +
+ Feats by Level + + Racial Bonus + + Class Bonus + + Misc Bonus + + Total Feats +
+
+ + + + + + + + + + + = + +
+
+
+
+
+ Feats + + +
+ Feats +
- Name - Short Description - Used - / - Max - Max Calc -
-
-
+ + Name + Short Description + Used + / + Max + Max Calc +
+
+
- - + + / - + -
+
Description Macro Text @@ -6280,144 +6445,205 @@ +
- -
ID
-   + + + + +
+
+
+
+ +
+ +
+
+ Mythic Feats + + +
+ Mythic Feats +
+ + + Name + Short Description + Used + / + Max + Max Calc +
+
+
+
+
+ + + + + + / + + +
+ Description + + Macro Text + + IDs + + + + + +
+ + + + + +
+
+
+
+
+
-
-
 
-
- Currency - -
- Currency -
- CP - - SP - - GP - - PP - -
-
-
-
-
- Worn Magic Equipment - -
- Worn Magic Equipment -
- Slot - Name - Description -
-
- Belt: - - -
-
- Body: - - -
-
- Chest: - - -
-
- Eyes: - - -
-
- Feet: - - -
-
- Hands: - - -
-
- Head: - - -
-
- Headband: - - -
-
- Neck: - - -
-
- Ring 1: - - -
-
- Ring 2: - - -
-
- Shoulders: - - -
-
- Wrist: - - -
-
-
-
-
- Inventory - +
 
+
+ Currency +
- Inventory -
+ Currency +
+ CP + + SP + + GP + + PP + +
+
+
+
+
+ Worn Magic Equipment + +
+ Worn Magic Equipment +
+ Slot + Name + Description +
+
+ Belt: + + +
+
+ Body: + + +
+
+ Chest: + + +
+
+ Eyes: + + +
+
+ Feet: + + +
+
+ Hands: + + +
+
+ Head: + + +
+
+ Headband: + + +
+
+ Neck: + + +
+
+ Ring 1: + + +
+
+ Ring 2: + + +
+
+ Shoulders: + + +
+
+ Wrist: + + +
+
+
+
+
+ Inventory + + +
+ Inventory +
- - Name - Short Description - Charges/Qty - / - Max - Weight -
-
-
+ + Name + Short Description + Charges/Qty + / + Max + Weight +
+
+
- - + + / -
+
Description Macro Text @@ -6425,789 +6651,1059 @@ IDs - + +
- -
ID
-   + + + + +
-
-
-
- Carried Weight - -
- Carried Weight -
- Armor & Weapons - - Currency - - Equipment - - Misc - - Total -
-
- - + - - + - - + - - = - -
-
-
-
-
- Loads and Lift - -
- Loads and Lift -
- Light - Medium - Heavy - - Above Head - Off Ground - Drag & Push -
-
- - - -   - - - -
-
-
-
-
- Current Load - - - -
-
-
-
-
+
+
+
+ Carried Weight + +
+ Carried Weight +
+ Armor & Weapons + + Currency + + Equipment + + Misc + + Total +
+
+ + + + + + + + + + + = + +
+
+
+
+
+ Loads and Lift + +
+ Loads and Lift +
+ Light + Medium + Heavy + + Above Head + Off Ground + Drag & Push +
+
+ + + +   + + + +
+
+
+
+
+ Current Load + + + +
+
+
+
+
-
 
-
- Spells Classes - -
- - Spell Class 0 - - Spell Class 1 - - Spell Class 2 -
-
- Spell Class 0 -
- Class - Check - Total - - CL - - Misc - - Buffs - | +
 
+ +
+ Spells Classes + +
+ + Spell Class 0 + + Spell Class 1 + + Spell Class 2 + +
+
+ Caster Level +
Check - Total - - Ability - Mod - - Misc + Total + + Class + Name + CL + + Misc Buffs -
-
- - - - = - - + - + + Condition + + Sp Pen + + Notes +
+
+ + + = + + + + + + - - | - - - = - - - - - + - + + - -
-
-
-
- Spells Per Day - -
- Spells Per Day -
- Save DC - Level - Uses - Total - Spells / Day - Bonus Spells - Misc - Spells Known -
-
- - 0th - - - - - - - - -
-
- - 1st - - - - - - -
-
- - 2nd - - - - - - -
-
- - 3rd - - - - - - -
-
- - 4th - - - - - - -
-
- - 5th - - - - - - -
-
- - 6th - - - - - - -
-
- - 7th - - - - - - -
-
- - 8th - - - - - - -
-
- - 9th - - - - - - -
-
- - SP - - - - - - -
-
-
+ + + + + + + + +
+
+
+ Concentration +
+ Check + Total + + Ability + Mod + + + + Misc Conc. + Notes + | + Cast Def. Bonus +
+
+ + + = + + + + + + + + + + + | + +
+
+
+ Domains / SubDomains / Bloodlines / Patrons / Schools + +
+ Known / Specialities +
+ TypeName +
+
+ + +
+
+ + +
+
+ + +
+
+
+ Opposition +
+ NameEffect +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ Spells Per Day + +
+ Spells Per Day +
+ Save DC + Level + Uses + Total + Spells / Day + Bonus Spells + Misc + + Spells Known +
+
+ + 0th + + + + + + + + | + +
+
+ + 1st + + + + + + | + +
+
+ + 2nd + + + + + + | + +
+
+ + 3rd + + + + + + | + +
+
+ + 4th + + + + + + | + +
+
+ + 5th + + + + + + | + +
+
+ + 6th + + + + + + | + +
+
+ + 7th + + + + + + | + +
+
+ + 8th + + + + + + | + +
+
+ + 9th + + + + + + | + +
+
+ + SP + + + + + + +
+
+
Spell Ranges
- Spell Ranges -
- Close - - Medium - - Long - -
-
-
-
-
-
- Spell Class 1 -
- Class - Check - Total - - CL - - Misc - - Buffs - | + Spell Ranges +
+ Close + + Medium + + Long + +
+
+
+
+ +
+
+ Caster Level +
Check - Total - - Ability - Mod - - Misc + Total + + Class + Name + CL + + Misc Buffs -
-
- - - - = - - + - + + Condition + + Sp Pen + + Notes +
+
+ + + = + + + + + + - - | - - - = + + + + + + + + - - - - + - + + + + + +
+
+
+ Concentration +
+ Check + Total + + Ability + Mod + + + + Misc Conc. + Notes + | + Cast Def. Bonus +
+
+ + + = + + + + + - -
-
-
-
- Spells Per Day - -
- Spells Per Day -
- Save DC - Level - Uses - Total - Spells / Day - Bonus Spells - Misc - Spells Known -
-
- - 0th - - - - - - - - -
-
- - 1st - - - - - - -
-
- - 2nd - - - - - - -
-
- - 3rd - - - - - - -
-
- - 4th - - - - - - -
-
- - 5th - - - - - - -
-
- - 6th - - - - - - -
-
- - 7th - - - - - - -
-
- - 8th - - - - - - -
-
- - 9th - - - - - - -
-
- - SP - - - - - - -
-
-
+ + + + + | + +
+
+
+ Domains / SubDomains / Bloodlines / Patrons / Schools + +
+ Known / Specialities +
+ TypeName +
+
+ + +
+
+ + +
+
+ + +
+
+
+ Opposition +
+ NameEffect +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ Spells Per Day + +
+ Spells Per Day +
+ Save DC + Level + Uses + Total + Spells / Day + Bonus Spells + Misc + + Spells Known +
+
+ + 0th + + + + + + + + | + +
+
+ + 1st + + + + + + | + +
+
+ + 2nd + + + + + + | + +
+
+ + 3rd + + + + + + | + +
+
+ + 4th + + + + + + | + +
+
+ + 5th + + + + + + | + +
+
+ + 6th + + + + + + | + +
+
+ + 7th + + + + + + | + +
+
+ + 8th + + + + + + | + +
+
+ + 9th + + + + + + | + +
+
+ + SP + + + + + + +
+
+
Spell Ranges
- Spell Ranges -
- Close - - Medium - - Long - -
-
-
-
-
-
- Spell Class 2 -
- Class - Check - Total - - CL - - Misc - - Buffs - | + Spell Ranges +
+ Close + + Medium + + Long + +
+
+
+
+ +
+
+ Caster Level +
Check - Total - - Ability - Mod - - Misc + Total + + Class + Name + CL + + Misc Buffs -
-
- - - - = - - + - + + Condition + + Sp Pen + + Notes +
+
+ + + = + + + + + + - - | - - - = - - - - - + - + + - -
-
-
-
- Spells Per Day - -
- Spells Per Day -
- Save DC - Level - Uses - Total - Spells / Day - Bonus Spells - Misc - Spells Known -
-
- - 0th - - - - - - - - -
-
- - 1st - - - - - - -
-
- - 2nd - - - - - - -
-
- - 3rd - - - - - - -
-
- - 4th - - - - - - -
-
- - 5th - - - - - - -
-
- - 6th - - - - - - -
-
- - 7th - - - - - - -
-
- - 8th - - - - - - -
-
- - 9th - - - - - - -
-
- - SP - - - - - - -
-
-
+ + + + + + + + +
+
+
+ Concentration +
+ Check + Total + + Ability + Mod + + + + Misc Conc. + Notes + | + Cast Def. Bonus +
+
+ + + = + + + + + + + + + + + | + +
+
+
+ Domains / SubDomains / Bloodlines / Patrons / Schools + +
+ Known / Specialities +
+ TypeName +
+
+ + +
+
+ + +
+
+ + +
+
+
+ Opposition +
+ NameEffect +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ Spells Per Day + +
+ Spells Per Day +
+ Save DC + Level + Uses + Total + Spells / Day + Bonus Spells + Misc + + Spells Known +
+
+ + 0th + + + + + + + + | + +
+
+ + 1st + + + + + + | + +
+
+ + 2nd + + + + + + | + +
+
+ + 3rd + + + + + + | + +
+
+ + 4th + + + + + + | + +
+
+ + 5th + + + + + + | + +
+
+ + 6th + + + + + + | + +
+
+ + 7th + + + + + + | + +
+
+ + 8th + + + + + + | + +
+
+ + 9th + + + + + + | + +
+
+ + SP + + + + + + +
+
+
Spell Ranges
- Spell Ranges -
- Close - - Medium - - Long - -
-
-
-
-
-
-
- Spells - -
- - Level 0 - - Level 1 - - Level 2 - - Level 3 - - Level 4 - - Level 5 - - Level 6 - - Level 7 - - Level 8 - - Level 9 - - All Spells -
-
-
- Level 0 Spells -
+ Spell Ranges +
+ Close + + Medium + + Long + +
+
+
+
+
+ + +
+ Spells + + +
+ + Level 0 + + Level 1 + + Level 2 + + Level 3 + + Level 4 + + Level 5 + + Level 6 + + Level 7 + + Level 8 + + Level 9 + + All Spells + +
+
+
+ Level 0 Spells +
- - + +
Prepped
-
Name
+
Name

Class
-
Level
-
School
-
Casting Time
-
DC Mod
-
+
Level
+
School
+
Casting Time
+
Domain
+
DC Mod
+
DC
+
-   -   -
Components
-
Range
-
Targets/Area
-
Duration
-
Save Effect
+
Components
+
Range
+
Targets/Area
+
Duration
+
Save Effect
Description - -
Macro Text - -
Options - - - - - - - - - - - - - - -
-
- Include info? - - - - - + + IDs + +
+
+ +
CL Mod
+
CL
+ |
 
+
Conc Mod
+
Conc
+ |
 
+
Cast Def
+
Cast Def DC
+ |
 
+
Spell Pen Mod
+
Spellpen
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ Include info? + + + + + +
+
+ + + + + + +
-
- - - - - - +
+
+ + + + +
+
+ + + + +
- + +
+ + + + + +
-
-
-
-
-
- Level 1 Spells -
+
+
+ +
+
+
+ Level 1 Spells +
- - + + -
Prepped
-
Name
+
Prepped
+
Name

Class
-
Level
-
School
-
Casting Time
-
DC Mod
-
+
Level
+
School
+
Casting Time
+
Domain
+
DC Mod
+
DC
+
-   -   -
Components
-
Range
-
Targets/Area
-
Duration
-
Save Effect
+
Components
+
Range
+
Targets/Area
+
Duration
+
Save Effect
Description - -
Macro Text - -
Options - - - - - - - - - - - - - - -
-
- Include info? - - - - - + + IDs + +
+
+ +
CL Mod
+
CL
+ |
 
+
Conc Mod
+
Conc
+ |
 
+
Cast Def
+
Cast Def DC
+ |
 
+
Spell Pen Mod
+
Spellpen
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ Include info? + + + + + +
+
+ + + + + + +
-
- - - - - - +
+
+ + + + +
+
+ + + + +
- + +
+ + + + + +
-
-
-
-
-
- Level 2 Spells -
+
+
+ +
+
+
+ Level 2 Spells +
- - + +
Prepped
-
Name
+
Name

Class
-
Level
-
School
-
Casting Time
-
DC Mod
-
+
Level
+
School
+
Casting Time
+
Domain
+
DC Mod
+
DC
+
-   -   -
Components
-
Range
-
Targets/Area
-
Duration
-
Save Effect
+
Components
+
Range
+
Targets/Area
+
Duration
+
Save Effect
Description - -
Macro Text - -
Options - - - - - - - - - - - - - - -
-
- Include info? - - - - - + + IDs + +
+
+ +
CL Mod
+
CL
+ |
 
+
Conc Mod
+
Conc
+ |
 
+
Cast Def
+
Cast Def DC
+ |
 
+
Spell Pen Mod
+
Spellpen
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ Include info? + + + + + +
+
+ + + + + + +
-
- - - - - - +
+
+ + + + +
+
+ + + + +
- + +
+ + + + + +
-
-
-
-
-
- Level 3 Spells -
+
+
+ +
+
+
+ Level 3 Spells +
- - + +
Prepped
-
Name
+
Name

Class
-
Level
-
School
-
Casting Time
-
DC Mod
-
+
Level
+
School
+
Casting Time
+
Domain
+
DC Mod
+
DC
+
-   -   -
Components
-
Range
-
Targets/Area
-
Duration
-
Save Effect
+
Components
+
Range
+
Targets/Area
+
Duration
+
Save Effect
Description - -
Macro Text - -
Options - - - - - - - - - - - - - - -
-
- Include info? - - - - - + + IDs + +
+
+ +
CL Mod
+
CL
+ |
 
+
Conc Mod
+
Conc
+ |
 
+
Cast Def
+
Cast Def DC
+ |
 
+
Spell Pen Mod
+
Spellpen
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ Include info? + + + + + +
+
+ + + + + + +
-
- - - - - - +
+
+ + + + +
+
+ + + + +
- + +
+ + + + + +
-
-
-
-
-
- Level 4 Spells -
+
+
+ +
+
+
+ Level 4 Spells +
- - + +
Prepped
-
Name
+
Name

Class
-
Level
-
School
-
Casting Time
-
DC Mod
-
+
Level
+
School
+
Casting Time
+
Domain
+
DC Mod
+
DC
+
-   -   -
Components
-
Range
-
Targets/Area
-
Duration
-
Save Effect
+
Components
+
Range
+
Targets/Area
+
Duration
+
Save Effect
Description - -
Macro Text - -
Options - - - - - - - - - - - - - - -
-
- Include info? - - - - - + + IDs + +
+
+ +
CL Mod
+
CL
+ |
 
+
Conc Mod
+
Conc
+ |
 
+
Cast Def
+
Cast Def DC
+ |
 
+
Spell Pen Mod
+
Spellpen
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ Include info? + + + + + +
+
+ + + + + + +
-
- - - - - - +
+
+ + + + +
+
+ + + + +
- + +
+ + + + + +
-
-
-
-
-
- Level 5 Spells -
+
+
+ +
+
+
+ Level 5 Spells +
- - + +
Prepped
-
Name
+
Name

Class
-
Level
-
School
-
Casting Time
-
DC Mod
-
+
Level
+
School
+
Casting Time
+
Domain
+
DC Mod
+
DC
+
-   -   -
Components
-
Range
-
Targets/Area
-
Duration
-
Save Effect
+
Components
+
Range
+
Targets/Area
+
Duration
+
Save Effect
Description - -
Macro Text - -
Options - - - - - - - - - - - - - - -
-
- Include info? - - - - - + + IDs + +
+
+ +
CL Mod
+
CL
+ |
 
+
Conc Mod
+
Conc
+ |
 
+
Cast Def
+
Cast Def DC
+ |
 
+
Spell Pen Mod
+
Spellpen
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ Include info? + + + + + +
+
+ + + + + + +
-
- - - - - - +
+
+ + + + +
+
+ + + + +
- + +
+ + + + + +
-
-
-
-
-
- Level 6 Spells -
+
+
+ +
+
+
+ Level 6 Spells +
- - + +
Prepped
-
Name
+
Name

Class
-
Level
-
School
-
Casting Time
-
DC Mod
-
+
Level
+
School
+
Casting Time
+
Domain
+
DC Mod
+
DC
+
-   -   -
Components
-
Range
-
Targets/Area
-
Duration
-
Save Effect
+
Components
+
Range
+
Targets/Area
+
Duration
+
Save Effect
Description - -
Macro Text - -
Options - - - - - - - - - - - - - - -
-
- Include info? - - - - - + + IDs + +
+
+ +
CL Mod
+
CL
+ |
 
+
Conc Mod
+
Conc
+ |
 
+
Cast Def
+
Cast Def DC
+ |
 
+
Spell Pen Mod
+
Spellpen
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ Include info? + + + + + +
+
+ + + + + + +
-
- - - - - - +
+
+ + + + +
+
+ + + + +
- + +
+ + + + + +
-
-
-
-
-
- Level 7 Spells -
+
+
+ +
+
+
+ Level 7 Spells +
- - + +
Prepped
-
Name
+
Name

Class
-
Level
-
School
-
Casting Time
-
DC Mod
-
+
Level
+
School
+
Casting Time
+
Domain
+
DC Mod
+
DC
+
-   -   -
Components
-
Range
-
Targets/Area
-
Duration
-
Save Effect
+
Components
+
Range
+
Targets/Area
+
Duration
+
Save Effect
Description - -
Macro Text - -
Options - - - - - - - - - - - - - - -
-
- Include info? - - - - - + + IDs + +
+
+ +
CL Mod
+
CL
+ |
 
+
Conc Mod
+
Conc
+ |
 
+
Cast Def
+
Cast Def DC
+ |
 
+
Spell Pen Mod
+
Spellpen
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ Include info? + + + + + +
+
+ + + + + + +
-
- - - - - - +
+
+ + + + +
+
+ + + + +
- + +
+ + + + + +
-
-
-
-
-
- Level 8 Spells -
+
+
+ +
+
+
+ Level 8 Spells +
- - + +
Prepped
-
Name
+
Name

Class
-
Level
-
School
-
Casting Time
-
DC Mod
-
+
Level
+
School
+
Casting Time
+
Domain
+
DC Mod
+
DC
+
-   -   -
Components
-
Range
-
Targets/Area
-
Duration
-
Save Effect
+
Components
+
Range
+
Targets/Area
+
Duration
+
Save Effect
Description - -
Macro Text - -
Options - - - - - - - - - - - - - - -
-
- Include info? - - - - - + + IDs + +
+
+ +
CL Mod
+
CL
+ |
 
+
Conc Mod
+
Conc
+ |
 
+
Cast Def
+
Cast Def DC
+ |
 
+
Spell Pen Mod
+
Spellpen
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ Include info? + + + + + +
+
+ + + + + + +
-
- - - - - - +
+
+ + + + +
+
+ + + + +
- + +
+ + + + + +
-
-
-
-
-
- Level 9 Spells -
+
+
+ +
+
+
+ Level 9 Spells +
- - + +
Prepped
-
Name
+
Name

Class
-
Level
-
School
-
Casting Time
-
DC Mod
-
+
Level
+
School
+
Casting Time
+
Domain
+
DC Mod
+
DC
+
-   -   -
Components
-
Range
-
Targets/Area
-
Duration
-
Save Effect
+
Components
+
Range
+
Targets/Area
+
Duration
+
Save Effect
Description - -
Macro Text - -
Options - - - - - - - - - - - - - - -
-
- Include info? - - - - - + + IDs + +
+
+ +
CL Mod
+
CL
+ |
 
+
Conc Mod
+
Conc
+ |
 
+
Cast Def
+
Cast Def DC
+ |
 
+
Spell Pen Mod
+
Spellpen
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ Include info? + + + + + +
+
+ + + + + + +
-
- - - - - - +
+
+ + + + +
+
+ + + + +
- + +
+ + + + + +
-
-
-
-
-
+ + + + +
-
 
-
- Character Details - -
- Character Details -
-
-
Character Name
+
 
+
+ Character Details + +
+ Character Details +
+
+
Character Name

Title/Nickname
-
Player Name
-
Race
-
Gender
-
Alignment
-
-
-
Age
-
Height
-
Weight
-
Hair
-
Eyes
-
Vision
+
Player Name
+
Race
+
Gender
+
Alignment
+
+
+
Age
+
Height
+
Weight
+
Hair
+
Eyes
+
Vision

Skin
-
-
- - -
Size -
-
Size-Mod
-
Size-CMD
-
Size-Skills
-
Size-Skills x2
-
Deity
-
Homeland
-
Occupation
-
- -
Languages
-
-
-
-
- Racial Traits - -
- Racial Traits -
+
+ + +
Size +
+
Size-Mod
+
Size-CMD
+
Size-Skills
+
Size-Skills x2
+
Deity
+
Homeland
+
Occupation
+
+
+ +
Languages
+
+
+
+
+ Racial Traits + + +
+ Racial Traits +
- - Name - Short Description - Uses - / - Max - Max Calc -
-
-
+ + Name + Short Description + Uses + / + Max + Max Calc +
+
+
- + / - + -
+
Description Macro Text @@ -8260,35 +9197,38 @@
- -
ID
-   + + + + +
-
-
-
- Traits - -
- Traits -
+
+
+
+ Traits + + +
+ Traits +
- - Name - Short Description - Uses - / - Max - Max Calc -
-
-
+ + Name + Short Description + Uses + / + Max + Max Calc +
+
+
- + @@ -8296,7 +9236,7 @@ / -
+
Description Macro Text @@ -8304,77 +9244,79 @@ IDs - - + +
- -
ID
-   + + + + +
-
-
-
+
+
+
-
- - CR - -
-
-
-
-
-
+
+ + CR + +
+
+
+
+
+

XP
-
Gender
-
Class(es) and levels
-
-
-
-
-
Alignment
- +
Gender
+
Class(es) and levels
+
+
+
+
+
Alignment
+ + + + + + + + + + +
Size
-
Type/(sub-type)
-
-
-
-
- -
Init
- = 
 
-
DEX
- +
 
-
Misc
-
Senses
+
Type/(sub-type)
+
+
+
+
+ +
Init
+ = 
 
+
DEX
+ +
 
+
Misc
+
Senses

Perception

Misc

Aura
-
-
-
-
-
- QUICK STATS - -
+
+
+
+
+
+ QUICK STATS + +
Str @@ -8384,20 +9326,20 @@ Wis Cha     - BAB - CMB -
Misc
- CMD -
Misc
+ BAB + CMB +
Misc
+ CMD +
Misc
-
-
- DEFENSE - -
-
+
+
+ DEFENSE + +
+
@@ -8414,28 +9356,28 @@
Misc

Buffs

Cond
- )
 
+ )
 
-
-
-
-
HP
- /
 
-
Max
- (
 
-
Racial
- d
 
-
HDie
- +
 
-
Class
- d
 
-
HDie2
- +
 
-
Misc
-
Mod
- );
 
-
Heal Conditions
+
+
+
+
HP
+ /
 
+
Max
+ (
 
+
Racial
+ d
 
+
HDie
+ +
 
+
Class
+ d
 
+
HDie2
+ +
 
+
Misc
+
Mod
+ );
 
+
Heal Conditions

 

Temp
=
 
@@ -8445,44 +9387,44 @@
 

NL
-
-
-
-
-
 
-
Total
-
Misc
+
+
+
+
+
 
+
Total
+
Misc
+
 

Buffs
- ;
 
-
 
-
Total
-
Misc
+ ;
 
+
 
+
Total
+
Misc
+
 

Buffs
- ;
 
-
 
-
Total
-
Misc
+ ;
 
+
 
+
Total
+
Misc
+
Buffs
- ;
 
-
Save Notes
-
-
-
-
-
Defensive Abilities
-
DR
-
Immunities
-
Resistances
-
SR
-
Weaknesses
-
-
+ ;
 
+
Save Notes
+
+
+
+
+
Defensive Abilities
+
DR
+
Immunities
+
Resistances
+
SR
+
Weaknesses
+
+
Options - + @@ -8513,27 +9455,27 @@
-
-
-
- OFFENSE - -
-
-
-
- Speed
 
-
Base
-
Burrow
-
Climb
-
Fly
-
Maneuverability
-
Swim
-
Misc
- -
-
-
+
+
+
+ OFFENSE + +
+
+
+
+ Speed
 
+
Base
+
Burrow
+
Climb
+
Fly
+
Maneuverability
+
Swim
+
Misc
+ +
+
+
Attack and Damage Effects @@ -8566,12 +9508,12 @@ Mod 4 Type - +
Attack - + = ( @@ -8595,7 +9537,7 @@ ( - ) + )
Damage @@ -8624,27 +9566,29 @@ ( - ) + )

-
- Attacks - -
-
-
- - +
+ Attacks + + +
+
+
+ + +
Enh
-
Mwk
-
Name
+
Mwk
+
Name

ATK Mods

val
- + - + + +
mod
- + + + +
Other
- = + =
ATK

Crit
- /x + /x
Mult

Proficiency
-
-
-
+
+
+

Dice
d
Die
+
DMG Mods

val
- + - + + +
Hardness
-
HP
Notes +
Hardness
+
HP
+
Max HP
- - Iterative Attacks + + Iterative Attacks + Options @@ -8741,223 +9688,226 @@
- Iterative Attacks -
- Include Attack? - Attack Mod - Macro -
-
- + Iterative Attacks +
+ Include Attack? + Attack Mod + Macro +
+
+ - + - + - -
-
- + +
+
+ - + - + - -
-
- + +
+
+ - + - + - -
-
- + +
+
+ - + - + - -
-
- + +
+
+ - + - + - -
-
- + +
+
+ - + - + - -
-
- + +
+
+ - + - + - -
+ +
-
+
-
+
- +
Include notes? - +
- +
- -
ID
-   + + + + +
-
-
-
-
-
-
Space (ft.)
-
Reach (ft.)
-
Reach Notes
-
-
- Special Attacks - - -
-
-
- Spell-Like Abilities (class-0) - -
-
- Spell Like Abilities Class 0 -
- - Total - - CL - - Misc - Concentration Check - Total - - Ability - Mod - - Misc -
-
- - - = - - + - - - - = - - - - - + - -
-
-
-
- Spell-Like Abilities - -
-
- +
+
+
+
+
Space (ft.)
+
Reach (ft.)
+
Reach Notes
+
+
+ Special Attacks + + +
+
+
+ Spell-Like Abilities (class-0) + +
+
+ Spell Like Abilities Class 0 +
+ + Total + + CL + + Misc + Concentration Check + Total + + Ability + Mod + + Misc +
+
+ + + = + + + + + + + = + + + + + + + +
+
+
+
+ Spell-Like Abilities + + +
+
+ -
-
-
-
-
-
-
- Spells (class-1) - -
-
- Spell Class 1 -
- - Total - - CL - - Misc - Concentration Check - Total - - Ability - Mod - - Misc -
-
- - - = - - + - - - - = - - - - - + - -
-
-
-
- Spells - -
-
-
- -
 
-
Uses/Day
-
Name
-
Short Description
-
Level
+
+
+
+
+
+
+
+
+
+
+ Spells (class-1) + +
+
+ Spell Class 1 +
+ + Total + + CL + + Misc + Concentration Check + Total + + Ability + Mod + + Misc +
+
+ + + = + + + + + + + = + + + + + + + +
+
+
+
+ Spells + + +
+
+
+ +
 
+
Uses/Day
+
Name
+
Short Description
+
Level

Range

Duration

Save
- +
SR
-
- Macro Text - - -
IDs +
+ Macro Text + + IDs +
- -
ID
-   + + + + +
-
-
-
-
-
-
-
-
-
-
- Spells (class-2) - -
-
- Spell Class 2 -
- - Total - - CL - - Misc - Concentration Check - Total - - Ability - Mod - - Misc -
-
- - - = - - + - - - - = - - - - - + - -
-
-
-
- Spells - -
-
-
- -
 
-
Uses/Day
-
Name
-
Short Description
-
Level
+
+
+ +
+
+
+
+
+
+
+ Spells (class-2) + +
+
+ Spell Class 2 +
+ + Total + + CL + + Misc + Concentration Check + Total + + Ability + Mod + + Misc +
+
+ + + = + + + + + + + = + + + + + + + +
+
+
+
+ Spells + + +
+
+
+ +
 
+
Uses/Day
+
Name
+
Short Description
+
Level

Range

Duration

Save
- +
SR
-
- Macro Text - - -
IDs +
+ Macro Text + + IDs +
- -
ID
-   + + + + +
-
-
-
-
-
-
-
-
-
-
-
-
-
- TACTICS - -
-
-
- Before Combat - - -
-
- During Combat - - -
-
- Morale - - -
-
- Base Statistics - - -
-
-
-
-
- STATISTICS - -
-
+
+
+ +
+ + + +
+ + + +
+
+ TACTICS + +
+
+
+ Before Combat + + +
+
+ During Combat + + +
+
+ Morale + + +
+
+ Base Statistics + + +
+
+
+
+
+ STATISTICS + +
+
@@ -9220,415 +10180,426 @@

-
-
-
BAB
-   - -
-
Misc
-   -
CMD
-
Misc
-
CMD Notes
-
-
-
-
- Feats - -
-
-
- -
 
-
Name
-
Short Description
-
Used
- /
 
-
Max
-
Max Calc
-
- Description - - Macro Text - +
+
+
BAB
+   + + +
+
+
Misc
+   +
CMD
+
Misc
+
CMD Notes
+
+
+
+
+ Feats + + +
+
+
+ +
 
+
Name
+
Short Description
+
Used
+ /
 
+
Max
+
Max Calc
+
+ Description + + Macro Text + IDs - +
- -
ID
-   + + + + +
-
-
-
-
-
-
-
- Skills - -
-
- - Name - Total - Misc - - Name - Total - Misc - - Name - Total - Misc -
-
- - Acrobatics - - +
+
+
+
+
+
+
+ Skills + +
+
+ + Name + Total + Misc + + Name + Total + Misc + + Name + Total + Misc +
+
+ + Acrobatics + + - - Appraise - - + + Appraise + + - - Artistry: - - -
-
- - Bluff - - + + Artistry: + + +
+
+ + Bluff + + - - Climb - - + + Climb + + - - - - -
-
- - - - + + + + +
+
+ + + + - - - - + + + + - - Diplomacy - - -
-
- - Disable Device - - + + Diplomacy + + +
+
+ + Disable Device + + - - Disguise - - + + Disguise + + - - Escape Artist - - -
-
- - Fly - - + + Escape Artist + + +
+
+ + Fly + + - - Handle Animal - - + + Handle Animal + + - - Heal - - -
-
- - Intimidate - - + + Heal + + +
+
+ + Intimidate + + - - Knowledge (Arcana) - - + + Knowledge (Arcana) + + - - Knowledge (Dungeoneering) - - -
-
- - Knowledge (Engineering) - - + + Knowledge (Dungeoneering) + + +
+
+ + Knowledge (Engineering) + + - - Knowledge (Geography) - - + + Knowledge (Geography) + + - - Knowledge (History) - - -
-
- - Knowledge (Local) - - - - Knowledge (Nature) - - + + Knowledge (History) + + +
+
+ + Knowledge (Local) + + + + Knowledge (Nature) + + - - Knowledge (Nobility) - - -
-
- - Knowledge (Planes) - - + + Knowledge (Nobility) + + +
+
+ + Knowledge (Planes) + + - - Knowledge (Religion) - - + + Knowledge (Religion) + + - - Linguistics - - + + Linguistics + + -
-
- - - - +
+
+ + + + - - Perception - - + + Perception + + - - - - -
-
- - - - + + + + +
+
+ + + + - - - - + + + + - - - - -
-
- - - - + + + + +
+
+ + + + - - - - + + + + - - Ride - - -
-
- - Sense Motive - - + + Ride + + +
+
+ + Sense Motive + + - - Sleight of Hand - - + + Sleight of Hand + + - - Spellcraft - - -
-
- - Stealth - - + + Spellcraft + + +
+
+ + Stealth + + - - Survival - - + + Survival + + - - Swim - - -
-
- - Use Magic Device - - + + Swim + + +
+
+ + Use Magic Device + + - - - - + + + + - - - - -
-
- - - - + + + + +
+
+ + + + - - - - + + + + - - - - -
-
- - - - -
-
-
-
-
-
- -
Languages
-
-
-
-
-
- -
SQ
-
-
-
-
- Combat Gear - -
- -
-
-
-
- Other Gear - -
- -
-
-
-
-
-
- SPECIAL ABILITIES - -
-
-
-
- -
 
-
Name
-
Short Description
-
Uses
- /
/
-
Max
-
Max Calc
-
- Description - - Macro Text - + + + + +
+
+ + + + +
+
+
+
+
+
+ +
Languages +
+
+
+
+
+
+ +
SQ +
+
+
+
+
+ Combat Gear + +
+ +
+
+
+
+ Other Gear + +
+ +
+
+
+ +
+
+ SPECIAL ABILITIES + + +
+
+
+
+ +
 
+
Name
+
Short Description
+
Uses
+ /
/
+
Max
+
Max Calc
+
+ Description + + Macro Text + IDs - - + + +
- -
ID
-   + + + + +
-
-
-
-
-
-
+ + + + + +
 
-
+
Header Images
Header Images -

Header images are iconic images that appear in the header of roll templates. All macros on the sheet include {{header_image=image attriubute}}. Each roll template has a specific image attribute that works with the options below. ie The Spells roll template would use {{header_image=@{header_image-pf_spell}}} Hover over the template names below to learn the specific image attributes. You can substitute images for any roll template by using the URL column below or using the syntax {{header_image=[name](url)}}

+ Header images are iconic images that appear in the header of roll templates. All macros on the sheet include {{header_image=image attriubute}}. Each roll template has a specific image attribute that works with the options below. ie The Spells roll template would use {{header_image=@{header_image-pf_spell}}} Hover over the template names below to learn the specific image attributes. You can substitute images for any roll template by using the URL column below or using the syntax {{header_image=[name](url)}}
Roll Template @@ -9716,40 +10687,69 @@ -
+

-
-
- Pathfinder Unchained - -
+
+
+ Pathfinder Unchained + +
Pathfinder Unchained -
+
- - + + + + + + + +
-
-
+
-
- Roll Template Info - +
+
+ Pathfinder Mythic Adventures +
- Roll Template Info + Pathfinder Mythic Adventures +
+ + + +
+
+
+
+
+ Roll Template Info + +
+ Roll Template Info
@@ -9762,96 +10762,114 @@
- + + Spell Roll Template (pf_spell)
Used for all spell-based sheet rolls. Primarily formatted to emulate a typical spell stat-block. (note: @{spell_options} is used by the sheet to enable the toggling of spell attributes and contains ALL pf_spell specific properties.)

-
+ +
-

- + + Attack Roll Template (pf_attack)
Used for attacks. 2 column format except for the "description" property. (note: @{macro_options} is used by the sheet to enable the toggling of notes related to attacks and contains the properties for @{melee_notes}, @{ranged_notes}, @{cmb_notes}, and @{attack_notes}.)

-
+ +
-

- + + Defense Roll Template (pf_defense)
Used for Saving Throws. (note: @{macro_options} is used by the sheet to enable the toggling of notes related to defense and contains the properties for @{dr_notes}, @{resistances_notes}, @{immunities_notes}, @{weaknesses_notes}, @{sr_notes}, @{armor_notes}, @{save_notes}, @{cmd_notes}, and @{defense-notes}.) -

-
+

+ +

- + + Generic Roll Template (pf_generic)
Used for Ability checks, Initiative, Spell Failure Check, Skill Checks, Concentration Check, Caster Level Check. 2 column format, except for righttext_X(1-10), lefttext_X(1-10), and the description keys. -

-
+

+ +

- + + Block Text Roll Template (pf_block)
Used for Class Abilities, Feats, Inventory, Racial Traits, Traits. Key/Property names are not shown in this template. Best for long blocks of text. -

-
+

+ +

-
-
-
- Sheet configuration - -
+
+
+
+ Sheet configuration + +
Sheet configuration -
+
- - +
-
+

-
+
- - {{/description}} +
+ + + - {{#subtitle}}{{/subtitle}} - {{#school}}{{/school}} - {{#level}}{{/level}} - {{#casting_time}}{{/casting_time}} - {{#components}}{{/components}} - {{#range}}{{/range}} - {{#targets}}{{/targets}} - {{#duration}}{{/duration}} - {{#saving_throw}} - - {{/saving_throw}} - {{#sr}}{{/sr}} + + + {{#subtitle}} + {{/subtitle}} + {{#school}} + {{/school}} + {{#level}} + {{/level}} + {{#casterlevel}} + {{/casterlevel}} + {{#casting_time}} + {{/casting_time}} + {{#components}} + {{/components}} + {{#range}} + {{/range}} + {{#targets}} + {{/targets}} + {{#duration}} + {{/duration}} + + + + + {{#sr}} + {{/sr}} + + {{#casterlevel_chk}} + {{/casterlevel_chk}} + {{#Concentration}} + {{/Concentration}} + {{#Concentration_chk}} + {{/Concentration_chk}} + {{#spellPen}} + {{/spellPen}} + {{#spellPen_chk}} + {{/spellPen_chk}} + {{#cast_def}} + {{/cast_def}} + {{#cast_def_chk}} + {{/cast_def_chk}} + {{#attack}} {{#crit_confirm}} @@ -9924,18 +10965,20 @@ {{/crit_damage2}} {{/attack2}} - {{#allprops() header_image character_name character_id name_link subtitle school level casting_time components range targets duration saving_throw dc dc1 dc2 sr description attack damage crit_confirm crit_damage attack2 damage2 crit_confirm2 crit_damage2}} - - {{/allprops() header_image character_name character_id name_link subtitle school level casting_time components range targets duration saving_throw dc dc1 dc2 sr description attack damage crit_confirm crit_damage attack2 damage2 crit_confirm2 crit_damage2}} + {{#allprops() header_image character_name character_id name_link subtitle school level casterlevel casting_time components range targets duration saving_throw dc sr Concentration spellPen cast_def Concentration_chk spellPen_chk cast_def_chk casterlevel_chk description attack damage crit_confirm crit_damage attack2 damage2 crit_confirm2 crit_damage2}} + + {{/allprops() header_image character_name character_id name_link subtitle school level casterlevel casting_time components range targets duration saving_throw dc sr Concentration spellPen cast_def Concentration_chk spellPen_chk cast_def_chk casterlevel_chk description attack damage crit_confirm crit_damage attack2 damage2 crit_confirm2 crit_damage2}} - {{#description}}{{/description}} -
{{#character_name}} @@ -9864,27 +10882,50 @@ {{^name_link}}{{name}}{{/name_link}} {{/name}} - - {{#header_image}}{{header_image}}{{/header_image}} - + {{#header_image}}{{header_image}}{{/header_image}}
-
{{subtitle}}
School {{school}};
Level {{level}}
Casting Time {{casting_time}}
Components {{components}}
Range {{range}}
Effects/Target {{targets}}
Duration {{duration}}
Saving Throw {{saving_throw}} - {{#dc}}DC{{dc}}{{/dc}} - {{#dc1}}DC{{dc1}}{{/dc1}} - {{#dc2}}DC{{dc2}}{{/dc2}} -
Spell Resistance {{sr}}
{{subtitle}}
School {{school}}
Spell Level {{level}}
Caster Level {{casterlevel}}
Casting Time {{casting_time}}
Components {{components}}
Range {{range}}
Effects/Target {{targets}}
Duration {{duration}}
{{#saving_throw}}Saving Throw {{saving_throw}}{{/saving_throw}}{{#dc}}DC{{dc}}{{/dc}}
Spell Resistance {{sr}}
Caster Level Check{{casterlevel_chk}}
Concentration mod: + {{Concentration}}
Concentration Check{{Concentration_chk}}
Spell Penetration mod: + {{spellPen}}
Spell Penetration Check{{spellPen_chk}}
Cast DefensivelyDC {{cast_def}}
Cast Defensively Check{{cast_def_chk}}
**Attack**{{attack}}
**{{key}}**{{value}}
**{{key}}**{{value}}
Description: {{description}}
+ {{#description}} +
Description: {{description}}
- + - {{#subtitle}}{{/subtitle}} + + + {{#subtitle}} + {{/subtitle}} {{#attack}} @@ -10133,17 +11176,23 @@ {{/damage8}} {{/attack8}} - {{#melee_notes}}{{/melee_notes}} - {{#ranged_notes}}{{/ranged_notes}} - {{#CMB_notes}}{{/CMB_notes}} - {{#attack_notes}}{{/attack_notes}} + {{#melee_notes}} + {{/melee_notes}} + {{#ranged_notes}} + {{/ranged_notes}} + {{#CMB_notes}} + {{/CMB_notes}} + {{#attack_notes}} + {{/attack_notes}} - {{#type}}{{/type}} + {{#type}} + {{/type}} + {{#weapon_notes}} + {{/weapon_notes}} - {{#allprops() header_image character_name character_id name_link subtitle attack damage crit_confirm crit_damage description attack2 damage2 crit_confirm2 crit_damage2 attack3 damage3 crit_confirm3 crit_damage3 attack4 damage4 crit_confirm4 crit_damage4 attack5 damage5 crit_confirm5 crit_damage5 attack6 damage6 crit_confirm6 crit_damage6 attack7 damage7 crit_confirm7 crit_damage7 attack8 damage8 crit_confirm8 crit_damage8 melee_notes ranged_notes CMB_notes attack_notes type}} - + {{#allprops() header_image character_name character_id name_link subtitle attack damage crit_confirm crit_damage description attack2 damage2 crit_confirm2 crit_damage2 attack3 damage3 crit_confirm3 crit_damage3 attack4 damage4 crit_confirm4 crit_damage4 attack5 damage5 crit_confirm5 crit_damage5 attack6 damage6 crit_confirm6 crit_damage6 attack7 damage7 crit_confirm7 crit_damage7 attack8 damage8 crit_confirm8 crit_damage8 melee_notes ranged_notes CMB_notes attack_notes type weapon_notes}} - {{/allprops() header_image character_name character_id name_link subtitle attack damage crit_confirm crit_damage description attack2 damage2 crit_confirm2 crit_damage2 attack3 damage3 crit_confirm3 crit_damage3 attack4 damage4 crit_confirm4 crit_damage4 attack5 damage5 crit_confirm5 crit_damage5 attack6 damage6 crit_confirm6 crit_damage6 attack7 damage7 crit_confirm7 crit_damage7 attack8 damage8 crit_confirm8 crit_damage8 melee_notes ranged_notes CMB_notes attack_notes type}} + {{/allprops() header_image character_name character_id name_link subtitle attack damage crit_confirm crit_damage description attack2 damage2 crit_confirm2 crit_damage2 attack3 damage3 crit_confirm3 crit_damage3 attack4 damage4 crit_confirm4 crit_damage4 attack5 damage5 crit_confirm5 crit_damage5 attack6 damage6 crit_confirm6 crit_damage6 attack7 damage7 crit_confirm7 crit_damage7 attack8 damage8 crit_confirm8 crit_damage8 melee_notes ranged_notes CMB_notes attack_notes type weapon_notes}} {{#description}} @@ -10153,8 +11202,9 @@ -
+
{{#character_name}} @@ -9948,12 +10991,12 @@ {{^name_link}}{{name}}{{/name_link}} {{/name}} - - {{#header_image}}{{header_image}}{{/header_image}} - + {{#header_image}}{{header_image}}{{/header_image}}
-
{{subtitle}}
{{subtitle}}
**Attack**{{attack}}
**Melee Notes:** {{melee_notes}}
**Ranged Notes:** {{ranged_notes}}
**CMB Notes:** {{CMB_notes}}
**Attack Notes:** {{attack_notes}}
**Melee Notes:** {{melee_notes}}
**Ranged Notes:** {{ranged_notes}}
**CMB Notes:** {{CMB_notes}}
**Attack Notes:** {{attack_notes}}
**Type**{{type}}
**Type**{{type}}
**Weapon Notes:** {{weapon_notes}}
{{key}}{{value}}
{{description}}
-
+ + + - {{#subtitle}}{{/subtitle}} + + + {{#subtitle}} + {{/subtitle}} {{#allprops() header_image character_name character_id name_link subtitle dr_notes resistances_notes immunities_notes weaknesses_notes sr0_notes armor_notes save_notes cmd_notes defense_notes description}} {{/allprops() header_image character_name character_id name_link subtitle dr_notes resistances_notes immunities_notes weaknesses_notes sr0_notes armor_notes save_notes cmd_notes defense_notes description}} - {{#dr_notes}}{{/dr_notes}} - {{#resistances_notes}}{{/resistances_notes}} - {{#immunities_notes}}{{/immunities_notes}} - {{#weaknesses_notes}}{{/weaknesses_notes}} - {{#sr0_notes}}{{/sr0_notes}} - {{#armor_notes}}{{/armor_notes}} - {{#save_notes}}{{/save_notes}} - {{#cmd_notes}}{{/cmd_notes}} - {{#defense_notes}}{{/defense_notes}} + {{#dr_notes}} + {{/dr_notes}} + {{#resistances_notes}} + {{/resistances_notes}} + {{#immunities_notes}} + {{/immunities_notes}} + {{#weaknesses_notes}} + {{/weaknesses_notes}} + {{#sr0_notes}} + {{/sr0_notes}} + {{#armor_notes}} + {{/armor_notes}} + {{#save_notes}} + {{/save_notes}} + {{#cmd_notes}} + {{/cmd_notes}} + {{#defense_notes}} + {{/defense_notes}} {{#description}} @@ -10195,8 +11254,9 @@ -
{{#character_name}} @@ -10167,25 +11217,34 @@ {{^name_link}}{{name}}{{/name_link}} {{/name}} - - {{#header_image}}{{header_image}}{{/header_image}} - + {{#header_image}}{{header_image}}{{/header_image}}
-
{{subtitle}}
{{subtitle}}
{{key}}{{value}}
**DR:** {{dr_notes}}
**Resistances:** {{resistances_notes}}
**Immunities:** {{immunities_notes}}
**Weaknesses:** {{weaknesses_notes}}
**SR:** {{sr0_notes}}
**Armor Notes:** {{armor_notes}}
**Save Notes:** {{save_notes}}
**CMD Notes:** {{cmd_notes}}
**Defense Notes:** {{defense_notes}}
**DR:** {{dr_notes}}
**Resistances:** {{resistances_notes}}
**Immunities:** {{immunities_notes}}
**Weaknesses:** {{weaknesses_notes}}
**SR:** {{sr0_notes}}
**Armor Notes:** {{armor_notes}}
**Save Notes:** {{save_notes}}
**CMD Notes:** {{cmd_notes}}
**Defense Notes:** {{defense_notes}}
{{description}}
-
+ + + - {{#subtitle}}{{/subtitle}} - - {{#righttext_1}}{{/righttext_1}} - {{#lefttext_1}}{{/lefttext_1}} - {{#righttext_2}}{{/righttext_2}} - {{#lefttext_2}}{{/lefttext_2}} - {{#righttext_3}}{{/righttext_3}} - {{#lefttext_3}}{{/lefttext_3}} - {{#righttext_4}}{{/righttext_4}} - {{#lefttext_4}}{{/lefttext_4}} - {{#righttext_5}}{{/righttext_5}} - {{#lefttext_5}}{{/lefttext_5}} + + + {{#subtitle}} + {{/subtitle}} + + {{#righttext_1}} + {{/righttext_1}} + {{#lefttext_1}} + {{/lefttext_1}} + {{#righttext_2}} + {{/righttext_2}} + {{#lefttext_2}} + {{/lefttext_2}} + {{#righttext_3}} + {{/righttext_3}} + {{#lefttext_3}} + {{/lefttext_3}} + {{#righttext_4}} + {{/righttext_4}} + {{#lefttext_4}} + {{/lefttext_4}} + {{#righttext_5}} + {{/righttext_5}} + {{#lefttext_5}} + {{/lefttext_5}} + {{#allprops() header_image character_name character_id name_link subtitle init_notes description righttext_1 lefttext_1 righttext_2 lefttext_2 righttext_3 lefttext_3 righttext_4 lefttext_4 righttext_5 lefttext_5 righttext_6 lefttext_6 righttext_7 lefttext_7 righttext_8 lefttext_8 righttext_9 lefttext_9 righttext_10 lefttext_10}} + + {{/allprops() header_image character_name character_id name_link subtitle init_notes description righttext_1 lefttext_1 righttext_2 lefttext_2 righttext_3 lefttext_3 righttext_4 lefttext_4 righttext_5 lefttext_5 righttext_6 lefttext_6 righttext_7 lefttext_7 righttext_8 lefttext_8 righttext_9 lefttext_9 righttext_10 lefttext_10}} + {{#righttext_6}} + {{/righttext_6}} + {{#lefttext_6}} + {{/lefttext_6}} + {{#righttext_7}} + {{/righttext_7}} + {{#lefttext_7}} + {{/lefttext_7}} + {{#righttext_8}} + {{/righttext_8}} + {{#lefttext_8}} + {{/lefttext_8}} + {{#righttext_9}} + {{/righttext_9}} + {{#lefttext_9}} + {{/lefttext_9}} + {{#righttext_10}} + {{/righttext_10}} + {{#lefttext_10}} + {{/lefttext_10}} - {{#allprops() header_image character_name character_id name_link subtitle description righttext_1 lefttext_1 righttext_2 lefttext_2 righttext_3 lefttext_3 righttext_4 lefttext_4 righttext_5 lefttext_5 righttext_6 lefttext_6 righttext_7 lefttext_7 righttext_8 lefttext_8 righttext_9 lefttext_9 righttext_10 lefttext_10}} - - {{/allprops() header_image character_name character_id name_link subtitle description righttext_1 lefttext_1 righttext_2 lefttext_2 righttext_3 lefttext_3 righttext_4 lefttext_4 righttext_5 lefttext_5 righttext_6 lefttext_6 righttext_7 lefttext_7 righttext_8 lefttext_8 righttext_9 lefttext_9 righttext_10 lefttext_10}} - - {{#righttext_6}}{{/righttext_6}} - {{#lefttext_6}}{{/lefttext_6}} - {{#righttext_7}}{{/righttext_7}} - {{#lefttext_7}}{{/lefttext_7}} - {{#righttext_8}}{{/righttext_8}} - {{#lefttext_8}}{{/lefttext_8}} - {{#righttext_9}}{{/righttext_9}} - {{#lefttext_9}}{{/lefttext_9}} - {{#righttext_10}}{{/righttext_10}} - {{#lefttext_10}}{{/lefttext_10}} + {{#init_notes}} + {{/init_notes}} {{#description}} {{/description}} -
{{#character_name}} @@ -10209,49 +11269,71 @@ {{^name_link}}{{name}}{{/name_link}} {{/name}} - - {{#header_image}}{{header_image}}{{/header_image}} - + {{#header_image}}{{header_image}}{{/header_image}}
-
{{subtitle}}
{{righttext_1}}
{{lefttext_1}}
{{righttext_2}}
{{lefttext_2}}
{{righttext_3}}
{{lefttext_3}}
{{righttext_4}}
{{lefttext_4}}
{{righttext_5}}
{{lefttext_5}}
{{subtitle}}
{{righttext_1}}
{{lefttext_1}}
{{righttext_2}}
{{lefttext_2}}
{{righttext_3}}
{{lefttext_3}}
{{righttext_4}}
{{lefttext_4}}
{{righttext_5}}
{{lefttext_5}}
{{key}}{{value}}
{{righttext_6}}
{{lefttext_6}}
{{righttext_7}}
{{lefttext_7}}
{{righttext_8}}
{{lefttext_8}}
{{righttext_9}}
{{lefttext_9}}
{{righttext_10}}
{{lefttext_10}}
{{key}}{{value}}
{{righttext_6}}
{{lefttext_6}}
{{righttext_7}}
{{lefttext_7}}
{{righttext_8}}
{{lefttext_8}}
{{righttext_9}}
{{lefttext_9}}
{{righttext_10}}
{{lefttext_10}}
**Initiative Notes:** {{init_notes}}
{{description}}
+
- -
+ + + - {{#subtitle}}{{/subtitle}} - {{#allprops() header_image character_name character_id name_link subtitle description}} - - {{/allprops() header_image character_name character_id name_link subtitle description}} + + + {{#subtitle}} + {{/subtitle}} + {{#allprops() header_image character_name character_id name_link subtitle description}} + + {{/allprops() header_image character_name character_id name_link subtitle description}} {{#description}} {{/description}} -
{{#character_name}} @@ -10264,24 +11346,666 @@ {{^name_link}}{{name}}{{/name_link}} {{/name}} - - {{#header_image}}{{header_image}}{{/header_image}} - + {{#header_image}}{{header_image}}{{/header_image}}
-
{{subtitle}}
{{value}}
{{subtitle}}
{{value}}
{{description}}
+
+//reset based on config changes +on("change:wound_threshold-show", function (eventInfo) { setAttrs({"condition-Wounds":0}); }); + + + \ No newline at end of file diff --git a/Pathfinder-Neceros/sheet.json b/Pathfinder-Neceros/sheet.json index f541808bef..98dc64a8ff 100644 --- a/Pathfinder-Neceros/sheet.json +++ b/Pathfinder-Neceros/sheet.json @@ -1,8 +1,8 @@ { "html": "pathfinder-neceros.html", "css": "pathfinder-neceros.css", - "authors": "Samuel Marino, Nibrodooh, Vince, Samuel Terrazas, chris-b", - "roll20userid": "63511, 396949, 463088, 26725, 144324", + "authors": "Samuel Marino, Nibrodooh, Vince, Samuel Terrazas, chris-b, Magik", + "roll20userid": "63511, 396949, 463088, 26725, 144324, 799951", "preview": "pathfinder-necerospreview.jpg", "compendium": "pathfinder", "instructions": "# Character Sheet\r This sheet was inspired by Actoba's D&D 5E sheet. The Pathfinder sheet uses tab navigation, repeating fields, show/hide sub-sections, Configuration tab, and auto-calculates numerous fields, such as, Ability scores & mods, Skills, HP, Saves, total-attack, and total-damage as guided by the rules as written. Nearly every auto-calculated attribute on the sheet is handled by sheet worker script(javascript) which helps to significantly enhance the sheet's performance.\r\r## Attributes\r\r* Mouse over any field to get its attribute name to help with token/ability macros.\r* All field titles follow Roll20's attribute syntax, ie. AC would be displayed as \"@{AC}\" on mouse-over.\r\r## Rolls\r\r* You can mouse over any button to get its attribute/ability name.\r* Roll button titles follow Roll20's ability syntax, using the selected token, ie. \"%{selected|STR-check}\" or \"@{selected|repeating_weapon_$X_attack-roll\".\r\r## NPC stat block\r\r* Use the NPC tab for easy stat-block input.\r\r## Additional Notes\r\r* Use the [Pathfinder Sheet Guide](https://wiki.roll20.net/Pathfinder_Character_Sheet) on the Roll20 wiki for more details.\r* HP|max default formula: (@{CON-mod} * @{level}) + @{total-hp} + (5 * @{condition-Drained}) Use the Temp HP Misc (@{HP-temp-misc}) macro-text to calculate the modifier as needed.\r* The Initiative button adds your token to the initiative tracker, and therefore requires you to have a token selected. It will also add your initiative modifier as a decimal for the purposes of tie-breaking and ease of sorting.\r* The CS column in the skills table denotes class skills and automatically adds 3 when you put a rank in it.\r* Questions, comments, suggestions, please post in the Character Sheets forum: [Pathfinder sheet thread 5](https://app.roll20.net/forum/post/2788628/pf-pathfinder-sheet-thread-5)\r\r## Special Thanks\r\r* Sam M. (sheet creator)\r* Everyone in the character sheet test game." diff --git a/PokemonTabletopUnited/ptu.html b/PokemonTabletopUnited/ptu.html index 9102ae4ea5..3c81dbffb9 100644 --- a/PokemonTabletopUnited/ptu.html +++ b/PokemonTabletopUnited/ptu.html @@ -597,7 +597,7 @@ on("change:repeating_moves:move_db5", function() {
Non-Targeted        - Targeted + Targeted
diff --git a/PortesMonstresTresors/ReadMe.md b/PortesMonstresTresors/ReadMe.md index 929d1aa815..7249214add 100644 --- a/PortesMonstresTresors/ReadMe.md +++ b/PortesMonstresTresors/ReadMe.md @@ -5,10 +5,10 @@ Feuille de Personnage pour **PMT**, un rétro-clone de **Donjons & Dragons PMT est une adaptation de **Labyrinth Lord**, réalisée par [Arasmo](http://www.legrog.org/biographies/james-arasmo-manez). -Le jeu complet est disponible gratuitement en PDF sur le site du [Scriptorium.D100.fr](http://www.scriptorium.d100.fr/index.php/lesparchemins/portes-monstres-tresors/), et en version papier sur [Lulu](http://www.lulu.com/shop/daniel-proctor-and-james-manez/portes-monstres-tr%C3%A9sors/hardcover/product-22096059.html). +Le jeu complet est disponible gratuitement en PDF sur le site du [Scriptorium.D100.fr](http://www.scriptorium.d100.fr/index.php/lesparchemins/portes-monstres-tresors/), et en version papier sur [Lulu](http://www.lulu.com/shop/daniel-proctor-and-james-manez/portes-monstres-tr%C3%A9sors/hardcover/product-22096059.html) ou [Amazon](http://www.amazon.fr/Portes-Monstres-Tresors-daventures-fantastiques/dp/1508659044). # Version courante -4.0 [Screenshot](pmt_v4.jpg) +4.1 [Screenshot](pmt_v4.jpg) # Script API de création de personnage Un [script API](pmt.js) est disponible pour créer des personnages rapidement (le taux de mortalité est élevé en OSR ;) ). @@ -43,6 +43,10 @@ Si ces informations n'apparaissent pas, fermer la feuille et réouvrez la après Par défaut, le personnage créé est attribué au joueur qui a cliqué dans le chat (même s'il est visible par tous, seul ce joueur et le MJ pourront modifier le personnage). # Notes de version + +##v4.1 (22 Février 2016). +Possibilité d'agrandir/réduire le champ de description d'un sort. + ##v4.0 (29 Janvier 2016). * Changement de la police des zones de saisie de 'Times' à 'Patrick Hand' (aspect plus 'manuscrit') * Quelques ajustements de mise en page diff --git a/PortesMonstresTresors/pmt.css b/PortesMonstresTresors/pmt.css index f33d906a15..c532b1c11e 100644 --- a/PortesMonstresTresors/pmt.css +++ b/PortesMonstresTresors/pmt.css @@ -206,7 +206,45 @@ textarea { border-bottom-left-radius: 4px; font-family:'Patrick Hand', cursive; font-size: 14px; + box-shadow: none; + text-shadow: none; } +/************ DESCRIPTION TAILLE VARIABLE **************************/ +input[type="checkbox"].sheet-dispcheck{ + width: 18px; + height: 18px; + max-width: 18px; + opacity: 0; + z-index: 2; +} +span.sheet-dispcheck{ + display: inline-block; + text-align: center; + margin-left: -18px; + width: 18px; + max-width: 18px; + height: 18px; + z-index: 1; + font-family: pictos; + color: #888888; + font-size: 15px; +} +input[type="checkbox"].sheet-dispcheck:hover + span.sheet-dispcheck{ + color: black; +} +input[type="checkbox"].sheet-dispcheck:checked + span.sheet-dispcheck{ + font-weight: bold; + color: black; +} +textarea.sheet-textdesc{ + height: 22px; + resize: none; + font-size: 14px; +} +input[type="checkbox"].sheet-dispcheck:checked + span.sheet-dispcheck + textarea.sheet-textdesc{ + height: 140px; +} +/************ FIN DESCRIPTION TAILLE VARIABLE **************************/ .sheet-mainBg{ background-image:url(https://lh4.googleusercontent.com/-le0NmFIQGQ0/VIIlSitbl6I/AAAAAAAATP0/5rPXPhYzId0/w611-h788-no/vieuxpapier5.jpg); background-repeat:no-repeat; @@ -488,3 +526,9 @@ input[type=number].sheet-carac-mod{ border-bottom-style: solid; border-top-right-radius: 3px; } +.sheet-rolltemplate-pmt div.sheet-jetdesc{ + font-family: 'Verdana', serif; + font-size: 0.9em; + max-height: 180px; + overflow-y: auto; +} \ No newline at end of file diff --git a/PortesMonstresTresors/pmt.htm b/PortesMonstresTresors/pmt.htm index 4f67aab7c5..b6875afcbb 100644 --- a/PortesMonstresTresors/pmt.htm +++ b/PortesMonstresTresors/pmt.htm @@ -618,7 +618,7 @@ var TAS = TAS || (function(){ }); -v4.0 - Options : +v4.1 - Options : CA descendante CA ascendante @@ -1483,16 +1483,17 @@ var TAS = TAS || (function(){
+ R - - + + s + P -
@@ -1601,7 +1602,8 @@ var TAS = TAS || (function(){ Niveau : {{sortniveau}} Durée : {{sortduree}} Portée : {{sortportee}} - Desc. : {{sortdesc}} + Desc. : +
{{sortdesc}}
{{/sort}} {{#DV}} PV gagnés : {{DV}} diff --git a/PortesMonstresTresors/sheet.json b/PortesMonstresTresors/sheet.json index c4dea7c227..42264b9157 100644 --- a/PortesMonstresTresors/sheet.json +++ b/PortesMonstresTresors/sheet.json @@ -3,6 +3,6 @@ "css": "pmt.css", "authors": "Nathanael TERRIEN", "roll20userid": "75857", - "preview": "pmt_v3.jpg", - "instructions": "Feuille de Personnage pour PMT v2 (Portes, Monstres et Trésors), un rétro-clone de D&D B/X (adaptation de Labyrinth Lord par Arasmo). Les PDFs du jeu sont disponibles gratuitement sur le site du Scriptorium.D100.fr ( http://www.scriptorium.d100.fr/index.php/lesparchemins/portes-monstres-tresors/ ). Un script API est disponible pour accélérer la crétion de personnage (cf. readme : https://github.com/Roll20/roll20-character-sheets/blob/master/PortesMonstresTresors/ReadMe.md ). v4.0 (29 Janvier 2016)." + "preview": "pmt_v4.jpg", + "instructions": "Feuille de Personnage pour PMT v2 (Portes, Monstres et Trésors), un rétro-clone de D&D B/X (adaptation de Labyrinth Lord par Arasmo). Les PDFs du jeu sont disponibles gratuitement sur le site du Scriptorium.D100.fr ( http://www.scriptorium.d100.fr/index.php/lesparchemins/portes-monstres-tresors/ ). Un script API est disponible pour accélérer la crétion de personnage. Voir le [readme](https://github.com/Roll20/roll20-character-sheets/blob/master/PortesMonstresTresors/ReadMe.md). v4.1 (22/02/2016)." } diff --git a/SavageWorlds-Tabbed/SW_CharSheet-tabbed.css b/SavageWorlds-Tabbed/SW_CharSheet-tabbed.css index 09873d3604..9eca170e2e 100644 --- a/SavageWorlds-Tabbed/SW_CharSheet-tabbed.css +++ b/SavageWorlds-Tabbed/SW_CharSheet-tabbed.css @@ -7,6 +7,87 @@ semi-trans75.png = 75% opacity semi-trans-grayish.png = 75% opacity */ +/*----------- Google Fonts for Cyberpunk --------*/ +/*font-family: 'Audiowide', cursive; + +font-family: 'Days One', sans-serif;*/ + +/*----------- Font Information -----------*/ +/*@font-face { + font-family: 'Cinzel'; + font-style: normal; + font-weight: 400; + src: url(http://themes.googleusercontent.com/static/fonts/cinzel/v1/Hm1qjDlZpOdVXoa-QGE7_w.ttf) format('truetype'); +} +@font-face { + font-family: 'Shadows Into Light'; + font-style: normal; + font-weight: 400; + src: url(http://themes.googleusercontent.com/static/fonts/shadowsintolight/v3/clhLqOv7MXn459PTh0gXYBayoCksK7A5ZWkzVNukUdQ.ttf) format('truetype'); +} + +@font-face { + font-family: 'Covered By Your Grace'; + font-style: normal; + font-weight: 400; + src: url(http://themes.googleusercontent.com/static/fonts/coveredbyyourgrace/v3/6ozZp4BPlrbDRWPe3EBGA8Swx7O1nRJXGXrmuE0DD7s.ttf) format('truetype'); +} + +@font-face { + font-family: 'Rock Salt'; + font-style: normal; + font-weight: 400; + src: url(http://themes.googleusercontent.com/static/fonts/rocksalt/v3/Q94aHXFHGip10K5uxi1jOKCWcynf_cDxXwCLxiixG1c.ttf) format('truetype'); +} + +@font-face { + font-family: 'Bad Script'; + font-style: normal; + font-weight: 400; + src: url(http://themes.googleusercontent.com/static/fonts/badscript/v2/rL_b2ND61EQmMOJ8CRr1fi3USBnSvpkopQaUR-2r7iU.ttf) format('truetype'); +} + +@font-face { + font-family: 'Calligraffitti'; + font-style: normal; + font-weight: 400; + src: url(http://themes.googleusercontent.com/static/fonts/calligraffitti/v4/vLVN2Y-z65rVu1R7lWdvyF9q9cSakIY5dTu4rft1WBw.ttf) format('truetype'); +} + +@font-face { + font-family: 'Homemade Apple'; + font-style: normal; + font-weight: 400; + src: url(http://themes.googleusercontent.com/static/fonts/homemadeapple/v3/yg3UMEsefgZ8IHz_ryz86J9Wgegw1HyrDAZq28nXLYY.ttf) format('truetype'); +} + +@font-face { + font-family: 'Nothing You Could Do'; + font-style: normal; + font-weight: 400; + src: url(http://themes.googleusercontent.com/static/fonts/nothingyoucoulddo/v3/jpk1K3jbJoyoK0XKaSyQAQB8Hyktk_aPnlUAWJgZcX8.ttf) format('truetype'); +} + +@font-face { + font-family: 'Architects Daughter'; + font-style: normal; + font-weight: 400; + src: url(http://themes.googleusercontent.com/static/fonts/architectsdaughter/v3/RXTgOOQ9AAtaVOHxx0IUBOlC2pU_uJZcAXPUd4HCQp8.ttf) format('truetype'); +} + +@font-face { + font-family: 'Audiowide'; + font-style: normal; + font-weight: 400; + src: url(http://themes.googleusercontent.com/static/fonts/audiowide/v1/8XtYtNKEyyZh481XVWfVOqCWcynf_cDxXwCLxiixG1c.ttf) format('truetype'); +} + +@font-face { + font-family: 'Days One'; + font-style: normal; + font-weight: 400; + src: url(http://themes.googleusercontent.com/static/fonts/daysone/v3/mM2FsD73BN33S6yWJhnlqfesZW2xOQ-xsNqO47m55DA.ttf) format('truetype'); +}*/ @font-face { font-family: 'cinzelregular'; @@ -92,6 +173,14 @@ semi-trans-grayish.png = 75% opacity } +/*@font-face { + font-family: 'Rufscript'; + src: url('http://www.geeksville.us/fonts/Rufscript_v2.ttf') format('opentype') + font-weight: normal; + font-style: normal; + +}*/ + /*Font Drop Down Menu*/ .sheet-fontDropdown { /* fixed widths work best;*/ @@ -203,7 +292,10 @@ semi-trans-grayish.png = 75% opacity /*font-family: 'Nothing You Could Do', cursive;*/ font-size: 25px; } - +/*.sheet-font9 { + font-family: "BlackletterHand"; + font-size: 25px; +}*/ .sheet-font10 { font-family: "Architect"; /*font-family: 'Architects Daughter', cursive;*/ @@ -277,11 +369,19 @@ semi-trans-grayish.png = 75% opacity .sheet-useBackground input[value="1"]:checked ~ *.sheet-background { background-image: none; background-color: white; + /*background-image: url("http://www.geeksville.us/roll20/oldMap_seamless_2.png"); + background-size: 845px 900px;*/ + /*background-repeat: no-repeat;*/ + /*background-attachment: fixed;*/ + /*background-position: center; + background-origin: content-box;*/ } .sheet-useBackground input[value="2"]:checked ~ *.sheet-background { background-image: url("http://www.geeksville.us/roll20/oldMap_seamless_2.png"); background-size: 845px 900px; + /*background-repeat: no-repeat;*/ + /*background-attachment: fixed;*/ background-position: center; background-origin: content-box; } @@ -289,13 +389,19 @@ semi-trans-grayish.png = 75% opacity .sheet-useBackground input[value="3"]:checked ~ *.sheet-background { background-image: url("http://www.geeksville.us/roll20/Z-background.jpg"); background-size: 845px 564px; + /*background-repeat: no-repeat;*/ + /*background-attachment: fixed;*/ background-position: center; background-origin: content-box; } .sheet-useBackground input[value="4"]:checked ~ *.sheet-background { + /*background-image: url("http://www.geeksville.us/roll20/NYC-Night_2.jpg");*/ + /*background-image: url("http://www.geeksville.us/roll20/noir3.jpg");*/ background-image: url("http://www.geeksville.us/roll20/NewNoir2.jpg"); background-size: 850px 920px; + /*background-repeat: no-repeat;*/ + /*background-attachment: fixed;*/ background-position: center; background-origin: content-box; } @@ -303,6 +409,8 @@ semi-trans-grayish.png = 75% opacity .sheet-useBackground input[value="5"]:checked ~ *.sheet-background { background-image: url("http://www.geeksville.us/roll20/LastParsec-Background.jpg"); background-size: 840px 1060px; + /*background-repeat: no-repeat;*/ + /*background-attachment: fixed;*/ background-position: center; background-origin: content-box; -webkit-border-image:url("http://www.geeksville.us/roll20/LastParsec-Border.png"); /* Safari 3.1-5 */ @@ -315,21 +423,28 @@ semi-trans-grayish.png = 75% opacity .sheet-useBackground input[value="6"]:checked ~ *.sheet-background { background-image: url("http://www.geeksville.us/roll20/supers.jpg"); background-size: 840px 564px; + /*background-repeat: no-repeat;*/ + /*background-attachment: fixed;*/ background-position: center; background-origin: content-box; } .sheet-useBackground input[value="7"]:checked ~ *.sheet-background { + /*background-image: url("http://www.geeksville.us/roll20/cyberpunk2.jpg");*/ background-image: url("http://www.geeksville.us/roll20/cyberpunk-2.5.jpg"); background-size: 840px 840px; + /*background-repeat: no-repeat;*/ + /*background-attachment: fixed;*/ background-position: center; background-origin: content-box; } .sheet-useBackground input[value="8"]:checked ~ *.sheet-background { /*Hellfrost*/ + /*background-image: url("http://www.geeksville.us/roll20/cyberpunk2.jpg");*/ background-image: url("http://www.geeksville.us/roll20/Hellfrost_4.jpg"); background-size: 840px 840px; background-repeat: repeat; + /*background-attachment: fixed;*/ background-position: center; background-origin: content-box; } @@ -347,6 +462,7 @@ semi-trans-grayish.png = 75% opacity background-image: url("http://www.geeksville.us/roll20/lankhmar-bg-1.jpg"); background-size: 840 840px; background-repeat: repeat; + /*background-attachment: fixed;*/ background-position: center; background-origin: content-box; } @@ -448,6 +564,30 @@ semi-trans-grayish.png = 75% opacity display: inline-block; } +/*.sheet-playDisclaimer input[value="3"]:checked + span.sheet-disclaimer::before { + content: "The Last Parsec logo is a trademark of Pinnacle Entertainment Group. Used with permission."; +}*/ + +/*.sheet-playDisclaimer input[value="2"]:checked + span.sheet-disclaimer::before { + content: "The Pirates of the Spanish Main logo is a trademark of Pinnacle Entertainment Group. Used with permission."; +}*/ + +/*.sheet-playDisclaimer input[value="5"]:checked + span.sheet-disclaimer::before { + content: "The Necessary Evil logo is a trademark of Pinnacle Entertainment Group. Used with permission."; +}*/ + +/*.sheet-playDisclaimer input[value="6"]:checked + span.sheet-disclaimer::before { + content: "The Deadlands logo is a trademark of Pinnacle Entertainment Group. Used with permission."; +}*/ + +/*.sheet-playDisclaimer input[value="7"]:checked + span.sheet-disclaimer::before { + content: "The Deadlands: Noir logo is a trademark of Pinnacle Entertainment Group. Used with permission."; +}*/ + +/*.sheet-playDisclaimer input[value="8"]:checked + span.sheet-disclaimer::before { + content: "The Deadlands: Hell on Earth logo is a trademark of Pinnacle Entertainment Group. Used with permission."; +}*/ + .sheet-playDisclaimer input[value="9"]:checked + span.sheet-disclaimer::after { content: "logo is a trademark of Gun Metal Games. Used with permission."; } @@ -592,7 +732,11 @@ input.sheet-rt2:checked + span.sheet-rt2 { /*----------- Character Sheet Type setup --------------*/ .charsheet div.sheet-player, -.charsheet div.sheet-npc { +.charsheet div.sheet-npc { + /*visibility: hidden; + opacity: 0; + max-height:0; + overflow: hidden;*/ display: none; float: left; } @@ -600,6 +744,10 @@ input.sheet-rt2:checked + span.sheet-rt2 { .charsheet input.sheet-is-npc:checked ~ div.sheet-npc, .charsheet input.sheet-is-npc:not(:checked )~ div.sheet-player { + /*max-height: 999999px; + visibility: visible; + opacity: 1; + transition: opacity 0.5s linear 0s;*/ display: block; overflow: auto; } @@ -649,7 +797,11 @@ input.sheet-rt2:checked + span.sheet-rt2 { div.sheet-core-content { display: none; width:840px;} .charsheet div[class^="sheet-section"], -.charsheet div[class^="sheet-options"] { +.charsheet div[class^="sheet-options"] { + /*visibility: hidden; + opacity: 0; + max-height:0; + overflow: hidden;*/ display: none; } @@ -664,10 +816,19 @@ div.sheet-core-content { display: none; width:840px;} .charsheet input.sheet-attacks:checked ~ div.sheet-options-attack, .charsheet input.sheet-defend:checked ~ div.sheet-options-defend, .charsheet input.sheet-misc:checked ~ div.sheet-options-other, { + /*max-height: 999999px; + visibility: visible; + opacity: 1; + transition: opacity 0.5s linear 0s; + overflow: auto;*/ display: block; } -.charsheet input.sheet-tab99:checked ~ div[class^="sheet-section"] { +.charsheet input.sheet-tab99:checked ~ div[class^="sheet-section"] { + /*max-height: 999999px; + visibility: visible; + opacity: 1; + transition: opacity 0.5s linear 0s;*/ display: block; } @@ -678,6 +839,7 @@ div.sheet-core-content { display: none; width:840px;} .charsheet input.sheet-tab, .charsheet input.sheet-combat-options { + /*width: 100px;*/ width: 87px; height: 40px; cursor: pointer; @@ -690,9 +852,11 @@ div.sheet-core-content { display: none; width:840px;} .charsheet span.sheet-combat-options { text-align: center; display: inline-block; /*originally inline-block*/ + /*font-size: 13px; */ font-size: 11px; background: #c7c3b0; /*originally 4a6486*/ color: black; /*originally white*/ + /*font-family: "Tinos", "Quattrocento", "Lustria", "Buenardserif", serif;*/ font-weight: bold; border-radius: 4px; @@ -838,7 +1002,9 @@ input[type=number]::-webkit-inner-spin-button { .sheet-standardtext { background-color: transparent; background-image: url("http://i.imgur.com/e1Cfspj.png"); + /*background-image: url("https://raw.githubusercontent.com/finderski/roll20-character-sheets/master/SavageWorlds-Tabbed/semi-trans75.png");*/ color: black; + /*font-weight: bold;*/ font-size: .75em; } @@ -848,6 +1014,7 @@ input[type=number]::-webkit-inner-spin-button { border-right: none; border-left: none; border-bottom: solid 1px; + /*background-color: transparent;*/ background-image: url("http://i.imgur.com/e1Cfspj.png"); color: black; font-weight: bold; @@ -896,6 +1063,8 @@ input.sheet-standardNum { border-left: none; border-bottom: solid 1px; text-align: center; + /*color: transparent;*/ + /*background-color: transparent;*/ background-image: url("http://i.imgur.com/e1Cfspj.png"); color: black; font-weight: bold; @@ -904,6 +1073,8 @@ input.sheet-standardNum { input.sheet-derivedStat { width: 37px; text-align: center; + /*background-color: white;*/ + /*background-color: transparent;*/ background-image: url("http://i.imgur.com/e1Cfspj.png"); color: black; font-weight: bold; @@ -922,6 +1093,7 @@ img.sheet-protect { input.sheet-modifier { width: 35px; text-align: center; + /*background-color: transparent;*/ background-image: url("http://i.imgur.com/e1Cfspj.png"); color: black; font-weight: bold; @@ -942,12 +1114,14 @@ span.sheet-nameRankXp { font-size: 12px; padding-left: 5px; padding-right: 5px; + /*background-color: #c7c3b0;*/ color: black; background-image: url("http://www.geeksville.us/roll20/semi-trans-grayish.png"); border-radius: 8px; } .sheet-spaceBetween { + /*line-height: 35px;*/ font-weight: bold; color: black; background-image: url('http://i.imgur.com/e1Cfspj.png'); @@ -972,11 +1146,15 @@ label.sheet-AttributeLabel { width: 785px; padding: 5px; margin-bottom: 5px; + /*background-image: url("http://i.imgur.com/e1Cfspj.png");*/ background-image: url("http://i.imgur.com/e1Cfspj.png"); + /*background-image: url("https://raw.githubusercontent.com/finderski/roll20-character-sheets/master/SavageWorlds-Tabbed/semi-trans75.png");*/ } button[type=roll].sheet-GM-button::before { background-image: none; + /*background-color: #f2f5d3;*/ + /*background-color: white;*/ font-size: 13px; font-family: sans-serif; content: "gm"; @@ -1017,6 +1195,7 @@ label.sheet-AttributeLabel { .sheet-AttBorder > input.sheet-NewDieType:checked{ height: auto; + /*margin-top: -2px;*/ } .sheet-AttMod { @@ -1044,6 +1223,12 @@ label.sheet-AttributeLabel { display: inline-block; } +/*.sheet-additionalrules{ + width:46%; + margin-left:10px; + margin-right:10px; +}*/ + .sheet-formula{ display:inline-block; } @@ -1071,6 +1256,12 @@ label.sheet-AttributeLabel { margin-bottom:1px; } +/*.sheet-col strong.sheet-dee { + font-size: 1.4em; + font-weight: bold; + padding-right: 4px; +}*/ + .charsheet input.sheet-short { width: 3.5em; text-align: center; @@ -1119,6 +1310,9 @@ select.sheet-dtype { color: black; } +/*.sheet-DStatsTable th { + text-align: center; +}*/ /*----------- End Main Setup -----------*/ @@ -1186,73 +1380,113 @@ select.sheet-dtype { } .sheet-d0 { + /*background-position: -411px -1px;*/ width: 35px; height: 35px; + /*background-image: url("https://i.imgur.com/zkgyBOi.png");*/ font-family: "dicefontd4"; font-size: 50px; color: red; line-height:25px; text-align: center; + /*text-align: right;*/ + /*line-height: 25px;*/ background-image: url("http://i.imgur.com/e1Cfspj.png"); + /*padding-bottom: 25px;*/ + /*background-repeat: no-repeat;*/ + /*color: transparent;*/ + /*display: inline-block;*/ display: none; } .sheet-d4 { + /*background-position: -411px -1px;*/ width: 35px; height: 35px; + /*background-image: url("https://i.imgur.com/zkgyBOi.png");*/ font-family: "dicefontd4"; font-size: 50px; color: red; line-height:25px; text-align: center; + /*text-align: right;*/ + /*line-height: 25px;*/ background-image: url("http://i.imgur.com/e1Cfspj.png"); + /*padding-bottom: 25px;*/ + /*background-repeat: no-repeat;*/ + /*color: transparent;*/ + /*display: inline-block;*/ display: none; } .sheet-d6 { + /*background-position: -411px -1px;*/ width: 35px; height: 35px; + /*background-image: url("https://i.imgur.com/zkgyBOi.png");*/ font-family: "dicefontd6"; font-size: 40px; color: black; line-height:35px; text-align: center; + /*text-align: right;*/ + /*line-height: 25px;*/ background-image: url("http://i.imgur.com/e1Cfspj.png"); + /*background-repeat: no-repeat;*/ + /*color: transparent;*/ display: inline-block; display: none; } .sheet-d8 { + /*background-position: -703px -1px;*/ width: 35px; height: 35px; + /*background-image: url("https://i.imgur.com/zkgyBOi.png");*/ font-family: "dicefontd8"; font-size: 40px; color: black; line-height:35px; text-align: center; + /*text-align: right;*/ + /*line-height: 25px;*/ background-image: url("http://i.imgur.com/e1Cfspj.png"); + /*background-repeat: no-repeat;*/ + /*color: transparent;*/ display: inline-block; display: none; } .sheet-d10 { + /*background-position: -411px -1px;*/ width: 35px; height: 35px; + /*background-image: url("https://i.imgur.com/zkgyBOi.png");*/ font-family: "dicefontd10"; font-size: 45px; color: blue; line-height:35px; text-align: center; + /*text-align: right;*/ + /*line-height: 25px;*/ background-image: url("http://i.imgur.com/e1Cfspj.png"); + /*background-repeat: no-repeat;*/ + /*color: transparent;*/ display: inline-block; display: none; } .sheet-d12 { + /*background-position: -411px -1px;*/ width: 35px; height: 35px; + /*background-image: url("https://i.imgur.com/zkgyBOi.png");*/ font-family: "dicefontd12"; font-size: 40px; color: green; line-height:35px; text-align: center; + /*text-align: right;*/ + /*line-height: 25px;*/ background-image: url("http://i.imgur.com/e1Cfspj.png"); + /*background-repeat: no-repeat;*/ + /*color: transparent;*/ display: inline-block; display: none; } @@ -1459,10 +1693,14 @@ select.sheet-dtype { .sheet-HideVehicles:checked ~ *[class^="sheet-vehicleTypes"], .sheet-HideVehicles:checked ~ *.sheet-vehicleTypes.sheet-allVehicles, +/*.sheet-HideSailing:checked ~ *.sheet-ship-sailing.sheet-isSailing,*/ .sheet-HideSailing:checked ~ *.sheet-isSailing, .sheet-HideFlying:checked ~ *.sheet-isFlying, .sheet-HideGround:checked ~ *.sheet-isGround, .sheet-HideWalker:checked ~ *.sheet-isWalker, +/*.sheet-HideFlying:checked ~ *.sheet-ship-flying.sheet-isFlying,*/ +/*.sheet-HideGround:checked ~ *.sheet-ship-groundvehicle.sheet-isGround, +.sheet-HideWalker:checked ~ *.sheet-ship-walker.sheet-isWalker,*/ .sheet-HideGear:checked ~ *.sheet-gear, .sheet-HideSpellsd:checked ~ *.sheet-spellsd, @@ -1837,6 +2075,7 @@ select.sheet-dtype { width: 20%; height: 16px; font-size: 9px; + /*background: #65763c;*/ background: #c7c3b0; /*#93537c;*/ color: black; /*white;*/ font-weight: bold; @@ -1850,6 +2089,8 @@ select.sheet-dtype { width: 5%; height: 16px; font-size: 9px; + /*font-family: "Pictos";*/ + /*background: #65763c;*/ background: black; /*#93537c;*/ color: white; /*white;*/ font-weight: bold; @@ -1910,6 +2151,8 @@ select.sheet-dtype { cursor: pointer; margin-left: auto; margin-top: auto; + /*position: absolute; + right: 20%;*/ opacity: 0; z-index: 9999; } @@ -1920,11 +2163,13 @@ select.sheet-dtype { cursor: pointer; margin-left: auto; margin-top: auto; + /*position: absolute; right: 20%;*/ opacity: 0; z-index: 9999; } +/*.charsheet span.sheet-is-config,*/ .charsheet span.sheet-is-wcSkills, .charsheet span.sheet-is-mSkills, .charsheet span.sheet-is-mSkills2, @@ -1984,12 +2229,23 @@ select.sheet-dtype { border-radius: 4px; } -.charsheet input.sheet-HideWCSkills2 { +.charsheet input.sheet-HideWCSkills2/*, +.charsheet input.sheet-use528, +.charsheet input.sheet-use9212, +.charsheet input.sheet-h528, +.charsheet input.sheet-h9212, +.charsheet input.sheet-augEnd, +.charsheet input.sheet-hide528*/ { + /*width: 20%;*/ + /*width: 158px;*/ + /*height: 16px;*/ width: 90px; height:2.2em; cursor: pointer; margin-left: auto; margin-top: auto; + /*position: absolute; + right: 20%;*/ opacity: 0; z-index: 9999; } @@ -2000,17 +2256,33 @@ select.sheet-dtype { display: block; background: #000; color: white; + /*text-shadow:0px 0px 2px #000,0px 0px 2px #000,0px 0px 2px #000;*/ box-shadow:none; + /*float:left!important;*/ + /*margin-bottom:0px;*/ font-size:0.9em; height:2.2em; } -.charsheet span.sheet-is-wcSkills2 { /*Close Config: grayish background with black text*/ +.charsheet span.sheet-is-wcSkills2/*, +.charsheet span.sheet-528, +.charsheet span.sheet-h528, +.charsheet span.sheet-9212, +.charsheet span.sheet-aEnd*/ { /*Close Config: grayish background with black text*/ + /*background-color: #c7c3b0; + color: black;*/ + /*display: block;*/ + /*text-shadow:0px 0px 2px #000,0px 0px 2px #000,0px 0px 2px #000;*/ + /*box-shadow:none;*/ + /*float:left!important;*/ + /*margin-bottom:0px;*/ background: #000; border-radius: 4px; color: white; font-size: 0.9em; height: 2.2em; + /*width: 158px; + margin-left: -158px;*/ width: 90px; margin-left: -90px; border-radius: 4px; @@ -2020,12 +2292,19 @@ select.sheet-dtype { line-height: 2.2em; } -.charsheet .sheet-HideWCSkills2:checked + span.sheet-is-wcSkills2 { +.charsheet .sheet-HideWCSkills2:checked + span.sheet-is-wcSkills2/*, +.charsheet .sheet-use528:checked + span.sheet-528, +.charsheet .sheet-use9212:checked + span.sheet-9212, +.charsheet .sheet-h528:checked + span.sheet-h528, +.charsheet .sheet-h9212:checked + span.sheet-h9212, +.charsheet .sheet-augEnd:checked + span.sheet-aEnd*/ { background: #000; border-radius: 4px; color: white; font-size: 0.9em; height:2.2em; + /*width: 158px; + margin-left: -158px;*/ width: 90px; margin-left: -90px; display: inline-block; @@ -2054,6 +2333,8 @@ select.sheet-dtype { width: 90%; max-width: 200px; text-align: center; + /*color: #755b27; + background-color: #dbc792;*/ color: white; background-color: black; border-radius: 15px; @@ -2068,7 +2349,10 @@ select.sheet-dtype { width: 90%; max-width: 200px; min-height: 250px; + /*height: 250px;*/ background: url(http://www.geeksville.us/roll20/Ace_of_Spades5.jpg) top left; + /*background-size: 200px 250px;*/ + /*background-size: cover;*/ background-size: 100% 100%; background-repeat: no-repeat; padding: 5px; @@ -2084,8 +2368,12 @@ select.sheet-dtype { .sheet-rolltemplate-clubsdamage table, .sheet-rolltemplate-combined table { width: 95%; + /*height: 250px;*/ + /*padding: 2px;*/ font-family: "Trebuchet MS", Helvetica, sans-serif; border-spacing: 0; + /*position: relative; + top: 10%;*/ } .sheet-rolltemplate-spadestrait2 caption, @@ -2098,6 +2386,7 @@ select.sheet-dtype { .sheet-rolltemplate-clubsdamage th { height: 1.0em; font-size: 1.0em; + /*border: solid 1px;*/ border-collapse: collapse; margin: 5px; } @@ -2112,6 +2401,7 @@ select.sheet-dtype { vertical-align: top; font-family: "Trebuchet MS", Helvetica, sans-serif; font-size: 0.875em; + /*border-collapse: collapse;*/ border-bottom: solid 1px; } @@ -2148,6 +2438,7 @@ select.sheet-dtype { } .sheet-rolltemplate-spadestrait2 .sheet-rtcard .sheet-fakeroll .inlinerollresult{ + /*padding-right: 0px;*/ text-align: right; color: #4d4d4d; font-weight: normal; @@ -2196,7 +2487,10 @@ select.sheet-dtype { /* Version 2 Roll Template */ .sheet-rolltemplate-solidtrait h2.sheet-caption { + /*width: 95%;*/ text-align: center; + /*color: #dbc792; + background-color: #755b27;*/ color: white; background-color: black; border-radius: 15px; @@ -2226,6 +2520,9 @@ select.sheet-dtype { font-size: 1.5em; margin-top: 5px; margin-bottom: 15px; + /*border: solid 1px #755b27; + background-color: #755b27; + color: #dbc792;*/ border: solid 1px black; background-color: black; color: white; @@ -2253,6 +2550,7 @@ select.sheet-dtype { .sheet-rolltemplate-clubsdamage h2.sheet-caption { width: 90%; max-width: 200px; + /*width: 200px;*/ text-align: center; color: white; background-color: #680000; @@ -2265,10 +2563,12 @@ select.sheet-dtype { .sheet-rolltemplate-clubsdamage div.sheet-rtcard, .sheet-rolltemplate-combined div.sheet-AceClubs { + /*width: 200px;*/ width: 90%; max-width: 200px; min-height: 250px; background: url('http://www.geeksville.us/roll20/Ace_of_Clubs-Red-light.jpg') top left; + /*background-size: cover;*/ background-size: 100% 100%; background-repeat: no-repeat; padding: 5px; @@ -2279,7 +2579,10 @@ select.sheet-dtype { /* Damage Roll Solid Template */ .sheet-rolltemplate-soliddamage h2.sheet-caption { + /*width: 95%;*/ text-align: center; + /*color: #dbc792; + background-color: #755b27;*/ color: white; background-color: #680000; border-radius: 15px; @@ -2308,6 +2611,9 @@ select.sheet-dtype { font-size: 1.5em; margin-top: 5px; margin-bottom: 15px; + /*border: solid 1px #755b27; + background-color: #755b27; + color: #dbc792;*/ border: solid 1px #680000; background-color: #680000; color: white; @@ -2345,6 +2651,8 @@ select.sheet-dtype { .sheet-rolltemplate-combined caption { font-size: 1.5em; margin: 5px; + /*border: solid 1px #4C0000;*/ + /*background-color: #4C0000;*/ color: #4C0000; border-radius: 15px; padding: 10px; @@ -2353,6 +2661,7 @@ select.sheet-dtype { .sheet-rolltemplate-combined th { height: 1.0em; font-size: 1.0em; + /*border: solid 1px;*/ border-collapse: collapse; margin: 5px; } diff --git a/SavageWorldsFrench/ReadMe.md b/SavageWorldsFrench/ReadMe.md index b22a7d0682..72aa857006 100644 --- a/SavageWorldsFrench/ReadMe.md +++ b/SavageWorldsFrench/ReadMe.md @@ -1,90 +1,113 @@ # Savage Worlds (french) -Feuille de personnage (FdP) avec jets intégrés pour **Savage Worlds**, basée sur le Livre de Base (LdB) de la version éditée en français par [Black Book Editions](http://www.black-book-editions.fr/index.php?site_id=278). +Feuille de personnage (FdP) avec jets intégrés pour **Savage Worlds** et **Deadlands Reloaded**, basée sur le Livre de Base (LdB) de la version éditée en français par [Black Book Editions](http://www.black-book-editions.fr/catalogue.php?id=58). # Version courante -1.2 [Capture d'écran](sawofr.png) +1.4 [Capture d'écran](sawofr.jpg) +[Style Deadlands](sawofr_style_deadlands.png) -#Divers notes +#Notes sur les Jets -##A propos des jets -Dans le cadre de Savage Worlds et de cette FdP, activer l'option des dés 3D, automatiquement lancés, est fortement recommandé : +##Pénalités +Les pénalités de jet dues aux Blessures, à la Fatigue et à l'Encombrement sont automatiquement prises en compte dans les 3 modes de jet (voir ci-dessous). +Dans les 2 modes d'affichages par template, l'état du personnage peut être optionnellement affiché (activé par défaut), rappelant ces éventuelles pénalités : +![Affichage des pénalistés dans les jets avec template](sawofr_template_penalistes.png) -![Activer les dés 3D](sawofr_des3d.png) +##Modes d'affichage des jets +La feuille permet 3 modes d'affichage des jets : +![Choix du type de jet](sawofr_choixjet.png) +Ces options sont détaillées ci-dessous. -Les pénalités de jet dues aux Blessures, à la Fatigue et à l'Encombrement sont automatiquement prises en compte dans les 2 modes de jet (voir ci-dessous), et affichées/rappelées (pour information) dans le chat. +Ce choix se fait par personnage, en haut de la FdP, et peut être changé à tout moment (on peut passer de l'un à l'autre, au besoin). -La feuille permet 2 types de jets : - -* Option 1 : afficher **Succès + Relances** -* Option 2 : afficher les **Jets bruts** - -Ce choix se fait par personnage, en haut de la FdP, et peut être changé à tout moment (on peut passer de l'un à l'autre, au besoin) : -![Choix du type de jet](sawofr_choixjet.png) - -Que cela soit dans l'option 1 ou 2, un modificateur ponctuel/circonstanciel est toujours demandé : -![Modificateur au jet](sawofr_modificateur.png) - -Dans le cas des Jets de Lancer, de Tir, ou d'armes/attaques utilisant une de ces compétences, la Portée est demandée et intégrée au jet : +Quel que soit le mode choisi, un modificateur ponctuel/circonstanciel est toujours demandé : +![Modificateur au jet](sawofr_modificateur.png) +Un modificateur du même genre est demandé pour le jet de dégâts intégrés aux jets d'attaques. +Dans le cas des Jets de Lancer, de Tir, ou d'armes/attaques utilisant une de ces compétences, la Portée est demandée et intégrée au jet : ![Portée des Tirs et Lances](sawofr_portee.png) -Pour les jets de Tir, l'utilisation du Dé Joket est optionnelle (pour gérer les Cadences de Tir supérieures à 1) et son utilisation doit être confirmée : - +Pour les jets de Tir, l'utilisation du Dé Joket est optionnelle (pour gérer les Cadences de Tir supérieures à 1) et son utilisation doit être confirmée : ![Utilisation Dé Joker](sawofr_dejokerutil.png) ###Option 1 : Succès + Relances -La feuille demande une difficulté ou une cible (pour les jets d'attaques et dégâts) avant de lancer les dés. - -![Demande d'une difficulté](sawofr_difficulte.png) - -Une cible dans Roll20 est un autre pion, lequel doit être associé à une feuille de personnage dont les caractéristiques ont été renseignées. - +Les jets demande une difficulté, ou une cible pour les jets d'attaques et dégâts si l'option est activée, avant de lancer les dés. +![Demande d'une difficulté](sawofr_difficulte.png) +Une cible dans Roll20 est un autre pion, lequel doit être associé à une feuille de personnage dont les caractéristiques ont été renseignées. ![Choix d'une cible](sawofr_cible.png) -Le choix d'une cible ou le renseignement d'une difficulté permet de calculer et d'afficher la réussite du jet (d'attribut, compétence, attaque ou dégâts) avec la lecture suivante des résultats : +Le choix d'une cible ou le renseignement d'une difficulté permet de calculer et d'afficher la réussite du jet (d'attribut, de compétence, d'attaque ou de dégâts) avec les possibilités de résultat suivantes : -* 0 succès+relances : le jet est un échec, -* 1 succès+relances : le jet est une réussite, sans relance -* 2 succès+relances : le jet est une réussite, avec 1 relance -* 3 succès et relances : le jet est une réussite, avec 2 relances -* etc. (nombre de relance = résultat -1) - -![Template option 1](sawofr_templateoption1.png) - -Le détail du calcul (et du résultat individuel des dés) est visible dans l'info-bulle du jet : +* Échec (0 succès+relances), +* Succès sans relance (1 succès+relances) +* Succès+Relances : +** résultat de 2 : un succès et une relance +** résultat de 3 : un sucècs et 2 relances +** etc. (nombre de relances = résultat affiché -1) +Le détail du calcul (et du résultat individuel des dés) est visible dans l'info-bulle du jet : ![Détail des calculs](sawofr_infobulleoption1.png) -###Option 2 : Jets bruts -La feuille ne demande pas d'autre renseignement que le Modificateur circonstanciel (cf. ci-dessus), effectue le jet demandé (y compris dégâts s'il s'agit d'une arme/attaque) et affiche le total de chaque jet : - -![Template option 2](sawofr_templateoption2.png) +Dans le cas des attaques, en cas de relance, 1d6 explosif est automatiquement ajouté aux jets de dégâts : +![Template option 1](sawofr_templateoption1.png) +NB : techniquement, aboutir à ce résultat contraint à lancer 2 fois le jet de dégâts (une fois avec, une fois sans le +1d6!!) et d'afficher l'un ou l'autre en fonction de la réussite de l'attaque (si relance donc). Donc avec les dé 3D activés, cela peut apparaître un peu ... confus (beaucoup de dés sont lancés). +###Option 2 : Total des jets +La feuille ne demande pas d'autre renseignement que les éventuels Modificateurs circonstanciels (cf. ci-dessus), effectue le jet demandé (y compris dégâts s'il s'agit d'une arme/attaque) et affiche un template avec le total de chaque jet. +Le détail du calcul (et du résultat individuel des dés) est visible dans l'info-bulle du jet. +![Jet total et détail des calculs](sawofr_infobulleoption2.png) Au MJ et/ou aux joueurs de calculer la réussite ou l'échec, les relances éventuelles etc. -Le détail du calcul (et du résultat individuel des dés) est visible dans l'info-bulle du jet : +Dans le cas d'attaque, le d6 explosif de dégâts supplémentaires en cas de relance est directement lancé, affiché à part (au MJ et/ou aux joueurs de le prendre en compte si nécessaire) : +![Template option 2](sawofr_templateoption2.png) -![Détail des calculs](sawofr_infobulleoption2.png) +###Option 3 : Jets bruts +La feuille ne demande pas d'autre renseignement que les éventuels Modificateurs circonstanciels (cf. ci-dessus), effectue le jet demandé (y compris dégâts s'il s'agit d'une arme/attaque) et l'affiche entièrement détaillé dans le chat, façon "macro", sans template. +Dans le cas d'attaque, le d6 explosif de dégâts supplémentaires en cas de relance est directement lancé, affiché à part (au MJ et/ou aux joueurs de le prendre en compte si nécessaire). +![Jet option 3](sawofr_jetoption3.png) + +#Autres Notes ## Mise en place des pions -Les 3 "barres"/propriétés visibles des pions peuvent être associées à n'importe quel attribut de la FdP, à votre convenance. +Les 3 "barres"/propriétés visibles des pions peuvent être associées à n'importe quel attribut de la FdP, à votre convenance. Il n'y a (pour l'instant) aucun automatisme lié à ces propriétés. ##Raccourcis/barre de macro -Pour l'instant, sur le serveur de production de Roll20, les boutons contenus dans les sections dynamiques/répétables ne peuvent pas être glisser/déposer dans la barre de macro pour créer un bouton "raccourcis". -Cela concerne, sur le FdP : compétences supplémentaire (au-delà de la liste complète du LdB, intégrée dans la FdP), et les armes/attaques au-delà des 3 premières. -En effet, pour pallier ce problème, la FdP propose donc par défaut 3 armes/attaques "fixes", dont le bouton peut être utilisé en macro/raccourcis. +Les boutons contenus dans les sections dynamiques/répétables peuvent être glissés/déposés dans la barre de macro pour créer un bouton "raccourcis". +Cela concerne, sur la FdP : compétences supplémentaire (au-delà de la liste complète du LdB, intégrée dans la FdP), et les armes/attaques au-delà des 3 premières. ##Pouvoirs -Aucun jet/automatisme n'est pour l'instant intégré dans la FdP concernant les Pouvoirs. -Les suggestions sont les bienvenues à ce sujet. +Aucun jet/automatisme n'est pour l'instant intégré dans la FdP concernant les Pouvoirs, si ce n'est de pouvoir les saisir et les montrer dans le chat. +Les suggestions sont les bienvenues à ce sujet. NB : décrémenter les PP automatiquement au lancement d'un pouvoir nécessiterait l'utilisation d'un script API, donc d'un compte "Pro". # Notes de version -##v1.2 (2015-12-22) +##v1.4 (2016-02-21) +Merci à Xo de Vorcen pour les tests ! +* Configuration + * Déplacement de la configuration dans un onglet dédié + * Option d'affichage aux couleurs de Deadlands Reloaded + * Option de configuration pour afficher/masquer les Possessions (masquée par défaut pour les PNJ et Extras) + * Options de configuration pour afficher/masquer les compétences, toutes ou une à une (sauf Tripes, dépendante du style Deadlands) + * Option de configuration pour les jets : template de succès+relances (défaut), template de total de jets, ou "jets bruts" (pas de template) + * Option de configuration pour les attaques avec succès+relances : choix entre cible/pion (défaut) ou saisie de difficulté + * Option d'affichage ou non des états du personnage (Secoué, Blessures, Fatigue) dans le template de jet +* Feuille + * Ajout de la caractéristique Trempe et la compétence Tripes, visibles uniquement en mode "Deadlands" + * Correction : les bonus de dégâts peuvent être négatifs + * Affichage adapté entre PJ/PNJ/Extra + * Stylisation de l'état Secoué, des Blessures et de la Fatigue + * Ajout un bouton d'affichage dans le chat de la description des pouvoirs + * Ajout d'un bouton d'agrandissement/réduction des Atouts, Handicaps, Signes particuliers, Richesse, des notes d'Armes et Pouvoirs +* Jets + * Possibilité de saisir un modificateur au jet de dégâts + * Jet de dégâts avec +1d6!! dégâts en mode succès+relances si relance, affichage d'un jet supplémentaire de +1d6!! dans les autres modes + * Amélioration de l'affichage des résultats de jets en mode succès+relances (indicateur d'échec, succès sans relance et succès+relances) + * Correction des malus de jets en état critique (-3 pour les Blessures et -2 pour la Fatigue) + +##v1.2 (2015-12-22) Equipement / Inventaire / Encombrement : ajout du poids individuel, gestion des poids décimaux, correction d'un bug lors de la suppression d'une ligne. ##v1.1 (2015-11-30) diff --git a/SavageWorldsFrench/sawofr.css b/SavageWorldsFrench/sawofr.css index 0da79218e4..5416ef734e 100644 --- a/SavageWorldsFrench/sawofr.css +++ b/SavageWorldsFrench/sawofr.css @@ -1,6 +1,6 @@ /* TEMPLATES */ .sheet-rolltemplate-sawo table { - width: 189px; + width: 100%; padding: 2px; border: none; background-color: #FBFCFC; @@ -36,177 +36,297 @@ .sheet-rolltemplate-sawo td.sheet-info { font-style: italic; background-color:#F6F1EC; + text-align: right; +} +.sheet-rolltemplate-sawo div.sheet-jetdesc{ + font-family: 'Verdana', serif; + font-size: 0.9em; + max-height: 140px; + overflow-y: auto; +} +/************************************** FDP ********************************************/ + /************************************** GENERAL *********************************/ +div, +button, +textarea, +span, +input, +select, +table, +tr, +td, +th{ + box-sizing: border-box; +} +input[type=radio], +input[type=checkbox], +span { + display : inline-block; +} +/***************************** CONFIGURATION *******************************************/ +div.sheet-configuration div.sheet-col{ + border : 2px dotted #888888; + margin-bottom: 10px; + min-height: 120px; + padding: 5px; +} +div.sheet-conftitre{ + display: block; + color: #888888; + font-weight: bold; + height: 25px; + text-align: center; +} +div.sheet-confcat, +div.sheet-optionEtat, +div.sheet-optionCible{ + color: #555555; + font-style: italic; + padding-left: 5px; + min-height: 25px; +} +.sheet-confcat{ + display: block; +} +.sheet-optionEtat{ + display: none; +} +.sheet-optionCible{ + display: none; +} +input[type=radio].sheet-styleRolrel:checked ~ .sheet-optionCible{ + display: inline-block; +} +input[type=radio].sheet-styleRolrel:checked ~ .sheet-optionEtat, +input[type=radio].sheet-styleRoljet:checked ~ .sheet-optionEtat{ + display: inline-block; +} +input[type=checkbox].sheet-optionEtat, +input[type=checkbox].sheet-optionCible{ + opacity: 0; + width: 50px; + min-height: 30px; + z-index: 10; +} +input[type=checkbox].sheet-optionEtat + span, +input[type=checkbox].sheet-optionCible + span{ + text-align: center; + width: 50px; + height: 25px; + margin-left: -52px; + vertical-align: bottom; + z-index: 1; + color: #777777; +} +input[type=checkbox].sheet-chkSkill { + display: inline-block; + opacity: 0; + width: 170px; + z-index: 10; + border: 1px solid black; +} +input[type=checkbox].sheet-chkSkill + span { + display: inline-block; + text-align: center; + width: 170px; + margin-left: -160px; + vertical-align: bottom; + z-index: 1; + color: #777777; +} +input[type=checkbox].sheet-chkRolrel, +input[type=checkbox].sheet-chkRoljet, +input[type=checkbox].sheet-chkRolbrut { + display: none; } -/* FDP */ input[type=radio].sheet-styleRolrel, -input[type=radio].sheet-styleRoljet{ - margin-left: 10px; - margin-right: 2px; +input[type=radio].sheet-styleRoljet, +input[type=radio].sheet-styleRolbrut{ + display : inline-block; + opacity: 0; + width: 120px; + min-height: 30px; + z-index: 10; + margin-top: -15px; } input[type=radio].sheet-styleRolrel + span, -input[type=radio].sheet-styleRoljet + span{ - font-size:11px; - color: #888888; - text-align:left; +input[type=radio].sheet-styleRoljet + span, +input[type=radio].sheet-styleRolbrut + span{ + display : inline-block; + text-align: center; + width: 120px; + height: 25px; + margin-left: -122px; + vertical-align: bottom; + z-index: 1; + color: #777777; } -span.sheet-smallspan{ - font-size:11px; - color: #888888; - text-align:left; +input[type=radio].sheet-styleRolrel + span:before, +input[type=radio].sheet-styleRoljet + span:before, +input[type=radio].sheet-styleRolbrut + span:before, +input[type=checkbox].sheet-optionEtat + span:before, +input[type=checkbox].sheet-optionCible + span:before, +input[type=checkbox].sheet-chkSkill + span:before{ + font-size: 1.2em; + font-family: 'pictos'; + color: #777777; + content:'*'; } -button[type="roll"]{ - padding: 0px 0px 0px 0px; - margin: 0px 0px 0px 0px; - text-shadow: none; - box-shadow: none; - text-align:left; - vertical-align: middle; - line-height: 0px; - height: 20px; - width: 20px; - font-size: 1em; - font-weight: normal; - color:#CD071E; - border-width: 1px; - border-style: solid; - border-color: rgba(34,66,143,0.5); - border-radius: 4px; -} -button[type="roll"]:hover{ - border-width: 1px; - border-color:#CD071E; +input[type=radio].sheet-styleRolrel:checked + span, +input[type=radio].sheet-styleRoljet:checked + span, +input[type=radio].sheet-styleRolbrut:checked + span, +input[type=checkbox].sheet-optionEtat:checked + span, +input[type=checkbox].sheet-optionCible:checked + span, +input[type=checkbox].sheet-chkSkill:checked + span { font-weight: bold; + color: #CD071E; } -button[type="roll"].sheet-btRolrel{ - width: 142px; - border-width: 1px; +input[type=radio].sheet-styleRolrel:checked + span:before, +input[type=radio].sheet-styleRoljet:checked + span:before, +input[type=radio].sheet-styleRolbrut:checked + span:before, +input[type=checkbox].sheet-optionEtat:checked + span:before, +input[type=checkbox].sheet-optionCible:checked + span:before, +input[type=checkbox].sheet-chkSkill:checked + span:before{ + font-weight: bold; + color: #CD071E; + content:'3'; +} +input[type=radio].sheet-onglmain, +input[type=radio].sheet-onglconfig{ + margin: 0; + margin-top: -4px; + margin-bottom: -4px; + padding: 0; + display: inline-block; + opacity: 0; + width: 110px; + height: 25px; + z-index: 2; +} +input[type=radio].sheet-onglmain + span, +input[type=radio].sheet-onglconfig + span{ + color: #666666; + background-color: #BBBBBB; + font-size:15px; + text-align:center; + display: inline-block; + width: 110px; + height: 28px; + margin: 0; + margin-left: -110px; + margin-right: 0px; + padding:0; + margin-bottom: -1px; + padding-top: 5px; + font-size: 0.9em; + text-transform: uppercase; border-style: solid; - border-color: transparent; - font-size:1em; + border-width: 1px; + border-color: #888888; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + z-index: 1; +} +input[type=radio].sheet-onglmain:checked + span, +input[type=radio].sheet-onglconfig:checked + span { font-weight: bold; color: black; - background-image:none; - background: transparent; - text-transform: uppercase; -} -button[type="roll"].sheet-btRolrel:before{ - content: "t "; - text-transform: lowercase; -} -button[type="roll"].sheet-btRolrel:hover:before{ - font-weight: bold; - color: #CD071E; -} -button[type="roll"].sheet-btRolrel:hover{ - border-width: 1px; - border-style: solid; - border-color:#CD071E; -} -input[type=radio].sheet-styleRolrel:checked ~ div.sheet-main button[type=roll].sheet-btRolrel{ - display: inline-block; -} -input[type=radio].sheet-styleRoljet:checked ~ div.sheet-main button[type=roll].sheet-btRolrel{ - display: none; -} -input[type=radio].sheet-styleRolrel:checked ~ div.sheet-main select.sheet-selComprel{ - display: inline-block; -} -input[type=radio].sheet-styleRoljet:checked ~ div.sheet-main select.sheet-selComprel{ - display: none; -} -input[type=radio].sheet-styleRolrel:checked ~ div.sheet-main select.sheet-selCompjet{ - display: none; -} -input[type=radio].sheet-styleRoljet:checked ~ div.sheet-main select.sheet-selCompjet{ - display: inline-block; -} -button[type="roll"].sheet-btRoljet{ - width: 142px; - border-width: 1px; - border-style: solid; - border-color: transparent; - font-size:1em; - font-weight: bold; - color: black; - background-image:none; - background: transparent; - text-transform: uppercase; -} -button[type="roll"].sheet-btRoljet:before{ - content: "t "; - text-transform: lowercase; -} -button[type="roll"].sheet-btRoljet:hover:before{ - font-weight: bold; - color: #CD071E; -} -button[type="roll"].sheet-btRoljet:hover{ - border-width: 1px; - border-style: solid; - border-color:#CD071E; -} -input[type=radio].sheet-styleRolrel:checked ~ div.sheet-main button[type=roll].sheet-btRoljet{ - display: none; -} -input[type=radio].sheet-styleRoljet:checked ~ div.sheet-main button[type=roll].sheet-btRoljet{ - display: inline-block; -} -div.sheet-main{ - width:860px; - background: linear-gradient(#CD071E,#E6DBCF,#EFE7DD); - font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; - padding: 5px 5px 5px 5px; -} -div.sheet-mycol{ - display: inline-block; - width: 280px; - vertical-align:top; - padding: 0px 0px 0px 0px; - margin: 0px 0px 0px 0px; -} -div.sheet-redtitle1{ - font-family: Candal; - font-size: 16px; - color: #CD071E; - text-align: center; - font-weight: bold; - margin: 10px 1px 1px 1px; -} -div.sheet-redtitle2{ - font-family: Candal; - font-size: 12px; - color: #CD071E; - text-align: center; - font-weight: bold; - margin: 5px 1px 1px 1px; -} -div.sheet-redtitle3{ - display: inline-block; - font-family: Candal; - font-size: 12px; - color: #CD071E; - text-align: left; - font-weight: bold; - margin: 5px 1px 1px 1px; -} -div.sheet-colblock{ background-color: white; - margin-top: 0px; - margin-left: 5px; - margin-right 5px; - margin-bottom: 10px; - padding: 1px 5px 5px 5px; + border-bottom-width: 0px; } -div.sheet-input{ - text-align:left; - width: 100%; - border-bottom: 1px dashed black; - padding: 1px 0px 0px 0px; - margin: 0px 0px 0px 0px; + /************************************** RADIOS / CHECKBOX ***************************/ +input[type=radio]{ + margin-right: 2px; + margin-left: 1px; } -div.sheet-input div{ +input[type=radio].sheet-blessure{ + opacity : 0; + z-index : 10; + width: 30px; + height: 20px; + margin-top: -10px; +} +input[type=radio].sheet-blessure + span { + width: 30px; + height: 25px; + margin-left: -32px; + text-align: center; + z-index : 1; + font-family: Arial; + font-weight: bold; + font-size: 1.6em; + color: #AAAAAA; + padding: 2px; +} +input[type=radio].sheet-blessure:checked + span { + color: red; + border: 2px solid red; +} +input[type=radio].sheet-blessure[value="0"]:checked + span { + color: green; + border: 2px solid green; +} +input[type="checkbox"]{ + margin-right: 1px; + margin-left: 1px; +} +input[type=checkbox].sheet-secoue{ + opacity : 0; + z-index : 10; + width: 30px; + height: 30px; + line-height: 30px; + border: 1px solid red; + margin-top: -10px; +} +input[type=checkbox].sheet-secoue + span { + width: 30px; + height: 30px; + margin-left: -32px; + text-align: center; + z-index : 1; + font-family: pictos; + font-size: 2.2em; + color: #AAAAAA; + padding-top: 5px; +} +input[type=checkbox].sheet-secoue + span:before { + content: '*'; +} +input[type=checkbox].sheet-secoue:checked + span { + color: orange; +} +input[type=checkbox].sheet-secoue:checked + span:before { + content: '2'; +} +input[type="checkbox"].sheet-dispcheck{ + width: 15px; + height: 18px; + max-width: 18px; + opacity: 0; + z-index: 2; + margin: 0; +} +input[type="checkbox"].sheet-dispcheck + span{ display: inline-block; + text-align: center; + margin: 0; + margin-left: -15px; + width: 15px; + max-width: 18px; + height: 18px; + z-index: 1; + font-family: pictos; + color: #888888; } +input[type="checkbox"].sheet-dispcheck:hover + span{ + color: #CD071E; +} +input[type="checkbox"].sheet-dispcheck:checked + span{ + font-weight: bold; + color: #CD071E; +} + /************************************** INPUTS ***************************/ input{ display: inline-block; border: none; @@ -251,14 +371,31 @@ input[type="text"]:read-only { background-color: white; } -input[type="checkbox"]{ - margin-right: 1px; - margin-left: 1px; +input[type="number"].sheet-selde{ + width: 32px; } -input[type="radio"]{ - margin-right: 2px; - margin-left: 1px; + /************************************** TEXTAREA ***************************/ +textarea{ + box-shadow: none; + text-shadow: none; + background-color:#F6F1EC; + padding: 0; + margin: 0; + color: black; + font-family: cursive; + font-weight: normal; + border: none; } +textarea.sheet-textdesc{ + font-family: 'Verdana', serif; + font-size: 0.9em; + height: 22px; + resize: none; +} +input[type="checkbox"]:checked ~ textarea.sheet-textdesc{ + height: 140px; +} + /************************************** SELECT ***************************/ select{ border: none; padding: 0px 0px 0px 0px; @@ -283,8 +420,241 @@ select.sheet-attcomptext{ font-size: 0.9em; width: 35px; } -input[type="number"].sheet-selde{ - width: 32px; +select.sheet-selComprel, +select.sheet-selCompjet{ + display: none; +} +input[type=radio].sheet-styleRolrel:checked ~ div.sheet-main select.sheet-selComprel{ + display: inline-block; +} +input[type=radio].sheet-styleRoljet:checked ~ div.sheet-main select.sheet-selCompjet, +input[type=radio].sheet-styleRolbrut:checked ~ div.sheet-main select.sheet-selCompjet{ + display: inline-block; +} + /************************************** BOUTONS ***************************/ +button[type="roll"]{ + padding: 0px 0px 0px 0px; + margin: 0px 0px 0px 0px; + text-shadow: none; + box-shadow: none; + text-align:left; + vertical-align: middle; + line-height: 0px; + height: 20px; + width: 20px; + font-size: 1em; + font-weight: normal; + color:#CD071E; + border-width: 1px; + border-style: solid; + border-color: rgba(34,66,143,0.5); + border-radius: 4px; +} +input[type=checkbox].sheet-chkSheetDead:checked ~ div.sheet-main button[type="roll"]{ + color: #8B6434; +} +button[type="roll"]:hover{ + border-width: 1px; + border-color:#CD071E; + font-weight: bold; +} +input[type=checkbox].sheet-chkSheetDead:checked ~ div.sheet-main button[type="roll"]:hover{ + color: #8B6434; +} +button[type="roll"].sheet-btRolrel, +button[type="roll"].sheet-btRoljet, +button[type="roll"].sheet-btRolbrut{ + width: 142px; + border-width: 1px; + border-style: solid; + border-color: transparent; + font-size:1em; + font-weight: bold; + background-image:none; + background: transparent; + text-transform: uppercase; + display: none; +} +button[type="roll"].sheet-btRolrel{ + color: black; +} +button[type="roll"].sheet-btRoljet{ + color: black; +} +button[type="roll"].sheet-btRolbrut{ + color: black; +} +button[type="roll"].sheet-btRolrel:before, +button[type="roll"].sheet-btRoljet:before, +button[type="roll"].sheet-btRolbrut:before{ + content: "t "; + text-transform: lowercase; +} +button[type="roll"].sheet-btRolrel:hover:before, +button[type="roll"].sheet-btRoljet:hover:before, +button[type="roll"].sheet-btRolbrut:hover:before{ + font-weight: bold; + color: #CD071E; +} +input[type=checkbox].sheet-chkSheetDead:checked ~ div.sheet-main button[type="roll"].sheet-btRolrel:hover:before, +input[type=checkbox].sheet-chkSheetDead:checked ~ div.sheet-main button[type="roll"].sheet-btRoljet:hover:before, +input[type=checkbox].sheet-chkSheetDead:checked ~ div.sheet-main button[type="roll"].sheet-btRolbrut:hover:before{ + color: #8B6434; +} +button[type="roll"].sheet-btRolrel:hover, +button[type="roll"].sheet-btRoljet:hover, +button[type="roll"].sheet-btRolbrut:hover{ + border-width: 1px; + border-style: solid; + border-color:#CD071E; +} +input[type=checkbox].sheet-chkSheetDead:checked ~ div.sheet-main button[type="roll"].sheet-btRolrel:hover, +input[type=checkbox].sheet-chkSheetDead:checked ~ div.sheet-main button[type="roll"].sheet-btRoljet:hover, +input[type=checkbox].sheet-chkSheetDead:checked ~ div.sheet-main button[type="roll"].sheet-btRolbrut:hover{ + border-color:#8B6434; +} +input[type=checkbox].sheet-chkRolrel:checked ~ div.sheet-main button[type=roll].sheet-btRolrel{ + display: inline-block; +} +input[type=checkbox].sheet-chkRoljet:checked ~ div.sheet-main button[type=roll].sheet-btRoljet{ + display: inline-block; +} +input[type=checkbox].sheet-chkRolbrut:checked ~ div.sheet-main button[type=roll].sheet-btRolbrut{ + display: inline-block; +} +button[type="roll"].sheet-btDesc{ + color: black; + height: 15px; + width: 15px; + opacity: 0.4; + display: inline-block; + margin: 0; + padding: 0; + background: none; + border: none; +} +button[type="roll"].sheet-btDesc:before{ + font-family: "Pictos"; + font-size: 0.9em; + content: 'i'; +} +button[type="roll"].sheet-btDesc:hover{ + opacity: 1.0; + color: #CD071E; + font-weight: normal; +} +input[type=checkbox].sheet-chkSheetDead:checked ~ div.sheet-main button[type="roll"].sheet-btDesc:hover{ + color: #8B6434; +} +/* Formatage des boutons de fieldset */ +.charsheet .repcontrol_add, +.charsheet .repcontrol_edit, +.charsheet .repcontrol_del{ + opacity: 0.6; + display: inline; + background: white; + box-shadow: none; + border: 1px solid #CD071E; + border-radius: 6px; + font-size:0.9em; + height:2.0em; + margin-bottom: 4px; + color: #CD071E; + margin: 3px; +} +.charsheet .repcontrol_add:hover, +.charsheet .repcontrol_edit:hover, +.charsheet .repcontrol_del:hover{ + opacity: 1.0; +} + /************************************** DIV ***************************/ +div.sheet-fdp{ + background: transparent; + width:860px; +} +div.sheet-main{ + display: none; + width:100%; + background: linear-gradient(#CD071E,#E6DBCF,#EFE7DD); + font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; + padding: 5px 5px 5px 5px; + border: 1px solid #888888; +} +input[type=checkbox].sheet-chkSheetDead:checked ~ div.sheet-main{ + background: linear-gradient(#85582A,#C39657,#F0DAAD,#C39657,#85582A); +} +div.sheet-configuration{ + display: none; + width:100%; + background: white; + font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; + padding: 5px 5px 5px 5px; + border: 1px solid #888888; +} +input[type=radio].sheet-onglmain:checked ~ div.sheet-main{ + display: block; +} +input[type=radio].sheet-onglconfig:checked ~ div.sheet-configuration{ + display: block; +} +div.sheet-mycol{ + display: inline-block; + width: 280px; + vertical-align:top; + padding: 0px 0px 0px 0px; + margin: 0px 0px 0px 0px; +} +div.sheet-redtitle1{ + font-family: Candal; + font-size: 16px; + color: #CD071E; + text-align: center; + font-weight: bold; + margin: 10px 1px 1px 1px; +} +input[type=checkbox].sheet-chkSheetDead:checked ~ div.sheet-main div.sheet-redtitle1{ + color: #8B6434; +} +div.sheet-redtitle2{ + font-family: Candal; + font-size: 12px; + color: #CD071E; + text-align: center; + font-weight: bold; + margin: 5px 1px 1px 1px; +} +input[type=checkbox].sheet-chkSheetDead:checked ~ div.sheet-main div.sheet-redtitle2{ + color: #8B6434; +} +div.sheet-redtitle3{ + display: inline-block; + font-family: Candal; + font-size: 12px; + color: #CD071E; + text-align: left; + font-weight: bold; + margin: 5px 1px 1px 1px; +} +input[type=checkbox].sheet-chkSheetDead:checked ~ div.sheet-main div.sheet-redtitle3{ + color: #8B6434; +} +div.sheet-colblock{ + background-color: white; + margin-top: 0px; + margin-left: 5px; + margin-right 5px; + margin-bottom: 10px; + padding: 1px 5px 5px 5px; +} +div.sheet-input{ + text-align:left; + width: 100%; + border-bottom: 1px dashed black; + padding: 1px 0px 0px 0px; + margin: 0px 0px 0px 0px; +} +div.sheet-input div{ + display: inline-block; } div.sheet-blacktext1 { display: inline-block; @@ -323,15 +693,168 @@ div.sheet-attcomptext:before{ div.sheet-attcomptext:after{ content: ")"; } -div, -button, -textarea, -span, -input, -select, -table, -tr, -td, -th{ - box-sizing: border-box; + /*********************** AFFICHAGE COMPETENCE et AUTRES OPTIONS ********************/ +.sheet-extra{ + display: none; +} +.sheet-pnj{ + display: none; +} +input[type=checkbox].sheet-persoExtra:checked ~ div.sheet-main .sheet-extra { + display: block; +} +input[type=checkbox].sheet-persoExtra:checked ~ div.sheet-main .sheet-noextra { + display: none; +} +input[type=checkbox].sheet-persoPnj:checked ~ div.sheet-main .sheet-pnj { + display: block; +} +input[type=checkbox].sheet-persoPnj:checked ~ div.sheet-main .sheet-nopnj { + display: none; +} +input[type=checkbox].sheet-chkArcane, +input[type=checkbox].sheet-chkCombat, +input[type=checkbox].sheet-chkConduite, +input[type=checkbox].sheet-chkConnaissance, +input[type=checkbox].sheet-chkCrochetage, +input[type=checkbox].sheet-chkDiscretion, +input[type=checkbox].sheet-chkEquitation, +input[type=checkbox].sheet-chkEscalade, +input[type=checkbox].sheet-chkIntimidation, +input[type=checkbox].sheet-chkJeu, +input[type=checkbox].sheet-chkLancer, +input[type=checkbox].sheet-chkNatation, +input[type=checkbox].sheet-chkNavigation, +input[type=checkbox].sheet-chkPerception, +input[type=checkbox].sheet-chkPersuasion, +input[type=checkbox].sheet-chkPilotage, +input[type=checkbox].sheet-chkPistage, +input[type=checkbox].sheet-chkRecherche, +input[type=checkbox].sheet-chkReparation, +input[type=checkbox].sheet-chkReseaux, +input[type=checkbox].sheet-chkSarcasme, +input[type=checkbox].sheet-chkSoins, +input[type=checkbox].sheet-chkSurvie, +input[type=checkbox].sheet-chkTir, +input[type=checkbox].sheet-persoExtra, +input[type=checkbox].sheet-persoPnj, +input[type=checkbox].sheet-chkPossessions, +input[type=checkbox].sheet-chkSheetDead +{ + display: none; +} +div.sheet-chkArcane, +div.sheet-chkCombat, +div.sheet-chkConduite, +div.sheet-chkConnaissance, +div.sheet-chkCrochetage, +div.sheet-chkDiscretion, +div.sheet-chkEquitation, +div.sheet-chkEscalade, +div.sheet-chkIntimidation, +div.sheet-chkJeu, +div.sheet-chkLancer, +div.sheet-chkNatation, +div.sheet-chkNavigation, +div.sheet-chkPerception, +div.sheet-chkPersuasion, +div.sheet-chkPilotage, +div.sheet-chkPistage, +div.sheet-chkRecherche, +div.sheet-chkReparation, +div.sheet-chkReseaux, +div.sheet-chkSarcasme, +div.sheet-chkSoins, +div.sheet-chkSurvie, +div.sheet-chkTir, +div.sheet-chkPossessions { + display: none; +} + +input[type=checkbox].sheet-chkArcane:checked ~ div.sheet-main div.sheet-chkArcane { + display: block; +} +input[type=checkbox].sheet-chkCombat:checked ~ div.sheet-main div.sheet-chkCombat { + display: block; +} +input[type=checkbox].sheet-chkConduite:checked ~ div.sheet-main div.sheet-chkConduite { + display: block; +} +input[type=checkbox].sheet-chkConnaissance:checked ~ div.sheet-main div.sheet-chkConnaissance { + display: block; +} +input[type=checkbox].sheet-chkCrochetage:checked ~ div.sheet-main div.sheet-chkCrochetage { + display: block; +} +input[type=checkbox].sheet-chkDiscretion:checked ~ div.sheet-main div.sheet-chkDiscretion { + display: block; +} +input[type=checkbox].sheet-chkEquitation:checked ~ div.sheet-main div.sheet-chkEquitation { + display: block; +} +input[type=checkbox].sheet-chkEscalade:checked ~ div.sheet-main div.sheet-chkEscalade { + display: block; +} +input[type=checkbox].sheet-chkIntimidation:checked ~ div.sheet-main div.sheet-chkIntimidation { + display: block; +} +input[type=checkbox].sheet-chkJeu:checked ~ div.sheet-main div.sheet-chkJeu { + display: block; +} +input[type=checkbox].sheet-chkLancer:checked ~ div.sheet-main div.sheet-chkLancer { + display: block; +} +input[type=checkbox].sheet-chkNatation:checked ~ div.sheet-main div.sheet-chkNatation { + display: block; +} +input[type=checkbox].sheet-chkNavigation:checked ~ div.sheet-main div.sheet-chkNavigation { + display: block; +} +input[type=checkbox].sheet-chkPerception:checked ~ div.sheet-main div.sheet-chkPerception { + display: block; +} +input[type=checkbox].sheet-chkPersuasion:checked ~ div.sheet-main div.sheet-chkPersuasion { + display: block; +} +input[type=checkbox].sheet-chkPilotage:checked ~ div.sheet-main div.sheet-chkPilotage { + display: block; +} +input[type=checkbox].sheet-chkPistage:checked ~ div.sheet-main div.sheet-chkPistage { + display: block; +} +input[type=checkbox].sheet-chkRecherche:checked ~ div.sheet-main div.sheet-chkRecherche { + display: block; +} +input[type=checkbox].sheet-chkReparation:checked ~ div.sheet-main div.sheet-chkReparation { + display: block; +} +input[type=checkbox].sheet-chkReseaux:checked ~ div.sheet-main div.sheet-chkReseaux { + display: block; +} +input[type=checkbox].sheet-chkSarcasme:checked ~ div.sheet-main div.sheet-chkSarcasme { + display: block; +} +input[type=checkbox].sheet-chkSoins:checked ~ div.sheet-main div.sheet-chkSoins { + display: block; +} +input[type=checkbox].sheet-chkSurvie:checked ~ div.sheet-main div.sheet-chkSurvie { + display: block; +} +input[type=checkbox].sheet-chkTir:checked ~ div.sheet-main div.sheet-chkTir { + display: block; +} +input[type=checkbox].sheet-chkPossessions:checked ~ div.sheet-main div.sheet-chkPossessions { + display: block; +} +div.sheet-SheetSaWo{ + display: inline-block; +} +div.sheet-SheetDead{ + display: none; +} +input[type=checkbox].sheet-chkSheetDead:checked ~ div.sheet-main div.sheet-SheetSaWo { + display: none; +} +input[type=checkbox].sheet-chkSheetDead:checked ~ div.sheet-main div.sheet-SheetDead { + display: inline-block; } diff --git a/SavageWorldsFrench/sawofr.html b/SavageWorldsFrench/sawofr.html index 968825123b..8d288e3d1d 100644 --- a/SavageWorldsFrench/sawofr.html +++ b/SavageWorldsFrench/sawofr.html @@ -1,1174 +1,3 @@ - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -v1.3 - Style des jets :Succès+Relances -Jets bruts - -
-
-
-
-
-
TRAITS
-   -
Dé Joker
- -
-
ATTRIBUTS
-
- - - - + -
-
- - - - + -
-
- - - - + -
-
- - - - + -
-
- - - - + -
-
-
-
COMPÉTENCES
-
- - - - - - + -
-
- - -
AGI
- - + -
-
- - -
AGI
- - + -
-
- - - -
INT
- - + -
-
- - -
AGI
- - + -
-
- - -
AGI
- - + -
-
- - -
AGI
- - + -
-
- - -
FOR
- - + -
-
- - -
ÂME
- - + -
-
- - -
INT
- - + -
-
- - -
AGI
- - + -
-
- - -
AGI
- - + -
-
- - -
AGI
- - + -
-
- - -
INT
- - + -
-
- - -
ÂME
- - + -
-
- - -
AGI
- - + -
-
- - -
INT
- - + -
-
- - -
INT
- - + -
-
- - -
INT
- - + -
-
- - -
INT
- - + -
-
- - -
INT
- - + -
-
- - -
INT
- - + -
-
- - -
INT
- - + -
-
- - -
AGI
- - + -
-
-
- - - - - - + -
-
-
-
-
-
-
- -
-
-
-
DÉGÂTS
-   - Secoué -
-
-
BLESSURES
- 0 - 1 - 2 - 3 - Critique -
-
-
FATIGUE
- 0 - 1 - 2 - Critique -
-
-
-
CARAC. DÉRIVÉES
-
-
ALLURE
- - + - = -
-
-
CHARISME
- - + - = -
-
-
PARADE
- - + - = -
-
-
RÉSISTANCE
- - + - = -
-
-
Pts POUVOIR
- - / - -
-
-
-
POSSESSIONS
-
ARGENT
  -
-
Encombrement maximum : 
- - kg -
-
-
Encombrement : 
- -  Malus : - -
-
-
ÉQUIPEMENT
-
Qté
-
Poids
-
Tot.
-
-
-
- - - - -
-
-
-
-
-
-
PERSONNAGE
-
-
Pseudo : 
-
DESCRIPTION
-
-
Taille : 
-
Poids : 
-
-
-
Sexe : 
-
Âge : 
-
-
Signe particulier :
-
-
-
-
ATOUTS
-
-
- -
-
-
HANDICAPS
-
-
- -
-
-
-
-
-
PROGRESSION
-
XP
- -
-
5
-
10
-
15
-
Aguerri
-
25
-
30
-
35
-
Vétéran
-
45
-
50
-
55
-
Héroïque
-
65
-
70
-
75
-
Légendaire
-
-
-
-
-
ARMES
-
Compét.
-
Dégâts
-
Portée
-
CdT
-
Munitions
-
PA
-
Notes
-
-
- - - - - - - + - + - - - / - - -
-
- - - - - - - + - + - - - / - - -
-
- - - - - - - + - + - - - / - - -
-
-
- - - - - - - + - + - - - / - - -
- -
-
-
-
-
POUVOIRS
-
Rang
-
PP
-
Portée
-
Durée
-
Effets
-
-
-
- - - - - - -
-
-
-
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + Feuille + Configuration + v1.4 (21/02/2016) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
TRAITS
+   +
Dé Joker
+ +
+
ATTRIBUTS
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+
+
COMPÉTENCES
+
+ + + + + + + + +
+
+ + + +
AGI
+ + + +
+
+ + + +
AGI
+ + + +
+
+ + + + +
INT
+ + + +
+
+ + + +
AGI
+ + + +
+
+ + + +
AGI
+ + + +
+
+ + + +
AGI
+ + + +
+
+ + + +
FOR
+ + + +
+
+ + + +
ÂME
+ + + +
+
+ + + +
INT
+ + + +
+
+ + + +
AGI
+ + + +
+
+ + + +
AGI
+ + + +
+
+ + + +
AGI
+ + + +
+
+ + + +
INT
+ + + +
+
+ + + +
ÂME
+ + + +
+
+ + + +
AGI
+ + + +
+
+ + + +
INT
+ + + +
+
+ + + +
INT
+ + + +
+
+ + + +
INT
+ + + +
+
+ + + +
INT
+ + + +
+
+ + + +
INT
+ + + +
+
+ + + +
INT
+ + + +
+
+ + + +
INT
+ + + +
+
+ + + +
AGI
+ + + +
+
+ + + +
ÂME
+ + + +
+
+
+ + + + + + + + +
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
DÉGÂTS
+
SECOUÉ :
+ +
+
+
BLESSURES
+ 0 + 1 + 2 + 3 + Y +
+
+
FATIGUE
+ 0 + 1 + 2 + Y +
+
+
+
CARAC. DÉRIVÉES
+
+
ALLURE
+ + + + = +
+
+
CHARISME
+ + + + = +
+
+
PARADE
+ + + + = +
+
+
RÉSISTANCE
+ + + + = +
+
+
TREMPE
+ + + + = +
+
+
Pts POUVOIR
+ + / + +
+
+
+
POSSESSIONS
+
ARGENT
+ s + +
+
Encombrement maximum : 
+ + kg +
+
+
Encombrement : 
+ +  Malus : + +
+
+
ÉQUIPEMENT
+
Qté
+
Poids
+
Tot.
+
+
+
+ + + + +
+
+
+
+
+
+
PERSONNAGE
+
+
Pseudo : 
+
DESCRIPTION
+
+
Taille : 
+
Poids : 
+
+
+
Sexe : 
+
Âge : 
+
+
Signes particuliers :
+
+ s + +
+
+
+
PNJ (Extra)
+
PNJ (Joker)
+
+
+
Taille : 
+
+
+
+
ATOUTS
+
ATOUTS / APTITUDES (+)
+
+
+ s + +
+
+
HANDICAPS
+
HANDICAPS / APTITUDES (-)
+
+
+ s + +
+
+
+
+
+
PROGRESSION
+
XP
+ +
+
5
+
10
+
15
+
Aguerri
+
25
+
30
+
35
+
Vétéran
+
45
+
50
+
55
+
Héroïque
+
65
+
70
+
75
+
Légendaire
+
+
+
+
+
ARMES
+
Compét.
+
Dégâts
+
Portée
+
CdT
+
Munitions
+
PA
+
Notes
+
+
+ + + + + + + + + + + + + + + / + + s + +
+
+ + + + + + + + + + + + + + + / + + s + +
+
+ + + + + + + + + + + + + + + / + + s + +
+
+
+ + + + + + + + + + + + + + + / + + s + +
+
+
+
+
+
POUVOIRS
+
Rang
+
PP
+
Portée
+
Durée
+
Effets
+
+
+
+ + + + + + + s + +
+
+
+
+ +
+
+
+
STYLE VISUEL
+
+ Personnage Non Joueur + Afficher les possessions +
+
+ Deadlands Reloaded +
+
+
+
JETS
+
Niveau de détail :
+ Succès+Relances + Total des Jets + Jets bruts +
Templates :
+ Etats +
Attaques :
+ Cible +
+
+
+
+
AFFICHAGE DES COMPETENCES
+
Toutes
+ Arcane + Combat + Conduite + Connaissance + Crochetage + Discrétion + Équitation + Escalade + Intimidation + Jeu + Lancer + Natation + Navigation + Perception + Persuasion + Pilotage + Pistage + Recherche + Réparation + Réseaux + Sarcasme + Soins + Survie + Tir +
+
+ +
+
+
+
{{#perso}} {{#cible}} - - - + {{#rollTotal() atkcible 1}} + + + + {{/rollTotal() atkcible 1}} {{/cible}}
+ {{#pouvoir}}Pouvoir de{{/pouvoir}} {{perso}} {{#attaque}}attaque{{/attaque}} - {{^attaque}}fait un jet{{/attaque}} + {{^pouvoir}} + {{^attaque}}fait un jet{{/attaque}} + {{/pouvoir}}
- {{^attaque}}contre{{/attaque}} - {{cible}} -
+ {{^attaque}}contre{{/attaque}} + {{cible}} +
{{/perso}} @@ -1614,71 +2490,145 @@ on("change:encombpoids change:encombmax", function() { {{#relances}} - - {{relances}} - succès+relances{{#attaque}} (attaque){{/attaque}} - + {{#rollLess() relances 1}} + + {{#attaque}}Attaque : {{/attaque}}Échec + {{relances}} + + {{/rollLess() relances 1}} + {{#rollTotal() relances 1}} + + {{#attaque}}Attaque : {{/attaque}}Succès sans relance + {{relances}} + + {{#attaque}} + {{#rollLess() degatsrel 1}} + + Pas de Dégât + {{degatsrel}} + + {{/rollLess() degatsrel 1}} + {{#rollTotal() degatsrel 1}} + + Dégâts : Succès sans relance + {{degatsrel}} + + {{/rollTotal() degatsrel 1}} + {{#rollGreater() degatsrel 1}} + + Dégâts : Succès+relance(s) + {{degatsrel}} + + {{/rollGreater() degatsrel 1}} + {{/attaque}} + {{/rollTotal() relances 1}} + {{#rollGreater() relances 1}} + + {{#attaque}}Attaque : {{/attaque}}Succès+Relance(s) + {{relances}} + + {{#attaque}} + {{#rollLess() degatsrelplus 1}} + + Pas de Dégât + {{degatsrelplus}} + + {{/rollLess() degatsrelplus 1}} + {{#rollTotal() degatsrelplus 1}} + + Dégâts(+1d6) : Succès sans relance + {{degatsrelplus}} + + {{/rollTotal() degatsrelplus 1}} + {{#rollGreater() degatsrelplus 1}} + + Dégâts(+1d6) : Succès+relance(s) + {{degatsrelplus}} + + {{/rollGreater() degatsrelplus 1}} + {{/attaque}} + {{/rollGreater() relances 1}} {{/relances}} {{#jet}} - Jet : + Jet : {{jet}} + {{#degats}} + + Dégâts : + {{degats}} + + + +1d6 si relance : + {{degatsplus}} + + {{/degats}} {{/jet}} - {{#degatsrel}} + {{#pouvoir}} - {{degatsrel}} - succès+relances (dégâts) + PP + {{pp}} - {{/degatsrel}} - {{#degats}} - Dégâts : - {{degats}} + Portée + {{portee}} - {{/degats}} + + +
{{description}}
+ + + {{/pouvoir}} - - - {{#rollTotal() blessures 0}} - {{#rollTotal() fatigue 0}} - {{#rollTotal() secoue 0}} - - {{/rollTotal() secoue 0}} - {{/rollTotal() fatigue 0}} - {{/rollTotal() blessures 0}} - {{#rollTotal() secoue 1}} - - - - {{/rollTotal() secoue 1}} - {{#rollGreater() blessures 0}} - - {{#rollLess() blessures 4}} - - - {{/rollLess() blessures 4}} - {{#rollTotal() blessures 4}} - - {{/rollTotal() blessures 4}} - - {{/rollGreater() blessures 0}} - {{#rollGreater() fatigue 0}} - - {{#rollLess() fatigue 3}} - + {{#rollTotal() etat 1}} +
État de {{perso}}
Normal
Secoué
{{blessures}}BlessuresBlessures Critiques
{{fatigue}}
+ + {{#rollTotal() blessures 0}} + {{#rollTotal() fatigue 0}} + {{#rollTotal() secoue 0}} + + {{/rollTotal() secoue 0}} + {{/rollTotal() fatigue 0}} + {{/rollTotal() blessures 0}} + {{#rollTotal() secoue 1}} + + + + {{/rollTotal() secoue 1}} + {{#rollGreater() blessures 0}} + + + + + {{/rollGreater() blessures 0}} + {{#rollGreater() fatigue 0}} + - {{/rollLess() fatigue 3}} - {{#rollTotal() fatigue 3}} - - {{/rollTotal() fatigue 3}} - - {{/rollGreater() fatigue 0}} - {{#rollGreater() encombrement 0}} - - - - - {{/rollGreater() encombrement 0}} -
État de {{perso}}
Normal
Secoué
+ Blessures + + {{blessures}} + {{#rollTotal() blessures 4}} + (État critique) + {{/rollTotal() blessures 4}} +
FatigueFatigue Critique
{{encombrement}}Encombrement
+ {{#rollTotal() fatigue 1}} + Fatigué + {{/rollTotal() fatigue 1}} + {{#rollTotal() fatigue 2}} + Epuisé + {{/rollTotal() fatigue 2}} + {{#rollTotal() fatigue 3}} + État Critique + {{/rollTotal() fatigue 3}} + + {{/rollGreater() fatigue 0}} + {{#rollGreater() encombrement 0}} + + {{encombrement}} + Encombrement + + {{/rollGreater() encombrement 0}} + + {{/rollTotal() etat 1}}
diff --git a/SavageWorldsFrench/sawofr.jpg b/SavageWorldsFrench/sawofr.jpg new file mode 100644 index 0000000000..b65167f41c Binary files /dev/null and b/SavageWorldsFrench/sawofr.jpg differ diff --git a/SavageWorldsFrench/sawofr_choixjet.png b/SavageWorldsFrench/sawofr_choixjet.png index 8e07f34ea0..80fad8d621 100644 Binary files a/SavageWorldsFrench/sawofr_choixjet.png and b/SavageWorldsFrench/sawofr_choixjet.png differ diff --git a/SavageWorldsFrench/sawofr_des3d.png b/SavageWorldsFrench/sawofr_des3d.png deleted file mode 100644 index 4569d0813d..0000000000 Binary files a/SavageWorldsFrench/sawofr_des3d.png and /dev/null differ diff --git a/SavageWorldsFrench/sawofr_infobulleoption1.png b/SavageWorldsFrench/sawofr_infobulleoption1.png index 4e586d4b36..e6ccb8fcf9 100644 Binary files a/SavageWorldsFrench/sawofr_infobulleoption1.png and b/SavageWorldsFrench/sawofr_infobulleoption1.png differ diff --git a/SavageWorldsFrench/sawofr_infobulleoption2.png b/SavageWorldsFrench/sawofr_infobulleoption2.png index a29e7c9d32..06ecbc59ab 100644 Binary files a/SavageWorldsFrench/sawofr_infobulleoption2.png and b/SavageWorldsFrench/sawofr_infobulleoption2.png differ diff --git a/SavageWorldsFrench/sawofr_jetoption3.png b/SavageWorldsFrench/sawofr_jetoption3.png new file mode 100644 index 0000000000..b3c13885a8 Binary files /dev/null and b/SavageWorldsFrench/sawofr_jetoption3.png differ diff --git a/SavageWorldsFrench/sawofr_style_deadlands.png b/SavageWorldsFrench/sawofr_style_deadlands.png new file mode 100644 index 0000000000..cf000bf325 Binary files /dev/null and b/SavageWorldsFrench/sawofr_style_deadlands.png differ diff --git a/SavageWorldsFrench/sawofr_template_penalistes.png b/SavageWorldsFrench/sawofr_template_penalistes.png new file mode 100644 index 0000000000..421c69557c Binary files /dev/null and b/SavageWorldsFrench/sawofr_template_penalistes.png differ diff --git a/SavageWorldsFrench/sawofr_templateoption1.png b/SavageWorldsFrench/sawofr_templateoption1.png index d80586f607..311745ac22 100644 Binary files a/SavageWorldsFrench/sawofr_templateoption1.png and b/SavageWorldsFrench/sawofr_templateoption1.png differ diff --git a/SavageWorldsFrench/sawofr_templateoption2.png b/SavageWorldsFrench/sawofr_templateoption2.png index dc9a68f41c..e3b0821404 100644 Binary files a/SavageWorldsFrench/sawofr_templateoption2.png and b/SavageWorldsFrench/sawofr_templateoption2.png differ diff --git a/SavageWorldsFrench/sheet.json b/SavageWorldsFrench/sheet.json index 374a498152..202802ce33 100644 --- a/SavageWorldsFrench/sheet.json +++ b/SavageWorldsFrench/sheet.json @@ -3,6 +3,6 @@ "css": "sawofr.css", "authors": "Nathanael TERRIEN", "roll20userid": "75857", - "preview": "sawofr.png", - "instructions": "Feuille de Personnage VF (avec jets intégrés) pour Savage Worlds. Consultez l'[aide/readme](ReadMe.md). v1.2 (Décembre 2015)." + "preview": "sawofr.jpg", + "instructions": "Feuille de Personnage VF (avec jets intégrés) pour Savage Worlds et Deadlands Reloaded. Consultez l'[aide/readme](ReadMe.md). v1.4 (19/02/2016)." } diff --git a/Star Wars FFG API-Compatible/Character Sheet Preview.png b/Star Wars FFG API-Compatible/Character Sheet Preview.png new file mode 100644 index 0000000000..4f251fce58 Binary files /dev/null and b/Star Wars FFG API-Compatible/Character Sheet Preview.png differ diff --git a/Star Wars FFG API-Compatible/FFG-SWRPG-CharacterSheet.css b/Star Wars FFG API-Compatible/FFG-SWRPG-CharacterSheet.css new file mode 100644 index 0000000000..bcef4f97f1 --- /dev/null +++ b/Star Wars FFG API-Compatible/FFG-SWRPG-CharacterSheet.css @@ -0,0 +1,1329 @@ +/* +Version Info: +Verion 4.0.2.18 +*/ + +.sheet-clear {clear:both} +.sheet-divider {border-top:1px solid #e3e3e3} + +/* GRID + * ----------------------------------------------------------------- */ + +.sheet-row {padding: 1% 0%; clear: both} +.sheet-column {margin:0 1%; float:left;} +.sheet-column .sheet-column {margin:0 0%; float:left;} + +.sheet-row .sheet-column:last-child {float:right} + +.sheet-small-1 {width: 6.3%} +.sheet-small-2 {width: 14.6%} +.sheet-small-3 {width: 23%}/* 25% */ +.sheet-small-4 {width: 31.3%} +.sheet-small-5 {width: 39.6%} +.sheet-small-6 {width: 48%}/* 50% */ +.sheet-small-7 {width: 56.3%} +.sheet-small-8 {width: 64.6%} +.sheet-small-9 {width: 73%}/* 75% */ +.sheet-small-10 {width: 81.3%} +.sheet-small-11 {width: 91.6%} +.sheet-small-12 {width: 98%}/* 100% */ + +/* Dice input reset + *-------------------------------------- */ +.sheet-dice-pool [type=roll] { + padding:2px 4px !important; + margin:0 !important; + font-size:28px !important; + line-height:28px !important; +} + +.sheet-dice-pool [name='roll_ResetDicePool'], +.sheet-dice-pool [name='roll_ResetGMDicePool'] {padding-bottom:3px !important} + +.sheet-dice-pool [name='roll_ResetDicePool']:before, +.sheet-dice-pool [name='roll_ResetGMDicePool']:before { + font-family: "Pictos" !important; + content: "r" !important; +} + +/* ------------------------------------ */ +/* Dice input span graphics + *----------------------------------------- */ + +.sheet-yd + span { + background-image:url('http://i.imgur.com/Ntq77sk.png');/* Yellow - Proficiency Die */ + background-position:left top; + background-repeat:repeat-x; + height:20px; + display:block; + float:left; +} + +.sheet-gd + span { + background-image:url('http://i.imgur.com/cqkTp2t.png');/* Green - Ability Die */ + background-position:left top; + background-repeat:repeat-x; + height:20px; + display:block; + float:left; +} + +.sheet-pd + span { + background-image:url('http://i.imgur.com/afj6fxH.png');/* Purple - Difficulty Die */ + background-position:left top; + background-repeat:repeat-x; + height:20px; + display:block; + float:left; +} + +.sheet-gd[value="0"] + span {width:0;} +.sheet-gd[value="1"] + span {width: 17px} +.sheet-gd[value="2"] + span {width: 34px} +.sheet-gd[value="3"] + span {width: 51px} +.sheet-gd[value="4"] + span {width: 68px} +.sheet-gd[value="5"] + span {width: 85px} +.sheet-gd[value="6"] + span {width: 102px} +.sheet-gd[value="7"] + span {width: 124px} + +.sheet-yd[value="0"] + span {width:0;} +.sheet-yd[value="1"] + span {width: 17px} +.sheet-yd[value="2"] + span {width: 34px} +.sheet-yd[value="3"] + span {width: 51px} +.sheet-yd[value="4"] + span {width: 68px} +.sheet-yd[value="5"] + span {width: 85px} +.sheet-yd[value="6"] + span {width: 102px} +.sheet-yd[value="7"] + span {width: 124px} + +/*used for crit section*/ +.sheet-pd[value="0"] + span {width:0;} +.sheet-pd[value="1"] + span {width: 20px} +.sheet-pd[value="2"] + span {width: 40px} +.sheet-pd[value="3"] + span {width: 60px} +.sheet-pd[value="4"] + span {width: 80px} +.sheet-pd[value="5"] + span {width: 100px} +.sheet-pd[value="6"] + span {width: 120px} +.sheet-pd[value="7"] + span {width: 140px} + +/* Switch + * ------------------------------------ */ +.sheet-switch { + position: relative; + margin: 0px auto; + height: 27px; + width: 120px; + background: rgba(0, 0, 0, 0.40); + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px rgba(255, 255, 255, 0.1); +} + +.sheet-switch [type=radio] { + width:60px; + height:27px; + float:left; + display:block; + -webkit-appearance:none; + -moz-appearance:none; + border:none; + outline:none; + position: relative; + cursor: pointer; + z-index: 2; +} + +.sheet-switch [type=radio]::before { + content: attr(title); + display:block; + width:60px; + height:27px; + line-height:27px; + text-align:center; +} + +.sheet-switch [type=radio]:checked, +.sheet-switch [type=radio]:active, +.sheet-switch [type=radio]:focus { + font-weight: normal; + background:transparent; + color: #fff; +} + +.sheet-switch-input-on:checked ~ .sheet-switch-selection { + left: 2px; +} + +.sheet-switch-input-off:checked ~ .sheet-switch-selection { + left: 60px; +} + +.sheet-switch-selection { + display: block; + position: absolute; + z-index: 1; + top: 2px; + left: 2px; + width: 58px; + height: 23px; + background: #65bd63; + border-radius: 3px; + background-image: -webkit-linear-gradient(top, #485a6d, #2c3947); + background-image: -moz-linear-gradient(top, #485a6d, #2c3947); + background-image: -o-linear-gradient(top, #485a6d, #2c3947); + background-image: linear-gradient(to bottom, #485a6d, #2c3947); + -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 0 2px rgba(0, 0, 0, 0.2); + box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 0 2px rgba(0, 0, 0, 0.2); + -webkit-transition: left 0.15s ease-out; + -moz-transition: left 0.15s ease-out; + -o-transition: left 0.15s ease-out; + transition: left 0.15s ease-out; +} + +/* Form Options + * ------------------------------------ */ + +table .sheet-opt-content { + display: none; +} + +/* Old Vehicle Tabs */ +input.sheet-opt-vehicle:checked ~ table tr.sheet-opt-vehicle, +input.sheet-opt-ship:checked ~ table tr.sheet-opt-ship, +/* New Vehicle Tabs */ +input.sheet-tab-transport-space:checked ~ table tr.sheet-tab-transport-space, +input.sheet-tab-transport-planetary:checked ~ table tr.sheet-tab-transport-planetary, +input.sheet-tab-transport-beast:checked ~ table tr.sheet-tab-transport-beast, +/* Base of Operations Tabs */ +input.sheet-opt-rebel:checked ~ table tr td.sheet-opt-rebel, +input.sheet-opt-business:checked ~ table tr td.sheet-opt-business, +input.sheet-opt-homestead:checked ~ table tr td.sheet-opt-homestead, +/* Companion Tabs */ +input.sheet-tab-companion-info:checked ~ table tr td.sheet-tab-companion-info, +input.sheet-tab-companion-combat:checked ~ table tr td.sheet-tab-companion-combat, +input.sheet-tab-companion-inventory:checked ~ table tr td.sheet-tab-companion-inventory, +/* GM Tabs */ +input.sheet-tab-gm-combat:checked ~ table tr td.input.sheet-tab-gm-combat, +input.sheet-tab-gm-weapons:checked ~ table tr td.sheet-tab-gm-weapons, +input.sheet-tab-gm-adversaries:checked ~ table tr td.sheet-tab-gm-adversaries +{ + display: table-row; +} + +/* Old Vehicle Tabs */ +input.sheet-opt-vehicle:checked ~ table tr td.sheet-opt-vehicle, +input.sheet-opt-ship:checked ~ table tr td.sheet-opt-ship, +/* New Vehicle Tabs */ +input.sheet-tab-transport-space:checked ~ table tr.sheet-tab-transport-space, +input.sheet-tab-transport-planetary:checked ~ table tr.sheet-tab-transport-planetary, +input.sheet-tab-transport-beast:checked ~ table tr.sheet-tab-transport-beast, +/* Base of Operations Tabs */ +input.sheet-opt-rebel:checked ~ table tr td.sheet-opt-rebel, +input.sheet-opt-business:checked ~ table tr td.sheet-opt-business, +input.sheet-opt-homestead:checked ~ table tr td.sheet-opt-homestead, +/* Companion Tabs */ +input.sheet-tab-companion-info:checked ~ table tr td.sheet-tab-companion-info, +input.sheet-tab-companion-stp:checked ~ table tr td.sheet-tab-companion-stp, +input.sheet-tab-companion-combat:checked ~ table tr td.sheet-tab-companion-combat, +input.sheet-tab-companion-inventory:checked ~ table tr td.sheet-tab-companion-inventory, +/* GM Tabs */ +input.sheet-tab-gm-combat:checked ~ table tr td.input.sheet-tab-gm-combat, +input.sheet-tab-gm-weapons:checked ~ table tr td.sheet-tab-gm-weapons, +input.sheet-tab-gm-adversaries:checked ~ table tr td.sheet-tab-gm-adversaries +{ + display: table-cell; +} + +input.sheet-opt { + height: 30px; + margin-right:120px; + border:none; + outline:none; + position: relative; + cursor: pointer; + z-index: 1; +} + +input.sheet-opt::after { + content: attr(title); + text-align: left; + display: block; + color:#444; + width: 120px; + padding-left:20px; + line-height: 30px; + font-size: 16px; +} + +input.sheet-opt-vehicle { + margin-left:10px; +} + +input.sheet-opt:active, +input.sheet-op:focus { + outline:none; +} + +/* START TAB CODE */ + +input.sheet-tab-new { + cursor: pointer; + height: 20px; + opacity: 0; + position: relative; + width: 120px; + z-index: 9999; + !important; +} + +span.sheet-tab-new { + background: #ff0b02 none repeat scroll 0 0; + border-radius: 4px; + color: white; + cursor: pointer; + font-size: 13px; + font-weight: bold; + height: 20px; + margin-left: -122px; + position: relative; + text-align: center; + line-height:20px; + width: 120px; +} + +input.sheet-tab-new:checked + span { + background: #dea710 none repeat scroll 0 0; + border-radius: 4px; + color: black; +} + +/* END TAB CODE */ + +div.sheet-tab-content { + display: none; + border-top:1px solid #444; + margin-top:2px; +} + +/* Top Level Tabs */ +input.sheet-tab-character-sheet:checked ~ div.sheet-tab-character-sheet, +input.sheet-tab-ship-sheet:checked ~ div.sheet-tab-ship-sheet, +input.sheet-tab-base-sheet:checked ~ div.sheet-tab-base-sheet, +input.sheet-tab-gm-dice:checked ~ div.sheet-tab-gm-dice, +input.sheet-tab-companion-sheet:checked ~ div.sheet-tab-companion-sheet, + +/* Character Sheet Tab SubTabs */ +input.sheet-tab-character:checked ~ div.sheet-tab-character, +input.sheet-tab-skills:checked ~ div.sheet-tab-skills, +input.sheet-tab-talents:checked ~ div.sheet-tab-talents, +input.sheet-tab-weapons:checked ~ div.sheet-tab-weapons, +input.sheet-tab-notes:checked ~ div.sheet-tab-notes, + +/* Vehicle Sheet Tab SubTabs */ +input.sheet-tab-v-details:checked ~ div.sheet-tab-v-details, +input.sheet-tab-v-weapons:checked ~ div.sheet-tab-v-weapons, +input.sheet-tab-transport-space:checked ~ div.sheet-tab-transport-space, +input.sheet-tab-transport-planetary:checked ~ div.sheet-tab-transport-planetary, +input.sheet-tab-transport-beast:checked ~ div.sheet-tab-transport-beast, + +/* Group Sheet Tab*/ +input.sheet-tab-base-details:checked ~ div.sheet-tab-base-details, +input.sheet-tab-base-shared:checked ~ div.sheet-tab-base-shared, + +/* Group Sheet Tab SubTabs */ +input.sheet-tab-groupshared:checked ~ div.sheet-tab-groupshared, + +/* Group Sheet Tab Radio Buttons */ +input.sheet-opt-rebel:checked ~ div.sheet-opt-rebel, +input.sheet-opt-business:checked ~ div.sheet-opt-business, +input.sheet-opt-homestead:checked ~ div.sheet-opt-homestead, + +/* Companion Sub Tabs */ +input.sheet-tab-companion-info:checked ~ div.sheet-tab-companion-info, +input.sheet-tab-companion-combat:checked ~ div.sheet-tab-companion-combat, +input.sheet-tab-companion-inventory:checked ~ div.sheet-tab-companion-inventory, + +/* gmdice Sheet Tab SubTabs */ +input.sheet-tab-gm-combat:checked ~ div.sheet-tab-gm-combat, +input.sheet-tab-gm-weapons:checked ~ div.sheet-tab-gm-weapons, /* Currently used for Group Mechanics sheet */ +input.sheet-tab-gm-adversaries:checked ~ div.sheet-tab-gm-adversaries /* Currently used for Campaign Details sheet */ +{ + display: block; +} + +/* Custom Show Hide + * ------------------------------------ */ +.sheet-player-sheet, +.sheet-gm-sheet { + display: none; +} + +input.sheet-player:checked ~ .sheet-player-sheet, +input.sheet-gm:checked ~ .sheet-gm-sheet{ + display: inline-block; +} + +input.sheet-gm:checked ~ div.sheet-tab-content { + display: none; +} + +input.sheet-gm:checked ~ div.sheet-tab-gm-dice { + display: block; +} + +/* ------------------------------------ */ +.charsheet { + padding:0px !important; + margin:0px !important; +} + +.charsheet input[type=number] { + text-align:right; + cursor:pointer; +} + +.charsheet input[type=text], +.charsheet textarea, +.charsheet select { + width:100%; + height:auto; + margin-bottom:0px; +} + +.charsheet input, +.charsheet textarea { + background:#e3e3e3; +} + +.charsheet input:focus, +.charsheet textarea:focus { + background:#fff; +} + +.charsheet textarea { + width:calc(100% - 15px); + height:auto; + text-align:left; +} + +.charsheet label { + font-size:11px; + color:#444; + margin:0px; + padding:0px; +} + +.charsheet table { + width:100%; + background-image: url('http://i.imgur.com/4biHABZ.jpg');/* Grey Background */ + background-position:center center; + background-repeat:repeat; +} + +.charsheet table tr th { + text-align:left; + background:#444; + color:#f3f3f3; + padding:3px 5px; +} + +.charsheet table tr th:last-child { + background-image: url('http://i.imgur.com/iZPF9he.png');/* Blank white space */ + background-position: right bottom; + background-repeat:no-repeat; +} + +.charsheet table tr td { + text-align:left; + padding:3px 5px; + border-bottom:1px dotted #ccc; +} + +.charsheet table tr:hover td { + background-color:#f1f1f1; +} + +.sheet-bg-gray label {color:#eee} +.sheet-bg-gray td, +.sheet-bg-gray:hover td, + +.charsheet .sheet-sub-header, +.charsheet .sheet-sub-header:hover{ + background:#D3D3D3; + color:#eee; +} + +.sheet-bg-blue label {color:#fff} +.sheet-bg-blue td, +.sheet-bg-blue:hover td, + +.charsheet .sheet-sub-header, +.charsheet .sheet-sub-header:hover{ + background:#78728f; + color:#fff; +} + +.charsheet table tr td.sheet-div-right { + border-right:1px solid #ccc +} + +.charsheet h3 { + background-image: url('http://i.imgur.com/PAAMegP.png'), url('http://i.imgur.com/oWaNr2C.png');/* Stretched hexagon, Grey Title lines*/ + background-position: center top, center 5px; + background-repeat:no-repeat, repeat-x; + line-height:40px; + padding:0; + margin:0; + text-align:center; + color:#fff; +} + +.charsheet .sheet-sub-header, +.charsheet .sheet-sub-header:hover{ + background:#485a6d; + color:#fff; +} + +/* ------------------------------------------------- Dice Pool */ + +.sheet-section-1 { + padding-bottom:10px; +} + +.sheet-section-1 .sheet-column { + margin-bottom:0px; + margin:0 0; + width:100% +} + +.sheet-dice-pool {border-bottom:1px solid #444;} + +.sheet-dice-pool img { + width:20px; + margin:4px 0 0 -10px; + padding:0px; + position:absolute; +} + +.sheet-dice-pool .sheet-note { + font-size:10px; + font-weight:normal; + color:#d3d3d3; +} + +.sheet-dice-pool td, +.sheet-dice-pool tr:hover td { + background:#444; +} + +.sheet-dice-pool td.sheet-light, +.sheet-dice-pool td.sheet-dark, +.sheet-dice-pool td.sheet-force { + text-align:center; +} + +.sheet-dice-pool td.sheet-light:nth-child(1), +.sheet-dice-pool td.sheet-dark:nth-child(5) { + text-align:right; +} + +.sheet-dice-pool td.sheet-light:nth-child(3), +.sheet-dice-pool td.sheet-dark:nth-child(7) { + text-align:left; +} + +.sheet-dice-pool td.sheet-force { + border-left:1px solid #777; + border-right:1px solid #777; +} + +.sheet-dice-pool td.sheet-force {border-bottom:none} +.sheet-dice-pool td.sheet-light {} +.sheet-dice-pool td.sheet-dark {} + +.sheet-dice-pool td.sheet-light:nth-child(1) { + border-left:1px solid #999; +} + +.sheet-dice-pool td.sheet-upgrade, +.sheet-dice-pool td.sheet-downgrade { + text-align:center !important; + border-bottom:1px solid #777; + border-top:1px solid #777; +} + +.sheet-dice-pool [type=number] { + background:#f3f3f3; + width: 50px !important; + height:40px; + font-size:20px; + font-weight:bold; +} + +.sheet-dice-pool [type=number]:focus { + background:#fff; +} + +.sheet-upgrade label, +.sheet-downgrade label { + display:inline-block; + width:auto; + text-align:center; + color:#f3f3f3; +} + +/* ------------------------------------------------- Soak, Wounds... */ + +.sheet-swsd { + background: url('http://i.imgur.com/M8dBhzt.png') center -2px no-repeat;/* Character Sheet Stat connecting sword title - Border */ +} +.sheet-swsd tr:hover td {background-color:transparent;} +.sheet-swsd tr td {border:none;} + +.sheet-swsd th { + font-size:10px; + font-weight:normal; +} + +.sheet-swsd td { + text-align:center; + vertical-align:top; +} + +.sheet-swsd td:nth-child(1), +.sheet-swsd td:nth-child(2), +.sheet-swsd td:nth-child(3), +.sheet-swsd td:nth-child(4), +.sheet-swsd td:nth-child(5) { + background-image: url('http://i.imgur.com/cODj4n5.png');/* Threshold / Current - Border */ + background-position: center top; + background-repeat:no-repeat; + width:153px; + height:87px; +} + +.sheet-swsd td:nth-child(3), +.sheet-swsd td:nth-child(4), +.sheet-swsd td:nth-child(5) { + background-position: center center; + vertical-align:middle; +} + +.sheet-swsd tr:nth-child(2) td:nth-child(1), +.sheet-beast tr:first-child td:nth-child(5){ + background-image: url('http://i.imgur.com/cyPJPLg.png');/* Single Digit - Border */ + background-position: center top; + background-repeat:no-repeat; + width:99px; + height:66px; + vertical-align:top; +} + +.sheet-beast tr:first-child td:nth-child(5){ + vertical-align:middle; + background-position: center 60px; +} + +.sheet-swsd tr:nth-child(2) td:nth-child(2) { + background:none; + width:auto; + height:auto; +} + +.sheet-swsd tr:nth-child(2) td:nth-child(1) label.sheet-label-title { + text-align:center; + color:#fff; + font-weight:bold; + line-height:15px; + padding-bottom:4px; + font-size:14px; + display:block; +} + +.sheet-beast tr:first-child td:nth-child(5) label.sheet-label-title { + padding-bottom:0px; + margin-bottom:0px; +} + +label.sheet-label-title { + text-align:center; + color:#fff; + font-size:13px; + line-height:25px; + padding-bottom:6px; +} + +label.sheet-label-threshold, +label.sheet-label-current, +label.sheet-label-range, +label.sheet-label-melee { + color:#fff; + font-size:9px; + font-weight:normal; + display:inline-block; + width:auto; + padding:0 5px; +} +label.sheet-label-current-speed, +label.sheet-label-threshold-speed { + color:#fff; + font-size:9px; + font-weight:normal; + display:inline-block; + width:auto; + padding:0 10px; +} + +label.sheet-label-current { + padding-right:16px; +} + +.charsheet .sheet-swsd [type=number] { + font-size:16px; + font-weight:bold; + text-align:right; + width:50px !important; +} + +.sheet-destiny td:nth-child(1) +{ + margin-left: auto; + margin-right: auto; + width:250px; + height:66px; + vertical-align:top; +} + +.sheet-destiny td:nth-child(3) +{ + width:99px; + height:66px; + vertical-align:middle; +} + +.sheet-destiny td:nth-child(2), +.sheet-destiny td:nth-child(4) +{ + text-align:center; + background-image: url('http://i.imgur.com/cyPJPLg.png');/* Single Digit - Border */ + background-position: center top; + background-repeat:no-repeat; + width:99px; + height:66px; + vertical-align:top; +} + +.sheet-destiny { + background-image:none; +} + +.sheet-destiny tr td {border:none;} +.sheet-destiny tr:hover td {background-color:transparent;} + +.sheet-destiny label { + text-align:center; + color:#fff; + font-weight:bold; + line-height:15px; + padding-bottom:4px; + font-size:14px; + display:block; +} + +.sheet-destiny [type=number] { + font-size:14px; + font-weight:bold; +} + +/* ------------------------------------------------- Characteristics */ + +.sheet-characteristics td:nth-child(1), +.sheet-characteristics td:nth-child(3), +.sheet-characteristics td:nth-child(5), +.sheet-characteristics td:nth-child(7), +.sheet-characteristics td:nth-child(9), +.sheet-characteristics td:nth-child(11), +.sheet-characteristics td:nth-child(13) +{ + text-align:center; + background-image: url('http://i.imgur.com/cyPJPLg.png');/* Single Digit - Border */ + background-position: center top; + background-repeat:no-repeat; + width:99px; + height:66px; + vertical-align:top; +} + +.sheet-characteristics { + background-image:none; +} + +.sheet-characteristics tr td {border:none;} +.sheet-characteristics tr:hover td {background-color:transparent;} + +.sheet-characteristics label { + text-align:center; + color:#fff; + font-weight:bold; + line-height:15px; + padding-bottom:4px; + font-size:14px; + display:block; +} + +.sheet-characteristics [type=number] { + font-size:14px; + font-weight:bold; +} + +/* Critical */ + +.sheet-critical tr td { + border-bottom:none; +} + +.sheet-critical { + border-bottom:1px dotted #999; +} + +.sheet-critical:hover { + background:#f1f1f1; +} + +.sheet-roll-critical, +.sheet-roll-critical tr td, +.sheet-roll-critical tr:hover td { + background-color:#444; + border:none; + color:#ccc +} + +.sheet-crit-dice-bg { + background-image:url('http://i.imgur.com/UqQCDZ6.png');/* Four Boxes - Dice Border */ + background-position:center center; + background-repeat:no-repeat; +} + +.sheet-roll-critical label { + color:#ccc; +} + +[name="attr_critAddRangeNum"], +[name="attr_critShipAddRangeNum"], +[name="attr_critAddOffset"], +[name="attr_critShipAddOffset"]{ + background:#ccc; +} + +.sheet-critical { + display:none; +} + +.sheet-checkbox-criton { + display:none; +} + +.sheet-checkbox-criton:checked + .sheet-critical { + display:block; +} + +button.sheet-btn-lightSide[type=roll]::before { + content: ''; +} + +button.sheet-btn-lightSide[type=roll] { + white-space:nowrap; + font-size:15px; + margin:0; +} + +button.sheet-btn-heal-crit[type=roll]::before, +button.sheet-btn-roll-crit[type=roll]::before, +button.sheet-btn-add-crit[type=roll]::before { + content: ''; +} + +button.sheet-btn-heal-crit[type=roll], +button.sheet-btn-add-crit[type=roll], +button.sheet-btn-roll-crit[type=roll] { + white-space:nowrap; + font-size:12px; + width:100%; + margin:0; +} + +button.sheet-btn-roll-crit[type=roll] { + color:#fff; + font-size:16px; + line-height:30px; + background: #65bd63; + border:none; + background-image: -webkit-linear-gradient(top, #485a6d, #2c3947); + background-image: -moz-linear-gradient(top, #485a6d, #2c3947); + background-image: -o-linear-gradient(top, #485a6d, #2c3947); + background-image: linear-gradient(to bottom, #485a6d, #2c3947); + -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 0 2px rgba(0, 0, 0, 0.2); + box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 0 2px rgba(0, 0, 0, 0.2); +} + +button.sheet-btn-roll-crit[type=roll]::before { + content: 't '; + font-size:18px; + color:#fff; +} + +button.sheet-btn-roll-crit[type=roll]:focus { + outline:none; + border:none; +} + +button.sheet-btn-roll-crit[type=roll]:active { + background-image: -webkit-linear-gradient(top, #2c3947, #485a6d); + background-image: -moz-linear-gradient(top, #2c3947, #485a6d); + background-image: -o-linear-gradient(top, #2c3947, #485a6d); + background-image: linear-gradient(to bottom, #2c3947, #485a6d); +} + +/* ------------------------------------------------- Skills */ + +.sheet-skills td:nth-child(2), +.sheet-skills td:nth-child(3), +.sheet-skills td:nth-child(6){ + width:50px; +} + +.sheet-init td:nth-child(2), +.sheet-init td:nth-child(5), +.sheet-skills td:nth-child(4) { + width:124px; + background-image:url(http://i.imgur.com/xUqfqbd.gif);/*url('http://i.imgur.com/fY7gsGx.png'); Six Boxes - Dice Border */ + background-repeat:no-repeat; + background-position:3px center; +} + +.sheet-skills td:nth-child(5) { + width:124px; +} + +.sheet-custome-skills td:nth-child(2) { + width:100px; +} + +.sheet-custome-skills td:nth-child(3), +.sheet-custome-skills td:nth-child(4), +.sheet-custome-skills td:nth-child(7) { + width:50px; + background-image:none; +} + +.sheet-custome-skills td:nth-child(6) { + width:120px; +} + +.sheet-custome-skills td:nth-child(5) { + width:124px; + background-image:url('http://i.imgur.com/xUqfqbd.gif');/* Six Boxes - Dice Border */ + background-repeat:no-repeat; + background-position:4px center; +} + +.sheet-skills th:nth-child(2), +.sheet-skills td:nth-child(2), +.sheet-custome-skills th:nth-child(3), +.sheet-custome-skills td:nth-child(3) { + text-align:center; +} + +/* TIP HELP */ + +.sheet-icon-S {background:url('http://galacticcampaigns.com/images/EotE/Symbols/S.png') center center no-repeat;}/* Success - Symbol */ +.sheet-icon-A {background:url('http://galacticcampaigns.com/images/EotE/Symbols/A.png') center center no-repeat;}/* Advantage - Symbol */ +.sheet-icon-Tri {background:url('http://galacticcampaigns.com/images/EotE/Symbols/Triumph.png') center center no-repeat;}/* Triumph - Symbol */ +.sheet-icon-T {background:url('http://galacticcampaigns.com/images/EotE/Symbols/T.png') center center no-repeat;}/* Threat - Symbol */ +.sheet-icon-Des {background:url('http://galacticcampaigns.com/images/EotE/Symbols/Despair.png') center center no-repeat;}/* Despair - Symbol */ +.sheet-icon-B {background:url('http://galacticcampaigns.com/images/EotE/Boost/boostBlank.png') center center no-repeat;} +.sheet-icon-G {background:url('http://galacticcampaigns.com/images/EotE/Ability/abilityBlank.png') center center no-repeat;} +.sheet-icon-Y {background:url('http://galacticcampaigns.com/images/EotE/Proficiency/ProficiencyBlank.png') center center no-repeat;} +.sheet-icon-P {background:url('http://galacticcampaigns.com/images/EotE/Difficulty/DifficultyBlank.png') center center no-repeat;} +.sheet-icon-R {background:url('http://galacticcampaigns.com/images/EotE/Challenge/ChallengeBlank.png') center center no-repeat;} +.sheet-icon-BLK {background:url('http://galacticcampaigns.com/images/EotE/Setback/SetBackBlank.png') center center no-repeat;} +.sheet-icon-W {background:url('http://galacticcampaigns.com/images/EotE/Force/ForceD.png') center center no-repeat;}/* Force Die - Black - Symbol */ + +.sheet-icon-S, +.sheet-icon-A, +.sheet-icon-Tri, +.sheet-icon-T, +.sheet-icon-Des, +.sheet-icon-B, +.sheet-icon-G, +.sheet-icon-Y, +.sheet-icon-P, +.sheet-icon-R, +.sheet-icon-BLK, +.sheet-icon-W { + background-size:15px 15px; + display:inline-block; + width:15px; + height:15px; +} + +.sheet-skills label { + float:left; + width:auto; +} + +.sheet-tips { + float:left; + margin-left:5px; +} + +.sheet-help {display:none;} +.sheet-help-def {display:block} + +.sheet-tips:hover .sheet-help {display:block} + +.sheet-icon-question { + width:14px; + margin:auto; + line-height:14px; + display:block; + text-align:center; + color:#fff; + font-weight:bold; + background:#444; + -webkit-border-radius: 7px; + border-radius: 7px; +} + +th .sheet-icon-question { + color:#444; + background:#fff; +} + +.sheet-help .sheet-icon { + position:absolute; + width:21px; + height:16px; + padding:4px 2px 2px 2px; + text-align:center; + margin-top:-2px; + cursor:pointer; +} + +.sheet-help-def .sheet-icon {margin-left: 0px} +.sheet-help-success .sheet-icon {margin-left: 25px} +.sheet-help-advantage .sheet-icon {margin-left: 50px} +.sheet-help-triumph .sheet-icon {margin-left: 75px} +.sheet-help-threat .sheet-icon {margin-left: 100px} +.sheet-help-despair .sheet-icon {margin-left: 125px} + +.sheet-help-content { + position:absolute; + background:#fff; + border:1px solid #ccc; + display:none; + width:250px; + margin-left:-25px; + margin-top:19px; + padding:10px; + font-size:12px; + -webkit-border-radius: 0px 3px 3px 3px; + border-radius: 0px 3px 3px 3px; + -webkit-box-shadow: 2px 2px 3px 0px rgba(50, 50, 50, 0.75); + /* -moz-box-shadow: 2px 2px 3px 0px rgba(50, 50, 50, 0.75); */ + box-shadow: 2px 2px 3px 0px rgba(50, 50, 50, 0.75); +} + +th .sheet-help-content { + color:#444; + font-weight: normal; +} + +.sheet-icon:hover ~ .sheet-help-content {display:block; z-index:10} + +.sheet-icon:hover { + background:#fff; + border:1px solid #ccc; + border-bottom:1px solid #fff; + padding:3px 1px 1px 1px; + z-index:15; + -webkit-border-radius: 3px 3px 0px 0px; + border-radius: 3px 3px 0px 0px; +} + +.sheet-help-content h5 { + padding-bottom:8px; +} + +.sheet-help-content ul li { + line-height:14px; + padding-bottom:8px; +} + +.sheet-force-rating label input { + text-align: center; +} + +/* -------------------------------------------------- Talents */ + +.sheet-talents th:last-child { + background-image:none; + text-align:center; +} + +.sheet-talent tr td { + border-bottom:none; +} + +.sheet-talent { + border-bottom:1px dotted #999; +} + +.sheet-talent:hover { + background:#f1f1f1; +} + +[name=attr_talentname] { + font-weight:bold; +} + +/* ------------------------------------------------- Weapons */ + +.sheet-weapons td:nth-child(1), +.sheet-weapons td:nth-child(9) { + width:20%; +} + +.sheet-weapons td:nth-child(2), +.sheet-weapons td:nth-child(4), +.sheet-weapons td:nth-child(6), +.sheet-weapons td:nth-child(8) +{ + text-align:center; + background-image: url('http://i.imgur.com/cyPJPLg.png');/* Single Digit - Border */ + background-position: center top; + background-repeat:no-repeat; + width:99px; + height:66px; + vertical-align:top; +} + +.sheet-weapons { + background: url('http://i.imgur.com/oWaNr2C.png') center 45px repeat-x;/* Title Double Line */ +} + +.sheet-weapons tr td {border:none;} +.sheet-weapons tr:hover td {background-color:transparent;} + +.sheet-weapons label { + text-align:center; + color:#fff; + font-weight:bold; + line-height:15px; + padding-bottom:4px; + font-size:14px; + display:block; +} + +.sheet-weapons [type=text] { + font-size:14px; + font-weight:bold; + width:50px; + text-align:center +} + +.sheet-weapons [type=roll] { + font-size:28px !important; + line-height:30px !important; + width:auto !important; +} + +.sheet-attachments-wrapper { + position:relative; + padding-top:5px; +} + +.sheet-view-attachments { + float:left; + margin-left:10px; + padding-bottom:15px; + position:relative; +} + +input.sheet-view-attachments { + margin-top:-28px; +} + +label.sheet-view-attachments { + width:150px; + margin-top:-31px; + margin-left:30px; +} + +.sheet-attachments { + display:none; +} + +input.sheet-view-attachments:checked ~ .sheet-attachments { + display:table; +} + +.sheet-attachments th:last-child { + background:#444; +} + +/* ---------------------------------------------------------- Ship */ + +.sheet-ship { + background:url('http://i.imgur.com/R7CME69.png') center center no-repeat;/* Vehicle Sheet Stat connecting sword title - Border */ + background-color:transparent; +} + +table.sheet-ship tr td { + border:none; + background-color:transparent; +} + +table.sheet-ship tr:hover td { + background-color:transparent; +} + +.sheet-ship-defense { + background:url('http://i.imgur.com/VaTaF9r.png') center center no-repeat;/* Starship Four Zones - Border */ + width:302px; + height:236px; + text-align:center; + vertical-align:top; +} + +.sheet-ship-char-thre-bg { + background-image: url('http://i.imgur.com/cODj4n5.png');/* Threshold / Current - Border */ + background-position: center 0px; + background-repeat:no-repeat; + vertical-align:top; + width: 33%;/*153px;*/ + height:87px; + text-align:center; +} + +.sheet-ship-char-thre-bg-speed { + background-image: url('http://i.imgur.com/cODj4n5.png');/* Threshold / Current - Border */ + background-position: center 25px; + background-repeat:no-repeat; + vertical-align:top; + width: 33%;/*153px;*/ + height:87px; + text-align:center; + padding-top:28px; +} + +.sheet-ship-char-bg { + text-align:center; + background-image: url('http://i.imgur.com/cyPJPLg.png');/* Single Digit - Border */ + background-position: center 37px; + background-repeat:no-repeat; + width:99px; + height:66px; + vertical-align:top; + text-align:center; + padding-top:40px; +} + +.sheet-ship-char-bg label { + text-align:center; + color:#fff; + font-weight:bold; + line-height:15px; + padding-bottom:4px; + font-size:13px; + display:block; +} + +.sheet-ship [type=number] { + font-size:16px; + font-weight:bold; + text-align:right; + width:50px !important; +} + +.sheet-ship-char-bg [type=number] { + font-size:14px; +} + +.sheet-ship-defense label { + color:#fff; + text-align:center +} + +.sheet-def-label { + position:absolute; + width:50px; + margin-left:220px; + margin-top:48px; + font-size:14px +} + +.sheet-fore, +.sheet-starboard, +.sheet-aft, +.sheet-port { + width:99px; + height:66px; + position:absolute; +} + +.sheet-fore { + margin-left:99px; + margin-top:2px; +} + +.sheet-starboard { + margin-left:203px; + margin-top:91px; +} + +.sheet-aft { + margin-left:99px; + margin-top:172px; +} + +.sheet-port { + margin-left:0px; + margin-top:91px; +} + +.sheet-firearc-field {width:32px; height:32px; padding:1px 0 0 0; vertical-align:top} + +.sheet-fireArcFore, +.sheet-fireArcStarboard, +.sheet-fireArcAft, +.sheet-fireArcPort { + position:absolute; + z-index:5; + opacity:0.0; +} + +.sheet-fireArcFore {margin-left:10px; margin-top:0px} +.sheet-fireArcStarboard {margin-left:20px; margin-top:10px} +.sheet-fireArcAft {margin-left:10px; margin-top:20px} +.sheet-fireArcPort {margin-left:0px; margin-top:10px} + +span.sheet-fireArcForeImg, +span.sheet-fireArcStarboardImg, +span.sheet-fireArcAftImg, +span.sheet-fireArcPortImg { + background:url('http://i.imgur.com/DcWGIWp.png') left bottom no-repeat;/* Starship Weapon Firing Arcs */ + display:block; + width:32px; + height:32px; + position:absolute; +} + +span.sheet-fireArcForeImg {background-position:0px bottom} +span.sheet-fireArcStarboardImg {background-position:-32px bottom} +span.sheet-fireArcAftImg {background-position:-64px bottom} +span.sheet-fireArcPortImg {background-position:-96px bottom} + +.sheet-fireArcFore:checked ~ span.sheet-fireArcForeImg {background-position:0px top} +.sheet-fireArcStarboard:checked ~ span.sheet-fireArcStarboardImg {background-position:-32px top} +.sheet-fireArcAft:checked ~ span.sheet-fireArcAftImg {background-position:-64px top} +.sheet-fireArcPort:checked ~ span.sheet-fireArcPortImg {background-position:-96px top} \ No newline at end of file diff --git a/Star Wars FFG API-Compatible/FFG-SWRPG-CharacterSheet.html b/Star Wars FFG API-Compatible/FFG-SWRPG-CharacterSheet.html new file mode 100644 index 0000000000..f27713a618 --- /dev/null +++ b/Star Wars FFG API-Compatible/FFG-SWRPG-CharacterSheet.html @@ -0,0 +1,9506 @@ + + + + + + + +Character Sheet + +Vehicle Sheet + +Group Sheet + +Companion Sheet + + + +GM Resources + + +
+
+
+ + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + + +
--> + + +
+ + +
+ + +
+ + +
+
+
+
+

Destiny Pool

+ + + + + + + + + + +
+

+ +
+ + + + + + + +
+
+
+
+
+

Dice Pool

+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+
+
+
+ + +  Character Info  + +    Skills    + +    Combat    + +  Item Inventory  + +    Notes    + +
+
+
+

Character

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Description
+
+
+ + + + + + + + + + + +
Notable Features
+ + + + + + + + + + + +
Other
+
+
+
+
+
+

Critical Injuries

+
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + +
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + +
Motivations
+
+
+

Game Mechanics


+
+ + + + + + +
Obligations
+
+
+ + + + + + + + + + + + + +
+
+
+
+
+ + + + + + + + + + +
Duty
+
+
+ + + + + + + + + + + + + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Morality
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+
+
+
+
+
+

Skills

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
General SkillsCareerRank + Modifiers +
+
+
+ ? +
+
+
Adding Dice
+

+ To add additional dice write the number of + dice and color letter you want to roll. + Additionally you can add some dice symbols + to automatically add to the roll. +

+

Example: 1b 1g outputs

+

+ b -> Blue = Boost, blk -> BLack = Setback + g -> Green = Ability, y -> Yellow = Proficiency + p -> Purple = Difficulty, r -> Red = Challenge + w -> White = Force + s = Success, f = Failure, a = Advantage, t = Threat +

+
+
+
+
+ +
+
+
+ ? +
+
+
Overview (p71)
+
    +
  • Program a navicomputer for a hyperspace jump.
  • +
  • Basic knowledge of galactic geography.
  • +
  • Use navicomputer to identify location.
  • +
  • Familiarity with hyperspace routes and the types of craft and commerce most common along a route.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Better target the location, e.g.: place vessel directly into orbit around target planet.
  • +
  • Reduce time spent calculating.
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Reduce travel time.
  • +
  • Identify convenient stopovers to resupply or conduct additional business.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Complete calculations in minimum time.
  • +
  • Greatly reduce travel time.
  • +
  • Reveal highly valuable but previously unknown information.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Decrease accuracy of hyperspace jump.
  • +
  • Increase travel time.
  • +
  • Miss relevant details when analyzing hyperspace routes or galactic maps.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • As for , but to greater magnitude.
  • +
  • Trigger something truly awful happening, such as jumping out of hyperspace in the path of an asteroid.
  • +
+
+
+
+
+ + + + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p71)
+
    +
  • Climb - including rappel or swing on a line - difficulty determined by surface and weather conditions.
  • +
  • Swim - difficulty determined by water conditions (waves, currents and tides).
  • +
  • Jump horizontally or vertically - difficulty determined by gravitational conditions and distance required.
  • +
  • Push movement to a longer speed or run for an extended time.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Reduce time required.
  • +
  • Increase distance travelled.
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Generate bonus on other physical checks performed later or by allies that turn.
  • +
  • to grant additional maneuver during turn to move or perform physical activity.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Perform the check with truly impressive results.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Small amounts cause strain.
  • +
  • Larger amounts may cause character to fall prone, or even suffer a wound from sprains and bruises.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • Inflict a Critical Injury, which the GM can choose to be thematic or roll randomly.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p72)
+
    +
  • Persuade an individual to make a special exception to usual practices through flattery, flirting and grace.
  • +
  • Appeal to an individual's better nature, requiring them to go out of their way to aid the characters without any hope of remuneration.
  • +
  • Sincere seduction attempts (use Deceit when interest is feigned).
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Gain an extra scene in which target is willing to support you for each additional
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Affect unexpected subjects beyond the original target.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Have target NPC become recurring character who remains predisposed to assist.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Reduce the number of people able to influence
  • +
  • Turn those affected negatively against character.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • Turn NPC against character and make into a minor recurring adversary.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p72)
+
    +
  • Issue a threat, whether accompanied by hostile actions or implied, such as gesturing or pointing towards a weapon.
  • +
  • Question or persuade a target under conditions of physical captivity.
  • +
  • Acts of torture.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Inflict one strain on target.
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Affect unexpected subjects beyond the original target.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Shift allegiance of target.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Target has building resentment towards character.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • Reveal something about goals and motivations to target.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p73)
+
    +
  • Open a locked door, control an elevator or bypass a security system.
  • +
  • Search through records, particularly if encrypted.
  • +
  • Investigate what actions a slicer might have taken against a computer system.
  • +
  • Alter a droid's programming or gain access to its memories.
  • +
  • Recover data from a system that has suffered physical damage.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Reduce time required.
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Uncover additional information about the system.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Obfuscate actions taken -add to any check to detect or identify the characters actions.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • + The character does a + poor job of concealing his + presence in the system. + Security systems are + alerted, and add to the + check of any NPC attempting + to discover evidence of his + actions. +
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • + Leave behind trace + information of your own + system in the system being + sliced. Add to the check of + any NPC using the target + system to slice the + character's system. +
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p74)
+
    +
  • Resist efforts to hide the truth among overt niceties.
  • +
  • Check for initiative when carefully and calmly prepared.
  • +
  • Check for initiative in a social situation/discussion where timing matters.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • -
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Gain an additional insight into the situation at hand.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Heal 3 strain.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Miss a vital detail or event.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • The character is overwhelmed by the chaos and is stunned for one round.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p74)
+
    +
  • Reduce damage when falling (see p140).
  • +
  • Walk across a narrow surface, whether a wide beam or a thin pipe.
  • +
  • Escape from restraints.
  • +
  • Crawl through the twists and turns of a sewage pipe, ventilation duct or garbage chute.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Reduce time required.
  • +
  • Increase distance travelled by 25%, (maximum 100% increase).
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • to grant additional maneuver during turn.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Perform the check with truly impressive results.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Lose free maneuver for one round.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • Suffer a wound
  • +
  • Lose a vital piece of equipment.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p75)
+
    +
  • Mislead a buyer or seller about the value of an object.
  • +
  • Distract an opponent through guile.
  • +
  • Lay a false trail when pursued.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Extend duration of Deceit action.
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Increase the value of any goods or services gained through the action.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Fool the target into believing the character is trustworthy - future Deceit checks against target do not require an opposed check.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Give away a portion of the lie, making target suspicious.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • Target realises he has been lied to and spreads word of his deceit to harm his reputation or uses the situation to his advantage.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p75)
+
    +
  • Act normally while pinned down by heavy fire.
  • +
  • Engage, rather than flee before, a creature with inherently horrifying aspects.
  • +
  • Resist a tempting deal that seems far too good to be true.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Downgrade difficulty of the dice pool for next action (max. 1).
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Gain an additional insight into the situation at hand.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Add to any Discipline checks made by allies during the following round.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Undermine the characters resolve, perhaps inflicting a penalty on further actions in distressing circumstances.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • The character is overwhelmed entirely and is unable to perform more than one maneuver next round.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p76)
+
    +
  • Rally allies subject to the effects of fear (see p189).
  • +
  • Sway a crowd in a public venue to take action, most often of a political nature.
  • +
  • Reassert the loyalty of underlings that have fallen before the guile of an opponent.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Extend target's support for additional scenes.
  • +
  • Increase efficiency or effectiveness of target during ordered actions.
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Affect bystanders in addition to target.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Have target NPC become recurring character who decides to faithfully follow the acting character.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Decrease the efficiency of ordered actions, causing them to take longer or be done poorly.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • + Undermine the + character's authority, + damaging the characters + ability to command target or + those who witnessed the + attempt. +
  • +
  • + With multiple target may + become a recurring thorn in + the character's side, + refusing future orders or + turning others against the + character. +
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p76)
+
    +
  • Repair physical damage to a device, provided necessary tools and replacement components are available. +
  • Repair starship or vehicle (see p155).
  • +
  • Identify the parts and tools necessary for a repair job, along with approximate cost.
  • +
  • Construct a completely new device from discrete components and damaged devices.
  • +
  • Make a healing check on a droid (see Medicine, p177).
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Reduce time required by 10-20%
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Grant on checks when using repaired item, or even the Superior quality, for a session.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Give device additional single use function.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • + Particularly shoddy + repairs or temporary + measures, the GM may spend + to cause the target object + or system to malfunction + shortly after check + completed. +
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • Cause further harm to target object or system.
  • +
  • Cause other components of target to malfunction.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p77)
+
    +
  • Apply routine first aid, including medpacs.
  • +
  • Treat or inflict a poison, pharmaceutical or recreational drug.
  • +
  • Identify symptoms and treatment for infectious diseases and parasites.
  • +
  • More serious treatment - including surgery, cybernetic augmentation and psychotherapy, provided necessary pharmaceuticals and medical instruments are available.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Target recovers one additional wound.
  • +
  • Reduce healing time by one hour.
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Eliminate one strain from target.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Heal additional wounds while attempting to heal Critical Injury, or vice versa.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Inflict strain on the target due to shock of procedure.
  • +
  • Increase time procedure takes.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • A truly terrible accident, perhaps inflicting further wounds on target.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p77)
+
    +
  • Adjust the purchase price when buying goods or services.
  • +
  • Adjust the selling price when selling goods or services.
  • +
  • Participate in skill-based gambling (use Deceit when cheating).
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Increase acting character's profit by 5%.
  • +
  • Modify scope of agreement.
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Earn unrelated boons from target, concessions if failed or extra perks if passed.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Have target NPC become regular client or specialist vendor.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Increase cost of goods purchased.
  • +
  • Decrease value of goods sold.
  • +
  • Shorten contracts negotiated.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • Seriously sabotage goals during the interaction, perhaps receive counterfeit goods or payment, or agree to terms entirely beyond scope of negotiation.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p78)
+
    +
  • Detect a trap or ambush, prior to falling prey to the assault.
  • +
  • Detect a disguised individual, when not actively looking.
  • +
  • Notice a subtle clue - overheard conversation, the stink of a Jawa, drug introduced to beverage.
  • +
  • Accidently notice subtly hidden objects, such as the latch securing a smuggling compartment.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Reveal additional details.
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Recall additional information associated with object noticed.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Notice details that can be useful later to gain on future interactions with noticed object.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Conceal a vital detail about situation or environment.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • Obtain false information about surroundings or target.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p78)
+
    +
  • Decipher basic controls of completely foreign type of atmospheric craft.
  • +
  • Determine results of a race upon a world's surface.
  • +
  • Maintain a tail or lose a chaser.
  • +
  • Navigate through a familiar environment, representing knowledge of typical traffic patterns.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Gain insights into situation.
  • +
  • Deduce way to modify vehicle to make it more effective in future.
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Reveal vulnerability in opponent's piloting style or vehicle, giving benefit in later rounds.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Grant additional maneuver while continuing to pilot vehicle.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • to give opponents on checks against character and vehicle due to momentary malfunction in system.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • Deal damage to vehicle as character strains systems throughout vehicle during check.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p79)
+
    +
  • Determine results of a race between the stars.
  • +
  • Resolve chases, whether through asteroid belts, a crowded battlefield or skirting the edge of a gravimetric instability.
  • +
  • Jockey for position in a space conflict, to determine which shields face the enemy and which weapons may be brought to bear.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Gain insights into situation.
  • +
  • Deduce way to modify vehicle to make it more effective in future.
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Reveal vulnerability in opponent's piloting style or vehicle, giving benefit in later rounds.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Grant additional maneuver while continuing to pilot vehicle.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • to give opponents on checks against character and vehicle due to momentary malfunction in system.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • Deal damage to vehicle as character strains systems throughout vehicle during check.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p79)
+
    +
  • Go without sleep for significantly longer than is healthy for species.
  • +
  • Resist the effects of a toxin.
  • +
  • Endure prolonged exposure to a hostile environment - including heat, cold or toxic pollution.
  • +
  • Resist the effects of dehydration and malnutrition.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Extend effects of the success to increase time between checks.
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Identify way to reduce difficulty of future checks against same threat.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Recover 3 strain.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Overburden the character, inflicting penalties on subsequent checks.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • Inflict a wound or minor Critical Injury on character, as they succumb to harsh conditions.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p80)
+
    +
  • Pick a lock or pocket using physical tools rather than programming.
  • +
  • Escape from a cell (after using Coordination to slip any bonds) and navigate away from security elements.
  • +
  • Identify the most vulnerable aspects of a security scheme.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Gain additional insights about nature of opposition.
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Identify additional potential target.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Earn an unexpected boon.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Opportunity to catch character immediately after act, number of determine immediacy of discovery and ensuing danger.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • Leave behind evidence of larceny.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p80)
+
    +
  • Blend in with a crowd, hiding by acting as though you belong.
  • +
  • Hide from an opponent's senses, modified by ambient conditions and applicable gear.
  • +
  • Hide people or objects from the attentions of others, either through concealment or misdirection.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Assist allied character infiltrating at same time.
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Decrease time taken to perform action while hidden.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Identify way to completely distract opponent for duration of scene.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Increase time taken to perform action while hidden by 20%.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • Leave behind evidence of passing, concerning identity and possibly motive.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p81)
+
    +
  • Locate a merchant who specialises in unsavoury goods or illicit services.
  • +
  • Pick up subtle cues from the language and attitudes of those who operate outside of legal structures. Understand subtle references within conversations.
  • +
  • Discover what rumours are actively circulating within a region.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Reduce time or funds required to obtain item, information or service.
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Reveal additional rumours or alternative sources.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Gain semi-permanent contact on street.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Seed gathered information with minor falsehoods.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • Character lets slip details about self or information sought.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p82)
+
    +
  • Identify safe food, potable water or shelter in a natural environment.
  • +
  • Understand weather patterns. Recognise the signs of imminent dangerous conditions and know the best way to prepare.
  • +
  • Track a subject through the wilderness - whether game or bounty.
  • +
  • Handle domesticated animals, so they may be used as beasts of burden or transport.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Assist other character in surviving.
  • +
  • Stockpile goods to increase time between checks.
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Gain insight into environment to make future checks simpler.
  • +
  • When tracking, learn significant detail about target, such as number, species or how recently tracks were made.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • When handling domesticated animal, predispose animal towards character earning loyal companion.
  • +
  • When tracking, learn vital clue about target.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Spend vital resources (food, fuel, etc.) during check.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • Inflict wounds, Critical Injuries or large amounts of strain on character.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p82)
+
    +
  • Check for initiative when unprepared.
  • +
  • Use ability associated with the Force dependent on Vigilance.
  • +
  • Determine how prepared you are for unexpected crises. Resolve questions about whether or not a small piece of gear is available.
  • +
+
+
+
+
+ +
+
+
Per Additional Success
+
    +
  • Character is particularly well prepared.
  • +
+
+
+
+
+ +
+
+
Per Advantage
+
    +
  • Notice key environmental factor.
  • +
+
+
+
+
+ +
+
+
Per Triumph
+
    +
  • Gain extra maneuver during first round of combat.
  • +
+
+
+
+
+ +
+
+
Per Threat
+
    +
  • Miss key piece of information about situation or environment.
  • +
+
+
+
+
+ +
+
+
Per Despair
+
    +
  • The character is unable to perform more than one maneuver during first round of combat.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Combat SkillsCareerRankMods
+ +
+
+
+ ? +
+
+
Overview (p130)
+
    +
  • Make a melee attack while using a Lightsaber-type weapon.
  • +
  • The characteristic associated with this skill can be modified by certain talents.
  • +
+
+
+
+ +
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p83)
+
    +
  • Make a melee attack while unarmed or using a Brawl weapon.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p83)
+
    +
  • Make a ranged attack using a Gunnery weapon.
  • +
  • Operate complex targeting computers and automated weapons mounts.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p84)
+
    +
  • Make a melee attack using a Melee weapon.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p84)
+
    +
  • Make a ranged attack using a Ranged (Light) weapon.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p84)
+
    +
  • Make a ranged attack using a Ranged (Heavy) weapon.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Knowledge SkillsCareerRankMods
+ +
+
+
+ ? +
+
+
Overview (p85)
+
    +
  • Identify a person's planet of origin without asking, by recognising traits of accent, dress and mannerisms associated with a particular world.
  • +
  • Know what behaviours are considered necessary and polite, as opposed to ones that could be offensive when interacting with someone from a Core World.
  • +
  • Identify which markets are the best places to sell or purchase a particular cargo (in the Core Worlds). Recognise any worlds where such goods could be illegal.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p85)
+
    +
  • Identify the best way to proceed when interacting with a government entity.
  • +
  • Employ basic scientific knowledge in an analysis.
  • +
  • Understand any question that doesn't obviously fall under another knowledge skill.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p85)
+
    +
  • Decipher an ancient piece of writing or identify its context.
  • +
  • Know legends associated with the exploits of an ancient hero.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p86)
+
    +
  • Find a planet with a particular resource or service among the systems of the Outer Rim.
  • +
  • Identify which markets are the best places to sell or purchase a particular cargo (in the Outer Rim). Recognise any worlds where such goods could be illegal.
  • +
  • Know what behaviours are considered necessary and polite, as opposed to ones that could be offensive when interacting with someone from an Outer Rim world.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p86)
+
    +
  • Know which nearby worlds are the best locations for a particular type of illegal business.
  • +
  • Determine the most common methods an opponent might use for a particular type of criminal activity.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p86)
+
    +
  • Know what behaviours are considered necessary and polite, as opposed to ones that could be offensive when interacting with a member of an unfamiliar species.
  • +
  • Identify a particular way to injure or a characteristic vulnerability, to either help or harm a member of another species.
  • +
  • Know appropriate environmental conditions and foodstuffs for a member of another species.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (AoR p136)
+
    +
  • Know of the strategies and tactics of warefare both on the ground and in space.
  • +
  • Remembering details about a significant event, organization, or individual who played a role in a galactic struggle.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Custom SkillsCharCareerRankMods
+ + + + + +
+
+ +
+
+ + + + + +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ + + + + + + + +
+ + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + + +
+ + + + +
+
+
+
+
+
+

Weapons


+
+ + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
Rarity:
+ + Value
+   +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Attachment NameHard PointsBase ModifiersModifications
+
+
+
+
+
+
+

Combat Skills

+ + + + + + + +
Skill NameModifiers
+
+ + + + + + + + +
+ +
+
+
+
+

Talents and Special Abilities

+ + + + + + + +
NameSummary
+
+ + + + + + + + + + + + + + + + + + +
+ + + +
+
+ + + +
+
+
+
+
+
+

Force Powers

+ + + + + + + +
Power NameSummary
+
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+   +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
UpgradeRankXP CostDescription
+
+
+
+
+

Signature Abilities

+ + + + + + + +
Ability NameSummary
+
+ + + + + + + + + + + + + + + + + + + + +
+ + + +
+   +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
UpgradeRankXP CostDescription
+
+
+
+
+
+
+
+

Armor


+
+ + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
Rarity:
+ + Value:
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Attachment NameHard PointsBase ModifiersModifications
+
+
+
+
+
+
+

Cybernetics

+ + + + + + + +
Make/ModelBonus
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Rarity:
+
+ + + +
+
+ +
+
+
+
+
+
+

Tools

+ + + + + + + +
Tool NameBonus/Description
+
+ + + + + + + + + + + + + + + + + + + + + +
+ + + +
Encumbrance:Rarity:
+ + Value:
+
+
+
+
+
+
+
+

Other Gear


+
+ + + + + + + +
Personal Gear
+
+
+ + + + + + + +
Assets & Resources
+
+
+
+
+
+
+
+
+
+
+
+

Notes


+ + +
+
+
+
+
+
+
+
+

Dice Pool

+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+
+
+
+ + +  Starship  + +  Planetary  + +  Beast  + +
+
+
+ + + + + + + + + + + + +
+ + + + + +
+ + +
+ + + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + + + + +
+ + +
+ + +
+ + +
+
+
+
+
+
+

Space Vehicle Details

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
Rarity:
+ + Value
+
+
+
+
+
+

Crew Roles

+ + + + + + + + + + +
Character NameRole (Pilot, Co-pilot, Engineer)DiceSpecialSkill
+
+ + + + + + + + + + + +
+ +
+
+
+
+
+
+
+
+

Weapons

+
+ + + + + + + + + + + +
Character NameWeapon NameArcCritDmgRange/Skill
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +  
+ + + + + +
Rarity: + +
Value
+
+
+
+
+
+
+

Attachments

+ + + + + + + + + +
NameHard pointsBase ModifiersModifications
+
+ + + + + + + + + + + + + + + + + + + + + +
Rarity:
+ + Value
+
+
+
+
+
+
+
+

Starship Critical

+
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + +
+ + +
+
+
+
+
+
+

Cargo Hold

+ + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ +
+
+
+
+
+
+
+
+

Passengers

+ + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+ +
  
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + +
+ + + + + +
+ + +
+ + + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + + + + +
+ + +
+ + +
+ + +
+
+
+
+
+
+

Planetary Vehicle Details

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rarity:
+ + Value
+
+
+
+
+
+

Crew Roles

+ + + + + + + + + + +
Character NameRole (Pilot, Co-pilot, Engineer)DiceSpecialSkill
+
+ + + + + + + + + + + +
+ +
+
+
+
+
+
+
+
+

Weapons

+ + + + + + + + + + + +
Character NameWeapon NameArcCritDmgRange/Skill
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +  
+ + + + + +
Rarity: + +
Value
+
+
+
+
+
+
+

Attachments

+ + + + + + + + + +
NameHard pointsBase ModifiersModifications
+
+ + + + + + + + + + + + + + + + + + + + + +
Rarity:
+ + Value
+
+
+
+
+
+
+
+

Planetary Vehicle Critical

+
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + +
+ + +
+
+
+
+
+
+

Cargo Hold

+ + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ +
+
+
+
+
+
+
+
+

Passengers

+ + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + + +
+ + +
+ + +
+ + +
+
+
+

Riding Beast Details

+ + + + + + + + + + + + + + + + + + + + + +
Rarity:
+ + Value
+
+
+
+ + + + + + + + + + + + + + + + + + + + +
Description
+
+
+ + + + + + + + + + + +
Notable Features
+ + + + + + + + + + + +
Other Information
+
+
+
+
+
+
+
+
+
+ + + + + + + + +
+ + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + + +
+ + + + +
+
+
+
+
+
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+
+
+
+
+

Skills

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skill NameCareerRank + Modifiers +
+ + + + + +
+
+ +
+
+ + + + + +
+
+ +
+
+ + + + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
Other Skills CharCareerRankMods
+ + + + + +
+
+ +
+
+
+ + + + + + + + + + + + +
+ + + + + +
+
+ +
+
+
+
+
+
+
+
+
+

Abilities

+ + + + + + + +
NameAbility Summary
+
+ + + + + + + + + + + + + + +
+ + + +
+
+ + + +
+
+
+
+
+
+
+

Attacks


+
+ + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
 
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Attachment NameHard PointsBase ModifiersModifications
+
+
+
+
+
+
+

Beast Critical Injuries

+
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + +
+ + +
+
+
+
+
+
+
+
+ +





+ +  Base of Operations   + +  Shared Resources   + +
+
+
+
+ + + + +
+

Details

+ + + + + + + + + + + + + + + + +
+ +
+
+

NPCs

+ + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + +
+
+
+
+

Upgrades

+ + + + + + + +
Upgrade Type:Description
+
+ + + + + + + + + + + + + +
+
+
+
+
+

Details

+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+

NPCs

+ + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + +
+
+
+
+

Upgrades

+ + + + + + + +
Upgrade Type:Description
+
+ + + + + + + + + + + + + +
+
+
+
+
+

Details

+ + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+

NPCs

+ + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + +
+
+
+
+

Upgrades

+ + + + + + + +
Upgrade Type:Description
+
+ + + + + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+

Group Details

+ + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+

Group Contacts

+ + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+

Group Tasks

+
+ + + + + + + + + + + + + + + +
+ +
+
+
+
+
+
+
+

Group Obligations

+
+ + + + + + + + + + + + + +
+
+
+
+
+
+
+

Group Resources

+ + +
+
+
+
+
+

Group Posessions

+ + +
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + + +
+ + +
+ + +
+ + +
+ + +
+
+
+

Dice Pool

+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+
+
+
+ + +  Companion Info  + +  Skills, Talents, Weapons & Powers  + +  Item Inventory  + +
+
+
+

Companion

+ + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Description
+
+
+ + + + + + + + + + + +
Notable Features
+ + + + + + + + + + + +
Other
+
+
+
+
+
+

Companion Critical Injuries

+
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + +
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + +
+ + +
+
+
+
+
+
+
+

Weapons


+
+
+
+
+
+ + + + + + + + +
+ + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + + +
+ + + + +
+
+
+
+
+
+ + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
 
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Attachment NameHard PointsBase ModifiersModifications
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+
+
+
+
+
+

Skills

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skill NameCareerRank + Modifiers +
+ + + + + +
+
+ +
+
+ + + + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p130)
+
    +
  • Make a melee attack while using a Lightsaber-type weapon.
  • +
  • The characteristic associated with this skill can be modified by certain talents.
  • +
+
+
+
+ +
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p83)
+
    +
  • Make a melee attack while unarmed or using a Brawl weapon.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p83)
+
    +
  • Make a ranged attack using a Gunnery weapon.
  • +
  • Operate complex targeting computers and automated weapons mounts.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p84)
+
    +
  • Make a melee attack using a Melee weapon.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p84)
+
    +
  • Make a ranged attack using a Ranged (Light) weapon.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ +
+
+
+ ? +
+
+
Overview (p84)
+
    +
  • Make a ranged attack using a Ranged (Heavy) weapon.
  • +
+
+
+
+
+ + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
Custom SkillsCharCareerRankMods
+ + + + + +
+
+ +
+
+
+ + + + + + + + + + + + +
+ + + + + +
+
+ +
+
+
+
+
+
+
+
+
+

Talents and Special Abilities

+ + + + + + + +
NameAbility Summary
+
+ + + + + + + + + + + + + + +
+ + + +
+
+ + + +
+
+
+
+
+
+
+
+

Force Powers

+ + + + + + + +
NamePower Summary
+
+ + + + + + + + + + + + + + + + + + +
+ + + + + +
+   +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
UpgradeLevelDescription
+
+
+
+
+
+
+
+
+
+

Armor

+
+ + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
Rarity: + + Value:
 
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Attachment NameHard PointsBase ModifiersModifications
+
+
+
+
+
+
+
+

Cybernetics

+ + + + + + + +
Make/ModelBonus
+
+ + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+ + + +
+
Rarity: + + Value:
+
+
+
+
+
+
+

Tools

+ + + + + + + +
Tool NameBonus/Description
+
+ + + + + + + + + + + + + + + + + + + +
+ + + +
Rarity: + + Value:Encumbrance:
+
+
+
+
+
+

Other Gear


+
+ + + + + + + +
Personal Gear
+
+
+ + + + + + + +
Assets & Resources
+
+
+
+
+
+ +
+ + +
+
+
+
+

GM Dice Pool

+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+
+
+
+

Destiny Pool

+ + + + + + + + + + +
+

+ +
+ + + + + + + +
+
+
+
+ + +  Group Details  + +  Campaign Details  + + +
+
+
+
+

Character Motivations

+
+ + + + + + + + + + + + + + + +
+
+
+
+
+
+
+

Character/Group Obligations

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+

Character Duties

+ + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+

Character Moralities

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+

Assignments and Tasks

+
+
+
+ + + + + + + + + + + + + + + +
+ +
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + +
General Info
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
Location
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
Reward(s)
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + +
Specific Details
+
+
+
+
+
+ + + + + + + + + + +
NPC NameType (Minion, Rival, or Nemesis)NumberSkillModifiers
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/Star Wars FFG API-Compatible/FFG-SWRPG-Dice-Roller.js b/Star Wars FFG API-Compatible/FFG-SWRPG-Dice-Roller.js new file mode 100644 index 0000000000..4d2fe3f735 --- /dev/null +++ b/Star Wars FFG API-Compatible/FFG-SWRPG-Dice-Roller.js @@ -0,0 +1,3525 @@ +/* +Version Info: +Version 4.0.2.17 +*/ + +/* Begin Sheet Character Sheet Auto Creator */ + +var Charsheet = Charsheet || {}; + +on('chat:message', function (msg) { + // Exit if not an api command + if (msg.type != "api") { + return; + } + + if (msg.content.indexOf('!charsheet') != -1) { + Charsheet.Generate(msg); + } +}); + +Charsheet.Generate = function (msg) { + var player = msg.who; + var character_name = msg.who + Date.now(); + + var character = createObj('character', { + gmnotes: 'Player: ' + player + '
Generated by script Charsheet.js', + archived: false, + inplayerjournals: msg.playerid, + controlledby: msg.playerid + }); + + /* Create attributes */ + createObj('attribute', { + name: 'player_name', + current: player, + _characterid: character.id + }); + createObj('attribute', { + name: 'name', + current: character_name, + _characterid: character.id + }) + + sendChat(player, "/me created a character named \"" + character_name + "\"!"); +}; + +if (!Date.now) { + Date.now = function now() { + return new Date().getTime(); + }; +} +/* End Sheet Character Sheet Auto Creator */ + +/* + Current Version: 4.0.2.4 + Last updated: 11.17.2015 + Character Sheet and Script Maintained by: GM Knowledge Rhino + Current and Developement Verions: https://github.com/KnowledgeRhino/FFG-SWRPG-CharacterSheet-For-Roll20.git + Older Verions: https://github.com/dayst/StarWarsEdgeOfTheEmpire_Dice + + Credits: + Original creator: Konrad J. + Helped with Dice specs: Alicia G. and Blake the Lake + Dice graphics hosted by Alicia G. at galacticcampaigns.com + Dice graphics borrowed from the awesome google+ hangouts EotE Dice App + Character Sheet and Advanced Dice Roller: Steve Day + GM Sheet Campaign Details design idea: www.reddit.com/user/JohnSquiggleton + Sheet Autocreator: www.reddit.com/user/lowdownfool + New Tab Design: Steve D., GM Knowledge Rhino, and Loki + Skill Description by: Gribble - https://dl.dropboxusercontent.com/u/9077657/SW-EotE-Reference-Sheets.pdf + Critical Descriptions by: Gribble - https://dl.dropboxusercontent.com/u/9077657/SW-EotE-Reference-Sheets.pdf + Debugger: Arron + Initiative Roller: Andrew H. + Opposed Roller: Tom F. + Work done by GM Knowledge Rhino: + Group Tab + Companion Tab + GM Resources + ReDesign of Vehicle Tabs + + API Chat Commands + + Settings: + Log + * default: 'on' and 'single' + * Description: Sets the visual output in the chat window for the dice rolls + * Command: !eed log on|off|multi|single + + Graphics + * default: 'on' and 'm' + * Description: Sets chat window dice output as graphic, small, medium, or large if "on" or as text if "off" + * Command: !eed graphics on|off|s|m|l + + Test + * Description: Output every side of every die to the chat window + * !eed test + + Debug + * default: 'off' + * DescriptionL Sets the logging level of the script in the API console. If you are having issues with the + * script rolling incorect dice, turn on debug logging and post the result in the forums. No need to restart the + * script with this command. + * Command: !eed debug on|off + + Roll: + Label + * default: null + * Description: set the skill name of the roll + * Command: !eed label(Name of Skill) + + Initiative + * default: false + * Description: Set NPC/PC initiative true + * Command: !eed npcinit or pcinit and #b #g #y #blk #p #r #w + + Skill + * default: + * Description: create the ability and proficiency dice for a skill check + * Command: !eed skill(char_value|skill_value) + + Opposed + * default: + * Description: create the difficulty and challenge dice for an opposed skill check + * Command: !eed opposed(char_value|skill_value) + + Dice + * default: + * Description: Loop thru the dice and adds or subtracts them from the dice object + * Command: !eed #g #y #b #blk #r #p #w #s #f #a #t + + Upgrade + * default: + * Description: upgrades ability and difficulty dice + * Command: !eed upgrade(ability|#) or upgrade(difficulty|#) + + Downgrade + * default: + * Description: downgrades proficiency and challenge dice + * Command: !eed downgrade(proficiency|#) or downgrade(challenge|#) + + destiny + * default: + * Description: Rolls 1w die and adds the result to the destiny pool + * Command: !eed #w destiny doRoll + + Other: + charsheet + * default: + * Description: Generates a blank character sheet and automatically makes it viewable and editable by the person calling the script. + * Command: !charsheet +*/ + +var eote = {} + +eote.init = function () { + eote.setCharacterDefaults(); + eote.createGMDicePool(); + eote.events(); +} + +eote.defaults = { + globalVars: { + diceLogChat: true, + diceGraphicsChat: true, + diceGraphicsChatSize: 30,//medium size + diceTextResult: "", + diceTextResultLog: "", + diceGraphicResult: "", + diceGraphicResultLog: "", + diceTestEnabled: false, + diceLogRolledOnOneLine: true, + scriptDebug: false + }, + '-DicePoolID': '', + character: { + attributes: [ + /* Don't need to update characterID + * + *{ + name : "characterID", + current : "UPDATES TO CURRENT ID", + max : "", + update : false + }*/ + ], + ablities: [], + }, + graphics: { + SIZE: { + SMALL: 20, + MEDIUM: 30, + LARGE: 40 + }, + ABILITY: { + BLANK: "http://galacticcampaigns.com/images/EotE/Ability/abilityBlank.png", + A: "http://galacticcampaigns.com/images/EotE/Ability/abilityA.png", + AA: "http://galacticcampaigns.com/images/EotE/Ability/abilityAA.png", + S: "http://galacticcampaigns.com/images/EotE/Ability/abilityS.png", + SA: "http://galacticcampaigns.com/images/EotE/Ability/abilitySA.png", + SS: "http://galacticcampaigns.com/images/EotE/Ability/abilitySS.png" + }, + BOOST: { + BLANK: "http://galacticcampaigns.com/images/EotE/Boost/boostBlank.png", + A: "http://galacticcampaigns.com/images/EotE/Boost/boostA.png", + AA: "http://galacticcampaigns.com/images/EotE/Boost/boostAA.png", + S: "http://galacticcampaigns.com/images/EotE/Boost/boostS.png", + SA: "http://galacticcampaigns.com/images/EotE/Boost/boostSA.png" + }, + CHALLENGE: { + BLANK: "http://galacticcampaigns.com/images/EotE/Challenge/ChallengeBlank.png", + F: "http://galacticcampaigns.com/images/EotE/Challenge/ChallengeF.png", + FF: "http://galacticcampaigns.com/images/EotE/Challenge/ChallengeFF.png", + FT: "http://galacticcampaigns.com/images/EotE/Challenge/ChallengeFT.png", + T: "http://galacticcampaigns.com/images/EotE/Challenge/ChallengeT.png", + TT: "http://galacticcampaigns.com/images/EotE/Challenge/ChallengeTT.png", + DESPAIR: "http://galacticcampaigns.com/images/EotE/Challenge/ChallengeDespair.png" + }, + DIFFICULTY: { + BLANK: "http://galacticcampaigns.com/images/EotE/Difficulty/DifficultyBlank.png", + F: "http://galacticcampaigns.com/images/EotE/Difficulty/DifficultyF.png", + FF: "http://galacticcampaigns.com/images/EotE/Difficulty/DifficultyFF.png", + FT: "http://galacticcampaigns.com/images/EotE/Difficulty/DifficultyFT.png", + T: "http://galacticcampaigns.com/images/EotE/Difficulty/DifficultyT.png", + TT: "http://galacticcampaigns.com/images/EotE/Difficulty/DifficultyTT.png" + }, + FORCE: { + D: "http://galacticcampaigns.com/images/EotE/Force/ForceD.png", + DD: "http://galacticcampaigns.com/images/EotE/Force/ForceDD.png", + L: "http://galacticcampaigns.com/images/EotE/Force/ForceL.png", + LL: "http://galacticcampaigns.com/images/EotE/Force/ForceLL.png" + }, + PROFICIENCY: { + BLANK: "http://galacticcampaigns.com/images/EotE/Proficiency/ProficiencyBlank.png", + A: "http://galacticcampaigns.com/images/EotE/Proficiency/ProficiencyA.png", + S: "http://galacticcampaigns.com/images/EotE/Proficiency/ProficiencyS.png", + SA: "http://galacticcampaigns.com/images/EotE/Proficiency/ProficiencySA.png", + SS: "http://galacticcampaigns.com/images/EotE/Proficiency/ProficiencySS.png", + AA: "http://galacticcampaigns.com/images/EotE/Proficiency/ProficiencyAA.png", + TRIUMPH: "http://galacticcampaigns.com/images/EotE/Proficiency/ProficiencyTriumph.png" + }, + SETBACK: { + BLANK: "http://galacticcampaigns.com/images/EotE/Setback/SetBackBlank.png", + F: "http://galacticcampaigns.com/images/EotE/Setback/SetBackF.png", + T: "http://galacticcampaigns.com/images/EotE/Setback/SetBackT.png" + }, + SYMBOLS: { + A: "http://galacticcampaigns.com/images/EotE/Symbols/A.png", + S: "http://galacticcampaigns.com/images/EotE/Symbols/S.png", + T: "http://galacticcampaigns.com/images/EotE/Symbols/T.png", + F: "http://galacticcampaigns.com/images/EotE/Symbols/F.png", + TRIUMPH: "http://galacticcampaigns.com/images/EotE/Symbols/Triumph.png", + DESPAIR: "http://galacticcampaigns.com/images/EotE/Symbols/Despair.png", + L: "http://galacticcampaigns.com/images/EotE/Symbols/L.png", + D: "http://galacticcampaigns.com/images/EotE/Symbols/D.png" + } + }, + regex: { + cmd: /!eed/, + log: /log (on|multi|single|off)/, + debug: /debug (on|off)/, + graphics: /graphics (on|off|s|m|l)/, + test: /test/, + resetdice: /(resetgmdice|resetdice)/, + initiative: /\bnpcinit|\bpcinit/, + characterID: /characterID\((.*?)\)/, + rollPlayer: /rollPlayer(\(.*?\))/, + label: /label\((.*?)\)/, + skill: /skill\((.*?)\)/g, + opposed: /opposed\((.*?)\)/g, + upgrade: /upgrade\((.*?)\)/g, + downgrade: /downgrade\((.*?)\)/g, + gmdice: /\(gmdice\)/, + encum: /encum\((.*?)\)/g, + dice: /(-?\d{1,2}blk)\b|(-?\d{1,2}b)\b|(-?\d{1,2}g)\b|(-?\d{1,2}y)\b|(-?\d{1,2}p)\b|(-?\d{1,2}r)\b|(-?\d{1,2}w)\b|(-?\d{1,2}a)\b|(-?\d{1,2}s)|(-?\d{1,2}t)\b|(-?\d{1,2}f)/g, + crit: /crit\((.*?)\)/, + critShip: /critship\((.*?)\)/, + unusable: /unusableWeapon/, + destiny: /destiny (useDark|useLight|registerPlayer|sendUpdate|doRoll|clearPool)/, + }, + destinyListeners: [] +} + +eote.createGMDicePool = function () { + + var charObj_DicePool = findObjs({ _type: "character", name: "-DicePool" })[0]; + + var attrObj_DicePool = [ + { + name: 'pcgm', + current: 3, + max: '', + update: true + }, + { + name: 'gmdicepool', + current: 2, + max: '', + update: true + } + ]; + + //create character -DicePool + if (!charObj_DicePool) { + + charObj_DicePool = createObj("character", { + name: "-DicePool", + bio: "GM Dice Pool" + }); + + } + + eote.defaults['-DicePoolID'] = charObj_DicePool.id; + + eote.updateAddAttribute(charObj_DicePool, attrObj_DicePool); + +} + +eote.createObj = function () {//Create Object Fix - Firebase.set failed + var obj = createObj.apply(this, arguments); + var id = obj.id; + var characterID = obj.get('characterid'); + var type = obj.get('type'); + if (obj && !obj.fbpath && obj.changed) { + obj.fbpath = obj.changed._fbpath.replace(/([^\/]*\/){4}/, "/"); + } else if (obj && !obj.changed && type == 'attribute') { //fix for dynamic attribute after in character created in game + obj.fbpath = '/char-attribs/char/' + characterID + '/' + id; + // /char-attribs/char/characterID/attributeID + } + + return obj; +} + +eote.setCharacterDefaults = function (characterObj) { + + var charObj = [characterObj]; + + if (!characterObj) { + charObj = findObjs({ _type: "character" }); + } + + //add/update characterID field + _.each(charObj, function (charObj) { + + //updates default attr:CharacterID to current character id + //_.findWhere(eote.defaults.character.attributes, {'name':'characterID'}).current = charObj.id; + + //Attributes + eote.updateAddAttribute(charObj, eote.defaults.character.attributes);//Update Add Attribute defaults + + //Abilities + + }); +} + +eote.updateListeners = function (attributes) { + + _.each(eote.defaults.destinyListeners, function (charID) { + + var charObj = findObjs({ + _type: "character", + _id: charID + }); + + //add/update characterID feild + _.each(charObj, function (charObj) { + + //Attributes + eote.updateAddAttribute(charObj, attributes); //Update Add Attribute defaults + + }); + }); + + //Update GM + var GMObj = findObjs({ + _type: "character", + _id: eote.defaults['-DicePoolID'] + }); + eote.updateAddAttribute(GMObj, attributes); +} + +eote.updateAddAttribute = function (charactersObj, updateAddAttributesObj) { // charactersObj = object or array objects, updateAddAttributesObj = object or array objects + + //check if object or array + if (!_.isArray(charactersObj)) { + charactersObj = [charactersObj]; + } + + if (!_.isArray(updateAddAttributesObj)) { + updateAddAttributesObj = [updateAddAttributesObj]; + } + + _.each(charactersObj, function (characterObj) {//loop characters + + var characterName = ''; + + if (characterObj.name) { + characterName = characterObj.name; + } else { + characterName = characterObj.get('name'); + } + + //find attribute via character ID + var characterAttributesObj = findObjs({ _type: "attribute", characterid: characterObj.id }); + + if (updateAddAttributesObj.length != 0) { + + log('UPDATE/ADD ATTRIBUTES FOR:----------------------->' + characterName); + + + _.each(updateAddAttributesObj, function (updateAddAttrObj) { //loop attributes to update / add + + attr = _.find(characterAttributesObj, function (a) { + return (a.get('name') === updateAddAttrObj.name); + }); + + if (attr) { + if (updateAddAttrObj.update) { + log('Update Attr: ' + updateAddAttrObj.name); + attr.set({ current: updateAddAttrObj.current }); + attr.set({ max: updateAddAttrObj.max ? updateAddAttrObj.max : '' }); + } + } else { + log('Add Attr: ' + updateAddAttrObj.name); + eote.createObj('attribute', { + characterid: characterObj.id, + name: updateAddAttrObj.name, + current: updateAddAttrObj.current, + max: updateAddAttrObj.max ? updateAddAttrObj.max : '' + }); + } + }); + } + }); + +} + +/* DICE PROCESS + * + * Matches the different regex commands and runs that dice processing step + * The order of step should not be change or dice could be incorrectly rolled. + * example: All dice needs to be 'upgraded" before it can be 'downgraded' + * ---------------------------------------------------------------- */ + +eote.defaults.dice = function () { + this.vars = { + characterName: '', + characterID: '', + playerName: '', + playerID: '', + label: '' + } + this.totals = { + success: 0, + failure: 0, + advantage: 0, + threat: 0, + triumph: 0, + despair: 0, + light: 0, + dark: 0 + } + this.graphicsLog = { + Boost: '', + Ability: '', + Proficiency: '', + SetBack: '', + Difficulty: '', + Challenge: '', + Force: '', + Success: '', + Advantage: '', + Threat: '', + Failure: '' + } + this.textLog = { + Boost: '', + Ability: '', + Proficiency: '', + SetBack: '', + Difficulty: '', + Challenge: '', + Force: '', + Success: '', + Advantage: '', + Threat: '', + Failure: '' + } + this.count = { + boost: 0, + ability: 0, + proficiency: 0, + setback: 0, + difficulty: 0, + challenge: 0, + force: 0, + success: 0, + advantage: 0, + threat: 0, + failure: 0 + } +} + +eote.process = {} + +eote.process.logger = function (functionName, cmd) { + if (eote.defaults.globalVars.debugScript) { + log(functionName + ' : ' + cmd); + } +} + +eote.process.setup = function (cmd, playerName, playerID) { + + if (!cmd.match(eote.defaults.regex.cmd)) { //check for api cmd !eed + return false; + } + + var debugMatch = cmd.match(eote.defaults.regex.debug); + if (debugMatch) { + eote.process.debug(debugMatch); + return false; + } + + eote.process.logger("eote.process.setup", "NEW ROLL"); + + eote.process.logger("eote.process.setup", "Original Command: " + cmd); + + /* reset dice - test, might not need this + * ------------------------------------------------------------- */ + + var diceObj = new eote.defaults.dice(); + diceObj.vars.playerName = playerName; + diceObj.vars.playerID = playerID; + + /* Dice config + * Description: Change dice roller default config + * --------------------------------------------------------------*/ + var logMatch = cmd.match(eote.defaults.regex.log); + + if (logMatch) { + eote.process.log(logMatch); + return false; //Stop current roll and run test + } + + var graphicsMatch = cmd.match(eote.defaults.regex.graphics); + + if (graphicsMatch) { + eote.process.graphics(graphicsMatch); + return false; //Stop current roll and run test + } + + var testMatch = cmd.match(eote.defaults.regex.test); + + if (testMatch) { + eote.process.test(testMatch); + return false; //Stop current roll and run test + } + + /* Roll information + * Description: Set default dice roll information Character Name and Skill Label + * --------------------------------------------------------------*/ + + var rollPlayerMatch = cmd.match(eote.defaults.regex.rollPlayer); + + if (rollPlayerMatch) { + diceObj = eote.process.rollPlayer(rollPlayerMatch, diceObj); + + if (!diceObj) { + return false; + } + } + + var characterIDMatch = cmd.match(eote.defaults.regex.characterID); + + if (characterIDMatch) { + diceObj = eote.process.characterID(characterIDMatch, diceObj); + //Once Character ID is parsed, remove it from the cmd. + //it is possible that the character ID could contain dice values + //for ex. characterID(-JMBFmYX1i0L259bjb-X) will add 59 blue dice to the pool + cmd = cmd.replace(characterIDMatch[0], ''); + eote.process.logger("eote.process.setup.characterIDMatch", "New command: " + cmd); + } + + var unusableMatch = cmd.match(eote.defaults.regex.unusable); + + if (unusableMatch) { + eote.process.logger("eote.process.setup.unusableMatch", "Roll ended because of unusable weapon"); + sendChat(diceObj.vars.characterName, 'Weapon is too damaged to be used. Try repairing it.'); + return false; + } + + var labelMatch = cmd.match(eote.defaults.regex.label); + + if (labelMatch) { + diceObj = eote.process.label(labelMatch, diceObj); + } + + /* Dice rolls + * Description: Create dice pool before running any custom roll + * script commands that may need dice evaluated. + * --------------------------------------------------------------*/ + var gmdiceMatch = cmd.match(eote.defaults.regex.gmdice); + + if (gmdiceMatch) { + cmd = eote.process.gmdice(cmd); // update the cmd string to contain the gmdice + eote.process.logger("eote.process.setup.gmDice", "New command: " + cmd); + } + + var encumMatch = cmd.match(eote.defaults.regex.encum); + + if (encumMatch) { + diceObj = eote.process.encum(encumMatch, diceObj); + //eote.process.logger("eote.process.setup.encumMatch","New dice:" + diceObj); + } + + var skillMatch = cmd.match(eote.defaults.regex.skill); + + if (skillMatch) { + diceObj = eote.process.skill(skillMatch, diceObj); + } + + var opposedMatch = cmd.match(eote.defaults.regex.opposed); + + if (opposedMatch) { + diceObj = eote.process.opposed(opposedMatch, diceObj); + } + + var diceMatch = cmd.match(eote.defaults.regex.dice); + + if (diceMatch) { + diceObj = eote.process.setDice(diceMatch, diceObj); + } + + var upgradeMatch = cmd.match(eote.defaults.regex.upgrade); + + if (upgradeMatch) { + diceObj = eote.process.upgrade(upgradeMatch, diceObj); + } + + var downgradeMatch = cmd.match(eote.defaults.regex.downgrade); + + if (downgradeMatch) { + diceObj = eote.process.downgrade(downgradeMatch, diceObj); + } + + /* Roll dice and update success / fail + * ------------------------------------------------------------- */ + diceObj = eote.process.rollDice(diceObj); + + /* Custom rolls + * Description: Custom dice components have thier own message, results and + * often will return false to not allow proceeding scripts to fire + * --------------------------------------------------------------*/ + var resetdiceMatch = cmd.match(eote.defaults.regex.resetdice); + + if (resetdiceMatch) { + eote.process.resetdice(resetdiceMatch, diceObj); + return false; + } + + var initiativeMatch = cmd.match(eote.defaults.regex.initiative); + + if (initiativeMatch) { + eote.process.initiative(initiativeMatch, diceObj); + //return false; + } + + var destinyMatch = cmd.match(eote.defaults.regex.destiny); + + if (destinyMatch) { + eote.process.logger("etoe.process.setup.destiny", "Destiny Point Command"); + var doRoll = eote.process.destiny(destinyMatch, diceObj); + if (!doRoll) { + return false; + } + } + + var critMatch = cmd.match(eote.defaults.regex.crit); + + if (critMatch) { + eote.process.crit(critMatch, diceObj); + return false; + } + + var critShipMatch = cmd.match(eote.defaults.regex.critShip); + + if (critShipMatch) { + eote.process.critShip(critShipMatch, diceObj); + return false; + } + + /* Display dice output in chat window + * ------------------------------------------------------------- */ + eote.process.diceOutput(diceObj, playerName, playerID); + +} + +/* DICE PROCESS FUNCTION + * + * ---------------------------------------------------------------- */ + +eote.process.log = function (cmd) { + + /* Log + * default: 'on' and 'single' + * Description: Sets the visual output in the chat window for the dice rolls + * Command: !eed log on|off|multi|single + * ---------------------------------------------------------------- */ + + //log(cmd[1]); + + switch (cmd[1]) { + case "on": //if 'on' outputs dice to chat window + eote.defaults.globalVars.diceLogChat = true; + sendChat("Dice Sytem", 'Output rolled dice to chat window "On"'); + break; + case "off": //if 'off' outputs only results to chat window + eote.defaults.globalVars.diceLogChat = false; + sendChat("Dice Sytem", 'Output rolled dice to chat window "Off"'); + break; + case "multi": //if 'multi' multiple sets dice per line + eote.defaults.globalVars.diceLogRolledOnOneLine = false; + sendChat("Dice Sytem", 'Mulitple line output "Off"'); + break; + case "single": //if 'single' single set of dice per line + eote.defaults.globalVars.diceLogRolledOnOneLine = true; + sendChat("Dice Sytem", 'Mulitple line output "On"'); + break; + } +} + +eote.process.debug = function (cmd) { + switch (cmd[1]) { + case "on": + eote.defaults.globalVars.debugScript = true; + sendChat("Dice Sytem", 'Debug Script "On"'); + break; + case "off": + eote.defaults.globalVars.debugScript = false; + sendChat("Dice Sytem", 'Debug Script "Off"'); + break; + } +} + +eote.process.graphics = function (cmd) { + + /* Graphics + * default: 'on' and 'm' + * Description: Sets chat window dice output as graphic, small, medium, or large if "on" or as text if "off" + * Command: !eed graphics on|off|s|m|l + * ---------------------------------------------------------------- */ + + //log(cmd[1]); + + switch (cmd[1]) { + case "on": + eote.defaults.globalVars.diceGraphicsChat = true; + sendChat("Dice Sytem", 'Chat graphics "On"'); + break; + case "off": + eote.defaults.globalVars.diceGraphicsChat = false; + sendChat("Dice Sytem", 'Chat graphics "Off"'); + break; + case "s": + eote.defaults.globalVars.diceGraphicsChatSize = eote.defaults.graphics.SIZE.SMALL; + sendChat("Dice Sytem", 'Chat graphics size "Small"'); + break; + case "m": + eote.defaults.globalVars.diceGraphicsChatSize = eote.defaults.graphics.SIZE.MEDIUM; + sendChat("Dice Sytem", 'Chat graphics size "Medium"'); + break; + case "l": + eote.defaults.globalVars.diceGraphicsChatSize = eote.defaults.graphics.SIZE.LARGE; + sendChat("Dice Sytem", 'Chat graphics size "Large"'); + break; + } + +} + +eote.process.test = function (cmd) { + + eote.process.logger("eote.process.test", cmd); + + //Set test vars to true + eote.defaults.globalVars.diceTestEnabled = true; + tmpLogChat = eote.defaults.globalVars.diceLogChat; + tmpGraphicsChat = eote.defaults.globalVars.diceGraphicsChat; + eote.defaults.globalVars.diceLogChat = true; + eote.defaults.globalVars.diceGraphicsChat = true; + + //Roll dice + eote.process.setup('!eed 1b 1g 1y 1blk 1p 1r 1w', 'GM', 'Dice Test'); + + //After test reset vars back + eote.defaults.globalVars.diceTestEnabled = false; + eote.defaults.globalVars.diceLogChat = tmpLogChat; + eote.defaults.globalVars.diceGraphicsChat = tmpGraphicsChat; + +} + +eote.process.rollPlayer = function (cmd, diceObj) { + //Build cmd string + //get characterID + //get skills + //get encum + //remove rollPlayer(xxxx) from string + var match = { + skill: /skill:(.*?)[\|\)]/, + encum: /encum/, + character: /character:(.*?)[\|\)]/, + } + + var charcterMatch = cmd[1].match(match.character); + + if (charcterMatch) { + + var charObj = findObjs({ _type: "character", name: charcterMatch[1] }); + + if (charObj.length > 0) { + + diceObj.vars.characterName = charObj[0].get('name'); + diceObj.vars.characterID = charObj[0].id; + + } else { + sendChat("Alert", "Can't find character. Please update character name field to match sheet character name and try again."); + return false; + } + } else { + sendChat("Alert", "Please update character name field."); + return false; + } + + var encumMatch = cmd[1].match(match.encum); + + if (encumMatch) { + //encumbrance + var attr_1 = getAttrByName(diceObj.vars.characterID, 'encumbrance', 'max'); + var attr_2 = getAttrByName(diceObj.vars.characterID, 'encumbrance'); + var cmdEncum = ['encum(' + attr_1 + '|' + attr_2 + ')']; //["encum(3|5)"] + + diceObj = eote.process.encum(cmdEncum, diceObj); + + } + + var skillMatch = cmd[1].match(match.skill); + + if (skillMatch) { + + var attrArray = skillMatch[1].split(',') + var attr_1 = getAttrByName(diceObj.vars.characterID, attrArray[0]); + var attr_2 = getAttrByName(diceObj.vars.characterID, attrArray[1]); + var cmdSkill = ['skill(' + attr_1 + '|' + attr_2 + ')']; //['skill(0|2)'] + + diceObj = eote.process.skill(cmdSkill, diceObj); + } + + return diceObj; + +} + +eote.process.destiny = function (cmd, diceObj) { + + var charObj_DicePool = findObjs({ _type: "character", name: "-DicePool" })[0]; + + var doRoll = false; + + if (!charObj_DicePool) { + sendChat("Dice System", "We can't find the DicePool player! SEND HELP!"); + return doRoll; + } + + //GM's Destiny Point Pool + var currentLightSidePoints = findObjs({ + _characterid: charObj_DicePool.get("_id"), + _type: "attribute", + _name: "lightSidePoints" + }); + var currentDarkSidePoints = findObjs({ + _characterid: charObj_DicePool.get("_id"), + _type: "attribute", + _name: "darkSidePoints" + }); + + if (!currentDarkSidePoints[0] || !currentLightSidePoints[0]) { + sendChat("Dice System", "No Destiny Points Defined. GM needs to add points then update players."); + return doRoll; + } + + var darkSide = parseInt(currentDarkSidePoints[0].get("current")); + var lightSide = parseInt(currentLightSidePoints[0].get("current")); + + switch (cmd[1]) { + case "useDark": + if (darkSide > 0) { + sendChat("The GM", "Uses a dark side point!"); + darkSide = darkSide - 1; + lightSide = lightSide + 1; + } + else { + sendChat("Dice System", "No dark side points to use!"); + return doRoll; + } + break; + case "useLight": + if (lightSide > 0) { + sendChat(diceObj.vars.characterName, "Uses a light side point!"); + lightSide = lightSide - 1; + darkSide = darkSide + 1; + } + else { + sendChat("Dice System", "No light side points to use!"); + return doRoll; + } + break; + case "doRoll": + sendChat(diceObj.vars.characterName, "Rolling Destiny Point"); + doRoll = true; + case "registerPlayer": + if (!doRoll) { + sendChat(diceObj.vars.characterName, "Regestering with Destiny Pool"); + } + darkSide = darkSide + diceObj.totals.dark; + lightSide = lightSide + diceObj.totals.light; + + //Register + if (eote.defaults.destinyListeners.indexOf(diceObj.vars.characterID) == -1) { + eote.defaults.destinyListeners.push(diceObj.vars.characterID); + } + + break; + case "sendUpdate": + sendChat("Dice System", "Updating Players Destiny Pools"); + break; + case "clearPool": + sendChat("Dice System", "Clearing The Destiny Pool"); + lightSide = 0; + darkSide = 0; + break; + } + + var newDestPool = [ + { + name: 'lightSidePoints', + current: lightSide, + max: '', + update: true + }, + { + name: 'darkSidePoints', + current: darkSide, + max: '', + update: true + } + ]; + + eote.updateListeners(newDestPool); + + return doRoll; +} + +eote.process.characterID = function (cmd, diceObj) { + + /* CharacterId + * default: null + * Description: looks up the characters name based on character ID + * Command: !eed characterID(##########) + * ---------------------------------------------------------------- */ + + eote.process.logger("eote.process.characterID", cmd); + + var characterID = cmd[1]; + + if (characterID) { + + diceObj.vars.characterName = getObj("character", characterID).get('name'); + diceObj.vars.characterID = characterID; + + } + + return diceObj; + +} + +eote.process.label = function (cmd, diceObj) { + + /* Label + * default: null + * Description: set the skill name of the roll + * Command: !eed label(Name of Skill) + * ---------------------------------------------------------------- */ + //log(cmd); + + var label = cmd[1]; + + if (label) { + + var labelStr = ''; + var labelArray = label.split('|'); + + _.each(labelArray, function (labelVal) { + var labelArray = labelVal.split(':'); + var label = labelArray[0]; + var message = labelArray[1]; + + labelStr = labelStr + '' + label + ': ' + message + '
'; + }); + + diceObj.vars.label = labelStr; + } + + return diceObj; + +} + +eote.process.resetdice = function (cmd, diceObj) { + + var characterObj = [{ name: diceObj.vars.characterName, id: diceObj.vars.characterID }]; + + eote.process.logger("eote.process.resetdice", cmd); + + if (cmd[1] == 'resetdice') { + var resetdice = [ + { + name: "b", + current: 0, + max: "", + update: true + }, + { + name: "g", + current: 0, + max: "", + update: true + }, + { + name: "y", + current: 0, + max: "", + update: true + }, + { + name: "blk", + current: 0, + max: "", + update: true + }, + { + name: "r", + current: 0, + max: "", + update: true + }, + { + name: "p", + current: 0, + max: "", + update: true + }, + { + name: "w", + current: 0, + max: "", + update: true + }, + { + name: "upgradeAbility", + current: 0, + max: "", + update: true + }, + { + name: "downgradeProficiency", + current: 0, + max: "", + update: true + }, + { + name: "upgradeDifficulty", + current: 0, + max: "", + update: true + }, + { + name: "downgradeChallenge", + current: 0, + max: "", + update: true + } + ] + } + + if (cmd[1] == 'resetgmdice') { + var resetdice = [ + { + name: "bgm", + current: 0, + max: "", + update: true + }, + { + name: "ggm", + current: 0, + max: "", + update: true + }, + { + name: "ygm", + current: 0, + max: "", + update: true + }, + { + name: "blkgm", + current: 0, + max: "", + update: true + }, + { + name: "rgm", + current: 0, + max: "", + update: true + }, + { + name: "pgm", + current: 0, + max: "", + update: true + }, + { + name: "wgm", + current: 0, + max: "", + update: true + }, + { + name: "upgradeAbilitygm", + current: 0, + max: "", + update: true + }, + { + name: "downgradeProficiencygm", + current: 0, + max: "", + update: true + }, + { + name: "upgradeDifficultygm", + current: 0, + max: "", + update: true + }, + { + name: "downgradeChallengegm", + current: 0, + max: "", + update: true + } + ] + } + + eote.updateAddAttribute(characterObj, resetdice); + +} + +eote.process.initiative = function (cmd, diceObj) { + + /* initiative + * default: false + * Description: Set NPC/PC initiative true + * Command: !eed npcinit or pcinit + * ---------------------------------------------------------------- */ + + var type = ''; + var NumSuccess = diceObj.totals.success; + var NumAdvantage = diceObj.totals.advantage; + var turnorder; + + eote.process.logger("eote.process.initiative.diceObj", diceObj); + eote.process.logger("eote.process.initiative.NumSuccess", NumSuccess); + eote.process.logger("eote.process.initiativeNumAdvantage", NumAdvantage); + + if (Campaign().get("turnorder") == "") turnorder = []; //NOTE: We check to make sure that the turnorder isn't just an empty string first. If it is treat it like an empty array. + else turnorder = JSON.parse(Campaign().get("turnorder")); + + if (cmd[0] == 'pcinit') { + type = 'PC'; + } + + if (cmd[0] == 'npcinit') { + type = 'NPC'; + } + + //Add a new custom entry to the end of the turn order. + turnorder.push({ + id: "-1", + pr: NumSuccess + ":" + NumAdvantage, + custom: type + }); + + turnorder.sort(function (x, y) { + var a = x.pr.split(":"); + var b = y.pr.split(":"); + + + if (b[0] - a[0] != 0) {//First rank on successes + return b[0] - a[0]; + } else if (b[1] - a[1] != 0) {//Then rank on Advantage + return b[1] - a[1]; + } else { //If they are still tied, PC goes first + + if (x.custom == y.custom) { + return 0; + } else if (x.custom == "NPC") { + return 1; + } else { + return -1; + } + } + }); + + Campaign().set("turnorder", JSON.stringify(turnorder)); + + //sendChat(diceObj.vars.characterName, 'Rolls initiative'); + +} + +eote.process.crit = function (cmd, diceObj) { + + /* Crit + * default: + * Description: Rolls critical injury table + * Command: !eed crit(roll) crit(roll|#) crit(heal|#) + * ---------------------------------------------------------------- */ + + eote.process.logger("eote.process.crit", ""); + + var characterObj = [{ name: diceObj.vars.characterName, id: diceObj.vars.characterID }]; + var critTable = [ + { + percent: '1 to 5', + severity: 1, + name: 'Minor Nick', + Result: 'Suffer 1 strain.', + effect: '', + }, + { + percent: '6 to 10', + severity: 1, + name: 'Slowed Down', + Result: 'May only act during last allied Initiative slot on next turn.', + effect: '', + }, + { + percent: '11 to 15', + severity: 1, + name: 'Sudden Jolt', + Result: 'May only act during last hero Initiative slot on next turn.', + effect: '', + }, + { + percent: '16 to 20', + severity: 1, + name: 'Distracted', + Result: 'Cannot perform free maneuver on next turn.', + effect: '', + }, + { + percent: '21 to 25', + severity: 1, + name: 'Off-Balance', + Result: 'Add 1 Setback die to next skill check.', + effect: '', + }, + { + percent: '26 to 30', + severity: 1, + name: 'Discouraging Wound', + Result: 'Flip one light destiny to dark.', + effect: '', + }, + { + percent: '31 to 35', + severity: 1, + name: 'Stunned', + Result: 'Staggered, cannot perform action on next turn.', + effect: '', + }, + { + percent: '36 to 40', + severity: 1, + name: 'Stinger', + Result: 'Increase difficulty of next check by 1 Difficulty die.', + effect: '', + }, + //----------------------------- Severity 2 + { + percent: '41 to 45', + severity: 2, + name: 'Bowled Over', + Result: 'Knocked prone and suffer 1 strain.', + effect: '', + }, + { + percent: '46 to 50', + severity: 2, + name: 'Head Ringer', + Result: 'Increase difficulty of all Intellect and Cunning checks by 1 Difficulty die until end of encounter.', + effect: '', + }, + { + percent: '51 to 55', + severity: 2, + name: 'Fearsome Wound', + Result: 'Increase difficulty of all Presence and Willpower checks by 1 Difficulty die until end of encounter.', + effect: '', + }, + { + percent: '56 to 60', + severity: 2, + name: 'Agonizing Wound', + Result: 'Increase difficulty of all Brawn and Agility checks by 1 Difficulty die until end of encounter.', + effect: '', + }, + { + percent: '61 to 65', + severity: 2, + name: 'Slightly Dazed', + Result: 'Add 1 Setback die to all skill checks until end of encounter.', + effect: '', + }, + { + percent: '66 to 70', + severity: 2, + name: 'Scattered Senses', + Result: 'Remove all Boost dice from all skill checks until end of encounter.', + effect: '', + }, + { + percent: '71 to 75', + severity: 2, + name: 'Hamstrung', + Result: 'Lose free maneuver until end of encounter.', + effect: '', + }, + { + percent: '76 to 80', + severity: 2, + name: 'Staggered', + Result: 'Attacker may immediately attempt another free attack against you using same dice pool as original attack.', + effect: '', + }, + { + percent: '81 to 85', + severity: 2, + name: 'Winded', + Result: 'Cannot voluntarily suffer strain to activate abilities or gain additional maneuvers until end of encounter.', + effect: '', + }, + { + percent: '86 to 90', + severity: 2, + name: 'Compromised', + Result: 'Increase difficulty of all skill checks by 1 Difficulty die until end of encounter.', + effect: '', + }, + //---------------------------------------- Severity 3 + { + percent: '91 to 95', + severity: 3, + name: 'At the Brink', + Result: 'Suffer 1 strain each time you perform an action.', + effect: '', + }, + { + percent: '96 to 100', + severity: 3, + name: 'Crippled', + Result: 'Limb crippled until healed or replaced. Increase difficulty of all checks that use that limb by 1 Difficulty die.', + effect: '', + }, + { + percent: '101 to 105', + severity: 3, + name: 'Maimed', + Result: 'Limb permanently lost. Unless you have a cybernetic replacement, cannot perform actions that use that limb. Add 1 Setback to all other actions.', + effect: '', + }, + { + percent: '106 to 110', + severity: 3, + name: 'Horrific Injury', + Result: 'Roll 1d10 to determine one wounded characteristic -- roll results(1-3 = Brawn, 4-6 = Agility, 7 = Intellect, 8 = Cunning, 9 = Presence, 10 = Willpower. Until Healed, treat characteristic as one point lower.', + effect: '', + }, + { + percent: '111 to 115', + severity: 3, + name: 'Temporarily Lame', + Result: 'Until healed, may not perform more than one maneuver each turn.', + effect: '', + }, + { + percent: '116 to 120', + severity: 3, + name: 'Blinded', + Result: 'Can no longer see. Upgrade the difficulty of Perception and Vigilance checks three times, and all other checks twice.', + effect: '', + }, + { + percent: '121 to 125', + severity: 3, + name: 'Knocked Senseless', + Result: 'You can no longer upgrade dice for checks.', + effect: '', + }, + //---------------------------------------- Severity 4 + { + percent: '126 to 130', + severity: 4, + name: 'Gruesome Injury', + Result: 'Roll 1d10 to determine one wounded characteristic -- roll results(1-3 = Brawn, 4-6 = Agility, 7 = Intellect, 8 = Cunning, 9 = Presence, 10 = Willpower. Characteristic is permanently one point lower.', + effect: '', + }, + { + percent: '131 to 140', + severity: 4, + name: 'Bleeding Out', + Result: 'Suffer 1 wound and 1 strain every round at the beginning of turn. For every 5 wounds suffered beyond wound threshold, suffer one additional Critical Injury (ignore the details for any result below this result).', + effect: '', + }, + { + percent: '141 to 150', + severity: 4, + name: 'The End is Nigh', + Result: 'Die after the last Initiative slot during the next round.', + effect: '', + }, + { + percent: '151', + severity: 4, + name: 'Dead', + Result: 'Complete, absolute death.', + effect: '', + } + ]; + + var critRoll = function (addCritNum) { + + var openSlot = false; + var diceRoll = ''; + var critMod = ''; + var rollTotal = ''; + var rollOffset = parseInt(getAttrByName(diceObj.vars.characterID, 'critAddOffset')); + rollOffset = rollOffset ? rollOffset : 0; + eote.process.logger("critRoll", "rollOffset: " + rollOffset) + var totalcrits = 0; + + //check open critical spot + for (i = 15; i >= 1; i--) { + + var slot = getAttrByName(diceObj.vars.characterID, 'critOn' + i); + + if (slot == '0' || slot == '') { + openSlot = i; + } else { + totalcrits = totalcrits + 1; + } + } + + if (!openSlot) { + sendChat("Alert", "Why are you not dead!"); + return false; + } + + //roll random + if (!addCritNum) { + diceRoll = randomInteger(100); + critMod = (totalcrits * 10); + rollTotal = diceRoll + critMod + rollOffset; + eote.process.logger("critRoll", "diceRoll: " + diceRoll); + eote.process.logger("critRoll", "critMod: " + critMod); + eote.process.logger("critRoll", "rollTotal " + rollTotal); + } else { + rollTotal = parseInt(addCritNum); + } + + //find crit in crital table + for (var key in critTable) { + + var percent = critTable[key].percent.split(' to '); + var low = parseInt(percent[0]); + var high = percent[1] ? parseInt(percent[1]) : 1000; + + if ((rollTotal >= low) && (rollTotal <= high)) { + + critAttrs = [ + { + name: 'critName' + openSlot, + current: critTable[key].name, + max: '', + update: true + }, + { + name: 'critSeverity' + openSlot, + current: critTable[key].severity, + max: '', + update: true + }, + { + name: 'critRange' + openSlot, + current: critTable[key].percent, + max: '', + update: true + }, + { + name: 'critSummary' + openSlot, + current: critTable[key].Result, + max: '', + update: true + }, + { + name: 'critOn' + openSlot, + current: openSlot, + max: '', + update: true + } + ]; + + eote.updateAddAttribute(characterObj, critAttrs); + + var chat = '/direct
Rolls Critical Injury
'; + chat = chat + '
' + chat = chat + 'Current Criticals: (' + totalcrits + ' x 10)
'; + if (rollOffset) { + chat = chat + 'Dice Roll Offset: ' + rollOffset + '
'; + } + chat = chat + 'Dice Roll: ' + diceRoll + '
'; + chat = chat + 'Total: ' + rollTotal + '
'; + chat = chat + '
'; + chat = chat + '' + critTable[key].name + '
'; + chat = chat + critTable[key].Result + '
'; + + sendChat(diceObj.vars.characterName, chat); + + } + } + } + + var critHeal = function (critID) { + + critAttrs = [ + { + name: 'critName' + critID, + current: '', + max: '', + update: true + }, + { + name: 'critSeverity' + critID, + current: '', + max: '', + update: true + }, + { + name: 'critRange' + critID, + current: '', + max: '', + update: true + }, + { + name: 'critSummary' + critID, + current: '', + max: '', + update: true + }, + { + name: 'critOn' + critID, + current: 0, + max: '', + update: true + } + ]; + + eote.updateAddAttribute(characterObj, critAttrs); + + } + + + var critArray = cmd[1].split('|'); + var prop1 = critArray[0]; + var prop2 = critArray[1] ? critArray[1] : null; + + if (prop1 == 'heal') { + critHeal(prop2); + } else if (prop1 == 'add') { + critRoll(prop2); + } else { // crit(roll) + critRoll(); + } + +} + +eote.process.critShip = function (cmd, diceObj) { + + /* CritShip + * default: + * Description: Rolls vehicle critical table, Both crit() and critShip() function the same + * Command: !eed critShip(roll) critShip(roll|#) critShip(heal|#) + * ---------------------------------------------------------------- */ + + var characterObj = [{ name: diceObj.vars.characterName, id: diceObj.vars.characterID }]; + + var critTable = [ + { + percent: '1 to 9', + severity: 1, + name: 'Mechanical Stress', + Result: 'Ship or vehicle suffers 1 system strain.', + effect: '', + }, + { + percent: '10 to 18', + severity: 1, + name: 'Jostled', + Result: 'All crew members suffer 1 strain.', + effect: '', + }, + { + percent: '19 to 27', + severity: 1, + name: 'Losing Power to Shields', + Result: 'Decrease defense in affected defense zone by 1 until repaired. If ship or vehicle has no defense, suffer 1 system strain.', + effect: '', + }, + { + percent: '28 to 36', + severity: 1, + name: 'Knocked Off Course', + Result: 'On next turn, pilot cannot execute any maneuvers. Instead, must make a Piloting check to regain bearings and resume course. Difficulty depends on current speed.', + effect: '', + }, + { + percent: '37 to 45', + severity: 1, + name: 'Tailspin', + Result: 'All firing from ship or vehicle suffers 2 setback dice until end of pilot\'s next turn.', + effect: '', + }, + { + percent: '46 to 54', + severity: 1, + name: 'Component Hit', + Result: 'One component of the attacker\'s choice is knocked offline, and is rendered inoperable until the end of the following round. See page 245 CRB for Small/Large Vehicle and Ship Component tables. ', + effect: '', + }, + // --------------- severity : 2 + { + percent: '55 to 63', + severity: 2, + name: 'Shields Failing', + Result: 'Decrease defense in all defense zones by 1 until repaired. If ship or vehicle has no defense, suffer 2 system strain.', + effect: '', + }, + { + percent: '64 to 72', + severity: 2, + name: 'Hyperdrive or Navicomputer Failure', + Result: 'Cannot make any jump to hyperspace until repaired. If ship or vehicle has no hyperdrive, navigation systems fail leaving it unable to tell where it is or is going.', + effect: '', + }, + { + percent: '73 to 81', + severity: 2, + name: 'Power Fluctuations', + Result: 'Pilot cannot voluntarily inflict system strain on the ship until repaired.', + effect: '', + }, + // --------------- severity : 3 + { + percent: '82 to 90', + severity: 3, + name: 'Shields Down', + Result: 'Decrease defense in affected defense zone to 0 and all other defense zones by 1 point until repaired. If ship or vehicle has no defense, suffer 4 system strain.', + effect: '', + }, + { + percent: '91 to 99', + severity: 3, + name: 'Engine Damaged', + Result: 'Ship or vehicle\'s maximum speed reduced by 1, to a minimum of 1, until repaired.', + effect: '', + }, + { + percent: '100 to 108', + severity: 3, + name: 'Shield Overload', + Result: 'Decrease defense in all defense zones to 0 until repaired. In addition, suffer 2 system strain. Cannot be repaired until end of encounter. If ship or vehicle has no defense, reduce armor by 1 until repaired.', + effect: '', + }, + { + percent: '109 to 117', + severity: 3, + name: 'Engines Down', + Result: 'Ship or vehicle\'s maximum speed reduced to 0. In addition, ship or vehicle cannot execute maneuvers until repaired. Ship continues on course at current speed and cannot be stopped or course changed until repaired.', + effect: '', + }, + { + percent: '118 to 126', + severity: 3, + name: 'Major System Failure', + Result: 'One component of the attacker\'s choice is heavily damages, and is inoperable until the critical hit is repaired. See page 245 CRB for Small/Large Vehicle and Ship Component tables. ', + effect: '', + }, + // --------------- severity : 4 + { + percent: '127 to 133', + severity: 4, + name: 'Major Hull Breach', + Result: 'Ships and vehicles of silhouette 4 and smaller depressurize in a number of rounds equal to silhouette. Ships of silhouette 5 and larger don\'t completely depressurize, but parts do (specifics at GM discretion). Ships and vehicles operating in atmosphere instead suffer a Destabilized Critical.', + effect: '', + }, + { + percent: '134 to 138', + severity: 4, + name: 'Destabilised', + Result: 'Reduce ship or vehicle\'s hull integrity threshold and system strain threshold to half original values until repaired.', + effect: '', + }, + { + percent: '139 to 144', + severity: 4, + name: 'Fire!', + Result: 'Fire rages through ship or vehicle and it immediately takes 2 system strain. Fire can be extinguished with appropriate skill, Vigilance or Cool checks at GM\'s discretion. Takes one round per two silhouette to put out.', + effect: '', + }, + { + percent: '145 to 153', + severity: 4, + name: 'Breaking Up', + Result: 'At the end of next round, ship is completely destroyed. Anyone aboard has one round to reach escape pod or bail out before they are lost.', + effect: '', + }, + { + percent: '154+', + severity: 4, + name: 'Vaporized', + Result: 'The ship or Vehicle is completely destroyed.', + effect: '', + } + ]; + + var critRoll = function (addCritNum) { + + var openSlot = false; + var diceRoll = ''; + var critMod = ''; + var rollTotal = ''; + var rollOffset = parseInt(getAttrByName(diceObj.vars.characterID, 'critShipAddOffset')); + rollOffset = rollOffset ? rollOffset : 0; + var totalcrits = 0; + + //check open critical spot + for (i = 15; i >= 1; i--) { + + var slot = getAttrByName(diceObj.vars.characterID, 'critShipOn' + i); + + if (slot == '0' || slot == '') { + openSlot = i; + } else { + totalcrits = totalcrits + 1; + } + } + + if (!openSlot) { + sendChat("Alert", "Why are you not dead!"); + return false; + } + + //roll random + if (!addCritNum) { + diceRoll = randomInteger(100); + critMod = (totalcrits * 10); + rollTotal = diceRoll + critMod + rollOffset; + } else { + rollTotal = parseInt(addCritNum); + } + + //find crit in crital table + for (var key in critTable) { + + var percent = critTable[key].percent.split(' to '); + var low = parseInt(percent[0]); + var high = percent[1] ? parseInt(percent[1]) : 1000; + + if ((rollTotal >= low) && (rollTotal <= high)) { + + critAttrs = [ + { + name: 'critShipName' + openSlot, + current: critTable[key].name, + max: '', + update: true + }, + { + name: 'critShipSeverity' + openSlot, + current: critTable[key].severity, + max: '', + update: true + }, + { + name: 'critShipRange' + openSlot, + current: critTable[key].percent, + max: '', + update: true + }, + { + name: 'critShipSummary' + openSlot, + current: critTable[key].Result, + max: '', + update: true + }, + { + name: 'critShipOn' + openSlot, + current: openSlot, + max: '', + update: true + } + ]; + + eote.updateAddAttribute(characterObj, critAttrs); + + var chat = '/direct
Rolls Vehicle Critical
'; + chat = chat + '
';//need new graphic + chat = chat + 'Current Criticals: (' + totalcrits + ' x 10)
'; + if (rollOffset) { + chat = chat + 'Dice Roll Offset: ' + rollOffset + '
'; + } + chat = chat + 'Dice Roll: ' + diceRoll + '
'; + chat = chat + 'Total: ' + rollTotal + '
'; + chat = chat + '
'; + chat = chat + '' + critTable[key].name + '
'; + chat = chat + critTable[key].Result + '
'; + + sendChat(diceObj.vars.characterName, chat); + + } + } + + } + + var critHeal = function (critID) { + + critAttrs = [ + { + name: 'critShipName' + critID, + current: '', + max: '', + update: true + }, + { + name: 'critShipSeverity' + critID, + current: '', + max: '', + update: true + }, + { + name: 'critShipRange' + critID, + current: '', + max: '', + update: true + }, + { + name: 'critShipSummary' + critID, + current: '', + max: '', + update: true + }, + { + name: 'critShipOn' + critID, + current: 0, + max: '', + update: true + } + ]; + + eote.updateAddAttribute(characterObj, critAttrs); + + } + + var critArray = cmd[1].split('|'); + var prop1 = critArray[0]; + var prop2 = critArray[1] ? critArray[1] : null; + + if (prop1 == 'heal') { + critHeal(prop2); + } else if (prop1 == 'add') { + critRoll(prop2); + } else { // crit(roll) + critRoll(); + } + +} + +eote.process.gmdice = function (cmd) { + + /* gmdice + * default: + * Description: Update CMD string to include -DicePool dice + * Command: (gmdice) + * ---------------------------------------------------------------- */ + + //var charObj = findObjs({ _type: "character", name: "-DicePool" }); + var charID = eote.defaults['-DicePoolID'];//charObj[0].id; + + var g = getAttrByName(charID, 'ggm'); + var y = getAttrByName(charID, 'ygm'); + var p = getAttrByName(charID, 'pgm'); + var r = getAttrByName(charID, 'rgm'); + var b = getAttrByName(charID, 'bgm'); + var blk = getAttrByName(charID, 'blkgm'); + var w = getAttrByName(charID, 'wgm'); + var upAbility = getAttrByName(charID, 'upgradeAbilitygm'); + var upDifficulty = getAttrByName(charID, 'upgradeDifficultygm'); + var downProficiency = getAttrByName(charID, 'downgradeProficiencygm'); + var downChallenge = getAttrByName(charID, 'downgradeChallengegm'); + + var gmdiceCMD = g + 'g ' + y + 'y ' + p + 'p ' + r + 'r ' + b + 'b ' + blk + 'blk ' + w + 'w upgrade(ability|' + upAbility + ') downgrade(proficiency|' + downProficiency + ') upgrade(difficulty|' + upDifficulty + ') downgrade(challenge|' + downChallenge + ')'; + + eote.process.logger("eote.process.gmDice.charID", charID); + + cmd = cmd.replace('(gmdice)', gmdiceCMD); + + //log(cmd); + + return cmd; +} + +eote.process.encum = function (cmd, diceObj) { + + /* Encumberment + * default: + * Description: If the current encum is great than threshold add 1 setback per unit over current encum + * Command: !eed encum(encum_current|encum_threshold) + * ---------------------------------------------------------------- */ + + eote.process.logger("eote.process.encum", cmd); + + _.each(cmd, function (encum) { + + var diceArray = encum.match(/\((.*?)\|(.*?)\)/); + + if (diceArray && diceArray[1] && diceArray[2]) { + + var num1 = eote.process.math(diceArray[1]); + var num2 = eote.process.math(diceArray[2]); + var setbackDice = diceObj.count.setback; + + if (num2 > num1) { + diceObj.count.setback = setbackDice + (num2 - num1); + eote.process.logger("eote.process.encum.NewSetbackTotal", diceObj.count.setback + "blk"); + } + else { + eote.process.logger("eote.process.encum", "No New Setback"); + } + } + }); + + + return diceObj; + +} + +eote.process.skill = function (cmd, diceObj) { + + /* Skill + * default: + * Description: create the ability and proficiency dice for a skill check + * Command: !eed skill(char_value|skill_value) + * ---------------------------------------------------------------- */ + + eote.process.logger("eote.process.skill", cmd); + + _.each(cmd, function (skill) { + + var diceArray = skill.match(/\((.*?)\|(.*?)\)/); + + if (diceArray && diceArray[1] && diceArray[2]) { + + var num1 = eote.process.math(diceArray[1]); + var num2 = eote.process.math(diceArray[2]); + var totalAbil = Math.abs(num1 - num2); + var totalProf = (num1 < num2 ? num1 : num2); + var abilityDice = diceObj.count.ability; + var proficiencyDice = diceObj.count.proficiency; + + diceObj.count.ability = abilityDice + totalAbil; + diceObj.count.proficiency = proficiencyDice + totalProf; + + eote.process.logger("eote.process.skill.abilityTotal", diceObj.count.ability + "g"); + eote.process.logger("eote.process.skill.proficiencyTotal", diceObj.count.proficiency + "y"); + } + }); + + return diceObj; + +} + +eote.process.opposed = function (cmd, diceObj) { + /*Opposed + * default: + * Description: create the difficulty and challenge dice for an opposed skill check + * Command: !eed opposed(char_value|skill_value) + * ---------------------------------------------------------------- */ + + eote.process.logger("eote.process.opposed", cmd); + + _.each(cmd, function (opposed) { + + var diceArray = opposed.match(/\((.*?)\|(.*?)\)/); + + if (diceArray && diceArray[1] && diceArray[2]) { + var num1 = eote.process.math(diceArray[1]); + var num2 = eote.process.math(diceArray[2]); + var totalOppDiff = Math.abs(num1 - num2); + var totalOppChal = (num1 < num2 ? num1 : num2); + var opposeddifficultyDice = diceObj.count.difficulty; + var opposedchallengeDice = diceObj.count.challenge; + diceObj.count.difficulty = opposeddifficultyDice + totalOppDiff; + diceObj.count.challenge = opposedchallengeDice + totalOppChal; + } + }); + + return diceObj; +} + +eote.process.setDice = function (cmd, diceObj) { + + /* setDice + * default: + * Description: Loop thru the dice and adds or subtracts them from the dice object + * Command: !eed g# y# b# blk# r# p# w# or g#+# or g#-# + * ---------------------------------------------------------------- */ + + eote.process.logger("eote.process.setDice", cmd); + + _.each(cmd, function (dice) { + + var diceArray = dice.match(/(-?\d{1,2})(\w{1,3})/); + + if (diceArray && diceArray[1] && diceArray[2]) { + + var diceQty = eote.process.math(diceArray[1]); + diceQty = (isNaN(diceQty) ? 0 : diceQty); + + var abilityDice = diceObj.count.ability; + var proficiencyDice = diceObj.count.proficiency; + var difficultyDice = diceObj.count.difficulty; + var challengeDice = diceObj.count.challenge; + var boostDice = diceObj.count.boost; + var setbackDice = diceObj.count.setback; + var forceDice = diceObj.count.force; + var success = diceObj.count.success; + var advantage = diceObj.count.advantage; + var threat = diceObj.count.threat; + var failure = diceObj.count.failure; + + switch (diceArray[2]) { + case 'b': + diceObj.count.boost = boostDice + diceQty; + break; + case 'g': + diceObj.count.ability = abilityDice + diceQty; + break; + case 'y': + diceObj.count.proficiency = proficiencyDice + diceQty; + break; + case 'blk': + diceObj.count.setback = setbackDice + diceQty; + break; + case 'p': + diceObj.count.difficulty = difficultyDice + diceQty; + break; + case 'r': + diceObj.count.challenge = challengeDice + diceQty; + break; + case 'w': + diceObj.count.force = forceDice + diceQty; + break; + case 's': + diceObj.count.success = success + diceQty; + break; + case 'a': + diceObj.count.advantage = advantage + diceQty; + break; + case 't': + diceObj.count.threat = threat + diceQty; + break; + case 'f': + diceObj.count.failure = failure + diceQty; + break; + } + } + }); + + diceObj = eote.process.checkNegative(diceObj); + + eote.process.logger("eote.process.setDice.DiceToRoll", diceObj.count.boost + "b," + diceObj.count.ability + "g," + diceObj.count.proficiency + "y," + diceObj.count.setback + "blk," + diceObj.count.difficulty + "p," + diceObj.count.challenge + "r," + diceObj.count.force + "w," + diceObj.count.advantage + "a," + diceObj.count.threat + "t," + diceObj.count.failure + "f"); + + return diceObj; +} + +eote.process.checkNegative = function (diceObj) { + if (diceObj.count.boost < 0) { + eote.process.logger("eote.process.checkNegative.boost", "Setting count to 0 for being negative.") + diceObj.count.boost = 0; + } + + if (diceObj.count.ability < 0) { + eote.process.logger("eote.process.checkNegative.ability", "Setting count to 0 for being negative.") + diceObj.count.ability = 0; + } + + if (diceObj.count.proficiency < 0) { + eote.process.logger("eote.process.checkNegative.proficiency", "Setting count to 0 for being negative.") + diceObj.count.proficiency = 0; + } + + if (diceObj.count.setback < 0) { + eote.process.logger("eote.process.checkNegative.setback", "Setting count to 0 for being negative.") + diceObj.count.setback = 0; + } + + if (diceObj.count.difficulty < 0) { + eote.process.logger("eote.process.checkNegative.difficulty", "Setting count to 0 for being negative.") + diceObj.count.difficulty = 0; + } + + if (diceObj.count.challenge < 0) { + eote.process.logger("eote.process.checkNegative.challenge", "Setting count to 0 for being negative.") + diceObj.count.challenge = 0; + } + + if (diceObj.count.force < 0) { + eote.process.logger("eote.process.checkNegative.force", "Setting count to 0 for being negative.") + diceObj.count.force = 0; + } + + if (diceObj.count.success < 0) { + eote.process.logger("eote.process.checkNegative.success", "Setting count to 0 for being negative.") + diceObj.count.success = 0; + } + + if (diceObj.count.advantage < 0) { + eote.process.logger("eote.process.checkNegative.advantage", "Setting count to 0 for being negative.") + diceObj.count.advantage = 0; + } + + if (diceObj.count.threat < 0) { + eote.process.logger("eote.process.checkNegative.threat", "Setting count to 0 for being negative.") + diceObj.count.threat = 0; + } + + if (diceObj.count.failure < 0) { + eote.process.logger("eote.process.checkNegative.failure", "Setting count to 0 for being negative.") + diceObj.count.failure = 0; + } + + return diceObj; +} + +eote.process.upgrade = function (cmd, diceObj) { + + /* Upgrade + * default: + * Description: upgrades ability and difficulty dice + * Command: !eed upgrade(ability|#) or upgrade(difficulty|#) + * ---------------------------------------------------------------- */ + + eote.process.logger("eote.process.upgrade", cmd); + + _.each(cmd, function (dice) { + + var diceArray = dice.match(/\((.*?)\|(.*?)\)/); + + if (diceArray && diceArray[1] && diceArray[2]) { + + var type = diceArray[1]; + var upgradeVal = eote.process.math(diceArray[2]); + var abilityDice = diceObj.count.ability; + var proficiencyDice = diceObj.count.proficiency; + var difficultyDice = diceObj.count.difficulty; + var challengeDice = diceObj.count.challenge; + + switch (type) { + case 'ability': + + var totalProf = (upgradeVal < abilityDice ? upgradeVal : abilityDice); + var totalAbil = Math.abs(upgradeVal - abilityDice); + + if (upgradeVal > abilityDice) { + totalProf = totalProf + Math.floor(totalAbil / 2); + totalAbil = totalAbil % 2; + } + + diceObj.count.ability = totalAbil; + diceObj.count.proficiency = proficiencyDice + totalProf; + + eote.process.logger("eote.process.upgrade.abilityTotal", diceObj.count.ability + "g"); + eote.process.logger("eote.process.upgrade.proficiencyTotal", diceObj.count.proficiency + "y"); + + break; + case 'difficulty': + + var totalChall = (upgradeVal < difficultyDice ? upgradeVal : difficultyDice); + var totalDiff = Math.abs(upgradeVal - difficultyDice); + + if (upgradeVal > difficultyDice) { + totalChall = totalChall + Math.floor(totalDiff / 2); + totalDiff = totalDiff % 2; + } + + diceObj.count.difficulty = totalDiff; + diceObj.count.challenge = challengeDice + totalChall; + + eote.process.logger("eote.process.upgrade.difficultyTotal", diceObj.count.difficulty + "p"); + eote.process.logger("eote.process.upgrade.challengeTotal", diceObj.count.challenge + "r"); + + break; + } + } + + + }); + + return diceObj; +} + +eote.process.downgrade = function (cmd, diceObj) { + + /* Downgrade + * default: + * Description: downgrades proficiency and challenge dice + * Command: !eed downgrade(proficiency|#) or downgrade(challenge|#) + * ---------------------------------------------------------------- */ + + eote.process.logger("eote.process.downgrade", cmd); + + _.each(cmd, function (dice) { + + var diceArray = dice.match(/\((.*?)\|(.*?)\)/); + + if (diceArray && diceArray[1] && diceArray[2]) { + + var type = diceArray[1]; + var downgradeVal = eote.process.math(diceArray[2]); + var abilityDice = diceObj.count.ability; + var proficiencyDice = diceObj.count.proficiency; + var difficultyDice = diceObj.count.difficulty; + var challengeDice = diceObj.count.challenge; + + switch (type) { + case 'proficiency': + + var profConvertedToAbil = proficiencyDice * 2; + + if (downgradeVal > (abilityDice + profConvertedToAbil)) { + diceObj.count.ability = 0; + diceObj.count.proficiency = 0; + } else if (downgradeVal > profConvertedToAbil) { + downgradeVal = Math.abs(downgradeVal - profConvertedToAbil); + diceObj.count.ability = Math.abs(downgradeVal - abilityDice); + diceObj.count.proficiency = 0; + } else { + diceObj.count.ability = abilityDice + (profConvertedToAbil - downgradeVal) % 2; + diceObj.count.proficiency = Math.floor((profConvertedToAbil - downgradeVal) / 2); + } + + break; + case 'challenge': + + var challConvertedToDiff = challengeDice * 2; + + if (downgradeVal > (difficultyDice + challConvertedToDiff)) { + diceObj.count.difficulty = 0; + diceObj.count.challenge = 0; + } else if (downgradeVal > challConvertedToDiff) { + downgradeVal = Math.abs(downgradeVal - challConvertedToDiff); + diceObj.count.difficulty = Math.abs(downgradeVal - difficultyDice); + diceObj.count.challenge = 0; + } else { + diceObj.count.difficulty = difficultyDice + (challConvertedToDiff - downgradeVal) % 2; + diceObj.count.challenge = Math.floor((challConvertedToDiff - downgradeVal) / 2); + } + + break; + } + } + }); + + return diceObj; +} + +eote.process.math = function (expr) { + + /* Math + * Returns: Number + * Description: Evaluates a mathematical expression (as a string) and return the result + * ---------------------------------------------------------------- */ + + var chars = expr.split(""); + var n = [], op = [], index = 0, oplast = true; + + n[index] = ""; + + // Parse the expression + for (var c = 0; c < chars.length; c++) { + + if (isNaN(parseInt(chars[c])) && chars[c] !== "." && !oplast) { + op[index] = chars[c]; + index++; + n[index] = ""; + oplast = true; + } else { + n[index] += chars[c]; + oplast = false; + } + } + + // Calculate the expression + expr = parseFloat(n[0]); + for (var o = 0; o < op.length; o++) { + var num = parseFloat(n[o + 1]); + switch (op[o]) { + case "+": + expr = expr + num; + break; + case "-": + expr = expr - num; + break; + case "*": + expr = expr * num; + break; + case "/": + expr = expr / num; + break; + } + } + + return expr; +} + +eote.process.addDiceValues = function (diceTotalObj, diceResult) { + + diceTotalObj.success = diceTotalObj.success + diceResult.success; + diceTotalObj.failure = diceTotalObj.failure + diceResult.failure; + diceTotalObj.advantage = diceTotalObj.advantage + diceResult.advantage; + diceTotalObj.threat = diceTotalObj.threat + diceResult.threat; + diceTotalObj.triumph = diceTotalObj.triumph + diceResult.triumph; + diceTotalObj.despair = diceTotalObj.despair + diceResult.despair; + diceTotalObj.light = diceTotalObj.light + diceResult.light; + diceTotalObj.dark = diceTotalObj.dark + diceResult.dark; + + return diceTotalObj; +} + +eote.process.totalDiceValues = function (diceTotalObj) { + + var diceTS = { + success: 0, + failure: 0, + advantage: 0, + threat: 0, + triumph: 0, + despair: 0, + light: 0, + dark: 0, + diceGraphicsLog: "", + diceTextLog: "" + }; + + var i = 0; + + i = diceTotalObj.success - diceTotalObj.failure; + + if (i >= 0) { + diceTS.success = i; + } else { + diceTS.failure = Math.abs(i); + } + + i = diceTotalObj.advantage - diceTotalObj.threat; + + if (i >= 0) { + diceTS.advantage = i; + } else { + diceTS.threat = Math.abs(i); + } + + diceTS.triumph = diceTotalObj.triumph; + diceTS.despair = diceTotalObj.despair; + diceTS.light = diceTotalObj.light; + diceTS.dark = diceTotalObj.dark; + + return diceTS; +} + +eote.process.rollDice = function (diceObj) { + + results = { + success: 0, + failure: 0, + advantage: 0, + threat: 0, + triumph: 0, + despair: 0, + light: 0, + dark: 0, + diceGraphicsLog: '', + diceTextLog: '' + } + + eote.process.logger("eote.process.rollDice.FinalDiceToRoll", diceObj.count.boost + "b," + diceObj.count.ability + "g," + diceObj.count.proficiency + "y," + diceObj.count.setback + "blk," + diceObj.count.difficulty + "p," + diceObj.count.challenge + "r," + diceObj.count.force + "w," + diceObj.count.advantage + "a," + diceObj.count.threat + "t," + diceObj.count.failure + "f"); + + //Blue "Boost" die (d6) + if (diceObj.count.boost > 0) { + results = eote.roll.boost(diceObj.count.boost); + diceObj.graphicsLog.Boost = results.diceGraphicsLog; + diceObj.textLog.Boost = results.diceTextLog; + diceObj.totals = eote.process.addDiceValues(diceObj.totals, results); + } + + //Green "Ability" die (d8) + if (diceObj.count.ability > 0) { + results = eote.roll.ability(diceObj.count.ability); + diceObj.graphicsLog.Ability = results.diceGraphicsLog; + diceObj.textLog.Ability = results.diceTextLog; + diceObj.totals = eote.process.addDiceValues(diceObj.totals, results); + } + + //Yellow "Proficiency" die (d12) + if (diceObj.count.proficiency > 0) { + results = eote.roll.proficiency(diceObj.count.proficiency); + diceObj.graphicsLog.Proficiency = results.diceGraphicsLog; + diceObj.textLog.Proficiency = results.diceTextLog; + diceObj.totals = eote.process.addDiceValues(diceObj.totals, results); + } + + //Black "SetBack" die (d6) + if (diceObj.count.setback > 0) { + results = eote.roll.setback(diceObj.count.setback); + diceObj.graphicsLog.SetBack = results.diceGraphicsLog; + diceObj.textLog.SetBack = results.diceTextLog; + diceObj.totals = eote.process.addDiceValues(diceObj.totals, results); + } + + //Purple "Difficulty" die (d8) + if (diceObj.count.difficulty > 0) { + results = eote.roll.difficulty(diceObj.count.difficulty); + diceObj.graphicsLog.Difficulty = results.diceGraphicsLog; + diceObj.textLog.Difficulty = results.diceTextLog; + diceObj.totals = eote.process.addDiceValues(diceObj.totals, results); + } + + //Red "Challenge" die (d12) + if (diceObj.count.challenge > 0) { + results = eote.roll.challenge(diceObj.count.challenge); + diceObj.graphicsLog.Challenge = results.diceGraphicsLog; + diceObj.textLog.Challenge = results.diceTextLog; + diceObj.totals = eote.process.addDiceValues(diceObj.totals, results); + } + + //White "Force" die (d12) + if (diceObj.count.force > 0) { + results = eote.roll.force(diceObj.count.force); + diceObj.graphicsLog.Force = results.diceGraphicsLog; + diceObj.textLog.Force = results.diceTextLog; + diceObj.totals = eote.process.addDiceValues(diceObj.totals, results); + } + + // Free Successes (from skills) + if (diceObj.count.success > 0) { + results = eote.roll.success(diceObj.count.success); + diceObj.graphicsLog.Success = results.diceGraphicsLog; + diceObj.textLog.Success = results.diceTextLog; + diceObj.totals = eote.process.addDiceValues(diceObj.totals, results); + } + // Free Advantage (from skills) + if (diceObj.count.advantage > 0) { + results = eote.roll.advantage(diceObj.count.advantage); + diceObj.graphicsLog.Advantage = results.diceGraphicsLog; + diceObj.textLog.Advantage = results.diceTextLog; + diceObj.totals = eote.process.addDiceValues(diceObj.totals, results); + } + //Free Threat (from skills) + if (diceObj.count.threat > 0) { + results = eote.roll.threat(diceObj.count.threat); + diceObj.graphicsLog.Threat = results.diceGraphicsLog; + diceObj.textLog.Threat = results.diceTextLog; + diceObj.totals = eote.process.addDiceValues(diceObj.totals, results); + } + // Free Failure (from skills) + if (diceObj.count.failure > 0) { + results = eote.roll.failure(diceObj.count.failure); + diceObj.graphicsLog.Failure = results.diceGraphicsLog; + diceObj.textLog.Failure = results.diceTextLog; + diceObj.totals = eote.process.addDiceValues(diceObj.totals, results); + } + + //finds the sum of each dice attribute + diceObj.totals = eote.process.totalDiceValues(diceObj.totals); + + + return diceObj; +} + +eote.process.diceOutput = function (diceObj, playerName, playerID) { + + //log(diceObj); + var s1 = ''; + var chatGlobal = ''; + var diceGraphicsResults = ""; + var diceGraphicsRolled = ""; + var diceTextRolled = ""; + var diceTextResults = ""; + + diceTextResults = "[" + + if (diceObj.totals.success > 0) { + diceTextResults = diceTextResults + " Success:" + diceObj.totals.success; + for (i = 1; i <= diceObj.totals.success; i++) { + diceGraphicsResults = diceGraphicsResults + s1 + eote.defaults.graphics.SYMBOLS.S + s2 + "Success" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + } + } + if (diceObj.totals.failure > 0) { + diceTextResults = diceTextResults + " Fail:" + diceObj.totals.failure; + for (i = 1; i <= diceObj.totals.failure; i++) { + diceGraphicsResults = diceGraphicsResults + s1 + eote.defaults.graphics.SYMBOLS.F + s2 + "Failure" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + } + } + if (diceObj.totals.advantage > 0) { + diceTextResults = diceTextResults + " Advant:" + diceObj.totals.advantage; + for (i = 1; i <= diceObj.totals.advantage; i++) { + diceGraphicsResults = diceGraphicsResults + s1 + eote.defaults.graphics.SYMBOLS.A + s2 + "Advantage" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + } + } + if (diceObj.totals.threat > 0) { + diceTextResults = diceTextResults + " Threat:" + diceObj.totals.threat; + for (i = 1; i <= diceObj.totals.threat; i++) { + diceGraphicsResults = diceGraphicsResults + s1 + eote.defaults.graphics.SYMBOLS.T + s2 + "Threat" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + } + } + if (diceObj.totals.triumph > 0) { + diceTextResults = diceTextResults + " Triumph:" + diceObj.totals.triumph; + for (i = 1; i <= diceObj.totals.triumph; i++) { + diceGraphicsResults = diceGraphicsResults + s1 + eote.defaults.graphics.SYMBOLS.TRIUMPH + s2 + "Triumph" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + } + } + if (diceObj.totals.despair > 0) { + diceTextResults = diceTextResults + " Despair:" + diceObj.totals.despair; + for (i = 1; i <= diceObj.totals.despair; i++) { + diceGraphicsResults = diceGraphicsResults + s1 + eote.defaults.graphics.SYMBOLS.DESPAIR + s2 + "Despair" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + } + } + if (diceObj.totals.light > 0) { + diceTextResults = diceTextResults + " Light:" + diceObj.totals.light; + + for (i = 1; i <= diceObj.totals.light; i++) { + diceGraphicsResults = diceGraphicsResults + s1 + eote.defaults.graphics.SYMBOLS.L + s2 + "Light" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + } + } + if (diceObj.totals.dark > 0) { + diceTextResults = diceTextResults + " Dark:" + diceObj.totals.dark; + for (i = 1; i <= diceObj.totals.dark; i++) { + diceGraphicsResults = diceGraphicsResults + s1 + eote.defaults.graphics.SYMBOLS.D + s2 + "Dark" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + } + } + + diceTextResults = diceTextResults + "]"; + + //------------------------------------> + + if (eote.defaults.globalVars.diceTestEnabled === true) { + chatGlobal = "/direct
6b 8g 12y 6blk 8p 12r 12w
"; + } else if (diceObj.vars.label) { + chatGlobal = "/direct
" + diceObj.vars.label + '
'; + } else { + chatGlobal = "/direct
"; + } + + if (eote.defaults.globalVars.diceTestEnabled === true) { + characterPlayer = 'TEST'; + } else if (diceObj.vars.characterName) { + characterPlayer = diceObj.vars.characterName; + } else { + characterPlayer = playerName; + } + + //------------------------------------> + + if (eote.defaults.globalVars.diceLogChat === true) { + if (eote.defaults.globalVars.diceLogRolledOnOneLine === true) { + + diceGraphicsRolled = diceObj.graphicsLog.Boost + diceObj.graphicsLog.Ability + diceObj.graphicsLog.Proficiency + diceObj.graphicsLog.SetBack + diceObj.graphicsLog.Difficulty + diceObj.graphicsLog.Challenge + diceObj.graphicsLog.Force + diceObj.graphicsLog.Success + diceObj.graphicsLog.Advantage + diceObj.graphicsLog.Failure + diceObj.graphicsLog.Threat; + + if (diceObj.textLog.Boost != "") diceTextRolled = diceTextRolled + "Boost:" + diceObj.textLog.Boost; + if (diceObj.textLog.Ability != "") diceTextRolled = diceTextRolled + "Ability:" + diceObj.textLog.Ability; + if (diceObj.textLog.Proficiency != "") diceTextRolled = diceTextRolled + "Proficiency:" + diceObj.textLog.Proficiency; + if (diceObj.textLog.SetBack != "") diceTextRolled = diceTextRolled + "SetBack:" + diceObj.textLog.SetBack; + if (diceObj.textLog.Difficulty != "") diceTextRolled = diceTextRolled + "Difficulty:" + diceObj.textLog.Difficulty; + if (diceObj.textLog.Challenge != "") diceTextRolled = diceTextRolled + "Challenge:" + diceObj.textLog.Challenge; + if (diceObj.textLog.Force != "") diceTextRolled = diceTextRolled + "Force:" + diceObj.textLog.Force; + if (diceObj.textLog.Success != "") diceTextRolled = diceTextRolled + "Success:" + diceObj.textLog.Success; + if (diceObj.textLog.Advantage != "") diceTextRolled = diceTextRolled + "Advantage:" + diceObj.textLog.Advantage; + if (diceObj.textLog.Failure != "") diceTextRolled = diceGraphicsRolled + "Failure:" + diceObj.textLog.Failure; + if (diceObj.textLog.Threat != "") diceTextRolled = diceGraphicsRolled + "Threat:" + diceObj.textLog.Threat; + + if (eote.defaults.globalVars.diceGraphicsChat === true) { + chatGlobal = chatGlobal + '
' + diceGraphicsRolled; + } else { + sendChat("", diceTextRolled); + } + + } else { + + if (eote.defaults.globalVars.diceGraphicsChat === true) { + + if (diceObj.vars.label) { + sendChat(characterPlayer, "/direct
Skill: " + diceObj.vars.label + '
'); + } + + if (diceObj.graphicsLog.Boost != "") sendChat("", "/direct " + diceObj.graphicsLog.Boost); + if (diceObj.graphicsLog.Ability != "") sendChat("", "/direct " + diceObj.graphicsLog.Ability); + if (diceObj.graphicsLog.Proficiency != "") sendChat("", "/direct " + diceObj.graphicsLog.Proficiency); + if (diceObj.graphicsLog.SetBack != "") sendChat("", "/direct " + diceObj.graphicsLog.SetBack); + if (diceObj.graphicsLog.Difficulty != "") sendChat("", "/direct " + diceObj.graphicsLog.Difficulty); + if (diceObj.graphicsLog.Challenge != "") sendChat("", "/direct " + diceObj.graphicsLog.Challenge); + if (diceObj.graphicsLog.Force != "") sendChat("", "/direct " + diceObj.graphicsLog.Force); + if (diceObj.graphicsLog.Success != "") sendChat("", "/direct " + diceObj.graphicsLog.Success); + if (diceObj.graphicsLog.Advantage != "") sendChat("", "/direct " + diceObj.graphicsLog.Advantage); + if (diceObj.graphicsLog.Failure != "") sendChat("", "/direct " + diceObj.graphicsLog.Failure); + if (diceObj.graphicsLog.Threat != "") sendChat("", "/direct " + diceObj.graphicsLog.Threat); + } else { + + if (diceObj.vars.label) { + sendChat(characterPlayer, "/direct
Skill: " + diceObj.vars.label + '
'); + } + + if (diceObj.textLog.Boost != "") sendChat("", "Boost:" + diceObj.textLog.Boost); + if (diceObj.textLog.Ability != "") sendChat("", "Ability:" + diceObj.textLog.Ability); + if (diceObj.textLog.Proficiency != "") sendChat("", "Proficiency:" + diceObj.textLog.Proficiency); + if (diceObj.textLog.SetBack != "") sendChat("", "SetBack:" + diceObj.textLog.SetBack); + if (diceObj.textLog.Difficulty != "") sendChat("", "Difficulty:" + diceObj.textLog.Difficulty); + if (diceObj.textLog.Challenge != "") sendChat("", "Challenge:" + diceObj.textLog.Challenge); + if (diceObj.textLog.Force != "") sendChat("", "Force:" + diceObj.textLog.Force); + if (diceObj.textLog.Success != "") sendChat("", "Success:" + diceObj.textLog.Success); + if (diceObj.textLog.Advantage != "") sendChat("", "Advantage:" + diceObj.textLog.Advantage); + if (diceObj.textLog.Failure != "") sendChat("", "Failure:" + diceObj.textLog.Failure); + if (diceObj.textLog.Threat != "") sendChat("", "Threat:" + diceObj.textLog.Threat); + + } + } + } + + if (eote.defaults.globalVars.diceGraphicsChat === true) { + + chatGlobal = chatGlobal + '
Roll:' + diceGraphicsResults; + + sendChat(characterPlayer, chatGlobal); + + } else { + sendChat("Roll", diceTextResults); + } + + eote.process.logger("eote.process.rollResult", diceTextResults); + //All DONE!!! +} + +//----------------------> + +eote.roll = { + + boost: function (diceQty) { + //Blue "Boost" die (d6) + //1 Blank + //2 Blank + //3 Success + //4 Advantage + //5 Advantage + Advantage + //6 Success + Advantage + var roll = 0; + var diceResult = { + success: 0, + failure: 0, + advantage: 0, + threat: 0, + triumph: 0, + despair: 0, + light: 0, + dark: 0, + diceGraphicsLog: "", + diceTextLog: "" + }; + var i = 0; + var s1 = ''; + + if (eote.defaults.globalVars.diceTestEnabled === true) { + diceQty = 6; + } + + for (i = 1; i <= diceQty; i++) { + if (eote.defaults.globalVars.diceTestEnabled === true) { + roll = roll + 1; + } else { + roll = randomInteger(6); + } + + switch (roll) { + case 1: + diceResult.diceTextLog = diceResult.diceTextLog + "(Blank)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.BOOST.BLANK + s2 + "Boost Blank" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + break; + case 2: + diceResult.diceTextLog = diceResult.diceTextLog + "(Blank)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.BOOST.BLANK + s2 + "Boost Blank" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + break; + case 3: + diceResult.diceTextLog = diceResult.diceTextLog + "(Success)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.BOOST.S + s2 + "Boost Success" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.success = diceResult.success + 1; + break; + case 4: + diceResult.diceTextLog = diceResult.diceTextLog + "(Advantage)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.BOOST.A + s2 + "Boost Advantage" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.advantage = diceResult.advantage + 1; + break; + case 5: + diceResult.diceTextLog = diceResult.diceTextLog + "(Advantage x2)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.BOOST.AA + s2 + "Boost Advantage x2" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.advantage = diceResult.advantage + 2; + break; + case 6: + diceResult.diceTextLog = diceResult.diceTextLog + "(Success + Advantage)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.BOOST.SA + s2 + "Boost Success + Advantage" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.success = diceResult.success + 1; + diceResult.advantage = diceResult.advantage + 1; + break; + } + } + + return diceResult; + }, + + ability: function (diceQty) { + //Green "Ability" die (d8) + //1 Blank + //2 Success + //3 Success + //4 Advantage + //5 Advantage + //6 Success + Advantage + //7 Advantage + Advantage + //8 Success + Success + var roll = 0; + var diceTextLog = ""; + var diceGraphicsLog = ""; + var diceResult = { + success: 0, + failure: 0, + advantage: 0, + threat: 0, + triumph: 0, + despair: 0, + light: 0, + dark: 0, + diceGraphicsLog: "", + diceTextLog: "" + }; + var i = 0; + var s1 = ''; + + if (eote.defaults.globalVars.diceTestEnabled === true) { + diceQty = 8; + } + + for (i = 1; i <= diceQty; i++) { + if (eote.defaults.globalVars.diceTestEnabled === true) { + roll = roll + 1; + } + else { + roll = randomInteger(8); + } + + switch (roll) { + case 1: + diceResult.diceTextLog = diceResult.diceTextLog + "(Blank)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.ABILITY.BLANK + s2 + "Ability Blank" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + break; + case 2: + diceResult.diceTextLog = diceResult.diceTextLog + "(Success)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.ABILITY.S + s2 + "Ability Success" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.success = diceResult.success + 1; + break; + case 3: + diceResult.diceTextLog = diceResult.diceTextLog + "(Success)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.ABILITY.S + s2 + "Ability Success" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.success = diceResult.success + 1; + break; + case 4: + diceResult.diceTextLog = diceResult.diceTextLog + "(Advantage)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.ABILITY.A + s2 + "Ability Advantage" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.advantage = diceResult.advantage + 1; + break; + case 5: + diceResult.diceTextLog = diceResult.diceTextLog + "(Advantage)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.ABILITY.A + s2 + "Ability Advantage" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.advantage = diceResult.advantage + 1; + break; + case 6: + diceResult.diceTextLog = diceResult.diceTextLog + "(Success + Advantage)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.ABILITY.SA + s2 + "Ability Success + Advantage" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.success = diceResult.success + 1; + diceResult.advantage = diceResult.advantage + 1; + break; + case 7: + diceResult.diceTextLog = diceResult.diceTextLog + "(Advantage x2)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.ABILITY.AA + s2 + "Ability Advantage x2" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.advantage = diceResult.advantage + 2; + break; + case 8: + diceResult.diceTextLog = diceResult.diceTextLog + "(Success x2)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.ABILITY.SS + s2 + "Ability Success x2" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.success = diceResult.success + 2; + break; + } + } + return diceResult; + }, + + proficiency: function (diceQty) { + //Yellow "Proficiency" die (d12) + //1 Blank + //2 Triumph + //3 Success + //4 Success + //5 Advantage + //6 Success + Advantage + //7 Success + Advantage + //8 Success + Advantage + //9 Success + Success + //10 Success + Success + //11 Advantage + Advantage + //12 Advantage + Advantage + var roll = 0; + var diceTextLog = ""; + var diceGraphicsLog = ""; + var diceResult = { + success: 0, + failure: 0, + advantage: 0, + threat: 0, + triumph: 0, + despair: 0, + light: 0, + dark: 0, + diceGraphicsLog: "", + diceTextLog: "" + }; + var i = 0; + var s1 = ''; + + if (eote.defaults.globalVars.diceTestEnabled === true) { + diceQty = 12; + } + + for (i = 1; i <= diceQty; i++) { + if (eote.defaults.globalVars.diceTestEnabled === true) { + roll = roll + 1; + } + else { + roll = randomInteger(12); + } + + switch (roll) { + case 1: + diceResult.diceTextLog = diceResult.diceTextLog + "(Blank)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.PROFICIENCY.BLANK + s2 + "Proficiency Blank" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + break; + case 2: + diceResult.diceTextLog = diceResult.diceTextLog + "(Triumph(+Success))"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.PROFICIENCY.TRIUMPH + s2 + "Proficiency Triumph(+Success)" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.triumph = diceResult.triumph + 1; + diceResult.success = diceResult.success + 1; + break; + case 3: + diceResult.diceTextLog = diceResult.diceTextLog + "(Success)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.PROFICIENCY.S + s2 + "Proficiency Success" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.success = diceResult.success + 1; + break; + case 4: + diceResult.diceTextLog = diceResult.diceTextLog + "(Success)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.PROFICIENCY.S + s2 + "Proficiency Success" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.success = diceResult.success + 1; + break; + case 5: + diceResult.diceTextLog = diceResult.diceTextLog + "(Advantage)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.PROFICIENCY.A + s2 + "Proficiency Advantage" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.advantage = diceResult.advantage + 1; + break; + case 6: + diceResult.diceTextLog = diceResult.diceTextLog + "(Success + Advantage)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.PROFICIENCY.SA + s2 + "Proficiency Success + Advantage" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.success = diceResult.success + 1; + diceResult.advantage = diceResult.advantage + 1; + break; + case 7: + diceResult.diceTextLog = diceResult.diceTextLog + "(Success + Advantage)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.PROFICIENCY.SA + s2 + "Proficiency Success + Advantage" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.success = diceResult.success + 1; + diceResult.advantage = diceResult.advantage + 1; + break; + case 8: + diceResult.diceTextLog = diceResult.diceTextLog + "(Success + Advantage)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.PROFICIENCY.SA + s2 + "Proficiency Success + Advantage" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.success = diceResult.success + 1; + diceResult.advantage = diceResult.advantage + 1; + break; + case 9: + diceResult.diceTextLog = diceResult.diceTextLog + "(Success x2)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.PROFICIENCY.SS + s2 + "Proficiency Success x2" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.success = diceResult.success + 2; + break; + case 10: + diceResult.diceTextLog = diceResult.diceTextLog + "(Success x2)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.PROFICIENCY.SS + s2 + "Proficiency Success x2" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.success = diceResult.success + 2; + break; + case 11: + diceResult.diceTextLog = diceResult.diceTextLog + "(Advantage x2)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.PROFICIENCY.AA + s2 + "Proficiency Advantage x2" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.advantage = diceResult.advantage + 2; + break; + case 12: + diceResult.diceTextLog = diceResult.diceTextLog + "(Advantage x2)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.PROFICIENCY.AA + s2 + "Proficiency Advantage x2" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.advantage = diceResult.advantage + 2; + break; + } + } + return diceResult; + }, + + setback: function (diceQty) { + //Black "Setback" die (d6) + //1 Blank + //2 Blank + //3 Failure + //4 Failure + //5 Threat + //6 Threat + var roll = 0; + var diceTextLog = ""; + var diceGraphicsLog = ""; + var diceResult = { + success: 0, + failure: 0, + advantage: 0, + threat: 0, + triumph: 0, + despair: 0, + light: 0, + dark: 0, + diceGraphicsLog: "", + diceTextLog: "" + }; + var i = 0; + var s1 = ''; + + if (eote.defaults.globalVars.diceTestEnabled === true) { + diceQty = 6; + } + + for (i = 1; i <= diceQty; i++) { + if (eote.defaults.globalVars.diceTestEnabled === true) { + roll = roll + 1; + } + else { + roll = randomInteger(6); + } + + switch (roll) { + case 1: + diceResult.diceTextLog = diceResult.diceTextLog + "(Blank)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.SETBACK.BLANK + s2 + "Setback Blank" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + break; + case 2: + diceResult.diceTextLog = diceResult.diceTextLog + "(Blank)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.SETBACK.BLANK + s2 + "Setback Blank" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + break; + case 3: + diceResult.diceTextLog = diceResult.diceTextLog + "(Failure)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.SETBACK.F + s2 + "Setback Failure" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.failure = diceResult.failure + 1; + break; + case 4: + diceResult.diceTextLog = diceResult.diceTextLog + "(Failure)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.SETBACK.F + s2 + "Setback Failure" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.failure = diceResult.failure + 1; + break; + case 5: + diceResult.diceTextLog = diceResult.diceTextLog + "(Threat)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.SETBACK.T + s2 + "Setback Threat" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.threat = diceResult.threat + 1; + break; + case 6: + diceResult.diceTextLog = diceResult.diceTextLog + "(Threat)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.SETBACK.T + s2 + "Setback Threat" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.threat = diceResult.threat + 1; + break; + } + } + return diceResult; + }, + + difficulty: function (diceQty) { + //Purple "Difficulty" die (d8) + //1 Blank + //2 Failure + //3 Threat + //4 Threat + //5 Threat + //6 Failure + Failure + //7 Failure + Threat + //8 Threat + Threat + var roll = 0; + var diceTextLog = ""; + var diceGraphicsLog = ""; + var diceResult = { + success: 0, + failure: 0, + advantage: 0, + threat: 0, + triumph: 0, + despair: 0, + light: 0, + dark: 0, + diceGraphicsLog: "", + diceTextLog: "" + }; + var i = 0; + var s1 = ''; + + if (eote.defaults.globalVars.diceTestEnabled === true) { + diceQty = 8; + } + + for (i = 1; i <= diceQty; i++) { + if (eote.defaults.globalVars.diceTestEnabled === true) { + roll = roll + 1; + } + else { + roll = randomInteger(8); + } + + switch (roll) { + case 1: + diceResult.diceTextLog = diceResult.diceTextLog + "(Blank)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.DIFFICULTY.BLANK + s2 + "Difficulty Blank" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + break; + case 2: + diceResult.diceTextLog = diceResult.diceTextLog + "(Failure)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.DIFFICULTY.F + s2 + "Difficulty Failure" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.failure = diceResult.failure + 1; + break; + case 3: + diceResult.diceTextLog = diceResult.diceTextLog + "(Threat)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.DIFFICULTY.T + s2 + "Difficulty Threat" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.threat = diceResult.threat + 1; + break; + case 4: + diceResult.diceTextLog = diceResult.diceTextLog + "(Threat)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.DIFFICULTY.T + s2 + "Difficulty Threat" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.threat = diceResult.threat + 1; + break; + case 5: + diceResult.diceTextLog = diceResult.diceTextLog + "(Threat)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.DIFFICULTY.T + s2 + "Difficulty Threat" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.threat = diceResult.threat + 1; + break; + case 6: + diceResult.diceTextLog = diceResult.diceTextLog + "(Failure x2)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.DIFFICULTY.FF + s2 + "Difficulty Failure x2" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.failure = diceResult.failure + 2; + break; + case 7: + diceResult.diceTextLog = diceResult.diceTextLog + "(Failure + Threat)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.DIFFICULTY.FT + s2 + "Difficulty Failure + Threat" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.failure = diceResult.failure + 1; + diceResult.threat = diceResult.threat + 1; + break; + case 8: + diceResult.diceTextLog = diceResult.diceTextLog + "(Threat x2)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.DIFFICULTY.TT + s2 + "Difficulty Threat x2" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.threat = diceResult.threat + 2; + break; + } + } + return diceResult; + }, + + challenge: function (diceQty) { + //Red "Challenge" die (d12) + //1 Blank + //2 Despair + //3 Failure + //4 Failure + //5 Threat + //6 Threat + //7 Failure + Failure + //8 Failure + Failure + //9 Threat + Threat + //10 Threat + Threat + //11 Failure + Threat + //12 Failure + Threat + var roll = 0; + var diceTextLog = ""; + var diceGraphicsLog = ""; + var diceResult = { + success: 0, + failure: 0, + advantage: 0, + threat: 0, + triumph: 0, + despair: 0, + light: 0, + dark: 0, + diceGraphicsLog: "", + diceTextLog: "" + }; + var i = 0; + var s1 = ''; + + if (eote.defaults.globalVars.diceTestEnabled === true) { + diceQty = 12; + } + + for (i = 1; i <= diceQty; i++) { + if (eote.defaults.globalVars.diceTestEnabled === true) { + roll = roll + 1; + } + else { + roll = randomInteger(12); + } + + switch (roll) { + case 1: + diceResult.diceTextLog = diceResult.diceTextLog + "(Blank)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.CHALLENGE.BLANK + s2 + "Challenge Blank" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + break; + case 2: + diceResult.diceTextLog = diceResult.diceTextLog + "(Despair)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.CHALLENGE.DESPAIR + s2 + "Challenge Despair" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.despair = diceResult.despair + 1; + diceResult.failure = diceResult.failure + 1; + break; + case 3: + diceResult.diceTextLog = diceResult.diceTextLog + "(Failure)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.CHALLENGE.F + s2 + "Challenge Failure" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.failure = diceResult.failure + 1; + break; + case 4: + diceResult.diceTextLog = diceResult.diceTextLog + "(Failure)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.CHALLENGE.F + s2 + "Challenge Failure" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.failure = diceResult.failure + 1; + break; + case 5: + diceResult.diceTextLog = diceResult.diceTextLog + "(Threat)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.CHALLENGE.T + s2 + "Challenge Threat" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.threat = diceResult.threat + 1; + break; + case 6: + diceResult.diceTextLog = diceResult.diceTextLog + "(Threat)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.CHALLENGE.T + s2 + "Challenge Threat" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.threat = diceResult.threat + 1; + break; + case 7: + diceResult.diceTextLog = diceResult.diceTextLog + "(Failure x2)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.CHALLENGE.FF + s2 + "Challenge Failure x2" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.failure = diceResult.failure + 2; + break; + case 8: + diceResult.diceTextLog = diceResult.diceTextLog + "(Failure x2)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.CHALLENGE.FF + s2 + "Challenge Failure x2" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.failure = diceResult.failure + 2; + break; + case 9: + diceResult.diceTextLog = diceResult.diceTextLog + "(Threat x2)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.CHALLENGE.TT + s2 + "Challenge Threat x2" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.threat = diceResult.threat + 2; + break; + case 10: + diceResult.diceTextLog = diceResult.diceTextLog + "(Threat x2)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.CHALLENGE.TT + s2 + "Challenge Threat x2" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.threat = diceResult.threat + 2; + break; + case 11: + diceResult.diceTextLog = diceResult.diceTextLog + "(Failure + Threat)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.CHALLENGE.FT + s2 + "Challenge Failure + Threat" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.failure = diceResult.failure + 1; + diceResult.threat = diceResult.threat + 1; + break; + case 12: + diceResult.diceTextLog = diceResult.diceTextLog + "(Failure + Threat)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.CHALLENGE.FT + s2 + "Challenge Failure + Threat" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.failure = diceResult.failure + 1; + diceResult.threat = diceResult.threat + 1; + break; + } + } + return diceResult; + }, + + force: function (diceQty) { + //White "Force" die (d12) + //1 Light + //2 Light + //3 Light + Light + //4 Light + Light + //5 Light + Light + //6 Dark + //7 Dark + //8 Dark + //9 Dark + //10 Dark + //11 Dark + //12 Dark + Dark + var roll = 0; + var diceTextLog = ""; + var diceGraphicsLog = ""; + var diceResult = { + success: 0, + failure: 0, + advantage: 0, + threat: 0, + triumph: 0, + despair: 0, + light: 0, + dark: 0, + diceGraphicsLog: "", + diceTextLog: "" + }; + var i = 0; + var s1 = ''; + + if (eote.defaults.globalVars.diceTestEnabled === true) { + diceQty = 12; + } + + for (i = 1; i <= diceQty; i++) { + if (eote.defaults.globalVars.diceTestEnabled === true) { + roll = roll + 1; + } + else { + roll = randomInteger(12); + } + + switch (roll) { + case 1: + diceResult.diceTextLog = diceResult.diceTextLog + "(Light)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.FORCE.L + s2 + "Force Light" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.light = diceResult.light + 1; + break; + case 2: + diceResult.diceTextLog = diceResult.diceTextLog + "(Light)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.FORCE.L + s2 + "Force Light" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.light = diceResult.light + 1; + break; + case 3: + diceResult.diceTextLog = diceResult.diceTextLog + "(Light x2)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.FORCE.LL + s2 + "Force Light x2" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.light = diceResult.light + 2; + break; + case 4: + diceResult.diceTextLog = diceResult.diceTextLog + "(Light x2)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.FORCE.LL + s2 + "Force Light x2" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.light = diceResult.light + 2; + break; + case 5: + diceResult.diceTextLog = diceResult.diceTextLog + "(Light x2)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.FORCE.LL + s2 + "Force Light x2" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.light = diceResult.light + 2; + break; + case 6: + diceResult.diceTextLog = diceResult.diceTextLog + "(Dark)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.FORCE.D + s2 + "Force Dark" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.dark = diceResult.dark + 1; + break; + case 7: + diceResult.diceTextLog = diceResult.diceTextLog + "(Dark)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.FORCE.D + s2 + "Force Dark" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.dark = diceResult.dark + 1; + break; + case 8: + diceResult.diceTextLog = diceResult.diceTextLog + "(Dark)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.FORCE.D + s2 + "Force Dark" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.dark = diceResult.dark + 1; + break; + case 9: + diceResult.diceTextLog = diceResult.diceTextLog + "(Dark)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.FORCE.D + s2 + "Force Dark" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.dark = diceResult.dark + 1; + break; + case 10: + diceResult.diceTextLog = diceResult.diceTextLog + "(Dark)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.FORCE.D + s2 + "Force Dark" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.dark = diceResult.dark + 1; + break; + case 11: + diceResult.diceTextLog = diceResult.diceTextLog + "(Dark)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.FORCE.D + s2 + "Force Dark" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.dark = diceResult.dark + 1; + break; + case 12: + diceResult.diceTextLog = diceResult.diceTextLog + "(Dark x2)"; + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.FORCE.DD + s2 + "Force Dark x2" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + diceResult.dark = diceResult.dark + 2; + break; + } + } + return diceResult; + }, + + success: function (diceQty) { + //Free Success + var i = 0; + var s1 = ''; + + var roll = 0; + var diceTextLog = ""; + var diceGraphicsLog = ""; + + var diceResult = { + success: 0, + failure: 0, + advantage: 0, + threat: 0, + triumph: 0, + despair: 0, + light: 0, + dark: 0, + diceGraphicsLog: "", + diceTextLog: "" + }; + + diceResult.diceTextLog = diceTextLog + "(Success x" + diceQty + ")"; + diceResult.success = diceResult.success + diceQty; + for (i = 0; i < diceQty; i++) { + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.SYMBOLS.S + s2 + "Success" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + } + + return diceResult; + }, + + advantage: function (diceQty) { + //Free Advantage + var i = 0; + var s1 = ''; + + var roll = 0; + var diceTextLog = ""; + var diceGraphicsLog = ""; + + var diceResult = { + success: 0, + failure: 0, + advantage: 0, + threat: 0, + triumph: 0, + despair: 0, + light: 0, + dark: 0, + diceGraphicsLog: "", + diceTextLog: "" + }; + + diceResult.diceTextLog = diceTextLog + "(Advantage x" + diceQty + ")"; + diceResult.advantage = diceResult.advantage + diceQty; + for (i = 0; i < diceQty; i++) { + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.SYMBOLS.A + s2 + "Advantage" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + } + + return diceResult; + }, + + threat: function (diceQty) { + //Free threat + var i = 0; + var s1 = ''; + + var roll = 0; + var diceTextLog = ""; + var diceGraphicsLog = ""; + + var diceResult = { + success: 0, + failure: 0, + advantage: 0, + threat: 0, + triumph: 0, + despair: 0, + light: 0, + dark: 0, + diceGraphicsLog: "", + diceTextLog: "" + }; + + diceResult.diceTextLog = diceTextLog + "(Threat x" + diceQty + ")"; + diceResult.threat = diceResult.threat + diceQty; + for (i = 0; i < diceQty; i++) { + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.SYMBOLS.T + s2 + "Threat" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + } + + return diceResult; + }, + + failure: function (diceQty) { + //Free Faliure + var i = 0; + var s1 = ''; + + var roll = 0; + var diceTextLog = ""; + var diceGraphicsLog = ""; + + var diceResult = { + success: 0, + failure: 0, + advantage: 0, + threat: 0, + triumph: 0, + despair: 0, + light: 0, + dark: 0, + diceGraphicsLog: "", + diceTextLog: "" + }; + + diceResult.diceTextLog = diceTextLog + "(Failure x" + diceQty + ")"; + diceResult.failure = diceResult.failure + diceQty; + for (i = 0; i < diceQty; i++) { + diceResult.diceGraphicsLog = diceResult.diceGraphicsLog + s1 + eote.defaults.graphics.SYMBOLS.F + s2 + "Success" + s3 + eote.defaults.globalVars.diceGraphicsChatSize + s4 + eote.defaults.globalVars.diceGraphicsChatSize + s5; + } + + return diceResult; + } +} + +eote.events = function () { + + //event listner Add character defaults to new characters + on("add:character", function (characterObj) { + eote.setCharacterDefaults(characterObj); + }); + + on("chat:message", function (msg) { + + if (msg.type != 'api') { + return; + } + + eote.process.setup(msg.content, msg.who, msg.playerid); + }); +} + +on('ready', function () { + eote.init(); +}); \ No newline at end of file diff --git a/Star Wars FFG API-Compatible/README.md b/Star Wars FFG API-Compatible/README.md new file mode 100644 index 0000000000..7c997214d6 --- /dev/null +++ b/Star Wars FFG API-Compatible/README.md @@ -0,0 +1,2 @@ +# FFG-SWRPG-API-Compatible +Roll20 Character Sheet for Fantasy Flight Games Star Wars Role Playing Game - For Pro (API) GMs diff --git a/Star Wars FFG API-Compatible/sheet.json b/Star Wars FFG API-Compatible/sheet.json new file mode 100644 index 0000000000..22009be75c --- /dev/null +++ b/Star Wars FFG API-Compatible/sheet.json @@ -0,0 +1,8 @@ +{ + "html": "FFG-SWRPG-CharacterSheet.html", + "css": "FFG-SWRPG-CharacterSheet.css", + "authors": "GM Knowledge Rhino", + "roll20userid": "472728", + "preview": "Character Sheet Preview.png", + "instructions": "This character sheet utilizes the FFG-SWRPG-Dice-Roller.js to perform many of the rolls of the sheet. Please make sure this is loaded." +} diff --git a/Street_Fighter-neovatar/README.md b/Street_Fighter-neovatar/README.md index f25f8dbb62..c88469a6aa 100644 --- a/Street_Fighter-neovatar/README.md +++ b/Street_Fighter-neovatar/README.md @@ -43,5 +43,8 @@ This will create `Street_Fighter-neovatar.[css|html]` that you can copy and past ### Changelog +**1.1.0:** +* User sheet worker scripts to track wounds and used resources and to syncronize it with attributes shown with tokens (hp, willpower, chi) + **1.0.0:** * Intitial release \ No newline at end of file diff --git a/Street_Fighter-neovatar/Street_Fighter-neovatar.css b/Street_Fighter-neovatar/Street_Fighter-neovatar.css index 38009aa399..c5cbfee188 100644 --- a/Street_Fighter-neovatar/Street_Fighter-neovatar.css +++ b/Street_Fighter-neovatar/Street_Fighter-neovatar.css @@ -1,4 +1,4 @@ -/* version: 1.0.0 */ +/* version: 1.1.0 */ .charsheet label { display: inline-block; @@ -379,7 +379,7 @@ input.sheet-cursive { label.sheet-filler { display: inline-block; - width: 40px; + width: 50px; text-align: left; padding-bottom: 0px; font-size: 12px; diff --git a/Street_Fighter-neovatar/Street_Fighter-neovatar.html b/Street_Fighter-neovatar/Street_Fighter-neovatar.html index 64bf70b855..00b7e89bda 100644 --- a/Street_Fighter-neovatar/Street_Fighter-neovatar.html +++ b/Street_Fighter-neovatar/Street_Fighter-neovatar.html @@ -921,18 +921,18 @@
- +
- +
- +
- +
@@ -943,110 +943,110 @@

Chi

- - - - - - - - - - - + + + + + + + + + + +
- - - - - - - - - - - + + + + + + + + + + +
 

Willpower

- - - - - - - - - - - + + + + + + + + + + +
- - - - - - - - - - - + + + + + + + + + + +
 

Health

- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +
- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +
@@ -1136,3 +1136,61 @@ + + + diff --git a/Street_Fighter-neovatar/package.json b/Street_Fighter-neovatar/package.json index 5fac675e60..95f83b7c57 100644 --- a/Street_Fighter-neovatar/package.json +++ b/Street_Fighter-neovatar/package.json @@ -1,6 +1,6 @@ { "title": "Street Fighter Character Sheet", - "version": "1.0.0", + "version": "1.1.0", "name": "roll20-Street_Figter-neovatar", "author": { "name": "Thomas Seliger" diff --git a/Street_Fighter-neovatar/sheet.json b/Street_Fighter-neovatar/sheet.json index 0bc0273785..f3783ee102 100644 --- a/Street_Fighter-neovatar/sheet.json +++ b/Street_Fighter-neovatar/sheet.json @@ -4,5 +4,5 @@ "authors": "Thomas Seliger (neovatar)", "roll20userid": "388327", "preview": "Street_Fighter-neovatar.jpg", - "instructions": "Charactersheet for 'Street Fighter: The Storytelling Game'.\n\nVersion: 1.0.0\n\nIf you find bugs or have suggestions, please use the [Github issue tracker](https://github.com/neovatar/roll20-character-sheets/issues) for this sheet.\n\nFor changes in this version, please check the [CHANGELOG](https://github.com/Roll20/roll20-character-sheets/blob/master/Street_Fighter-neovatar/README.md#changelog) on Roll20.net Github repository." + "instructions": "Charactersheet for 'Street Fighter: The Storytelling Game'.\n\nVersion: 1.1.0\n\nIf you find bugs or have suggestions, please use the [Github issue tracker](https://github.com/neovatar/roll20-character-sheets/issues) for this sheet.\n\nFor changes in this version, please check the [CHANGELOG](https://github.com/Roll20/roll20-character-sheets/blob/master/Street_Fighter-neovatar/README.md#changelog) on Roll20.net Github repository." } \ No newline at end of file diff --git a/Street_Fighter-neovatar/src/Street_Fighter-neovatar.css b/Street_Fighter-neovatar/src/Street_Fighter-neovatar.css index d4bfa2e798..4e0bc24977 100644 --- a/Street_Fighter-neovatar/src/Street_Fighter-neovatar.css +++ b/Street_Fighter-neovatar/src/Street_Fighter-neovatar.css @@ -379,7 +379,7 @@ input.sheet-cursive { label.sheet-filler { display: inline-block; - width: 40px; + width: 50px; text-align: left; padding-bottom: 0px; font-size: 12px; diff --git a/Street_Fighter-neovatar/src/Street_Fighter-neovatar.html b/Street_Fighter-neovatar/src/Street_Fighter-neovatar.html index 61596f9fd5..f2dd9f0c9f 100644 --- a/Street_Fighter-neovatar/src/Street_Fighter-neovatar.html +++ b/Street_Fighter-neovatar/src/Street_Fighter-neovatar.html @@ -921,18 +921,18 @@
- +
- +
- +
- +
@@ -943,110 +943,110 @@

Chi

- - - - - - - - - - - + + + + + + + + + + +
- - - - - - - - - - - + + + + + + + + + + +
 

Willpower

- - - - - - - - - - - + + + + + + + + + + +
- - - - - - - - - - - + + + + + + + + + + +
 

Health

- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +
- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +
@@ -1136,3 +1136,61 @@ + + + diff --git a/WFRP-2nd-Ed/WFRP-2nd-Ed.html b/WFRP-2nd-Ed/WFRP-2nd-Ed.html index 7fbc80d733..012d0d1448 100644 --- a/WFRP-2nd-Ed/WFRP-2nd-Ed.html +++ b/WFRP-2nd-Ed/WFRP-2nd-Ed.html @@ -1,1546 +1,1235 @@ -
-
- -
- - -
-
- - -
-
- - -
- -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
- -
- - -
-
- - -
- -
- -
- -
- - -
- -
- - -
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
- -
-
- -
-
- -
-
- -
-
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
- -
-
- -
-
- -
-
- -
-
-
-
- -
-
- -
-
- -
-
- -
-
-
-
- -
-
- -
-
- -
-
- -
-
-
-
- -
-
- - -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
-
-
- -
-
- -
-
- -
-
- -
-
-
-
- -
-
- -
-
- -
-
-
-
-
-
- -
-
- -
-
- -
-
-
-
-
-
-
-
- -
- - -
- -
-
- -
-
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
- - -
- -
- - -
- -
-
- -
-
- - -
-
- -
-
-
-
-
-
- -
-
- -
-
- -
-
-
-
- -
-
- -
-
- -
-
- -
- - -
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
- - -
- - -
- - -
-
- -
-
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- - -
-
-
- - -
- -
- - -
- - -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
- -
- - -
- - -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
-
-
-
- -
- - -
- - -
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- - -
-
- -
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
- -
-
- - -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- - -
- - -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
- - -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- - -
-
- -
- - -
- - - -
- -
- - -
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
-
- - -
- - -
- -
-
- -
-
- -
-
- -
-
-
- -
-
- -
-
-
-
-
- -
- - -
- -
- - -
- -
-
- -
-
- -
-
- -
-
- -
-
-
- -
-
- -
-
- -
-
-
-
-
- - -
- - -
- -
-
- -
-
- -
-
- -
-
-
-
- -
-
- -
-
- -
-
-
-
-
-
- -
- -
\ No newline at end of file + +Warhammer
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +

+
+ +
+ +
+ + +
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+ + +
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+
+ +
+ +
+ + +
+ +
+
+
+
+ + +
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+ + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+ + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+
+ +
+ +
+ + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+ +
+ + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+ +
+ + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ +
+ +
+
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+ +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ + +
+ +
+ + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+ + +
+ +
+
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+ +
+ + +
+ +
+
+
+
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+ + +
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
\ No newline at end of file diff --git a/approved.yaml b/approved.yaml index b5e877ae06..b38e9a03ea 100644 --- a/approved.yaml +++ b/approved.yaml @@ -434,8 +434,8 @@ eclipsephase: - "13th Age Legacy" - "13th Age" -13thage: - - "13th_Age" +13thage: + - "13th_Age" - "13th Age" - "hidden" @@ -775,7 +775,7 @@ strike: dragonageBR: - "Dragon-Age-RPG-PT-BR" -- "Dragon Age RPG (Portugese)" +- "Dragon Age RPG (Portuguese)" - "AGE System" onlywar: @@ -839,23 +839,23 @@ pathfindersp: fateacelerado: - "Fate Acelerado BR" -- "Fate Acelerado (Portugese/Brazilian)" +- "Fate Acelerado (Portuguese/Brazilian)" - "Fate" fatebasico: - "Fate Básico BR" -- "Fate Basico (Portugese/Brazilian)" +- "Fate Basico (Portuguese/Brazilian)" - "Fate" fatejadepunkbr: - "Fate Jadepunk BR" -- "Fate Jadepunk BR (Portugese/Brazilian)" +- "Fate Jadepunk BR (Portuguese/Brazilian)" - "Fate" dungeonworldbr: - "Dungeon World Português" -- "Dungeon World (Portugese/Brazilian)" -- "Dungeon World" +- "Dungeon World (Portuguese/Brazilian)" +- "Apocalypse World Engine" dungeonslayers: - "Dungeon-slayers-4" @@ -928,7 +928,7 @@ official13thage: - "13th Age" officialnwod: -- "New World of Darkness Offical" +- "New World of Darkness Official" - "New World of Darkness Official Sheet" - "Storytelling System" @@ -944,7 +944,7 @@ dnd35espanish: cwodm20: - "CWOD-M20" -- "Mage: The Ascention 20th Anniversary Edition (cWoD)" +- "Mage: The Ascension 20th Anniversary Edition (cWoD)" - "Storytelling System" cthulhutech: @@ -1140,3 +1140,30 @@ hollowearthexpedition: - "HollowEarthExpedition" - "Hollow Earth Expedition" - "Ubiquity" + +aliens: +- "Aliens" +- "Aliens" + +dogsinthevineyard: +- "Dogs-in-the-Vineyard" +- "Dogs in the Vineyard" + +cahiersduvastemondefr: +- "CahiersDuVastemonde" +- "Cahiers du Vastemonde" + +dungeonworldfr: +- "DungeonWorldFrench" +- "Dungeon World (French)" +- "Apocalypse World Engine" + +nightshadeacademy: +- "Nightshade Academy" +- "Nightshade Academy" +- "Fate" + +# starwarseoteapi: +# - "Star Wars FFG API-Compatible" +# - "Star Wars: Edge of the Empire (API-Compatible) new" # REMOVE THE NEW +# - "Star Wars" \ No newline at end of file