Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions src/cljs/orcpub/dnd/e5/events.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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"
Expand Down
28 changes: 27 additions & 1 deletion src/cljs/orcpub/dnd/e5/views.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
Expand Down Expand Up @@ -4581,7 +4605,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
Expand Down Expand Up @@ -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]]]))

Expand Down Expand Up @@ -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
Expand Down