include fields.pug // A secondary attribute. mixin secAttr(label, attr, title) .attribute(title=title) +input('hidden', attr + '_calc') label= label +bubble('TOTAL'): +readOnly(attr + '_total') +bubble('NORMAL'): +readOnly(attr) +bubble('MODIFIER'): +input('number', attr + '_mod') // Thresholds are like hit points. mixin threshold(label, attr, title) .attribute.threshold label= label +bubble('MAX')(title=title): +readOnly(attr + '_max') +bubble('CURRENT')(title=title): +input('number', attr) .secondaryAttrs .column .attrsHeader .boxedIcon.iconPhysicalInteraction h2 Physical interaction .attrsInner .intPool.rollable +secAttr('Interaction Pool', 'intPool', '(Dex + Ref) This is the dice pool a robot has to strike, grab, or otherwise manually interact with an unwilling robot or other mobile object.') +rollButton('intPool_calc') +secAttr('TN to be struck', 'tn2bStruck', '(Mobil + Ref) A robot\'s TN to be struck may not be higher than 10.') +secAttr('Damage from Strike', 'dmgFromStrike', '(Str/2, round down) This is how much damage a robot can inflict by simply smashing its body or limbs into another object.') .column .attrsHeader .boxedIcon.iconMovement h2 Movement .attrsInner .initiative.rollable +secAttr('Initiative', 'initiative', '(1d10 + Ref) This measures which robots will act first in a conflict or other event where multiple robots attempt to act before each other.') +rollButton('initiative_calc') +secAttr('Speed', 'speed', '(Mobil + Ref) This determines how fast a robot can move from one place to another. A robot\'s speed is equal to its speed in kilometers per hour during long journeys, or meters per round during conflict situations.') .column .attrsHeader .boxedIcon.iconThresholds h2 Thresholds .attrsInner +threshold('OS Threshold', 'osThreshold', '(DigiCon + Buffer) This is a measure of how resilient and self-sustaining the robot\'s "brain" is.') +threshold('Damage Threshold', 'dmgThreshold', '(Durability + Size) This is a measure of how hardy and resilient the robot\'s physical body is.')