public override void OnBehaviorStart(ACardNotifBehavior behavior)
        {
            behavior.NbBehaviorUse = 1;

            List <StarEntity> starsSortedByPower = behavior.NodeLevel.BoardGameLayer.StarSystem
                                                   .Where(pElem => pElem.CardSocketed != null)
                                                   .OrderByDescending(pElem => pElem.CardSocketed.CardValue).ToList();

            if (starsSortedByPower.Count > 0)
            {
                int maxValue = starsSortedByPower.First().CardSocketed.CardValue;
                List <StarEntity> mostPowerStars = new List <StarEntity>();

                foreach (StarEntity star in starsSortedByPower)
                {
                    if (star.CardSocketed.CardValue == maxValue)
                    {
                        mostPowerStars.Add(star);
                    }
                    else
                    {
                        break;
                    }
                }

                (behavior as DeleteCardNotifBehavior).FromStarEntities = mostPowerStars;
            }
        }
 public void OnBehaviorEnd(ACardNotifBehavior behavior)
 {
     foreach (CardEntity cardEntityConverted in behavior.ModifiedCardEntities)
     {
         this.AffectedCards.Add(cardEntityConverted);
     }
 }
        public void OnBehaviorStart(ACardNotifBehavior behavior)
        {
            behavior.NbBehaviorUse = this.NbCardsToAffect;

            (behavior as AddPointsNotifBehavior).FromStarEntities = behavior.NodeLevel.BoardGameLayer.StarSystem
                                                                    .Where(pElem => pElem.CardSocketed != null && pElem.CardSocketed.Card.CanBeValueModified)
                                                                    .ToList();
        }
Example #4
0
        public override void OnBehaviorCardPicked(ACardNotifBehavior behavior, CardEntity cardEntityPicked)
        {
            MoveCardNotifBehavior moveCardBehavior = behavior as MoveCardNotifBehavior;

            moveCardBehavior.ToStarEntities = behavior.NodeLevel.BoardGameLayer.StarToLinks[behavior.OwnerCardEntity.ParentStar]
                                              .Select(pElem => pElem.StarFrom != behavior.OwnerCardEntity.ParentStar ? pElem.StarFrom : pElem.StarTo)
                                              .Where(pElem => pElem.CardSocketed == null).ToList();
        }
Example #5
0
        public void OnBehaviorStart(ACardNotifBehavior behavior)
        {
            behavior.NbBehaviorUse = this.NbCardsToConvert;

            (behavior as ConvertCardNotifBehavior).FromStarEntities = behavior.NodeLevel.BoardGameLayer.StarToLinks[behavior.OwnerCardEntity.ParentStar]
                                                                      .Select(pElem => pElem.StarFrom != behavior.OwnerCardEntity.ParentStar ? pElem.StarFrom : pElem.StarTo)
                                                                      .Where(pElem => pElem.CardSocketed != null && pElem.CardSocketed.Card.CurrentOwner != behavior.OwnerCardEntity.Card.CurrentOwner)
                                                                      .ToList();
        }
        public override void OnBehaviorStart(ACardNotifBehavior behavior)
        {
            behavior.NbBehaviorUse = 1;

            MoveCardNotifBehavior moveCardBehavior = behavior as MoveCardNotifBehavior;

            moveCardBehavior.FromStarEntities = behavior.NodeLevel.BoardGameLayer.StarToLinks[behavior.OwnerCardEntity.ParentStar]
                                                .Select(pElem => pElem.StarFrom != behavior.OwnerCardEntity.ParentStar ? pElem.StarFrom : pElem.StarTo)
                                                .Where(pElem => pElem.CardSocketed != null && pElem.CardSocketed.Card.CanBeMoved).ToList();
        }
Example #7
0
        public override void OnBehaviorStart(ACardNotifBehavior behavior)
        {
            behavior.NbBehaviorUse = 1;

            MoveCardNotifBehavior moveCardBehavior = behavior as MoveCardNotifBehavior;

            moveCardBehavior.FromStarEntities = behavior.NodeLevel.BoardGameLayer.StarSystem
                                                .Where(pElem => pElem.CardSocketed != null &&
                                                       pElem.CardSocketed.Card.CanBeMoved &&
                                                       pElem.CardSocketed.Card.CurrentOwner == behavior.OwnerCardEntity.Card.CurrentOwner &&
                                                       pElem.CardSocketed != behavior.OwnerCardEntity).ToList();
        }
Example #8
0
        protected virtual void OnNotifBehaviorStarted(IBoardNotifBehavior obj)
        {
            lock (this.objectLock)
            {
                if (obj.IsThereBehaviorLabel)
                {
                    ACardNotifBehavior cardNotifBehavior = obj as ACardNotifBehavior;

                    this.CurrentActiveBehavior = new ActiveCardBehavior(cardNotifBehavior.GetType(), cardNotifBehavior.NbBehaviorUse, cardNotifBehavior.StateValue, cardNotifBehavior.OwnerCardEntity.Card.Name);
                }
            }
        }
Example #9
0
 public virtual void OnBehaviorEnd(ACardNotifBehavior behavior)
 {
 }
Example #10
0
 public virtual void OnBehaviorStart(ACardNotifBehavior behavior)
 {
 }
Example #11
0
        public override void OnBehaviorStart(ACardNotifBehavior behavior)
        {
            behavior.NbBehaviorUse = this.NbUse;

            (behavior as DeleteCardNotifBehavior).FromStarEntities = behavior.NodeLevel.BoardGameLayer.StarSystem.Where(pElem => pElem.CardSocketed != null).ToList();
        }
        public override void OnBehaviorCardPicked(ACardNotifBehavior behavior, CardEntity cardEntityPicked)
        {
            CardEntity cardEntity = behavior.NodeLevel.BoardGameLayer.CardEntityPicked;

            (behavior as SwapCardNotifBehavior).ToStarEntities = behavior.NodeLevel.BoardGameLayer.StarSystem.Where(pElem => pElem.CardSocketed != null && pElem.CardSocketed != cardEntity).ToList();
        }
        public override void OnBehaviorStart(ACardNotifBehavior behavior)
        {
            behavior.NbBehaviorUse = 1;

            (behavior as SwapCardNotifBehavior).FromStarEntities = behavior.NodeLevel.BoardGameLayer.StarSystem.Where(pElem => pElem.CardSocketed != null && pElem.CardSocketed.Card.CanBeMoved).ToList();
        }
 public override void OnBehaviorStart(ACardNotifBehavior behavior)
 {
     behavior.NbBehaviorUse = this.NewCardsToAdd.Count;
 }
        public override void OnBehaviorCardPicked(ACardNotifBehavior behavior, CardEntity cardEntityPicked)
        {
            MoveCardNotifBehavior moveCardBehavior = behavior as MoveCardNotifBehavior;

            moveCardBehavior.ToStarEntities = behavior.NodeLevel.BoardGameLayer.StarSystem.Where(pElem => pElem.CardSocketed == null).ToList();
        }
 public void OnBehaviorCardPicked(ACardNotifBehavior behavior, CardEntity cardEntityPicked)
 {
 }
Example #17
0
        public override void OnBehaviorStart(ACardNotifBehavior behavior)
        {
            behavior.NbBehaviorUse = this.NbUse;

            (behavior as ResurrectCardNotifBehavior).FromCardEntities = behavior.NodeLevel.GetLayerFromPlayer(behavior.OwnerCardEntity.Card.CurrentOwner).CardsCemetery.ToList();
        }