public void TestCreatureModifierPhaseSkillActivation()
        {
            Player       DummyPlayer1      = new Player("Player 1", "Human", true, false, 0, new Card[0]);
            Player       DummyPlayer2      = new Player("Player 2", "Human", true, false, 0, new Card[0]);
            CreatureCard DummyInvaderCard  = new CreatureCard(40, 20);
            CreatureCard DummyDefenderCard = new CreatureCard(40, 20);

            SorcererStreetMap          DummyMap     = CreateDummyMap();
            SorcererStreetBattleParams BattleParams = new SorcererStreetBattleParams(DummyMap.GlobalSorcererStreetBattleContext);

            TerrainSorcererStreet DummyTerrain = DummyMap.GetTerrain(DummyPlayer2.GamePiece);

            DummyTerrain.DefendingCreature = DummyDefenderCard;
            DummyTerrain.Owner             = DummyPlayer2;

            ActionPanelBattleStartPhase BattleStartPhase = new ActionPanelBattleStartPhase(DummyMap, 0, DummyInvaderCard);

            BattleStartPhase.Load();

            BaseEffect               SkillEffect = new IncreaseHPEffect(BattleParams);
            BaseSkillRequirement     Requirement = new SorcererStreetCreaturePhaseRequirement(DummyMap.GlobalSorcererStreetBattleContext);
            AutomaticSkillTargetType Target      = new SorcererStreetSelfTargetType(DummyMap.GlobalSorcererStreetBattleContext);

            BaseAutomaticSkill HPIncreaseSkill = new BaseAutomaticSkill();

            HPIncreaseSkill.Name = "Dummy";
            HPIncreaseSkill.ListSkillLevel.Add(new BaseSkillLevel());
            HPIncreaseSkill.CurrentLevel = 1;

            BaseSkillActivation NewActivation = new BaseSkillActivation();

            HPIncreaseSkill.CurrentSkillLevel.ListActivation.Add(NewActivation);

            NewActivation.ListRequirement.Add(Requirement);

            NewActivation.ListEffect.Add(SkillEffect);
            NewActivation.ListEffectTargetReal.Add(new List <AutomaticSkillTargetType>());
            NewActivation.ListEffectTargetReal[0].Add(Target);

            DummyInvaderCard.ListSkill.Add(HPIncreaseSkill);

            ActionPanelBattleCreatureModifierPhase CreaturePhase = new ActionPanelBattleCreatureModifierPhase(DummyMap.ListActionMenuChoice, DummyMap);

            CreaturePhase.OnSelect();

            Assert.AreEqual(DummyInvaderCard.CurrentHP + 30, DummyMap.GlobalSorcererStreetBattleContext.InvaderFinalHP);
        }
        public void TestManualActivationHPBonus()
        {
            CreatureCard DummyInvaderCard  = new CreatureCard(40, 20);
            CreatureCard DummyDefenderCard = new CreatureCard(40, 20);

            SorcererStreetBattleContext GlobalSorcererStreetBattleContext = new SorcererStreetBattleContext();

            GlobalSorcererStreetBattleContext.Invader  = DummyInvaderCard;
            GlobalSorcererStreetBattleContext.Defender = DummyDefenderCard;

            GlobalSorcererStreetBattleContext.Invader.ResetBonuses();
            GlobalSorcererStreetBattleContext.Defender.ResetBonuses();

            GlobalSorcererStreetBattleContext.InvaderFinalHP  = GlobalSorcererStreetBattleContext.Invader.CurrentHP;
            GlobalSorcererStreetBattleContext.DefenderFinalHP = GlobalSorcererStreetBattleContext.Defender.CurrentHP;
            GlobalSorcererStreetBattleContext.InvaderFinalST  = GlobalSorcererStreetBattleContext.Invader.CurrentST;
            GlobalSorcererStreetBattleContext.DefenderFinalST = GlobalSorcererStreetBattleContext.Defender.CurrentST;

            GlobalSorcererStreetBattleContext.UserCreature     = GlobalSorcererStreetBattleContext.Invader;
            GlobalSorcererStreetBattleContext.OpponentCreature = GlobalSorcererStreetBattleContext.Defender;

            SorcererStreetBattleParams BattleParams = new SorcererStreetBattleParams(GlobalSorcererStreetBattleContext);
            BaseEffect               SkillEffect    = new IncreaseHPEffect(BattleParams);
            BaseSkillRequirement     Requirement    = new SorcererStreetCreaturePhaseRequirement(GlobalSorcererStreetBattleContext);
            AutomaticSkillTargetType Target         = new SorcererStreetSelfTargetType(GlobalSorcererStreetBattleContext);

            BaseAutomaticSkill HPIncreaseSkill = new BaseAutomaticSkill();

            HPIncreaseSkill.Name = "Dummy";
            HPIncreaseSkill.ListSkillLevel.Add(new BaseSkillLevel());
            HPIncreaseSkill.CurrentLevel = 1;

            BaseSkillActivation NewActivation = new BaseSkillActivation();

            HPIncreaseSkill.CurrentSkillLevel.ListActivation.Add(NewActivation);

            NewActivation.ListRequirement.Add(Requirement);

            NewActivation.ListEffect.Add(SkillEffect);
            NewActivation.ListEffectTargetReal.Add(new List <AutomaticSkillTargetType>());
            NewActivation.ListEffectTargetReal[0].Add(Target);

            HPIncreaseSkill.AddSkillEffectsToTarget(Requirement.SkillRequirementName);

            Assert.AreEqual(DummyInvaderCard.CurrentHP + 30, GlobalSorcererStreetBattleContext.InvaderFinalHP);
        }