Commit graph

62 commits

Author SHA1 Message Date
Oleg Agafonov
49ce794c45 Merge fix 2023-06-09 07:03:32 +04:00
Oleg Agafonov
ae5bc90915 Fixed game error on attack order disconnects 2023-06-09 07:03:31 +04:00
Evan Kranzler
024c3081df
[BRC] Implement Rootpath Purifier (ready for review) (#10363)
* refactor check supertype methods

* change supertype to list to match card type

* refactor various subtype methods

* implement mageobjectattribute for supertype

* a few fixes

* [BRC] Implement Rootpath Purifier

* a few extra fixes

* more fixes

* add test for purifier
2023-05-13 10:48:07 -04:00
Oleg Agafonov
3c66dc8706 Additional fixes for 9d9916280a 2023-05-09 15:05:24 +04:00
Oleg Agafonov
9d9916280a Attacking you abilities and filters - fixed that planeswalker removes from a combat can cause a game error (NPE error, example: Curse of Hospitality) 2023-05-09 14:59:44 +04:00
Evan Kranzler
947351932b
Ready for Review: Implementing Battles (#10156)
* add types and subtypes

* add startingDefense attribute

* [MOM] Implement Invasion of Ravnica / Guildpact Paragon

* fix two small errors

* refactor various instances of "any target"

* fully implement defense counters

* battles can now be attacked

* [MOM] Implement Invasion of Dominaria / Serra Faithkeeper

* [MOM] Implement Invasion of Innistrad / Deluge of the Dead

* [MOM] Implement Invasion of Kaladesh / Aetherwing, Golden-Scale Flagship

* [MOM] Implement Invasion of Kamigawa / Rooftop Saboteurs

* [MOM] Implement Invasion of Karsus / Refraction Elemental

* [MOM] Implement Invasion of Tolvada / The Broken Sky

* simplify battle info ability

* fix verify failure

* some more fixes for attacking battles

* [MOM] Implement Invasion of Kaldheim / Pyre of the World Tree

* [MOM] Implement Invasion of Lorwyn / Winnowing Forces

* [MOM] Implement Invasion of Moag / Bloomwielder Dryads

* [MOM] Implement Invasion of Shandalar / Leyline Surge

* [MOM] Implement Invasion of Belenon / Belenon War Anthem

* [MOM] Implement Invasion of Pyrulea / Gargantuan Slabhorn

* [MOM] Implement Invasion of Vryn / Overloaded Mage-Ring

* [MOM] Implement Marshal of Zhalfir

* [MOM] Implement Sunfall

* implement protectors for sieges

* partially implement siege defeated trigger

* fix verify failure

* some updates to blocking

* [MOM] Implement Invasion of Mercadia / Kyren Flamewright

* [MOM] Implement Invasion of Theros / Ephara, Ever-Sheltering

* [MOM] Implement Invasion of Ulgrotha / Grandmother Ravi Sengir

* [MOM] Implement Invasion of Xerex / Vertex Paladin

* add initial battle test

* fix verify failure

* [MOM] Implement Invasion of Amonkhet / Lazotep Convert

* [MOM] update spoiler

* update how protectors are chosen

* update text

* battles can't block

* add control change test

* rename battle test for duel

* add multiplayer test

* [MOM] Implement Invasion of Alara / Awaken the Maelstrom

* [MOM] Implement Invasion of Eldraine

* [MOM] Implement Invasion of Ergamon / Truga Cliffhanger

* [MOM] Implement Invasion of Ixalan / Belligerent Regisaur

* battles now cast transformed (this is super hacky but we need to refactor TDFCs anyway)

* add TODO

* add ignore for randomly failing test

* a few small fixes

* add defense to MtgJsonCard (unused like loyalty)

* implement ProtectorIdPredicate

* small fixes
2023-04-13 20:03:16 -04:00
Alex W. Jackson
ecd43c07e2 Inform players of combat damage assignment order in log 2022-09-21 20:17:58 -04:00
Max Behling
d3e57b7fb9
Implemented Thrasta, Tempest's Roar (#7835)
* Implemented ThrastaTempestsRoar
2021-05-24 11:42:11 +04:00
Evan Kranzler
5390963d38
Fix handling of damage to permanents (WIP) (#7592)
* initial refactor of damage events

* cleaned up some instances of classes that need to be removed

* removed old damage event classes

* removed outdated imports

* temporarily refactor Everlasting Torment (this will need to be changed more)

* updated damage handling to use new changes

* some reworking of lethal/excess damage plus a test

* updated damage marking to handle planeswalkers

* updated implementation of Phyrexian Unlife

* updated implementation of Everlasting Torment

* added some more excess damage tests

* small change to wither check
2021-02-22 17:11:24 -05:00
Evan Kranzler
a6255402e3 updated language for various user choices 2021-02-15 10:19:43 -05:00
Oleg Agafonov
2d96d36ec8 AsThough effects improves and fixes:
* AsThough: added documentation about code usage and restrictions;
* AsThough: added additional checks for correct usage;
* AsThough: simplified some code;
* PlayFromNotOwnHandZoneTargetEffect - added permanents support as targets;
* Release to the Wind - fixed that it can't cast exiled cards (#7415, #7416);
* Test framework: fixed that checkExileCount checking card's owner;
* GUI: fixed typo in Trample card icons;
2021-01-31 22:32:23 +04:00
Oleg Agafonov
a1da5ef437 * GUI: new reworked GUI and card render engine, card icons and dozens of other fixes (see full list in related PR); 2021-01-30 16:38:55 +04:00
Oleg Agafonov
db239a1055 Refactor: replaced sourceId by source and introduced source param in some methods; 2020-12-12 20:23:19 +04:00
Oleg Agafonov
adbe84c540 Improved freeze checks and canRespond/isInGame usage 2020-07-01 13:48:22 +04:00
htrajan
1dc305f329 -setStrictChooseMode and assertAllCommandsUsed in every test
-store filter info in GameState
-put instead of putIfAbsent
2020-04-16 19:21:54 -07:00
htrajan
5eeffc1fcf unstar import 2020-04-16 17:59:17 -07:00
htrajan
92d6326316 finish 2020-04-16 17:50:17 -07:00
htrajan
cab436e9e5 wip 2020-04-16 15:53:51 -07:00
Oleg Agafonov
5adab75324
Revert "format: organize imports" 2020-02-05 02:17:00 +04:00
Leandro Doctors
8a0a9acff7 format: organize imports 2020-02-04 16:21:48 -03:00
L_J
5a08632d59
Implemented Bands With Other 2018-10-21 16:59:10 +02:00
igoudt
877a355a7d rewrite some code to streams 2018-07-15 20:50:26 +02:00
Noah Gleason
9108104fe5
Implement Predatory Focus 2018-07-09 22:21:40 -04:00
Evan Kranzler
c4a0d9f916 replaced apostrophes 2018-06-06 22:39:16 -04:00
GrayedFox
3953f3dbdd
remove all MIT copyright notices from files 2018-06-02 17:59:49 +02:00
LevelX2
fcc6174e5e Some null exceptions checking and fixed some other minor problems. 2018-05-26 01:22:28 +02:00
Oleg Agafonov
c24ba742f6 Fixed equal or == errors -- 23 cards and more (see #4407) 2018-04-28 21:24:48 +04:00
L_J
1f5e2f1bed
Minor revert 2018-02-17 22:27:07 +00:00
L_J
17800b6df1
Menace fix 2018-02-17 22:25:27 +00:00
L_J
77762cbf59
Some multi-blocker damage changes
Fixes situations like "two-man band with Viscera Seer gets blocked, Viscera Seer sacs itself afterwards" - before, the blocker would deal its damage twice to the remaining attacker.
2018-02-16 23:59:17 +00:00
L_J
58fde7db50
Reverted accidental change 2018-02-15 00:05:44 +00:00
L_J
e7301e2c08
Implemented banding (#41) 2018-02-13 20:36:25 +01:00
LevelX2
2f016c8ea6 Fixed some more exception and/or logging problems. 2018-01-27 13:19:20 +01:00
Zzooouhh
c25eaa9446
Fixed one overlooked instance of lethalDamage 2017-12-28 16:53:52 +01:00
Zzooouhh
f166bebe8c
Fixed lethal damage potentially dipping into negative values
Example: in multiple multi-blocker creatures blocking the same creatures (if one of them assigns more than lethal to the first creature in its attackerOrder)
2017-12-28 16:49:51 +01:00
Zzooouhh
230233659b
Some naming changes, Butcher Orgg first strike fix 2017-12-07 11:13:27 +01:00
Zzooouhh
d8daec11d4
Fixed Butcher Orgg handling attackers/blockers leaving combat 2017-12-07 01:04:31 +01:00
Zzooouhh
e1fdc3093a
Some other edits + small fix for Defensive Formation 2017-12-06 21:30:33 +01:00
Zzooouhh
5fec04935d
Optimization edit for assignDamageToBlockers 2017-12-06 20:31:54 +01:00
Zzooouhh
c6e69868fa
Test message cleanup 2017-12-06 19:50:06 +01:00
Zzooouhh
edd07d4f80
Implemented Butcher Orgg (the missing bits) 2017-12-06 19:46:13 +01:00
Zzooouhh
16513408fc
Cleanup #2 2017-12-06 17:05:30 +01:00
Zzooouhh
b48c37ea8f
Defensive Formation slight cleanup 2017-12-06 17:02:49 +01:00
Zzooouhh
47ef2a4ce4
Implemented Butcher Orgg (partially)
Option to divide damage while being a blocker doesn't work for some reason
2017-12-06 16:31:36 +01:00
Zzooouhh
32ef8a5047
Small damage fix 2017-11-25 09:10:01 +01:00
Zzooouhh
b035c436d5
Another small fix 2017-11-25 08:35:18 +01:00
Zzooouhh
92e5d8de0a
multiAttackerDamage fix 2017-11-25 07:20:25 +01:00
Zzooouhh
813219df2d
Some changes to how Defensive Formation handles lethal damage 2017-11-22 11:28:36 +01:00
Zzooouhh
bb56568ea1
Implemented Defensive Formation 2017-11-22 02:13:22 +01:00
Evan Kranzler
3b0b923b7c Implemented Weathered Bodyguards 2017-10-05 13:31:05 -04:00