diff --git a/Private Eye/privateeye.css b/Private Eye/privateeye.css index e69de29bb2..8a5f2e4eb1 100644 --- a/Private Eye/privateeye.css +++ b/Private Eye/privateeye.css @@ -0,0 +1,258 @@ +@import url('https://fonts.googleapis.com/css2?family=Great+Vibes&display=swap'); + +body.sheet-darkmode button, +body.sheet-darkmode input, +body.sheet-darkmode optgroup, +body.sheet-darkmode select, +body.sheet-darkmode textarea, +body.sheet-darkmode .charsheet { + color: #eee; + background-color: #1e2021; +} + +body.sheet-darkmode .btn, +body.sheet-darkmode .btn.btn-default { + color: #c8c3bc; + text-shadow: rgba(24,26,27,.75) 0px 1px 1px; + background-color: #1e2021; + background-image: linear-gradient(#181a1b, #26292b); + border-color: #3e4446 #3e4446 #43494c; + box-shadow: rgba(24,26,27,.2) 0px 1px 0px inset,rgba(0,0,0,.05) 0px 1px 2px +} + +.sheet-darkmode .sheetform { + background-color: inherit; + color: #fff; +} + +.pe-header { + display: flex; + justify-content: center; + margin-bottom: 25px; +} + +.pe-header > img { + width: 50%; +} + +.pe-sheet-wrapper { + display: flex; + flex-wrap: nowrap; + gap: 20px; + margin-top: 40px; +} + +.pe-sheet-section { + border-width: 1px; + border-style: solid; + padding: 10px; + border-radius: 10px; +} + +.pe-borderless { + border-width: 0 !important; +} + +.pe-centered { + display: flex; + justify-content: center; +} + +.sheet-darkmode .pe-sheet-section { + border-color: #ababab; +} + +.pe-width-50 { + flex: 50%; +} + +.pe-width-25 { + flex: 25%; +} + +.pe-width-75 { + flex: 75%; +} + +.pe-width-100 { + flex: 100%; +} + +.pe-break { + flex-basis: 100%; + height: 0; +} + +.pe-sheet-section>h1,h2,h3,h4,h5 { + font-family: "Great Vibes", cursive; + margin-top: -30px; + margin-bottom: 30px; + padding-left: 10px; + padding-right: 10px; + display: block; + border-width: 1px; + border-style: dashed; + border-radius: 5px; +} + +.pe-sheet-section>h1 { + font-size: 17pt; + line-height: 30pt; +} + +.sheetform .pe-sheet-section>h1,h2,h3,h4,h5 { + background-color: #fff; +} + +.sheet-darkmode .sheetform .pe-sheet-section>h1,h2,h3,h4,h5 { + color: #fff; + border-color: #ababab; + background-color: rgb(31, 31, 31); +} + +.pe-bold { + font-weight: bold; +} + +.pe-sheet-section>.pe-sheet-row { + display:flex; + gap:5px; + align-items: center; + margin-top:5px; + margin-bottom: 5px; + flex-direction: row; +} + +.pe-sheet-section>.pe-sheet-row>.pe-grow { + flex-grow: 1; +} + +.pe-sheet-section>.pe-sheet-row>select { + margin-bottom: 0px; +} + +.pe-sheet-section>.pe-sheet-row>.pe-label { + display:block; + padding-left: 10px; + padding-right: 10px; +} + +.pe-sheet-section>.pe-empty-sheet-line { + height: 1.2em; +} + +.pe-sheet-section>.pe-skill-grid { + display: flex; + flex-direction: column; +} + +.pe-sheet-section>.pe-skill-grid>.pe-skill-row { + flex-basis: 100%; + display: flex; + flex-wrap: wrap; + align-items: center; + gap:5px; + padding: 6px; + border-bottom: 1px dotted +} + +.pe-sheet-section>.pe-skill-grid>.pe-skill-row.border-dashed { + border-bottom: 1px dashed + } + +.pe-sheet-section>.pe-skill-grid>.pe-skill-row.border-none, +.pe-sheet-section>.pe-skill-grid>.pe-skill-row:last-child{ + border-bottom: none; +} + +.pe-sheet-section>.pe-skill-grid>.pe-skill-row:nth-child(even) { + background-color: rgb(29, 29, 29); +} + +.pe-sheet-section>.pe-skill-grid>.pe-skill-row>* { + flex-basis:11%; + text-align: center; +} + +.pe-sheet-section>.pe-skill-grid>.pe-skill-row>.pe-wider { + flex-basis: 30%; + text-align: left; +} + +.pe-sheet-section>.pe-skill-grid>.pe-skill-row>.pe-narrow { + flex-basis: 6%; +} + +.pe-sheet-section>.pe-skill-grid>.pe-skill-row>.pe-fullrow { + flex-basis: 100%; + text-align: left; +} + +.sheet-rolltemplate-pe-combat, +.sheet-rolltemplate-pe-challenge { + padding: 10px 0; +} + +.sheet-rolltemplate-pe-combat > table, +.sheet-rolltemplate-pe-challenge > table { + width:250px; +} + +.sheet-rolltemplate-pe-combat > table > tbody > tr > th, +.sheet-rolltemplate-pe-combat > table > tbody > tr > td, +.sheet-rolltemplate-pe-challenge > table > tbody > tr > th, +.sheet-rolltemplate-pe-challenge > table > tbody > tr > td { + line-height: 2em; + border: 3px solid #2c2d2e; + padding: 5px; +} + +.sheet-rolltemplate-pe-challenge > table > tbody > tr > th, +.sheet-rolltemplate-pe-challenge > table > tbody > tr > th { + background-color: #3b3b3c; + color: #fff; +} + +.sheet-rolltemplate-pe-combat > table > tbody > tr > th.sheet-pe-fixed-width, +.sheet-rolltemplate-pe-challenge > table > tbody > tr > th.sheet-pe-fixed-width { + width: 90px; +} + + +.sheet-rolltemplate-pe-combat.sheet-rolltemplate-darkmode > table > tbody > tr > th, +.sheet-rolltemplate-pe-combat.sheet-rolltemplate-darkmode > table > tbody > tr > td, +.sheet-rolltemplate-pe-challenge.sheet-rolltemplate-darkmode > table > tbody > tr > th, +.sheet-rolltemplate-pe-challenge.sheet-rolltemplate-darkmode > table > tbody > tr > td { + border: 3px solid #9e9ea0; +} + +.sheet-rolltemplate-pe-combat.sheet-rolltemplate-darkmode > table > tbody > tr > td, +.sheet-rolltemplate-pe-challenge.sheet-rolltemplate-darkmode > table > tbody > tr > td { + background-color: #565656; + color: #d9d9d9 !important; +} + +.sheet-rolltemplate-pe-combat.sheet-rolltemplate-darkmode > table > tbody > tr > th, +.sheet-rolltemplate-pe-challenge.sheet-rolltemplate-darkmode > table > tbody > tr > th { + background-color: #e0dddd; + color: #404040 !important; +} + +.sheet-rolltemplate-pe-combat > table > tbody > tr > td.sheet-success, +.sheet-rolltemplate-pe-challenge > table > tbody > tr > td.sheet-success { + background-color: #4cf06f; + color: #404040 !important; + font-weight: bold; + text-align: center; +} + +.sheet-rolltemplate-pe-combat > table > tbody > tr > td.sheet-failure, +.sheet-rolltemplate-pe-challenge > table > tbody > tr > td.sheet-failure { + background-color: #810505; + color: #fff !important; + font-weight: bold; + text-align: center; +} + + + diff --git a/Private Eye/privateeye.html b/Private Eye/privateeye.html index bb0d790f9c..a4dd367d60 100644 --- a/Private Eye/privateeye.html +++ b/Private Eye/privateeye.html @@ -1,13 +1,974 @@ -
-
- Private Eye + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Private Eye +
+ + + +
+
+

Personal characteristics

+
+ Name + +
+
+ Gender + + Age + +
+
+ Size + + Weight + +
+
+ Nationality + +
+
+ Place of birth + +
-
-
-
- NAME - +
+ +
+
+ + + +
+
+

Social characteristics

+
+ Occupation + +
+
+ Education + +
+
+ Origin + + Location + +
+
+ Wealth + +
+
+
+ + + +
+
+

Properties

+
+ STR + + + INT + + +
+
+ SKI + + + CHA + + +
+
+ CON + + + EDU + + +
+
+
+

Health & Advancement

+
+ LP + + Max + + XP + +
+
+ Level + +
+
+ Reputation + +
+
+
+
+
+

Skills

+
+ +
+ Skill + Property + Base value + Property Bonus + Points + Total + +
+
+ + Cab driving + SKI + + + + + +
+
+ + Forging + SKI + + + + + +
+
+ + Fistfight + STR + + + + + +
+
+ + Foreign language +
+
+ + + EDU + + + + + +
+
+ + + EDU + + + + + +
+
+ + + EDU + + + + + +
+
+ + Law + EDU + + + + + +
+
+ + Crafting + SKI + + + + + +
+
+ + Climbing + SKI + + + + + +
+
+ + Melee weapons + SKI + + + + + +
+
+ + Psychology + INT + + + + + +
+
+ + Research + INT + + + + + +
+
+ + Acting + CHA + + + + + +
+
+ + Sneaking + SKI + + + + + +
+
+ + Lock picking + SKI + + + + + +
+
+ + Firearms + SKI + + + + + +
+
+ + Forensics + INT + + + + + +
+
+ + City knowledge + EDU + + + + + +
+
+ + Technology +
+
+ + + SKI + + + + + +
+
+ + + SKI + + + + + +
+
+ + + SKI + + + + + +
+
+ + Tracking + CON + + + + + +
+
+ + Interrogation + INT + + + + + +
+
+ + Disguise + SKI + + + + + +
+
+ + Hiding + SKI + + + + + +
+
+ + Perception + INT + + + + + +
+
+ + Throwing + STR + + + + + +
+
+ + Science +
+
+ + + EDU + + + + + +
+
+ + + EDU + + + + + +
+
+ + + EDU + + + + + +
+
+ + + EDU + + + + + +
+
+ + Custom skills +
+
+ + + + + + + + +
+
+ + + + + + + + +
+
+ + + + + + + + +
+
+ + + + + + + + +
+
+ + + + + + + + +
+
+ + + + + + + + +
+
+ + + + + + + + +
+
+ + + + + + + + +
+
+ + + + + + + + +
+
+ + + + + + + +
-
\ No newline at end of file +
+
+
+

Weapons

+
+ Weapon + Used skill + HP + AP + DP +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + {{#rollBetween() success 1 5}} + {{#rollTotal() roll 1}} + + + + {{/rollTotal() roll 1}} + {{#rollBetween() roll 2 success}} + + + + {{/rollBetween() roll 2 success}} + {{/rollBetween() success 1 5}} + {{#rollGreater() success 5}} + {{#rollBetween() roll 1 3}} + + + + {{/rollBetween() roll 1 3}} + {{#rollBetween() roll 4 success}} + + + + {{/rollBetween() roll 4 success}} + {{/rollGreater() success 5}} + {{#rollGreater() roll success}} + {{#rollBetween() roll success 97}} + + + + {{/rollBetween() roll success 97}} + {{#rollGreater() roll 97}} + + + + {{/rollGreater() roll 97}} + {{/rollGreater() roll success}} +
Attribute{{name}}
Roll{{roll}}
To match{{success}}
+
+ + + + + + + + + + + + + + + + + + + + {{#rollBetween() success 1 5}} + {{#rollTotal() roll 1}} + + + + {{/rollTotal() roll 1}} + {{#rollBetween() roll 2 success}} + + + + {{/rollBetween() roll 2 success}} + {{/rollBetween() success 1 5}} + {{#rollGreater() success 5}} + {{#rollBetween() roll 1 3}} + + + + {{/rollBetween() roll 1 3}} + {{#rollBetween() roll 4 success}} + + + + {{/rollBetween() roll 4 success}} + {{/rollGreater() success 5}} + {{#rollGreater() roll success}} + {{#rollBetween() roll success 97}} + + + + {{/rollBetween() roll success 97}} + {{#rollGreater() roll 97}} + + + + {{/rollGreater() roll 97}} + {{/rollGreater() roll success}} +
{{roll_type}}
Weapon{{name}}
Roll{{roll}}
To match{{success}}
+ {{#damage_blunt}} + {{#rollBetween() roll 1 success}} +
+ + + + +
Damage
Blunt{{damage_blunt}}
Pointed{{damage_pointed}}
+ {{/rollBetween() roll 1 success}} + {{/damage_blunt}} +
+ + + diff --git a/Private Eye/save-skills b/Private Eye/save-skills new file mode 100644 index 0000000000..708ecca8c6 --- /dev/null +++ b/Private Eye/save-skills @@ -0,0 +1,3 @@ +"skills-list": "header,cab-driving,forging,fistfight,foreign-language-header,foreign-language-1,foreign-language-2,foreign-language-3,law,crafting,climbing,melee-weapons,psychology,research,acting,sneaking,lock-picking,firearms,forensics,city-knowledge,technology-header,technology-1,technology-2,technology-3,tracking,interrogation,disguise,hiding,perception,throwing,science-header,science-1,science-2,science-3,science-4,custom-header,custom-1,custom-2,custom-3,custom-4,custom-5,custom-6,custom-7,custom-8,custom-9,custom-10" + +"skills-list": "header,acting,cab-driving,city-knowledge,climbing,crafting,disguise,firearms,fistfight,foreign-language-header,foreign-language-1,foreign-language-2,foreign-language-3,forensics,forging,hiding,interrogation,law,lock-picking,melee-weapons,perception,psychology,research,science-header,science-1,science-2,science-3,science-4,sneaking,technology-header,technology-1,technology-2,technology-3,throwing,tracking,custom-header,custom-1,custom-2,custom-3,custom-4,custom-5,custom-6,custom-7,custom-8,custom-9,custom-10" \ No newline at end of file diff --git a/Private Eye/translation.json b/Private Eye/translation.json new file mode 100644 index 0000000000..8ac49349ec --- /dev/null +++ b/Private Eye/translation.json @@ -0,0 +1,82 @@ +{ + "personal-characteristics": "Personal characteristics", + "character-name": "Name", + "character-gender": "Gender", + "character-age": "Age", + "character-nationality": "Nationality", + "character-size": "Size", + "character-place-of-birth": "Place of birth", + "character-weight": "Weight", + "social-characteristics": "Social characteristics", + "character-occupation": "Occupation", + "character-education-text": "Education", + "character-origin": "Origin", + "character-location": "Location", + "character-wealth": "Wealth", + "base-properties": "Properties", + "character-strength": "STR", + "character-intelligence": "INT", + "character-constitution": "CON", + "character-charme": "CHA", + "character-skill": "SKI", + "character-education": "EDU", + "weapons-properties": "Weapons", + "weapon-name": "Name", + "weapon-roll-type-attack": "Attack", + "weapon-roll-type-defense": "Defense", + "weapon-type": "Damage type", + "weapon-used-skill": "Used skill", + "weapon-hit-probability": "TP", + "weapon-attack-probability": "AP", + "weapon-defense-probability": "DP", + "weapon-type-blunt": "Blunt", + "weapon-type-pointed": "Pointed", + "health-properties": "Health & Advancement", + "character-health": "LP", + "character-max": "Max.", + "character-experience": "XP", + "character-level": "Level", + "character-reputation": "Reputation", + "skills": "Skills", + "header-skill": "Skill", + "header-property": "Property", + "header-base-value": "Base value", + "header-property-bonus": "Property bonus", + "header-points": "Points", + "header-total": "Total score", + "skill-cab-driving": "Cab driving", + "skill-forging": "Forging", + "skill-fistfight": "Fistfight", + "skill-foreign-language": "Foreign Language: ", + "skill-law": "Law", + "skill-crafting": "Crafting", + "skill-climbing": "Climbing", + "skill-melee-weapons": "Melee weapons", + "skill-psychology": "Psychology", + "skill-research": "Research", + "skill-acting": "Acting", + "skill-sneaking": "Sneaking", + "skill-lock-picking": "Lock-picking", + "skill-firearms": "Firearms", + "skill-forensics": "Forensics", + "skill-city-knowledge": "City knowledge", + "skill-technology": "Technology: ", + "skill-tracking": "Tracking", + "skill-interrogation": "Interrogation", + "skill-disguise": "Disguise", + "skill-hiding": "Hiding", + "skill-perception": "Perception", + "skill-throwing": "Throwing", + "skill-science": "Science: ", + "skill-custom": "Custom skills: ", + "rt-attribute": "Attribute", + "rt-roll": "Roll", + "rt-weapon": "Weapon", + "rt-damage": "Damage", + "rt-to-match": "To match", + "rt-failure": "FAILURE", + "rt-success": "SUCCESS", + "rt-critical": "CRITICAL", + "rt-fumble": "FUMBLE", + "skills-list": "header,acting,cab-driving,city-knowledge,climbing,crafting,disguise,firearms,fistfight,foreign-language-header,foreign-language-1,foreign-language-2,foreign-language-3,forensics,forging,hiding,interrogation,law,lock-picking,melee-weapons,perception,psychology,research,science-header,science-1,science-2,science-3,science-4,sneaking,technology-header,technology-1,technology-2,technology-3,throwing,tracking,custom-header,custom-1,custom-2,custom-3,custom-4,custom-5,custom-6,custom-7,custom-8,custom-9,custom-10" +}