Skip to content

Commit 26678c9

Browse files
committed
Add ctrl+click for advantage shift+click for disadvantage and tool tips
1 parent c694211 commit 26678c9

File tree

3 files changed

+58
-43
lines changed

3 files changed

+58
-43
lines changed

src/clj/orcpub/styles/core.clj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,8 @@
457457
:margin-left "-60px"
458458
:background-color "black"
459459
:font-family "Open Sans, sans-serif"
460+
:font-size "14px"
461+
:font-weight "normal"
460462
:color "#fff"
461463
:text-align "center"
462464
:padding "10px 10px"
@@ -1085,7 +1087,7 @@
10851087
:cursor :pointer
10861088
:background-image "linear-gradient(to bottom, #f1a20f, #dbab50)"}]
10871089

1088-
[:.form-button-checks
1090+
[:.roll-button
10891091
{:color :white
10901092
:font-weight 600
10911093
:font-size "9px"

src/cljc/orcpub/dice.cljc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,10 @@
6262
mod (* raw-mod plus-minus)
6363
rolls (roll-n num sides)
6464
total (apply + mod rolls)]
65-
(prn (str "total:" total " roll:" rolls " plus-minus:" plus-minus-str " raw-mod:" raw-mod " dice-text:" dice-text))
66-
(str total " = " rolls " " plus-minus-str " " raw-mod))))
65+
;(prn (str "total:" total " roll:" rolls " plus-minus:" plus-minus-str " raw-mod:" raw-mod " dice-text:" dice-text))
66+
(if (boolean (re-find #"(20)" (str rolls)))
67+
(str " *** NATURAL 20 *** " rolls " " plus-minus-str " " raw-mod " = " total)
68+
(str rolls " " plus-minus-str " " raw-mod " = " total)))))
6769

6870
(spec/def ::num pos-int?)
6971
(spec/def ::sides pos-int?)

src/cljs/orcpub/dnd/e5/views.cljs

Lines changed: 51 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1762,6 +1762,17 @@
17621762
[:div.f-w-b.m-b-5 label]
17631763
[dropdown cfg]])
17641764

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+
17651776
(defn cast-spell-component []
17661777
(let [selected-level (r/atom nil)]
17671778
(fn [id lvl]
@@ -1820,9 +1831,9 @@
18201831
[:td.p-l-10.p-b-10.p-t-10 (if ability (s/upper-case (common/safe-name ability)))]
18211832
[:td.p-l-10.p-b-10.p-t-10 (get cls-mods :spell-save-dc)]
18221833
[: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"]]]
18261837
[:td.p-l-10.p-b-10.p-t-10.pointer.orange
18271838
{:on-click on-click}
18281839
[:i.fa
@@ -2166,9 +2177,9 @@
21662177
{:class (csk/->kebab-case title)}
21672178
v]]
21682179
(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"]]])])
21722183

21732184
(def current-hit-points-editor-style
21742185
{:width "60px"
@@ -2246,9 +2257,9 @@
22462257
(svg-icon icon 18)
22472258
[:span.m-l-5 skill-name]]]
22482259
[: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"]]]])
22522263
skills/skills))]]]]))
22532264

22542265
(defn ability-scores-section-2 [id]
@@ -2289,9 +2300,9 @@
22892300
(t/ability-icon k 18 theme)
22902301
[:span.m-l-5.saving-throw-name (s/upper-case (name k))]]]
22912302
[: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"]]]])
22952306
char/ability-keys))]]]))
22962307

22972308
(defn feet-str [num]
@@ -2711,31 +2722,31 @@
27112722
droll (str damage-die-count "d" damage-die)]
27122723
(if (not= type :ammunition)
27132724
^{: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")}]]]])))
27392750
all-weapons))]]]]))))
27402751

27412752
(defn magic-item-rows [expanded-details magic-item-cfgs magic-weapon-cfgs magic-armor-cfgs]
@@ -2904,9 +2915,9 @@
29042915
(if skill-expertise
29052916
[:td.p-10 (boolean-icon expertise?)])
29062917
[: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"]]]
29102921
]))
29112922
skills/skills))]]]]))))
29122923

0 commit comments

Comments
 (0)