foul-magics/Mage/src/main/java/mage/abilities
ssk97 5e095afdb0
Implement Prototype ability (#11249)
Prototype is a SpellAbilityType, for which alternate costs are permitted. It has a continuous effect that applies on the battlefield as well as a method to modify the spell on the stack. Permanents have an isPrototyped flag that copy effects can check explicitly (same brittle method as transformed permanents use; reworking copy effects to streamline them is a separate scope).

Many test cases have been added to confirm functionality (thanks to Zerris for additional test suggestions).

---------

Co-authored-by: Susucre <34709007+Susucre@users.noreply.github.com>
Co-authored-by: Evan Kranzler <theelk801@gmail.com>
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2023-10-09 21:06:19 -04:00
..
abilityword Remove superfluous addManaCost method (#11288) 2023-10-09 15:25:19 -04:00
common Remove superfluous addManaCost method (#11288) 2023-10-09 15:25:19 -04:00
condition [ICE] Implement Kjeldoran Guard (#11184) 2023-09-23 20:23:47 -04:00
costs Rework AsThough handling to allow choosing/affecting a specific alternate cast (#11114) 2023-10-02 18:42:54 -04:00
decorator Remove superfluous addManaCost method (#11288) 2023-10-09 15:25:19 -04:00
dynamicvalue clean some of the most frequent copy constructor / copy method (#11053) 2023-08-30 19:48:03 -04:00
effects Implement Prototype ability (#11249) 2023-10-09 21:06:19 -04:00
hint Add modeTag + hint of used modes for "choose one that hasn't been chosen" abilities. (#10860) 2023-08-26 23:09:04 -04:00
icon
keyword Implement Prototype ability (#11249) 2023-10-09 21:06:19 -04:00
mana refactor: additional improves for mana choice in some cards, related to Naked Singularity from 81039d6e72 2023-09-23 06:39:01 +04:00
meta
token Create common implementation for predefined tokens (#11065) 2023-08-29 20:28:21 -04:00
Abilities.java
AbilitiesImpl.java
Ability.java Remove superfluous addManaCost method (#11288) 2023-10-09 15:25:19 -04:00
AbilityImpl.java Implement Prototype ability (#11249) 2023-10-09 21:06:19 -04:00
ActivatedAbility.java Rework AsThough handling to allow choosing/affecting a specific alternate cast (#11114) 2023-10-02 18:42:54 -04:00
ActivatedAbilityImpl.java Remove superfluous addManaCost method (#11288) 2023-10-09 15:25:19 -04:00
ActivationInfo.java
CompoundAbility.java
DelayedTriggeredAbilities.java
DelayedTriggeredAbility.java
EvasionAbility.java
LoyaltyAbility.java Cleanup activated ability constructors (#11283) 2023-10-08 22:55:31 -04:00
MageSingleton.java
Mode.java Add modeTag + hint of used modes for "choose one that hasn't been chosen" abilities. (#10860) 2023-08-26 23:09:04 -04:00
Modes.java Refactor: private fields and performance tweaks (#9625) 2023-08-27 17:58:19 -04:00
OpeningHandAction.java
PlayLandAbility.java Rework AsThough handling to allow choosing/affecting a specific alternate cast (#11114) 2023-10-02 18:42:54 -04:00
Pronoun.java
SpecialAction.java refactor: removed unused data from special action, improved code (related to #11137) 2023-09-17 14:37:49 +04:00
SpecialActions.java refactor: removed unused data from special action, improved code (related to #11137) 2023-09-17 14:37:49 +04:00
SpellAbility.java Implement Prototype ability (#11249) 2023-10-09 21:06:19 -04:00
StateTriggeredAbility.java cleanup some superfluous overrides (#11243) 2023-10-01 22:50:28 -04:00
StaticAbility.java clean some of the most frequent copy constructor / copy method (#11053) 2023-08-30 19:48:03 -04:00
TriggeredAbilities.java reimplement "don't cause abilities to trigger" effects (#11242) 2023-10-01 22:50:14 -04:00
TriggeredAbility.java reimplement "don't cause abilities to trigger" effects (#11242) 2023-10-01 22:50:14 -04:00
TriggeredAbilityImpl.java text generation improvements (#11203) 2023-09-25 21:51:51 -04:00