|
1762 | 1762 | [:div.f-w-b.m-b-5 label] |
1763 | 1763 | [dropdown cfg]]) |
1764 | 1764 |
|
| 1765 | +(defn button-roll-fn [message roll] |
| 1766 | + (fn [e] |
| 1767 | + (if (.-shiftKey e) |
| 1768 | + (dispatch [:show-message-2 (str message " w/ Disadvantage: " (dice/dice-roll-text-2 roll) " | " (dice/dice-roll-text-2 roll))])) |
| 1769 | + (if (.-ctrlKey e) |
| 1770 | + (dispatch [:show-message-2 (str message " w/ Advantage: " (dice/dice-roll-text-2 roll) " | " (dice/dice-roll-text-2 roll))])) |
| 1771 | + (and (not (.-ctrlKey e)) (not (.-shiftKey e)) |
| 1772 | + (dispatch [:show-message-2 (str message " " (dice/dice-roll-text-2 roll))])))) |
| 1773 | + |
| 1774 | +(def button-roll-handler (memoize button-roll-fn)) |
| 1775 | + |
1765 | 1776 | (defn cast-spell-component [] |
1766 | 1777 | (let [selected-level (r/atom nil)] |
1767 | 1778 | (fn [id lvl] |
|
1820 | 1831 | [:td.p-l-10.p-b-10.p-t-10 (if ability (s/upper-case (common/safe-name ability)))] |
1821 | 1832 | [:td.p-l-10.p-b-10.p-t-10 (get cls-mods :spell-save-dc)] |
1822 | 1833 | [:td.p-l-10.p-b-10.p-t-10 (common/bonus-str (get cls-mods :spell-attack-modifier))] |
1823 | | - [:td.p-l-10.p-b-10.p-t-10 [:button.form-button-checks |
1824 | | - {:on-click #(dispatch [:show-message-2 (str (:name spell) " attack " (dice/dice-roll-text-2 (str "1d20" (common/bonus-str (get cls-mods :spell-attack-modifier)))))])} |
1825 | | - "Roll"]] |
| 1834 | + [:td.p-l-10.p-b-10.p-t-10 [:div.tooltip [:button.roll-button |
| 1835 | + {:on-click (button-roll-handler (str (:name spell) " attack: ") (str "1d20" (common/bonus-str (get cls-mods :spell-attack-modifier))))} |
| 1836 | + "Roll"] [:span.tooltiptext "ctrl+click for advantage shift+click for disadvantage"]]] |
1826 | 1837 | [:td.p-l-10.p-b-10.p-t-10.pointer.orange |
1827 | 1838 | {:on-click on-click} |
1828 | 1839 | [:i.fa |
|
2166 | 2177 | {:class (csk/->kebab-case title)} |
2167 | 2178 | v]] |
2168 | 2179 | (if (boolean show-button) |
2169 | | - [:div.f-s-24.f-w-b [:button.form-button-checks |
2170 | | - {:on-click #(dispatch [:show-message-2 (str title " check " (dice/dice-roll-text-2 (str "1d20" v)))])} |
2171 | | - "Roll"]])]) |
| 2180 | + [:div.f-s-24.f-w-b [:div.tooltip [:button.roll-button |
| 2181 | + {:on-click (button-roll-handler (str title " check: ") (str "1d20" v))} |
| 2182 | + "Roll"] [:span.tooltiptext "ctrl+click for advantage shift+click for disadvantage"]]])]) |
2172 | 2183 |
|
2173 | 2184 | (def current-hit-points-editor-style |
2174 | 2185 | {:width "60px" |
|
2246 | 2257 | (svg-icon icon 18) |
2247 | 2258 | [:span.m-l-5 skill-name]]] |
2248 | 2259 | [:td [:div.p-5.skillbonus (common/bonus-str (skill-bonuses skill-key))]] |
2249 | | - [:td [:button.form-button-checks |
2250 | | - {:on-click #(dispatch [:show-message-2 (str skill-name " check " (dice/dice-roll-text-2 (str "1d20" (common/mod-str (skill-bonuses skill-key)))))])} |
2251 | | - "Roll"]]]) |
| 2260 | + [:td [:div.tooltip [:button.roll-button |
| 2261 | + {:on-click (button-roll-handler (str skill-name " check: ") (str "1d20" (common/mod-str (skill-bonuses skill-key))))} |
| 2262 | + "Roll"][:span.tooltiptext "ctrl+click for advantage shift+click for disadvantage"]]]]) |
2252 | 2263 | skills/skills))]]]])) |
2253 | 2264 |
|
2254 | 2265 | (defn ability-scores-section-2 [id] |
|
2289 | 2300 | (t/ability-icon k 18 theme) |
2290 | 2301 | [:span.m-l-5.saving-throw-name (s/upper-case (name k))]]] |
2291 | 2302 | [:td [:div.p-5.saving-throw-bonus (common/bonus-str (save-bonuses k))]] |
2292 | | - [:td [:button.form-button-checks |
2293 | | - {:on-click #(dispatch [:show-message-2 (str (s/upper-case (name k)) " check " (dice/dice-roll-text-2 (str "1d20" (common/mod-str (save-bonuses k)))))])} |
2294 | | - "Roll"]]]) |
| 2303 | + [:td [:div.tooltip [:button.roll-button |
| 2304 | + {:on-click (button-roll-handler (str (s/upper-case (name k)) " check: ") (str "1d20" (common/mod-str (save-bonuses k))))} |
| 2305 | + "Roll"][:span.tooltiptext "ctrl+click for advantage shift+click for disadvantage"]]]]) |
2295 | 2306 | char/ability-keys))]]])) |
2296 | 2307 |
|
2297 | 2308 | (defn feet-str [num] |
|
2711 | 2722 | droll (str damage-die-count "d" damage-die)] |
2712 | 2723 | (if (not= type :ammunition) |
2713 | 2724 | ^{:key weapon-key} |
2714 | | - [:tr.weapon |
2715 | | - [:td.p-10.f-w-b (or (:name weapon) |
2716 | | - (::mi/name weapon))] |
2717 | | - (if (not mobile?) |
2718 | | - [:td.p-10 (boolean-icon proficient?)]) |
2719 | | - [:td.p-10.w-100-p |
2720 | | - [:div |
2721 | | - (weapon-attack-description weapon damage-modifier nil)] |
2722 | | - (if expanded? |
2723 | | - (weapon-details weapon weapon-damage-modifier))] |
2724 | | - |
2725 | | - [:td.p-10.f-w-b.f-s-18 (common/bonus-str (weapon-attack-modifier weapon))] |
2726 | | - [:td [:button.form-button-checks |
2727 | | - {:on-click #(dispatch [:show-message-2 (str name " attack " (dice/dice-roll-text-2 (str "1d20" (common/mod-str (weapon-attack-modifier weapon)))))])} |
2728 | | - "Attack"]] |
2729 | | - [:td [:button.form-button-checks |
2730 | | - {:on-click #(dispatch [:show-message-2 (str name " damage " (dice/dice-roll-text-2 (str droll (common/mod-str (weapon-attack-modifier weapon)))))])} |
2731 | | - "Damage"]] |
2732 | | - [:td.pointer |
2733 | | - {:on-click (toggle-details-expanded-handler expanded-details weapon-key)} |
2734 | | - [:div.orange |
2735 | | - #_(if (not mobile?) |
2736 | | - [:span.underline (if expanded? "less" "more")]) |
2737 | | - [:i.fa.m-l-5 |
2738 | | - {:class-name (if expanded? "fa-caret-up" "fa-caret-down")}]]]]))) |
| 2725 | + [:tr.weapon |
| 2726 | + [:td.p-10.f-w-b (or (:name weapon) |
| 2727 | + (::mi/name weapon))] |
| 2728 | + (if (not mobile?) |
| 2729 | + [:td.p-10 (boolean-icon proficient?)]) |
| 2730 | + [:td.p-10.w-100-p |
| 2731 | + [:div |
| 2732 | + (weapon-attack-description weapon damage-modifier nil)] |
| 2733 | + (if expanded? |
| 2734 | + (weapon-details weapon weapon-damage-modifier))] |
| 2735 | + |
| 2736 | + [:td.p-10.f-w-b.f-s-18 (common/bonus-str (weapon-attack-modifier weapon))] |
| 2737 | + [:td [:div.tooltip [:button.roll-button |
| 2738 | + {:on-click (button-roll-handler (str name " attack: ") (str "1d20" (common/mod-str (weapon-attack-modifier weapon))))} |
| 2739 | + "Attack"] [:span.tooltiptext "ctrl+click for advantage shift+click for disadvantage"]]] |
| 2740 | + [:td [:button.roll-button |
| 2741 | + {:on-click (button-roll-handler (str name " damage: ") (str damage-die-count "d" damage-die (common/mod-str (weapon-attack-modifier weapon))))} |
| 2742 | + "Damage"]] |
| 2743 | + [:td.pointer |
| 2744 | + {:on-click (toggle-details-expanded-handler expanded-details weapon-key)} |
| 2745 | + [:div.orange |
| 2746 | + #_(if (not mobile?) |
| 2747 | + [:span.underline (if expanded? "less" "more")]) |
| 2748 | + [:i.fa.m-l-5 |
| 2749 | + {:class-name (if expanded? "fa-caret-up" "fa-caret-down")}]]]]))) |
2739 | 2750 | all-weapons))]]]])))) |
2740 | 2751 |
|
2741 | 2752 | (defn magic-item-rows [expanded-details magic-item-cfgs magic-weapon-cfgs magic-armor-cfgs] |
|
2904 | 2915 | (if skill-expertise |
2905 | 2916 | [:td.p-10 (boolean-icon expertise?)]) |
2906 | 2917 | [:td.p-10.f-s-18.f-w-b (common/bonus-str (key skill-bonuses))] |
2907 | | - [:td [:button.form-button-checks |
2908 | | - {:on-click #(dispatch [:show-message-2 (str name " check " (dice/dice-roll-text-2 (str "1d20" (common/mod-str (key skill-bonuses)))))])} |
2909 | | - "Roll"]] |
| 2918 | + [:td [:div.tooltip [:button.roll-button |
| 2919 | + {:on-click (button-roll-handler (str name " check: ") (str "1d20" (common/mod-str (key skill-bonuses))))} |
| 2920 | + "Roll"][:span.tooltiptext "ctrl+click for advantage shift+click for disadvantage"]]] |
2910 | 2921 | ])) |
2911 | 2922 | skills/skills))]]]])))) |
2912 | 2923 |
|
|
0 commit comments