public void BeginMyTurn()
        {
            if (zone.zoneId == ConvergeZoneId.Attack && !dying)
            {
                if (attackingWithAbility != null)
                {
                    MoveZone(controller.defense);
                    attackingWithAbility.DoAttackEffect(attackVictim, controller);
                    attackingWithAbility = null;
                    attackVictim         = null;
                }
                else if (!tapped)
                {
                    DealDamage(controller.opponent.homeBase, effectivePower, true);

                    if (keywords.HasFlag(ConvergeKeyword.DoubleStrike))
                    {
                        DealDamage(controller.opponent.homeBase, effectivePower, true);
                    }
                }
            }

            if (keywords.HasFlag(ConvergeKeyword.Vigilance))
            {
                WithdrawAttack();
                tapped = false;
            }
            tapped    = false;
            damage    = 0;
            powerUsed = 0;
        }
 public void EnterAttackWithAbility(ConvergeActivatedAbility ability, ConvergeObject target)
 {
     if (zone.zoneId == ConvergeZoneId.Defense)
     {
         MoveZone(controller.attack);
         attackingWithAbility = ability;
         attackVictim         = target;
     }
 }
 public void WithdrawAttack()
 {
     if (zone.zoneId == ConvergeZoneId.Attack && cardType.HasFlag(ConvergeCardType.Unit))
     {
         MoveZone(controller.defense);
         tapped = true;
         attackingWithAbility = null;
         attackVictim         = null;
     }
 }
 public ConvergeEffect_GainActivated(ConvergeActivatedAbilitySpec abilitySpec, ConvergeObject subject, ConvergeObject source, ConvergeDuration duration) : base(source, duration)
 {
     this.ability = new ConvergeActivatedAbility(abilitySpec, subject);
 }
 public ConvergeUIAbility(ConvergeActivatedAbility ability, Vector2 offset, ConvergeUIObject parent)
 {
     this.ability = ability;
     this.offset  = offset;
     this.parent  = parent;
 }
 public ConvergeEffectContext(ConvergeObject source, ConvergePlayer you, ConvergeActivatedAbility ability)
 {
     this.source  = source;
     this.you     = you;
     this.ability = ability;
 }