mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 03:40:32 +00:00
- Added Auto and Auto Mode fields for weapons to allow for Single, Burst and Full-Auto weapons
This commit is contained in:
@@ -1920,8 +1920,13 @@ sheet-vehicle h3 {
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
/* Do not know why I've had to do this but header spans just do not line up */
|
||||
.sheet-laf-header-offset span:nth-child(n + 3) {
|
||||
margin-left: -10px;
|
||||
}
|
||||
|
||||
.sheet-laf-weaponlist {
|
||||
grid-template-columns: 0.3fr 2.5fr 1.25fr 1fr 1fr 1fr 1fr 1fr 1fr;
|
||||
grid-template-columns: 0.3fr 2fr 0.75fr 1fr 1fr 0.5fr 0.5fr 0.5fr 0.5fr 0.5fr 0.7fr;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
@@ -1930,14 +1935,17 @@ sheet-vehicle h3 {
|
||||
}
|
||||
|
||||
.sheet-laf-weaponlist textarea {
|
||||
grid-column: 1 / 10;
|
||||
/* height: 30px !important; */
|
||||
grid-column: 1 / 12;
|
||||
}
|
||||
|
||||
.sheet-laf-weaponlist select {
|
||||
width: 85px;
|
||||
}
|
||||
|
||||
.sheet-laf-weaponlist input {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.sheet-laf-ship {
|
||||
grid-template-columns: 2fr 5fr 1fr 5fr 1fr 1fr 1fr;
|
||||
margin-bottom: 3px;
|
||||
|
||||
@@ -1956,14 +1956,21 @@
|
||||
<div class="sheet-row-panel">
|
||||
<br>
|
||||
<h3 data-i18n="weaponstitle-u">Weapons</h3>
|
||||
<div class="sheet-laf-centredgrid sheet-laf-weaponlist sheet-bold">
|
||||
<span data-i18n="weaponroll-u">Roll</span> <span data-i18n="weaponweapon-u">Weapon</span>
|
||||
<span data-i18n="weaponskilltotal-u">Skill Total</span> <span data-i18n="weapondicemod-u">DM</span>
|
||||
<span data-i18n="weapondamage-u">Damage</span> <span data-i18n="weapontechlevel-u">TL</span>
|
||||
<span data-i18n="weaponrange-u">Range</span> <span data-i18n="weaponweight-u">KG</span>
|
||||
<span data-i18n="weaponmagazine-u">Magazine</span>
|
||||
<div class="sheet-laf-centredgrid sheet-laf-weaponlist sheet-bold sheet-redborder sheet-laf-header-offset">
|
||||
<span data-i18n="weaponroll-u">Roll</span>
|
||||
<span data-i18n="weaponweapon-u">Weapon</span>
|
||||
<span data-i18n="weaponskilltotal-u">Skill Total</span>
|
||||
<span data-i18n="weapondicemod-u">DM</span>
|
||||
<span data-i18n="weapondamage-u">Damage</span>
|
||||
<span data-i18n="weapontechlevel-u">TL</span>
|
||||
<span data-i18n="weaponrange-u">Range</span>
|
||||
<span data-i18n="weaponweight-u">KG</span>
|
||||
<span data-i18n="weaponmagazine-u">Mag.</span>
|
||||
<span data-i18n="weaponauto-u">Auto</span>
|
||||
<span data-i18n="weaponautomode-u">Mode</span>
|
||||
</div>
|
||||
<div class="sheet-laf-centredgrid sheet-laf-weaponlist sheet-redborder">
|
||||
|
||||
<button class="sheet-weaponroll" name="act_roll-weapon-1" type="action">
|
||||
<div class="sheet-weaponrollbutton">b</div>
|
||||
</button>
|
||||
@@ -1978,6 +1985,12 @@
|
||||
<input class="sheet-input" type="text" name="attr_weapon_range-1" value="0"/>
|
||||
<input class="sheet-input" type="number" name="attr_weapon_weight-1" value="0" step="0.05"/>
|
||||
<input class="sheet-input" type="text" name="attr_weapon_magazine-1" value="0"/>
|
||||
<input class="sheet-input" type="number" name="attr_weapon_auto-1" value="0"/>
|
||||
<select class="sheet-input" name="attr_weapon_automode-1">
|
||||
<option>Single</option>
|
||||
<option>Burst</option>
|
||||
<option>Full-Auto</option>
|
||||
</select>
|
||||
<textarea class="sheet-input sheet-laf-wauto" name="attr_weapon_note-1"></textarea>
|
||||
</div>
|
||||
<div class="sheet-laf-centredgrid sheet-laf-weaponlist sheet-redborder">
|
||||
@@ -1995,6 +2008,12 @@
|
||||
<input class="sheet-weaponrange sheet-input" type="text" name="attr_weapon_range-2" value="0"/>
|
||||
<input class="sheet-weaponweight sheet-input" type="number" name="attr_weapon_weight-2" value="0" step="0.05"/>
|
||||
<input class="sheet-weaponmag sheet-input" type="text" name="attr_weapon_magazine-2" value="0"/>
|
||||
<input class="sheet-weaponmag sheet-input" type="number" name="attr_weapon_auto-2" value="0"/>
|
||||
<select class="sheet-input" name="attr_weapon_automode-2">
|
||||
<option>Single</option>
|
||||
<option>Burst</option>
|
||||
<option>Full-Auto</option>
|
||||
</select>
|
||||
<textarea class="sheet-input sheet-laf-wauto" name="attr_weapon_note-2"></textarea>
|
||||
</div>
|
||||
<div class="sheet-laf-centredgrid sheet-laf-weaponlist sheet-redborder">
|
||||
@@ -2012,6 +2031,12 @@
|
||||
<input class="sheet-weaponrange sheet-input" type="text" name="attr_weapon_range-3" value="0"/>
|
||||
<input class="sheet-weaponweight sheet-input" type="number" name="attr_weapon_weight-3" value="0" step="0.05"/>
|
||||
<input class="sheet-weaponmag sheet-input" type="text" name="attr_weapon_magazine-3" value="0"/>
|
||||
<input class="sheet-weaponmag sheet-input" type="number" name="attr_weapon_auto-3" value="0"/>
|
||||
<select class="sheet-input" name="attr_weapon_automode-3">
|
||||
<option>Single</option>
|
||||
<option>Burst</option>
|
||||
<option>Full-Auto</option>
|
||||
</select>
|
||||
<textarea class="sheet-input sheet-laf-wauto" name="attr_weapon_note-3"></textarea>
|
||||
</div>
|
||||
<div class="sheet-laf-centredgrid sheet-laf-weaponlist sheet-redborder">
|
||||
@@ -2029,6 +2054,12 @@
|
||||
<input class="sheet-weaponrange sheet-input" type="text" name="attr_weapon_range-4" value="0"/>
|
||||
<input class="sheet-weaponweight sheet-input" type="number" name="attr_weapon_weight-4" value="0" step="0.05"/>
|
||||
<input class="sheet-weaponmag sheet-input" type="text" name="attr_weapon_magazine-4" value="0"/>
|
||||
<input class="sheet-weaponmag sheet-input" type="number" name="attr_weapon_auto-4" value="0"/>
|
||||
<select class="sheet-input" name="attr_weapon_automode-4">
|
||||
<option>Single</option>
|
||||
<option>Burst</option>
|
||||
<option>Full-Auto</option>
|
||||
</select>
|
||||
<textarea class="sheet-input sheet-laf-wauto" name="attr_weapon_note-4"></textarea>
|
||||
</div>
|
||||
<div class="sheet-laf-centredgrid sheet-laf-weaponlist sheet-redborder">
|
||||
@@ -2046,6 +2077,12 @@
|
||||
<input class="sheet-weaponrange sheet-input" type="text" name="attr_weapon_range-5" value="0"/>
|
||||
<input class="sheet-weaponweight sheet-input" type="number" name="attr_weapon_weight-5" value="0" step="0.05"/>
|
||||
<input class="sheet-weaponmag sheet-input" type="text" name="attr_weapon_magazine-5" value="0"/>
|
||||
<input class="sheet-weaponmag sheet-input" type="number" name="attr_weapon_auto-5" value="0"/>
|
||||
<select class="sheet-input" name="attr_weapon_automode-5">
|
||||
<option>Single</option>
|
||||
<option>Burst</option>
|
||||
<option>Full-Auto</option>
|
||||
</select>
|
||||
<textarea class="sheet-input sheet-laf-wauto" name="attr_weapon_note-5"></textarea>
|
||||
</div>
|
||||
<div class="sheet-laf-centredgrid sheet-laf-weaponlist sheet-redborder">
|
||||
@@ -2063,6 +2100,12 @@
|
||||
<input class="sheet-weaponrange sheet-input" type="text" name="attr_weapon_range-6" value="0"/>
|
||||
<input class="sheet-weaponweight sheet-input" type="number" name="attr_weapon_weight-6" value="0" step="0.05"/>
|
||||
<input class="sheet-weaponmag sheet-input" type="text" name="attr_weapon_magazine-6" value="0"/>
|
||||
<input class="sheet-weaponmag sheet-input" type="number" name="attr_weapon_auto-6" value="0"/>
|
||||
<select class="sheet-input" name="attr_weapon_automode-6">
|
||||
<option>Single</option>
|
||||
<option>Burst</option>
|
||||
<option>Full-Auto</option>
|
||||
</select>
|
||||
<textarea class="sheet-input sheet-laf-wauto" name="attr_weapon_note-6"></textarea>
|
||||
</div>
|
||||
<fieldset class="repeating_weapons">
|
||||
@@ -2082,6 +2125,12 @@
|
||||
<input class="sheet-weaponrange sheet-input" type="text" name="attr_weapon_range-rep" value="0"/>
|
||||
<input class="sheet-weaponweight sheet-input" type="number" name="attr_weapon_weight-rep" value="0" step="0.05"/>
|
||||
<input class="sheet-weaponmag sheet-input" type="text" name="attr_weapon_magazine-rep" value="0"/>
|
||||
<input class="sheet-weaponmag sheet-input" type="number" name="attr_weapon_auto-rep" value="0"/>
|
||||
<select class="sheet-input" name="attr_weapon_automode-rep">
|
||||
<option>Single</option>
|
||||
<option>Burst</option>
|
||||
<option>Full-Auto</option>
|
||||
</select>
|
||||
<textarea class="sheet-input sheet-laf-wauto" name="attr_weapon_note-rep"></textarea>
|
||||
</div>
|
||||
</fieldset>
|
||||
@@ -2670,7 +2719,7 @@
|
||||
<div class="sheet-redborder">
|
||||
<h3 data-i18n="shipweapons-u">Weapons</h3>
|
||||
<div class="sheet-weaponlist">
|
||||
<div class="sheet-laf-centredgrid sheet-laf-weaponlist sheet-bold">
|
||||
<div class="sheet-laf-centredgrid sheet-laf-weaponlist sheet-bold sheet-laf-header-offset">
|
||||
<span data-i18n="weaponroll-u">Roll</span>
|
||||
<span data-i18n="weaponweapon-u">Weapon</span>
|
||||
<span data-i18n="weaponskilltotal-u">Skill Total</span>
|
||||
@@ -2680,8 +2729,10 @@
|
||||
<span data-i18n="weaponrange-u">Range</span>
|
||||
<span data-i18n="weaponweight-u">KG</span>
|
||||
<span data-i18n="weaponmagazine-u">Magazine</span>
|
||||
<span data-i18n="weaponauto-u">Auto</span>
|
||||
<span data-i18n="weaponautomode-u">Mode</span>
|
||||
</div>
|
||||
<div class="sheet-laf-centredgrid sheet-laf-weaponlist">
|
||||
<div class="sheet-laf-centredgrid sheet-laf-weaponlist sheet-redborder">
|
||||
<button class="sheet-weaponroll" name="act_roll-weapon-1" type="action">
|
||||
<div class="sheet-weaponrollbutton">b</div>
|
||||
</button>
|
||||
@@ -2695,10 +2746,16 @@
|
||||
<input class="sheet-input" type="text" name="attr_weapon_range-1" value="0"/>
|
||||
<input class="sheet-input" type="number" name="attr_weapon_weight-1" value="0" step="0.05"/>
|
||||
<input class="sheet-input" type="text" name="attr_weapon_magazine-1" value="0"/>
|
||||
<input class="sheet-input" type="number" name="attr_weapon_auto-1" value="0"/>
|
||||
<select class="sheet-input" name="attr_weapon_automode-1">
|
||||
<option>Single</option>
|
||||
<option>Burst</option>
|
||||
<option>Full-Auto</option>
|
||||
</select>
|
||||
<textarea class="sheet-input sheet-laf-wauto" name="attr_weapon_note-1"></textarea>
|
||||
</div>
|
||||
<fieldset class="repeating_weapons">
|
||||
<div class="sheet-laf-centredgrid sheet-laf-weaponlist">
|
||||
<div class="sheet-laf-centredgrid sheet-laf-weaponlist sheet-redborder">
|
||||
<button class="sheet-weaponroll" name="act_roll-weapon-rep" type="action">
|
||||
<div class="sheet-weaponrollbutton">b</div>
|
||||
</button>
|
||||
@@ -2714,6 +2771,12 @@
|
||||
<input class="sheet-weaponrange sheet-input" type="text" name="attr_weapon_range-rep" value="0"/>
|
||||
<input class="sheet-weaponweight sheet-input" type="number" name="attr_weapon_weight-rep" value="0" step="0.05"/>
|
||||
<input class="sheet-weaponmag sheet-input" type="text" name="attr_weapon_magazine-rep" value="0"/>
|
||||
<input class="sheet-weaponmag sheet-input" type="number" name="attr_weapon_auto-rep" value="0"/>
|
||||
<select class="sheet-input" name="attr_weapon_automode-rep">
|
||||
<option>Single</option>
|
||||
<option>Burst</option>
|
||||
<option>Full-Auto</option>
|
||||
</select>
|
||||
<textarea class="sheet-input sheet-laf-wauto" name="attr_weapon_note-rep"></textarea>
|
||||
</div>
|
||||
</fieldset>
|
||||
@@ -6212,15 +6275,122 @@
|
||||
|
||||
console.log("MgT2E: Roll weapon: " + JSON.stringify(info));
|
||||
|
||||
getAttrs(["weapon_damage-" + weapon], values => {
|
||||
getAttrs(["weapon_damage-" + weapon, "weapon_auto-" + weapon, "weapon_automode-" + weapon], values => {
|
||||
|
||||
// Check if auto is set,
|
||||
let autoValue = +values["weapon_auto-" + weapon];
|
||||
console.log("MgT2E: Auto: " + autoValue);
|
||||
let burstDamage = 0;
|
||||
let weaponSuffix = "";
|
||||
let fullAuto = false;
|
||||
if(autoValue > 0) {
|
||||
|
||||
// Need to check the mode, single, burst or full-auto, if full auto then need to run the
|
||||
// roll template multiple times
|
||||
switch(values["weapon_automode-" + weapon]) {
|
||||
case "Single":
|
||||
// normal combat rules
|
||||
autoValue = 1;
|
||||
break;
|
||||
case "Burst":
|
||||
// Add auto value to damage
|
||||
burstDamage = autoValue;
|
||||
autoValue = 1;
|
||||
break;
|
||||
case "Full-Auto":
|
||||
fullAuto = true;
|
||||
break;
|
||||
default:
|
||||
console.log("Unknown value for auto-mode: " + values["weapon_damage-automode-" + weapon]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
autoValue = 1;
|
||||
}
|
||||
|
||||
const wD = formatWeaponDamage(values["weapon_damage-" + weapon]);
|
||||
|
||||
startRoll("@{whispertoggle}&{template:combat@{alt_rolltemplate_val}} {{character=@{character_name}}} {{weapon=@{weapon_name-" + weapon + "}}} {{effect=[[0D6]]}} @{ro_default_rolltype} + @{weapon_DM-" + weapon + "}[DM] + @{weapon_skill-" + weapon + "}[Skill] @{ro_default_mod}]]}} {{damage=[[" + wD.weaponDamage + "]]}} {{effect=''}} {{range=@{weapon_range-" + weapon + "}}}", (results) => {
|
||||
for(let i=1; i<=autoValue; i++) {
|
||||
// If doing Full-Auto then add a suffix
|
||||
weaponSuffix = fullAuto ? " [" + i + "]" : "";
|
||||
startRoll("@{whispertoggle}&{template:combat@{alt_rolltemplate_val}} {{character=@{character_name}}} {{weapon=@{weapon_name-" + weapon + "}" + weaponSuffix + "}} {{effect=[[0D6]]}} @{ro_default_rolltype} + @{weapon_DM-" + weapon + "}[DM] + @{weapon_skill-" + weapon + "}[Skill] @{ro_default_mod}]]}} {{damage=[[" + wD.weaponDamage + "+" + burstDamage + "]]}} {{effect=''}} {{range=@{weapon_range-" + weapon + "}}}", (results) => {
|
||||
const toHit = results.results.roll.result;
|
||||
var damage = results.results.damage.result
|
||||
|
||||
console.log("MgT2E: Roll weapon: " + JSON.stringify(results.results.damage));
|
||||
var effect = 0;
|
||||
if(toHit > 8 && !wD.isDestructive) {
|
||||
damage += (toHit - 8);
|
||||
effect = toHit - 8;
|
||||
}
|
||||
|
||||
finishRoll(
|
||||
results.rollId,
|
||||
{
|
||||
roll: toHit,
|
||||
damage: damage,
|
||||
effect: effect
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
on("clicked:repeating_weapons:roll-weapon-rep", (info) => {
|
||||
|
||||
const rowId = info.sourceAttribute.split('_')[2];
|
||||
const weaponName = "repeating_weapons_" + rowId + "_weapon_name-rep";
|
||||
const weaponDM = "repeating_weapons_" + rowId + "_weapon_DM-rep";
|
||||
const weaponSkill = "repeating_weapons_" + rowId + "_weapon_skill-rep";
|
||||
const weaponDamage = "repeating_weapons_" + rowId + "_weapon_damage-rep";
|
||||
const weaponRange = "repeating_weapons_" + rowId + "_weapon_range-rep";
|
||||
const weaponAuto = "repeating_weapons_" + rowId + "_weapon_auto-rep";
|
||||
const weaponAutoMode = "repeating_weapons_" + rowId + "_weapon_automode-rep";
|
||||
|
||||
getAttrs([weaponDamage, weaponAuto, weaponAutoMode], values => {
|
||||
|
||||
// Check if auto is set,
|
||||
let autoValue = +values[weaponAuto];
|
||||
console.log("MgT2E: Auto: " + autoValue);
|
||||
let burstDamage = 0;
|
||||
let weaponSuffix = "";
|
||||
let fullAuto = false;
|
||||
if(autoValue > 0) {
|
||||
|
||||
// Need to check the mode, single, burst or full-auto, if full auto then need to run the
|
||||
// roll template multiple times
|
||||
switch(values[weaponAutoMode]) {
|
||||
case "Single":
|
||||
// normal combat rules
|
||||
autoValue = 1;
|
||||
break;
|
||||
case "Burst":
|
||||
// Add auto value to damage
|
||||
burstDamage = autoValue;
|
||||
autoValue = 1;
|
||||
break;
|
||||
case "Full-Auto":
|
||||
fullAuto = true;
|
||||
break;
|
||||
default:
|
||||
console.log("Unknown value for auto-mode: " + values[weaponAutoMode]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
autoValue = 1;
|
||||
}
|
||||
|
||||
const wD = formatWeaponDamage(values[weaponDamage]);
|
||||
|
||||
for(let i=1; i<=autoValue; i++) {
|
||||
// If doing Full-Auto then add a suffix
|
||||
weaponSuffix = fullAuto ? " [" + i + "]" : "";
|
||||
|
||||
startRoll("@{whispertoggle}&{template:combat@{alt_rolltemplate_val}} {{character=@{character_name}}} {{weapon=@{" + weaponName + "}" + weaponSuffix + "}} {{effect=[[0D6]]}} @{ro_default_rolltype} + @{" + weaponDM + "}[DM] + @{" + weaponSkill + "}[Skill] @{ro_default_mod}]]}} {{damage=[[" + wD.weaponDamage + "+" + burstDamage + "]]}} {{range=@{" + weaponRange + "}}}", (results) => {
|
||||
const toHit = results.results.roll.result;
|
||||
var damage = results.results.damage.result
|
||||
|
||||
console.log("MgT2E: Roll weapon: " + JSON.stringify(results.results.damage));
|
||||
var effect = 0;
|
||||
if(toHit > 8 && !wD.isDestructive) {
|
||||
damage += (toHit - 8);
|
||||
@@ -6236,41 +6406,7 @@
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
on("clicked:repeating_weapons:roll-weapon-rep", (info) => {
|
||||
|
||||
const rowId = info.sourceAttribute.split('_')[2];
|
||||
const weaponName = "repeating_weapons_" + rowId + "_weapon_name-rep";
|
||||
const weaponDM = "repeating_weapons_" + rowId + "_weapon_DM-rep";
|
||||
const weaponSkill = "repeating_weapons_" + rowId + "_weapon_skill-rep";
|
||||
const weaponDamage = "repeating_weapons_" + rowId + "_weapon_damage-rep";
|
||||
const weaponRange = "repeating_weapons_" + rowId + "_weapon_range-rep";
|
||||
|
||||
getAttrs([weaponDamage], values => {
|
||||
|
||||
const wD = formatWeaponDamage(values[weaponDamage]);
|
||||
|
||||
startRoll("@{whispertoggle}&{template:combat@{alt_rolltemplate_val}} {{character=@{character_name}}} {{weapon=@{" + weaponName + "}}} {{effect=[[0D6]]}} @{ro_default_rolltype} + @{" + weaponDM + "}[DM] + @{" + weaponSkill + "}[Skill] @{ro_default_mod}]]}} {{damage=[[" + wD.weaponDamage + "]]}} {{range=@{" + weaponRange + "}}}", (results) => {
|
||||
const toHit = results.results.roll.result;
|
||||
var damage = results.results.damage.result
|
||||
var effect = 0;
|
||||
if(toHit > 8 && !wD.isDestructive) {
|
||||
damage += (toHit - 8);
|
||||
effect = toHit - 8;
|
||||
}
|
||||
|
||||
finishRoll(
|
||||
results.rollId,
|
||||
{
|
||||
roll: toHit,
|
||||
damage: damage,
|
||||
effect: effect
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -9790,6 +9926,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -87,13 +87,15 @@
|
||||
"weaponstitle-u": "Weapons",
|
||||
"weaponroll-u": "Roll",
|
||||
"weaponweapon-u": "Weapon",
|
||||
"weaponskilltotal-u": "Skill Total",
|
||||
"weaponskilltotal-u": "Skill",
|
||||
"weapondicemod-u": "DM",
|
||||
"weapondamage-u": "Damage",
|
||||
"weapontechlevel-u": "TL",
|
||||
"weaponrange-u": "Range",
|
||||
"weaponweight-u": "KG",
|
||||
"weaponmagazine-u": "Magazine",
|
||||
"weaponmagazine-u": "Mag.",
|
||||
"weaponauto-u": "Auto",
|
||||
"weaponautomode-u": "Mode",
|
||||
"powerstitle-u": "Powers",
|
||||
"notestitle-u": "Notes",
|
||||
"legacy-u": "Legacy",
|
||||
|
||||
Reference in New Issue
Block a user