diff --git a/Shadowrun5thEdition/Shadowrun5thEdition.css b/Shadowrun5thEdition/Shadowrun5thEdition.css
index b841d08980..f7ca45e48e 100644
--- a/Shadowrun5thEdition/Shadowrun5thEdition.css
+++ b/Shadowrun5thEdition/Shadowrun5thEdition.css
@@ -910,9 +910,9 @@
width : 100%;}
/***** SKILLS *****/
- .sheet-skill-box h3:first-child {margin-right: 67%;}
-
- .sheet-skill-box h3:last-child {margin-left: 30px;}
+ .sheet-skill-box h3[data-i18n="skill"] {margin-right: 47%;}
+ .sheet-skill-box h3[data-i18n="attribute"] {margin-left: 4%;}
+ .sheet-skill-box h3[data-i18n="limit"] {margin-left: 8%;}
.sheet-skill-box label {
display : inline-block;
@@ -920,19 +920,26 @@
text-transform: capitalize;}
select.sheet-attr-select {
- position: absolute;
+ position: absolute;}
+
+ select.sheet-attr-select[name="attr_attribute"] {
+ left : 62%;}
+
+ select.sheet-attr-select[name="attr_limit"] {
left : 82%;}
.sheet-attr-select option:nth-of-type(1n+5) {color: #610b0d;}
.sheet-attr-select option:nth-of-type(1n+9) {color: #7a2593;}
- /***** SKILLS REPEATING SECTION *****/
- .sheet-skill-box .sheet-settings input[type="text"],
- .sheet-skill-box select.sheet-skill-select,
- .sheet-skills-row .sheet-settings-row div,
- .sheet-skill-box .sheet-name {
+ /***** SKILLS REPEATING SECTION *****/
+ .sheet-skills-row .sheet-settings-row div {
width: 70%;}
+ .sheet-skill-box .sheet-name,
+ .sheet-skill-box select.sheet-skill-select,
+ .sheet-skill-box .sheet-settings input[type="text"] {
+ width: 50%;}
+
.sheet-skill-box .sheet-settings input[type="text"] {text-align: left;}
.sheet-skill-box .sheet-settings input[type="number"] {
diff --git a/Shadowrun5thEdition/Shadowrun5thEdition.html b/Shadowrun5thEdition/Shadowrun5thEdition.html
index 498766e381..c9cb299af1 100644
--- a/Shadowrun5thEdition/Shadowrun5thEdition.html
+++ b/Shadowrun5thEdition/Shadowrun5thEdition.html
@@ -399,7 +399,10 @@
@@ -2913,7 +2949,7 @@
-
+
@@ -3301,13 +3337,13 @@
const stat3 = parseInt(v[`${attr3}`]) || 0; //Logic, Strenght, Charisma
const mod = parseInt(v[`${type}_limit_modifier`]) || 0;
- const tem = (v[`${type}_limit_temp_flag`] === "on") ? parseInt(v[`${type}_limit_temp_flag`]) || 0 : 0;
+ const tem = (v[`${type}_limit_temp_flag`] === "on") ? parseInt(v[`${type}_limit_temp`]) || 0 : 0;
const tot = ((stat1 + stat2 + (stat3 * 2))/3);
const update = Math.ceil(tot) + (mod + tem);
setAttrs({[`${type}_limit`]: update});
- });
+ })
};
//This function checks changes to repeating_armor and updates the Primary Armor if needed
@@ -3389,8 +3425,6 @@
const add = (a, b) => a + b, sum = numbers.reduce(add);
setAttrs({[`${name}`]: sum});
-
- console.log(`%c ${name} = ${numbers} totaling ${sum}`, "color: green;font-weight: bold;");
});
};
@@ -3745,6 +3779,7 @@
//REFACTORED Skills
['repeating_active','repeating_knowledge','repeating_language'].forEach(field => {
on(`change:${field}`, (eventinfo) => {
+ console.table(eventinfo);
const source = eventinfo.sourceAttribute;
const type = eventinfo.sourceType;
@@ -3767,6 +3802,20 @@
[`${field}_display_attribute`]: translation
});
});
+ } else if (source.includes("limit") && type === "player") {
+ const limit = eventinfo.newValue.slice(2, -1);
+ if (eventinfo.newValue === "none") {
+ setAttrs({
+ [`${field}_display_limit`]: ""
+ });
+ } else {
+ const translation = getTranslationByKey(`${limit}`);
+ setAttrs({
+ [`${field}_display_limit`]: `${translation} ${eventinfo.newValue}`
+ });
+
+ console.log(`${field}_display_limit : ${translation} ${eventinfo.newValue}`);
+ }
} else if (source.includes("specialization") && type === "player") {
getAttrs([`${source}`], (v) => {
const bas = v[`${source}`];
@@ -3802,7 +3851,8 @@
console.log(`Change to ${field} did not set attr`);
};
});
- });
+ });
+
//Setting the Default attribute name for default skill
on("change:default_attribute", (eventinfo) => {
@@ -3893,20 +3943,6 @@
console.log(eventinfo);
};
-
- /* switch (true) {
- case /weapon/.test(source): update[`primary_${type}_weapon`] = v[`${source}`]; break;
- case /damage/.test(source): update[`primary_${type}_weapon_damage`] = v[`${source}`]; break;
- case /dicepool/.test(source): update[`primary_${type}_weapon_dicepool`] = v[`${source}`]; break;
- case /acc/.test(source): update[`primary_${type}_weapon_acc`] = v[`${source}`]; break;
- case /ap/.test(source): update[`primary_${type}_weapon_ap`] = v[`${source}`]; break;
- case /skill/.test(source): update[`primary_${type}_weapon_skill`] = v[`${source}`]; break;
- case /reach/.test(source): update[`primary_${type}_weapon_reach`] = v[`${source}`]; break;
- case /ammo/.test(source): update[`primary_${type}_weapon_ammo`] = v[`${source}`], update[`primary_${type}_weapon_ammo_max`] = v[`${source}`]; break;
- case /mode/.test(source): update[`primary_${type}_weapon_mode`] = v[`${source}`]; break;
- case /recoil/.test(source): update[`primary_${type}_weapon_recoil`] = v[`${source}`]; break;
- default: console.log(`Source ${source} was invalid`);} */
-
setAttrs(update);
};
});
@@ -4018,5 +4054,4 @@
});
});
-
diff --git a/Shadowrun5thEdition/images/Blackbackground.jpg b/Shadowrun5thEdition/images/Blackbackground.jpg
new file mode 100644
index 0000000000..1cb8c34f05
Binary files /dev/null and b/Shadowrun5thEdition/images/Blackbackground.jpg differ
diff --git a/Shadowrun5thEdition/images/ShadowrunLogo.png b/Shadowrun5thEdition/images/ShadowrunLogo.png
new file mode 100644
index 0000000000..0773340e97
Binary files /dev/null and b/Shadowrun5thEdition/images/ShadowrunLogo.png differ
diff --git a/Shadowrun5thEdition/images/gun.png b/Shadowrun5thEdition/images/gun.png
new file mode 100644
index 0000000000..f1566799ae
Binary files /dev/null and b/Shadowrun5thEdition/images/gun.png differ
diff --git a/Shadowrun5thEdition/translation.json b/Shadowrun5thEdition/translation.json
index ac69b91fda..77baa8f7b9 100644
--- a/Shadowrun5thEdition/translation.json
+++ b/Shadowrun5thEdition/translation.json
@@ -1,4 +1,4 @@
-{
+{
"a": "A",
"acc": "ACC",
"accel": "Accel",
@@ -86,8 +86,8 @@
"dam": "Dam",
"damage": "Damage",
"damagetype": "Combat Damage",
+ "data_processing": "Data Processing",
"dataproc": "Data Proc.",
- "dataprocessing": "Data Processing",
"decompiling": "Decompiling",
"default": "Default a skill",
"defense": "Defense",
@@ -189,6 +189,7 @@
"levelresonance": "Level / Resonance",
"licenses": "Licenses",
"liftcarry": "Lift & Carry",
+ "limit":"Limit",
"limits": "Limits",
"locksmith": "Locksmith",
"logic": "Logic",
@@ -213,6 +214,7 @@
"melee": "Melee",
"memory": "Memory",
"mental": "Mental",
+ "mental_limit": "Mental Limit",
"mentallimit": "Mental Limit:",
"metamagic": "Metamagic",
"metatype": "Metatype",
@@ -254,6 +256,7 @@
"persona": "Persona",
"personal": "Personal Data",
"physical": "Physical",
+ "physical_limit": "Physical Limit",
"physicalbonus": "Physical Bonus",
"physicaldamagetrack": "Physical Damage Track",
"physicallimit":"Physical Limit:",
@@ -270,6 +273,7 @@
"plot": "Plot",
"power": "Power",
"powers": "Powers",
+ "pr": "Professional Rating",
"prep":"Prep...",
"primary": "Primary",
"primaryarmor": "Primary Armor",
@@ -277,7 +281,6 @@
"primarymeleeweapon": "Primary Melee Weapon",
"primaryrangedweapon": "Primary Ranged Weapon",
"programs": "Programs",
- "pr": "Professional Rating",
"projectileweapons": "Projectile Weapons",
"public": "Public",
"publicawareness": "Public Awereness",
@@ -319,6 +322,7 @@
"soak": "Soak",
"soakbonus": "Soak Bonus",
"social": "Social",
+ "social_limit": "Social Limit",
"sociallimit": "Social Limit: ",
"socialskills": "Social Skills",
"software": "Software",