Expand Agent Sheet V2 with split tabs, typed-skill columns, and gear partials.
This commit is contained in:
+288
-10
@@ -1514,6 +1514,7 @@ a[data-action="applySkillImprovements"] {
|
||||
display: grid;
|
||||
grid-template-columns: 220px 1fr;
|
||||
grid-template-rows: auto 1fr;
|
||||
column-gap: 8px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
@@ -1524,6 +1525,15 @@ a[data-action="applySkillImprovements"] {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.stats-wrapper {
|
||||
margin-top: 8px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.mb-8 {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.window-content > nav.sheet-tabs {
|
||||
grid-column: 2;
|
||||
grid-row: 1;
|
||||
@@ -1533,6 +1543,25 @@ a[data-action="applySkillImprovements"] {
|
||||
margin-bottom: 0;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.tabs [data-action="tab"] {
|
||||
flex: 0 0 7.5rem;
|
||||
text-align: center;
|
||||
z-index: 0;
|
||||
margin-left: -6px;
|
||||
|
||||
&:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.tabs [data-action="tab"][data-tab="about"] {
|
||||
flex: 0 0 auto;
|
||||
min-width: unset;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.window-content > [data-application-part="rightBar"],
|
||||
@@ -1566,7 +1595,7 @@ a[data-action="applySkillImprovements"] {
|
||||
|
||||
.tabs [data-action="tab"].active {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
z-index: 3;
|
||||
margin-bottom: -2px;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
@@ -1585,22 +1614,65 @@ a[data-action="applySkillImprovements"] {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.resources {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.resource-inner-grid-3col input {
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
.breaking-point {
|
||||
justify-content: space-between;
|
||||
display: flex;
|
||||
.breaking-point-inline {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr auto auto;
|
||||
align-items: center;
|
||||
column-gap: 6px;
|
||||
border: none;
|
||||
padding: 0;
|
||||
background: none;
|
||||
|
||||
input {
|
||||
width: 40px;
|
||||
.breaking-point-label {
|
||||
margin: 0;
|
||||
white-space: nowrap;
|
||||
justify-self: start;
|
||||
}
|
||||
|
||||
.breaking-point-input {
|
||||
width: 2.5rem;
|
||||
min-width: 2.5rem;
|
||||
max-width: 2.5rem;
|
||||
padding: 1px;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
justify-self: end;
|
||||
}
|
||||
|
||||
.fa-refresh {
|
||||
text-decoration: none;
|
||||
font-size: 12px;
|
||||
justify-self: end;
|
||||
}
|
||||
}
|
||||
|
||||
.mb-10 {
|
||||
margin-bottom: 10px;
|
||||
.exhausted-section.resource {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr auto;
|
||||
align-items: center;
|
||||
column-gap: 8px;
|
||||
row-gap: 4px;
|
||||
border: none;
|
||||
margin-bottom: 8px;
|
||||
padding: 0;
|
||||
background: none;
|
||||
|
||||
.exhaustion-label {
|
||||
justify-self: start;
|
||||
}
|
||||
|
||||
.labeled-resource-checkbox,
|
||||
input[type="number"] {
|
||||
justify-self: end;
|
||||
}
|
||||
}
|
||||
|
||||
.stats {
|
||||
@@ -1613,14 +1685,220 @@ a[data-action="applySkillImprovements"] {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.skill-util-buttons {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
align-items: stretch;
|
||||
gap: 8px;
|
||||
width: 100%;
|
||||
margin: 5px 0;
|
||||
box-sizing: border-box;
|
||||
|
||||
.action-pill {
|
||||
flex: 1 1 0;
|
||||
min-width: 0;
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.typed-skill-add {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
a[data-action="applySkillImprovements"] {
|
||||
float: none;
|
||||
}
|
||||
|
||||
.custom-skills-edit-toggle {
|
||||
flex: 0 0 auto;
|
||||
min-width: 2rem;
|
||||
padding-inline: 6px;
|
||||
}
|
||||
}
|
||||
|
||||
.custom-skill-group-label {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-height: 1.35rem;
|
||||
height: auto;
|
||||
margin-top: 4px;
|
||||
margin-bottom: 4px;
|
||||
padding: 2px 4px;
|
||||
font-size: 0.7rem;
|
||||
font-weight: bold;
|
||||
letter-spacing: 0.02em;
|
||||
text-transform: uppercase;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
&.custom-skills-edit-mode .custom-skills-edit-toggle {
|
||||
background-color: rgba(0, 0, 0, 0.45);
|
||||
outline: 1px solid #000;
|
||||
}
|
||||
|
||||
&.custom-skills-edit-mode .program-style .custom-skills-edit-toggle {
|
||||
background-color: #000;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.typed-skill-row {
|
||||
min-height: 27px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.custom-skill-controls-slot {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex: 0 0 70px;
|
||||
min-width: 70px;
|
||||
min-height: 1.2rem;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.custom-skill-play-controls {
|
||||
display: flex;
|
||||
flex: 1 1 auto;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
min-height: 1.2rem;
|
||||
}
|
||||
|
||||
.custom-skill-controls-slot .custom-skill-edit-controls {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
gap: 2px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.special-training-box .custom-skill-edit-controls {
|
||||
position: static;
|
||||
flex: 0 0 auto;
|
||||
align-items: center;
|
||||
gap: 2px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
&:not(.custom-skills-edit-mode) .custom-skill-edit-controls {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&.custom-skills-edit-mode .custom-skill-play-controls {
|
||||
visibility: hidden;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.typed-skills-columns {
|
||||
align-items: start;
|
||||
}
|
||||
|
||||
.typed-skills-column {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 3px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.skill-and-training-controls {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex: 0 0 auto;
|
||||
gap: 2px;
|
||||
}
|
||||
|
||||
.scenario-information-grid {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
||||
column-gap: 12px;
|
||||
row-gap: 8px;
|
||||
align-items: start;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.scenario-information-left,
|
||||
.scenario-information-right {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.scenario-information-left.bio-grid-2col {
|
||||
grid-template-columns: minmax(4rem, max-content) minmax(0, 1fr);
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.scenario-information-corruption {
|
||||
display: block;
|
||||
flex: none;
|
||||
max-width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.scenario-information-yellow-sign-row {
|
||||
display: grid;
|
||||
grid-template-columns: max-content max-content max-content;
|
||||
column-gap: 8px;
|
||||
align-items: center;
|
||||
flex: none;
|
||||
width: fit-content;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.scenario-information-corruption-row {
|
||||
display: grid;
|
||||
grid-template-columns: max-content max-content;
|
||||
column-gap: 8px;
|
||||
align-items: center;
|
||||
flex: none;
|
||||
width: fit-content;
|
||||
max-width: 100%;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.scenario-information-yellow-sign-row > *,
|
||||
.scenario-information-corruption-row > * {
|
||||
flex: none;
|
||||
}
|
||||
|
||||
.scenario-information-corruption-label {
|
||||
display: inline-flex;
|
||||
align-items: baseline;
|
||||
gap: 0;
|
||||
flex: none;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.scenario-information-corruption-label > .yellow-king {
|
||||
flex: none;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.scenario-information-corruption-row input[type="number"] {
|
||||
width: 2.5rem;
|
||||
min-width: 2.5rem;
|
||||
}
|
||||
|
||||
.adaptation-grid-4col {
|
||||
display: grid;
|
||||
grid-template-columns: 50% 25px 25px 25px;
|
||||
grid-template-columns: 1fr 25px 25px 25px;
|
||||
align-content: center;
|
||||
justify-content: left;
|
||||
align-items: center;
|
||||
row-gap: 0;
|
||||
margin-bottom: 0;
|
||||
|
||||
> label {
|
||||
justify-self: start;
|
||||
}
|
||||
|
||||
> input.labeled-resource-checkbox {
|
||||
justify-self: end;
|
||||
}
|
||||
}
|
||||
|
||||
.adaptation-grid-4col .adapted-label-slot {
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
"DG.Skills.flight": "Flight",
|
||||
|
||||
"DG.Skills.AddTypedOrCustomSkill": "Afegir tipus o habilitat personalitzada",
|
||||
"DG.Skills.ToggleEditDeleteSkills": "Editar/eliminar habilitats",
|
||||
"DG.Skills.AddSkill": "Afegir habilitat",
|
||||
"DG.Skills.EditTypedOrCustomSkill": "Edit Typed or Custom Skill",
|
||||
"DG.Skills.EditSkill": "Edit Skill",
|
||||
@@ -76,6 +77,14 @@
|
||||
"DG.Navigation.Gear": "Equip",
|
||||
"DG.Navigation.CV": "C.V.",
|
||||
"DG.Navigation.Contacts": "Contactes",
|
||||
"DG.Navigation.Agent.skills": "Habilitats",
|
||||
"DG.Navigation.Agent.combat": "Combat",
|
||||
"DG.Navigation.Agent.physical": "Físic",
|
||||
"DG.Navigation.Agent.motivations": "Mental",
|
||||
"DG.Navigation.Agent.gear": "Equip",
|
||||
"DG.Navigation.Agent.personal": "C.V.",
|
||||
"DG.Navigation.Agent.bio": "C.V.",
|
||||
"DG.Navigation.Agent.bonds": "Contactes",
|
||||
|
||||
"DG.About.OnlineHelp": "Documentació del sistema oberta en (EN LÍNEA)",
|
||||
"DG.About.OnlineHelpTooltip": "Inicia el navegador amb ajuda en línea de Github",
|
||||
@@ -227,11 +236,13 @@
|
||||
"DG.Sheet.BlockHeaders.Statistics": "STATISTICS",
|
||||
"DG.Sheet.BlockHeaders.PhysicalDescriptionNotes": "Descripció física/notes",
|
||||
"DG.Sheet.BlockHeaders.SkillsAndTraining": "SKILLS AND TRAINING",
|
||||
"DG.Sheet.BlockHeaders.SpecialTraining": "SPECIAL TRAINING",
|
||||
"DG.Sheet.BlockHeaders.Injuries": "INJURIES",
|
||||
"DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "BREAKING POINT AND ADAPTATIONS",
|
||||
"DG.Sheet.BlockHeaders.Adaptations": "Adaptations",
|
||||
"DG.Sheet.BlockHeaders.MotivationsAndDisorders": "MOTIVATIONS AND DISORDERS",
|
||||
"DG.Sheet.BlockHeaders.PersonalInfoCV": "PERSONAL INFORMATION / CV",
|
||||
"DG.Sheet.BlockHeaders.ScenarioInformation": "SCENARIO INFORMATION",
|
||||
"DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "BONDS / RELATIONSHIPS / CONTACTS",
|
||||
|
||||
"DG.UnnaturalSheet.HideUntrainedSkillsLabel": "Amagar habilitats no entrenades",
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
"DG.TypeSkills.Subskills.Painting": "绘画",
|
||||
|
||||
"DG.Skills.AddTypedOrCustomSkill": "Add Typed/Custom Skill",
|
||||
"DG.Skills.ToggleEditDeleteSkills": "编辑/删除技能",
|
||||
"DG.Skills.AddSkill": "Add Skill",
|
||||
"DG.Skills.Apply": "Apply",
|
||||
"DG.Skills.ApplySkillImprovements": "添加类型/自定义技能",
|
||||
@@ -92,6 +93,14 @@
|
||||
"DG.Navigation.Gear": "装备",
|
||||
"DG.Navigation.CV": "个人情况",
|
||||
"DG.Navigation.Contacts": "重要关系",
|
||||
"DG.Navigation.Agent.skills": "技能",
|
||||
"DG.Navigation.Agent.combat": "战斗",
|
||||
"DG.Navigation.Agent.physical": "健康",
|
||||
"DG.Navigation.Agent.motivations": "精神",
|
||||
"DG.Navigation.Agent.gear": "装备",
|
||||
"DG.Navigation.Agent.personal": "个人情况",
|
||||
"DG.Navigation.Agent.bio": "个人情况",
|
||||
"DG.Navigation.Agent.bonds": "重要关系",
|
||||
|
||||
"DG.About.OnlineHelp": "System Documentation on (ONLINE)",
|
||||
"DG.About.OnlineHelpTooltip": "Launch browser with online GitHub help.",
|
||||
@@ -241,11 +250,13 @@
|
||||
"DG.Sheet.BlockHeaders.Statistics": "统计",
|
||||
"DG.Sheet.BlockHeaders.PhysicalDescriptionNotes": "外貌描述 / 笔记",
|
||||
"DG.Sheet.BlockHeaders.SkillsAndTraining": "技能与特训",
|
||||
"DG.Sheet.BlockHeaders.SpecialTraining": "特殊训练",
|
||||
"DG.Sheet.BlockHeaders.Injuries": "伤害",
|
||||
"DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "崩溃点和适应",
|
||||
"DG.Sheet.BlockHeaders.Adaptations": "适应",
|
||||
"DG.Sheet.BlockHeaders.MotivationsAndDisorders": "动机和精神疾病",
|
||||
"DG.Sheet.BlockHeaders.PersonalInfoCV": "个人信息 / 简历",
|
||||
"DG.Sheet.BlockHeaders.ScenarioInformation": "场景信息",
|
||||
"DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "重要关系 / 关系 / 联系人",
|
||||
|
||||
"DG.UnnaturalSheet.HideUntrainedSkillsLabel": "隐藏未训练技能",
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
"DG.Skills.flight": "Flight",
|
||||
|
||||
"DG.Skills.AddTypedOrCustomSkill": "Eigene Fertigkeit hinzufügen",
|
||||
"DG.Skills.ToggleEditDeleteSkills": "Fertigkeiten bearbeiten/löschen",
|
||||
"DG.Skills.AddSkill": "Fertigkeit hinzufügen",
|
||||
"DG.Skills.Apply": "Anwenden",
|
||||
"DG.Skills.ApplySkillImprovements": "Verbesserungen der Fertigkeiten anwenden",
|
||||
@@ -91,6 +92,14 @@
|
||||
"DG.Navigation.Gear": "Ausrüstung",
|
||||
"DG.Navigation.CV": "Persönlich",
|
||||
"DG.Navigation.Contacts": "Bindungen",
|
||||
"DG.Navigation.Agent.skills": "Fertigkeiten",
|
||||
"DG.Navigation.Agent.combat": "Kampf",
|
||||
"DG.Navigation.Agent.physical": "Statistiken",
|
||||
"DG.Navigation.Agent.motivations": "Psychologie",
|
||||
"DG.Navigation.Agent.gear": "Ausrüstung",
|
||||
"DG.Navigation.Agent.personal": "Persönlich",
|
||||
"DG.Navigation.Agent.bio": "Persönlich",
|
||||
"DG.Navigation.Agent.bonds": "Bindungen",
|
||||
|
||||
"DG.About.OnlineHelp": "Systemdokumentation auf (ONLINE)",
|
||||
"DG.About.OnlineHelpTooltip": "Starten des Browsers mit der Online-Hilfe von GitHub.",
|
||||
@@ -244,11 +253,13 @@
|
||||
"DG.Sheet.BlockHeaders.Statistics": "STATISTIK",
|
||||
"DG.Sheet.BlockHeaders.PhysicalDescriptionNotes": "PHYSISCHE BESCHREIBUNG / ANMERKUNGEN",
|
||||
"DG.Sheet.BlockHeaders.SkillsAndTraining": "FERTIGKEITEN UND TRAINING",
|
||||
"DG.Sheet.BlockHeaders.SpecialTraining": "SPEZIALTRAINING",
|
||||
"DG.Sheet.BlockHeaders.Injuries": "VERLETZUNGEN",
|
||||
"DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "BELASTUNGSSCHWELLE UND GEWÖHNUNGEN",
|
||||
"DG.Sheet.BlockHeaders.Adaptations": "Gewöhnungen",
|
||||
"DG.Sheet.BlockHeaders.MotivationsAndDisorders": "MOTIVATIONEN UND STÖRUNGEN",
|
||||
"DG.Sheet.BlockHeaders.PersonalInfoCV": "PERSÖNLICHE INFORMATIONEN / LEBENSLAUF",
|
||||
"DG.Sheet.BlockHeaders.ScenarioInformation": "SZENARIENINFORMATIONEN",
|
||||
"DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "BINDUNGEN / BEZIEHUNGEN / KONTAKTE",
|
||||
|
||||
"DG.UnnaturalSheet.HideUntrainedSkillsLabel": "Untrainierte ausblenden",
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
"DG.Skills.Tooltip.unnatural": "Recognize, research, or recall truths about entities and forces beyond human understanding.",
|
||||
|
||||
"DG.Skills.AddTypedOrCustomSkill": "Add Typed/Custom Skill",
|
||||
"DG.Skills.ToggleEditDeleteSkills": "Edit/Delete Skills",
|
||||
"DG.Skills.AddSkill": "Add Skill",
|
||||
"DG.Skills.Apply": "Apply",
|
||||
"DG.Skills.ApplySkillImprovements.Title": "Apply Skill Improvements",
|
||||
@@ -142,9 +143,11 @@
|
||||
"DG.Attributes.Tooltip.cha": "See Page 19 of the Agent's Handbook - Charisma",
|
||||
|
||||
"DG.Navigation.Agent.skills": "Skills",
|
||||
"DG.Navigation.Agent.combat": "Combat",
|
||||
"DG.Navigation.Agent.physical": "Statistics",
|
||||
"DG.Navigation.Agent.motivations": "Psychological",
|
||||
"DG.Navigation.Agent.gear": "Equipment",
|
||||
"DG.Navigation.Agent.personal": "Personal",
|
||||
"DG.Navigation.Agent.bio": "Bio",
|
||||
"DG.Navigation.Agent.bonds": "Bonds",
|
||||
"DG.Navigation.NPC.skills": "Skills & Training",
|
||||
@@ -310,11 +313,13 @@
|
||||
"DG.Sheet.BlockHeaders.Statistics": "STATISTICS",
|
||||
"DG.Sheet.BlockHeaders.PhysicalDescriptionNotes": "PHYSICAL DESCRIPTION / NOTES",
|
||||
"DG.Sheet.BlockHeaders.SkillsAndTraining": "SKILLS AND TRAINING",
|
||||
"DG.Sheet.BlockHeaders.SpecialTraining": "SPECIAL TRAINING",
|
||||
"DG.Sheet.BlockHeaders.Injuries": "INJURIES",
|
||||
"DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "BREAKING POINT AND ADAPTATIONS",
|
||||
"DG.Sheet.BlockHeaders.Adaptations": "Adaptations",
|
||||
"DG.Sheet.BlockHeaders.MotivationsAndDisorders": "MOTIVATIONS AND DISORDERS",
|
||||
"DG.Sheet.BlockHeaders.PersonalInfoCV": "PERSONAL INFORMATION / CV",
|
||||
"DG.Sheet.BlockHeaders.ScenarioInformation": "SCENARIO INFORMATION",
|
||||
"DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "BONDS / RELATIONSHIPS / CONTACTS",
|
||||
|
||||
"DG.AgentSheet.ProfessionPlaceholder": "PROFESSION (RANK IF APPLICABLE)",
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
"DG.Skills.Tooltip.unnatural": "Conocimiento acerca de los secretos más fundamentales y desgarradores del universo. Úsala para recordar, reconocer o investigar hechos sobre todo aquello que los humanos consideran antinatural. Esto va mucho más allá del ocultismo, porque la habilidad Antinatural representa cosas que existen de verdad. Utilízala para poder filtrar información de los confines más oscuros de los mitos y el folclore y reconocer qué partes son ciertas. El valor de COR de tu Agente nunca puede ser superior a 99 menos su valor de habilidad Antinatural.",
|
||||
|
||||
"DG.Skills.AddTypedOrCustomSkill": "Añadir tipo o habilidad personalizada",
|
||||
"DG.Skills.ToggleEditDeleteSkills": "Editar/eliminar habilidades",
|
||||
"DG.Skills.AddSkill": "Añadir habilidad",
|
||||
"DG.Skills.Apply": "Aplicar",
|
||||
"DG.Skills.ApplySkillImprovements.Title": "Aplicar mejoras de habilidad",
|
||||
@@ -142,9 +143,11 @@
|
||||
"DG.Attributes.Tooltip.cha": "Encanto, liderazgo y atractivo personal. Podría indicar atractivo físico.",
|
||||
|
||||
"DG.Navigation.Agent.skills": "Habilidades",
|
||||
"DG.Navigation.Agent.combat": "Combate",
|
||||
"DG.Navigation.Agent.physical": "Características",
|
||||
"DG.Navigation.Agent.motivations": "Salud mental",
|
||||
"DG.Navigation.Agent.gear": "Equipo",
|
||||
"DG.Navigation.Agent.personal": "Personal",
|
||||
"DG.Navigation.Agent.bio": "Trasfondo",
|
||||
"DG.Navigation.Agent.bonds": "Lazos",
|
||||
"DG.Navigation.NPC.skills": "Habilidades y entrenamiento",
|
||||
@@ -308,11 +311,13 @@
|
||||
"DG.Sheet.BlockHeaders.Statistics": "CARACTERÍSTICAS",
|
||||
"DG.Sheet.BlockHeaders.PhysicalDescriptionNotes": "DESCRIPCIÓN FÍSICA Y NOTAS",
|
||||
"DG.Sheet.BlockHeaders.SkillsAndTraining": "HABILIDADES Y ENTRENAMIENTO",
|
||||
"DG.Sheet.BlockHeaders.SpecialTraining": "ENTRENAMIENTO ESPECIAL",
|
||||
"DG.Sheet.BlockHeaders.Injuries": "HERIDAS",
|
||||
"DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "PUNTO DE RUPTURA Y ADAPTACIONES",
|
||||
"DG.Sheet.BlockHeaders.Adaptations": "Adaptaciones",
|
||||
"DG.Sheet.BlockHeaders.MotivationsAndDisorders": "MOTIVACIONES Y TRANSTORNOS MENTALES",
|
||||
"DG.Sheet.BlockHeaders.PersonalInfoCV": "INFORMACIÓN PERSONAL Y CURRÍCULO",
|
||||
"DG.Sheet.BlockHeaders.ScenarioInformation": "INFORMACIÓN DEL ESCENARIO",
|
||||
"DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "LAZOS, RELACIONES Y CONTACTOS",
|
||||
|
||||
"DG.AgentSheet.ProfessionPlaceholder": "Profesión (rango, si es necesario)",
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
"DG.Skills.Tooltip.unnatural": "Connaissance des secrets fondamentaux de l’univers, propres à provoquer la folie.",
|
||||
|
||||
"DG.Skills.AddTypedOrCustomSkill": "Ajouter une compétence personnalisée",
|
||||
"DG.Skills.ToggleEditDeleteSkills": "Modifier/supprimer les compétences",
|
||||
"DG.Skills.AddSkill": "Ajout Compétence",
|
||||
"DG.Skills.Apply": "Appliquer",
|
||||
"DG.Skills.ApplySkillImprovements": "Appliquer l'augmentation d'EXP",
|
||||
@@ -142,9 +143,11 @@
|
||||
"DG.Attributes.Tooltip.cha": "Voir Page 19 du Manuel de l'Agent - Charisme",
|
||||
|
||||
"DG.Navigation.Agent.skills": "Compétences",
|
||||
"DG.Navigation.Agent.combat": "Combat",
|
||||
"DG.Navigation.Agent.physical": "Statistiques",
|
||||
"DG.Navigation.Agent.motivations": "Psychologie",
|
||||
"DG.Navigation.Agent.gear": "Équipement",
|
||||
"DG.Navigation.Agent.personal": "Personnel",
|
||||
"DG.Navigation.Agent.bio": "Biographie",
|
||||
"DG.Navigation.Agent.bonds": "Attaches",
|
||||
"DG.Navigation.NPC.skills": "Compétences & Formation",
|
||||
@@ -308,11 +311,13 @@
|
||||
"DG.Sheet.BlockHeaders.Statistics": "STATISTIQUES",
|
||||
"DG.Sheet.BlockHeaders.PhysicalDescriptionNotes": "DESCRIPTION PHYSIQUE / NOTES",
|
||||
"DG.Sheet.BlockHeaders.SkillsAndTraining": "COMPÉTENCES ET FORMATION",
|
||||
"DG.Sheet.BlockHeaders.SpecialTraining": "FORMATION SPÉCIALE",
|
||||
"DG.Sheet.BlockHeaders.Injuries": "BLESSURES ET MALADIES",
|
||||
"DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "SEUIL DE RUPTURE ET ADAPTATIONS",
|
||||
"DG.Sheet.BlockHeaders.Adaptations": "Adaptations",
|
||||
"DG.Sheet.BlockHeaders.MotivationsAndDisorders": "MOTIVATIONS ET TROUBLES PSYCHIQUES",
|
||||
"DG.Sheet.BlockHeaders.PersonalInfoCV": "DÉTAILS PERSONNELS ET NOTES",
|
||||
"DG.Sheet.BlockHeaders.ScenarioInformation": "INFORMATIONS DE SCÉNARIO",
|
||||
"DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "ATTACHES, RELATIONS ET CONTACTS",
|
||||
|
||||
"DG.AgentSheet.ProfessionPlaceholder": "PROFESSION (RANG LE CAS ÉCHÉANT)",
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
"DG.Skills.flight": "飛行",
|
||||
|
||||
"DG.Skills.AddTypedOrCustomSkill": "類型/カスタム技能を追加",
|
||||
"DG.Skills.ToggleEditDeleteSkills": "技能の編集/削除",
|
||||
"DG.Skills.AddSkill": "技能を追加",
|
||||
"DG.Skills.Apply": "適用",
|
||||
"DG.Skills.ApplySkillImprovements": "技能上達を適用",
|
||||
@@ -92,6 +93,14 @@
|
||||
"DG.Navigation.Gear": "装備",
|
||||
"DG.Navigation.CV": "経歴",
|
||||
"DG.Navigation.Contacts": "絆",
|
||||
"DG.Navigation.Agent.skills": "技能",
|
||||
"DG.Navigation.Agent.combat": "戦闘",
|
||||
"DG.Navigation.Agent.physical": "能力値",
|
||||
"DG.Navigation.Agent.motivations": "精神",
|
||||
"DG.Navigation.Agent.gear": "装備",
|
||||
"DG.Navigation.Agent.personal": "経歴",
|
||||
"DG.Navigation.Agent.bio": "経歴",
|
||||
"DG.Navigation.Agent.bonds": "絆",
|
||||
|
||||
"DG.About.OnlineHelp": "システムドキュメンテーション(オンライン)",
|
||||
"DG.About.OnlineHelpTooltip": "オンラインGitHubヘルプをブラウザで開く。",
|
||||
@@ -243,11 +252,13 @@
|
||||
"DG.Sheet.BlockHeaders.Statistics": "能力値",
|
||||
"DG.Sheet.BlockHeaders.PhysicalDescriptionNotes": "身体的特徴とメモ",
|
||||
"DG.Sheet.BlockHeaders.SkillsAndTraining": "技能と訓練",
|
||||
"DG.Sheet.BlockHeaders.SpecialTraining": "特殊訓練",
|
||||
"DG.Sheet.BlockHeaders.Injuries": "負傷",
|
||||
"DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "限界点と慣れ",
|
||||
"DG.Sheet.BlockHeaders.Adaptations": "慣れ",
|
||||
"DG.Sheet.BlockHeaders.MotivationsAndDisorders": "モチベーションと精神障害",
|
||||
"DG.Sheet.BlockHeaders.PersonalInfoCV": "個人情報 / 経歴",
|
||||
"DG.Sheet.BlockHeaders.ScenarioInformation": "シナリオ情報",
|
||||
"DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "絆 / 関係 / 協力者",
|
||||
|
||||
"DG.UnnaturalSheet.HideUntrainedSkillsLabel": "初期値の技能を非表示",
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
"DG.Skills.Tooltip.unnatural": "Rozpoznawanie, badanie lub przypominanie sobie prawd o bytach i siłach wykraczających poza ludzkie zrozumienie.",
|
||||
|
||||
"DG.Skills.AddTypedOrCustomSkill": "Dodaj Typową/Niestandardową Umiejętność",
|
||||
"DG.Skills.ToggleEditDeleteSkills": "Edytuj/usuń umiejętności",
|
||||
"DG.Skills.AddSkill": "Dodaj Umiejętność",
|
||||
"DG.Skills.Apply": "Zastosuj",
|
||||
"DG.Skills.ApplySkillImprovements.Title": "Zastosuj ulepszenia umiejętności",
|
||||
@@ -142,9 +143,11 @@
|
||||
"DG.Attributes.Tooltip.cha": "Zobacz stronę 19 Podręcznika Agenta – Charyzma",
|
||||
|
||||
"DG.Navigation.Agent.skills": "Umiejętności",
|
||||
"DG.Navigation.Agent.combat": "Walka",
|
||||
"DG.Navigation.Agent.physical": "Statystyki",
|
||||
"DG.Navigation.Agent.motivations": "Psychika",
|
||||
"DG.Navigation.Agent.gear": "Wyposażenie",
|
||||
"DG.Navigation.Agent.personal": "Osobiste",
|
||||
"DG.Navigation.Agent.bio": "Osobiste",
|
||||
"DG.Navigation.Agent.bonds": "Więzi",
|
||||
"DG.Navigation.NPC.skills": "Umiejętności i szkolenia",
|
||||
@@ -306,11 +309,13 @@
|
||||
"DG.Sheet.BlockHeaders.Statistics": "STATYSTYKI",
|
||||
"DG.Sheet.BlockHeaders.PhysicalDescriptionNotes": "OPIS FIZYCZNY / UWAGI",
|
||||
"DG.Sheet.BlockHeaders.SkillsAndTraining": "UMIEJĘTNOŚCI I SZKOLENIE",
|
||||
"DG.Sheet.BlockHeaders.SpecialTraining": "SZKOLENIE SPECJALNE",
|
||||
"DG.Sheet.BlockHeaders.Injuries": "URAZY",
|
||||
"DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "PUNKT ZŁAMANIA I ADAPTACJE",
|
||||
"DG.Sheet.BlockHeaders.Adaptations": "Adaptacje",
|
||||
"DG.Sheet.BlockHeaders.MotivationsAndDisorders": "MOTYWACJE I ZABURZENIA",
|
||||
"DG.Sheet.BlockHeaders.PersonalInfoCV": "DANE OSOBOWE / CV",
|
||||
"DG.Sheet.BlockHeaders.ScenarioInformation": "INFORMACJE SCENARIUSZA",
|
||||
"DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "WIĘZI / RELACJE / KONTAKTY",
|
||||
|
||||
"DG.AgentSheet.ProfessionPlaceholder": "ZAWÓD (RANGA, JEŚLI DOTYCZY)",
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
"DG.Skills.Tooltip.unnatural": "Reconhecer, pesquisar ou recordar verdades sobre entidades e forças além da compreensão humana.",
|
||||
|
||||
"DG.Skills.AddTypedOrCustomSkill": "Adicionar Habilidade Personalizada",
|
||||
"DG.Skills.ToggleEditDeleteSkills": "Editar/excluir habilidades",
|
||||
"DG.Skills.AddSkill": "Adicionar Habilidade",
|
||||
"DG.Skills.Apply": "Aplicar",
|
||||
"DG.Skills.ApplySkillImprovements.Title": "Aplicar Melhorias",
|
||||
@@ -142,9 +143,11 @@
|
||||
"DG.Attributes.Tooltip.cha": "Veja a página 19 do Manual do Agente — Carisma.",
|
||||
|
||||
"DG.Navigation.Agent.skills": "Habilidades",
|
||||
"DG.Navigation.Agent.combat": "Combate",
|
||||
"DG.Navigation.Agent.physical": "Estatísticas",
|
||||
"DG.Navigation.Agent.motivations": "Mental",
|
||||
"DG.Navigation.Agent.gear": "Equipamento",
|
||||
"DG.Navigation.Agent.personal": "Pessoal",
|
||||
"DG.Navigation.Agent.bio": "Pessoal",
|
||||
"DG.Navigation.Agent.bonds": "Laços",
|
||||
"DG.Navigation.NPC.skills": "Habilidades & Treinamento",
|
||||
@@ -308,11 +311,13 @@
|
||||
"DG.Sheet.BlockHeaders.Statistics": "ESTATÍSTICAS",
|
||||
"DG.Sheet.BlockHeaders.PhysicalDescriptionNotes": "Descrição Física/Notas",
|
||||
"DG.Sheet.BlockHeaders.SkillsAndTraining": "HABILIDADES E TREINAMENTO",
|
||||
"DG.Sheet.BlockHeaders.SpecialTraining": "TREINAMENTO ESPECIAL",
|
||||
"DG.Sheet.BlockHeaders.Injuries": "FERIMENTOS",
|
||||
"DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "PONTO DE RUPTURA E ADAPTAÇÕES",
|
||||
"DG.Sheet.BlockHeaders.Adaptations": "Adaptações",
|
||||
"DG.Sheet.BlockHeaders.MotivationsAndDisorders": "MOTIVAÇÕES E DISTÚRBIOS",
|
||||
"DG.Sheet.BlockHeaders.PersonalInfoCV": "INFORMAÇÕES PESSOAIS / C.V.",
|
||||
"DG.Sheet.BlockHeaders.ScenarioInformation": "INFORMAÇÕES DO CENÁRIO",
|
||||
"DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "LAÇOS / RELACIONAMENTOS / CONTATOS",
|
||||
|
||||
"DG.AgentSheet.ProfessionPlaceholder": "PROFISSÂO",
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
"DG.Skills.flight": "Flyg",
|
||||
|
||||
"DG.Skills.AddTypedOrCustomSkill": "Lägg till anpassad färdighet",
|
||||
"DG.Skills.ToggleEditDeleteSkills": "Redigera/ta bort färdigheter",
|
||||
"DG.Skills.AddSkill": "Lägg till färdighet",
|
||||
"DG.Skills.Apply": "Tillämpa",
|
||||
"DG.Skills.ApplySkillImprovements": "Förbättra ibockade färdigheter ",
|
||||
@@ -92,6 +93,14 @@
|
||||
"DG.Navigation.Gear": "Utrustning",
|
||||
"DG.Navigation.CV": "Personligt",
|
||||
"DG.Navigation.Contacts": "Kontakter",
|
||||
"DG.Navigation.Agent.skills": "Färdigheter",
|
||||
"DG.Navigation.Agent.combat": "Strid",
|
||||
"DG.Navigation.Agent.physical": "Statistik",
|
||||
"DG.Navigation.Agent.motivations": "Psykologi",
|
||||
"DG.Navigation.Agent.gear": "Utrustning",
|
||||
"DG.Navigation.Agent.personal": "Personligt",
|
||||
"DG.Navigation.Agent.bio": "Personligt",
|
||||
"DG.Navigation.Agent.bonds": "Kontakter",
|
||||
|
||||
"DG.About.OnlineHelp": "Systemdokumentation på (ONLINE)",
|
||||
"DG.About.OnlineHelpTooltip": "Starta webbläsare med online GitHub-hjälp.",
|
||||
@@ -243,11 +252,13 @@
|
||||
"DG.Sheet.BlockHeaders.Statistics": "STATISTIK",
|
||||
"DG.Sheet.BlockHeaders.PhysicalDescriptionNotes": "ANTECKNINGAR",
|
||||
"DG.Sheet.BlockHeaders.SkillsAndTraining": "FÄRDIGHETER OCH TRÄNING",
|
||||
"DG.Sheet.BlockHeaders.SpecialTraining": "SPECIALTRÄNING",
|
||||
"DG.Sheet.BlockHeaders.Injuries": "SKADOR",
|
||||
"DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "BRYTPUNKT OCH ANPASSNINGAR",
|
||||
"DG.Sheet.BlockHeaders.Adaptations": "Anpassningar",
|
||||
"DG.Sheet.BlockHeaders.MotivationsAndDisorders": "MOTIVATIONER OCH STÖRNINGAR",
|
||||
"DG.Sheet.BlockHeaders.PersonalInfoCV": "PERSONLIG INFORMATION",
|
||||
"DG.Sheet.BlockHeaders.ScenarioInformation": "SCENARIOINFORMATION",
|
||||
"DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "KAMRATER OCH RELATIONER",
|
||||
|
||||
"DG.UnnaturalSheet.HideUntrainedSkillsLabel": "Dölj otränade färdigheter",
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
"DG.Skills.Tooltip.unnatural": "Розпізнавати, досліджувати або пригадувати істини про сили, що виходять за межі людського розуміння.",
|
||||
|
||||
"DG.Skills.AddTypedOrCustomSkill": "Додати типізовану/власну навичку",
|
||||
"DG.Skills.ToggleEditDeleteSkills": "Редагувати/видалити навички",
|
||||
"DG.Skills.AddSkill": "Додати навичку",
|
||||
"DG.Skills.Apply": "Застосувати",
|
||||
"DG.Skills.ApplySkillImprovements.Title": "Застосувати покращення навичок",
|
||||
@@ -142,9 +143,11 @@
|
||||
"DG.Attributes.Tooltip.cha": "Див. стор. 19 в Agent's Handbook — Charisma (Харизма)",
|
||||
|
||||
"DG.Navigation.Agent.skills": "Навички",
|
||||
"DG.Navigation.Agent.combat": "Бій",
|
||||
"DG.Navigation.Agent.physical": "Статистика",
|
||||
"DG.Navigation.Agent.motivations": "Психологія",
|
||||
"DG.Navigation.Agent.gear": "Спорядження",
|
||||
"DG.Navigation.Agent.personal": "Особисте",
|
||||
"DG.Navigation.Agent.bio": "Особисте",
|
||||
"DG.Navigation.Agent.bonds": "Зв’язки",
|
||||
"DG.Navigation.NPC.skills": "Навички та підготовка",
|
||||
@@ -308,11 +311,13 @@
|
||||
"DG.Sheet.BlockHeaders.Statistics": "СТАТИСТИКА",
|
||||
"DG.Sheet.BlockHeaders.PhysicalDescriptionNotes": "ФІЗИЧНИЙ ОПИС / НОТАТКИ",
|
||||
"DG.Sheet.BlockHeaders.SkillsAndTraining": "НАВИЧКИ ТА ПІДГОТОВКА",
|
||||
"DG.Sheet.BlockHeaders.SpecialTraining": "СПЕЦІАЛЬНА ПІДГОТОВКА",
|
||||
"DG.Sheet.BlockHeaders.Injuries": "ТРАВМИ",
|
||||
"DG.Sheet.BlockHeaders.BreakingPointAndAdaptations": "ТОЧКА ЗЛАМУ ТА АДАПТАЦІЇ",
|
||||
"DG.Sheet.BlockHeaders.Adaptations": "Адаптації",
|
||||
"DG.Sheet.BlockHeaders.MotivationsAndDisorders": "МОТИВАЦІЇ ТА РОЗЛАДИ",
|
||||
"DG.Sheet.BlockHeaders.PersonalInfoCV": "ОСОБИСТІ ДАНІ / РЕЗЮМЕ",
|
||||
"DG.Sheet.BlockHeaders.ScenarioInformation": "ІНФОРМАЦІЯ СЦЕНАРІЮ",
|
||||
"DG.Sheet.BlockHeaders.BondsRelationshipsContacts": "ЗВ’ЯЗКИ / СТОСУНКИ / КОНТАКТИ",
|
||||
|
||||
"DG.AgentSheet.ProfessionPlaceholder": "ПРОФЕСІЯ (ЗВАННЯ, ЯКЩО Є)",
|
||||
|
||||
@@ -5,9 +5,35 @@ import ActorEditStatForm from "./edit-stats.js";
|
||||
export default class DGAgentSheetV2 extends DGAgentSheet {
|
||||
static DEFAULT_OPTIONS = /** @type {const} */ ({
|
||||
classes: ["actor-sheet-v2"],
|
||||
position: { width: 950, height: 700 },
|
||||
position: { width: 958, height: 700 },
|
||||
actions: {
|
||||
openStatsEdit: this._openStatsEdit,
|
||||
toggleCustomSkillsEdit: function toggleCustomSkillsEdit(event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
this._customSkillsEditMode = !this._customSkillsEditMode;
|
||||
this._syncCustomSkillsEditModeUi();
|
||||
return this.render();
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
/** @type {boolean} */
|
||||
_customSkillsEditMode = false;
|
||||
|
||||
/** @override */
|
||||
static TABS = /** @type {const} */ ({
|
||||
primary: {
|
||||
initial: "skills",
|
||||
labelPrefix: "DG.Navigation.Agent",
|
||||
tabs: [
|
||||
{ id: "skills" },
|
||||
{ id: "combat" },
|
||||
{ id: "motivations" },
|
||||
{ id: "gear" },
|
||||
{ id: "personal" },
|
||||
{ id: "about", icon: "fas fa-question-circle", label: "" },
|
||||
],
|
||||
},
|
||||
});
|
||||
|
||||
@@ -21,19 +47,233 @@ export default class DGAgentSheetV2 extends DGAgentSheet {
|
||||
rightBar: {
|
||||
template: `${this.TEMPLATE_PATH}/parts/right-bar.html`,
|
||||
templates: [
|
||||
`${this.TEMPLATE_PATH}/parts/skills-tab.html`,
|
||||
`${this.TEMPLATE_PATH}/parts/physical-tab-v2.html`,
|
||||
`${this.TEMPLATE_PATH}/parts/skills-tab-v2.html`,
|
||||
`${this.TEMPLATE_PATH}/parts/combat-tab-v2.html`,
|
||||
`${this.TEMPLATE_PATH}/parts/motivations-tab-v2.html`,
|
||||
`${this.TEMPLATE_PATH}/parts/gear-tab.html`,
|
||||
`${this.TEMPLATE_PATH}/parts/bio-tab-v2.html`,
|
||||
`${this.TEMPLATE_PATH}/parts/bonds-tab.html`,
|
||||
`${this.TEMPLATE_PATH}/parts/gear-tab-v2.html`,
|
||||
`${this.TEMPLATE_PATH}/parts/personal-tab-v2.html`,
|
||||
`${this.TEMPLATE_PATH}/parts/about-tab.html`,
|
||||
`${this.TEMPLATE_PATH}/partials/custom-skills-partial.html`,
|
||||
`${this.TEMPLATE_PATH}/partials/custom-skills-partial-v2.html`,
|
||||
`${this.TEMPLATE_PATH}/partials/bonds-section-partial.html`,
|
||||
`${this.TEMPLATE_PATH}/partials/weapons-section-partial.html`,
|
||||
`${this.TEMPLATE_PATH}/partials/armor-section-partial.html`,
|
||||
`${this.TEMPLATE_PATH}/partials/injuries-section-partial.html`,
|
||||
`${this.TEMPLATE_PATH}/partials/other-gear-section-partial.html`,
|
||||
`${this.TEMPLATE_PATH}/partials/notes-partial.html`,
|
||||
],
|
||||
},
|
||||
});
|
||||
|
||||
/** @override */
|
||||
_configureRenderOptions(options) {
|
||||
super._configureRenderOptions(options);
|
||||
|
||||
if (!this.actor.limited) return;
|
||||
|
||||
options.parts = ["leftBar", "tabs", "rightBar"];
|
||||
}
|
||||
|
||||
/** @override */
|
||||
_prepareTabs(group) {
|
||||
const tabs = super._prepareTabs(group);
|
||||
|
||||
if (!this.actor.limited || this.actor.type !== "agent") return tabs;
|
||||
|
||||
return {
|
||||
personal: { ...tabs.personal, active: true, cssClass: "active" },
|
||||
};
|
||||
}
|
||||
|
||||
/** @override */
|
||||
async _prepareContext(options) {
|
||||
const context = await super._prepareContext(options);
|
||||
|
||||
if (this.actor.type !== "agent") return context;
|
||||
|
||||
context.typedSkillColumns = this._prepareTypedSkillColumns();
|
||||
context.customSkillsEditMode = this._customSkillsEditMode;
|
||||
|
||||
return context;
|
||||
}
|
||||
|
||||
/** @override */
|
||||
async _onRender(context, options) {
|
||||
await super._onRender(context, options);
|
||||
this._syncCustomSkillsEditModeUi();
|
||||
}
|
||||
|
||||
/** @returns {void} */
|
||||
_syncCustomSkillsEditModeUi() {
|
||||
this.element?.classList.toggle(
|
||||
"custom-skills-edit-mode",
|
||||
Boolean(this._customSkillsEditMode),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Packs skill groups into columns without splitting a group across columns.
|
||||
* Respects the world "Sort Skills By Column" setting (same as core skills).
|
||||
*
|
||||
* @param {object[]} groups - Skill groups with skills and rowCount (sorted A–Z).
|
||||
* @param {number} numCols - Number of columns.
|
||||
* @returns {object[][]} Column arrays of render blocks.
|
||||
*/
|
||||
_packSkillGroupsIntoColumns(groups, numCols) {
|
||||
const sortByColumn = game.settings.get("deltagreen", "sortSkills");
|
||||
if (sortByColumn) {
|
||||
return this._packSkillGroupsByColumn(groups, numCols);
|
||||
}
|
||||
return this._packSkillGroupsByRow(groups, numCols);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} column
|
||||
* @param {object} group
|
||||
* @returns {void}
|
||||
*/
|
||||
_appendSkillGroupToColumn(column, group) {
|
||||
column.blocks.push({
|
||||
type: "groupHeader",
|
||||
group: group.group,
|
||||
label: group.label,
|
||||
...(group.isSpecialTraining ? { isSpecialTraining: true } : {}),
|
||||
});
|
||||
|
||||
const skillType = group.isSpecialTraining ? "training" : "typedSkill";
|
||||
for (const skill of group.skills) {
|
||||
column.blocks.push({ ...skill, type: skillType });
|
||||
}
|
||||
|
||||
column.height += group.rowCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* Column-first packing (read down each column, then the next).
|
||||
*
|
||||
* @param {object[]} groups
|
||||
* @param {number} numCols
|
||||
* @returns {object[][]}
|
||||
*/
|
||||
_packSkillGroupsByColumn(groups, numCols) {
|
||||
const columns = Array.from({ length: numCols }, () => ({
|
||||
blocks: [],
|
||||
height: 0,
|
||||
}));
|
||||
|
||||
if (groups.length === 0) {
|
||||
return columns.map((col) => col.blocks);
|
||||
}
|
||||
|
||||
const totalHeight = groups.reduce((sum, group) => sum + group.rowCount, 0);
|
||||
const targetHeight = totalHeight / numCols;
|
||||
let colIndex = 0;
|
||||
|
||||
for (const group of groups) {
|
||||
const col = columns[colIndex];
|
||||
|
||||
if (
|
||||
colIndex < numCols - 1 &&
|
||||
col.blocks.length > 0 &&
|
||||
col.height + group.rowCount > targetHeight
|
||||
) {
|
||||
colIndex += 1;
|
||||
}
|
||||
|
||||
this._appendSkillGroupToColumn(columns[colIndex], group);
|
||||
}
|
||||
|
||||
return columns.map((col) => col.blocks);
|
||||
}
|
||||
|
||||
/**
|
||||
* Row-first packing (groups round-robin across columns, like core skill row sort).
|
||||
*
|
||||
* @param {object[]} groups
|
||||
* @param {number} numCols
|
||||
* @returns {object[][]}
|
||||
*/
|
||||
_packSkillGroupsByRow(groups, numCols) {
|
||||
const columns = Array.from({ length: numCols }, () => ({
|
||||
blocks: [],
|
||||
height: 0,
|
||||
}));
|
||||
|
||||
for (let i = 0; i < groups.length; i++) {
|
||||
this._appendSkillGroupToColumn(columns[i % numCols], groups[i]);
|
||||
}
|
||||
|
||||
return columns.map((col) => col.blocks);
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds grouped typed-skill columns for the V2 skills tab.
|
||||
*
|
||||
* @returns {object[][]}
|
||||
*/
|
||||
_prepareTypedSkillColumns() {
|
||||
const groupsMap = new Map();
|
||||
|
||||
for (const [key, skill] of Object.entries(this.actor.system.typedSkills)) {
|
||||
const groupKey = skill.group;
|
||||
if (!groupsMap.has(groupKey)) {
|
||||
groupsMap.set(groupKey, {
|
||||
group: groupKey,
|
||||
label: game.i18n.localize(`DG.TypeSkills.${groupKey}`),
|
||||
skills: [],
|
||||
rowCount: 0,
|
||||
});
|
||||
}
|
||||
|
||||
groupsMap.get(groupKey).skills.push({
|
||||
...skill,
|
||||
key,
|
||||
actorType: this.actor.type,
|
||||
});
|
||||
}
|
||||
|
||||
const groups = [...groupsMap.values()].map((group) => {
|
||||
group.skills.sort((a, b) =>
|
||||
a.label.localeCompare(b.label, game.i18n.lang),
|
||||
);
|
||||
group.rowCount = 1 + group.skills.length;
|
||||
return group;
|
||||
});
|
||||
|
||||
groups.sort((a, b) => a.label.localeCompare(b.label, game.i18n.lang));
|
||||
|
||||
const trainings = this._prepareSpecialTrainingBlocks();
|
||||
if (trainings.length > 0) {
|
||||
groups.push({
|
||||
group: "specialTraining",
|
||||
isSpecialTraining: true,
|
||||
label: game.i18n.localize("DG.Sheet.BlockHeaders.SpecialTraining"),
|
||||
skills: trainings,
|
||||
rowCount: 1 + trainings.length,
|
||||
});
|
||||
}
|
||||
|
||||
return this._packSkillGroupsIntoColumns(groups, 3);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sorted special-training blocks for the skills tab (single-column list).
|
||||
*
|
||||
* @returns {object[]}
|
||||
*/
|
||||
_prepareSpecialTrainingBlocks() {
|
||||
const trainings = this._prepareSpecialTrainings().map((training) => ({
|
||||
...training,
|
||||
sortLabel: training.name.toUpperCase(),
|
||||
actorType: this.actor.type,
|
||||
}));
|
||||
|
||||
trainings.sort((a, b) =>
|
||||
a.sortLabel.localeCompare(b.sortLabel, game.i18n.lang),
|
||||
);
|
||||
|
||||
return trainings;
|
||||
}
|
||||
|
||||
static _openStatsEdit() {
|
||||
const form = new ActorEditStatForm({
|
||||
actor: this.actor,
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
<div>
|
||||
<div class="horizontal-bar-section-divider">
|
||||
<span>{{localize 'DG.Gear.Armor'}}</span>
|
||||
</div>
|
||||
<ol class="items-list">
|
||||
<li class="item flexrow item-header">
|
||||
|
||||
<div class="item-image">
|
||||
{{#if actor.system.settings.sorting.armorSortAlphabetical }}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="armor">
|
||||
<i class="fa-solid fa-arrow-down-a-z"></i>
|
||||
</a>
|
||||
{{else}}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="armor">
|
||||
<i class="fa-solid fa-arrow-down-short-wide"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="item-name">
|
||||
<span>{{localize 'DG.Gear.Name'}} <a data-action="browsePack" data-pack-type="armor"><i class="fas fa-search"></i></a></span>
|
||||
</div>
|
||||
<span class="centered-item-property">{{localize 'DG.Gear.ArmorRating'}}</span>
|
||||
<span class="centered-item-property">{{localize 'DG.Gear.Equipped'}}</span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control action-pill"
|
||||
data-action="itemAction"
|
||||
data-action-type="create"
|
||||
title="Create item"
|
||||
data-item-type="armor"><i class="fas fa-plus"></i> {{localize 'DG.Generic.AddButtonLabel'}}</a>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
|
||||
{{#each actor.armor as |item id| }}
|
||||
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
|
||||
<div class="item-image">
|
||||
<img src="{{item.img}}" title="{{item.name}}" width="24" height="24" />
|
||||
</div>
|
||||
|
||||
<span class="item-name">{{item.name}}</span>
|
||||
|
||||
<span class="centered-item-property">{{item.system.protection}}</span>
|
||||
|
||||
<a class="centered-item-property"
|
||||
data-action="toggle"
|
||||
data-prop="system.equipped"
|
||||
data-item-id="{{item._id}}"
|
||||
title="{{localize 'DG.Tooltip.ToggleEquippedState'}}">
|
||||
{{#if item.system.equipped }}
|
||||
<i class="fas fa-check"></i>
|
||||
{{else}}
|
||||
<i class="fas fa-times"></i>
|
||||
{{/if}}
|
||||
</a>
|
||||
|
||||
<div class="item-controls">
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="edit"
|
||||
title="Edit Item">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="delete"
|
||||
title="Delete Item">
|
||||
<i class="fas fa-trash"></i>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
@@ -0,0 +1,69 @@
|
||||
<div class="horizontal-bar-section-divider">
|
||||
<span>{{localize "DG.Sheet.BlockHeaders.BondsRelationshipsContacts"}}</span>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<ol class="items-list">
|
||||
<li class="item flexrow item-header">
|
||||
|
||||
<div class="item-bond-damage">
|
||||
<a data-action="clearBondDamage"
|
||||
title="{{localizeWithFallback 'DG.Generic.ClearAll' 'Clear All'}}"><i class="fas fa-arrow-rotate-left"></i></a>
|
||||
</div>
|
||||
<div class="item-image"></div>
|
||||
<div class="item-name">{{localize 'DG.Bonds.Name'}}</div>
|
||||
<div class="item-name">{{localize 'DG.Bonds.Relationship'}}</div>
|
||||
<div class="item-name">{{localize 'DG.Bonds.Score'}}</div>
|
||||
<div class="item-controls">
|
||||
<a class="item-control action-pill"
|
||||
data-action="itemAction"
|
||||
data-action-type="create"
|
||||
data-item-type="bond"
|
||||
title="Create item">
|
||||
<i class="fas fa-plus"></i>
|
||||
{{localize 'DG.Generic.AddButtonLabel'}}
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
{{#each actor.items as |item id| }}
|
||||
{{#if_eq item.type "bond" }}
|
||||
|
||||
<li class="item flexrow" data-item-id="{{item.id}}">
|
||||
<input class="item-bond-damage"
|
||||
type="checkbox"
|
||||
data-action="toggle"
|
||||
data-prop="system.hasBeenDamagedSinceLastHomeScene"
|
||||
title="Check if bond has been damaged since last home scene."
|
||||
{{checked item.system.hasBeenDamagedSinceLastHomeScene}} />
|
||||
<div class="item-image">
|
||||
<img src="{{item.img}}" title="{{item.name}}" width="24" height="24" />
|
||||
</div>
|
||||
<span class="item-name">{{item.name}}</span>
|
||||
<span>{{item.system.relationship}}</span>
|
||||
<span>{{item.system.score}}</span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="edit"
|
||||
title="Edit Item">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="delete"
|
||||
title="Delete Item">
|
||||
<i class="fas fa-trash"></i>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
{{/if_eq}}
|
||||
{{/each}}
|
||||
</ol>
|
||||
|
||||
<div>
|
||||
<span>{{localizeWithFallback "DG.Generic.CheckDamagedBondsBoxUntilNextHomeScene" "Check a damaged Bond's box until the next Home scene ends." }}</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,166 @@
|
||||
<div class="item-controls skill-util-buttons">
|
||||
<a class="item-control typed-skill-add action-pill"
|
||||
data-action="typedSkillAction"
|
||||
data-action-type="create">
|
||||
<i class="fas fa-plus"></i>
|
||||
{{localize 'DG.Skills.AddTypedOrCustomSkill'}}
|
||||
</a>
|
||||
|
||||
<a class="item-control action-pill"
|
||||
data-action="specialTrainingAction"
|
||||
data-action-type="create">
|
||||
<i class="fas fa-plus"></i>
|
||||
{{localize 'DG.SpecialTraining.Dialog.CreateSpecialTraining'}}
|
||||
</a>
|
||||
|
||||
{{#if_eq actor.type "agent" }}
|
||||
<a class="item-control action-pill" data-action="applySkillImprovements">
|
||||
{{localize 'DG.Skills.ApplySkillImprovements.Title'}}
|
||||
<i class="fas fa-dice"></i>
|
||||
</a>
|
||||
{{/if_eq}}
|
||||
|
||||
<a class="item-control action-pill custom-skills-edit-toggle"
|
||||
data-action="toggleCustomSkillsEdit"
|
||||
data-tooltip="{{localize 'DG.Skills.ToggleEditDeleteSkills'}}">
|
||||
<i class="fas fa-edit" inert></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="typed-skills-columns grid grid-3col">
|
||||
{{#each typedSkillColumns as |column| }}
|
||||
<div class="typed-skills-column">
|
||||
{{#each column as |block| }}
|
||||
{{#if_eq block.type "groupHeader" }}
|
||||
<div class="horizontal-bar-section-divider custom-skill-group-label"
|
||||
{{#unless block.isSpecialTraining }}
|
||||
{{#unless (eq ../../skillTooltipDisplay "never") }}
|
||||
data-tooltip="{{localize (concat 'DG.TypeSkills.Tooltip.' block.group)}}"
|
||||
{{/unless }}
|
||||
{{/unless }}>
|
||||
<span>{{block.label}}</span>
|
||||
</div>
|
||||
{{/if_eq}}
|
||||
|
||||
{{#if_eq block.type "typedSkill" }}
|
||||
<div class="item flexrow flex-group-left flex-thin-border typed-skill-row">
|
||||
<div class="flexrow">
|
||||
<label class="{{if_gt block.proficiency 0 'rollable' 'not-rollable'}} skill-label"
|
||||
data-action="roll"
|
||||
data-key="{{block.key}}"
|
||||
data-rolltype="skill"
|
||||
data-roll="d100"
|
||||
data-target="{{block.proficiency}}"
|
||||
data-label="{{block.label}}"
|
||||
{{#unless (eq ../../skillTooltipDisplay "never") }}
|
||||
{{#if block.proficiency }}
|
||||
data-tooltip="{{localize 'DG.Tooltip.SkillLabel' }}"
|
||||
{{/if }}
|
||||
{{#unless block.proficiency }}
|
||||
data-tooltip="{{localize 'DG.Tooltip.CannotRollSkillLabel' }}"
|
||||
{{/unless }}
|
||||
{{/unless }}>
|
||||
{{block.label}}
|
||||
</label>
|
||||
<div class="custom-skill-controls-slot">
|
||||
<div class="custom-skill-play-controls">
|
||||
<input class="percentile-skill-input"
|
||||
type="text"
|
||||
name="system.typedSkills.{{block.key}}.proficiency"
|
||||
value="{{block.proficiency}}"
|
||||
data-dtype="Number" />
|
||||
{{#if_eq block.actorType "agent" }}
|
||||
<input class="checkbox-skill-input"
|
||||
type="checkbox"
|
||||
name="system.typedSkills.{{block.key}}.failure"
|
||||
{{checked block.failure}}
|
||||
data-dtype="Boolean"
|
||||
{{#if block.cannotBeImprovedByFailure }}
|
||||
disabled
|
||||
{{/if }} />
|
||||
{{/if_eq}}
|
||||
</div>
|
||||
<div class="item-controls skill-and-training-controls custom-skill-edit-controls">
|
||||
<a class="item-control"
|
||||
data-action="typedSkillAction"
|
||||
data-action-type="edit"
|
||||
data-typedskill="{{block.key}}"
|
||||
{{#unless (eq ../../skillTooltipDisplay "never") }}
|
||||
title="Edit Skill"
|
||||
{{/unless }}>
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<a class="item-control"
|
||||
data-action="typedSkillAction"
|
||||
data-action-type="delete"
|
||||
data-typedskill="{{block.key}}"
|
||||
{{#unless (eq ../../skillTooltipDisplay "never") }}
|
||||
title="Delete Skill"
|
||||
{{/unless }}>
|
||||
<i class="fas fa-trash"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if_eq}}
|
||||
|
||||
{{#if_eq block.type "training" }}
|
||||
<div class="item flexrow flex-group-left flex-thin-border special-training-box">
|
||||
<div class="flexrow">
|
||||
{{#if_not_eq (localize (concat 'DG.Attributes.' block.key)) (concat "DG.Attributes." block.key) }}
|
||||
<label class="{{if_gt block.targetNumber 0 'rollable' 'not-rollable'}} skill-label"
|
||||
data-action="roll"
|
||||
data-key="{{block.key}}"
|
||||
data-name="{{block.name}}"
|
||||
data-rolltype="special-training"
|
||||
{{#unless (eq ../../skillTooltipDisplay "never") }}
|
||||
data-tooltip="{{localize (concat 'DG.Attributes.Tooltip.' block.key)}}"
|
||||
{{/unless }}>
|
||||
{{block.name}} ({{localize (concat 'DG.Attributes.' block.key)}}, {{block.targetNumber}}%)
|
||||
</label>
|
||||
{{else}}
|
||||
{{#if_not_eq (localize (concat 'DG.Skills.' block.key)) (concat "DG.Skills." block.key) }}
|
||||
<label class="{{if_gt block.targetNumber 0 'rollable' 'not-rollable'}} skill-label"
|
||||
data-action="roll"
|
||||
data-key="{{block.key}}"
|
||||
data-name="{{block.name}}"
|
||||
data-rolltype="special-training"
|
||||
{{#unless (eq ../../skillTooltipDisplay "never") }}
|
||||
data-tooltip="{{localize (concat 'DG.Skills.Tooltip.' block.key)}}"
|
||||
{{/unless }}>
|
||||
{{block.name}} ({{localize (concat 'DG.Skills.' block.key)}}, {{block.targetNumber}}%)
|
||||
</label>
|
||||
{{else}}
|
||||
<label class="{{if_gt block.targetNumber 0 'rollable' 'not-rollable'}} skill-label"
|
||||
data-action="roll"
|
||||
data-key="{{block.key}}"
|
||||
data-name="{{block.name}}"
|
||||
data-rolltype="special-training">
|
||||
{{block.name}} ({{block.attribute}}, {{block.targetNumber}}%)
|
||||
</label>
|
||||
{{/if_not_eq}}
|
||||
{{/if_not_eq}}
|
||||
<div class="item-controls skill-and-training-controls custom-skill-edit-controls">
|
||||
<a class="item-control"
|
||||
data-action="specialTrainingAction"
|
||||
data-action-type="edit"
|
||||
data-id="{{block.id}}"
|
||||
{{#unless (eq ../../skillTooltipDisplay "never") }}
|
||||
title="Edit Training"
|
||||
{{/unless }}><i class="fas fa-edit"></i></a>
|
||||
<a class="item-control"
|
||||
data-action="specialTrainingAction"
|
||||
data-action-type="delete"
|
||||
{{#unless (eq ../../skillTooltipDisplay "never") }}
|
||||
title="Delete Training"
|
||||
{{/unless }}
|
||||
data-id="{{block.id}}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if_eq}}
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
@@ -0,0 +1,23 @@
|
||||
<div class="horizontal-bar-section-divider">
|
||||
<span>{{localize "DG.Sheet.BlockHeaders.Injuries"}}</span>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="first-aid-received-section resource">
|
||||
<label class="bolded-label first-aid-label"
|
||||
title="{{localize 'DG.Tooltip.FirstAidAttempted'}}">
|
||||
{{localize 'DG.Physical.FirstAidLabel'}}
|
||||
</label>
|
||||
<input class="labeled-resource-checkbox"
|
||||
type="checkbox"
|
||||
name="system.physical.firstAidAttempted"
|
||||
{{checked actor.system.physical.firstAidAttempted}}
|
||||
data-dtype="Boolean"
|
||||
title="{{localize 'DG.Tooltip.FirstAidAttempted'}}" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="bolded-label">{{localize 'DG.Physical.Wounds'}}</label>
|
||||
|
||||
<textarea class="wounds" name="system.physical.wounds">{{actor.system.physical.wounds}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,247 @@
|
||||
{{!-- OTHER GEAR/MISC --}}
|
||||
|
||||
<div>
|
||||
<div class="horizontal-bar-section-divider">
|
||||
<span>{{localize 'DG.Gear.OtherGear'}}</span>
|
||||
</div>
|
||||
|
||||
<ol class="items-list">
|
||||
<li class="item flexrow item-header">
|
||||
<div class="item-image">
|
||||
{{#if actor.system.settings.sorting.gearSortAlphabetical }}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="gear">
|
||||
<i class="fa-solid fa-arrow-down-a-z"></i>
|
||||
</a>
|
||||
{{else}}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="gear">
|
||||
<i class="fa-solid fa-arrow-down-short-wide"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div style="min-width: 55%;" class="item-name">{{localize 'DG.Gear.Name'}}</div>
|
||||
|
||||
<span class="centered-item-property">{{localize 'DG.Gear.Equipped'}}</span>
|
||||
|
||||
<div class="item-controls">
|
||||
<a class="item-control action-pill"
|
||||
data-action="itemAction"
|
||||
data-action-type="create"
|
||||
title="Create item"
|
||||
data-item-type="gear">
|
||||
<i class="fas fa-plus"></i> {{localize 'DG.Generic.AddButtonLabel'}}
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
{{#each actor.gear as |item id| }}
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
<div class="item-image">
|
||||
<img src="{{item.img}}" title="{{item.name}}" width="24" height="24" />
|
||||
</div>
|
||||
|
||||
<span style="min-width: 55%;" class="item-name">{{item.name}}</span>
|
||||
|
||||
<a class="centered-item-property"
|
||||
data-action="toggle"
|
||||
data-prop="system.equipped"
|
||||
data-item-id="{{item._id}}"
|
||||
title="{{localize 'DG.Tooltip.ToggleEquippedState'}}">
|
||||
{{#if item.system.equipped }}
|
||||
<i class="fas fa-check"></i>
|
||||
{{else}}
|
||||
<i class="fas fa-times"></i>
|
||||
{{/if}}
|
||||
</a>
|
||||
|
||||
<div class="item-controls">
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="edit"
|
||||
title="Edit Item">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="delete"
|
||||
title="Delete Item">
|
||||
<i class="fas fa-trash"></i>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
{{#if showHyperGeometrySection }}
|
||||
{{!-- TOMES --}}
|
||||
<div>
|
||||
|
||||
<div class="horizontal-bar-section-divider">
|
||||
<span>{{localize 'DG.Gear.Tomes'}}</span>
|
||||
</div>
|
||||
|
||||
<ol class="items-list">
|
||||
|
||||
<li class="item flexrow item-header">
|
||||
|
||||
<div class="item-image">
|
||||
{{#if actor.system.settings.sorting.tomeSortAlphabetical }}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="tome">
|
||||
<i class="fa-solid fa-arrow-down-a-z">
|
||||
</i>
|
||||
</a>
|
||||
{{else}}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="tome">
|
||||
<i class="fa-solid fa-arrow-down-short-wide">
|
||||
</i>
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div style="min-width: 55%;" class="item-name">{{localize 'DG.Tomes.Name'}}</div>
|
||||
|
||||
<div class="item-controls">
|
||||
<a class="item-control action-pill"
|
||||
data-action="itemAction"
|
||||
data-action-type="create"
|
||||
title="Create item"
|
||||
data-item-type="tome">
|
||||
<i class="fas fa-plus"></i>
|
||||
{{localize 'DG.Generic.AddButtonLabel'}}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
|
||||
{{#each actor.tomes as |item id| }}
|
||||
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
|
||||
<div class="item-image">
|
||||
<img src="{{item.img}}" title="{{item.name}}" width="24" height="24" />
|
||||
</div>
|
||||
|
||||
<span style="min-width: 55%;" class="item-name">
|
||||
{{#if item.system.revealed }}
|
||||
{{item.name}}
|
||||
{{else}}
|
||||
???
|
||||
{{#if (playerHasGamemasterPrivileges) }}
|
||||
({{item.name}})
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</span>
|
||||
|
||||
<div class="item-controls">
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="edit"
|
||||
title="Edit Item">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="delete"
|
||||
title="Delete Item">
|
||||
<i class="fas fa-trash"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
|
||||
{{/each}}
|
||||
|
||||
</ol>
|
||||
|
||||
</div>
|
||||
|
||||
{{!-- RITUALS --}}
|
||||
<div>
|
||||
|
||||
<div class="horizontal-bar-section-divider">
|
||||
<span>
|
||||
{{localize 'DG.Gear.Rituals'}}
|
||||
<button type="button"
|
||||
class="rollable inline-roll"
|
||||
data-action="roll"
|
||||
data-key="ritual"
|
||||
data-rolltype="skill"
|
||||
title="Ritual activation">
|
||||
<i class="fa-solid fa-dice" inert></i>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<ol class="items-list">
|
||||
|
||||
<li class="item flexrow item-header">
|
||||
|
||||
<div class="item-image">
|
||||
{{#if actor.system.settings.sorting.ritualSortAlphabetical }}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="ritual">
|
||||
<i class="fa-solid fa-arrow-down-a-z"></i>
|
||||
</a>
|
||||
{{else}}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="ritual">
|
||||
<i class="fa-solid fa-arrow-down-short-wide"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div style="min-width: 55%;" class="item-name">{{localize 'DG.Ritual.Name'}}</div>
|
||||
|
||||
<div class="item-controls">
|
||||
<a class="item-control action-pill"
|
||||
data-action="itemAction"
|
||||
data-action-type="create"
|
||||
title="Create item"
|
||||
data-item-type="ritual">
|
||||
<i class="fas fa-plus"></i> {{localize 'DG.Generic.AddButtonLabel'}}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
|
||||
{{#each actor.rituals as |item id| }}
|
||||
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
|
||||
<div class="item-image">
|
||||
<img src="{{item.img}}" title="{{item.name}}" width="24" height="24" />
|
||||
</div>
|
||||
|
||||
<span style="min-width: 55%;" class="item-name">
|
||||
{{#if item.system.revealed }}
|
||||
{{item.name}}
|
||||
{{else}}
|
||||
???
|
||||
{{#if (playerHasGamemasterPrivileges) }}
|
||||
({{item.name}})
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</span>
|
||||
|
||||
<div class="item-controls">
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="edit"
|
||||
title="Edit Item">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="delete"
|
||||
title="Delete Item">
|
||||
<i class="fas fa-trash"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
|
||||
{{/each}}
|
||||
|
||||
</ol>
|
||||
|
||||
</div>
|
||||
{{/if}}
|
||||
@@ -0,0 +1,128 @@
|
||||
<div>
|
||||
<div class="horizontal-bar-section-divider">
|
||||
<span>{{localize 'DG.Gear.Weapons'}}</span>
|
||||
</div>
|
||||
|
||||
<ol class="items-list">
|
||||
<li class="item flexrow item-header">
|
||||
<div class="item-image">
|
||||
{{#if actor.system.settings.sorting.weaponSortAlphabetical }}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="weapon">
|
||||
<i class="fa-solid fa-arrow-down-a-z"></i>
|
||||
</a>
|
||||
{{else}}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="weapon">
|
||||
<i class="fa-solid fa-arrow-down-short-wide"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<span>
|
||||
{{localize 'DG.Gear.Name'}}
|
||||
<a data-action="browsePack" data-pack-type="weapon"><i class="fas fa-search"></i></a>
|
||||
</span>
|
||||
<span class="centered-item-property">{{localize 'DG.Gear.DamageOrLethality'}}</span>
|
||||
<span class="centered-item-property">{{localize 'DG.Gear.ArmorPiercing'}}</span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control action-pill"
|
||||
data-action="itemAction"
|
||||
data-action-type="create"
|
||||
title="Create item"
|
||||
data-item-type="weapon"><i class="fas fa-plus"></i> {{localize 'DG.Generic.AddButtonLabel'}}</a>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
{{#each actor.weapons as |item id| }}
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
<div class="flexrow">
|
||||
<img class="item-image weapon-name-flexitem"
|
||||
src="{{item.img}}"
|
||||
width="24"
|
||||
height="24" />
|
||||
<span>
|
||||
<span style="display: inline;" class="item-name">{{item.name}}</span>
|
||||
<button type="button"
|
||||
class="rollable inline-roll"
|
||||
data-action="roll"
|
||||
data-iid="{{item._id}}"
|
||||
data-rolltype="weapon"
|
||||
data-key="{{item.system.skill}}"
|
||||
title="{{localize 'DG.Tooltip.SkillLabel'}} ({{localizeWeaponSkill item.system.skill}})">
|
||||
<i class="fas fa-dice" inert></i>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<span class="centered-item-property">
|
||||
{{#if item.system.lethality }}
|
||||
{{#if item.system.isLethal }}
|
||||
<a class="item-control dg-red"
|
||||
data-action="toggle"
|
||||
data-prop="system.isLethal"
|
||||
data-item-id="{{item._id}}"
|
||||
title="Toggle Lethality (Current Lethality: {{item.system.lethality}}%)">
|
||||
<i class="fas fa-skull-crossbones"></i>
|
||||
</a>
|
||||
{{else}}
|
||||
<a class="item-control"
|
||||
data-action="toggle"
|
||||
data-prop="system.isLethal"
|
||||
data-item-id="{{item._id}}"
|
||||
title="Toggle Lethality (Currently No Lethality)">
|
||||
<i class="fas fa-user-injured"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{#unless item.system.isLethal}}
|
||||
<button type="button"
|
||||
class="rollable inline-roll"
|
||||
data-action="roll"
|
||||
data-rolltype="damage"
|
||||
data-iid="{{item._id}}"
|
||||
title="{{localize 'DG.Gear.DamageOrLethality'}}">
|
||||
{{toUpperCase item.system.damage}}
|
||||
{{#if_eq item.system.skill 'unarmed_combat' }}
|
||||
{{actor.system.statistics.str.meleeDamageBonusFormula}}
|
||||
{{/if_eq}}
|
||||
{{#if_eq item.system.skill 'melee_weapons' }}
|
||||
{{actor.system.statistics.str.meleeDamageBonusFormula}}
|
||||
{{/if_eq}}
|
||||
<i class="fas fa-dice" inert></i>
|
||||
</button>
|
||||
{{/unless}}
|
||||
|
||||
{{#if item.system.isLethal }}
|
||||
<button type="button"
|
||||
class="rollable inline-roll"
|
||||
data-action="roll"
|
||||
data-rolltype="lethality"
|
||||
data-iid="{{item._id}}"
|
||||
title="{{localize 'DG.ItemWindow.Weapons.LethalityTooltip'}}">
|
||||
{{item.system.lethality}}%
|
||||
<i class="fas fa-dice" inert></i>
|
||||
</button>
|
||||
{{/if}}
|
||||
|
||||
</span>
|
||||
|
||||
<span class="centered-item-property">{{item.system.armorPiercing}}</span>
|
||||
|
||||
<div class="item-controls">
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="edit"
|
||||
title="Edit Item">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="delete"
|
||||
title="Delete Item">
|
||||
<i class="fas fa-trash"></i>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
@@ -0,0 +1,9 @@
|
||||
<div class="tab combat {{tabs.combat.cssClass}}"
|
||||
data-group="primary"
|
||||
data-tab="combat">
|
||||
|
||||
{{> "systems/deltagreen/templates/actor/partials/weapons-section-partial.html" }}
|
||||
{{> "systems/deltagreen/templates/actor/partials/armor-section-partial.html" }}
|
||||
{{> "systems/deltagreen/templates/actor/partials/injuries-section-partial.html" }}
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,7 @@
|
||||
<div class="tab gear {{tabs.gear.cssClass}}"
|
||||
data-group="primary"
|
||||
data-tab="gear">
|
||||
|
||||
{{> "systems/deltagreen/templates/actor/partials/other-gear-section-partial.html" }}
|
||||
|
||||
</div>
|
||||
@@ -1,460 +1,10 @@
|
||||
{{!-- EQUIPMENT/ATTACKS/ABILITES SECTION USED ON ALL ACTOR SHEETS --}}
|
||||
{{!-- WEAPONS/ATTACKS --}}
|
||||
<div class="tab gear {{tabs.gear.cssClass}}"
|
||||
data-group="primary"
|
||||
data-tab="gear">
|
||||
|
||||
<div>
|
||||
<div class="horizontal-bar-section-divider">
|
||||
<span>{{localize 'DG.Gear.Weapons'}}</span>
|
||||
</div>
|
||||
{{> "systems/deltagreen/templates/actor/partials/weapons-section-partial.html" }}
|
||||
{{> "systems/deltagreen/templates/actor/partials/armor-section-partial.html" }}
|
||||
{{> "systems/deltagreen/templates/actor/partials/other-gear-section-partial.html" }}
|
||||
|
||||
<ol class="items-list">
|
||||
<li class="item flexrow item-header">
|
||||
<div class="item-image">
|
||||
{{#if actor.system.settings.sorting.weaponSortAlphabetical }}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="weapon">
|
||||
<i class="fa-solid fa-arrow-down-a-z"></i>
|
||||
</a>
|
||||
{{else}}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="weapon">
|
||||
<i class="fa-solid fa-arrow-down-short-wide"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<span>
|
||||
{{localize 'DG.Gear.Name'}}
|
||||
<a data-action="browsePack" data-pack-type="weapon"><i class="fas fa-search"></i></a>
|
||||
</span>
|
||||
<span class="centered-item-property">{{localize 'DG.Gear.DamageOrLethality'}}</span>
|
||||
<span class="centered-item-property">{{localize 'DG.Gear.ArmorPiercing'}}</span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control action-pill"
|
||||
data-action="itemAction"
|
||||
data-action-type="create"
|
||||
title="Create item"
|
||||
data-item-type="weapon"><i class="fas fa-plus"></i> {{localize 'DG.Generic.AddButtonLabel'}}</a>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
{{#each actor.weapons as |item id| }}
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
<div class="flexrow">
|
||||
<img class="item-image weapon-name-flexitem"
|
||||
src="{{item.img}}"
|
||||
width="24"
|
||||
height="24" />
|
||||
<span>
|
||||
<span style="display: inline;" class="item-name">{{item.name}}</span>
|
||||
<button type="button"
|
||||
class="rollable inline-roll"
|
||||
data-action="roll"
|
||||
data-iid="{{item._id}}"
|
||||
data-rolltype="weapon"
|
||||
data-key="{{item.system.skill}}"
|
||||
title="{{localize 'DG.Tooltip.SkillLabel'}} ({{localizeWeaponSkill item.system.skill}})">
|
||||
<i class="fas fa-dice" inert></i>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<span class="centered-item-property">
|
||||
{{#if item.system.lethality }}
|
||||
{{#if item.system.isLethal }}
|
||||
<a class="item-control dg-red"
|
||||
data-action="toggle"
|
||||
data-prop="system.isLethal"
|
||||
data-item-id="{{item._id}}"
|
||||
title="Toggle Lethality (Current Lethality: {{item.system.lethality}}%)">
|
||||
<i class="fas fa-skull-crossbones"></i>
|
||||
</a>
|
||||
{{else}}
|
||||
<a class="item-control"
|
||||
data-action="toggle"
|
||||
data-prop="system.isLethal"
|
||||
data-item-id="{{item._id}}"
|
||||
title="Toggle Lethality (Currently No Lethality)">
|
||||
<i class="fas fa-user-injured"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
{{#unless item.system.isLethal}}
|
||||
<button type="button"
|
||||
class="rollable inline-roll"
|
||||
data-action="roll"
|
||||
data-rolltype="damage"
|
||||
data-iid="{{item._id}}"
|
||||
title="{{localize 'DG.Gear.DamageOrLethality'}}">
|
||||
{{toUpperCase item.system.damage}}
|
||||
{{#if_eq item.system.skill 'unarmed_combat' }}
|
||||
{{actor.system.statistics.str.meleeDamageBonusFormula}}
|
||||
{{/if_eq}}
|
||||
{{#if_eq item.system.skill 'melee_weapons' }}
|
||||
{{actor.system.statistics.str.meleeDamageBonusFormula}}
|
||||
{{/if_eq}}
|
||||
<i class="fas fa-dice" inert></i>
|
||||
</button>
|
||||
{{/unless}}
|
||||
|
||||
{{#if item.system.isLethal }}
|
||||
<button type="button"
|
||||
class="rollable inline-roll"
|
||||
data-action="roll"
|
||||
data-rolltype="lethality"
|
||||
data-iid="{{item._id}}"
|
||||
title="{{localize 'DG.ItemWindow.Weapons.LethalityTooltip'}}">
|
||||
{{item.system.lethality}}%
|
||||
<i class="fas fa-dice" inert></i>
|
||||
</button>
|
||||
{{/if}}
|
||||
|
||||
</span>
|
||||
|
||||
<span class="centered-item-property">{{item.system.armorPiercing}}</span>
|
||||
|
||||
<div class="item-controls">
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="edit"
|
||||
title="Edit Item">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="delete"
|
||||
title="Delete Item">
|
||||
<i class="fas fa-trash"></i>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
{{!-- ARMOR/DEFENSE --}}
|
||||
<div>
|
||||
<div class="horizontal-bar-section-divider">
|
||||
<span>{{localize 'DG.Gear.Armor'}}</span>
|
||||
</div>
|
||||
<ol class="items-list">
|
||||
<li class="item flexrow item-header">
|
||||
|
||||
<div class="item-image">
|
||||
{{#if actor.system.settings.sorting.armorSortAlphabetical }}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="armor">
|
||||
<i class="fa-solid fa-arrow-down-a-z"></i>
|
||||
</a>
|
||||
{{else}}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="armor">
|
||||
<i class="fa-solid fa-arrow-down-short-wide"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="item-name">
|
||||
<span>{{localize 'DG.Gear.Name'}} <a data-action="browsePack" data-pack-type="armor"><i class="fas fa-search"></i></a></span>
|
||||
</div>
|
||||
<span class="centered-item-property">{{localize 'DG.Gear.ArmorRating'}}</span>
|
||||
<span class="centered-item-property">{{localize 'DG.Gear.Equipped'}}</span>
|
||||
<div class="item-controls">
|
||||
<a class="item-control action-pill"
|
||||
data-action="itemAction"
|
||||
data-action-type="create"
|
||||
title="Create item"
|
||||
data-item-type="armor"><i class="fas fa-plus"></i> {{localize 'DG.Generic.AddButtonLabel'}}</a>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
|
||||
{{#each actor.armor as |item id| }}
|
||||
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
|
||||
<div class="item-image">
|
||||
<img src="{{item.img}}" title="{{item.name}}" width="24" height="24" />
|
||||
</div>
|
||||
|
||||
<span class="item-name">{{item.name}}</span>
|
||||
|
||||
<span class="centered-item-property">{{item.system.protection}}</span>
|
||||
|
||||
<a class="centered-item-property"
|
||||
data-action="toggle"
|
||||
data-prop="system.equipped"
|
||||
data-item-id="{{item._id}}"
|
||||
title="{{localize 'DG.Tooltip.ToggleEquippedState'}}">
|
||||
{{#if item.system.equipped }}
|
||||
<i class="fas fa-check"></i>
|
||||
{{else}}
|
||||
<i class="fas fa-times"></i>
|
||||
{{/if}}
|
||||
</a>
|
||||
|
||||
<div class="item-controls">
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="edit"
|
||||
title="Edit Item">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="delete"
|
||||
title="Delete Item">
|
||||
<i class="fas fa-trash"></i>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
{{!-- OTHER GEAR/MISC --}}
|
||||
|
||||
<div>
|
||||
<div class="horizontal-bar-section-divider">
|
||||
<span>{{localize 'DG.Gear.OtherGear'}}</span>
|
||||
</div>
|
||||
|
||||
<ol class="items-list">
|
||||
<li class="item flexrow item-header">
|
||||
<div class="item-image">
|
||||
{{#if actor.system.settings.sorting.gearSortAlphabetical }}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="gear">
|
||||
<i class="fa-solid fa-arrow-down-a-z"></i>
|
||||
</a>
|
||||
{{else}}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="gear">
|
||||
<i class="fa-solid fa-arrow-down-short-wide"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div style="min-width: 55%;" class="item-name">{{localize 'DG.Gear.Name'}}</div>
|
||||
|
||||
<span class="centered-item-property">{{localize 'DG.Gear.Equipped'}}</span>
|
||||
|
||||
<div class="item-controls">
|
||||
<a class="item-control action-pill"
|
||||
data-action="itemAction"
|
||||
data-action-type="create"
|
||||
title="Create item"
|
||||
data-item-type="gear">
|
||||
<i class="fas fa-plus"></i> {{localize 'DG.Generic.AddButtonLabel'}}
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
{{#each actor.gear as |item id| }}
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
<div class="item-image">
|
||||
<img src="{{item.img}}" title="{{item.name}}" width="24" height="24" />
|
||||
</div>
|
||||
|
||||
<span style="min-width: 55%;" class="item-name">{{item.name}}</span>
|
||||
|
||||
<a class="centered-item-property"
|
||||
data-action="toggle"
|
||||
data-prop="system.equipped"
|
||||
data-item-id="{{item._id}}"
|
||||
title="{{localize 'DG.Tooltip.ToggleEquippedState'}}">
|
||||
{{#if item.system.equipped }}
|
||||
<i class="fas fa-check"></i>
|
||||
{{else}}
|
||||
<i class="fas fa-times"></i>
|
||||
{{/if}}
|
||||
</a>
|
||||
|
||||
<div class="item-controls">
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="edit"
|
||||
title="Edit Item">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="delete"
|
||||
title="Delete Item">
|
||||
<i class="fas fa-trash"></i>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
{{#if showHyperGeometrySection }}
|
||||
{{!-- TOMES --}}
|
||||
<div>
|
||||
|
||||
<div class="horizontal-bar-section-divider">
|
||||
<span>{{localize 'DG.Gear.Tomes'}}</span>
|
||||
</div>
|
||||
|
||||
<ol class="items-list">
|
||||
|
||||
<li class="item flexrow item-header">
|
||||
|
||||
<div class="item-image">
|
||||
{{#if actor.system.settings.sorting.tomeSortAlphabetical }}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="tome">
|
||||
<i class="fa-solid fa-arrow-down-a-z">
|
||||
</i>
|
||||
</a>
|
||||
{{else}}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="tome">
|
||||
<i class="fa-solid fa-arrow-down-short-wide">
|
||||
</i>
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div style="min-width: 55%;" class="item-name">{{localize 'DG.Tomes.Name'}}</div>
|
||||
|
||||
<div class="item-controls">
|
||||
<a class="item-control action-pill"
|
||||
data-action="itemAction"
|
||||
data-action-type="create"
|
||||
title="Create item"
|
||||
data-item-type="tome">
|
||||
<i class="fas fa-plus"></i>
|
||||
{{localize 'DG.Generic.AddButtonLabel'}}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
|
||||
{{#each actor.tomes as |item id| }}
|
||||
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
|
||||
<div class="item-image">
|
||||
<img src="{{item.img}}" title="{{item.name}}" width="24" height="24" />
|
||||
</div>
|
||||
|
||||
<span style="min-width: 55%;" class="item-name">
|
||||
{{#if item.system.revealed }}
|
||||
{{item.name}}
|
||||
{{else}}
|
||||
???
|
||||
{{#if (playerHasGamemasterPrivileges) }}
|
||||
({{item.name}})
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</span>
|
||||
|
||||
<div class="item-controls">
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="edit"
|
||||
title="Edit Item">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="delete"
|
||||
title="Delete Item">
|
||||
<i class="fas fa-trash"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
|
||||
{{/each}}
|
||||
|
||||
</ol>
|
||||
|
||||
</div>
|
||||
|
||||
{{!-- RITUALS --}}
|
||||
<div>
|
||||
|
||||
<div class="horizontal-bar-section-divider">
|
||||
<span>
|
||||
{{localize 'DG.Gear.Rituals'}}
|
||||
<button type="button"
|
||||
class="rollable inline-roll"
|
||||
data-action="roll"
|
||||
data-key="ritual"
|
||||
data-rolltype="skill"
|
||||
title="Ritual activation">
|
||||
<i class="fa-solid fa-dice" inert></i>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<ol class="items-list">
|
||||
|
||||
<li class="item flexrow item-header">
|
||||
|
||||
<div class="item-image">
|
||||
{{#if actor.system.settings.sorting.ritualSortAlphabetical }}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="ritual">
|
||||
<i class="fa-solid fa-arrow-down-a-z"></i>
|
||||
</a>
|
||||
{{else}}
|
||||
<a data-action="toggleItemSortMode" data-gear-type="ritual">
|
||||
<i class="fa-solid fa-arrow-down-short-wide"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div style="min-width: 55%;" class="item-name">{{localize 'DG.Ritual.Name'}}</div>
|
||||
|
||||
<div class="item-controls">
|
||||
<a class="item-control action-pill"
|
||||
data-action="itemAction"
|
||||
data-action-type="create"
|
||||
title="Create item"
|
||||
data-item-type="ritual">
|
||||
<i class="fas fa-plus"></i> {{localize 'DG.Generic.AddButtonLabel'}}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
|
||||
{{#each actor.rituals as |item id| }}
|
||||
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
|
||||
<div class="item-image">
|
||||
<img src="{{item.img}}" title="{{item.name}}" width="24" height="24" />
|
||||
</div>
|
||||
|
||||
<span style="min-width: 55%;" class="item-name">
|
||||
{{#if item.system.revealed }}
|
||||
{{item.name}}
|
||||
{{else}}
|
||||
???
|
||||
{{#if (playerHasGamemasterPrivileges) }}
|
||||
({{item.name}})
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</span>
|
||||
|
||||
<div class="item-controls">
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="edit"
|
||||
title="Edit Item">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<a class="item-control"
|
||||
data-action="itemAction"
|
||||
data-action-type="delete"
|
||||
title="Delete Item">
|
||||
<i class="fas fa-trash"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
|
||||
{{/each}}
|
||||
|
||||
</ol>
|
||||
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
data-tooltip="{{actor.name}}"
|
||||
height="150"
|
||||
width="100" />
|
||||
<div>
|
||||
<div class="header-name-fields">
|
||||
<input class="fill-remaining-space"
|
||||
name="name"
|
||||
type="text"
|
||||
value="{{actor.name}}"
|
||||
data-tooltip="{{localize 'DG.AgentNameFieldTooltip' }}" />
|
||||
<input class="fill-remaining-space"
|
||||
<input class="fill-remaining-space profession-input"
|
||||
name="system.biography.profession"
|
||||
type="text"
|
||||
value="{{actor.system.biography.profession}}"
|
||||
@@ -21,7 +21,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="stats-wrapper mb-10">
|
||||
<div class="stats-wrapper">
|
||||
<a class="stats-edit-btn" title="{{localize 'Edit Stats'}}" data-action="openStatsEdit">
|
||||
<i class="fas fa-pen"></i>
|
||||
</a>
|
||||
@@ -52,7 +52,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="resources grid grid-3col mb-10">
|
||||
<div class="resources grid grid-3col">
|
||||
{{!-- HP --}}
|
||||
<div class="resource-outer-grid-1col">
|
||||
<label for="actor.system.health.value"
|
||||
@@ -99,15 +99,49 @@
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div class="breaking-point mb-10">
|
||||
<label class="bolded-label">{{localize 'DG.Mental.BreakingPoint'}}</label>
|
||||
<input class="centered"
|
||||
<div class="exhausted-section resource mb-8">
|
||||
<label class="bolded-label exhaustion-label"
|
||||
title="{{localize 'DG.Tooltip.Exhaustion'}}">
|
||||
{{localize 'DG.Physical.Exhausted'}}
|
||||
</label>
|
||||
<input class="labeled-resource-checkbox"
|
||||
type="checkbox"
|
||||
name="system.physical.exhausted"
|
||||
{{checked actor.system.physical.exhausted}}
|
||||
data-dtype="Boolean"
|
||||
title="{{localize 'DG.Tooltip.Exhaustion'}}" />
|
||||
|
||||
{{#if actor.system.physical.exhausted }}
|
||||
|
||||
<label class="bolded-label exhaustion-label"
|
||||
title="{{localize 'DG.Tooltip.Exhaustion'}}">
|
||||
{{localize 'DG.Physical.ExhaustionPenalty'}}
|
||||
</label>
|
||||
<input type="number"
|
||||
name="system.physical.exhaustedPenalty"
|
||||
value="{{actor.system.physical.exhaustedPenalty}}"
|
||||
data-dtype="Number"
|
||||
title="{{localize 'DG.Tooltip.Exhaustion'}}"
|
||||
min="-99"
|
||||
max="0" />
|
||||
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div class="breaking-point breaking-point-inline mb-8">
|
||||
<label class="bolded-label breaking-point-label"
|
||||
data-tooltip="{{localize 'DG.Mental.Tooltip.BreakingPoint'}}">
|
||||
{{localize 'DG.Mental.BreakingPoint'}}
|
||||
</label>
|
||||
<a class="fa fa-refresh"
|
||||
data-action="resetBreakingPoint"
|
||||
title="{{localize 'DG.Tooltip.BreakPointReset'}}"></a>
|
||||
<input class="centered breaking-point-input"
|
||||
title="{{localize 'DG.Tooltip.BreakPoint'}}"
|
||||
type="text"
|
||||
name="system.sanity.currentBreakingPoint"
|
||||
value="{{actor.system.sanity.currentBreakingPoint}}"
|
||||
data-dtype="Number" />
|
||||
<a class="fa fa-refresh" data-action="resetBreakingPoint" title="Reset breaking point to be current SAN - WP."></a>
|
||||
</div>
|
||||
|
||||
<div class="adaptation-grid-4col">
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
<div class="tab motivations {{tabs.motivations.cssClass}}"
|
||||
data-group="primary"
|
||||
data-tab="motivations">
|
||||
|
||||
{{> "systems/deltagreen/templates/actor/partials/bonds-section-partial.html" }}
|
||||
|
||||
<div class="horizontal-bar-section-divider">
|
||||
<span>{{localize "DG.Sheet.BlockHeaders.MotivationsAndDisorders"}}</span>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
{{!-- djlint:off H020 --}}
|
||||
|
||||
<div class="tab personal {{tabs.personal.cssClass}}"
|
||||
data-group="primary"
|
||||
data-tab="personal">
|
||||
<div class="horizontal-bar-section-divider">
|
||||
<span>{{localize "DG.Sheet.BlockHeaders.PersonalInfoCV"}}</span>
|
||||
</div>
|
||||
<div class="bio-grid-5col bio-grid-top-border">
|
||||
<span>{{localize 'DG.CV.Sex'}}</span>
|
||||
<input class="fill-remaining-space"
|
||||
type="text"
|
||||
name="system.biography.sex"
|
||||
value="{{actor.system.biography.sex}}"
|
||||
data-dtype="String"
|
||||
placeholder="{{localize 'DG.CV.SexPlaceholder'}}" />
|
||||
<span></span>
|
||||
<span class="bio-grid-label">{{localize 'DG.CV.AgeAndDoB'}}</span>
|
||||
<input class="fill-remaining-space"
|
||||
type="text"
|
||||
name="system.biography.age"
|
||||
value="{{actor.system.biography.age}}"
|
||||
data-dtype="String"
|
||||
placeholder="{{localize 'DG.CV.AgeAndDoBPlaceholder'}}" />
|
||||
</div>
|
||||
|
||||
<div class="bio-grid-2col">
|
||||
|
||||
<span>{{localize 'DG.CV.Employer'}}</span>
|
||||
<input class="fill-remaining-space"
|
||||
type="text"
|
||||
name="system.biography.employer"
|
||||
value="{{actor.system.biography.employer}}"
|
||||
data-dtype="String"
|
||||
placeholder="{{localize 'DG.CV.EmployerPlaceholder'}}" />
|
||||
|
||||
<span>{{localize 'DG.CV.Nationality'}}</span>
|
||||
<input class="fill-remaining-space"
|
||||
type="text"
|
||||
name="system.biography.nationality"
|
||||
value="{{actor.system.biography.nationality}}"
|
||||
data-dtype="String"
|
||||
placeholder="{{localize 'DG.CV.NationalityPlaceholder'}}" />
|
||||
|
||||
</div>
|
||||
|
||||
<div class="bio-grid-2col">
|
||||
<span>{{localize 'DG.CV.Education'}}</span>
|
||||
<input class="fill-remaining-space"
|
||||
type="text"
|
||||
name="system.biography.education"
|
||||
value="{{actor.system.biography.education}}"
|
||||
data-dtype="String"
|
||||
placeholder="{{localize 'DG.CV.EducationPlaceholder'}}" />
|
||||
</div>
|
||||
|
||||
{{#if (showImpossibleLandscapesContent) }}
|
||||
|
||||
<div class="horizontal-bar-section-divider">
|
||||
<span>{{localize "DG.Sheet.BlockHeaders.ScenarioInformation"}}</span>
|
||||
</div>
|
||||
|
||||
<div class="scenario-information-grid">
|
||||
<div class="scenario-information-left bio-grid-2col yellow-king">
|
||||
<span class="yellow-king-label">{{localize 'DG.ImpossibleLanscapes.Gift'}}</span>
|
||||
<input class="fill-remaining-space"
|
||||
type="text"
|
||||
name="system.corruption.gift"
|
||||
value="{{actor.system.corruption.gift}}"
|
||||
data-dtype="String" />
|
||||
<span class="yellow-king-label">{{localize 'DG.ImpossibleLanscapes.Insight'}}</span>
|
||||
<input class="fill-remaining-space"
|
||||
type="text"
|
||||
name="system.corruption.insight"
|
||||
value="{{actor.system.corruption.insight}}"
|
||||
data-dtype="String" />
|
||||
</div>
|
||||
<div class="scenario-information-right">
|
||||
<div class="yellow-king scenario-information-corruption">
|
||||
<div class="scenario-information-yellow-sign-row">
|
||||
<span class="yellow-king yellow-king-rotate2">{{localize 'DG.ImpossibleLanscapes.IHaveSeenThe'}}</span>
|
||||
<span class="yellow-king yellow-sign">{{localize 'DG.ImpossibleLanscapes.YellowSign'}}</span>
|
||||
<input type="checkbox"
|
||||
name="system.corruption.haveSeenTheYellowSign"
|
||||
{{checked actor.system.corruption.haveSeenTheYellowSign}}
|
||||
data-dtype="Boolean" />
|
||||
</div>
|
||||
<div class="scenario-information-corruption-row">
|
||||
<span class="scenario-information-corruption-label">
|
||||
<span class="yellow-king yellow-king-rotate1">{{localize 'DG.ImpossibleLanscapes.CorruptionFirstHalf'}}</span>
|
||||
<span class="yellow-king yellow-king-rotate4">{{localize 'DG.ImpossibleLanscapes.CorruptionSecondHalf'}}</span>
|
||||
</span>
|
||||
<input class="yellow-king"
|
||||
type="number"
|
||||
placeholder="0"
|
||||
name="system.corruption.value"
|
||||
value="{{actor.system.corruption.value}}" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{/if}}
|
||||
|
||||
{{> "systems/deltagreen/templates/actor/partials/notes-partial.html"}}
|
||||
</div>
|
||||
@@ -1,9 +1,8 @@
|
||||
<div class="right-bar">
|
||||
{{> "systems/deltagreen/templates/actor/parts/skills-tab.html" }}
|
||||
{{> "systems/deltagreen/templates/actor/parts/physical-tab-v2.html" }}
|
||||
{{> "systems/deltagreen/templates/actor/parts/skills-tab-v2.html" }}
|
||||
{{> "systems/deltagreen/templates/actor/parts/combat-tab-v2.html" }}
|
||||
{{> "systems/deltagreen/templates/actor/parts/motivations-tab-v2.html" }}
|
||||
{{> "systems/deltagreen/templates/actor/parts/gear-tab.html" }}
|
||||
{{> "systems/deltagreen/templates/actor/parts/bio-tab-v2.html" }}
|
||||
{{> "systems/deltagreen/templates/actor/parts/bonds-tab.html" }}
|
||||
{{> "systems/deltagreen/templates/actor/parts/gear-tab-v2.html" }}
|
||||
{{> "systems/deltagreen/templates/actor/parts/personal-tab-v2.html" }}
|
||||
{{> "systems/deltagreen/templates/actor/parts/about-tab.html" }}
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
<div class="tab skills {{tabs.skills.cssClass}}"
|
||||
data-group="primary"
|
||||
data-tab="skills">
|
||||
<div class="horizontal-bar-section-divider skills-header">
|
||||
<span class="skills-header-title">{{localize "DG.Sheet.BlockHeaders.SkillsAndTraining"}}</span>
|
||||
{{#if (ne actor.type "agent") }}
|
||||
<a class="toggle-untrained"
|
||||
data-action="toggle"
|
||||
data-prop="system.showUntrainedSkills">
|
||||
{{localize (concat 'DG.UnnaturalSheet.' (ifThen actor.system.showUntrainedSkills 'Show' 'Hide') 'UntrainedSkillsLabel')}}
|
||||
{{!-- djlint:off --}}
|
||||
<i class="far fa-eye{{#if actor.system.showUntrainedSkills }}-slash{{/if }}"></i>
|
||||
{{!-- djlint:on --}}
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div class="grid grid-3col">
|
||||
{{#each actor.system.sortedSkills as |skill key| }}
|
||||
<div class="flexrow flex-group-left flex-thin-border">
|
||||
<label class="{{if_gt skill.targetProficiency 0 'rollable' 'not-rollable'}} skill-label"
|
||||
data-action="roll"
|
||||
data-key="{{skill.key}}"
|
||||
data-rolltype="skill"
|
||||
for="system.skills.{{skill.key}}.value"
|
||||
data-tooltip="{{ skill.tooltip }}">
|
||||
{{localizeWithFallback (concat "DG.Skills." skill.key) skill.label }}
|
||||
</label>
|
||||
|
||||
<input class="percentile-skill-input {{!-- This use of helpers is a bit hacky and should be consolidated in _prepareContext --}}
|
||||
{{#if (and (ne skill.proficiency skill.targetProficiency) (eq ../actor.type "agent")) }}
|
||||
target-proficiency-mod{{/if }}"
|
||||
type="text"
|
||||
name="system.skills.{{skill.key }}.proficiency"
|
||||
value="{{skill.proficiency }}"
|
||||
data-dtype="Number"
|
||||
{{disabled skill.isCalculatedValue }} />
|
||||
{{#if (eq ../actor.type "agent") }}
|
||||
<input class="checkbox-skill-input"
|
||||
type="checkbox"
|
||||
name="system.skills.{{skill.key}}.failure"
|
||||
data-tooltip="{{localize 'DG.Tooltip.SkillFailCheckbox' }}"
|
||||
{{checked skill.failure}}
|
||||
{{disabled skill.cannotBeImprovedByFailure }} />
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
<div>{{> "systems/deltagreen/templates/actor/partials/custom-skills-partial-v2.html" }}</div>
|
||||
|
||||
{{#if showNotesInSkills }}
|
||||
{{> "systems/deltagreen/templates/actor/partials/notes-partial.html"}}
|
||||
{{/if}}
|
||||
</div>
|
||||
Reference in New Issue
Block a user