示例#1
0
        public void AddJiangBei(int count, Transform posParent, Transform targetPosParent, float totalDealy)
        {
            float delay = 0.5f;
            List <FlyingBezier> list = new List <FlyingBezier>();

            if (count > 0)
            {
                PrizeAnimationCount++;
            }

            for (int i = 0; i < count; i++)
            {
                FlyingBezier obj = null;

                if (_poolsJiangBei.Count > 0)
                {
                    obj = _poolsJiangBei.Dequeue();
                }
                else
                {
                    obj = FightMgr.Instance.LoadAndInstantiate(FightDefine.Prefab_Particle_JiangBeiFlying).GetComponent <PrizeFlying>();                   // ResourceMgr.Instance.LoadAndInstanceGameObjectFromPreload(FightDefine.ParticleCardCrush);
                }
                list.Add(obj);

                obj.transform.SetParent(posParent, false);
                obj.transform.localPosition = new Vector3(Random.Range(-10f, 10f), Random.Range(-10f, 10f), 0);
                obj.transform.SetParent(targetPosParent);
                obj.gameObject.SetActive(false);
                obj.Speed = 0.64f;
                (obj as PrizeFlying).PlayPrize(delay, _poolsJiangBei, list, OnPrizeAnimationFinish, totalDealy);
                delay += 0.1f;
            }
        }
示例#2
0
        private void DoFlyBlockToMyself()
        {
            _isDoSkillToSlot = true;

            var listTarget = _filedMgr.FindFlyBlockTargetSlots(_FlyBlockToMyCnt);

            List <FlyingBezier> list = new List <FlyingBezier>();

            for (int i = 0; i < listTarget.Count; i++)
            {
                FlyingBezier         obj  = null;
                Queue <FlyingBezier> pool = null;
                bool isBlock = true;                //Random.Range(1,1000) <= 750;
                if (isBlock)
                {
                    //木块
                    if (_poolsBlock.Count > 0)
                    {
                        obj = _poolsBlock.Dequeue();
                    }
                    else
                    {
                        obj = FightMgr.Instance.LoadAndInstantiate(FightDefine.Prefab_Flying_Block).GetComponent <BlockFlyToOpp>();                       // ResourceMgr.Instance.LoadAndInstanceGameObjectFromPreload(FightDefine.ParticleCardCrush);
                    }

                    pool = _poolsBlock;
                }

                obj.transform.SetParent(goBossOpp.transform, false);
                obj.transform.localPosition = new Vector3(Random.Range(-46f, 46f), Random.Range(-46f, 46f), 0);
                obj.transform.SetParent(listTarget[i].transform);
                obj.gameObject.SetActive(false);
                obj.Speed = 0.8f;
                (obj as BlockFlyToOpp).Play(i * 0.3f, pool, list, false,
                                            () =>
                {
                    SlotGravity.Reshading();
                    _isDoSkillToSlot = false;
                    EventCounter();
                },
                                            listTarget[i],
                                            (targetSlot) =>
                {
                    _filedMgr.CreateOneBlock(targetSlot);
                });
            }

            _FlyBlockToMyCnt = 0;
        }
示例#3
0
        public void AddEnergySmall(Transform posParent, E_AddEnergyType addType)
        {
//			if(!FightMgr.Instance.isPlaying) return;

            if (FightMgr.Instance.limitationRoutineIsOver)
            {
                //游戏结束了
                return;
            }

            int   count = GetEnergyCount(addType);
            float delay = 0f;
            List <FlyingBezier> list = new List <FlyingBezier>();

            for (int i = 0; i < count; i++)
            {
                FlyingBezier obj = null;

                if (_poolsEnergy.Count > 0)
                {
                    obj = _poolsEnergy.Dequeue();
                }
                else
                {
                    obj = FightMgr.Instance.LoadAndInstantiate(FightDefine.Prefab_Particle_EnergySmall).GetComponent <EnergySmall>();                   // ResourceMgr.Instance.LoadAndInstanceGameObjectFromPreload(FightDefine.ParticleCardCrush);
                }
                list.Add(obj);

                obj.transform.SetParent(posParent, false);
                obj.transform.localPosition = new Vector3(Random.Range(-26f, 26f), Random.Range(-26f, 26f), 0);
                obj.transform.SetParent(FieldMgr.MyBossPosEffect);
                obj.gameObject.SetActive(false);
                obj.Speed = 0.8f;
                (obj as EnergySmall).PlayEnergySmall(delay, _poolsEnergy, list, addType, OnFinishEnergySmall);
                delay += 0.1f;
            }

//			FightMgr.Instance.StartCoroutine(AddEnergy(addType,list));
        }
示例#4
0
        /// <summary>
        /// 播放技能效果
        /// </summary>
        /// <param name="skill">Skill.</param>
        public void PlaySkillEffect(int skillId, bool isMyAttack)
        {
//			isMyAttack = !isMyAttack;

            SkillModule skill = SkillModuleMgr.Instance.GetSkill(skillId);

            if (skill == null)
            {
                DebugUtil.Error("未找到skill,id = " + skillId);
            }

            if (skill.SkillTypeDetail == E_SkillTypeDetail.AddMoves)
            {
                if (isMyAttack)
                {
                    //增加自己步数
                    int addMoves = int.Parse(skill.EffectNum);
                    EventDispatcher.TriggerEvent <int, bool>(UIFight.AddMoves, addMoves, true);
                }
                else
                {
                    ShowMsg(FightDefine.E_NoteMsgType.OppUseAddMoves);
                }
            }
            else if (skill.SkillTypeDetail == E_SkillTypeDetail.AddBlocks)
            {
                if (isMyAttack)
                {
                    //自己飞向对方
                    List <FlyingBezier> list = new List <FlyingBezier>();
                    int count = int.Parse(skill.EffectNum);
                    for (int i = 0; i < count; i++)
                    {
                        FlyingBezier         obj  = null;
                        Queue <FlyingBezier> pool = null;
                        bool isBlock = true;                        //Random.Range(1,1000) <= 750;
                        if (isBlock)
                        {
                            //木块
                            if (_poolsBlock.Count > 0)
                            {
                                obj = _poolsBlock.Dequeue();
                            }
                            else
                            {
                                obj = FightMgr.Instance.LoadAndInstantiate(FightDefine.Prefab_Flying_Block).GetComponent <BlockFlyToOpp>();                               // ResourceMgr.Instance.LoadAndInstanceGameObjectFromPreload(FightDefine.ParticleCardCrush);
                            }

                            pool = _poolsBlock;
                        }
//						else
//						{
//							//杂草
//							if(_poolsBlockWeed.Count > 0)
//							{
//								obj = _poolsBlockWeed.Dequeue();
//							}
//							else
//							{
//								obj = FightMgr.Instance.LoadAndInstantiate(FightDefine.Prefab_Flying_Weed).GetComponent<BlockFlyToOpp>();// ResourceMgr.Instance.LoadAndInstanceGameObjectFromPreload(FightDefine.ParticleCardCrush);
//							}
//
//							pool = _poolsBlockWeed;
//						}
                        list.Add(obj);

                        obj.transform.SetParent(_energyMgr.transform, false);
                        obj.transform.localPosition = new Vector3(Random.Range(-46f, 46f), Random.Range(-46f, 46f), 0);
                        obj.transform.SetParent(goBossOpp.transform);
                        obj.gameObject.SetActive(false);
                        obj.Speed = 0.8f;

                        (obj as BlockFlyToOpp).Play(i * 0.3f, pool, list, true, null, null, null);
                    }
                }
                else
                {
                    //对方往我棋盘飞
                    _FlyBlockToMyCnt = int.Parse(skill.EffectNum);
                }
            }
            else if (skill.SkillTypeDetail == E_SkillTypeDetail.ForbidAttack)
            {
                if (isMyAttack)
                {
                    //不管
                }
                else
                {
                    IsIceBlcok = true;
                    //获取冰封路径
                    var dicSlot = _filedMgr.FindIcePath();

                    //停止原来协程
                    if (_iceBlock != null)
                    {
                        StopCoroutine(_iceBlock);
                    }

                    //开始冰封
                    _iceBlock = StartCoroutine(ReIceBlockTimer(dicSlot, float.Parse(skill.EffectNum)));

                    //恢复冰封协程
                    StartCoroutine(IceSlot(dicSlot));

                    ShowMsg(FightDefine.E_NoteMsgType.ShowIceNotice, skill.Effect);
                }
            }
        }