From a3362d1cb6ed02df691687bef189962e160658e6 Mon Sep 17 00:00:00 2001 From: Sean Leonard Date: Fri, 18 Dec 2020 13:03:17 -0800 Subject: [PATCH 1/2] Feat weapon proficiency choice range 1-5 --- src/cljs/orcpub/dnd/e5/views.cljs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cljs/orcpub/dnd/e5/views.cljs b/src/cljs/orcpub/dnd/e5/views.cljs index 66efd5b1d..5c2b840ca 100644 --- a/src/cljs/orcpub/dnd/e5/views.cljs +++ b/src/cljs/orcpub/dnd/e5/views.cljs @@ -4581,7 +4581,7 @@ (= num (get-in feat [:props kw])) false #(dispatch [::feats/toggle-feat-value-prop kw num])])]) - (range 3 5)))]]) + (range 1 5)))]]) (defn option-armor-proficiency [option toggle-map-prop-event] [:div.m-b-20 From ab91813e508589e12b495816b5b62288d0409b36 Mon Sep 17 00:00:00 2001 From: Sean Leonard Date: Fri, 18 Dec 2020 13:06:45 -0800 Subject: [PATCH 2/2] --wip-- [skip ci] --- src/cljs/orcpub/dnd/e5/events.cljs | 31 ++++++++++++++++++++++++++++++ src/cljs/orcpub/dnd/e5/views.cljs | 26 +++++++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/src/cljs/orcpub/dnd/e5/events.cljs b/src/cljs/orcpub/dnd/e5/events.cljs index 61ce26eb7..6a8c83ab9 100644 --- a/src/cljs/orcpub/dnd/e5/events.cljs +++ b/src/cljs/orcpub/dnd/e5/events.cljs @@ -2685,6 +2685,15 @@ (dissoc m key) (assoc m key num)))))) +(reg-event-db + ::bg5e/toggle-feature-value-prop + background-interceptors + (fn [background [_ key num]] + (update background :props (fn [m] + (if (= (get m key) num) + (dissoc m key) + (assoc m key num)))))) + (reg-event-db ::race5e/toggle-race-prop race-interceptors @@ -3535,6 +3544,28 @@ (fn [race [_ index]] (update race :spells common/remove-at-index index))) +(reg-event-db + ::feats5e/set-feat-spell-level + feat-interceptors + (fn [feat [_ index level]] + (cond-> feat + (nil? (:spells feat)) (assoc :spells []) + true (assoc-in [:spells index :level] level)))) + +(reg-event-db + ::feats5e/set-feat-spell-value + feat-interceptors + (fn [feat [_ index value]] + (cond-> feat + (nil? (:spells feat)) (assoc :spells []) + true (assoc-in [:spells index :value] value)))) + +(reg-event-db + ::feats5e/delete-feat-spell + feat-interceptors + (fn [feat [_ index]] + (update feat :spells common/remove-at-index index))) + (defn reg-option-traits [option-name option-key interceptors] (reg-event-db (keyword "orcpub.dnd.e5" diff --git a/src/cljs/orcpub/dnd/e5/views.cljs b/src/cljs/orcpub/dnd/e5/views.cljs index 5c2b840ca..f6f7bcfa0 100644 --- a/src/cljs/orcpub/dnd/e5/views.cljs +++ b/src/cljs/orcpub/dnd/e5/views.cljs @@ -4429,6 +4429,30 @@ [:div.f-s-18.f-w-b.m-b-10 "Other Tools"] [tool-prof-checkboxes background equip/misc-tools]]]) +(defn background-weapon-proficiency [background] + [:div.m-b-20 + [:div.f-s-18.f-w-b.m-b-10 "Weapon Proficiency"] + [:div.flex.flex-wrap + [:div.m-r-20.m-b-10 + (let [kw :improvised-weapons-prof] + [comps/labeled-checkbox + "You gain proficiency with improvised weapons" + (get-in background [:props kw]) + false + #(dispatch [::bg/toggle-background-prop kw])])] + (doall + (map + (fn [num] + ^{:key num} + [:div.m-r-20.m-b-10 + (let [kw :weapon-prof-choice] + [comps/labeled-checkbox + (str "You gain proficiency with " num " weapons of your choice") + (= num (get-in background [:props kw])) + false + #(dispatch [::bg/toggle-feature-value-prop kw num])])]) + (range 1 5)))]]) + (defn background-starting-equipment [background] [:div.m-t-20.m-b-20 [:div.f-s-24.f-w-b.m-b-10 "Starting Equipment"] @@ -4988,6 +5012,7 @@ [:div [feat-initiative-bonuses feat]] [:div [feat-misc-modifiers feat]] [:div [feat-spellcasting feat]] + [:div [option-spells feat ::feats/set-feat-spell-level ::feats/set-feat-spell-value ::feats/delete-feat-spell]] [:div [option-skill-proficiency-or-expertise feat ::feats/toggle-feat-map-prop]] [:div [option-tool-proficiency-or-expertise feat ::feats/toggle-feat-map-prop]]])) @@ -6081,6 +6106,7 @@ [:div [background-skill-proficiencies background]] [:div [background-languages background]] [:div [background-tool-proficiencies background]] + [:div [background-weapon-proficiency background]] [:div [background-starting-equipment background]] [:div [option-traits