Beispiel #1
0
        private void MoveInvoker(CardAgent refCardAgent)
        {
            if (!_isPhysicsMoving)
            {
                _isPhysicsMoving = true;

                // 获取相对的位置
                Vector2 selfPosition = GetComponent <RectTransform>().anchoredPosition;
                Vector2 refPosition  = refCardAgent.GetComponent <RectTransform>().anchoredPosition;
                Vector2 to           = (selfPosition - refPosition).normalized;

                Vector2 to2 = to * 100 * _physicesEffectFactor;

                GetComponent <Rigidbody2D>().AddForce(to2);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 点击搜索结果的 Item
        /// </summary>
        /// <param name="searchBean"></param>
        private void OnClickSearchResultItem(SearchBean searchBean)
        {
            //  将 SearchAgent 关闭
            CloseSearchAgentContainer(true);
            CloseSearchResultContainer(true);


            // 将card的显示关系打开
            _cardAgent.RecoverContainerAfterSearch();

            _cardAgent.CardStatus = CardStatusEnum.OBSOLETE;

            //_manager.agentManager.RemoveItemFromEffectItems(_cardAgent); // 将影响实体清除

            //  打开新的卡片
            //ItemsFactory itemsFactory = GetItemFactory(searchBean.type);
            Vector3 genVector3 = _cardAgent.GetComponent <RectTransform>().anchoredPosition;

            CardAgent cardAgent = _manager.operateCardManager.CreateNewOperateCard(searchBean.id, searchBean.type, genVector3, _cardAgent.OriginAgent);

            //itemsFactory.GenerateCardAgent(genVector3, null, searchBean.id, true);
            cardAgent.GoToFront(() => {
            });
        }
Beispiel #3
0
        /// <summary>
        ///  创建一个新的操作卡片
        /// </summary>
        /// <param name="dataId">数据ID</param>
        /// <param name="dataType">数据类型</param>
        public CardAgent CreateNewOperateCard(int dataId, DataTypeEnum dataType, Vector3 position, FlockAgent refAgent)
        {
            CloseCardWhenOverNumber();


            CardAgent cardAgent = OperateCardFactoryInstance.
                                  Generate(_manager, position, _container, dataId, dataType, refAgent);

            refAgent.cardAgent = cardAgent;

            Vector3 scaleVector3 = new Vector3(0.1f, 0.1f, 0.1f);

            cardAgent.GetComponent <RectTransform>().localScale = scaleVector3;
            cardAgent.CardStatus = CardStatusEnum.GENERATE;

            EffectAgents.Add(cardAgent);

            int iskinect = _manager.magicSceneManager.GetCurrentScene().GetSceneConfig().isKinect;

            cardAgent.SetMoveBehavior(_manager.collisionMoveBehaviourFactory.GetMoveBehavior(_manager.collisionBehaviorConfig.behaviourType, iskinect));
            _manager.collisionManager.AddCollisionEffectAgent(cardAgent);

            return(cardAgent);
        }
        public static CardAgent Generate(MagicWallManager magicWallManager, Vector3 position
                                         , Transform parent, int dataId, DataTypeEnum dataType, FlockAgent refFlockAgent)
        {
            IDaoService daoService = magicWallManager.daoServiceFactory.GetDaoService(refFlockAgent.daoTypeEnum);

            OperateCardData cardData   = null;
            CardAgent       cardPrefab = null;

            //magicWallManager.daoService.getac
            if (dataType == DataTypeEnum.Enterprise)
            {
                Enterprise enterprise = daoService.GetEnterpriseById(dataId);

                Debug.Log("enterprise : " + (enterprise == null));

                var activities = daoService.GetActivitiesByEnvId(enterprise.Ent_id);
                var products   = daoService.GetProductsByEnvId(enterprise.Ent_id);
                var videos     = daoService.GetVideosByEnvId(enterprise.Ent_id);
                var catalogs   = daoService.GetCatalogs(enterprise.Ent_id);
                OperateCardDataCross operateCardDataCross = EnterpriseAdapter
                                                            .Transfer(enterprise, activities, products, videos, catalogs);
                //Debug.Log(operateCardDataCross.ToString());

                //if (CheckIsSimple(operateCardDataCross))
                //{
                //    cardPrefab = magicWallManager.operateCardManager.singleCardPrefab;
                //    cardData = operateCardDataCross;

                //    Debug.Log("Generate 单个企业卡片");
                //}
                //else
                //{
                cardPrefab = magicWallManager.operateCardManager.crossCardPrefab;
                // 单个卡片的逻辑
                //OperateCardDataSingle operateCardDataSingle = new OperateCardDataSingle();

                // Debug.Log("Generate 正常企业卡片");
                cardData = operateCardDataCross;

                //cardData = (OperateCardDataSingle)operateCardDataCross;
                //}
            }
            else if (dataType == DataTypeEnum.Product || dataType == DataTypeEnum.Wine)
            {
                Product    product    = daoService.GetProductDetail(dataId);
                Enterprise enterprise = daoService.GetEnterpriseById(product.Ent_id);

                Debug.Log("enterprise : " + enterprise);

                //Debug.Log("enterprise to null : " + (enterprise == null));


                OperateCardDataSlide operateCardDataSlide = ProductAdapter.Transfer(product, enterprise);
                cardPrefab = magicWallManager.operateCardManager.sliceCardPrefab;
                cardData   = operateCardDataSlide;
            }
            else
            {
                Activity             activity             = daoService.GetActivityDetail(dataId);
                Enterprise           enterprise           = daoService.GetEnterpriseById(activity.Ent_id);
                OperateCardDataSlide operateCardDataSlide = ActivityAdapter.Transfer(activity, enterprise);
                cardPrefab = magicWallManager.operateCardManager.sliceCardPrefab;
                cardData   = operateCardDataSlide;
            }

            // 创建card
            CardAgent cardAgent = Instantiate(cardPrefab, parent);

            cardAgent.GetComponent <Transform>().position = position;
            //cardAgent.DataId = dataId;
            cardAgent.InitComponent(magicWallManager, dataId, dataType, position, refFlockAgent);
            cardAgent.InitData(cardData);
            return(cardAgent);
        }