Ejemplo n.º 1
0
        protected override void DerivedWash(DLink pLink)
        {
            Debug.Assert(pLink != null);
            AlienNode pNode = (AlienNode)pLink;

            pNode.Wash();
        }
Ejemplo n.º 2
0
        public static AlienNode Add(GameObject pObj)
        {
            Debug.Assert(pObj != null);


            AlienManager pMan = AlienManager.PrivGetInstance();

            Debug.Assert(pMan != null);

            if (pObj.type == Component.Container.LEAF)
            {
                pMan.numAliveAliens--;
            }

            // Take a node out from Reserve list.
            // This node is washed in BasePopNode().

            AlienNode pNode = (AlienNode)pMan.BasePopNode();

            Debug.Assert(pNode != null);

            pNode.Set(pObj);
            pMan.BaseSortedAdd(pNode);
            return(pNode);
        }
Ejemplo n.º 3
0
        protected override DLink DerivedCreateNode()
        {
            DLink pNode = new AlienNode();

            Debug.Assert(pNode != null);

            return(pNode);
        }
Ejemplo n.º 4
0
        public static void Remove(AlienNode pNode)
        {
            AlienManager pMan = AlienManager.PrivGetInstance();

            Debug.Assert(pMan != null);
            Debug.Assert(pNode != null);
            pMan.BaseRemove(pNode);
        }
Ejemplo n.º 5
0
        public static void ResetAllAlienGrid()
        {
            AlienManager pMan = AlienManager.PrivGetInstance();

            Debug.Assert(pMan != null);

            AlienNode     pCurr = (AlienNode)pMan.BaseGetActive();
            AlienNode     pNext;
            GameObject    pParent;
            GameObject    pObj;
            AlienCategory pAlien;

            while (pCurr != null)
            {
                pNext = (AlienNode)pCurr.pNext;

                // Get Alien object and its parent. The parent will be AlienGroup or AlienColumn.
                pObj = pCurr.GetAlienObject();

                pParent = (GameObject)pCurr.GetAlienObject().pParent;

                pObj.isDead = false;

                pObj.pPrev = null;
                pObj.pNext = null;

                pParent.Add(pObj);

                if (pObj.type == Component.Container.LEAF)
                {
                    pAlien = (AlienCategory)pObj;

                    pObj.x = pAlien.originX;
                    pObj.y = pAlien.originY;
                    SpriteBatch pSB_GameSprite = SpriteBatchManager.Find(SpriteBatch.Name.GameSprites);
                    Debug.Assert(pSB_GameSprite != null);

                    pSB_GameSprite.Attach(pObj.pProxySprite);
                    // pMan.pSB_GameSprite.Attach(pObj.pProxySprite);
                }

                SpriteBatch pSB_Collsion = SpriteBatchManager.Find(SpriteBatch.Name.BoxSprites);
                pSB_Collsion.Attach(pObj.pColObject.pBoxSprite);
                // pMan.pSB_CollisionSprite.Attach(pObj.pColObject.pBoxSprite);

                AlienManager.Remove(pCurr);

                DLink p = pMan.BaseGetActive();

                pCurr = pNext;
            }

            // Checked new Alien Hierarchy is good
            //  pMan.pSB_GameSprite.Dump();
            //  pMan.pSB_CollisionSprite.Dump();
        }
Ejemplo n.º 6
0
        public static void PrintMe()
        {
            AlienManager pMan = AlienManager.PrivGetInstance();

            Debug.Assert(pMan != null);

            AlienNode pNode = (AlienNode)pMan.BaseGetActive();

            while (pNode != null)
            {
                pNode.PrintMe();
                pNode = (AlienNode)pNode.pNext;
            }
        }
Ejemplo n.º 7
0
        protected override bool DerivedCompare(DLink pLinkA, DLink pLinkB)
        {
            Debug.Assert(pLinkA != null);
            Debug.Assert(pLinkB != null);

            AlienNode pDataA = (AlienNode)pLinkA;
            AlienNode pDataB = (AlienNode)pLinkB;

            Boolean status = false;

            if (pDataA.index == pDataB.index)
            {
                status = true;
            }

            return(status);
        }
Ejemplo n.º 8
0
 protected override void DerivedDumpNode(DLink pLink)
 {
     Debug.Assert(pLink != null);
     AlienNode pData = (AlienNode)pLink;
     //pData.Dump();
 }