From 3798f34c38de60359fa241f6a24b496038bdc314 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Wed, 18 Apr 2018 20:27:49 -0400 Subject: [PATCH] refactored Player.gainLife() to include source --- Mage.Sets/src/mage/cards/a/AbattoirGhoul.java | 2 +- Mage.Sets/src/mage/cards/a/AgentOfMasks.java | 2 +- Mage.Sets/src/mage/cards/a/AliveWell.java | 2 +- Mage.Sets/src/mage/cards/a/AnHavvaInn.java | 2 +- Mage.Sets/src/mage/cards/a/AngelicChorus.java | 2 +- .../src/mage/cards/a/AnimalBoneyard.java | 2 +- .../mage/cards/a/ApproachOfTheSecondSun.java | 2 +- .../src/mage/cards/a/ArchangelsLight.java | 2 +- Mage.Sets/src/mage/cards/a/AuguryAdept.java | 2 +- Mage.Sets/src/mage/cards/a/AvenShrine.java | 2 +- Mage.Sets/src/mage/cards/a/AvengerEnDal.java | 2 +- Mage.Sets/src/mage/cards/a/AweStrike.java | 2 +- .../src/mage/cards/a/AzorTheLawbringer.java | 2 +- Mage.Sets/src/mage/cards/a/AzorsGateway.java | 2 +- .../src/mage/cards/b/BeaconOfImmortality.java | 2 +- .../src/mage/cards/b/BenevolentOffering.java | 4 ++-- Mage.Sets/src/mage/cards/b/Biorhythm.java | 2 +- Mage.Sets/src/mage/cards/b/BloodTithe.java | 2 +- Mage.Sets/src/mage/cards/b/BloodTribute.java | 2 +- .../src/mage/cards/b/BlossomingWreath.java | 2 +- .../src/mage/cards/b/BounteousKirin.java | 2 +- Mage.Sets/src/mage/cards/b/Brightflame.java | 2 +- .../src/mage/cards/b/BubblingCauldron.java | 2 +- Mage.Sets/src/mage/cards/c/CandlesGlow.java | 2 +- .../src/mage/cards/c/CelestialMantle.java | 2 +- Mage.Sets/src/mage/cards/c/CertainDeath.java | 2 +- Mage.Sets/src/mage/cards/c/ChaliceOfLife.java | 2 +- .../mage/cards/c/ChancellorOfTheDross.java | 2 +- .../src/mage/cards/c/ChantOfVituGhazi.java | 2 +- Mage.Sets/src/mage/cards/c/Chastise.java | 2 +- .../src/mage/cards/c/ChoArrimAlchemist.java | 2 +- Mage.Sets/src/mage/cards/c/Condemn.java | 2 +- Mage.Sets/src/mage/cards/c/ConsumeSpirit.java | 2 +- .../src/mage/cards/c/ConsumingVapors.java | 2 +- Mage.Sets/src/mage/cards/c/Convalescence.java | 2 +- Mage.Sets/src/mage/cards/c/Corrupt.java | 2 +- Mage.Sets/src/mage/cards/c/Crumble.java | 2 +- .../src/mage/cards/c/CryptIncursion.java | 2 +- .../src/mage/cards/c/CurseOfVengeance.java | 2 +- .../src/mage/cards/d/DaxosOfMeletis.java | 2 +- .../src/mage/cards/d/DazzlingReflection.java | 2 +- Mage.Sets/src/mage/cards/d/DeathWatch.java | 2 +- .../src/mage/cards/d/DeathgorgeScavenger.java | 2 +- Mage.Sets/src/mage/cards/d/DeathsCaress.java | 2 +- .../src/mage/cards/d/DebtToTheDeathless.java | 2 +- Mage.Sets/src/mage/cards/d/DevourFlesh.java | 2 +- .../src/mage/cards/d/DevouringGreed.java | 2 +- .../src/mage/cards/d/DiscipleOfBolas.java | 2 +- .../mage/cards/d/DiscipleOfGriselbrand.java | 2 +- .../src/mage/cards/d/DivineCongregation.java | 2 +- Mage.Sets/src/mage/cards/d/Doomgape.java | 2 +- Mage.Sets/src/mage/cards/d/DrainLife.java | 2 +- .../src/mage/cards/d/DruidicSatchel.java | 2 +- Mage.Sets/src/mage/cards/e/EbonyCharm.java | 2 +- .../src/mage/cards/e/ElixirOfImmortality.java | 2 +- Mage.Sets/src/mage/cards/e/ElspethTirel.java | 2 +- .../src/mage/cards/e/EmissaryOfHope.java | 2 +- .../src/mage/cards/e/EngulfingSlagwurm.java | 2 +- Mage.Sets/src/mage/cards/e/EssenceBottle.java | 2 +- .../src/mage/cards/e/EssenceHarvest.java | 2 +- Mage.Sets/src/mage/cards/e/EssenceSliver.java | 2 +- Mage.Sets/src/mage/cards/e/Exile.java | 2 +- Mage.Sets/src/mage/cards/e/Exsanguinate.java | 2 +- Mage.Sets/src/mage/cards/f/Fasting.java | 2 +- .../src/mage/cards/f/FeudkillersVerdict.java | 2 +- Mage.Sets/src/mage/cards/f/FiligreeAngel.java | 2 +- Mage.Sets/src/mage/cards/f/ForceDrain.java | 2 +- Mage.Sets/src/mage/cards/f/ForceMastery.java | 2 +- .../mage/cards/f/FoulTongueInvocation.java | 2 +- .../src/mage/cards/f/FoulTongueShriek.java | 2 +- .../src/mage/cards/f/FracturingGust.java | 2 +- .../src/mage/cards/f/FruitOfTheFirstTree.java | 2 +- Mage.Sets/src/mage/cards/f/Fumigate.java | 2 +- Mage.Sets/src/mage/cards/g/GameOfChaos.java | 2 +- .../src/mage/cards/g/GarrukApexPredator.java | 2 +- .../src/mage/cards/g/GerrardCapashen.java | 2 +- .../src/mage/cards/g/GerrardsVerdict.java | 2 +- .../mage/cards/g/GhostCouncilOfOrzhova.java | 2 +- Mage.Sets/src/mage/cards/g/GideonsDefeat.java | 2 +- Mage.Sets/src/mage/cards/g/Glimmerpost.java | 2 +- Mage.Sets/src/mage/cards/g/GlyphOfLife.java | 2 +- .../src/mage/cards/g/GontisMachinations.java | 2 +- .../src/mage/cards/g/GraveyardShovel.java | 2 +- .../mage/cards/g/GrayMerchantOfAsphodel.java | 2 +- .../mage/cards/g/GroveOfTheBurnwillows.java | 2 +- Mage.Sets/src/mage/cards/h/Hallow.java | 2 +- .../src/mage/cards/h/HarmonyOfNature.java | 2 +- Mage.Sets/src/mage/cards/h/HealTheScars.java | 2 +- Mage.Sets/src/mage/cards/h/HideSeek.java | 2 +- .../src/mage/cards/h/HonorTheFallen.java | 2 +- Mage.Sets/src/mage/cards/i/Illumination.java | 2 +- .../src/mage/cards/i/InterventionPact.java | 2 +- .../src/mage/cards/i/InvincibleHymn.java | 2 +- Mage.Sets/src/mage/cards/i/IvoryTower.java | 2 +- .../src/mage/cards/j/JaddiLifestrider.java | 2 +- .../src/mage/cards/k/KalastriaHighborn.java | 2 +- .../mage/cards/k/KamiOfTheHonoredDead.java | 2 +- Mage.Sets/src/mage/cards/k/KithkinZealot.java | 2 +- .../mage/cards/k/KokushoTheEveningStar.java | 2 +- .../src/mage/cards/l/LammastideWeave.java | 2 +- Mage.Sets/src/mage/cards/l/LastBreath.java | 2 +- Mage.Sets/src/mage/cards/l/LastStand.java | 2 +- Mage.Sets/src/mage/cards/l/LifeChisel.java | 2 +- .../src/mage/cards/l/LifebloodHydra.java | 2 +- Mage.Sets/src/mage/cards/l/Lifesmith.java | 2 +- Mage.Sets/src/mage/cards/l/LivingDestiny.java | 2 +- .../src/mage/cards/l/LuminatePrimordial.java | 2 +- .../src/mage/cards/m/MalakirBloodwitch.java | 2 +- .../src/mage/cards/m/MarduWoeReaper.java | 2 +- .../src/mage/cards/m/MarshalingTheTroops.java | 2 +- .../src/mage/cards/m/MathasFiendSeeker.java | 2 +- Mage.Sets/src/mage/cards/m/MayaelsAria.java | 2 +- .../src/mage/cards/m/MirenTheMoaningWell.java | 2 +- .../src/mage/cards/m/MisfortunesGain.java | 2 +- Mage.Sets/src/mage/cards/m/MomentousFall.java | 2 +- .../src/mage/cards/m/MultanisDecree.java | 2 +- Mage.Sets/src/mage/cards/n/NaturesClaim.java | 2 +- Mage.Sets/src/mage/cards/n/NissaRevane.java | 2 +- .../src/mage/cards/n/NissasRevelation.java | 2 +- .../src/mage/cards/n/NoxiousGearhulk.java | 2 +- .../mage/cards/o/ObNixilisOfTheBlackOath.java | 2 +- Mage.Sets/src/mage/cards/o/OpenSeason.java | 2 +- Mage.Sets/src/mage/cards/o/OrchardWarden.java | 2 +- Mage.Sets/src/mage/cards/o/Oust.java | 2 +- .../src/mage/cards/p/PaladinOfPrahv.java | 2 +- Mage.Sets/src/mage/cards/p/Paraselene.java | 2 +- Mage.Sets/src/mage/cards/p/PathOfBravery.java | 2 +- Mage.Sets/src/mage/cards/p/PathOfPeace.java | 2 +- .../src/mage/cards/p/PhosphorescentFeast.java | 2 +- .../src/mage/cards/p/PhyrexianUnlife.java | 2 +- Mage.Sets/src/mage/cards/p/PiousKitsune.java | 2 +- Mage.Sets/src/mage/cards/p/PiousWarrior.java | 2 +- .../src/mage/cards/p/PlaneswalkersMirth.java | 2 +- .../src/mage/cards/p/PlungeIntoDarkness.java | 2 +- .../mage/cards/p/PriestOfTheWakeningSun.java | 2 +- Mage.Sets/src/mage/cards/p/Purity.java | 2 +- Mage.Sets/src/mage/cards/p/PutridWarrior.java | 2 +- Mage.Sets/src/mage/cards/r/RavenousWampa.java | 2 +- .../src/mage/cards/r/RazorHippogriff.java | 2 +- Mage.Sets/src/mage/cards/r/Renounce.java | 2 +- Mage.Sets/src/mage/cards/r/ReverseDamage.java | 2 +- .../src/mage/cards/r/RiteOfConsumption.java | 2 +- .../src/mage/cards/r/RotfeasterMaggot.java | 2 +- .../src/mage/cards/s/SaplingOfColfenor.java | 2 +- .../src/mage/cards/s/ScavengingOoze.java | 2 +- .../src/mage/cards/s/ScentOfJasmine.java | 2 +- .../src/mage/cards/s/ScholarOfAthreos.java | 2 +- Mage.Sets/src/mage/cards/s/ScribNibblers.java | 2 +- Mage.Sets/src/mage/cards/s/SearchWarrant.java | 2 +- .../src/mage/cards/s/SeedsOfInnocence.java | 2 +- .../mage/cards/s/SelvalaExplorerReturned.java | 2 +- .../src/mage/cards/s/ServantOfTymaret.java | 2 +- Mage.Sets/src/mage/cards/s/SeverSoul.java | 2 +- .../src/mage/cards/s/ShelteringWord.java | 2 +- Mage.Sets/src/mage/cards/s/SifterWurm.java | 2 +- Mage.Sets/src/mage/cards/s/SludgeStrider.java | 2 +- Mage.Sets/src/mage/cards/s/SoulBurn.java | 2 +- Mage.Sets/src/mage/cards/s/SoulsGrace.java | 2 +- .../src/mage/cards/s/SoulsOfTheFaultless.java | 2 +- .../src/mage/cards/s/SphinxSovereign.java | 2 +- Mage.Sets/src/mage/cards/s/SpinalEmbrace.java | 2 +- Mage.Sets/src/mage/cards/s/Spiritualize.java | 2 +- Mage.Sets/src/mage/cards/s/SpoilsOfEvil.java | 2 +- .../src/mage/cards/s/StarlitSanctum.java | 2 +- Mage.Sets/src/mage/cards/s/Subversion.java | 2 +- Mage.Sets/src/mage/cards/s/SufferThePast.java | 2 +- .../src/mage/cards/s/SunscourgeChampion.java | 2 +- Mage.Sets/src/mage/cards/s/SyphonSoul.java | 2 +- .../src/mage/cards/t/TabletOfTheGuilds.java | 2 +- Mage.Sets/src/mage/cards/t/TalarasBane.java | 2 +- .../src/mage/cards/t/TavernSwindler.java | 2 +- .../src/mage/cards/t/TempleOfAclazotz.java | 2 +- .../src/mage/cards/t/TemporaryTruce.java | 2 +- Mage.Sets/src/mage/cards/t/TerashisGrasp.java | 2 +- .../mage/cards/t/TezzeretAgentOfBolas.java | 2 +- .../src/mage/cards/t/ThallidOmnivore.java | 2 +- Mage.Sets/src/mage/cards/t/Thermokarst.java | 2 +- .../mage/cards/t/TimelyReinforcements.java | 2 +- Mage.Sets/src/mage/cards/t/TormentedHero.java | 2 +- Mage.Sets/src/mage/cards/t/Transcendence.java | 2 +- .../src/mage/cards/t/TrespassersCurse.java | 2 +- .../src/mage/cards/t/TributeToHunger.java | 2 +- .../src/mage/cards/t/Triskaidekaphobia.java | 2 +- .../mage/cards/t/TrostaniSelesnyasVoice.java | 2 +- Mage.Sets/src/mage/cards/t/Truce.java | 2 +- .../src/mage/cards/t/TwilightProphet.java | 2 +- .../src/mage/cards/u/UginTheSpiritDragon.java | 2 +- .../src/mage/cards/u/UrborgSyphonMage.java | 2 +- .../src/mage/cards/v/VerdantSunsAvatar.java | 2 +- .../src/mage/cards/v/VigilForTheLost.java | 2 +- Mage.Sets/src/mage/cards/w/WallOfEssence.java | 2 +- Mage.Sets/src/mage/cards/w/WallOfHope.java | 2 +- .../src/mage/cards/w/WallOfReverence.java | 2 +- Mage.Sets/src/mage/cards/w/WarReport.java | 2 +- Mage.Sets/src/mage/cards/w/WeedStrangle.java | 2 +- Mage.Sets/src/mage/cards/w/Woeleecher.java | 2 +- .../src/mage/cards/w/WordsOfWorship.java | 2 +- .../java/org/mage/test/player/TestPlayer.java | 2 +- .../java/org/mage/test/stub/PlayerStub.java | 2 +- ...sDamageGainLifeSourceTriggeredAbility.java | 2 +- .../costs/common/GainLifeOpponentCost.java | 2 +- .../costs/common/GainLifePlayersCost.java | 2 +- ...xileAndGainLifeEqualPowerTargetEffect.java | 2 +- .../effects/common/GainLifeEffect.java | 2 +- .../effects/common/GainLifeTargetEffect.java | 2 +- .../mage/abilities/keyword/ExtortAbility.java | 2 +- .../mage/game/permanent/PermanentImpl.java | 2 +- Mage/src/main/java/mage/players/Player.java | 2 +- .../main/java/mage/players/PlayerImpl.java | 21 +++++++++++-------- 209 files changed, 221 insertions(+), 218 deletions(-) diff --git a/Mage.Sets/src/mage/cards/a/AbattoirGhoul.java b/Mage.Sets/src/mage/cards/a/AbattoirGhoul.java index 8cb9863a69b..3bb2dad8cb2 100644 --- a/Mage.Sets/src/mage/cards/a/AbattoirGhoul.java +++ b/Mage.Sets/src/mage/cards/a/AbattoirGhoul.java @@ -98,7 +98,7 @@ class AbattoirGhoulEffect extends OneShotEffect { if (creature != null) { int toughness = creature.getToughness().getValue(); if (you != null) { - you.gainLife(toughness, game); + you.gainLife(toughness, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/a/AgentOfMasks.java b/Mage.Sets/src/mage/cards/a/AgentOfMasks.java index d19563164ee..bf139fb100a 100644 --- a/Mage.Sets/src/mage/cards/a/AgentOfMasks.java +++ b/Mage.Sets/src/mage/cards/a/AgentOfMasks.java @@ -84,7 +84,7 @@ class AgentOfMasksEffect extends OneShotEffect { loseLife += game.getPlayer(opponentId).loseLife(1, game, false); } if (loseLife > 0) - game.getPlayer(source.getControllerId()).gainLife(loseLife, game); + game.getPlayer(source.getControllerId()).gainLife(loseLife, game, source); return true; } diff --git a/Mage.Sets/src/mage/cards/a/AliveWell.java b/Mage.Sets/src/mage/cards/a/AliveWell.java index 4021b15315a..e22cd7ca504 100644 --- a/Mage.Sets/src/mage/cards/a/AliveWell.java +++ b/Mage.Sets/src/mage/cards/a/AliveWell.java @@ -93,7 +93,7 @@ class WellEffect extends OneShotEffect { Player player = game.getPlayer(source.getControllerId()); int life = 2 * game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game); if (player != null) { - player.gainLife(life, game); + player.gainLife(life, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/a/AnHavvaInn.java b/Mage.Sets/src/mage/cards/a/AnHavvaInn.java index 5e957975c2f..ce38a5427f6 100644 --- a/Mage.Sets/src/mage/cards/a/AnHavvaInn.java +++ b/Mage.Sets/src/mage/cards/a/AnHavvaInn.java @@ -86,7 +86,7 @@ class AnHavvaInnEffect extends OneShotEffect { FilterCreaturePermanent filter = new FilterCreaturePermanent("green creatures"); filter.add(new ColorPredicate(ObjectColor.GREEN)); int greenCreatures = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game); - player.gainLife(greenCreatures+1, game); + player.gainLife(greenCreatures+1, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/a/AngelicChorus.java b/Mage.Sets/src/mage/cards/a/AngelicChorus.java index 912bfc39f24..74efd8f9fb0 100644 --- a/Mage.Sets/src/mage/cards/a/AngelicChorus.java +++ b/Mage.Sets/src/mage/cards/a/AngelicChorus.java @@ -126,7 +126,7 @@ class AngelicChorusEffect extends OneShotEffect { int amount = creature.getToughness().getValue(); Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(amount, game); + player.gainLife(amount, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/a/AnimalBoneyard.java b/Mage.Sets/src/mage/cards/a/AnimalBoneyard.java index 586fbba00ea..d924c24886a 100644 --- a/Mage.Sets/src/mage/cards/a/AnimalBoneyard.java +++ b/Mage.Sets/src/mage/cards/a/AnimalBoneyard.java @@ -108,7 +108,7 @@ class AnimalBoneyardEffect extends OneShotEffect { } } if (toughness > 0) { - controller.gainLife(toughness, game); + controller.gainLife(toughness, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/a/ApproachOfTheSecondSun.java b/Mage.Sets/src/mage/cards/a/ApproachOfTheSecondSun.java index c2f38a1fa3a..f87cfd3a35a 100644 --- a/Mage.Sets/src/mage/cards/a/ApproachOfTheSecondSun.java +++ b/Mage.Sets/src/mage/cards/a/ApproachOfTheSecondSun.java @@ -71,7 +71,7 @@ class ApproachOfTheSecondSunEffect extends OneShotEffect { controller.won(game); } else { // Gain 7 life and put this back into library. - controller.gainLife(7, game); + controller.gainLife(7, game, source); // Put this into the library as the 7th from the top if (spell.isCopiedSpell()) { diff --git a/Mage.Sets/src/mage/cards/a/ArchangelsLight.java b/Mage.Sets/src/mage/cards/a/ArchangelsLight.java index 8768c428ef5..bc0d35075a4 100644 --- a/Mage.Sets/src/mage/cards/a/ArchangelsLight.java +++ b/Mage.Sets/src/mage/cards/a/ArchangelsLight.java @@ -81,7 +81,7 @@ class ArchangelsLightEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); DynamicValue value = new CardsInControllerGraveyardCount(); if (controller != null) { - controller.gainLife(value.calculate(game, source, this) * 2, game); + controller.gainLife(value.calculate(game, source, this) * 2, game, source); for (Card card: controller.getGraveyard().getCards(game)) { controller.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.GRAVEYARD, true, true); } diff --git a/Mage.Sets/src/mage/cards/a/AuguryAdept.java b/Mage.Sets/src/mage/cards/a/AuguryAdept.java index 9dfc1035c15..ac83ca62458 100644 --- a/Mage.Sets/src/mage/cards/a/AuguryAdept.java +++ b/Mage.Sets/src/mage/cards/a/AuguryAdept.java @@ -99,7 +99,7 @@ class AuguryAdeptEffect extends OneShotEffect { int cmc = card.getConvertedManaCost(); if (cmc > 0) { - controller.gainLife(cmc, game); + controller.gainLife(cmc, game, source); } cards.add(card); controller.revealCards(sourceObject.getName(), cards, game); diff --git a/Mage.Sets/src/mage/cards/a/AvenShrine.java b/Mage.Sets/src/mage/cards/a/AvenShrine.java index c5c2a2b9c84..ec84ba437e7 100644 --- a/Mage.Sets/src/mage/cards/a/AvenShrine.java +++ b/Mage.Sets/src/mage/cards/a/AvenShrine.java @@ -130,7 +130,7 @@ class AvenShrineEffect extends OneShotEffect { count += player.getGraveyard().count(filterCardName, game); } } - controller.gainLife(count, game); + controller.gainLife(count, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/a/AvengerEnDal.java b/Mage.Sets/src/mage/cards/a/AvengerEnDal.java index a259975ebf0..356d18b8539 100644 --- a/Mage.Sets/src/mage/cards/a/AvengerEnDal.java +++ b/Mage.Sets/src/mage/cards/a/AvengerEnDal.java @@ -101,7 +101,7 @@ class AvengerEnDalEffect extends OneShotEffect { if (permanent != null) { Player player = game.getPlayer(permanent.getControllerId()); if (player != null) { - player.gainLife(permanent.getToughness().getValue(), game); + player.gainLife(permanent.getToughness().getValue(), game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/a/AweStrike.java b/Mage.Sets/src/mage/cards/a/AweStrike.java index e8f508960f4..8632b250d69 100755 --- a/Mage.Sets/src/mage/cards/a/AweStrike.java +++ b/Mage.Sets/src/mage/cards/a/AweStrike.java @@ -81,7 +81,7 @@ class AweStrikeEffect extends PreventionEffectImpl { PreventionEffectData preventionData = preventDamageAction(event, source, game); Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(preventionData.getPreventedDamage(), game); + player.gainLife(preventionData.getPreventedDamage(), game, source); } this.used = true; this.discard(); diff --git a/Mage.Sets/src/mage/cards/a/AzorTheLawbringer.java b/Mage.Sets/src/mage/cards/a/AzorTheLawbringer.java index 903652938c8..078f627b4b1 100644 --- a/Mage.Sets/src/mage/cards/a/AzorTheLawbringer.java +++ b/Mage.Sets/src/mage/cards/a/AzorTheLawbringer.java @@ -193,7 +193,7 @@ class AzorTheLawbringerAttacksEffect extends OneShotEffect { cost.add(new GenericManaCost(costX)); if (cost.pay(source, game, source.getSourceId(), source.getControllerId(), false, null)) { controller.resetStoredBookmark(game); // otherwise you can undo the payment - controller.gainLife(costX, game); + controller.gainLife(costX, game, source); controller.drawCards(costX, game); return true; } diff --git a/Mage.Sets/src/mage/cards/a/AzorsGateway.java b/Mage.Sets/src/mage/cards/a/AzorsGateway.java index 06c77b60955..f3655938a80 100644 --- a/Mage.Sets/src/mage/cards/a/AzorsGateway.java +++ b/Mage.Sets/src/mage/cards/a/AzorsGateway.java @@ -119,7 +119,7 @@ class AzorsGatewayEffect extends OneShotEffect { usedCMC.add(card.getConvertedManaCost()); } if (usedCMC.size() > 4) { - controller.gainLife(4, game); + controller.gainLife(4, game, source); new UntapSourceEffect().apply(game, source); new TransformSourceEffect(true).apply(game, source); } diff --git a/Mage.Sets/src/mage/cards/b/BeaconOfImmortality.java b/Mage.Sets/src/mage/cards/b/BeaconOfImmortality.java index 079c7bec0a5..44a72af827e 100644 --- a/Mage.Sets/src/mage/cards/b/BeaconOfImmortality.java +++ b/Mage.Sets/src/mage/cards/b/BeaconOfImmortality.java @@ -92,7 +92,7 @@ class BeaconOfImmortalityEffect extends OneShotEffect { return true; } if (amount > 0) { - player.gainLife(amount, game); + player.gainLife(amount, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/b/BenevolentOffering.java b/Mage.Sets/src/mage/cards/b/BenevolentOffering.java index a3b9d19c3ea..f1667725642 100644 --- a/Mage.Sets/src/mage/cards/b/BenevolentOffering.java +++ b/Mage.Sets/src/mage/cards/b/BenevolentOffering.java @@ -131,9 +131,9 @@ class BenevolentOfferingEffect2 extends OneShotEffect { Player opponent = game.getPlayer(target.getFirstTarget()); if (opponent != null) { int count = game.getBattlefield().countAll(StaticFilters.FILTER_PERMANENT_CREATURE, controller.getId(), game) * 2; - controller.gainLife(count, game); + controller.gainLife(count, game, source); count = game.getBattlefield().countAll(StaticFilters.FILTER_PERMANENT_CREATURE, opponent.getId(), game) * 2; - opponent.gainLife(count, game); + opponent.gainLife(count, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/b/Biorhythm.java b/Mage.Sets/src/mage/cards/b/Biorhythm.java index e7dae760730..2d6ab817cc5 100644 --- a/Mage.Sets/src/mage/cards/b/Biorhythm.java +++ b/Mage.Sets/src/mage/cards/b/Biorhythm.java @@ -89,7 +89,7 @@ class BiorhythmEffect extends OneShotEffect { player.loseLife(diff, game, false); } if(diff < 0) { - player.gainLife(-diff, game); + player.gainLife(-diff, game, source); } } } diff --git a/Mage.Sets/src/mage/cards/b/BloodTithe.java b/Mage.Sets/src/mage/cards/b/BloodTithe.java index 88d3237b9d3..91c594b5bc8 100644 --- a/Mage.Sets/src/mage/cards/b/BloodTithe.java +++ b/Mage.Sets/src/mage/cards/b/BloodTithe.java @@ -77,7 +77,7 @@ class BloodTitheEffect extends OneShotEffect { for (UUID opponentId: game.getOpponents(source.getControllerId())) { damage += game.getPlayer(opponentId).damage(3, source.getSourceId(), game, false, true); } - game.getPlayer(source.getControllerId()).gainLife(damage, game); + game.getPlayer(source.getControllerId()).gainLife(damage, game, source); return true; } diff --git a/Mage.Sets/src/mage/cards/b/BloodTribute.java b/Mage.Sets/src/mage/cards/b/BloodTribute.java index 9b2f90d80c4..0db8d688e49 100644 --- a/Mage.Sets/src/mage/cards/b/BloodTribute.java +++ b/Mage.Sets/src/mage/cards/b/BloodTribute.java @@ -141,7 +141,7 @@ class BloodTributeGainLifeEffect extends OneShotEffect { if (player != null) { Integer amount = (Integer) game.getState().getValue(source.getSourceId().toString() + "_BloodTribute"); if (amount != null && amount > 0) { - player.gainLife(amount, game); + player.gainLife(amount, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/b/BlossomingWreath.java b/Mage.Sets/src/mage/cards/b/BlossomingWreath.java index 03fdf6e3496..a0f4d84a21b 100644 --- a/Mage.Sets/src/mage/cards/b/BlossomingWreath.java +++ b/Mage.Sets/src/mage/cards/b/BlossomingWreath.java @@ -80,7 +80,7 @@ public class BlossomingWreath extends CardImpl { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - controller.gainLife(controller.getGraveyard().count(new FilterCreatureCard(), game), game); + controller.gainLife(controller.getGraveyard().count(new FilterCreatureCard(), game), game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/b/BounteousKirin.java b/Mage.Sets/src/mage/cards/b/BounteousKirin.java index 5a3ae7a8fac..539324e0fee 100644 --- a/Mage.Sets/src/mage/cards/b/BounteousKirin.java +++ b/Mage.Sets/src/mage/cards/b/BounteousKirin.java @@ -94,7 +94,7 @@ class BounteousKirinEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { int life = spell.getConvertedManaCost(); - controller.gainLife(life, game); + controller.gainLife(life, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/b/Brightflame.java b/Mage.Sets/src/mage/cards/b/Brightflame.java index 385ca6d6fa5..7b1107b2fe7 100644 --- a/Mage.Sets/src/mage/cards/b/Brightflame.java +++ b/Mage.Sets/src/mage/cards/b/Brightflame.java @@ -105,7 +105,7 @@ class BrightflameEffect extends OneShotEffect { Player you = game.getPlayer(source.getControllerId()); if (you != null && damageDealt > 0) { - you.gainLife(damageDealt, game); + you.gainLife(damageDealt, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/b/BubblingCauldron.java b/Mage.Sets/src/mage/cards/b/BubblingCauldron.java index 4a523efc669..94b4795837d 100644 --- a/Mage.Sets/src/mage/cards/b/BubblingCauldron.java +++ b/Mage.Sets/src/mage/cards/b/BubblingCauldron.java @@ -102,7 +102,7 @@ class BubblingCauldronEffect extends OneShotEffect { Player opponent = game.getPlayer(opponentId); damage += opponent.loseLife(4, game, false); } - game.getPlayer(source.getControllerId()).gainLife(damage, game); + game.getPlayer(source.getControllerId()).gainLife(damage, game, source); return true; } diff --git a/Mage.Sets/src/mage/cards/c/CandlesGlow.java b/Mage.Sets/src/mage/cards/c/CandlesGlow.java index 2142d202826..9377a6d3cb7 100644 --- a/Mage.Sets/src/mage/cards/c/CandlesGlow.java +++ b/Mage.Sets/src/mage/cards/c/CandlesGlow.java @@ -117,7 +117,7 @@ class CandlesGlowPreventDamageTargetEffect extends PreventionEffectImpl { if (prevented > 0) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - controller.gainLife(prevented, game); + controller.gainLife(prevented, game, source); game.informPlayers(new StringBuilder("Candles' Glow: Prevented ").append(prevented).append(" damage ").toString()); game.informPlayers(new StringBuilder("Candles' Glow: ").append(controller.getLogName()).append(" gained ").append(prevented).append("life").toString()); } diff --git a/Mage.Sets/src/mage/cards/c/CelestialMantle.java b/Mage.Sets/src/mage/cards/c/CelestialMantle.java index befe24e8c9f..5fa64c03fae 100644 --- a/Mage.Sets/src/mage/cards/c/CelestialMantle.java +++ b/Mage.Sets/src/mage/cards/c/CelestialMantle.java @@ -133,7 +133,7 @@ class CelestialMantleEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(player.getLife(), game); + player.gainLife(player.getLife(), game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/c/CertainDeath.java b/Mage.Sets/src/mage/cards/c/CertainDeath.java index 20b224a9c79..4bde849fd2d 100644 --- a/Mage.Sets/src/mage/cards/c/CertainDeath.java +++ b/Mage.Sets/src/mage/cards/c/CertainDeath.java @@ -88,7 +88,7 @@ class CertainDeathEffect extends OneShotEffect { Player permController = game.getPlayer(permanent.getControllerId()); if (permController != null) { permController.loseLife(2, game, false); - you.gainLife(2, game); + you.gainLife(2, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/c/ChaliceOfLife.java b/Mage.Sets/src/mage/cards/c/ChaliceOfLife.java index 90392f6cc2f..c8a363f7494 100644 --- a/Mage.Sets/src/mage/cards/c/ChaliceOfLife.java +++ b/Mage.Sets/src/mage/cards/c/ChaliceOfLife.java @@ -87,7 +87,7 @@ class ChaliceOfLifeEffect extends OneShotEffect { if (permanent != null) { Player player = game.getPlayer(source.getControllerId()); //gain 1 life - player.gainLife(1, game); + player.gainLife(1, game, source); // if you have at least 10 life more than your starting life total, transform Chalice of Life. if (player.getLife() >= game.getLife() + 10) { diff --git a/Mage.Sets/src/mage/cards/c/ChancellorOfTheDross.java b/Mage.Sets/src/mage/cards/c/ChancellorOfTheDross.java index 0a26a32dcd7..299fdcf72e8 100644 --- a/Mage.Sets/src/mage/cards/c/ChancellorOfTheDross.java +++ b/Mage.Sets/src/mage/cards/c/ChancellorOfTheDross.java @@ -119,7 +119,7 @@ class ChancellorOfTheDrossEffect extends OneShotEffect { loseLife += game.getPlayer(opponentId).loseLife(3, game, false); } if (loseLife > 0) { - game.getPlayer(source.getControllerId()).gainLife(loseLife, game); + game.getPlayer(source.getControllerId()).gainLife(loseLife, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/c/ChantOfVituGhazi.java b/Mage.Sets/src/mage/cards/c/ChantOfVituGhazi.java index df72a965043..57bcb8565d6 100644 --- a/Mage.Sets/src/mage/cards/c/ChantOfVituGhazi.java +++ b/Mage.Sets/src/mage/cards/c/ChantOfVituGhazi.java @@ -89,7 +89,7 @@ class ChantOfVituGhaziPreventEffect extends PreventAllDamageByAllPermanentsEffec PreventionEffectData preventionData = preventDamageAction(event, source, game); Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - controller.gainLife(preventionData.getPreventedDamage(), game); + controller.gainLife(preventionData.getPreventedDamage(), game, source); } // damage amount is reduced or set to 0 so complete replacement of damage event is never neccessary return false; diff --git a/Mage.Sets/src/mage/cards/c/Chastise.java b/Mage.Sets/src/mage/cards/c/Chastise.java index e9da57e99ea..3628304e443 100644 --- a/Mage.Sets/src/mage/cards/c/Chastise.java +++ b/Mage.Sets/src/mage/cards/c/Chastise.java @@ -89,7 +89,7 @@ class ChastiseEffect extends OneShotEffect { int power = permanent.getPower().getValue(); Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(power, game); + player.gainLife(power, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/c/ChoArrimAlchemist.java b/Mage.Sets/src/mage/cards/c/ChoArrimAlchemist.java index db7f8862fa2..74d31a45303 100644 --- a/Mage.Sets/src/mage/cards/c/ChoArrimAlchemist.java +++ b/Mage.Sets/src/mage/cards/c/ChoArrimAlchemist.java @@ -116,7 +116,7 @@ class ChoArrimAlchemistEffect extends PreventionEffectImpl { if (preventionData.getPreventedDamage() > 0) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(preventionData.getPreventedDamage(), game); + player.gainLife(preventionData.getPreventedDamage(), game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/c/Condemn.java b/Mage.Sets/src/mage/cards/c/Condemn.java index 1934f791030..39a36e6dfde 100644 --- a/Mage.Sets/src/mage/cards/c/Condemn.java +++ b/Mage.Sets/src/mage/cards/c/Condemn.java @@ -91,7 +91,7 @@ class CondemnEffect extends OneShotEffect { if (permanent != null) { Player player = game.getPlayer(permanent.getControllerId()); if (player != null) { - player.gainLife(permanent.getToughness().getValue(), game); + player.gainLife(permanent.getToughness().getValue(), game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/c/ConsumeSpirit.java b/Mage.Sets/src/mage/cards/c/ConsumeSpirit.java index a359f38bf7b..ab73021fbf4 100644 --- a/Mage.Sets/src/mage/cards/c/ConsumeSpirit.java +++ b/Mage.Sets/src/mage/cards/c/ConsumeSpirit.java @@ -107,7 +107,7 @@ class ConsumeSpiritEffect extends OneShotEffect { } Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - controller.gainLife(amount, game); + controller.gainLife(amount, game, source); } else { return false; } diff --git a/Mage.Sets/src/mage/cards/c/ConsumingVapors.java b/Mage.Sets/src/mage/cards/c/ConsumingVapors.java index d32a352f96a..8ab8006cbde 100644 --- a/Mage.Sets/src/mage/cards/c/ConsumingVapors.java +++ b/Mage.Sets/src/mage/cards/c/ConsumingVapors.java @@ -103,7 +103,7 @@ class ConsumingVaporsEffect extends OneShotEffect { Permanent permanent = game.getPermanent(target.getFirstTarget()); if ( permanent != null ) { - controller.gainLife(permanent.getToughness().getValue(), game); + controller.gainLife(permanent.getToughness().getValue(), game, source); return permanent.sacrifice(source.getSourceId(), game); } return true; diff --git a/Mage.Sets/src/mage/cards/c/Convalescence.java b/Mage.Sets/src/mage/cards/c/Convalescence.java index 6e8fbeee479..c1e49c05d56 100644 --- a/Mage.Sets/src/mage/cards/c/Convalescence.java +++ b/Mage.Sets/src/mage/cards/c/Convalescence.java @@ -78,7 +78,7 @@ class ConvalescenceEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); if (player.getLife() <= 10) { - player.gainLife(1, game); + player.gainLife(1, game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/c/Corrupt.java b/Mage.Sets/src/mage/cards/c/Corrupt.java index 23929b8eac2..af2dd84bd5d 100644 --- a/Mage.Sets/src/mage/cards/c/Corrupt.java +++ b/Mage.Sets/src/mage/cards/c/Corrupt.java @@ -107,7 +107,7 @@ class CorruptEffect extends OneShotEffect { } Player you = game.getPlayer(source.getControllerId()); if (you != null) { - you.gainLife(damageDealt, game); + you.gainLife(damageDealt, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/c/Crumble.java b/Mage.Sets/src/mage/cards/c/Crumble.java index c6defbaede2..eedc915cbe9 100644 --- a/Mage.Sets/src/mage/cards/c/Crumble.java +++ b/Mage.Sets/src/mage/cards/c/Crumble.java @@ -90,7 +90,7 @@ class CrumbleEffect extends OneShotEffect { int cost = permanent.getConvertedManaCost(); Player player = game.getPlayer(permanent.getControllerId()); if (player != null) { - player.gainLife(cost, game); + player.gainLife(cost, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/c/CryptIncursion.java b/Mage.Sets/src/mage/cards/c/CryptIncursion.java index 4c5c0cc63bc..add4ddaae1e 100644 --- a/Mage.Sets/src/mage/cards/c/CryptIncursion.java +++ b/Mage.Sets/src/mage/cards/c/CryptIncursion.java @@ -97,7 +97,7 @@ class CryptIncursionEffect extends OneShotEffect { } } } - player.gainLife(exiledCards * 3, game); + player.gainLife(exiledCards * 3, game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/c/CurseOfVengeance.java b/Mage.Sets/src/mage/cards/c/CurseOfVengeance.java index 5ec579aca4c..dffe0ea851f 100644 --- a/Mage.Sets/src/mage/cards/c/CurseOfVengeance.java +++ b/Mage.Sets/src/mage/cards/c/CurseOfVengeance.java @@ -184,7 +184,7 @@ class CurseOfVengeanceDrawLifeEffect extends OneShotEffect { if (sourceObject != null && controller != null) { if (sourceObject.getCounters(game).containsKey(CounterType.SPITE)) { controller.drawCards(sourceObject.getCounters(game).getCount(CounterType.SPITE), game); - controller.gainLife(sourceObject.getCounters(game).getCount(CounterType.SPITE), game); + controller.gainLife(sourceObject.getCounters(game).getCount(CounterType.SPITE), game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/d/DaxosOfMeletis.java b/Mage.Sets/src/mage/cards/d/DaxosOfMeletis.java index 5b66bc19302..74ebfa642a0 100644 --- a/Mage.Sets/src/mage/cards/d/DaxosOfMeletis.java +++ b/Mage.Sets/src/mage/cards/d/DaxosOfMeletis.java @@ -121,7 +121,7 @@ class DaxosOfMeletisEffect extends OneShotEffect { // player gains life int cmc = card.getConvertedManaCost(); if (cmc > 0) { - controller.gainLife(cmc, game); + controller.gainLife(cmc, game, source); } // Add effects only if the card has a spellAbility (e.g. not for lands). if (card.getSpellAbility() != null) { diff --git a/Mage.Sets/src/mage/cards/d/DazzlingReflection.java b/Mage.Sets/src/mage/cards/d/DazzlingReflection.java index c0d22aa0194..bf709171138 100644 --- a/Mage.Sets/src/mage/cards/d/DazzlingReflection.java +++ b/Mage.Sets/src/mage/cards/d/DazzlingReflection.java @@ -89,7 +89,7 @@ class DazzlingReflectionEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { Permanent targetCreature = game.getPermanentOrLKIBattlefield(getTargetPointer().getFirst(game, source)); - controller.gainLife(targetCreature.getPower().getValue(), game); + controller.gainLife(targetCreature.getPower().getValue(), game, source); ContinuousEffect effect = new DazzlingReflectionPreventEffect(); effect.setTargetPointer(new FixedTarget(targetCreature, game)); game.addEffect(effect, source); diff --git a/Mage.Sets/src/mage/cards/d/DeathWatch.java b/Mage.Sets/src/mage/cards/d/DeathWatch.java index 26f421155a7..ed09611320e 100644 --- a/Mage.Sets/src/mage/cards/d/DeathWatch.java +++ b/Mage.Sets/src/mage/cards/d/DeathWatch.java @@ -99,7 +99,7 @@ public class DeathWatch extends CardImpl { if (opponent != null) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - controller.gainLife(creature.getToughness().getValue(), game); + controller.gainLife(creature.getToughness().getValue(), game, source); opponent.loseLife(creature.getPower().getValue(), game, false); return true; } diff --git a/Mage.Sets/src/mage/cards/d/DeathgorgeScavenger.java b/Mage.Sets/src/mage/cards/d/DeathgorgeScavenger.java index 868409cd850..6a9c6beb815 100644 --- a/Mage.Sets/src/mage/cards/d/DeathgorgeScavenger.java +++ b/Mage.Sets/src/mage/cards/d/DeathgorgeScavenger.java @@ -98,7 +98,7 @@ class DeathgorgeScavengerEffect extends OneShotEffect { if (card != null) { controller.moveCards(card, Zone.EXILED, source, game); if (card.isCreature()) { - controller.gainLife(2, game); + controller.gainLife(2, game, source); } else { game.addEffect(new BoostSourceEffect(1, 1, Duration.EndOfTurn), source); } diff --git a/Mage.Sets/src/mage/cards/d/DeathsCaress.java b/Mage.Sets/src/mage/cards/d/DeathsCaress.java index cc59644c20e..f6257828bb3 100644 --- a/Mage.Sets/src/mage/cards/d/DeathsCaress.java +++ b/Mage.Sets/src/mage/cards/d/DeathsCaress.java @@ -91,7 +91,7 @@ class DeathsCaressEffect extends OneShotEffect { Player player = game.getPlayer(source.getControllerId()); Permanent creature = (Permanent) game.getLastKnownInformation(source.getFirstTarget(), Zone.BATTLEFIELD); if (player != null && creature != null && creature.hasSubtype(SubType.HUMAN, game)) { - player.gainLife(creature.getToughness().getValue(), game); + player.gainLife(creature.getToughness().getValue(), game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/d/DebtToTheDeathless.java b/Mage.Sets/src/mage/cards/d/DebtToTheDeathless.java index e0533acbce8..3578b52ec90 100644 --- a/Mage.Sets/src/mage/cards/d/DebtToTheDeathless.java +++ b/Mage.Sets/src/mage/cards/d/DebtToTheDeathless.java @@ -88,7 +88,7 @@ class DebtToTheDeathlessEffect extends OneShotEffect { lifeLost += opponent.loseLife(xValue * 2, game, false); } } - controller.gainLife(lifeLost, game); + controller.gainLife(lifeLost, game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/d/DevourFlesh.java b/Mage.Sets/src/mage/cards/d/DevourFlesh.java index 804367bb580..70290993133 100644 --- a/Mage.Sets/src/mage/cards/d/DevourFlesh.java +++ b/Mage.Sets/src/mage/cards/d/DevourFlesh.java @@ -100,7 +100,7 @@ class DevourFleshSacrificeEffect extends OneShotEffect { int gainLife = permanent.getToughness().getValue(); permanent.sacrifice(source.getSourceId(), game); game.applyEffects(); - player.gainLife(gainLife, game); + player.gainLife(gainLife, game, source); } else { return false; } diff --git a/Mage.Sets/src/mage/cards/d/DevouringGreed.java b/Mage.Sets/src/mage/cards/d/DevouringGreed.java index a3d226dae34..9507bb90539 100644 --- a/Mage.Sets/src/mage/cards/d/DevouringGreed.java +++ b/Mage.Sets/src/mage/cards/d/DevouringGreed.java @@ -109,7 +109,7 @@ class DevouringGreedEffect extends OneShotEffect { Player sourcePlayer = game.getPlayer(source.getControllerId()); if (targetPlayer != null && sourcePlayer != null) { targetPlayer.loseLife(amount, game, false); - sourcePlayer.gainLife(amount, game); + sourcePlayer.gainLife(amount, game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/d/DiscipleOfBolas.java b/Mage.Sets/src/mage/cards/d/DiscipleOfBolas.java index 7395ebfabb1..875aac38b3d 100644 --- a/Mage.Sets/src/mage/cards/d/DiscipleOfBolas.java +++ b/Mage.Sets/src/mage/cards/d/DiscipleOfBolas.java @@ -100,7 +100,7 @@ class DiscipleOfBolasEffect extends OneShotEffect { if (sacrificed != null) { sacrificed.sacrifice(source.getSourceId(), game); int power = sacrificed.getPower().getValue(); - controller.gainLife(power, game); + controller.gainLife(power, game, source); controller.drawCards(power, game); } } diff --git a/Mage.Sets/src/mage/cards/d/DiscipleOfGriselbrand.java b/Mage.Sets/src/mage/cards/d/DiscipleOfGriselbrand.java index e1858675518..c3d8b94d790 100644 --- a/Mage.Sets/src/mage/cards/d/DiscipleOfGriselbrand.java +++ b/Mage.Sets/src/mage/cards/d/DiscipleOfGriselbrand.java @@ -100,7 +100,7 @@ class DiscipleOfGriselbrandEffect extends OneShotEffect { amount = ((SacrificeTargetCost) cost).getPermanents().get(0).getToughness().getValue(); Player player = game.getPlayer(source.getControllerId()); if (amount > 0 && player != null) { - player.gainLife(amount, game); + player.gainLife(amount, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/d/DivineCongregation.java b/Mage.Sets/src/mage/cards/d/DivineCongregation.java index 69e257e7271..232dadbbce4 100644 --- a/Mage.Sets/src/mage/cards/d/DivineCongregation.java +++ b/Mage.Sets/src/mage/cards/d/DivineCongregation.java @@ -90,7 +90,7 @@ class DivineCongregationEffect extends OneShotEffect { Player player = game.getPlayer(source.getFirstTarget()); if (controller != null) { int critters = game.getBattlefield().getAllActivePermanents(new FilterCreaturePermanent(), player.getId(), game).size(); - controller.gainLife(2 * critters, game); + controller.gainLife(2 * critters, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/d/Doomgape.java b/Mage.Sets/src/mage/cards/d/Doomgape.java index 2547128ab77..22836aff02c 100644 --- a/Mage.Sets/src/mage/cards/d/Doomgape.java +++ b/Mage.Sets/src/mage/cards/d/Doomgape.java @@ -104,7 +104,7 @@ class DoomgapeEffect extends OneShotEffect { Permanent creature = game.getPermanent(target.getFirstTarget()); if (creature != null) { if (creature.sacrifice(source.getSourceId(), game)) { - controller.gainLife(creature.getToughness().getValue(), game); + controller.gainLife(creature.getToughness().getValue(), game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/d/DrainLife.java b/Mage.Sets/src/mage/cards/d/DrainLife.java index f517c7252ba..5173130dc8c 100644 --- a/Mage.Sets/src/mage/cards/d/DrainLife.java +++ b/Mage.Sets/src/mage/cards/d/DrainLife.java @@ -113,7 +113,7 @@ class DrainLifeEffect extends OneShotEffect { } Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - controller.gainLife(lifetogain, game); + controller.gainLife(lifetogain, game, source); } else { return false; } diff --git a/Mage.Sets/src/mage/cards/d/DruidicSatchel.java b/Mage.Sets/src/mage/cards/d/DruidicSatchel.java index 1245f2b9596..2ab51a3e612 100644 --- a/Mage.Sets/src/mage/cards/d/DruidicSatchel.java +++ b/Mage.Sets/src/mage/cards/d/DruidicSatchel.java @@ -92,7 +92,7 @@ class DruidicSatchelEffect extends OneShotEffect { card.putOntoBattlefield(game, Zone.LIBRARY, source.getSourceId(), source.getControllerId()); } if (!card.isCreature() && !card.isLand()) { - player.gainLife(2, game); + player.gainLife(2, game, source); } Cards cards = new CardsImpl(); diff --git a/Mage.Sets/src/mage/cards/e/EbonyCharm.java b/Mage.Sets/src/mage/cards/e/EbonyCharm.java index 53a4318d601..ffd37d54c17 100644 --- a/Mage.Sets/src/mage/cards/e/EbonyCharm.java +++ b/Mage.Sets/src/mage/cards/e/EbonyCharm.java @@ -99,7 +99,7 @@ class EbonyCharmDrainEffect extends OneShotEffect { Player controllerPlayer = game.getPlayer(source.getControllerId()); if (targetPlayer != null && controllerPlayer != null) { targetPlayer.damage(1, source.getSourceId(), game, false, true); - controllerPlayer.gainLife(1, game); + controllerPlayer.gainLife(1, game, source); } return false; } diff --git a/Mage.Sets/src/mage/cards/e/ElixirOfImmortality.java b/Mage.Sets/src/mage/cards/e/ElixirOfImmortality.java index 39cebbe57ce..7e6af1d22b0 100644 --- a/Mage.Sets/src/mage/cards/e/ElixirOfImmortality.java +++ b/Mage.Sets/src/mage/cards/e/ElixirOfImmortality.java @@ -84,7 +84,7 @@ class ElixerOfImmortalityEffect extends OneShotEffect { Player player = game.getPlayer(source.getControllerId()); Permanent permanent = game.getPermanent(source.getSourceId()); if (player != null) { - player.gainLife(5, game); + player.gainLife(5, game, source); if (permanent != null) { player.moveCardToLibraryWithInfo(permanent, source.getSourceId(), game, Zone.BATTLEFIELD, true, true); } diff --git a/Mage.Sets/src/mage/cards/e/ElspethTirel.java b/Mage.Sets/src/mage/cards/e/ElspethTirel.java index a0f6e7cdc0d..46590803523 100644 --- a/Mage.Sets/src/mage/cards/e/ElspethTirel.java +++ b/Mage.Sets/src/mage/cards/e/ElspethTirel.java @@ -90,7 +90,7 @@ class ElspethTirelFirstEffect extends OneShotEffect { int amount = game.getBattlefield().countAll(StaticFilters.FILTER_PERMANENT_CREATURE, source.getControllerId(), game); Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(amount, game); + player.gainLife(amount, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/e/EmissaryOfHope.java b/Mage.Sets/src/mage/cards/e/EmissaryOfHope.java index 4c191383e48..f16bb574cd5 100644 --- a/Mage.Sets/src/mage/cards/e/EmissaryOfHope.java +++ b/Mage.Sets/src/mage/cards/e/EmissaryOfHope.java @@ -97,7 +97,7 @@ class EmissaryOfHopeEffect extends OneShotEffect { if (targetPlayer != null && sourcePlayer != null) { int amount = game.getBattlefield().count(filter, source.getSourceId(), targetPlayer.getId(), game); if (amount > 0) { - sourcePlayer.gainLife(amount, game); + sourcePlayer.gainLife(amount, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/e/EngulfingSlagwurm.java b/Mage.Sets/src/mage/cards/e/EngulfingSlagwurm.java index a725aafbc2d..f24dfb66a86 100644 --- a/Mage.Sets/src/mage/cards/e/EngulfingSlagwurm.java +++ b/Mage.Sets/src/mage/cards/e/EngulfingSlagwurm.java @@ -88,7 +88,7 @@ class EngulfingSlagwurmEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); Permanent creature = game.getPermanentOrLKIBattlefield(this.getTargetPointer().getFirst(game, source)); if (creature != null && controller != null) { - controller.gainLife(creature.getPower().getValue(), game); + controller.gainLife(creature.getPower().getValue(), game, source); } return false; } diff --git a/Mage.Sets/src/mage/cards/e/EssenceBottle.java b/Mage.Sets/src/mage/cards/e/EssenceBottle.java index 4567fc0e792..d1d00786864 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceBottle.java +++ b/Mage.Sets/src/mage/cards/e/EssenceBottle.java @@ -145,7 +145,7 @@ class EssenceBottleEffect extends OneShotEffect { } Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(countersRemoved * 2, game); + player.gainLife(countersRemoved * 2, game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/e/EssenceHarvest.java b/Mage.Sets/src/mage/cards/e/EssenceHarvest.java index 361797bc8e7..12cf6841320 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceHarvest.java +++ b/Mage.Sets/src/mage/cards/e/EssenceHarvest.java @@ -97,7 +97,7 @@ class EssenceHarvestEffect extends OneShotEffect { if (amount > 0) { targetPlayer.loseLife(amount, game, false); - player.gainLife(amount, game); + player.gainLife(amount, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/e/EssenceSliver.java b/Mage.Sets/src/mage/cards/e/EssenceSliver.java index 08c98c3eb89..2ed752e73a7 100644 --- a/Mage.Sets/src/mage/cards/e/EssenceSliver.java +++ b/Mage.Sets/src/mage/cards/e/EssenceSliver.java @@ -136,7 +136,7 @@ class EssenceSliverGainThatMuchLifeEffect extends OneShotEffect { if (controller != null) { int amount = (Integer) getValue("damage"); if (amount > 0) { - controller.gainLife(amount, game); + controller.gainLife(amount, game, source); } return true; diff --git a/Mage.Sets/src/mage/cards/e/Exile.java b/Mage.Sets/src/mage/cards/e/Exile.java index 1c6a4a72c06..b438fabce8f 100644 --- a/Mage.Sets/src/mage/cards/e/Exile.java +++ b/Mage.Sets/src/mage/cards/e/Exile.java @@ -96,7 +96,7 @@ class ExileEffect extends OneShotEffect { if (permanent != null) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(permanent.getToughness().getValue(), game); + player.gainLife(permanent.getToughness().getValue(), game, source); } } return false; diff --git a/Mage.Sets/src/mage/cards/e/Exsanguinate.java b/Mage.Sets/src/mage/cards/e/Exsanguinate.java index 0f55283b63d..33c87c7c185 100644 --- a/Mage.Sets/src/mage/cards/e/Exsanguinate.java +++ b/Mage.Sets/src/mage/cards/e/Exsanguinate.java @@ -78,7 +78,7 @@ class ExsanguinateEffect extends OneShotEffect { loseLife += game.getPlayer(opponentId).loseLife(damage, game, false); } if (loseLife > 0) - game.getPlayer(source.getControllerId()).gainLife(loseLife, game); + game.getPlayer(source.getControllerId()).gainLife(loseLife, game, source); return true; } diff --git a/Mage.Sets/src/mage/cards/f/Fasting.java b/Mage.Sets/src/mage/cards/f/Fasting.java index 56e0f099897..407ae9d49a8 100644 --- a/Mage.Sets/src/mage/cards/f/Fasting.java +++ b/Mage.Sets/src/mage/cards/f/Fasting.java @@ -118,7 +118,7 @@ class FastingReplacementEffect extends ReplacementEffectImpl { if (event.getPlayerId().equals(source.getControllerId()) && controller != null && controller.chooseUse(outcome, "Would you like to skip your draw step to gain 2 life?", source, game)) { - controller.gainLife(2, game); + controller.gainLife(2, game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/f/FeudkillersVerdict.java b/Mage.Sets/src/mage/cards/f/FeudkillersVerdict.java index c2ba1a17ed3..9a261ebd838 100644 --- a/Mage.Sets/src/mage/cards/f/FeudkillersVerdict.java +++ b/Mage.Sets/src/mage/cards/f/FeudkillersVerdict.java @@ -84,7 +84,7 @@ class FeudkillersVerdictEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - controller.gainLife(10, game); + controller.gainLife(10, game, source); boolean moreLife = false; for (UUID opponentId : game.getOpponents(source.getControllerId())) { Player opponent = game.getPlayer(opponentId); diff --git a/Mage.Sets/src/mage/cards/f/FiligreeAngel.java b/Mage.Sets/src/mage/cards/f/FiligreeAngel.java index efa187682e5..17d60cb157b 100644 --- a/Mage.Sets/src/mage/cards/f/FiligreeAngel.java +++ b/Mage.Sets/src/mage/cards/f/FiligreeAngel.java @@ -98,7 +98,7 @@ class FiligreeAngelEffect extends OneShotEffect { Player player = game.getPlayer(source.getControllerId()); if (player != null) { int life = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game) * 3; - player.gainLife(life, game); + player.gainLife(life, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/f/ForceDrain.java b/Mage.Sets/src/mage/cards/f/ForceDrain.java index 9a653d35c51..60b2483cf43 100644 --- a/Mage.Sets/src/mage/cards/f/ForceDrain.java +++ b/Mage.Sets/src/mage/cards/f/ForceDrain.java @@ -96,7 +96,7 @@ class ForceDrainEffect extends OneShotEffect { Player player = game.getPlayer(getTargetPointer().getFirst(game, source)); if (player != null) { if (player.damage(2, source.getId(), game, false, true) > 0) { - controller.gainLife(2, game); + controller.gainLife(2, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/f/ForceMastery.java b/Mage.Sets/src/mage/cards/f/ForceMastery.java index e605aaa0941..8730a1fd5b4 100644 --- a/Mage.Sets/src/mage/cards/f/ForceMastery.java +++ b/Mage.Sets/src/mage/cards/f/ForceMastery.java @@ -86,7 +86,7 @@ class ForceMasteryEffect extends OneShotEffect { Cards cards = new CardsImpl(card); controller.revealCards(sourcePermanent.getIdName(), cards, game); controller.moveCards(card, Zone.HAND, source, game); - controller.gainLife(card.getConvertedManaCost(), game); + controller.gainLife(card.getConvertedManaCost(), game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/f/FoulTongueInvocation.java b/Mage.Sets/src/mage/cards/f/FoulTongueInvocation.java index 23c05b787d3..6a89479e61a 100644 --- a/Mage.Sets/src/mage/cards/f/FoulTongueInvocation.java +++ b/Mage.Sets/src/mage/cards/f/FoulTongueInvocation.java @@ -117,7 +117,7 @@ class FoulTongueInvocationEffect extends OneShotEffect { if (controller != null) { DragonOnTheBattlefieldWhileSpellWasCastWatcher watcher = (DragonOnTheBattlefieldWhileSpellWasCastWatcher) game.getState().getWatchers().get(DragonOnTheBattlefieldWhileSpellWasCastWatcher.class.getSimpleName()); if (watcher != null && watcher.castWithConditionTrue(source.getId())) { - controller.gainLife(4, game); + controller.gainLife(4, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/f/FoulTongueShriek.java b/Mage.Sets/src/mage/cards/f/FoulTongueShriek.java index 3c90acb32f4..93aa88a6ab7 100644 --- a/Mage.Sets/src/mage/cards/f/FoulTongueShriek.java +++ b/Mage.Sets/src/mage/cards/f/FoulTongueShriek.java @@ -96,7 +96,7 @@ class FoulTongueShriekEffect extends OneShotEffect { int amount = new AttackingFilterCreatureCount(filter).calculate(game, source, this); if (amount > 0) { targetOpponent.loseLife(amount, game, false); - controller.gainLife(amount, game); + controller.gainLife(amount, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/f/FracturingGust.java b/Mage.Sets/src/mage/cards/f/FracturingGust.java index 0179da455e6..465aaa551e3 100644 --- a/Mage.Sets/src/mage/cards/f/FracturingGust.java +++ b/Mage.Sets/src/mage/cards/f/FracturingGust.java @@ -96,7 +96,7 @@ class FracturingGustDestroyEffect extends OneShotEffect { } game.applyEffects(); // needed in case a destroyed permanent did prevent life gain if (destroyedPermanents > 0) { - controller.gainLife(2 * destroyedPermanents, game); + controller.gainLife(2 * destroyedPermanents, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/f/FruitOfTheFirstTree.java b/Mage.Sets/src/mage/cards/f/FruitOfTheFirstTree.java index ff42e706e87..294c35f9930 100644 --- a/Mage.Sets/src/mage/cards/f/FruitOfTheFirstTree.java +++ b/Mage.Sets/src/mage/cards/f/FruitOfTheFirstTree.java @@ -96,7 +96,7 @@ class FruitOfTheFirstTreeEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); Permanent creature = (Permanent) getValue("attachedTo"); if (controller != null && creature != null) { - controller.gainLife(creature.getToughness().getValue(), game); + controller.gainLife(creature.getToughness().getValue(), game, source); controller.drawCards(creature.getToughness().getValue(), game); return true; } diff --git a/Mage.Sets/src/mage/cards/f/Fumigate.java b/Mage.Sets/src/mage/cards/f/Fumigate.java index efb51df7956..f45fac31a24 100644 --- a/Mage.Sets/src/mage/cards/f/Fumigate.java +++ b/Mage.Sets/src/mage/cards/f/Fumigate.java @@ -90,7 +90,7 @@ class FumigateEffect extends OneShotEffect { } game.applyEffects(); if (destroyedCreature > 0) { - controller.gainLife(destroyedCreature, game); + controller.gainLife(destroyedCreature, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/g/GameOfChaos.java b/Mage.Sets/src/mage/cards/g/GameOfChaos.java index e59575b636a..fedcee99b2e 100644 --- a/Mage.Sets/src/mage/cards/g/GameOfChaos.java +++ b/Mage.Sets/src/mage/cards/g/GameOfChaos.java @@ -123,7 +123,7 @@ class GameOfChaosEffect extends OneShotEffect { } private void handleLifeChangesFromFlip(Game game, Player playerGainingLife, Player playerLosingLife, int lifeAmount) { - playerGainingLife.gainLife(lifeAmount, game); + playerGainingLife.gainLife(lifeAmount, game, source); playerLosingLife.loseLife(lifeAmount, game, false); } diff --git a/Mage.Sets/src/mage/cards/g/GarrukApexPredator.java b/Mage.Sets/src/mage/cards/g/GarrukApexPredator.java index 32224d2b762..1158ab96944 100644 --- a/Mage.Sets/src/mage/cards/g/GarrukApexPredator.java +++ b/Mage.Sets/src/mage/cards/g/GarrukApexPredator.java @@ -125,7 +125,7 @@ class GarrukApexPredatorEffect3 extends OneShotEffect { Player player = game.getPlayer(source.getControllerId()); Permanent creature = game.getPermanentOrLKIBattlefield(getTargetPointer().getFirst(game, source)); if (player != null && creature != null) { - player.gainLife(creature.getToughness().getValue(), game); + player.gainLife(creature.getToughness().getValue(), game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/g/GerrardCapashen.java b/Mage.Sets/src/mage/cards/g/GerrardCapashen.java index a487b53a319..65166526a91 100644 --- a/Mage.Sets/src/mage/cards/g/GerrardCapashen.java +++ b/Mage.Sets/src/mage/cards/g/GerrardCapashen.java @@ -104,7 +104,7 @@ class GerrardCapashenEffect extends OneShotEffect { if (controller != null && targetOpponent != null) { int cardsInHand = targetOpponent.getHand().size(); if (cardsInHand > 0) { - controller.gainLife(cardsInHand, game); + controller.gainLife(cardsInHand, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/g/GerrardsVerdict.java b/Mage.Sets/src/mage/cards/g/GerrardsVerdict.java index 65ef3d37e4b..9d1e27fc3bc 100644 --- a/Mage.Sets/src/mage/cards/g/GerrardsVerdict.java +++ b/Mage.Sets/src/mage/cards/g/GerrardsVerdict.java @@ -86,7 +86,7 @@ class GerrardsVerdictEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); Player targetPlayer = game.getPlayer(getTargetPointer().getFirst(game, source)); if (controller != null && targetPlayer != null) { - controller.gainLife(targetPlayer.discard(2, false, source, game).count(new FilterLandCard(), game) * 3, game); + controller.gainLife(targetPlayer.discard(2, false, source, game).count(new FilterLandCard(), game) * 3, game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/g/GhostCouncilOfOrzhova.java b/Mage.Sets/src/mage/cards/g/GhostCouncilOfOrzhova.java index 2ce11f7a118..2a4178f124a 100644 --- a/Mage.Sets/src/mage/cards/g/GhostCouncilOfOrzhova.java +++ b/Mage.Sets/src/mage/cards/g/GhostCouncilOfOrzhova.java @@ -102,7 +102,7 @@ class GhostCouncilOfOrzhovaEffect extends OneShotEffect { Player controllerPlayer = game.getPlayer(source.getControllerId()); if (targetPlayer != null && controllerPlayer != null) { targetPlayer.loseLife(1, game, false); - controllerPlayer.gainLife(1, game); + controllerPlayer.gainLife(1, game, source); } return false; } diff --git a/Mage.Sets/src/mage/cards/g/GideonsDefeat.java b/Mage.Sets/src/mage/cards/g/GideonsDefeat.java index 3fb0c7feb58..7d9502cbf91 100644 --- a/Mage.Sets/src/mage/cards/g/GideonsDefeat.java +++ b/Mage.Sets/src/mage/cards/g/GideonsDefeat.java @@ -99,7 +99,7 @@ class GideonsDefeatEffect extends OneShotEffect { controller.moveCards(permanent, Zone.EXILED, source, game); game.applyEffects(); if (permanent.isPlaneswalker() && permanent.hasSubtype(SubType.GIDEON, game)) { - controller.gainLife(5, game); + controller.gainLife(5, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/g/Glimmerpost.java b/Mage.Sets/src/mage/cards/g/Glimmerpost.java index 4fe3f4235f1..d8cf9a6279b 100644 --- a/Mage.Sets/src/mage/cards/g/Glimmerpost.java +++ b/Mage.Sets/src/mage/cards/g/Glimmerpost.java @@ -93,7 +93,7 @@ class GlimmerpostEffect extends OneShotEffect { int amount = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game); Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(amount, game); + player.gainLife(amount, game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/g/GlyphOfLife.java b/Mage.Sets/src/mage/cards/g/GlyphOfLife.java index 69abf3dc790..7a7d91d91c1 100644 --- a/Mage.Sets/src/mage/cards/g/GlyphOfLife.java +++ b/Mage.Sets/src/mage/cards/g/GlyphOfLife.java @@ -140,7 +140,7 @@ class GlyphOfLifeGainLifeEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife((Integer) this.getValue("damageAmount"), game); + player.gainLife((Integer) this.getValue("damageAmount"), game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/g/GontisMachinations.java b/Mage.Sets/src/mage/cards/g/GontisMachinations.java index 1c4edfa2a8c..ed5a711eee8 100644 --- a/Mage.Sets/src/mage/cards/g/GontisMachinations.java +++ b/Mage.Sets/src/mage/cards/g/GontisMachinations.java @@ -169,7 +169,7 @@ class GontisMachinationsEffect extends OneShotEffect { for (UUID opponentId : game.getOpponents(source.getControllerId())) { damage += game.getPlayer(opponentId).loseLife(3, game, false); } - game.getPlayer(source.getControllerId()).gainLife(damage, game); + game.getPlayer(source.getControllerId()).gainLife(damage, game, source); return true; } diff --git a/Mage.Sets/src/mage/cards/g/GraveyardShovel.java b/Mage.Sets/src/mage/cards/g/GraveyardShovel.java index c210c8e3fae..7ca823d55d9 100644 --- a/Mage.Sets/src/mage/cards/g/GraveyardShovel.java +++ b/Mage.Sets/src/mage/cards/g/GraveyardShovel.java @@ -98,7 +98,7 @@ class GraveyardShovelEffect extends OneShotEffect { targetPlayer.getGraveyard().remove(card); card.moveToExile(null, "", source.getSourceId(), game); if (card.isCreature()) { - controller.gainLife(2, game); + controller.gainLife(2, game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/g/GrayMerchantOfAsphodel.java b/Mage.Sets/src/mage/cards/g/GrayMerchantOfAsphodel.java index 12e96452d78..52d3fd6852d 100644 --- a/Mage.Sets/src/mage/cards/g/GrayMerchantOfAsphodel.java +++ b/Mage.Sets/src/mage/cards/g/GrayMerchantOfAsphodel.java @@ -99,7 +99,7 @@ class GrayMerchantOfAsphodelEffect extends OneShotEffect { } } } - controller.gainLife(lifeLost, game); + controller.gainLife(lifeLost, game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/g/GroveOfTheBurnwillows.java b/Mage.Sets/src/mage/cards/g/GroveOfTheBurnwillows.java index 85e1844ecc7..4755e162619 100644 --- a/Mage.Sets/src/mage/cards/g/GroveOfTheBurnwillows.java +++ b/Mage.Sets/src/mage/cards/g/GroveOfTheBurnwillows.java @@ -85,7 +85,7 @@ class GroveOfTheBurnwillowsEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { for (UUID playerId : game.getOpponents(source.getControllerId())) { Player player = game.getPlayer(playerId); - player.gainLife(1, game); + player.gainLife(1, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/h/Hallow.java b/Mage.Sets/src/mage/cards/h/Hallow.java index 68785b3bcc2..2b7ae84b6ea 100644 --- a/Mage.Sets/src/mage/cards/h/Hallow.java +++ b/Mage.Sets/src/mage/cards/h/Hallow.java @@ -89,7 +89,7 @@ class HallowPreventDamageByTargetEffect extends PreventionEffectImpl { PreventionEffectData preventionEffectData = preventDamageAction(event, source, game); Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - controller.gainLife(preventionEffectData.getPreventedDamage(), game); + controller.gainLife(preventionEffectData.getPreventedDamage(), game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/h/HarmonyOfNature.java b/Mage.Sets/src/mage/cards/h/HarmonyOfNature.java index 253f807c782..c40fc7e7817 100644 --- a/Mage.Sets/src/mage/cards/h/HarmonyOfNature.java +++ b/Mage.Sets/src/mage/cards/h/HarmonyOfNature.java @@ -113,7 +113,7 @@ class HarmonyOfNatureEffect extends OneShotEffect { } } if (tappedAmount > 0) { - controller.gainLife(tappedAmount * 4, game); + controller.gainLife(tappedAmount * 4, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/h/HealTheScars.java b/Mage.Sets/src/mage/cards/h/HealTheScars.java index 9ffce5c2ac3..90a3d6d3e0f 100644 --- a/Mage.Sets/src/mage/cards/h/HealTheScars.java +++ b/Mage.Sets/src/mage/cards/h/HealTheScars.java @@ -88,7 +88,7 @@ class HealTheScarsEffect extends OneShotEffect { if (permanent != null) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(permanent.getToughness().getValue(), game); + player.gainLife(permanent.getToughness().getValue(), game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/h/HideSeek.java b/Mage.Sets/src/mage/cards/h/HideSeek.java index f287134edfd..a0b95477525 100644 --- a/Mage.Sets/src/mage/cards/h/HideSeek.java +++ b/Mage.Sets/src/mage/cards/h/HideSeek.java @@ -107,7 +107,7 @@ class SeekEffect extends OneShotEffect { player.moveCardToExileWithInfo(card, null, null, source.getSourceId(), game, Zone.LIBRARY, true); int cmc = card.getConvertedManaCost(); if (cmc > 0) { - player.gainLife(cmc, game); + player.gainLife(cmc, game, source); } } } diff --git a/Mage.Sets/src/mage/cards/h/HonorTheFallen.java b/Mage.Sets/src/mage/cards/h/HonorTheFallen.java index 69c8f4a0a97..61e060db01d 100644 --- a/Mage.Sets/src/mage/cards/h/HonorTheFallen.java +++ b/Mage.Sets/src/mage/cards/h/HonorTheFallen.java @@ -95,7 +95,7 @@ class HonorTheFallenEffect extends OneShotEffect { } } } - controller.gainLife(exiledCards, game); + controller.gainLife(exiledCards, game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/i/Illumination.java b/Mage.Sets/src/mage/cards/i/Illumination.java index 0ec20934c27..afdfd769c10 100644 --- a/Mage.Sets/src/mage/cards/i/Illumination.java +++ b/Mage.Sets/src/mage/cards/i/Illumination.java @@ -111,7 +111,7 @@ class IlluminationEffect extends OneShotEffect { int cost = spell.getConvertedManaCost(); Player player = game.getPlayer(spell.getControllerId()); if (player != null) { - player.gainLife(cost, game); + player.gainLife(cost, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/i/InterventionPact.java b/Mage.Sets/src/mage/cards/i/InterventionPact.java index 26c951db018..a33136b06f4 100644 --- a/Mage.Sets/src/mage/cards/i/InterventionPact.java +++ b/Mage.Sets/src/mage/cards/i/InterventionPact.java @@ -137,7 +137,7 @@ class InterventionPactPreventDamageEffect extends PreventionEffectImpl { used = true; Player player = game .getPlayer(source.getControllerId()); if(player != null){ - player.gainLife(preventEffectData.getPreventedDamage(), game); + player.gainLife(preventEffectData.getPreventedDamage(), game, source); } } return false; diff --git a/Mage.Sets/src/mage/cards/i/InvincibleHymn.java b/Mage.Sets/src/mage/cards/i/InvincibleHymn.java index 6d0f230bc3b..a11ae209b20 100644 --- a/Mage.Sets/src/mage/cards/i/InvincibleHymn.java +++ b/Mage.Sets/src/mage/cards/i/InvincibleHymn.java @@ -85,7 +85,7 @@ class InvincibleHymnEffect extends OneShotEffect { int oldValue = player.getLife(); if (newValue - oldValue > 0) { - player.gainLife(newValue - oldValue, game); + player.gainLife(newValue - oldValue, game, source); } if (oldValue - newValue > 0) { player.loseLife(oldValue - newValue, game, false); diff --git a/Mage.Sets/src/mage/cards/i/IvoryTower.java b/Mage.Sets/src/mage/cards/i/IvoryTower.java index 7568a9c1c6e..12010316a01 100644 --- a/Mage.Sets/src/mage/cards/i/IvoryTower.java +++ b/Mage.Sets/src/mage/cards/i/IvoryTower.java @@ -79,7 +79,7 @@ class IvoryTowerEffect extends OneShotEffect { if(player != null) { int amount = player.getHand().size() - 4; if(amount > 0) { - player.gainLife(amount, game); + player.gainLife(amount, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/j/JaddiLifestrider.java b/Mage.Sets/src/mage/cards/j/JaddiLifestrider.java index 07965c1d4bc..8a24fe5c355 100644 --- a/Mage.Sets/src/mage/cards/j/JaddiLifestrider.java +++ b/Mage.Sets/src/mage/cards/j/JaddiLifestrider.java @@ -105,7 +105,7 @@ class JaddiLifestriderEffect extends OneShotEffect { } } if (tappedAmount > 0) { - you.gainLife(tappedAmount * 2, game); + you.gainLife(tappedAmount * 2, game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/k/KalastriaHighborn.java b/Mage.Sets/src/mage/cards/k/KalastriaHighborn.java index f18e162c6fa..04f60e62c2d 100644 --- a/Mage.Sets/src/mage/cards/k/KalastriaHighborn.java +++ b/Mage.Sets/src/mage/cards/k/KalastriaHighborn.java @@ -107,7 +107,7 @@ class LoseGainEffect extends OneShotEffect { return false; } if (you != null) { - you.gainLife(2, game); + you.gainLife(2, game, source); } if (them != null) { them.loseLife(2, game, false); diff --git a/Mage.Sets/src/mage/cards/k/KamiOfTheHonoredDead.java b/Mage.Sets/src/mage/cards/k/KamiOfTheHonoredDead.java index ecbc915e160..01967c209a3 100644 --- a/Mage.Sets/src/mage/cards/k/KamiOfTheHonoredDead.java +++ b/Mage.Sets/src/mage/cards/k/KamiOfTheHonoredDead.java @@ -133,7 +133,7 @@ class KamiOfTheHonoredDeadGainLifeEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife((Integer) this.getValue("damageAmount"), game); + player.gainLife((Integer) this.getValue("damageAmount"), game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/k/KithkinZealot.java b/Mage.Sets/src/mage/cards/k/KithkinZealot.java index e5ccbc0d17f..8d85cf01aaf 100644 --- a/Mage.Sets/src/mage/cards/k/KithkinZealot.java +++ b/Mage.Sets/src/mage/cards/k/KithkinZealot.java @@ -105,7 +105,7 @@ class KithkinZealotEffect extends OneShotEffect { if (you!= null && opponent != null) { int amount = game.getBattlefield().countAll(filter, opponent.getId(), game); - you.gainLife(amount, game); + you.gainLife(amount, game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/k/KokushoTheEveningStar.java b/Mage.Sets/src/mage/cards/k/KokushoTheEveningStar.java index dabed449cdb..8cc3ac14d43 100644 --- a/Mage.Sets/src/mage/cards/k/KokushoTheEveningStar.java +++ b/Mage.Sets/src/mage/cards/k/KokushoTheEveningStar.java @@ -87,7 +87,7 @@ class KokushoTheEveningStarEffect extends OneShotEffect { loseLife += game.getPlayer(opponentId).loseLife(5, game, false); } if (loseLife > 0) - game.getPlayer(source.getControllerId()).gainLife(loseLife, game); + game.getPlayer(source.getControllerId()).gainLife(loseLife, game, source); return true; } diff --git a/Mage.Sets/src/mage/cards/l/LammastideWeave.java b/Mage.Sets/src/mage/cards/l/LammastideWeave.java index 6f6a3732796..a228d6e407d 100644 --- a/Mage.Sets/src/mage/cards/l/LammastideWeave.java +++ b/Mage.Sets/src/mage/cards/l/LammastideWeave.java @@ -98,7 +98,7 @@ class LammastideWeaveEffect extends OneShotEffect { if (card != null) { controller.moveCards(card, Zone.GRAVEYARD, source, game); if (card.getName().equals(cardName)) { - controller.gainLife(card.getConvertedManaCost(), game); + controller.gainLife(card.getConvertedManaCost(), game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/l/LastBreath.java b/Mage.Sets/src/mage/cards/l/LastBreath.java index 753f0bd2b62..d77e4fac6d2 100644 --- a/Mage.Sets/src/mage/cards/l/LastBreath.java +++ b/Mage.Sets/src/mage/cards/l/LastBreath.java @@ -92,7 +92,7 @@ class LastBreathEffect extends OneShotEffect { if (target != null) { Player player = game.getPlayer(target.getControllerId()); if (player != null) { - player.gainLife(4, game); + player.gainLife(4, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/l/LastStand.java b/Mage.Sets/src/mage/cards/l/LastStand.java index 6d8266d33a3..88a180260fa 100644 --- a/Mage.Sets/src/mage/cards/l/LastStand.java +++ b/Mage.Sets/src/mage/cards/l/LastStand.java @@ -124,7 +124,7 @@ class LastStandEffect extends OneShotEffect { } // You gain 2 life for each Plains you control. int plains = game.getBattlefield().count(filterPlains, source.getSourceId(), source.getControllerId(), game); - controller.gainLife(plains * 2, game); + controller.gainLife(plains * 2, game, source); // Draw a card for each Island you control, then discard that many cards int islands = game.getBattlefield().count(filterIsland, source.getSourceId(), source.getControllerId(), game); if (islands > 0) { diff --git a/Mage.Sets/src/mage/cards/l/LifeChisel.java b/Mage.Sets/src/mage/cards/l/LifeChisel.java index 6fa42033312..03c5bbb7989 100644 --- a/Mage.Sets/src/mage/cards/l/LifeChisel.java +++ b/Mage.Sets/src/mage/cards/l/LifeChisel.java @@ -101,7 +101,7 @@ class LifeChiselEffect extends OneShotEffect { if (cost instanceof SacrificeTargetCost) { int amount = ((SacrificeTargetCost) cost).getPermanents().get(0).getToughness().getValue(); if (amount > 0) { - controller.gainLife(amount, game); + controller.gainLife(amount, game, source); } } } diff --git a/Mage.Sets/src/mage/cards/l/LifebloodHydra.java b/Mage.Sets/src/mage/cards/l/LifebloodHydra.java index d496a1b60e2..6393489f3f8 100644 --- a/Mage.Sets/src/mage/cards/l/LifebloodHydra.java +++ b/Mage.Sets/src/mage/cards/l/LifebloodHydra.java @@ -101,7 +101,7 @@ class LifebloodHydraEffect extends OneShotEffect { if (controller != null) { Permanent diedPermanent = (Permanent) getValue("permanentLeftBattlefield"); if (diedPermanent != null) { - controller.gainLife(diedPermanent.getPower().getValue(), game); + controller.gainLife(diedPermanent.getPower().getValue(), game, source); controller.drawCards(diedPermanent.getPower().getValue(), game); } return true; diff --git a/Mage.Sets/src/mage/cards/l/Lifesmith.java b/Mage.Sets/src/mage/cards/l/Lifesmith.java index 59be63ada6b..cdd0914f3fb 100644 --- a/Mage.Sets/src/mage/cards/l/Lifesmith.java +++ b/Mage.Sets/src/mage/cards/l/Lifesmith.java @@ -87,7 +87,7 @@ class LifesmithEffect extends OneShotEffect { if (cost.pay(source, game, source.getSourceId(), source.getControllerId(), false, null)) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(3, game); + player.gainLife(3, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/l/LivingDestiny.java b/Mage.Sets/src/mage/cards/l/LivingDestiny.java index 7902107ac7d..7225d16916d 100644 --- a/Mage.Sets/src/mage/cards/l/LivingDestiny.java +++ b/Mage.Sets/src/mage/cards/l/LivingDestiny.java @@ -86,7 +86,7 @@ class LivingDestinyEffect extends OneShotEffect { Player player = game.getPlayer(source.getControllerId()); int CMC = cost.convertedManaCosts; if (player != null) { - player.gainLife(CMC, game); + player.gainLife(CMC, game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/l/LuminatePrimordial.java b/Mage.Sets/src/mage/cards/l/LuminatePrimordial.java index 301bad1dbcd..d7a39276390 100644 --- a/Mage.Sets/src/mage/cards/l/LuminatePrimordial.java +++ b/Mage.Sets/src/mage/cards/l/LuminatePrimordial.java @@ -119,7 +119,7 @@ class LuminatePrimordialEffect extends OneShotEffect { Player controller = game.getPlayer(targetCreature.getControllerId()); targetCreature.moveToExile(null, null, source.getSourceId(), game); if (controller != null && amountLife != 0) { - controller.gainLife(amountLife, game); + controller.gainLife(amountLife, game, source); } } } diff --git a/Mage.Sets/src/mage/cards/m/MalakirBloodwitch.java b/Mage.Sets/src/mage/cards/m/MalakirBloodwitch.java index fb7f9ecdd68..7ba73a3e031 100644 --- a/Mage.Sets/src/mage/cards/m/MalakirBloodwitch.java +++ b/Mage.Sets/src/mage/cards/m/MalakirBloodwitch.java @@ -111,7 +111,7 @@ class MalakirBloodwitchEffect extends OneShotEffect { } } if (total > 0) { - player.gainLife(total, game); + player.gainLife(total, game, source); } return true; diff --git a/Mage.Sets/src/mage/cards/m/MarduWoeReaper.java b/Mage.Sets/src/mage/cards/m/MarduWoeReaper.java index b64af7093a8..d1839e719ba 100644 --- a/Mage.Sets/src/mage/cards/m/MarduWoeReaper.java +++ b/Mage.Sets/src/mage/cards/m/MarduWoeReaper.java @@ -134,7 +134,7 @@ class MarduWoeReaperEffect extends OneShotEffect { Card card = game.getCard(this.getTargetPointer().getFirst(game, source)); if (player != null && card != null) { if (player.moveCardToExileWithInfo(card, null, "", source.getSourceId(), game, Zone.GRAVEYARD, true)) { - player.gainLife(1, game); + player.gainLife(1, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/m/MarshalingTheTroops.java b/Mage.Sets/src/mage/cards/m/MarshalingTheTroops.java index 214b130c2fd..0f17f3d80e1 100644 --- a/Mage.Sets/src/mage/cards/m/MarshalingTheTroops.java +++ b/Mage.Sets/src/mage/cards/m/MarshalingTheTroops.java @@ -113,7 +113,7 @@ class MarshalingTheTroopsEffect extends OneShotEffect { } } if (tappedAmount > 0) { - controller.gainLife(tappedAmount * 4, game); + controller.gainLife(tappedAmount * 4, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/m/MathasFiendSeeker.java b/Mage.Sets/src/mage/cards/m/MathasFiendSeeker.java index 60a0c81692a..2d403c01bd8 100644 --- a/Mage.Sets/src/mage/cards/m/MathasFiendSeeker.java +++ b/Mage.Sets/src/mage/cards/m/MathasFiendSeeker.java @@ -144,7 +144,7 @@ class OpponentsGainLifeEffect extends OneShotEffect { for (UUID playerId : game.getState().getPlayersInRange(source.getControllerId(), game)) { Player player = game.getPlayer(playerId); if (player != null && game.isOpponent(player, source.getControllerId())) { - player.gainLife(2, game); + player.gainLife(2, game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/m/MayaelsAria.java b/Mage.Sets/src/mage/cards/m/MayaelsAria.java index db0c25ed725..a107502ec4e 100644 --- a/Mage.Sets/src/mage/cards/m/MayaelsAria.java +++ b/Mage.Sets/src/mage/cards/m/MayaelsAria.java @@ -107,7 +107,7 @@ class MayaelsAriaEffect extends OneShotEffect { filter = new FilterCreaturePermanent(); filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 9)); if (game.getState().getBattlefield().countAll(filter, controller.getId(), game) > 0) { - controller.gainLife(10, game); + controller.gainLife(10, game, source); } // Then you win the game if you control a creature with power 20 or greater. diff --git a/Mage.Sets/src/mage/cards/m/MirenTheMoaningWell.java b/Mage.Sets/src/mage/cards/m/MirenTheMoaningWell.java index f84a5592a09..4bf73bf3b5b 100644 --- a/Mage.Sets/src/mage/cards/m/MirenTheMoaningWell.java +++ b/Mage.Sets/src/mage/cards/m/MirenTheMoaningWell.java @@ -101,7 +101,7 @@ class MirenTheMoaningWellEffect extends OneShotEffect { if (cost instanceof SacrificeTargetCost) { int amount = ((SacrificeTargetCost) cost).getPermanents().get(0).getToughness().getValue(); if (amount > 0) { - controller.gainLife(amount, game); + controller.gainLife(amount, game, source); } } } diff --git a/Mage.Sets/src/mage/cards/m/MisfortunesGain.java b/Mage.Sets/src/mage/cards/m/MisfortunesGain.java index c7f9048371c..f76e3d47f8b 100644 --- a/Mage.Sets/src/mage/cards/m/MisfortunesGain.java +++ b/Mage.Sets/src/mage/cards/m/MisfortunesGain.java @@ -87,7 +87,7 @@ class MisfortunesGainEffect extends OneShotEffect { target.destroy(source.getSourceId(), game, false); Player owner = game.getPlayer(target.getOwnerId()); if (owner != null) { - owner.gainLife(4, game); + owner.gainLife(4, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/m/MomentousFall.java b/Mage.Sets/src/mage/cards/m/MomentousFall.java index 74433eb6b75..f0c18aa3e51 100644 --- a/Mage.Sets/src/mage/cards/m/MomentousFall.java +++ b/Mage.Sets/src/mage/cards/m/MomentousFall.java @@ -97,7 +97,7 @@ class MomentousFallEffect extends OneShotEffect { controller.drawCards(power, game); } if (toughness > 0) { - controller.gainLife(toughness, game); + controller.gainLife(toughness, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/m/MultanisDecree.java b/Mage.Sets/src/mage/cards/m/MultanisDecree.java index aee4e041e57..cb1c2584333 100644 --- a/Mage.Sets/src/mage/cards/m/MultanisDecree.java +++ b/Mage.Sets/src/mage/cards/m/MultanisDecree.java @@ -89,7 +89,7 @@ class MultanisDecreeDestroyEffect extends OneShotEffect { } } if(enchantmentsDestoyed > 0) { - controller.gainLife(enchantmentsDestoyed * 2, game); + controller.gainLife(enchantmentsDestoyed * 2, game, source); } return false; } diff --git a/Mage.Sets/src/mage/cards/n/NaturesClaim.java b/Mage.Sets/src/mage/cards/n/NaturesClaim.java index e729309bc06..5605a540da8 100644 --- a/Mage.Sets/src/mage/cards/n/NaturesClaim.java +++ b/Mage.Sets/src/mage/cards/n/NaturesClaim.java @@ -84,7 +84,7 @@ class NaturesClaimEffect extends OneShotEffect { if (target != null) { Player player = game.getPlayer(target.getControllerId()); if (player != null) { - player.gainLife(4, game); + player.gainLife(4, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/n/NissaRevane.java b/Mage.Sets/src/mage/cards/n/NissaRevane.java index fb4d6949ef4..71214d355a3 100644 --- a/Mage.Sets/src/mage/cards/n/NissaRevane.java +++ b/Mage.Sets/src/mage/cards/n/NissaRevane.java @@ -114,7 +114,7 @@ class NissaRevaneGainLifeEffect extends OneShotEffect { Player player = game.getPlayer(source.getControllerId()); int life = 2 * game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game); if (player != null) { - player.gainLife(life, game); + player.gainLife(life, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/n/NissasRevelation.java b/Mage.Sets/src/mage/cards/n/NissasRevelation.java index 4c51fd85305..8fd50a7629b 100644 --- a/Mage.Sets/src/mage/cards/n/NissasRevelation.java +++ b/Mage.Sets/src/mage/cards/n/NissasRevelation.java @@ -96,7 +96,7 @@ class NissasRevelationEffect extends OneShotEffect { controller.revealCards(sourceObject.getIdName(), cards, game); if (card.isCreature()) { controller.drawCards(card.getPower().getValue(), game); - controller.gainLife(card.getToughness().getValue(), game); + controller.gainLife(card.getToughness().getValue(), game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/n/NoxiousGearhulk.java b/Mage.Sets/src/mage/cards/n/NoxiousGearhulk.java index ac970257543..29a829fc2f7 100644 --- a/Mage.Sets/src/mage/cards/n/NoxiousGearhulk.java +++ b/Mage.Sets/src/mage/cards/n/NoxiousGearhulk.java @@ -105,7 +105,7 @@ class NoxiousGearhulkEffect extends OneShotEffect { if (creatureToDestroy != null && player != null) { if (player.chooseUse(Outcome.DestroyPermanent, "Destroy creature?", source, game)) { if (creatureToDestroy.destroy(source.getSourceId(), game, false)) { - player.gainLife(creatureToDestroy.getToughness().getValue(), game); + player.gainLife(creatureToDestroy.getToughness().getValue(), game, source); } } } diff --git a/Mage.Sets/src/mage/cards/o/ObNixilisOfTheBlackOath.java b/Mage.Sets/src/mage/cards/o/ObNixilisOfTheBlackOath.java index d3e4e446d84..23b3dcea23d 100644 --- a/Mage.Sets/src/mage/cards/o/ObNixilisOfTheBlackOath.java +++ b/Mage.Sets/src/mage/cards/o/ObNixilisOfTheBlackOath.java @@ -107,7 +107,7 @@ class ObNixilisOfTheBlackOathEffect1 extends OneShotEffect { loseLife += opponent.loseLife(1, game, false); } } - controller.gainLife(loseLife, game); + controller.gainLife(loseLife, game, source); return true; } diff --git a/Mage.Sets/src/mage/cards/o/OpenSeason.java b/Mage.Sets/src/mage/cards/o/OpenSeason.java index d453b413ce1..0f21cb56b7c 100644 --- a/Mage.Sets/src/mage/cards/o/OpenSeason.java +++ b/Mage.Sets/src/mage/cards/o/OpenSeason.java @@ -151,7 +151,7 @@ class OpenSeasonEffect extends OneShotEffect { for (UUID playerId : game.getOpponents(controller)) { Player player = game.getPlayer(playerId); if (player != null) { - player.gainLife(2, game); + player.gainLife(2, game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/o/OrchardWarden.java b/Mage.Sets/src/mage/cards/o/OrchardWarden.java index c3cc9d853b9..15b139dc83a 100644 --- a/Mage.Sets/src/mage/cards/o/OrchardWarden.java +++ b/Mage.Sets/src/mage/cards/o/OrchardWarden.java @@ -97,7 +97,7 @@ class OrchardWardenffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); Permanent permanent = game.getPermanentOrLKIBattlefield(getTargetPointer().getFirst(game, source)); if (controller != null && permanent != null) { - controller.gainLife(permanent.getToughness().getValue(), game); + controller.gainLife(permanent.getToughness().getValue(), game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/o/Oust.java b/Mage.Sets/src/mage/cards/o/Oust.java index 6dac9e4fde5..70be68c67a2 100644 --- a/Mage.Sets/src/mage/cards/o/Oust.java +++ b/Mage.Sets/src/mage/cards/o/Oust.java @@ -101,7 +101,7 @@ class OustEffect extends OneShotEffect { if (card != null) { owner.getLibrary().putOnTop(card, game); } - controller.gainLife(3, game); + controller.gainLife(3, game, source); return true; } diff --git a/Mage.Sets/src/mage/cards/p/PaladinOfPrahv.java b/Mage.Sets/src/mage/cards/p/PaladinOfPrahv.java index 9622a06384e..d2f5ab72316 100644 --- a/Mage.Sets/src/mage/cards/p/PaladinOfPrahv.java +++ b/Mage.Sets/src/mage/cards/p/PaladinOfPrahv.java @@ -149,7 +149,7 @@ class PaladinOfPrahvEffect extends OneShotEffect { if (controller != null) { int amount = (Integer) getValue("damage"); if (amount > 0) { - controller.gainLife(amount, game); + controller.gainLife(amount, game, source); return true; } return true; diff --git a/Mage.Sets/src/mage/cards/p/Paraselene.java b/Mage.Sets/src/mage/cards/p/Paraselene.java index e06f47bc918..e749bd86865 100644 --- a/Mage.Sets/src/mage/cards/p/Paraselene.java +++ b/Mage.Sets/src/mage/cards/p/Paraselene.java @@ -85,7 +85,7 @@ class ParaseleneEffect extends OneShotEffect { if (count > 0) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(count, game); + player.gainLife(count, game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/p/PathOfBravery.java b/Mage.Sets/src/mage/cards/p/PathOfBravery.java index 4a21698f181..360a51315be 100644 --- a/Mage.Sets/src/mage/cards/p/PathOfBravery.java +++ b/Mage.Sets/src/mage/cards/p/PathOfBravery.java @@ -118,7 +118,7 @@ class PathOfBraveryEffect extends OneShotEffect { Player you = game.getPlayer(source.getControllerId()); attackers = game.getCombat().getAttackers().size(); if (you != null) { - you.gainLife(attackers, game); + you.gainLife(attackers, game, source); attackers = 0; return true; } diff --git a/Mage.Sets/src/mage/cards/p/PathOfPeace.java b/Mage.Sets/src/mage/cards/p/PathOfPeace.java index 94e307ae4be..454a40f08e1 100644 --- a/Mage.Sets/src/mage/cards/p/PathOfPeace.java +++ b/Mage.Sets/src/mage/cards/p/PathOfPeace.java @@ -87,7 +87,7 @@ class PathOfPeaceEffect extends OneShotEffect { target.destroy(source.getSourceId(), game, false); Player owner = game.getPlayer(target.getOwnerId()); if (owner != null) { - owner.gainLife(4, game); + owner.gainLife(4, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/p/PhosphorescentFeast.java b/Mage.Sets/src/mage/cards/p/PhosphorescentFeast.java index 39e8acd21e7..62fb26d2330 100644 --- a/Mage.Sets/src/mage/cards/p/PhosphorescentFeast.java +++ b/Mage.Sets/src/mage/cards/p/PhosphorescentFeast.java @@ -104,7 +104,7 @@ class PhosphorescentFeastEffect extends OneShotEffect { for (Card card : cards.getCards(game)) { chroma += card.getManaCost().getMana().getGreen(); } - player.gainLife(chroma * 2, game); + player.gainLife(chroma * 2, game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/p/PhyrexianUnlife.java b/Mage.Sets/src/mage/cards/p/PhyrexianUnlife.java index 4df7d84cbb3..30b9e197887 100644 --- a/Mage.Sets/src/mage/cards/p/PhyrexianUnlife.java +++ b/Mage.Sets/src/mage/cards/p/PhyrexianUnlife.java @@ -107,7 +107,7 @@ class PhyrexianUnlifeEffect2 extends ReplacementEffectImpl { player.addCounters(CounterType.POISON.createInstance(actualDamage), game); if (damageSource != null && damageSource.getAbilities().containsKey(LifelinkAbility.getInstance().getId())) { Player controlPlayer = game.getPlayer(damageSource.getControllerId()); - controlPlayer.gainLife(actualDamage, game); + controlPlayer.gainLife(actualDamage, game, source); } game.fireEvent(new DamagedPlayerEvent(damageEvent.getPlayerId(), damageEvent.getSourceId(), damageEvent.getPlayerId(), actualDamage, damageEvent.isCombatDamage())); } diff --git a/Mage.Sets/src/mage/cards/p/PiousKitsune.java b/Mage.Sets/src/mage/cards/p/PiousKitsune.java index ddd1df5baa2..d3dcd02851c 100644 --- a/Mage.Sets/src/mage/cards/p/PiousKitsune.java +++ b/Mage.Sets/src/mage/cards/p/PiousKitsune.java @@ -116,7 +116,7 @@ class PiousKitsuneEffect extends OneShotEffect { if (life > 0) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - controller.gainLife(life, game); + controller.gainLife(life, game, source); } } } diff --git a/Mage.Sets/src/mage/cards/p/PiousWarrior.java b/Mage.Sets/src/mage/cards/p/PiousWarrior.java index 3154314046a..73b51b84759 100644 --- a/Mage.Sets/src/mage/cards/p/PiousWarrior.java +++ b/Mage.Sets/src/mage/cards/p/PiousWarrior.java @@ -129,7 +129,7 @@ class PiousWarriorGainLifeEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife((Integer) this.getValue("damageAmount"), game); + player.gainLife((Integer) this.getValue("damageAmount"), game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/p/PlaneswalkersMirth.java b/Mage.Sets/src/mage/cards/p/PlaneswalkersMirth.java index 7f6725acfb2..9a5eca7d4d9 100644 --- a/Mage.Sets/src/mage/cards/p/PlaneswalkersMirth.java +++ b/Mage.Sets/src/mage/cards/p/PlaneswalkersMirth.java @@ -90,7 +90,7 @@ class PlaneswalkersMirthEffect extends OneShotEffect { if (card != null) { revealed.add(card); opponent.revealCards("Planeswalker's Mirth", revealed, game); - player.gainLife(card.getConvertedManaCost(), game); + player.gainLife(card.getConvertedManaCost(), game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/p/PlungeIntoDarkness.java b/Mage.Sets/src/mage/cards/p/PlungeIntoDarkness.java index 4a06e7898d8..3101982e90f 100644 --- a/Mage.Sets/src/mage/cards/p/PlungeIntoDarkness.java +++ b/Mage.Sets/src/mage/cards/p/PlungeIntoDarkness.java @@ -117,7 +117,7 @@ class PlungeIntoDarknessLifeEffect extends OneShotEffect { } } if (numSacrificed > 0) { - player.gainLife(3 * numSacrificed, game); + player.gainLife(3 * numSacrificed, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/p/PriestOfTheWakeningSun.java b/Mage.Sets/src/mage/cards/p/PriestOfTheWakeningSun.java index 6abcebba751..6d9f81e34a7 100644 --- a/Mage.Sets/src/mage/cards/p/PriestOfTheWakeningSun.java +++ b/Mage.Sets/src/mage/cards/p/PriestOfTheWakeningSun.java @@ -129,7 +129,7 @@ class PriestOfTheWakeningSunEffect extends OneShotEffect { Cards cards = new CardsImpl(); cards.addAll(target.getTargets()); controller.revealCards(sourceObject.getIdName(), cards, game); - controller.gainLife(2, game); + controller.gainLife(2, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/p/Purity.java b/Mage.Sets/src/mage/cards/p/Purity.java index ac03da61b85..236ac0a69a9 100644 --- a/Mage.Sets/src/mage/cards/p/Purity.java +++ b/Mage.Sets/src/mage/cards/p/Purity.java @@ -97,7 +97,7 @@ class PurityEffect extends PreventionEffectImpl { PreventionEffectData preventionData = preventDamageAction(event, source, game); Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(preventionData.getPreventedDamage(), game); + player.gainLife(preventionData.getPreventedDamage(), game, source); } return true; diff --git a/Mage.Sets/src/mage/cards/p/PutridWarrior.java b/Mage.Sets/src/mage/cards/p/PutridWarrior.java index bcd6aac13dc..fc37df6ebb7 100644 --- a/Mage.Sets/src/mage/cards/p/PutridWarrior.java +++ b/Mage.Sets/src/mage/cards/p/PutridWarrior.java @@ -134,7 +134,7 @@ class PutridWarriorGainLifeEffect extends OneShotEffect { for(UUID playerId: game.getState().getPlayersInRange(source.getControllerId(), game)) { Player player = game.getPlayer(playerId); if(player != null) { - player.gainLife(1, game); + player.gainLife(1, game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/r/RavenousWampa.java b/Mage.Sets/src/mage/cards/r/RavenousWampa.java index c45aa0b7df3..22690af31c0 100644 --- a/Mage.Sets/src/mage/cards/r/RavenousWampa.java +++ b/Mage.Sets/src/mage/cards/r/RavenousWampa.java @@ -104,7 +104,7 @@ class RavenousWampaEffect extends OneShotEffect { if (controller != null && sourceObject != null) { Integer toughness = (Integer) game.getState().getValue(RAVENOUS_WAMPA_STATE_VALUE_KEY_PREFIX + source.getSourceId() + sourceObject.getZoneChangeCounter(game)); if (toughness != null) { - controller.gainLife(toughness, game); + controller.gainLife(toughness, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/r/RazorHippogriff.java b/Mage.Sets/src/mage/cards/r/RazorHippogriff.java index 57d10c1b725..46f213d7080 100644 --- a/Mage.Sets/src/mage/cards/r/RazorHippogriff.java +++ b/Mage.Sets/src/mage/cards/r/RazorHippogriff.java @@ -105,7 +105,7 @@ public class RazorHippogriff extends CardImpl { card = (Card)game.getLastKnownInformation(source.getFirstTarget(), Zone.GRAVEYARD); } if (card != null) { - player.gainLife(card.getConvertedManaCost(), game); + player.gainLife(card.getConvertedManaCost(), game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/r/Renounce.java b/Mage.Sets/src/mage/cards/r/Renounce.java index 2a7a017dc60..9aea7c16465 100644 --- a/Mage.Sets/src/mage/cards/r/Renounce.java +++ b/Mage.Sets/src/mage/cards/r/Renounce.java @@ -95,7 +95,7 @@ class RenounceEffect extends OneShotEffect { amount++; } } - player.gainLife(amount * 2, game); + player.gainLife(amount * 2, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/r/ReverseDamage.java b/Mage.Sets/src/mage/cards/r/ReverseDamage.java index 44ae715becc..d7b0b5f22c9 100644 --- a/Mage.Sets/src/mage/cards/r/ReverseDamage.java +++ b/Mage.Sets/src/mage/cards/r/ReverseDamage.java @@ -103,7 +103,7 @@ class ReverseDamageEffect extends PreventionEffectImpl { if (preventionData.getPreventedDamage() > 0) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(preventionData.getPreventedDamage(), game); + player.gainLife(preventionData.getPreventedDamage(), game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/r/RiteOfConsumption.java b/Mage.Sets/src/mage/cards/r/RiteOfConsumption.java index 2d905671623..16f3cb594c3 100644 --- a/Mage.Sets/src/mage/cards/r/RiteOfConsumption.java +++ b/Mage.Sets/src/mage/cards/r/RiteOfConsumption.java @@ -106,7 +106,7 @@ class RiteOfConsumptionEffect extends OneShotEffect { if (damage > 0) { int damageDealt = targetPlayer.damage(damage, source.getSourceId(), game, false, true); if (damageDealt > 0) { - controller.gainLife(damage, game); + controller.gainLife(damage, game, source); } } diff --git a/Mage.Sets/src/mage/cards/r/RotfeasterMaggot.java b/Mage.Sets/src/mage/cards/r/RotfeasterMaggot.java index 7a6ac8b9afa..50e18ac9959 100644 --- a/Mage.Sets/src/mage/cards/r/RotfeasterMaggot.java +++ b/Mage.Sets/src/mage/cards/r/RotfeasterMaggot.java @@ -98,7 +98,7 @@ class RotfeasterMaggotExileEffect extends OneShotEffect { if (game.getState().getZone(targetCard.getId()) == Zone.GRAVEYARD) { controller.moveCardToExileWithInfo(targetCard, null, "", source.getSourceId(), game, Zone.GRAVEYARD, true); } - controller.gainLife(targetCard.getToughness().getValue(), game); + controller.gainLife(targetCard.getToughness().getValue(), game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/s/SaplingOfColfenor.java b/Mage.Sets/src/mage/cards/s/SaplingOfColfenor.java index 99d74ed8013..e0e3f71d8bb 100644 --- a/Mage.Sets/src/mage/cards/s/SaplingOfColfenor.java +++ b/Mage.Sets/src/mage/cards/s/SaplingOfColfenor.java @@ -103,7 +103,7 @@ class SaplingOfColfenorEffect extends OneShotEffect { Cards cards = new CardsImpl(card); controller.revealCards(sourceObject.getIdName(), cards, game); if (card.isCreature()) { - controller.gainLife(card.getToughness().getValue(), game); + controller.gainLife(card.getToughness().getValue(), game, source); controller.loseLife(card.getPower().getValue(), game, false); return controller.moveCards(cards.getCards(game), Zone.HAND, source, game); } diff --git a/Mage.Sets/src/mage/cards/s/ScavengingOoze.java b/Mage.Sets/src/mage/cards/s/ScavengingOoze.java index 8d84ff01add..29aea25e50e 100644 --- a/Mage.Sets/src/mage/cards/s/ScavengingOoze.java +++ b/Mage.Sets/src/mage/cards/s/ScavengingOoze.java @@ -102,7 +102,7 @@ class ScavengingOozeEffect extends OneShotEffect { if (sourcePermanent != null) { sourcePermanent.addCounters(CounterType.P1P1.createInstance(), source, game); } - controller.gainLife(1, game); + controller.gainLife(1, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/s/ScentOfJasmine.java b/Mage.Sets/src/mage/cards/s/ScentOfJasmine.java index 6e49f3c2259..d4b374b9f18 100644 --- a/Mage.Sets/src/mage/cards/s/ScentOfJasmine.java +++ b/Mage.Sets/src/mage/cards/s/ScentOfJasmine.java @@ -104,7 +104,7 @@ class ScentOfJasmineEffect extends OneShotEffect { cards.add(player.getHand().get(uuid, game)); } player.revealCards("cards", cards, game); - player.gainLife(cards.getCards(game).size() * 2, game); + player.gainLife(cards.getCards(game).size() * 2, game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/s/ScholarOfAthreos.java b/Mage.Sets/src/mage/cards/s/ScholarOfAthreos.java index 9352cf74149..b62872a7205 100644 --- a/Mage.Sets/src/mage/cards/s/ScholarOfAthreos.java +++ b/Mage.Sets/src/mage/cards/s/ScholarOfAthreos.java @@ -86,7 +86,7 @@ class ScholarOfAthreosEffect extends OneShotEffect { for (UUID opponentId: game.getOpponents(source.getControllerId())) { damage += game.getPlayer(opponentId).damage(1, source.getSourceId(), game, false, true); } - game.getPlayer(source.getControllerId()).gainLife(damage, game); + game.getPlayer(source.getControllerId()).gainLife(damage, game, source); return true; } diff --git a/Mage.Sets/src/mage/cards/s/ScribNibblers.java b/Mage.Sets/src/mage/cards/s/ScribNibblers.java index b6d8556ed56..1c8070a2bdf 100644 --- a/Mage.Sets/src/mage/cards/s/ScribNibblers.java +++ b/Mage.Sets/src/mage/cards/s/ScribNibblers.java @@ -102,7 +102,7 @@ class ScribNibblersEffect extends OneShotEffect { Card card = targetPlayer.getLibrary().getFromTop(game); card.moveToExile(id, "Scrib Nibblers Exile", source.getSourceId(), game); if (card != null && card.isLand()) { - you.gainLife(1, game); + you.gainLife(1, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/s/SearchWarrant.java b/Mage.Sets/src/mage/cards/s/SearchWarrant.java index f705f99daca..1d655c72f38 100644 --- a/Mage.Sets/src/mage/cards/s/SearchWarrant.java +++ b/Mage.Sets/src/mage/cards/s/SearchWarrant.java @@ -87,7 +87,7 @@ class SearchWarrantEffect extends OneShotEffect { if (player != null && targetPlayer != null) { targetPlayer.revealCards("Search Warrant", targetPlayer.getHand(), game); int ctd = targetPlayer.getHand().size(); - player.gainLife(ctd, game); + player.gainLife(ctd, game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/s/SeedsOfInnocence.java b/Mage.Sets/src/mage/cards/s/SeedsOfInnocence.java index d03f021e2c8..5939f1d9acc 100644 --- a/Mage.Sets/src/mage/cards/s/SeedsOfInnocence.java +++ b/Mage.Sets/src/mage/cards/s/SeedsOfInnocence.java @@ -87,7 +87,7 @@ class SeedsOfInnocenceEffect extends OneShotEffect { Player artifactController = game.getPlayer(artifact.getControllerId()); int cmc = artifact.getConvertedManaCost(); if (artifact.destroy(source.getSourceId(), game, true)) { - artifactController.gainLife(cmc, game); + artifactController.gainLife(cmc, game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/s/SelvalaExplorerReturned.java b/Mage.Sets/src/mage/cards/s/SelvalaExplorerReturned.java index 32bf20ad80c..0b5b7e20433 100644 --- a/Mage.Sets/src/mage/cards/s/SelvalaExplorerReturned.java +++ b/Mage.Sets/src/mage/cards/s/SelvalaExplorerReturned.java @@ -104,7 +104,7 @@ class SelvalaExplorerReturnedEffect extends ManaEffect { Mana parley = getMana(game, source); if (parley.getGreen() > 0) { controller.getManaPool().addMana(parley, game, source); - controller.gainLife(parley.getGreen(), game); + controller.gainLife(parley.getGreen(), game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/s/ServantOfTymaret.java b/Mage.Sets/src/mage/cards/s/ServantOfTymaret.java index 4021e710543..518075f85ae 100644 --- a/Mage.Sets/src/mage/cards/s/ServantOfTymaret.java +++ b/Mage.Sets/src/mage/cards/s/ServantOfTymaret.java @@ -90,7 +90,7 @@ class ServantOfTymaretEffect extends OneShotEffect { for (UUID opponentId: game.getOpponents(source.getControllerId())) { lostAmount += game.getPlayer(opponentId).loseLife(1, game, false); } - game.getPlayer(source.getControllerId()).gainLife(lostAmount, game); + game.getPlayer(source.getControllerId()).gainLife(lostAmount, game, source); return true; } diff --git a/Mage.Sets/src/mage/cards/s/SeverSoul.java b/Mage.Sets/src/mage/cards/s/SeverSoul.java index b4bc71d3d88..33e18608f4a 100644 --- a/Mage.Sets/src/mage/cards/s/SeverSoul.java +++ b/Mage.Sets/src/mage/cards/s/SeverSoul.java @@ -94,7 +94,7 @@ class GainLifeEqualToToughnessEffect extends OneShotEffect { if (permanent != null) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(permanent.getToughness().getValue(), game); + player.gainLife(permanent.getToughness().getValue(), game, source); } } return false; diff --git a/Mage.Sets/src/mage/cards/s/ShelteringWord.java b/Mage.Sets/src/mage/cards/s/ShelteringWord.java index 685dc8083e6..76676a2653b 100644 --- a/Mage.Sets/src/mage/cards/s/ShelteringWord.java +++ b/Mage.Sets/src/mage/cards/s/ShelteringWord.java @@ -91,7 +91,7 @@ class ShelteringWordEffect extends OneShotEffect { if (player != null && permanent != null) { int amount = permanent.getToughness().getValue(); if (amount > 0) { - player.gainLife(amount, game); + player.gainLife(amount, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/s/SifterWurm.java b/Mage.Sets/src/mage/cards/s/SifterWurm.java index e2aca344a2f..638159071d8 100644 --- a/Mage.Sets/src/mage/cards/s/SifterWurm.java +++ b/Mage.Sets/src/mage/cards/s/SifterWurm.java @@ -105,7 +105,7 @@ class SifterWurmEffect extends OneShotEffect { if (card != null) { cards.add(card); controller.revealCards(sourceObject.getIdName(), cards, game); - controller.gainLife(card.getConvertedManaCost(), game); + controller.gainLife(card.getConvertedManaCost(), game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/s/SludgeStrider.java b/Mage.Sets/src/mage/cards/s/SludgeStrider.java index fd29c7c1afd..d75de45e5b9 100644 --- a/Mage.Sets/src/mage/cards/s/SludgeStrider.java +++ b/Mage.Sets/src/mage/cards/s/SludgeStrider.java @@ -158,7 +158,7 @@ class SludgeStriderEffect extends OneShotEffect { targetPlayer.loseLife(1, game, false); } if (you != null) { - you.gainLife(1, game); + you.gainLife(1, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/s/SoulBurn.java b/Mage.Sets/src/mage/cards/s/SoulBurn.java index 33739e2e12a..aeb3aecdb1a 100644 --- a/Mage.Sets/src/mage/cards/s/SoulBurn.java +++ b/Mage.Sets/src/mage/cards/s/SoulBurn.java @@ -168,7 +168,7 @@ class SoulBurnEffect extends OneShotEffect { } Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - controller.gainLife(lifetogain, game); + controller.gainLife(lifetogain, game, source); } else { return false; } diff --git a/Mage.Sets/src/mage/cards/s/SoulsGrace.java b/Mage.Sets/src/mage/cards/s/SoulsGrace.java index 55fed5fe143..10240dedac9 100644 --- a/Mage.Sets/src/mage/cards/s/SoulsGrace.java +++ b/Mage.Sets/src/mage/cards/s/SoulsGrace.java @@ -87,7 +87,7 @@ class SoulsGraceEffect extends OneShotEffect { if (permanent != null && player != null) { int amount = permanent.getPower().getValue(); if (amount > 0) { - player.gainLife(amount, game); + player.gainLife(amount, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/s/SoulsOfTheFaultless.java b/Mage.Sets/src/mage/cards/s/SoulsOfTheFaultless.java index 3715b737bf7..a566665467e 100644 --- a/Mage.Sets/src/mage/cards/s/SoulsOfTheFaultless.java +++ b/Mage.Sets/src/mage/cards/s/SoulsOfTheFaultless.java @@ -142,7 +142,7 @@ class SoulsOfTheFaultlessEffect extends OneShotEffect { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(amount, game); + player.gainLife(amount, game, source); } UUID attackerId = (UUID) this.getValue("attackerId"); diff --git a/Mage.Sets/src/mage/cards/s/SphinxSovereign.java b/Mage.Sets/src/mage/cards/s/SphinxSovereign.java index 0a41737e9f4..7744995a19f 100644 --- a/Mage.Sets/src/mage/cards/s/SphinxSovereign.java +++ b/Mage.Sets/src/mage/cards/s/SphinxSovereign.java @@ -93,7 +93,7 @@ class SphinxSovereignEffect extends OneShotEffect { Permanent permanent = (Permanent) source.getSourceObject(game); if (controller != null && permanent != null) { if (!permanent.isTapped()) { - controller.gainLife(3, game); + controller.gainLife(3, game, source); } else { for (UUID opponentId : game.getState().getPlayersInRange(controller.getId(), game)) { if (controller.hasOpponent(opponentId, game)) { diff --git a/Mage.Sets/src/mage/cards/s/SpinalEmbrace.java b/Mage.Sets/src/mage/cards/s/SpinalEmbrace.java index 2b708e2376e..957c5ab9834 100644 --- a/Mage.Sets/src/mage/cards/s/SpinalEmbrace.java +++ b/Mage.Sets/src/mage/cards/s/SpinalEmbrace.java @@ -143,7 +143,7 @@ class SpinalEmbraceSacrificeEffect extends OneShotEffect { affectedTargets++; Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - controller.gainLife(permanent.getPower().getValue(), game); + controller.gainLife(permanent.getPower().getValue(), game, source); } } } diff --git a/Mage.Sets/src/mage/cards/s/Spiritualize.java b/Mage.Sets/src/mage/cards/s/Spiritualize.java index a2deb51e9dd..d9741763114 100644 --- a/Mage.Sets/src/mage/cards/s/Spiritualize.java +++ b/Mage.Sets/src/mage/cards/s/Spiritualize.java @@ -135,7 +135,7 @@ class SpiritualizeEffect extends OneShotEffect { if (amount > 0) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - controller.gainLife(amount, game); + controller.gainLife(amount, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/s/SpoilsOfEvil.java b/Mage.Sets/src/mage/cards/s/SpoilsOfEvil.java index 3dde4973c96..c68a1f31e55 100644 --- a/Mage.Sets/src/mage/cards/s/SpoilsOfEvil.java +++ b/Mage.Sets/src/mage/cards/s/SpoilsOfEvil.java @@ -94,7 +94,7 @@ public class SpoilsOfEvil extends CardImpl { if(targetOpponent != null && controller != null) { int cardCount = targetOpponent.getGraveyard().count(filter, game); - controller.gainLife(cardCount, game); + controller.gainLife(cardCount, game, source); controller.getManaPool().addMana(Mana.ColorlessMana(cardCount), game, source); return true; } diff --git a/Mage.Sets/src/mage/cards/s/StarlitSanctum.java b/Mage.Sets/src/mage/cards/s/StarlitSanctum.java index 1bacb87c9c1..e0c07581ae5 100644 --- a/Mage.Sets/src/mage/cards/s/StarlitSanctum.java +++ b/Mage.Sets/src/mage/cards/s/StarlitSanctum.java @@ -105,7 +105,7 @@ class StarlitSanctumWhiteEffect extends OneShotEffect { if (amount > 0) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(amount, game); + player.gainLife(amount, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/s/Subversion.java b/Mage.Sets/src/mage/cards/s/Subversion.java index 9c3769e0ff3..38f40b0908a 100644 --- a/Mage.Sets/src/mage/cards/s/Subversion.java +++ b/Mage.Sets/src/mage/cards/s/Subversion.java @@ -79,7 +79,7 @@ public class Subversion extends CardImpl { for (UUID opponentId : game.getOpponents(source.getControllerId())) { damage += game.getPlayer(opponentId).damage(1, source.getSourceId(), game, false, true); } - game.getPlayer(source.getControllerId()).gainLife(damage, game); + game.getPlayer(source.getControllerId()).gainLife(damage, game, source); return true; } diff --git a/Mage.Sets/src/mage/cards/s/SufferThePast.java b/Mage.Sets/src/mage/cards/s/SufferThePast.java index 60778655127..df6bef8e8c2 100644 --- a/Mage.Sets/src/mage/cards/s/SufferThePast.java +++ b/Mage.Sets/src/mage/cards/s/SufferThePast.java @@ -103,7 +103,7 @@ class SufferThePastEffect extends OneShotEffect { numberExiled ++; } } - you.gainLife(numberExiled, game); + you.gainLife(numberExiled, game, source); targetPlayer.loseLife(numberExiled, game, false); } } diff --git a/Mage.Sets/src/mage/cards/s/SunscourgeChampion.java b/Mage.Sets/src/mage/cards/s/SunscourgeChampion.java index 0483974bfb2..b6f3da8da8a 100644 --- a/Mage.Sets/src/mage/cards/s/SunscourgeChampion.java +++ b/Mage.Sets/src/mage/cards/s/SunscourgeChampion.java @@ -97,7 +97,7 @@ class SunscourgeChampionEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = game.getObject(source.getSourceId()); if (controller != null && permanent != null && sourceObject != null) { - controller.gainLife(permanent.getPower().getValue(), game); + controller.gainLife(permanent.getPower().getValue(), game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/s/SyphonSoul.java b/Mage.Sets/src/mage/cards/s/SyphonSoul.java index 5e86740b355..348f75f75d7 100644 --- a/Mage.Sets/src/mage/cards/s/SyphonSoul.java +++ b/Mage.Sets/src/mage/cards/s/SyphonSoul.java @@ -79,7 +79,7 @@ class SyphonSoulEffect extends OneShotEffect { } } if (damageDealt > 0) { - game.getPlayer(source.getControllerId()).gainLife(damageDealt, game); + game.getPlayer(source.getControllerId()).gainLife(damageDealt, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/t/TabletOfTheGuilds.java b/Mage.Sets/src/mage/cards/t/TabletOfTheGuilds.java index 4e946e86bc3..81bb6e90e5b 100644 --- a/Mage.Sets/src/mage/cards/t/TabletOfTheGuilds.java +++ b/Mage.Sets/src/mage/cards/t/TabletOfTheGuilds.java @@ -142,7 +142,7 @@ class TabletOfTheGuildsGainLifeEffect extends OneShotEffect { ++amount; } if (amount > 0) { - you.gainLife(amount, game); + you.gainLife(amount, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/t/TalarasBane.java b/Mage.Sets/src/mage/cards/t/TalarasBane.java index c9b75860a7d..a6bb3c36acf 100644 --- a/Mage.Sets/src/mage/cards/t/TalarasBane.java +++ b/Mage.Sets/src/mage/cards/t/TalarasBane.java @@ -109,7 +109,7 @@ class TalarasBaneEffect extends OneShotEffect { } if (card != null) { int lifeGain = card.getToughness().getValue(); - you.gainLife(lifeGain, game); + you.gainLife(lifeGain, game, source); return targetPlayer.discard(card, source, game); } } diff --git a/Mage.Sets/src/mage/cards/t/TavernSwindler.java b/Mage.Sets/src/mage/cards/t/TavernSwindler.java index 828f5a505c8..b0ff9667335 100644 --- a/Mage.Sets/src/mage/cards/t/TavernSwindler.java +++ b/Mage.Sets/src/mage/cards/t/TavernSwindler.java @@ -89,7 +89,7 @@ class TavernSwindlerEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { if (controller.flipCoin(game)) { - game.informPlayers(controller.getLogName() + " got " + controller.gainLife(6, game)+ " live"); + game.informPlayers(controller.getLogName() + " got " + controller.gainLife(6, game, source)+ " live"); } } return false; diff --git a/Mage.Sets/src/mage/cards/t/TempleOfAclazotz.java b/Mage.Sets/src/mage/cards/t/TempleOfAclazotz.java index c633a7517a3..bed4bb40879 100644 --- a/Mage.Sets/src/mage/cards/t/TempleOfAclazotz.java +++ b/Mage.Sets/src/mage/cards/t/TempleOfAclazotz.java @@ -101,7 +101,7 @@ class TempleOfAclazotzEffect extends OneShotEffect { if (cost instanceof SacrificeTargetCost) { int amount = ((SacrificeTargetCost) cost).getPermanents().get(0).getToughness().getValue(); if (amount > 0) { - controller.gainLife(amount, game); + controller.gainLife(amount, game, source); } } } diff --git a/Mage.Sets/src/mage/cards/t/TemporaryTruce.java b/Mage.Sets/src/mage/cards/t/TemporaryTruce.java index 0efb4ea8dd1..654fdaefbf4 100644 --- a/Mage.Sets/src/mage/cards/t/TemporaryTruce.java +++ b/Mage.Sets/src/mage/cards/t/TemporaryTruce.java @@ -85,7 +85,7 @@ class TemporaryTruceEffect extends OneShotEffect { if (player != null) { int cardsToDraw = player.getAmount(0, 2, "Draw how many cards?", game); player.drawCards(cardsToDraw, game); - player.gainLife((2 - cardsToDraw) * 2, game); + player.gainLife((2 - cardsToDraw) * 2, game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/t/TerashisGrasp.java b/Mage.Sets/src/mage/cards/t/TerashisGrasp.java index 1e81f3eea96..4fcbd6d61c9 100644 --- a/Mage.Sets/src/mage/cards/t/TerashisGrasp.java +++ b/Mage.Sets/src/mage/cards/t/TerashisGrasp.java @@ -87,7 +87,7 @@ public class TerashisGrasp extends CardImpl { int cost = targetPermanent.getConvertedManaCost(); Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(cost, game); + player.gainLife(cost, game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/t/TezzeretAgentOfBolas.java b/Mage.Sets/src/mage/cards/t/TezzeretAgentOfBolas.java index b4a15138749..38541a31da9 100644 --- a/Mage.Sets/src/mage/cards/t/TezzeretAgentOfBolas.java +++ b/Mage.Sets/src/mage/cards/t/TezzeretAgentOfBolas.java @@ -128,7 +128,7 @@ class TezzeretAgentOfBolasEffect2 extends OneShotEffect { } Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - controller.gainLife(count, game); + controller.gainLife(count, game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/t/ThallidOmnivore.java b/Mage.Sets/src/mage/cards/t/ThallidOmnivore.java index cfee4167b71..192286c6d74 100644 --- a/Mage.Sets/src/mage/cards/t/ThallidOmnivore.java +++ b/Mage.Sets/src/mage/cards/t/ThallidOmnivore.java @@ -108,7 +108,7 @@ class ThallidOmnivoreEffect extends OneShotEffect { SacrificeTargetCost sacrificeCost = (SacrificeTargetCost) cost; List permanents = sacrificeCost.getPermanents(); if (!permanents.isEmpty() && permanents.get(0).hasSubtype(SubType.SAPROLING, game)) { - controller.gainLife(2, game); + controller.gainLife(2, game, source); } } diff --git a/Mage.Sets/src/mage/cards/t/Thermokarst.java b/Mage.Sets/src/mage/cards/t/Thermokarst.java index 25e2ca73e62..f36c134edbd 100644 --- a/Mage.Sets/src/mage/cards/t/Thermokarst.java +++ b/Mage.Sets/src/mage/cards/t/Thermokarst.java @@ -86,7 +86,7 @@ class ThermokarstEffect extends OneShotEffect { if (permanent != null && controller != null) { permanent.destroy(source.getSourceId(), game, false); if (permanent.isSnow()) { - controller.gainLife(1, game); + controller.gainLife(1, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/t/TimelyReinforcements.java b/Mage.Sets/src/mage/cards/t/TimelyReinforcements.java index b51bdb53b9a..591a29e605d 100644 --- a/Mage.Sets/src/mage/cards/t/TimelyReinforcements.java +++ b/Mage.Sets/src/mage/cards/t/TimelyReinforcements.java @@ -99,7 +99,7 @@ class TimelyReinforcementsEffect extends OneShotEffect { } } if (lessLife) { - controller.gainLife(6, game); + controller.gainLife(6, game, source); } if (lessCreatures) { Effect effect = new CreateTokenEffect(new SoldierToken(), 3); diff --git a/Mage.Sets/src/mage/cards/t/TormentedHero.java b/Mage.Sets/src/mage/cards/t/TormentedHero.java index cf3eb734574..197d1ff211d 100644 --- a/Mage.Sets/src/mage/cards/t/TormentedHero.java +++ b/Mage.Sets/src/mage/cards/t/TormentedHero.java @@ -87,7 +87,7 @@ class EachOpponentLosesYouGainSumLifeEffect extends OneShotEffect { for (UUID opponentId : game.getOpponents(source.getControllerId())) { lostLife += game.getPlayer(opponentId).loseLife(1, game, false); } - game.getPlayer(source.getControllerId()).gainLife(lostLife, game); + game.getPlayer(source.getControllerId()).gainLife(lostLife, game, source); return true; } diff --git a/Mage.Sets/src/mage/cards/t/Transcendence.java b/Mage.Sets/src/mage/cards/t/Transcendence.java index edc06c9307e..60b290a3670 100644 --- a/Mage.Sets/src/mage/cards/t/Transcendence.java +++ b/Mage.Sets/src/mage/cards/t/Transcendence.java @@ -168,7 +168,7 @@ class TranscendenceLoseLifeEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - controller.gainLife(2 * amount, game); + controller.gainLife(2 * amount, game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/t/TrespassersCurse.java b/Mage.Sets/src/mage/cards/t/TrespassersCurse.java index 5caf389b6cc..6401ebaed8f 100644 --- a/Mage.Sets/src/mage/cards/t/TrespassersCurse.java +++ b/Mage.Sets/src/mage/cards/t/TrespassersCurse.java @@ -144,7 +144,7 @@ class TrespassersCurseEffect extends OneShotEffect { Player controller = game.getPlayer(source.getControllerId()); if (controllerOfCreature != null) { controllerOfCreature.loseLife(1, game, false); - controller.gainLife(1, game); + controller.gainLife(1, game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/t/TributeToHunger.java b/Mage.Sets/src/mage/cards/t/TributeToHunger.java index 3d9047164e2..3c80de851ec 100644 --- a/Mage.Sets/src/mage/cards/t/TributeToHunger.java +++ b/Mage.Sets/src/mage/cards/t/TributeToHunger.java @@ -92,7 +92,7 @@ class TributeToHungerEffect extends OneShotEffect { Permanent permanent = game.getPermanent(target.getFirstTarget()); if (permanent != null) { permanent.sacrifice(source.getSourceId(), game); - controller.gainLife(permanent.getToughness().getValue(), game); + controller.gainLife(permanent.getToughness().getValue(), game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/t/Triskaidekaphobia.java b/Mage.Sets/src/mage/cards/t/Triskaidekaphobia.java index 5c4e7847e4a..892e98c1f86 100644 --- a/Mage.Sets/src/mage/cards/t/Triskaidekaphobia.java +++ b/Mage.Sets/src/mage/cards/t/Triskaidekaphobia.java @@ -101,7 +101,7 @@ class TriskaidekaphobiaGainLifeEffect extends OneShotEffect { for (UUID pid : playerList) { Player player = game.getPlayer(pid); if (player != null) { - player.gainLife(1, game); + player.gainLife(1, game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/t/TrostaniSelesnyasVoice.java b/Mage.Sets/src/mage/cards/t/TrostaniSelesnyasVoice.java index 8d6b30221cc..d7a70970656 100644 --- a/Mage.Sets/src/mage/cards/t/TrostaniSelesnyasVoice.java +++ b/Mage.Sets/src/mage/cards/t/TrostaniSelesnyasVoice.java @@ -154,7 +154,7 @@ class TrostaniSelesnyasVoiceEffect extends OneShotEffect { int amount = creature.getToughness().getValue(); Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(amount, game); + player.gainLife(amount, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/t/Truce.java b/Mage.Sets/src/mage/cards/t/Truce.java index cbe1b0a472a..3114bdbe695 100644 --- a/Mage.Sets/src/mage/cards/t/Truce.java +++ b/Mage.Sets/src/mage/cards/t/Truce.java @@ -85,7 +85,7 @@ class TruceEffect extends OneShotEffect { if (player != null) { int cardsToDraw = player.getAmount(0, 2, "Draw how many cards?", game); player.drawCards(cardsToDraw, game); - player.gainLife((2 - cardsToDraw) * 2, game); + player.gainLife((2 - cardsToDraw) * 2, game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/t/TwilightProphet.java b/Mage.Sets/src/mage/cards/t/TwilightProphet.java index 18096b66ed1..4183fe7d7ad 100644 --- a/Mage.Sets/src/mage/cards/t/TwilightProphet.java +++ b/Mage.Sets/src/mage/cards/t/TwilightProphet.java @@ -119,7 +119,7 @@ class TwilightProphetEffect extends OneShotEffect { int amount = card.getConvertedManaCost(); if (amount > 0) { new LoseLifeOpponentsEffect(amount).apply(game, source); - controller.gainLife(amount, game); + controller.gainLife(amount, game, source); } } return true; diff --git a/Mage.Sets/src/mage/cards/u/UginTheSpiritDragon.java b/Mage.Sets/src/mage/cards/u/UginTheSpiritDragon.java index f7b0098981a..b0b1bf62ee2 100644 --- a/Mage.Sets/src/mage/cards/u/UginTheSpiritDragon.java +++ b/Mage.Sets/src/mage/cards/u/UginTheSpiritDragon.java @@ -154,7 +154,7 @@ class UginTheSpiritDragonEffect3 extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - controller.gainLife(7, game); + controller.gainLife(7, game, source); controller.drawCards(7, game); TargetCardInHand target = new TargetCardInHand(0, 7, new FilterPermanentCard("permanent cards")); if (controller.choose(Outcome.PutCardInPlay, target, source.getSourceId(), game)) { diff --git a/Mage.Sets/src/mage/cards/u/UrborgSyphonMage.java b/Mage.Sets/src/mage/cards/u/UrborgSyphonMage.java index d50fc8fbc55..9c5c4b094d6 100644 --- a/Mage.Sets/src/mage/cards/u/UrborgSyphonMage.java +++ b/Mage.Sets/src/mage/cards/u/UrborgSyphonMage.java @@ -100,7 +100,7 @@ class UrborgSyphonMageEffect extends OneShotEffect { } } } - game.getPlayer(source.getControllerId()).gainLife(damage, game); + game.getPlayer(source.getControllerId()).gainLife(damage, game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/v/VerdantSunsAvatar.java b/Mage.Sets/src/mage/cards/v/VerdantSunsAvatar.java index c930ee18874..9091554be71 100644 --- a/Mage.Sets/src/mage/cards/v/VerdantSunsAvatar.java +++ b/Mage.Sets/src/mage/cards/v/VerdantSunsAvatar.java @@ -141,7 +141,7 @@ class VerdantSunsAvatarEffect extends OneShotEffect { int amount = creature.getToughness().getValue(); Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(amount, game); + player.gainLife(amount, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/v/VigilForTheLost.java b/Mage.Sets/src/mage/cards/v/VigilForTheLost.java index f2b54e46ae3..d8ff070abc3 100644 --- a/Mage.Sets/src/mage/cards/v/VigilForTheLost.java +++ b/Mage.Sets/src/mage/cards/v/VigilForTheLost.java @@ -121,7 +121,7 @@ class VigilForTheLostEffect extends OneShotEffect { cost.clearPaid(); if (cost.payOrRollback(source, game, source.getSourceId(), source.getControllerId())) { Player player = game.getPlayer(source.getControllerId()); - player.gainLife(cost.getX(), game); + player.gainLife(cost.getX(), game, source); return true; } else { return false; diff --git a/Mage.Sets/src/mage/cards/w/WallOfEssence.java b/Mage.Sets/src/mage/cards/w/WallOfEssence.java index 56222e39cbd..79c27ad580f 100644 --- a/Mage.Sets/src/mage/cards/w/WallOfEssence.java +++ b/Mage.Sets/src/mage/cards/w/WallOfEssence.java @@ -130,7 +130,7 @@ class PiousWarriorGainLifeEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife((Integer) this.getValue("damageAmount"), game); + player.gainLife((Integer) this.getValue("damageAmount"), game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/w/WallOfHope.java b/Mage.Sets/src/mage/cards/w/WallOfHope.java index d0a3a9e5218..55c006bea4b 100644 --- a/Mage.Sets/src/mage/cards/w/WallOfHope.java +++ b/Mage.Sets/src/mage/cards/w/WallOfHope.java @@ -128,7 +128,7 @@ class WallOfHopeGainLifeEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife((Integer) this.getValue("damageAmount"), game); + player.gainLife((Integer) this.getValue("damageAmount"), game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/w/WallOfReverence.java b/Mage.Sets/src/mage/cards/w/WallOfReverence.java index 6d2ba020a24..4cf84f8857a 100644 --- a/Mage.Sets/src/mage/cards/w/WallOfReverence.java +++ b/Mage.Sets/src/mage/cards/w/WallOfReverence.java @@ -90,7 +90,7 @@ class WallOfReverenceTriggeredEffect extends OneShotEffect { Permanent target = game.getPermanent(source.getFirstTarget()); Player player = game.getPlayer(source.getControllerId()); if (target != null && player != null) { - player.gainLife(target.getPower().getValue(), game); + player.gainLife(target.getPower().getValue(), game, source); return true; } return false; diff --git a/Mage.Sets/src/mage/cards/w/WarReport.java b/Mage.Sets/src/mage/cards/w/WarReport.java index f03ba9b790e..1e51bb533bd 100644 --- a/Mage.Sets/src/mage/cards/w/WarReport.java +++ b/Mage.Sets/src/mage/cards/w/WarReport.java @@ -83,7 +83,7 @@ class WarReportEffect extends OneShotEffect { if (player != null) { int lifeToGain = game.getBattlefield().count(StaticFilters.FILTER_PERMANENT_CREATURE, source.getSourceId(), source.getControllerId(), game); lifeToGain += game.getBattlefield().count(new FilterArtifactPermanent(), source.getSourceId(), source.getControllerId(), game); - player.gainLife(lifeToGain, game); + player.gainLife(lifeToGain, game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/w/WeedStrangle.java b/Mage.Sets/src/mage/cards/w/WeedStrangle.java index eaa0f6e98e0..e1caa1b9eca 100644 --- a/Mage.Sets/src/mage/cards/w/WeedStrangle.java +++ b/Mage.Sets/src/mage/cards/w/WeedStrangle.java @@ -89,7 +89,7 @@ class WeedStrangleEffect extends OneShotEffect { if (controller != null && creature != null) { creature.destroy(source.getSourceId(), game, false); if (ClashEffect.getInstance().apply(game, source)) { - controller.gainLife(creature.getToughness().getValue(), game); + controller.gainLife(creature.getToughness().getValue(), game, source); } return true; } diff --git a/Mage.Sets/src/mage/cards/w/Woeleecher.java b/Mage.Sets/src/mage/cards/w/Woeleecher.java index 64afd4c4128..c556bdcf3b3 100644 --- a/Mage.Sets/src/mage/cards/w/Woeleecher.java +++ b/Mage.Sets/src/mage/cards/w/Woeleecher.java @@ -106,7 +106,7 @@ class WoeleecherEffect extends OneShotEffect { target.removeCounters(CounterType.M1M1.createInstance(), game); numberCountersAfter = target.getCounters(game).getCount(CounterType.M1M1); if (numberCountersAfter < numberCountersOriginal && you != null) { - you.gainLife(2, game); + you.gainLife(2, game, source); return true; } } diff --git a/Mage.Sets/src/mage/cards/w/WordsOfWorship.java b/Mage.Sets/src/mage/cards/w/WordsOfWorship.java index 2bd7329fcc9..0dcf3718856 100644 --- a/Mage.Sets/src/mage/cards/w/WordsOfWorship.java +++ b/Mage.Sets/src/mage/cards/w/WordsOfWorship.java @@ -91,7 +91,7 @@ class WordsOfWorshipEffect extends ReplacementEffectImpl { public boolean replaceEvent(GameEvent event, Ability source, Game game) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - controller.gainLife(5, game); + controller.gainLife(5, game, source); this.used = true; discard(); return true; diff --git a/Mage.Tests/src/test/java/org/mage/test/player/TestPlayer.java b/Mage.Tests/src/test/java/org/mage/test/player/TestPlayer.java index 2d8246bd678..31a2346b8ae 100644 --- a/Mage.Tests/src/test/java/org/mage/test/player/TestPlayer.java +++ b/Mage.Tests/src/test/java/org/mage/test/player/TestPlayer.java @@ -1592,7 +1592,7 @@ public class TestPlayer implements Player { } @Override - public int gainLife(int amount, Game game) { + public int gainLife(int amount, Game game, Ability source) { return computerPlayer.gainLife(amount, game); } diff --git a/Mage.Tests/src/test/java/org/mage/test/stub/PlayerStub.java b/Mage.Tests/src/test/java/org/mage/test/stub/PlayerStub.java index a3eaa5a5cb5..ab572ff6795 100644 --- a/Mage.Tests/src/test/java/org/mage/test/stub/PlayerStub.java +++ b/Mage.Tests/src/test/java/org/mage/test/stub/PlayerStub.java @@ -150,7 +150,7 @@ public class PlayerStub implements Player { } @Override - public int gainLife(int amount, Game game) { + public int gainLife(int amount, Game game, Ability source) { return 0; } diff --git a/Mage/src/main/java/mage/abilities/common/DealsDamageGainLifeSourceTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/DealsDamageGainLifeSourceTriggeredAbility.java index 246445e312c..a44b2b1b042 100644 --- a/Mage/src/main/java/mage/abilities/common/DealsDamageGainLifeSourceTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/DealsDamageGainLifeSourceTriggeredAbility.java @@ -103,7 +103,7 @@ class GainThatMuchLifeEffect extends OneShotEffect { if (controller != null) { int amount = (Integer) getValue("damage"); if (amount > 0) { - controller.gainLife(amount, game); + controller.gainLife(amount, game, source); } return true; diff --git a/Mage/src/main/java/mage/abilities/costs/common/GainLifeOpponentCost.java b/Mage/src/main/java/mage/abilities/costs/common/GainLifeOpponentCost.java index 7bc216aab5c..98593815f82 100644 --- a/Mage/src/main/java/mage/abilities/costs/common/GainLifeOpponentCost.java +++ b/Mage/src/main/java/mage/abilities/costs/common/GainLifeOpponentCost.java @@ -67,7 +67,7 @@ public class GainLifeOpponentCost extends CostImpl { if (controller.chooseTarget(Outcome.Detriment, target, ability, game)) { Player opponent = game.getPlayer(target.getFirstTarget()); if (opponent != null) { - opponent.gainLife(amount, game); + opponent.gainLife(amount, game, source); paid = true; } diff --git a/Mage/src/main/java/mage/abilities/costs/common/GainLifePlayersCost.java b/Mage/src/main/java/mage/abilities/costs/common/GainLifePlayersCost.java index d09e5d60574..f24c852c69d 100644 --- a/Mage/src/main/java/mage/abilities/costs/common/GainLifePlayersCost.java +++ b/Mage/src/main/java/mage/abilities/costs/common/GainLifePlayersCost.java @@ -78,7 +78,7 @@ public class GainLifePlayersCost extends CostImpl { if (!playerId.equals(controllerId)) { Player player = game.getPlayer(playerId); if (player != null) { - player.gainLife(amount, game); + player.gainLife(amount, game, source); } } } diff --git a/Mage/src/main/java/mage/abilities/effects/common/ExileAndGainLifeEqualPowerTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/ExileAndGainLifeEqualPowerTargetEffect.java index 4194b261cf6..ab2ff097330 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/ExileAndGainLifeEqualPowerTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/ExileAndGainLifeEqualPowerTargetEffect.java @@ -62,7 +62,7 @@ public class ExileAndGainLifeEqualPowerTargetEffect extends OneShotEffect { int creaturePower = permanent.getPower().getValue(); permanent.moveToExile(null, null, source.getSourceId(), game); game.applyEffects(); - player.gainLife(creaturePower, game); + player.gainLife(creaturePower, game, source); } return true; } diff --git a/Mage/src/main/java/mage/abilities/effects/common/GainLifeEffect.java b/Mage/src/main/java/mage/abilities/effects/common/GainLifeEffect.java index fc30f8ad1d2..30e18a80b50 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/GainLifeEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/GainLifeEffect.java @@ -74,7 +74,7 @@ public class GainLifeEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { - player.gainLife(life.calculate(game, source, this), game); + player.gainLife(life.calculate(game, source, this), game, source); } return true; } diff --git a/Mage/src/main/java/mage/abilities/effects/common/GainLifeTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/GainLifeTargetEffect.java index b9c694dd7c2..1b1da3f009c 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/GainLifeTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/GainLifeTargetEffect.java @@ -71,7 +71,7 @@ public class GainLifeTargetEffect extends OneShotEffect { for (UUID playerId: targetPointer.getTargets(game, source)) { Player player = game.getPlayer(playerId); if (player != null) { - player.gainLife(life.calculate(game, source, this), game); + player.gainLife(life.calculate(game, source, this), game, source); } } return true; diff --git a/Mage/src/main/java/mage/abilities/keyword/ExtortAbility.java b/Mage/src/main/java/mage/abilities/keyword/ExtortAbility.java index 4ab4ff99c5f..2ab58ae2ab7 100644 --- a/Mage/src/main/java/mage/abilities/keyword/ExtortAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/ExtortAbility.java @@ -109,7 +109,7 @@ class ExtortEffect extends OneShotEffect { loseLife += game.getPlayer(opponentId).loseLife(1, game, false); } if (loseLife > 0) { - game.getPlayer(source.getControllerId()).gainLife(loseLife, game); + game.getPlayer(source.getControllerId()).gainLife(loseLife, game, source); } if (!game.isSimulation()) game.informPlayers(new StringBuilder(permanent.getName()).append(" extorted opponents ").append(loseLife).append(" life").toString()); diff --git a/Mage/src/main/java/mage/game/permanent/PermanentImpl.java b/Mage/src/main/java/mage/game/permanent/PermanentImpl.java index 3adb550d55d..806980a1ad2 100644 --- a/Mage/src/main/java/mage/game/permanent/PermanentImpl.java +++ b/Mage/src/main/java/mage/game/permanent/PermanentImpl.java @@ -785,7 +785,7 @@ public abstract class PermanentImpl extends CardImpl implements Permanent { if (source != null && sourceAbilities != null) { if (sourceAbilities.containsKey(LifelinkAbility.getInstance().getId())) { Player player = game.getPlayer(sourceControllerId); - player.gainLife(damageDone, game); + player.gainLife(damageDone, game, source); } if (sourceAbilities.containsKey(DeathtouchAbility.getInstance().getId())) { deathtouched = true; diff --git a/Mage/src/main/java/mage/players/Player.java b/Mage/src/main/java/mage/players/Player.java index 9d94d9976b0..b40beb092ce 100644 --- a/Mage/src/main/java/mage/players/Player.java +++ b/Mage/src/main/java/mage/players/Player.java @@ -123,7 +123,7 @@ public interface Player extends MageItem, Copyable { */ int loseLife(int amount, Game game, boolean atCombat); - int gainLife(int amount, Game game); + int gainLife(int amount, Game game, Ability source); int damage(int damage, UUID sourceId, Game game, boolean combatDamage, boolean preventable); diff --git a/Mage/src/main/java/mage/players/PlayerImpl.java b/Mage/src/main/java/mage/players/PlayerImpl.java index 17ddb764248..56e8831b2e2 100644 --- a/Mage/src/main/java/mage/players/PlayerImpl.java +++ b/Mage/src/main/java/mage/players/PlayerImpl.java @@ -1744,7 +1744,7 @@ public abstract class PlayerImpl implements Player, Serializable { public void setLife(int life, Game game) { // rule 118.5 if (life > this.life) { - gainLife(life - this.life, game); + gainLife(life - this.life, game, source); } else if (life < this.life) { loseLife(this.life - life, game, false); } @@ -1807,7 +1807,7 @@ public abstract class PlayerImpl implements Player, Serializable { } @Override - public int gainLife(int amount, Game game) { + public int gainLife(int amount, Game game, Ability source) { if (!canGainLife || amount == 0) { return 0; } @@ -1820,7 +1820,7 @@ public abstract class PlayerImpl implements Player, Serializable { if (!game.isSimulation()) { game.informPlayers(this.getLogName() + " gains " + event.getAmount() + " life"); } - game.fireEvent(GameEvent.getEvent(GameEvent.EventType.GAINED_LIFE, playerId, playerId, playerId, event.getAmount())); + game.fireEvent(GameEvent.getEvent(GameEvent.EventType.GAINED_LIFE, playerId, source.getSourceId(), playerId, event.getAmount())); return event.getAmount(); } return 0; @@ -1879,7 +1879,7 @@ public abstract class PlayerImpl implements Player, Serializable { } if (sourceAbilities != null && sourceAbilities.containsKey(LifelinkAbility.getInstance().getId())) { Player player = game.getPlayer(sourceControllerId); - player.gainLife(actualDamage, game); + player.gainLife(actualDamage, game, source); } // Unstable ability - Earl of Squirrel if (sourceAbilities != null && sourceAbilities.containsKey(SquirrellinkAbility.getInstance().getId())) { @@ -2491,12 +2491,16 @@ public abstract class PlayerImpl implements Player, Serializable { public PlanarDieRoll rollPlanarDie(Game game, ArrayList appliedEffects) { return rollPlanarDie(game, appliedEffects, 1, 1); } + /** * @param game * @param appliedEffects - * @param numberChaosSides The number of chaos sides the planar die currently has (normally 1 but can be 5) - * @param numberPlanarSides The number of chaos sides the planar die currently has (normally 1) - * @return the outcome that the player rolled. Either ChaosRoll, PlanarRoll or NilRoll + * @param numberChaosSides The number of chaos sides the planar die + * currently has (normally 1 but can be 5) + * @param numberPlanarSides The number of chaos sides the planar die + * currently has (normally 1) + * @return the outcome that the player rolled. Either ChaosRoll, PlanarRoll + * or NilRoll */ @Override public PlanarDieRoll rollPlanarDie(Game game, ArrayList appliedEffects, int numberChaosSides, int numberPlanarSides) { @@ -2508,8 +2512,7 @@ public abstract class PlayerImpl implements Player, Serializable { } if (result <= numberChaosSides) { roll = PlanarDieRoll.CHAOS_ROLL; - } - else if (result > 6 - numberPlanarSides) { + } else if (result > 6 - numberPlanarSides) { roll = PlanarDieRoll.PLANAR_ROLL; } if (!game.isSimulation()) {