From 07cf48e857eaa61fe4f862746abd670b3d1226d0 Mon Sep 17 00:00:00 2001 From: Tissevert Date: Tue, 14 Jan 2020 22:14:55 +0100 Subject: [PATCH] =?UTF-8?q?Starting=20to=20try=20and=20make=20modules=20ou?= =?UTF-8?q?t=20of=20the=20class=20Cards=20(WIP=20:=20will=20require=20a=20?= =?UTF-8?q?stateful=20=C2=ABGame.Context=C2=BB=20module=20and=20all=20kind?= =?UTF-8?q?=20of=20uglyness)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/GUI/Card.js | 26 +++++++++++----------- js/GUI/Card/RiverCard.js | 45 ++++++++++++++++++++++----------------- js/GUI/Card/TurnedCard.js | 11 +++++----- 3 files changed, 45 insertions(+), 37 deletions(-) diff --git a/js/GUI/Card.js b/js/GUI/Card.js index 8bb9acf..82cdd11 100644 --- a/js/GUI/Card.js +++ b/js/GUI/Card.js @@ -2,20 +2,20 @@ import Hanafuda; import * as Dom from UnitJS.Dom; function Card(name) { - this.value = Hanafuda.Card[name]; - this.name = name; - this.dom = Dom.make('li', { - class: [ - "card", - "value" + Hanafuda.getValue(this.value), - "month" + this.value.flower - ], - onClick: this.onClick() - }); + var value = Hanafuda.Card[name]; + var dom = Dom.make('li', { + class: [ + "card", + "value" + Hanafuda.getValue(this.value), + "month" + this.value.flower + ] + }); + return { + value: value, + dom: dom + }; } -Card.prototype.onClick = function() {return function() {};}; - return { - Card: Card + make: Card }; diff --git a/js/GUI/Card/RiverCard.js b/js/GUI/Card/RiverCard.js index b4335d5..ba51be1 100644 --- a/js/GUI/Card/RiverCard.js +++ b/js/GUI/Card/RiverCard.js @@ -1,27 +1,34 @@ +import * as Card from GUI.Card; -function RiverCard() { - Card.apply(this, arguments); - this.candidate = false; +function RiverCard(name) { + var card = Card.make(name); + var candidate = false; + card.onClick = onClick; + card.setCandidate = setCandidate; + return card; + + function onClick() { + return function() { + if(candidate) { + var withCard = selected.name; + selected.setSelected(false); + play( + status.step == 'ToPlay' ? {capture: [withCard, card.name]} : {choose: card.name} + ); + } + }; + } + + function setCandidate() { + candidate = yes; + card.dom.classList.toggle("candidate", yes); + } } RiverCard.prototype.onClick = function() { - var card = this; - return function() { - if(card.candidate) { - var withCard = selected.name; - selected.setSelected(false); - play( - status.step == 'ToPlay' ? {capture: [withCard, card.name]} : {choose: card.name} - ); - } - }; + var card = this; }; -RiverCard.prototype.setCandidate = function(yes) { - this.candidate = yes; - this.dom.classList.toggle("candidate", yes); -} - return { - RiverCard: RiverCard + make: RiverCard }; diff --git a/js/GUI/Card/TurnedCard.js b/js/GUI/Card/TurnedCard.js index 8f34546..dbf79f3 100644 --- a/js/GUI/Card/TurnedCard.js +++ b/js/GUI/Card/TurnedCard.js @@ -1,13 +1,14 @@ +import * as Card from GUI.Card; -function TurnedCard() { - Card.apply(this, arguments); - this.dom.id = "turned"; - deck.appendChild(this.dom); +function TurnedCard(name) { + var card = Card.make(name); + card.dom.id = "turned"; + deck.appendChild(this.dom); } TurnedCard.prototype.onClick = Card.prototype.onClick; TurnedCard.prototype.setSelected = setSelected; return { - TurnedCard: TurnedCard + make: TurnedCard };