Commit graph

962 commits

Author SHA1 Message Date
Marc Zwart
3e32287f00 fixed Token/TokenImpl imports and references 2018-04-03 14:05:41 +02:00
Marc Zwart
532a190587 closed resources in savegame method of gamecontroller 2018-03-20 13:52:23 +01:00
Marc Zwart
4bc5a9bd61 Merge branches 'hotfix/close-unclosed-resources-mage-client', 'hotfix/close-streams-in-updater', 'hotfix/fix-non-closed-scanner' and 'hotfix/manapiechart-potential-zero-division' into feature/SonarqubeFixes 2018-03-20 13:03:28 +01:00
Marc Zwart
9912a23007 added quiet closing method in new streamutils class, used to clean up the connectdialog 2018-03-20 12:46:53 +01:00
LevelX2
b073ce1c42 * Added to all toUpperCase/toLowerCase calls the Locale.ENGLISH to prevent problems with some languages (e.g. Turkish). Removed some unused import statements. (#4634). 2018-03-18 18:18:54 +01:00
LevelX2
b046428f8c XMage 1.4.28V1 2018-03-17 23:59:34 +01:00
LevelX2
5925bdf259 * Fixed a problem that Spell objects were not handled always correctly in game view. 2018-03-16 18:25:28 +01:00
LevelX2
bd56b074a0 * Some minor changes to game end window. 2018-03-13 18:01:26 +01:00
LevelX2
fed2d1a259 XMage 1.4.28V0 2018-03-10 20:42:29 +01:00
LevelX2
b60522f9e4 Added option to activate/deactivate JSON game log. Added logic to write the logs to subdirectory. Some changes to SEND_PLAYER_ACTION type logging. 2018-03-10 00:04:56 +01:00
LevelX2
51c68842aa Some minor changes to JSON game log (#4587). 2018-03-08 23:40:55 +01:00
LevelX2
fedf254219
Merge pull request #4554 from hooptie45/topic/json-logs
[WIP] Consumable JSON game logs
2018-03-08 17:32:32 +01:00
spjspj
4c7b0d50d2 Add a 'spectators allowed' option for regular tables (aka non tournaments). 2018-03-08 23:31:51 +11:00
Shaun Hannah
4b331355de [WIP] SPIKE - gson @Expose 2018-02-26 19:24:00 -05:00
Shaun Hannah
6aeb3c7c3a [WIP] Consumable JSON game logs
As discussed in https://github.com/magefree/mage/issues/4515

This exposes a JSON log of game interactions that can be analyzed.

This is just a first pass, to get up to speed with how the messaging works. It'd like to trim down the messages much
further so they don't include redundant information in each message. Also gson supports much more advances serialization
options; such as using the @Expose annotation. We should probably use that, but I ran into some issues (I'm not a java
developer, so still learning).

TODO:
  These currently only exist on the client side; ideally we'd submit this logs back up to a central server after the
  games completion; thinking this could be simple via an S3 file drop, and a Lambda function to process and expose the
  logs; maybe via a kafka stream.

Examples of log messages are below:

```
{
  "gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
  "sessionId": "5c4o149-678483-je42ycva-1-je42ycw2-4",
  "type": "GAME_SELECT",
  "value": {
    "gameView": {
      "priorityTime": 3000,
      "players": [
        {
          "name": "computer",
          "life": 20,
          "counters": {}
        },
        {
          "name": "hooptie",
          "life": 20,
          "counters": {}
        }
      ],
      "hand": {
        "425d774f-ee0c-4a9b-8516-c98f886943f0": {
          "name": "Springleaf Drum",
          "power": "0",
          "toughness": "0",
          "loyalty": "",
          "manaCost": [
            "{1}"
          ],
          "convertedManaCost": 1,
          "type": 0,
          "paid": false,
          "id": "425d774f-ee0c-4a9b-8516-c98f886943f0"
        },
        "dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff": {
          "name": "Blade of the Bloodchief",
          "power": "0",
          "toughness": "0",
          "loyalty": "",
          "manaCost": [
            "{1}"
          ],
          "convertedManaCost": 1,
          "type": 0,
          "paid": false,
          "id": "dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff"
        },
        "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806": {
          "name": "Ornithopter",
          "power": "0",
          "toughness": "2",
          "loyalty": "",
          "manaCost": [
            "{0}"
          ],
          "convertedManaCost": 0,
          "type": 0,
          "paid": false,
          "id": "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
        },
        "a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64": {
          "name": "Springleaf Drum",
          "power": "0",
          "toughness": "0",
          "loyalty": "",
          "manaCost": [
            "{1}"
          ],
          "convertedManaCost": 1,
          "type": 0,
          "paid": false,
          "id": "a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64"
        },
        "91239f4f-9003-4c48-8ca1-4c318f892489": {
          "name": "Cranial Plating",
          "power": "0",
          "toughness": "0",
          "loyalty": "",
          "manaCost": [
            "{2}"
          ],
          "convertedManaCost": 2,
          "type": 0,
          "paid": false,
          "id": "91239f4f-9003-4c48-8ca1-4c318f892489"
        },
        "feb268d8-0535-4a9c-8915-83dd92a08c4c": {
          "name": "Arcbound Ravager",
          "power": "0",
          "toughness": "0",
          "loyalty": "",
          "manaCost": [
            "{2}"
          ],
          "convertedManaCost": 2,
          "type": 0,
          "paid": false,
          "id": "feb268d8-0535-4a9c-8915-83dd92a08c4c"
        }
      },
      "canPlayInHand": [
        "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
      ],
      "stack": {},
      "combat": [],
      "phase": "PRECOMBAT_MAIN",
      "step": "PRECOMBAT_MAIN"
    },
    "message": "Play spells and abilities.",
    "options": {
      "queryType": "SELECT"
    }
  }
}
{
  "gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
  "sessionId": "5c4o149-678483-je42ycva-1-je42ycw2-4",
  "type": "SEND_PLAYER_UUID",
  "value": "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
}
{
  "gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
  "sessionId": "5c4o149-678483-je42ycva-1-je42ycw2-4",
  "type": "GAME_CHOOSE_PILE",
  "value": {
    "choices": {
      "1ecf8671-be4c-4060-a76b-af614235a5b7": "Cast Ornithopter"
    }
  }
}
{
  "gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
  "sessionId": "5c4o149-3v2cj2-je43178o-1-je43179f-4",
  "type": "GAME_INIT",
  "value": {
    "priorityTime": 3000,
    "players": [
      {
        "name": "computer",
        "life": 20,
        "counters": {}
      },
      {
        "name": "hooptie",
        "life": 20,
        "counters": {}
      }
    ],
    "hand": {
      "425d774f-ee0c-4a9b-8516-c98f886943f0": {
        "name": "Springleaf Drum",
        "power": "0",
        "toughness": "0",
        "loyalty": "",
        "manaCost": [
          "{1}"
        ],
        "convertedManaCost": 1,
        "type": 0,
        "paid": false,
        "id": "425d774f-ee0c-4a9b-8516-c98f886943f0"
      },
      "dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff": {
        "name": "Blade of the Bloodchief",
        "power": "0",
        "toughness": "0",
        "loyalty": "",
        "manaCost": [
          "{1}"
        ],
        "convertedManaCost": 1,
        "type": 0,
        "paid": false,
        "id": "dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff"
      },
      "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806": {
        "name": "Ornithopter",
        "power": "0",
        "toughness": "2",
        "loyalty": "",
        "manaCost": [
          "{0}"
        ],
        "convertedManaCost": 0,
        "type": 0,
        "paid": false,
        "id": "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
      },
      "a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64": {
        "name": "Springleaf Drum",
        "power": "0",
        "toughness": "0",
        "loyalty": "",
        "manaCost": [
          "{1}"
        ],
        "convertedManaCost": 1,
        "type": 0,
        "paid": false,
        "id": "a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64"
      },
      "91239f4f-9003-4c48-8ca1-4c318f892489": {
        "name": "Cranial Plating",
        "power": "0",
        "toughness": "0",
        "loyalty": "",
        "manaCost": [
          "{2}"
        ],
        "convertedManaCost": 2,
        "type": 0,
        "paid": false,
        "id": "91239f4f-9003-4c48-8ca1-4c318f892489"
      },
      "feb268d8-0535-4a9c-8915-83dd92a08c4c": {
        "name": "Arcbound Ravager",
        "power": "0",
        "toughness": "0",
        "loyalty": "",
        "manaCost": [
          "{2}"
        ],
        "convertedManaCost": 2,
        "type": 0,
        "paid": false,
        "id": "feb268d8-0535-4a9c-8915-83dd92a08c4c"
      }
    },
    "canPlayInHand": [
      "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
    ],
    "stack": {},
    "combat": [],
    "phase": "PRECOMBAT_MAIN",
    "step": "PRECOMBAT_MAIN"
  }
}
{
  "gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
  "sessionId": "5c4o149-3v2cj2-je43178o-1-je43179f-4",
  "type": "GAME_SELECT",
  "value": {
    "gameView": {
      "priorityTime": 3000,
      "players": [
        {
          "name": "computer",
          "life": 20,
          "counters": {}
        },
        {
          "name": "hooptie",
          "life": 20,
          "counters": {}
        }
      ],
      "hand": {
        "425d774f-ee0c-4a9b-8516-c98f886943f0": {
          "name": "Springleaf Drum",
          "power": "0",
          "toughness": "0",
          "loyalty": "",
          "manaCost": [
            "{1}"
          ],
          "convertedManaCost": 1,
          "type": 0,
          "paid": false,
          "id": "425d774f-ee0c-4a9b-8516-c98f886943f0"
        },
        "dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff": {
          "name": "Blade of the Bloodchief",
          "power": "0",
          "toughness": "0",
          "loyalty": "",
          "manaCost": [
            "{1}"
          ],
          "convertedManaCost": 1,
          "type": 0,
          "paid": false,
          "id": "dd41bb4b-7fc3-4a3c-a69c-d18e281a1bff"
        },
        "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806": {
          "name": "Ornithopter",
          "power": "0",
          "toughness": "2",
          "loyalty": "",
          "manaCost": [
            "{0}"
          ],
          "convertedManaCost": 0,
          "type": 0,
          "paid": false,
          "id": "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
        },
        "a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64": {
          "name": "Springleaf Drum",
          "power": "0",
          "toughness": "0",
          "loyalty": "",
          "manaCost": [
            "{1}"
          ],
          "convertedManaCost": 1,
          "type": 0,
          "paid": false,
          "id": "a2f9cc13-e71a-4c9c-96aa-5424ea1a6b64"
        },
        "91239f4f-9003-4c48-8ca1-4c318f892489": {
          "name": "Cranial Plating",
          "power": "0",
          "toughness": "0",
          "loyalty": "",
          "manaCost": [
            "{2}"
          ],
          "convertedManaCost": 2,
          "type": 0,
          "paid": false,
          "id": "91239f4f-9003-4c48-8ca1-4c318f892489"
        },
        "feb268d8-0535-4a9c-8915-83dd92a08c4c": {
          "name": "Arcbound Ravager",
          "power": "0",
          "toughness": "0",
          "loyalty": "",
          "manaCost": [
            "{2}"
          ],
          "convertedManaCost": 2,
          "type": 0,
          "paid": false,
          "id": "feb268d8-0535-4a9c-8915-83dd92a08c4c"
        }
      },
      "canPlayInHand": [
        "06eb0a6c-1e70-4dc0-bd1c-93b6ea444806"
      ],
      "stack": {},
      "combat": [],
      "phase": "PRECOMBAT_MAIN",
      "step": "PRECOMBAT_MAIN"
    },
    "message": "Play spells and abilities.",
    "options": {
      "queryType": "SELECT"
    }
  }
}
{
  "gameId": "2cede8c5-ff8e-4f8c-b9ac-66af53c0a254",
  "sessionId": "5c4o149-678483-je42ycva-1-je42ycw2-4",
  "type": "SEND_PLAYER_UUID",
  "value": "1ecf8671-be4c-4060-a76b-af614235a5b7"
}
```
2018-02-26 19:23:00 -05:00
Plopman
bf3682fa77 Move confirmation OptionPane from SessionImpl to ConsolePanel 2018-02-22 00:09:51 +01:00
LevelX2
1ef84278c2
Merge pull request #4419 from rsypen/master
Fixed local server time in client's chat messages
2018-02-15 15:16:52 +01:00
L_J
3dbd5a72c4
Merge branch 'master' into Zzooouhh-banding-final 2018-02-15 00:49:08 +01:00
LevelX2
1d09168857 Xmage 1.4.27V4 2018-02-14 23:05:43 +01:00
L_J
f0ab1575f9
Banding arrow fix 2018-02-14 15:27:01 +00:00
LevelX2
3b19304f64 * Fixed that soulbond arrow to paired card was not shown and improved soulbond text on permanent. 2018-02-14 12:41:44 +01:00
L_J
e7301e2c08
Implemented banding (#41) 2018-02-13 20:36:25 +01:00
LevelX2
c13b16fa84 Xmage 1.4.27V3 2018-02-06 23:49:41 +01:00
LevelX2
7afc157ba0 xmage 1.4.27V2 2018-01-31 00:08:05 +01:00
LevelX2
62a40ab459 Xmage 1.7.27V1 2018-01-28 01:15:19 +01:00
rsypen
ccd121277a
Fixed local server time in client's chat messages 2018-01-15 09:17:35 +01:00
LevelX2
40afa04b24 xmage 1.4.27V0 2018-01-13 22:54:53 +01:00
LevelX2
2e3ba7e104 Added designation names to player tooltip. 2018-01-13 18:55:07 +01:00
LevelX2
4c9ed95662 Xmage 1.4.26V11d 2018-01-11 07:14:49 +01:00
LevelX2
fef0ef83ec xmage 1.4.26V11c 2018-01-08 22:59:35 +01:00
LevelX2
f814875410 Xmage 1.4.26V11b 2018-01-07 22:56:48 +01:00
LevelX2
46bcad2ada Mage 1.4.26V11 2018-01-07 18:04:59 +01:00
LevelX2
330c6f1393 XMage 1.4.26V10 2017-12-30 20:17:04 +01:00
Oleg Agafonov
f39e4fd4ee - added card download for unstable set from scryfall;
- changed client version from 9 to 10b;
2017-12-10 17:43:37 +04:00
LevelX2
8fac7a3dc1 XMage 1.4.26V9 2017-12-03 18:15:16 +01:00
Oleg Agafonov
77d31b37f0 Fix wrong images path in zips (compatible with old versions). 2017-11-30 01:56:41 +04:00
Oleg Agafonov
c29bac08d8 Refactor and fixed and images downloading and paths loading:
- Added new images and symbols downloading;
 - Fixed user defined images path (now work for all images: cards, symbols, temp downloading);
 - Fixed not working cancel button at download window (it close window, but tasks is working, download and didn't save);
 - Fixed temp files trash all around images folder (on cancel button);
 - Fixed not saving new downloaded cards on cancel button (zip file didn't close on cancel);
2017-11-27 08:09:52 +04:00
Oleg Agafonov
f81489c377 Add fallback card render (origin card render), see #4168 2017-11-18 05:13:38 +04:00
LevelX2
f5f6f924f9 XMage 1.4.26V8 2017-11-04 18:50:00 +01:00
LevelX2
71336a916d XMage 1.4.26V7 2017-10-03 18:41:06 +02:00
LevelX2
d866234e89 Xmage 1.4.25V6 2017-09-23 23:49:00 +02:00
LevelX2
1d5105c0bd Xmage 1.4.26V5 2017-09-17 23:11:38 +02:00
LevelX2
2d6bcd83f4 xmage 1.4.26V4 2017-09-16 16:55:58 +02:00
Evan Kranzler
252c941b4f Refactored more subtypes usages to enum 2017-09-08 09:57:51 -04:00
LevelX2
20a3f6a2c6 xmage 1.4.26V3 2017-09-03 08:21:48 +02:00
LevelX2
84fe04b92d Replaced exception handling of invalid deck submitting by a user message. 2017-09-01 20:05:26 +02:00
LevelX2
a46538fc06 Removed some unused code. 2017-09-01 16:03:43 +02:00
LevelX2
d024d59626 * Some changes to chat and user handling. 2017-08-27 00:31:52 +02:00
LevelX2
4aca2506d8 * Added table info about range set in a multiplayer game (fixes #3878). 2017-08-24 18:57:23 +02:00
LevelX2
c2d70fa1cc Xmage 1.4.25V1 2017-08-18 00:12:57 +02:00
LevelX2
8ab9abb8e8 * Some more changes to user disconnect handling. 2017-08-16 07:51:48 +02:00
LevelX2
1fb24116ae xmage 1.4.26V0 2017-08-15 01:27:06 +02:00
LevelX2
bae7f154df Changed user disconnect handling. The user in the server is no longer deleted directly after connection problem, disconnect or quit. The user object remains now for 8 minutes so the rejoin not possible after disconnect problem should be solved (I hope so). We will see. Also fixed the problem, that the table panel was not shown, if a player disconected and reconected. 2017-08-13 16:22:18 +02:00
LevelX2
fe2ee5dfec Xmage 1.4.25V0 2017-07-29 20:35:16 +02:00
LevelX2
c6cd713f0d * Mind's Desire - Fixed a problem with playing lands. 2017-07-22 12:09:28 +02:00
igoudt
ea14f9c361 fix order of subtypes on a cardview 2017-07-17 10:08:20 +02:00
ingmargoudt
09f0c9ad97 huge rework on subtypes (#3668)
* huge rework on subtypes

* update for coat of arms

* fix test
2017-07-16 16:57:39 -05:00
LevelX2
5774deb90c XMAGE 1.4.24V3 2017-07-16 19:46:41 +02:00
LevelX2
75aff217da Xmage 1.4.24V2 2017-07-09 21:09:42 +02:00
LevelX2
8e666c9403 Xmage 1.4.24.V1 2017-07-09 01:29:26 +02:00
LevelX2
7d911ae803 XMage 1.4.24V0 2017-07-08 16:33:09 +02:00
LevelX2
d1f61f48f1 XMage 1.4.24V0 2017-07-08 15:54:06 +02:00
LevelX2
d03bd3bf57 Fixed a bug that the owner of controlled cards were no longer shown in the card tooltip. 2017-06-11 09:52:29 +02:00
Anders Åstrand
ad0507e739 Ban ignored users from watching
This commit bans ignored users from watching
games where the creator has them on their ignore list.
2017-05-29 21:36:42 +02:00
LevelX2
0b7a50e48f * Xmage 1.4.23V6 2017-05-21 01:01:50 +02:00
LevelX2
11ba007fd3 Xmage 1.4.23V5 2017-05-18 21:55:44 +02:00
magenoxx
d73709bdbe Moved CardView to src/main/java 2017-05-13 18:55:54 +03:00
spjspj
e73e7d8600 Token refactor 2017-05-06 23:35:14 +10:00
LevelX2
97a4e9ed05 Xmage 1.4.23V4 2017-04-30 00:23:33 +02:00
LevelX2
3cc157bc2c * Fixed null pointer exception problems in client. 2017-04-30 00:07:37 +02:00
igoudt
b6fe6f772a finish rewriting watchers 2017-04-29 12:07:46 +02:00
spjspj
241691b153 spjspj - Add in Tokens to the Card Viewer (first version) 2017-04-29 17:25:54 +10:00
igoudt
9ca9975cb0 remove sun reference 2017-04-29 08:39:26 +02:00
igoudt
5b21f34941 rewrote gettypetext, added removeIf to TableModel 2017-04-27 10:57:48 +02:00
igoudt
27aea04820 move methods from cardutil to magepermanent, cardview:getColorText now uses ObjectColor.getDescription 2017-04-27 10:57:48 +02:00
LevelX2
85e44017ea Xmage 1.4.23V3 2017-04-25 22:17:22 +02:00
spjspj
6ab4a94bd7 spjspj - Add in 'View Current Deck' option. 2017-04-23 13:06:09 +10:00
LevelX2
900e7b29ba XMage 1.4.23V2 2017-04-23 01:57:26 +02:00
spjspj
8845d77628 spjspj - Remove View Limited Deck option 2017-04-22 19:35:08 +10:00
spjspj
0cd4e06e22 spjspj - Add a View Limited Deck option to allow you to see your deck during matches. 2017-04-22 19:16:12 +10:00
magenoxx
ee7026f71d Revert "Added hashCode and equal to main server objects"
This reverts commit 27a454f042.
2017-04-21 20:43:32 +03:00
magenoxx
27a454f042 Added hashCode and equal to main server objects 2017-04-20 20:06:52 +03:00
magenoxx
21eb420c16 Moved Mage.Common classes from src to src/main/java 2017-04-20 19:05:09 +03:00
LevelX2
d55c82adf4 XMage 1.4.23V1 2017-04-18 07:50:49 +02:00
LevelX2
ef4cf90a0f Release 1.4.23V0 2017-04-17 10:53:59 +02:00
LevelX2
35791ac6b7 Set SocketWriteTimeout to 10 seconds. 2017-04-17 00:01:39 +02:00
LevelX2
ed341528d9 [AKH] Fixed that Aftermath card images were shown wrongly rotated. 2017-04-16 22:57:08 +02:00
spjspj
7937bcda9e Revert 2017-04-16 20:06:27 +10:00
ingmargoudt
1649530e7b remove helper functions from cardUtil 2017-04-07 16:40:38 +02:00
ingmargoudt
f519b12d0e introduced isCreature/isLand/isArtifact/... etc for CardView 2017-04-07 15:08:28 +02:00
ingmargoudt
08197f192c remove CardHelper class 2017-04-07 10:00:16 +02:00
ingmargoudt
d60e01d497 move CardHelper::getColor to CardView::getColorText 2017-04-06 22:11:57 +02:00
ingmargoudt
63df7f65a7 remove isCreature from CardHelper, move to Cardview 2017-04-06 22:07:59 +02:00
Mark Langen
047449f14e * Correct type line rendering for split cards with different types on each half.
* Correct art rendering for Aftermath, Split, and Fuse cards on the stack. Fused cards show as a single card with all the abilities / characteristics of both halves while on the stack.
2017-04-04 21:58:52 -06:00
ingmargoudt
ff6d1541c3 clientcallbacks to enums 2017-04-04 21:52:15 +02:00
ingmargoudt
211d433ea9 playertype, enum singleton 2017-04-02 22:09:20 +02:00
ingmargoudt
6f8f10fcc3 move static function to CardImpl, and other api fixes 2017-03-30 20:09:47 +02:00
fireshoes
55b433ae36 [AKH] Added 3/27 spoilers to mtg-cards-data.txt. Implemented several of the new cards. 2017-03-28 22:25:29 -05:00
Achilles
b4a60555fc Revert "Change for id str"
This reverts commit 1e8216c5c5.
2017-03-24 17:06:33 -05:00
spjspj
1e8216c5c5 Change for id str 2017-03-24 08:14:17 +11:00
ingmargoudt
ff6c6405aa rewrites to optionals 2017-03-19 19:48:32 +01:00
LevelX2
9d8a8a33f1 Xmage 1.4.22V0 2017-03-11 13:38:55 +01:00
Nathaniel Brandes
34ea9e53d0 Rev .pom Java version to fix compilation. 2017-03-07 22:31:30 -08:00
ingmargoudt
4aaf73e0d2 changed the type used in ImagePanel from an int to an enum 2017-03-07 22:28:10 +01:00
ingmargoudt
0a77c186be moved sessionstate enum to sessionImpl 2017-03-07 22:15:58 +01:00
ingmargoudt
1bc8e2248b changed enum equals to ==, removed contains check for set 2017-03-07 21:47:11 +01:00
ingmargoudt
1caf3a6be4 change getLibrary().size() > 0 to hasCards() 2017-03-07 17:28:26 +01:00
ingmargoudt
a0930e3379 missed 2 hashsets to enumsets 2017-03-03 22:14:00 +01:00
ingmargoudt
372584f7ad changed cardtype from list to enumset 2017-03-03 17:04:32 +01:00
vraskulin
11dc1e10f1 Few lambda's and removed explicit type from creating lists and hashmaps 2017-02-28 13:46:57 +03:00
vraskulin
498c8cf60c Made utility classes final to explicitly forbid it's inheritance 2017-02-27 17:03:38 +03:00
Anders Åstrand
f68460603a Add client-side user ignore list
This commit adds a client-side per-server ignore list.
* Whispers and talk from an ignored user is hidden
* Ignored users cannot join your tables
* Ignored users tables are hidden
2017-02-22 22:16:09 +01:00
ingmargoudt
3a152ab3d6 rewrote enum comparisons, iterator to removeIf, added some stream and filters 2017-02-11 22:37:00 +01:00
vraskulin
0557b5e89c list.size > 0 changed to !list.isEmpty
We care about if it's empty or not, not about it's size
2017-02-06 14:32:51 +03:00
vraskulin
f60ebfbb1f All 1-character strings converted to primitives
"b" + "r" now changed to 'b' + 'w'.  It's more straight-forward, and may cause perfomance improvements - character primitives allocation is faster and less expensive than string creation.
2017-02-06 14:32:51 +03:00
LevelX2
d71ebdcea9 Merge origin/master 2017-02-05 11:41:20 +01:00
LevelX2
3525e46514 XMage 1.4.21V2 2017-02-05 11:39:43 +01:00
spjspj
fa97e4647e Add field for server console 2017-02-05 14:11:05 +11:00
LevelX2
082210a4bd Xmage 1.4.21V1 2017-01-25 00:14:05 +01:00
LevelX2
6625bf86be Xmage 1.4.21V0 2017-01-15 17:44:02 +01:00
LevelX2
c6c88ee197 * Chnaged some handling of transformable cards. 2017-01-15 16:21:06 +01:00
spjspj
b397e2849c Add missing field to userData 2017-01-15 23:33:20 +11:00
spjspj
f943b81c73 Merge pull request #2794 from spjspj/master
spjspj - Add Set Active to server console
2017-01-14 16:04:33 +11:00
spjspj
6ed569b37f spjspj - Add Set Active to server console 2017-01-14 16:03:30 +11:00
spjspj
ee285e36f6 Merge pull request #2793 from spjspj/master
spjspj - Add Set Active to server console
2017-01-14 15:30:02 +11:00
spjspj
6d3324378f spjspj - Add Set Active to server console 2017-01-14 15:29:15 +11:00
igoudt
ac8962cb29 replaced enum comparison from equals to == 2017-01-11 09:53:16 +01:00
vraskulin
076840df53 Big refactoring
I used Intellij IDEA to automatically refactor code to achive 3 goals.
1) get rid of anonymouse classes, and replace the with lamba to get more readeable and clean code (like in TableWaitingDialog).
2) make effectively final  variables actually final to avoid inadvertent changes on it in further releases and keep objects as immutable, as possible.
3)  Get rid of unused imports (most of the changes) in whole project classes.
2017-01-09 19:16:53 +03:00
LevelX2
ee203cf981 Xmage Release 1.4.20V0 2017-01-08 01:36:05 +01:00
LevelX2
9353c5aa9c [AER] Some more minor fixes. 2017-01-07 22:22:17 +01:00
LevelX2
8075ea2e50 * Fixed a problem that Emblems created by permanents where its owner left the game caused errors in clients. Some handling cganges of emblems. 2016-12-27 16:00:22 +01:00
LevelX2
862ac38f51 * Fixed that special actions (e.g. delve mana payment) were handled correctly if a player plays a turn for another player. 2016-12-24 16:52:06 +01:00
LevelX2
da9e9a1180 * Fixed some possible null pointer exceptions and some minor editing. 2016-12-18 15:02:19 +01:00
LevelX2
40d8a32695 XMage 1.4.19V1 2016-12-17 10:35:45 +01:00
LevelX2
3d95849c10 Some fixes to the Monarch designation. 2016-12-07 17:14:08 +01:00
LevelX2
b62ca1ed1f Xmage 1.4.19 2016-11-27 19:59:42 +01:00
LevelX2
68d0e6b9fa Added the monarch concept to xmage and all related cards. 2016-11-27 01:14:32 +01:00
LevelX2
c9e1b415e2 Xmage 1.4.18V0 2016-11-06 18:11:19 +01:00
LevelX2
1791b809db Added some more info to some logger and game messages. Removed unused method. 2016-11-01 23:02:11 +01:00
LevelX2
0f6c14bdb7 Fixed that a client reconnect tries to reconnect to the server the client was connected to and not the last server a client on this system has connected to. 2016-11-01 22:59:24 +01:00
LevelX2
070a0ca3fa * Fixed a problem that the enlarged card view could stay open after a game or draft were finished. 2016-10-23 23:13:02 +02:00
LevelX2
8b62eece68 XMage 1.4.17V0 2016-10-23 10:03:01 +02:00
spjspj
d53fe3ae52 Add confirmation dialog to server.console 2016-10-23 01:44:34 +11:00
LevelX2
bf43ea9936 Added test and fixed some possible null pointer exception. 2016-10-22 12:45:50 +02:00
fireshoes
89dd981075 Merge 2016-10-17 23:45:47 -05:00
LevelX2
2e1f8c07cb Xmage 1.4.16v3 2016-10-09 15:54:12 +02:00
LevelX2
f92e827d3b Xmage 1.4.16v2 2016-10-09 00:13:01 +02:00
LevelX2
4ec7d626fa * Fix to get land images shown again. 2016-10-08 19:03:32 +02:00
LevelX2
5d8ae4d411 * Workaround to fix problem with deck layout. 2016-10-08 19:03:09 +02:00
LevelX2
157827addc XMage 1.4.16v0 2016-10-08 11:14:13 +02:00
LevelX2
c46f75ac28 Added chat mute and user (de)activation actions to the Mage server console. 2016-10-05 00:59:51 +02:00
LevelX2
db31264538 Some changes to the server console. 2016-10-04 17:40:37 +02:00
LevelX2
e8ab8558d1 Fixed some possible null pointer exceptions. 2016-10-03 22:07:10 +02:00
LevelX2
01ca3689b3 Some minor changes. 2016-10-03 20:25:17 +02:00
Eirkei
004a14759e Add correct targets to spells with modes - Fixes #2391 2016-10-03 11:32:32 +02:00
LevelX2
c4b4804903 Fixed that no abilitues were shown for selecting the order of triggered abilities from a dies triggered ability of tokens. 2016-10-02 23:34:06 +02:00
LevelX2
a5af6c3a1d Minor rework of transform. 2016-09-28 22:37:20 +02:00
LevelX2
86648c7190 * Reworked some parts of transform handling. Fixes #2396. 2016-09-28 17:02:37 +02:00
LevelX2
73a2ccda9b Xmage 1.4.15v5 2016-09-24 04:01:00 +02:00
LevelX2
c9bb0be016 Reworked selected modes handling. That fixed the Subtle Strike targeting problem. 2016-09-24 01:12:01 +02:00
LevelX2
5263d1336d xmage 1.4.15v4 2016-09-19 09:40:19 +02:00
LevelX2
f9789ee078 xmage 1.4.15v2 2016-09-17 20:43:39 +02:00
LevelX2
d7dd635bca Revert "introduced StringUtil class with .isEmpty(String input) and .isNotEmp…" 2016-09-16 23:55:54 +02:00
ingmargoudt
f1cf9e7adb introduced StringUtil class with .isEmpty(String input) and .isNotEmpty(String input), to replace str != null && str.length()>0 statements 2016-09-16 21:23:31 +02:00
ingmargoudt
3128bd2b4b replace [list].size() == 0 and [string].length() == 0 to use .isEmpty() instead 2016-09-14 15:27:31 +02:00
LevelX2
6d71a959f1 Xmage 1.4.15v1 2016-09-10 22:25:05 +02:00
LevelX2
bb8326d46b XMage 1.4.15v0 2016-09-10 12:31:18 +02:00
Mark Langen
8d90f4558d Merge pull request #2234 from stravant/master
Characteristic-Based rendering initial release completed unless further bugs come up before then.
2016-09-07 23:16:10 -06:00
Mark Langen
a638625c77 Fixed full-arts seemingly not replicating properly
* The problem was that they key for caching rendered cards did not take into account the full art / not full artness of the cards, so when someone has both full art and non-full art variants of a land from the same set it one would override the other.
2016-09-07 17:35:05 -06:00
spjspj
8342d03ac9 spjspj - Set Token Descriptor 2016-09-07 21:52:52 +10:00
Mark Langen
f0a1938b3e Full art Land rendering
* Added "frameStyle" tagging to relevant full art lands (ZEN, BFZ, UNG, UHG)

* Added support for rendering based off of frameStyle

* Outstanding bug that frameStyle doesn't seem to be replicated exactly properly
2016-09-07 02:20:51 -06:00
emerald000
df2782fdb6 [KLD] Basic implementation of energy counters. Added Woodweaver's Puzzleknot.
Better display of energy counters would be preferred.
2016-09-07 01:07:21 -04:00
ingmargoudt
e2a479255a refactor : removed all instances of new Random() and replaced with RandomUtil for a ThreadLocal randomizer 2016-09-05 15:03:47 +02:00
Samuel Sandeen
148f633672 Make the Counters API for card and permanent consistent. 2016-09-03 10:33:54 -04:00
LevelX2
cb91c5b9aa Merge pull request #2216 from stravant/master
Full characteristic-based card rendering for cards
2016-09-03 09:13:49 +02:00
Samuel Sandeen
85dc15c5dc Merge remote-tracking branch 'magefree/master' 2016-09-02 19:44:51 -04:00
Mark Langen
463576dbd0 Merged up to current 2016-09-01 15:44:14 -06:00
spjspj
0f043d480d spjspj - Implement new method for image generation of tokens. 2016-09-01 17:11:12 +10:00
Mark Langen
d33f8a636e Most obvious bugs ironed out. Ready for PR. 2016-08-31 23:37:31 -06:00
Mark Langen
d5415d2d04 Working Card Rendering 2016-08-31 04:43:28 -06:00
Samuel Sandeen
282443c231 Add Subtype to the CardAttribute Framework
This is a massive change. I’ve refrained from unrelated refactoring
when possible but there are still a lot of changes here.
2016-08-28 17:30:10 -04:00
LevelX2
539b03bd1d Xmage 1.4.14v0 2016-08-13 10:14:38 +02:00
fwannmacher
a052830628 - Removed "CARD ZONE" from tooltip when it is not necessary 2016-08-08 18:30:42 -03:00
fwannmacher
9b5a02c09c - Fixed issue #2075 2016-08-04 09:52:56 -03:00
drmDev
f593623508 finished implementation of cards. CardView bug fix for card number change. 2016-07-26 22:58:20 -04:00
fwannmacher
10778cdd6b - Converted CardImpl.cardNumber from int to String
- Fixed Issue #1953
- Fixed Issue #1914
- Fixed Issue #739
2016-07-24 15:18:54 -03:00
LevelX2
e277337c98 Xmage 1.4.13v3 2016-07-24 10:54:17 +02:00
LevelX2
3172e8b4ca Xmage 1.4.13v2 2016-07-15 20:57:28 +02:00
LevelX2
f3f852bab7 Xmage 1.4.13v1 2016-07-12 08:00:15 +02:00
LevelX2
d0ecb473da Xmage 1.4.13v0 2016-07-11 22:54:43 +02:00
LevelX2
1c2aa4c10a Fixed cleint exception problem with transformable cards. 2016-07-02 18:38:29 +02:00
LevelX2
7cfdd80c57 Chnaged permanent row handling so creatures are always shown towards the opponent side. 2016-07-02 13:45:34 +02:00
LevelX2
d220c739a8 Merge pull request #2030 from draxdyn/performance
Improve GUI performance
2016-06-28 13:26:44 +02:00
draxdyn
415c8cce7e Don't call setText() on the popup text component until it is shown
Performance improvement, impacts profiles.
2016-06-23 16:21:34 +02:00
Kranken
9fee893ed1 Add TablesPanel filter for passworded games
This commit makes passworded a first class property of
TableView as well as adds filtering capabilities
of open and passworded games. Useful for hiding
passworded games when looking for open play and
useful for hiding open games when playing vs
a friend on a busy server.
2016-06-14 23:19:17 +02:00
LevelX2
266a0870ca Xmage 1.4.12v0 2016-05-29 10:59:39 +02:00
Quercitron
c781728b97 Add rating to the client (#1498) 2016-05-17 17:27:43 +03:00
spjspj
f9e363fb30 spjspj - Update Rich Man draft to allow Random packs 2016-05-15 23:52:13 +10:00
LevelX2
e2a8ddef0f Merge pull request #1905 from KWottrich/clean-up-java-imports
Clean up java imports
2016-04-26 11:37:35 +02:00
LevelX2
1fcd26fc60 xmage 1.4.11v0 2016-04-26 00:59:03 +02:00