From 656865669e432fd75161a6cef71f57edb4acea50 Mon Sep 17 00:00:00 2001 From: nealterrell Date: Thu, 24 Sep 2015 12:05:49 -0700 Subject: [PATCH] Select skill level and friendliness when creating a game to auto-populate game title. --- src/cljs/netrunner/gamelobby.cljs | 24 +++++++++++++++++++++++- src/css/base.styl | 6 ++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/cljs/netrunner/gamelobby.cljs b/src/cljs/netrunner/gamelobby.cljs index 52223ff188..e2133d40a5 100644 --- a/src/cljs/netrunner/gamelobby.cljs +++ b/src/cljs/netrunner/gamelobby.cljs @@ -49,7 +49,9 @@ (defn new-game [cursor owner] (authenticated (fn [user] - (om/set-state! owner :title (str (:username user) "'s game")) + (om/set-state! owner :title "Friendly game") + (om/set-state! owner :skill-level "Intermediate") + (om/set-state! owner :game-type "Friendly") (om/set-state! owner :editing true) (om/set-state! owner :allowspectator true) (-> ".game-title" js/$ .select)))) @@ -64,6 +66,12 @@ (send {:action "create" :title (om/get-state owner :title) :allowspectator (om/get-state owner :allowspectator)})))))) +(defn auto-game-title [skill game-type] + (cond + (= game-type "Private") "Private game" + (= skill "Intermediate") (str game-type " game") + :else (str game-type " game for " (clojure.string/lower-case skill) "s"))) + (defn join-game [gameid owner] (authenticated (fn [user] @@ -195,6 +203,20 @@ [:div.button-bar [:button {:type "button" :on-click #(create-game cursor owner)} "Create"] [:button {:type "button" :on-click #(om/set-state! owner :editing false)} "Cancel"]] + [:h4 "Game Type"] + [:select.game-type {:value (:game-type state) + :on-change #(do (om/set-state! owner :game-type (.. % -target -value)) + (om/set-state! owner :title (auto-game-title (:skill-level state) + (.. % -target -value))))} + (for [option ["Private" "Friendly" "Serious" "Tournament"]] + [:option {:value option :dangerouslySetInnerHTML #js {:__html option}}])] + [:h4 "Skill Level"] + [:select.game-skill {:value (:skill-level state) + :on-change #(do (om/set-state! owner :skill-level (.. % -target -value)) + (om/set-state! owner :title (auto-game-title (.. % -target -value) + (:game-type state))))} + (for [option ["Beginner" "Intermediate" "Expert"]] + [:option {:value option :dangerouslySetInnerHTML #js {:__html option}}])] [:h4 "Title"] [:input.game-title {:on-change #(om/set-state! owner :title (.. % -target -value)) :value (:title state) :placeholder "Title"}] diff --git a/src/css/base.styl b/src/css/base.styl index 78ffd2f54c..70193db22e 100644 --- a/src/css/base.styl +++ b/src/css/base.styl @@ -1007,6 +1007,12 @@ nav ul .game-title width: 250px + .game-skill + width: 150px + + .game-type + width: 150px + .deck-collection width: 496px max-height: 355px