public void SphereSkeletalReshaperInner(List <Delta> deltas, GMWithLocation gmLoc)
 {
     if (gmLoc.IsFortifying("Carthan"))
     {
         deltas.AddRange(
             UnitHealthDelta.GetHealDeltas(
                 gmLoc.FrontUnit,
                 gmLoc.SubjectUnit,
                 2,
                 gmLoc.GameManager
                 )
             );
     }
 }
Ejemplo n.º 2
0
        public void ArchonEtherealClassInner(List <Delta> deltas, GMWithLocation gmLoc)
        {
            Unit front = gmLoc.FrontUnit;

            if (front != null)
            {
                deltas.AddRange(
                    UnitHealthDelta.GetHealDeltas(
                        front,
                        gmLoc.SubjectUnit,
                        2,
                        gmLoc.GameManager
                        )
                    );

                int side = gmLoc.Side;

                Unit left = gmLoc.LeftLane?.Units?[side, 0];
                if (left != null)
                {
                    deltas.AddRange(
                        UnitHealthDelta.GetHealDeltas(
                            left,
                            gmLoc.SubjectUnit,
                            1,
                            gmLoc.GameManager
                            )
                        );
                }

                Unit right = gmLoc.RightLane?.Units?[side, 0];
                if (right != null)
                {
                    deltas.AddRange(
                        UnitHealthDelta.GetHealDeltas(
                            right,
                            gmLoc.SubjectUnit,
                            1,
                            gmLoc.GameManager
                            )
                        );
                }
            }
        }
Ejemplo n.º 3
0
 public void ArchonBrynhildeClassInner(List <Delta> deltas, GMWithLocation gmLoc)
 {
     if (gmLoc.IsFortifying("Carthan"))
     {
         // heal front line 2
         deltas.AddRange(
             UnitHealthDelta.GetHealDeltas(
                 gmLoc.FrontUnit,
                 gmLoc.SubjectUnit,
                 2,
                 gmLoc.GameManager
                 )
             );
         // gain 3 mana
         deltas.AddRange(
             gmLoc.SubjectPlayer.ManaPool.GetAddDeltas(3)
             );
     }
 }
Ejemplo n.º 4
0
        public void EXAvengerCustomDrone1Inner(List <Delta> deltas, GMWithLocation gmLoc)
        {
            if (turn == 0)
            {
                if (gmLoc.IsFortifying("Carthan", "Infantry"))
                {
                    foreach (Card c in gmLoc.SubjectPlayer.Hand)
                    {
                        deltas.AddRange(gmLoc.SubjectPlayer.Hand.GetRemoveDelta(c));
                    }

                    buffAmount = gmLoc.SubjectPlayer.Hand.Count;

                    deltas.Add(new UnitDamageAmountDelta(gmLoc.FrontUnit, buffAmount,
                                                         Damage.Type.RANGED, gmLoc.SubjectUnit));
                    buffed = gmLoc.FrontUnit;

                    deltas.AddRange(
                        UnitHealthDelta.GetHealDeltas(
                            gmLoc.FrontUnit,
                            gmLoc.SubjectUnit,
                            buffAmount,
                            gmLoc.GameManager
                            )
                        );
                }
            }
            else if (turn == 1)
            {
                if (buffed != null)
                {
                    deltas.Add(new UnitDamageAmountDelta(buffed, -buffAmount,
                                                         Damage.Type.RANGED, gmLoc.SubjectUnit));
                    buffed = null;
                }
            }
            turn++;
        }
        public void SphereMedicalVanguardInner(List <Delta> deltas, GMWithLocation gmLoc)
        {
            Console.WriteLine($"Sphere Medical Vanguard L{gmLoc.Lane} S{gmLoc.Side} P{gmLoc.Pos}");
            if (gmLoc.Pos == 0 && gmLoc.BackUnit == null)
            {
                Console.WriteLine("  In");
                int lane = gmLoc.Lane;
                int side = gmLoc.Side;

                Unit leftLaneFront = gmLoc.LeftLane?.Units?[side, 0];
                if (leftLaneFront != null)
                {
                    Console.WriteLine("  L");
                    deltas.AddRange(
                        UnitHealthDelta.GetHealDeltas(
                            leftLaneFront,
                            gmLoc.SubjectUnit,
                            1,
                            gmLoc.GameManager
                            )
                        );
                }

                Unit rightLaneFront = gmLoc.RightLane?.Units?[side, 0];
                if (rightLaneFront != null)
                {
                    Console.WriteLine("  R");
                    deltas.AddRange(
                        UnitHealthDelta.GetHealDeltas(
                            rightLaneFront,
                            gmLoc.SubjectUnit,
                            1,
                            gmLoc.GameManager
                            )
                        );
                }
            }
        }