diff options
Diffstat (limited to 'scripts/gui')
| -rw-r--r-- | scripts/gui/table.js | 42 | 
1 files changed, 35 insertions, 7 deletions
diff --git a/scripts/gui/table.js b/scripts/gui/table.js index 7199f83..5c65ed4 100644 --- a/scripts/gui/table.js +++ b/scripts/gui/table.js @@ -5,7 +5,7 @@ class Table{          this.drag = drag;          drag.addEventListener("dragstart", (e) => {console.log(e)}); -        drag.addEventListener("dragstop", (e) => {console.log(e)}); +        drag.addEventListener("dragstop", this.dragMsg.bind(this));          this.socket = socket; @@ -47,16 +47,16 @@ class Table{      }      /*   Deck and card functions   */ -    newDeck(options) +    newDeck(id, options)      { -        var d = new Deck(options); +        var d = new Deck(id, options);          this.decks.push(d);          this.root.appendChild(d.e);      } -    newCard(data, deck = 0) +    newCard(id, data, deck = 0)      { -        var c = new Card(data); +        var c = new Card(id, data);          this.decks[deck].appendCard(c);          this.drag.addTarget(c.e);      } @@ -66,13 +66,41 @@ class Table{          for(let d of this.decks)          {              if(d.isInside(x, y)) -                return true; +                return d;          } -        return false; +        return null; +    } + +    checkCard (el) +    { +        for(let d of this.decks) +        { +            let c = d.checkCard(el); +            if(c !== null) +                return c; +        } +        return null;      }      dragCheck(cap)      {          console.log(cap);      } + +    dragMsg (event) +    { +        if(event.drag.length < 1) +            return; + +        var c = this.checkCard(event.drag[0].e); +        var d = this.checkDeck(event.x, event.y); + +        if(c !== null) +        { +            if(d !== null) +                console.log({card: c.getID(), deck: d.getID()}); +            else +                c.resetPos(); +        } +    }  }  |