1
0
mirror of https://github.com/exane/not-gwent-online synced 2024-11-23 19:36:53 +00:00
This commit is contained in:
devfake 2015-06-23 15:10:07 +02:00
commit dbe76f7038
7 changed files with 88 additions and 3035 deletions

2
.gitignore vendored
View File

@ -10,4 +10,4 @@ test/spec
/site/client/node_modules /site/client/node_modules
/site/public/assets/js/bundle.js /site/public/assets/js/bundle.js
/site/public/assets/css/app.css /site/public/assets/css/app.css
/site/server/composer.lock site/server/composer.lock

View File

@ -22,7 +22,7 @@ module.exports = {
discard = this.filter(discard, { discard = this.filter(discard, {
"ability": "hero", "ability": "hero",
"type": card.constructor.TYPE.SPECIAL "type": [card.constructor.TYPE.SPECIAL, card.constructor.TYPE.WEATHER]
}) })
this.send("played:medic", { this.send("played:medic", {

View File

@ -7,7 +7,7 @@ module.exports = {
"poor_fucking_infantry", "poor_fucking_infantry",
"yarpen_zigrin", "yarpen_zigrin",
"blue_stripes_commando", "blue_stripes_commando",
"sigismunt_dijkstra", "sigismund_dijkstra",
"prince_stennis", "prince_stennis",
"siegfried_of_denesle", "siegfried_of_denesle",
"ves", "ves",

View File

@ -62,11 +62,15 @@ var Battle = (function(){
this.p1.draw(10); this.p1.draw(10);
this.p2.draw(10); this.p2.draw(10);
/*this.p1.hand.add(Card("commanders_horn")); /*this.p1.hand.add(Card("commanders_horn"));
this.p2.hand.add(Card("commanders_horn"));*//* this.p2.hand.add(Card("commanders_horn"));*/
/*
this.p1.hand.add(Card("ciaran_aep_easnillien")); this.p1.hand.add(Card("ciaran_aep_easnillien"));
this.p2.hand.add(Card("ciaran_aep_easnillien"));*//* this.p2.hand.add(Card("ciaran_aep_easnillien"));*/
*//*this.p1.hand.add(Card("decoy")); /*
this.p2.hand.add(Card("decoy"));*//* */
/*this.p1.hand.add(Card("decoy"));
this.p2.hand.add(Card("decoy"));*/
/*
this.p1.hand.add(Card("milva")); this.p1.hand.add(Card("milva"));
this.p2.hand.add(Card("milva")); this.p2.hand.add(Card("milva"));
this.p1.hand.add(Card("havekar_healer")); this.p1.hand.add(Card("havekar_healer"));
@ -87,7 +91,8 @@ var Battle = (function(){
this.p1.hand.add(Card("torrential_rain")); this.p1.hand.add(Card("torrential_rain"));
this.p2.hand.add(Card("torrential_rain")); this.p2.hand.add(Card("torrential_rain"));
this.p1.hand.add(Card("clear_weather")); this.p1.hand.add(Card("clear_weather"));
this.p2.hand.add(Card("clear_weather"));*//* this.p2.hand.add(Card("clear_weather"));*/
/*
this.p1.hand.add(Card("kaedweni_siege_expert")); this.p1.hand.add(Card("kaedweni_siege_expert"));
this.p2.hand.add(Card("kaedweni_siege_expert")); this.p2.hand.add(Card("kaedweni_siege_expert"));
this.p1.hand.add(Card("ballista")); this.p1.hand.add(Card("ballista"));
@ -127,6 +132,8 @@ var Battle = (function(){
r.switchTurn = function(side, __flag){ r.switchTurn = function(side, __flag){
__flag = typeof __flag == "undefined" ? 0 : 1; __flag = typeof __flag == "undefined" ? 0 : 1;
/*side.foe.wait();*/
if(!(side instanceof Battleside)){ if(!(side instanceof Battleside)){
console.trace("side is not a battleside!"); console.trace("side is not a battleside!");
@ -140,7 +147,10 @@ var Battle = (function(){
} }
this.runEvent("EachTurn"); this.runEvent("EachTurn");
//setTimeout(function() {
this.runEvent("Turn" + side.getID()); this.runEvent("Turn" + side.getID());
//}.bind(this), 1000);
console.log("current Turn: ", side.getName()); console.log("current Turn: ", side.getName());
} }
@ -253,7 +263,7 @@ var Battle = (function(){
delete this.events[event][uid]; delete this.events[event][uid];
return; return;
} }
for(var _uid in this.events[event]){ for(var _uid in this.events[event]) {
this.events[event][_uid] = null; this.events[event][_uid] = null;
delete this.events[event][_uid]; delete this.events[event][_uid];
} }

View File

@ -143,6 +143,10 @@ Battleside = (function(){
return this._passing; return this._passing;
} }
r.isWaiting = function() {
return this._isWaiting;
}
r.setUpWeatherFieldWith = function(p2){ r.setUpWeatherFieldWith = function(p2){
this.field[Card.TYPE.WEATHER] = p2.field[Card.TYPE.WEATHER] = Field(this); this.field[Card.TYPE.WEATHER] = p2.field[Card.TYPE.WEATHER] = Field(this);
} }
@ -277,6 +281,8 @@ Battleside = (function(){
r.playCard = function(card){ r.playCard = function(card){
if(card === null || card === -1) return; if(card === null || card === -1) return;
if(this.isWaiting()) return;
if(this.isPassing()) return;
if(!this.placeCard(card)) return; if(!this.placeCard(card)) return;
@ -291,7 +297,7 @@ Battleside = (function(){
r.placeCard = function(card, obj){ r.placeCard = function(card, obj){
obj = _.extend({}, obj); obj = _.extend({}, obj);
if(typeof card === "string" ) { if(typeof card === "string"){
card = Card(card); card = Card(card);
} }
@ -337,7 +343,7 @@ Battleside = (function(){
card = Card(card); card = Card(card);
} }
if(typeof field === "number") { if(typeof field === "number"){
card.changeType(field); card.changeType(field);
this.placeCard(card, { this.placeCard(card, {
isHorn: field, isHorn: field,
@ -409,7 +415,7 @@ Battleside = (function(){
if(ability.onBeforePlace){ if(ability.onBeforePlace){
ability.onBeforePlace.apply(this, [card]); ability.onBeforePlace.apply(this, [card]);
} }
if(ability.isCommandersHornCard && !obj.isHorn){ if(ability.isCommandersHornCard && typeof obj.isHorn === "undefined"){
this.setHorn(card); this.setHorn(card);
} }
if(ability.commandersHorn){ if(ability.commandersHorn){
@ -529,8 +535,9 @@ Battleside = (function(){
var cards1 = this.field[Card.TYPE.CLOSE_COMBAT].removeAll(); var cards1 = this.field[Card.TYPE.CLOSE_COMBAT].removeAll();
var cards2 = this.field[Card.TYPE.RANGED].removeAll(); var cards2 = this.field[Card.TYPE.RANGED].removeAll();
var cards3 = this.field[Card.TYPE.SIEGE].removeAll(); var cards3 = this.field[Card.TYPE.SIEGE].removeAll();
var cards4 = this.field[Card.TYPE.WEATHER].removeAll();
var cards = cards1.concat(cards2.concat(cards3)); var cards = cards1.concat(cards2.concat(cards3.concat(cards4)));
this.addToDiscard(cards); this.addToDiscard(cards);
} }
@ -586,6 +593,18 @@ Battleside = (function(){
res.push(card); res.push(card);
} }
} }
else if(_.isArray(val)) {
var _f = false;
for(var i = 0; i < val.length; i++) {
if(property === val[i]){
_f = true;
break;
}
}
if(!_f){
res.push(card);
}
}
else if(card.getProperty(prop) !== val){ else if(card.getProperty(prop) !== val){
res.push(card); res.push(card);
} }

2993
site/server/composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -5,20 +5,22 @@ var data = require("../../assets/data/abilities");
describe("filter", function(){ describe("filter", function(){
var card, side, filter, cards; var card, side, filter, cards;
beforeEach(function(){ beforeEach(function(){
filter = Battleside.prototype.filter; filter = Battleside.prototype.filter;
cards = []; cards = [];
cards.push(Card("iorveth")); cards.push(Card("iorveth")); //hero
cards.push(Card("toruviel")); cards.push(Card("toruviel")); //normal
cards.push(Card("isengrim_faoiltiarnah")); cards.push(Card("isengrim_faoiltiarnah")); //hero
cards.push(Card("decoy")); cards.push(Card("decoy")); //special
cards.push(Card("impenetrable_fog")); //special
}) })
it("it should filter heroes out", function(){ it("it should filter heroes out", function(){
var res = filter(cards, { var res = filter(cards, {
"ability": "hero" "ability": "hero"
}) })
expect(res.length).toBe(2); expect(res.length).toBe(3);
}) })
it("it should filter hero and special cards out", function(){ it("it should filter hero and special cards out", function(){
@ -26,6 +28,21 @@ describe("filter", function(){
"ability": "hero", "ability": "hero",
"type": Card.TYPE.SPECIAL "type": Card.TYPE.SPECIAL
}) })
expect(res.length).toBe(2);
})
it("it should filter 2 types out", function(){
var res = filter(cards, {
"type": [Card.TYPE.SPECIAL, Card.TYPE.WEATHER]
})
expect(res.length).toBe(3);
})
it("it should filter 2 types and hero out", function(){
var res = filter(cards, {
"ability": "hero",
"type": [Card.TYPE.SPECIAL, Card.TYPE.WEATHER]
})
expect(res.length).toBe(1); expect(res.length).toBe(1);
}) })