Esempio n. 1
0
        public AAIEntity(AAILayer parentLayer, IAIObjectFactory factory, AEntity entity)
            : base(factory)
        {
            this.parentLayer = new WeakReference <AAILayer>(parentLayer);

            this.IsActive = entity.IsActive;
        }
Esempio n. 2
0
        public AAILayer(AIWorld world2D, IAIObjectFactory layerFactory, ALayer layer)
            : base(layerFactory)
        {
            this.parentFactory = layerFactory;

            this.objectToObjectAIs = new Dictionary <AEntity, AAIEntity>();
            this.objectAIToObjects = new Dictionary <AAIEntity, AEntity>();

            //this.focusedEntity2Ds = new HashSet<IHitRect>();

            this.worldAI = new WeakReference <AIWorld>(world2D);

            this.pendingGameEvent = new Queue <GameEventContainer>();
            this.gameEventPeriod  = Time.FromSeconds(2);

            this.parentLayer                = layer;
            this.parentLayer.EntityAdded   += OnEntityAdded;
            this.parentLayer.EntityRemoved += OnEntityRemoved;

            this.parentLayer.PositionChanged += OnPositionChanged;
            this.parentLayer.RotationChanged += OnRotationChanged;

            this.parentLayer.EntityPropertyChanged += OnEntityPropertyChanged;

            this.parentLayer.LevelStateChanged += OnLevelStateChanged;
        }
Esempio n. 3
0
        public override void InitializeLayer(IAIObjectFactory factory)
        {
            base.InitializeLayer(factory);

            this.CardFocused  = null;
            this.CardAwakened = null;

            this.CurrentActiveBehavior = null;
        }
Esempio n. 4
0
        public AICJStarDomain(AAILayer parentLayer, IAIObjectFactory factory, AEntity entity)
            : base(parentLayer, factory, entity)
        {
            CJStarDomain starDomain = entity as CJStarDomain;

            this.StarEntities = new HashSet <AIStarEntity>();

            this.DomainOwnerName = starDomain.DomainOwner != null ?  starDomain.DomainOwner.PlayerName : null;
        }
Esempio n. 5
0
        public virtual void InitializeLayer(IAIObjectFactory factory)
        {
            foreach (AEntity entity in this.parentLayer.Entities)
            {
                this.AddEntity(entity);
            }

            this.pendingGameEvent.Clear();
            this.gameEventTimer = Time.Zero;
        }
Esempio n. 6
0
        public AICardEntity(AAILayer parentLayer, IAIObjectFactory factory, AEntity entity) : base(parentLayer, factory, entity)
        {
            CardEntity cardEntity = entity as CardEntity;

            this.IsSocketed    = cardEntity.ParentStar != null;
            this.IsSelected    = cardEntity.IsSelected;
            this.IsAwakened    = cardEntity.Card.IsAwakened;
            this.CardOwnerName = cardEntity.Card.CurrentOwner.PlayerName;

            this.Value = cardEntity.CardValue;
        }
Esempio n. 7
0
        public override void InitializeLayer(IAIObjectFactory factory)
        {
            this.StarToLinks.Clear();
            this.StarSystem.Clear();
            this.StarLinkSystem.Clear();
            this.StarDomainSystem.Clear();

            this.sourceCardEntities = null;
            this.sourceStarEntities = null;
            this.targetCardEntities = null;
            this.targetStarEntities = null;

            this.cardEntityPicked = null;

            this.nbCardsToPlace = 0;

            base.InitializeLayer(factory);

            foreach (AIStarLinkEntity starLinkEntity in this.StarLinkSystem)
            {
                starLinkEntity.UpdateReference();

                HashSet <AIStarLinkEntity> linksConnectedTo = null;
                if (this.StarToLinks.TryGetValue(starLinkEntity.StarFrom, out linksConnectedTo) == false)
                {
                    linksConnectedTo = new HashSet <AIStarLinkEntity>();

                    this.StarToLinks.Add(starLinkEntity.StarFrom, linksConnectedTo);
                }
                linksConnectedTo.Add(starLinkEntity);

                linksConnectedTo = null;
                if (this.StarToLinks.TryGetValue(starLinkEntity.StarTo, out linksConnectedTo) == false)
                {
                    linksConnectedTo = new HashSet <AIStarLinkEntity>();

                    this.StarToLinks.Add(starLinkEntity.StarTo, linksConnectedTo);
                }
                linksConnectedTo.Add(starLinkEntity);
            }

            foreach (AICJStarDomain starDomainAI in this.StarDomainSystem)
            {
                starDomainAI.UpdateReference();
            }
        }
Esempio n. 8
0
        public AIBoardGameLayer(AIWorld world2D, IAIObjectFactory layerFactory, BoardGameLayer layer)
            : base(world2D, layerFactory, layer)
        {
            this.StarToLinks = new Dictionary <AIStarEntity, HashSet <AIStarLinkEntity> >();

            this.StarSystem = new HashSet <AIStarEntity>();

            this.StarLinkSystem = new HashSet <AIStarLinkEntity>();

            this.StarDomainSystem = new HashSet <AICJStarDomain>();

            layer.CardPicked += this.OnCardPicked;
            //layer.CardUnpicked += this.OnCardUnPicked;

            layer.SourceStarEntitiesSet += OnSourceStarEntitiesSet;
            layer.TargetStarEntitiesSet += OnTargetStarEntitiesSet;

            layer.NbCardsToPlaceChanged += OnNbCardsToPlaceChanged;
        }
Esempio n. 9
0
        public override void InitializeLayer(IAIObjectFactory factory)
        {
            this.cardsDeck.Clear();
            this.cardsCemetery.Clear();
            this.cardsHand.Clear();

            this.pileFocused = (this.parentLayer as BoardPlayerLayer).CardPileFocused;

            base.InitializeLayer(factory);

            foreach (AAIEntity entity in this.objectToObjectAIs.Values)
            {
                if (entity is AICardEntity)
                {
                    AICardEntity cardEntity2D = entity as AICardEntity;

                    this.cardsDeck.Add(cardEntity2D);
                }
            }
        }
Esempio n. 10
0
        public AIBoardNotifLayer(AIWorld world2D, IAIObjectFactory layerFactory, BoardNotifLayer layer)
            : base(world2D, layerFactory, layer)
        {
            this.CardsHand = new List <AICardEntity>();

            layer.CardCreated += OnCardCreated;
            layer.CardRemoved += OnCardRemoved;

            layer.CardPicked   += OnCardPicked;
            layer.CardUnpicked += OnCardUnpicked;

            layer.CardFocused += OnCardFocused;

            layer.CardAwakened += OnCardAwakened;

            layer.NotifBehaviorStarted      += OnNotifBehaviorStarted;
            layer.NotifBehaviorPhaseChanged += OnNotifBehaviorPhaseChanged;
            layer.NotifBehaviorUseChanged   += OnNotifBehaviorUseChanged;
            layer.NotifBehaviorEnded        += OnNotifBehaviorEnded;
        }
Esempio n. 11
0
        public AIBoardPlayerLayer(AIWorld world2D, IAIObjectFactory layerFactory, BoardPlayerLayer layer)
            : base(world2D, layerFactory, layer)
        {
            this.cardsDeck     = new List <AICardEntity>();
            this.cardsCemetery = new List <AICardEntity>();
            this.cardsHand     = new List <AICardEntity>();

            layer.CardDrawn            += OnCardDrawn;
            layer.NbCardsToDrawChanged += OnNbCardToDrawsChanged;

            layer.CardFocused += OnCardFocused;

            layer.CardPicked   += OnCardPicked;
            layer.CardUnpicked += OnCardUnpicked;

            layer.PileFocusedChanged += OnPileFocusedChanged;

            layer.CardDestroyed += OnCardDestroyed;
            // layer.CardResurrected += OnCardResurrected;

            layer.SourceCardEntitiesSet += OnSourceCardEntitiesSet;
        }
Esempio n. 12
0
 public AIStarLinkEntity(AAILayer parentLayer, IAIObjectFactory factory, AEntity entity)
     : base(parentLayer, factory, entity)
 {
 }
Esempio n. 13
0
 public virtual void Dispose()
 {
     this.parentFactory = null;
 }
Esempio n. 14
0
 public AAIObject(IAIObjectFactory parentFactory)
 {
     this.parentFactory = parentFactory;
 }