Adding rollable dmg for ships
This commit is contained in:
@@ -6841,7 +6841,7 @@ div.sheet-charmancer div.sheet-licensedsheet-flag:not(:empty) ~ * .sheet-summary
|
||||
.charsheet .sheet-pc .sheet-pc-ship .sheet-weapon-systems .sheet-table-header {
|
||||
grid-template-columns: 45px 1fr 60px 30px 50px 70px;
|
||||
grid-gap: 2px;
|
||||
max-width: calc(50% - 10px);
|
||||
max-width: calc(50% - 30px);
|
||||
}
|
||||
.charsheet .sheet-pc .sheet-pc-ship .sheet-weapon-systems .sheet-table-header span {
|
||||
font-size: 11px;
|
||||
@@ -6853,6 +6853,22 @@ div.sheet-charmancer div.sheet-licensedsheet-flag:not(:empty) ~ * .sheet-summary
|
||||
}
|
||||
.charsheet .sheet-pc .sheet-pc-ship .sheet-weapon-systems .repcontainer .repitem {
|
||||
border-top: 2px solid #e2c285;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.charsheet .sheet-pc .sheet-pc-ship .sheet-weapon-systems .repcontainer .repitem button[type=roll] {
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
right: -20px;
|
||||
background: none;
|
||||
border: none;
|
||||
color: black;
|
||||
box-shadow: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-weight: bold;
|
||||
}
|
||||
.charsheet .sheet-pc .sheet-pc-ship .sheet-weapon-systems .repcontainer .repitem button[type=roll]:hover {
|
||||
color: #00ba73;
|
||||
}
|
||||
.charsheet .sheet-pc .sheet-pc-ship .sheet-weapon-systems .repcontainer .repitem .sheet-table-body {
|
||||
grid-template-columns: 45px 1fr 60px 30px 50px 70px;
|
||||
|
||||
@@ -4523,6 +4523,9 @@
|
||||
<div class="sheet-damage-type"><span data-i18n="pc-ship-damage-type"></span></div>
|
||||
</div>
|
||||
<fieldset class="repeating_weapon-systems">
|
||||
<input type="hidden" name="attr_rollbase" value="@{wtype}&{template:atk} {{mod=@{tohit}}} {{rname=[@{weapon}](~repeating_weapon-systems_atkdmg)}} {{rnamec=[@{weapon}](~repeating_weapon-systems_atkdmgc)}} {{r1=[[@{d20} + @{tohit}]]}} {{normal=1}} {{r2=[[0d20]]}} {{range=@{range}}} {{desc=@{special}}} ammo=@{ammo} @{charname_output} {{licensedsheet=@{licensedsheet}}}"/>
|
||||
<input type="hidden" name="attr_atkdmg" value=""/>
|
||||
<input type="hidden" name="attr_atkdmgc" value=""/>
|
||||
<div class="sheet-grid-container table-body">
|
||||
<div class="sheet-gunner">
|
||||
<input type="text" name="attr_gunner"/>
|
||||
@@ -4556,6 +4559,9 @@
|
||||
<input type="checkbox" name="attr_recharge" value="1"/>
|
||||
</label>
|
||||
</div>
|
||||
<button class="hidden" type="roll" value="@{atkdmg}" name="roll_atkdmg"></button>
|
||||
<button class="hidden" type="roll" value="@{atkdmgc}" name="roll_atkdmgc"></button>
|
||||
<button type="roll" value="@{rollbase}" name="roll_attack"> </button>
|
||||
</fieldset>
|
||||
<div><span data-i18n="weapon-systems-info"></span></div>
|
||||
</div>
|
||||
@@ -18692,6 +18698,42 @@ classRelatedAttrs.forEach(attr => {
|
||||
});
|
||||
});
|
||||
|
||||
/*
|
||||
@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d10]]}} {{dmg1type=}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output} {{licensedsheet=@{licensedsheet}}}
|
||||
on("change:repeating_tool:toolname change:repeating_tool:toolbonus_base change:repeating_tool:toolattr_base
|
||||
*/
|
||||
|
||||
var calcShipAtkdmgc = function(damage) {
|
||||
let damagec = damage + '';
|
||||
for(let i=20; i>=1; i--) {
|
||||
damagec = damagec.replace(`${i}d`, `${i*2}d`);
|
||||
damagec = damagec.replace(`${i}D`, `${i*2}D`);
|
||||
}
|
||||
return damagec;
|
||||
};
|
||||
var addShipDamageType = function(damage, type) {
|
||||
if(!damage || !type) return damage;
|
||||
return `${damage} [${type}]`;
|
||||
}
|
||||
on("change:repeating_weapon-systems", eventinfo => {
|
||||
if(!eventinfo.sourceType || eventinfo.sourceType != 'player' || eventinfo.sourceAttribute.includes('atkdmg')) return;
|
||||
const id = SheetUtils.getUID(eventinfo.triggerName);
|
||||
const pre = `repeating_weapon-systems_${id}`;
|
||||
const weaponAttributes = ['gunner', 'weapon', 'range', 'tohit', 'damage', 'dmgtype', 'special', 'ammo', 'recharge'].map(attr => { return `${pre}_${attr}`; });
|
||||
getAttrs(weaponAttributes, values => {
|
||||
if(values[`${pre}_damage`]) {
|
||||
const damage = addShipDamageType(values[`${pre}_damage`], values[`${pre}_dmgtype`]);
|
||||
const damagec = addShipDamageType(calcShipAtkdmgc(values[`${pre}_damage`]), values[`${pre}_dmgtype`]);
|
||||
const atkdmg = `@{wtype}&{template:dmg} {{rname=@{weapon}}} {{attack=1}} {{range=@{range}}} {{damage=1}} {{dmg1flag=1}} {{dmg1=[[${damage}]]}} {{dmg1type=${values[`${pre}_dmgtype`]}}} {{desc=@{special}}} @{charname_output} {{licensedsheet=@{licensedsheet}}}`;
|
||||
const atkdmgc = `@{wtype}&{template:dmg} {{rname=@{weapon}}} {{attack=1}} {{range=@{range}}} {{damage=1}} {{dmg1flag=1}} {{dmg1=[[${damagec}]]}} {{dmg1type=${values[`${pre}_dmgtype`]}}} {{desc=@{special}}} @{charname_output} {{licensedsheet=@{licensedsheet}}}`;
|
||||
const update = {
|
||||
[`${pre}_atkdmg`]: atkdmg,
|
||||
[`${pre}_atkdmgc`]: atkdmgc,
|
||||
}
|
||||
setAttrs(update, {silent: true});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
//# sourceURL=espergenesis.js
|
||||
|
||||
@@ -6795,7 +6795,7 @@ div.sheet-charmancer
|
||||
.sheet-table-header
|
||||
grid-template-columns: 45px 1fr 60px 30px 50px 70px
|
||||
grid-gap: 2px
|
||||
max-width: calc(50% - 10px)
|
||||
max-width: calc(50% - 30px)
|
||||
span
|
||||
font-size: 11px
|
||||
|
||||
@@ -6806,6 +6806,21 @@ div.sheet-charmancer
|
||||
|
||||
.repitem
|
||||
border-top: 2px solid #e2c285
|
||||
margin-right: 20px
|
||||
|
||||
button[type='roll']
|
||||
position: absolute
|
||||
top: 4px
|
||||
right: -20px
|
||||
background: none
|
||||
border: none
|
||||
color: black
|
||||
box-shadow: none
|
||||
margin: 0
|
||||
padding: 0
|
||||
font-weight: bold
|
||||
&:hover
|
||||
color: #00ba73
|
||||
|
||||
.sheet-table-body
|
||||
grid-template-columns: 45px 1fr 60px 30px 50px 70px
|
||||
|
||||
@@ -3652,6 +3652,42 @@ classRelatedAttrs.forEach(attr => {
|
||||
});
|
||||
});
|
||||
|
||||
/*
|
||||
@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d10]]}} {{dmg1type=}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output} {{licensedsheet=@{licensedsheet}}}
|
||||
on("change:repeating_tool:toolname change:repeating_tool:toolbonus_base change:repeating_tool:toolattr_base
|
||||
*/
|
||||
|
||||
var calcShipAtkdmgc = function(damage) {
|
||||
let damagec = damage + '';
|
||||
for(let i=20; i>=1; i--) {
|
||||
damagec = damagec.replace(`${i}d`, `${i*2}d`);
|
||||
damagec = damagec.replace(`${i}D`, `${i*2}D`);
|
||||
}
|
||||
return damagec;
|
||||
};
|
||||
var addShipDamageType = function(damage, type) {
|
||||
if(!damage || !type) return damage;
|
||||
return `${damage} [${type}]`;
|
||||
}
|
||||
on("change:repeating_weapon-systems", eventinfo => {
|
||||
if(!eventinfo.sourceType || eventinfo.sourceType != 'player' || eventinfo.sourceAttribute.includes('atkdmg')) return;
|
||||
const id = SheetUtils.getUID(eventinfo.triggerName);
|
||||
const pre = `repeating_weapon-systems_${id}`;
|
||||
const weaponAttributes = ['gunner', 'weapon', 'range', 'tohit', 'damage', 'dmgtype', 'special', 'ammo', 'recharge'].map(attr => { return `${pre}_${attr}`; });
|
||||
getAttrs(weaponAttributes, values => {
|
||||
if(values[`${pre}_damage`]) {
|
||||
const damage = addShipDamageType(values[`${pre}_damage`], values[`${pre}_dmgtype`]);
|
||||
const damagec = addShipDamageType(calcShipAtkdmgc(values[`${pre}_damage`]), values[`${pre}_dmgtype`]);
|
||||
const atkdmg = `@{wtype}&{template:dmg} {{rname=@{weapon}}} {{attack=1}} {{range=@{range}}} {{damage=1}} {{dmg1flag=1}} {{dmg1=[[${damage}]]}} {{dmg1type=${values[`${pre}_dmgtype`]}}} {{desc=@{special}}} @{charname_output} {{licensedsheet=@{licensedsheet}}}`;
|
||||
const atkdmgc = `@{wtype}&{template:dmg} {{rname=@{weapon}}} {{attack=1}} {{range=@{range}}} {{damage=1}} {{dmg1flag=1}} {{dmg1=[[${damagec}]]}} {{dmg1type=${values[`${pre}_dmgtype`]}}} {{desc=@{special}}} @{charname_output} {{licensedsheet=@{licensedsheet}}}`;
|
||||
const update = {
|
||||
[`${pre}_atkdmg`]: atkdmg,
|
||||
[`${pre}_atkdmgc`]: atkdmgc,
|
||||
}
|
||||
setAttrs(update, {silent: true});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
//# sourceURL=espergenesis.js
|
||||
|
||||
@@ -276,6 +276,9 @@ mixin armorClassOrManeuverEntry(name)
|
||||
span(data-i18n='pc-ship-damage-type')
|
||||
|
||||
+repeatingSection('weapon-systems')
|
||||
input(type='hidden' name='attr_rollbase' value!='@{wtype}&{template:atk} {{mod=@{tohit}}} {{rname=[@{weapon}](~repeating_weapon-systems_atkdmg)}} {{rnamec=[@{weapon}](~repeating_weapon-systems_atkdmgc)}} {{r1=[[@{d20} + @{tohit}]]}} {{normal=1}} {{r2=[[0d20]]}} {{range=@{range}}} {{desc=@{special}}} ammo=@{ammo} @{charname_output} {{licensedsheet=@{licensedsheet}}}')
|
||||
input(type='hidden' name='attr_atkdmg' value!='')
|
||||
input(type='hidden' name='attr_atkdmgc' value!='')
|
||||
.sheet-grid-container.table-body
|
||||
.sheet-gunner
|
||||
input(type='text' name='attr_gunner')
|
||||
@@ -301,6 +304,9 @@ mixin armorClassOrManeuverEntry(name)
|
||||
input(type='checkbox' name='attr_recharge' value='3')
|
||||
input(type='checkbox' name='attr_recharge' value='2')
|
||||
input(type='checkbox' name='attr_recharge' value='1')
|
||||
button.hidden(type='roll' value!='@{atkdmg}' name='roll_atkdmg')
|
||||
button.hidden(type='roll' value!='@{atkdmgc}' name='roll_atkdmgc')
|
||||
button(type='roll' value!='@{rollbase}' name='roll_attack')
|
||||
|
||||
div
|
||||
span(data-i18n='weapon-systems-info')
|
||||
Reference in New Issue
Block a user