Exemplo n.º 1
0
        private EffectObject CreateEffect()
        {
            EffectObject eo = new EffectObject(filename, 0, 0, resourceManager, device);

            eo.Finish += new EventHandler(eo_Finish);
            return(eo);
        }
Exemplo n.º 2
0
    public void LinkTarget(Character beLinker)
    {
        target = beLinker;

        string eff = Effect;

        if (buffdata.Bind == "di")
        {
            PlaySelfEffect();
            //ribbon = beLinker.PlayEffect(Effect, -1f);
        }
        else
        {
            ribbon = owner.PlayEffect(eff, -1, delegate(GameObject obj)
            {
                GameObject begin = Helper.FindObject(obj, "Begin_01");
                GameObject end = Helper.FindObject(obj, "End_01");
                GameObject bone1 = owner.FindBone("Bip01");//Helper.FindObject(self.gameObject, "Bip01", false);
                GameObject bone2 = beLinker.FindBone("Bip01");//Helper.FindObject(beLinker.gameObject, "Bip01", false);
                begin.transform.position = bone1.transform.position;
                begin.transform.parent = bone1.transform;
                end.transform.position = bone2.transform.position;
                end.transform.parent = bone2.transform;
            });
        }
    }
Exemplo n.º 3
0
    protected void Fire(Vector3 firePos, Character target, string bulletModel)
    {
        Transform    bullet    = null;
        EffectObject effObj    = PlayEffect(bulletModel, -1f);
        GameObject   bulletObj = effObj.obj;//Instantiate(Resources.Load(bulletModel)) as GameObject;

        bullet          = bulletObj.transform;
        bullet.position = firePos;

        Vector3 destPos = new Vector3(target.position.x, 0f, target.position.z);
        Vector3 dir     = new Vector3(destPos.x - bullet.position.x, 0f, destPos.z - bullet.position.z);

        dir.Normalize();
        bullet.rotation = Quaternion.FromToRotation(new Vector3(0f, 0f, 1f), new Vector3(dir.x, 0f, dir.z));

        // 子弹碰撞检测
        float bulletSpeed = BulletSpeed;

        Move(bullet, destPos, bulletSpeed, delegate
        {
            // 目标伤害计算
            CalcDamage(attacker, target, Damage, 0f);
            DestroyEff(effObj);
            if (--bulletNum <= 0)
            {
                if (skilldata.Tskill != -1)
                {
                    attacker.target = target;
                    DoTskill();
                }
                End();
            }
        });
    }
Exemplo n.º 4
0
    public GameObject PlayEffect(E_EFFECT effect, Vector3 pos, Quaternion quat, bool isInstance = true, float DestroyTime = 2.0f, Transform tr = null)
    {
        GameObject effectObject = PoolingManager.Instance.PopFromPool(effect.ToString(), pos, quat);

        if (effectObject == null)
        {
            return(null);
        }

        EffectObject effectObj = Common.GetOrAddComponent <EffectObject>(effectObject);

        if (effectObj != null)
        {
            if (isInstance)
            {
                effectObj.DestroyEffect(DestroyTime);
            }

            if (tr != null)
            {
                effectObj.AttachToTransform(tr, Vector3.zero);
            }
        }

        return(effectObject);
    }
Exemplo n.º 5
0
        /// <summary>
        /// 前回動かした駒の位置を設定します。
        /// </summary>
        private void UpdatePrevMovedCell()
        {
            if (this.prevMovedCell != null)
            {
                Container.RemoveBanEffect(this.prevMovedCell);
                this.prevMovedCell = null;
            }

            if (!HasEffectFlag(EffectFlag.PrevCell))
            {
                return;
            }

            var board = (Container != null ? Container.Board : null);

            if (board != null && board.LastMove != null)
            {
                var position = board.LastMove.DstSquare;

                var cell = EffectTable.PrevMovedCell.LoadEffect();
                if (cell != null)
                {
                    cell.DataContext = CreateCellContext(position);

                    Container.AddBanEffect(cell);
                    this.prevMovedCell = cell;
                }
            }
        }
Exemplo n.º 6
0
    void Fear(Character target)
    {
        effKeepObj = target.PlayEffect(KeepEffect, -1f);

        destPos = target.position;
        List <Character> allEnemy = Fight.Inst.GetAllCharacter(attacker.camp == CampType.Friend ? CampType.Enemy : CampType.Friend);

        for (int i = 0; i < GameMgr.GamePlayer.MAXOPENSLOTNUM; ++i)
        {
            bool empty = true;
            for (int n = allEnemy.Count - 1; n >= 0; --n)
            {
                Character e = allEnemy[n];
                if (e.IsDead == false && e.slot == i)
                {
                    empty = false;
                    break;
                }
            }
            int slot = i;
            if (empty && Fight.Inst.HasSlotPos(target.camp, slot))
            {
                destPos  = Fight.Inst.GetSlotPos(target.camp, slot);
                destSlot = i;
                break;
            }
        }

        StartCoroutine(FearMove(target, target.position, 4, 0f));
    }
Exemplo n.º 7
0
    void Fear(Character target)
    {
        effKeepObj = target.PlayEffect(KeepEffect, -1f);

        destPos = target.position;
        List<Character> allEnemy = Fight.Inst.GetAllCharacter(attacker.camp == CampType.Friend ? CampType.Enemy : CampType.Friend);

        for (int i = 0; i < GameMgr.GamePlayer.MAXOPENSLOTNUM; ++i)
        {
            bool empty = true;
            for (int n = allEnemy.Count - 1; n >= 0; --n)
            {
                Character e = allEnemy[n];
                if (e.IsDead == false && e.slot == i)
                {
                    empty = false;
                    break;
                }
            }
            int slot = i;
            if (empty && Fight.Inst.HasSlotPos(target.camp, slot))
            {
                destPos = Fight.Inst.GetSlotPos(target.camp, slot);
                destSlot = i;
                break;
            }
        }

        StartCoroutine(FearMove(target, target.position, 4, 0f));
    }
Exemplo n.º 8
0
        void eo_Finish(object sender, EventArgs e)
        {
            EffectObject eo = sender as EffectObject;

            EffectList.Remove(eo);
            eo.Finish -= new EventHandler(eo_Finish);
        }
Exemplo n.º 9
0
    public void PlayEffect(GameObject _obj, string _effname, bool _doloop = false)
    {
        var eff = new EffectObject(_obj, _effname, _doloop);

        Play(eff);
        effects.Add(eff);
    }
Exemplo n.º 10
0
    protected void FireBullet(Vector3 destPos, string fireBone, string bulletModel)
    {
        Transform    bullet    = null;
        GameObject   hand      = attacker.FindBone(fireBone); //Helper.FindObject(gameObject, fireBone, false);
        EffectObject effObj    = PlayEffect(bulletModel, -1f);
        GameObject   bulletObj = effObj.obj;                  //Instantiate(Resources.Load(bulletModel)) as GameObject;

        bullet          = bulletObj.transform;
        bullet.position = new Vector3(hand.transform.position.x, hand.transform.position.y, hand.transform.position.z);

        Vector3 dir = new Vector3(destPos.x - bullet.position.x, destPos.y - bullet.position.y, destPos.z - bullet.position.z);

        dir.Normalize();
        bullet.rotation = Quaternion.FromToRotation(new Vector3(0f, 0f, 1f), new Vector3(dir.x, dir.y, dir.z));

        // 子弹碰撞检测
        float bulletSpeed = BulletSpeed;

        Move(bullet, destPos, bulletSpeed, delegate
        {
            OnCollision(destPos);

            DestroyEff(effObj);
            float time = attacker.GetAnimLength("hit");
            End(time);
        });
    }
Exemplo n.º 11
0
    public void LinkTarget(Character beLinker)
    {
        target = beLinker;

        string eff = Effect;

        if (buffdata.Bind == "di")
        {
            PlaySelfEffect();
            //ribbon = beLinker.PlayEffect(Effect, -1f);
        }
        else
        {
            ribbon = owner.PlayEffect(eff, -1, delegate(GameObject obj)
            {
                GameObject begin         = Helper.FindObject(obj, "Begin_01");
                GameObject end           = Helper.FindObject(obj, "End_01");
                GameObject bone1         = owner.FindBone("Bip01");    //Helper.FindObject(self.gameObject, "Bip01", false);
                GameObject bone2         = beLinker.FindBone("Bip01"); //Helper.FindObject(beLinker.gameObject, "Bip01", false);
                begin.transform.position = bone1.transform.position;
                begin.transform.parent   = bone1.transform;
                end.transform.position   = bone2.transform.position;
                end.transform.parent     = bone2.transform;
            });
        }
    }
Exemplo n.º 12
0
    protected IEnumerator _MoveTo(Character target)
    {
        // 播放动画和特效
        float singTime = attacker.GetAnimLength(SingAnim);

        PlaySingAnimAndEffect();

        yield return(new WaitForSeconds(singTime));

        effObj = PlayEffect(attacker, KeepEffect, -1);

        //向目标移动
        Vector3 dest = new Vector3(target.position.x, target.position.y, target.position.z);
        Vector3 dir;

        if (rangeType == RangeType.Single)
        {
            dir = attacker.position - dest;
        }
        else
        {
            dir = target.direction;
        }
        dir.Normalize();
        dest = dest + dir * CalcRadius(attacker, target);
        float d = Vector3.Distance(dest, attacker.position);

        runAnim = KeepAnim;
        float animLen = attacker.GetAnimLength(runAnim);

        moveSpeed = BulletSpeed;//d / animLen;
        float animSpeed = animLen / (d / moveSpeed);

        MoveTo(dest, animSpeed, OnAttackBegin);
    }
Exemplo n.º 13
0
    IEnumerator Sing(float singTime)
    {
        yield return(new WaitForSeconds(singTime));

        ribbon = PlayEffect(attacker, KeepEffect, -1);
        MoveTo(targetChar);
    }
Exemplo n.º 14
0
 public SongNameComponent(PPDDevice device, PPDFramework.Resource.ResourceManager resourceManager, bool isSelected) : base(device)
 {
     AddChild(folder = new PictureObject(device, resourceManager, Utility.Path.Combine("folder.png")));
     AddChild(ac     = new PictureObject(device, resourceManager, Utility.Path.Combine("ac.png"))
     {
         Position = new Vector2(30, -10)
     });
     AddChild(ft = new PictureObject(device, resourceManager, Utility.Path.Combine("ft.png"))
     {
         Position = new Vector2(70, -10)
     });
     AddChild(perfect = new PictureObject(device, resourceManager, Utility.Path.Combine("perfect.png"))
     {
         Position = new Vector2(110, -10)
     });
     AddChild(text = new TextureString(device, "", 20, 390, PPDColors.White)
     {
         Position = new Vector2(40, 5)
     });
     if (isSelected)
     {
         anim = new EffectObject(device, resourceManager, Utility.Path.Combine("selectback.etd"))
         {
             PlayType  = Effect2D.EffectManager.PlayType.Loop,
             Alignment = EffectObject.EffectAlignment.TopLeft
         };
         anim.Play();
         AddChild(anim);
     }
     else
     {
         back = new PictureObject(device, resourceManager, Utility.Path.Combine("selectback.png"));
         AddChild(back);
     }
 }
Exemplo n.º 15
0
        private void LoadAttributes()
        {
            Attributes = new List <ShaderData.Attribute>();
            int count = 0;

            GL.GetProgram(program, GetProgramParameterName.ActiveAttributes, out count);

            int maxNameLength = 0;

            GL.GetProgram(program, GetProgramParameterName.ActiveAttributeMaxLength, out maxNameLength);
            StringBuilder nameData = new StringBuilder(maxNameLength);

            for (int attrib = 0; attrib < count; ++attrib)
            {
                int arraySize         = 0;
                ActiveAttribType type = ActiveAttribType.None;
                int actLen            = 0;
                GL.GetActiveAttrib(program, attrib, maxNameLength, out actLen, out arraySize, out type, nameData);
                ShaderData.Attribute attribute = new ShaderData.Attribute();
                attribute.name  = nameData.ToString();
                attribute.index = 0;
                MojoShader.MOJOSHADER_usage usage;
                if (usageMapping.TryGetValue(attribute.name, out usage))
                {
                    attribute.usage = EffectObject.ToXNAVertexElementUsage(usage);
                }


                Attributes.Add(attribute);

                nameData.Clear();
            }
        }
Exemplo n.º 16
0
        public MenuSelectSong(Device device, Sprite sprite, Menu m, string directory)
        {
            this.device    = device;
            this.sprite    = sprite;
            this.m         = m;
            state          = State.NotAppeared;
            Focused        = true;
            resource       = new Dictionary <string, ImageResource>();
            pictureobjects = new ArrayList();
            anim           = new EffectObject("img\\default\\selectback.etd", 0, 0, resource, device);
            anim.PlayType  = Effect2D.EffectManager.PlayType.Loop;
            anim.Alignment = EffectObject.EffectAlignment.TopLeft;
            anim.Play();
            string        filename = "img\\default\\selectback.png";
            ImageResource p        = new ImageResource(filename, device);

            height = p.Height;
            width  = p.Width;
            resource.Add(filename, p);
            back     = new PictureObject(filename, 800, 0, resource, device);
            filename = "img\\default\\folder.png";
            p        = new ImageResource(filename, device);
            resource.Add(filename, p);
            folder = new PictureObject(filename, 0, 0, resource, device);
        }
    public void FireEffect(int effectIndex)
    {
        GameObject effectObjectInstance = Instantiate(effectObjects[effectIndex]);

        EffectObject effect = effectObjectInstance.GetComponent <EffectObject>();

        if (effect.parentToTransform)
        {
            effectObjectInstance.transform.SetParent(effectObjectParent, false);
        }
        else
        {
            effectObjectInstance.transform.position = effectObjectParent.position;
        }

        if (effect.isProjectile)
        {
            effect.owner = transform;
            effect.SetTargetTransform(effectTargetTransform);
        }
        else
        {
            effect.owner = transform;
        }
    }
Exemplo n.º 18
0
        /// <summary>
        /// エフェクトを追加します。
        /// </summary>
        private void AddEffect(EffectObject effect, Square square)
        {
            if (effect == null)
            {
                return;
            }

            // 効果音を調整します。
            if (!IsUseEffectSound)
            {
                effect.StartSoundPath   = null;
                effect.StartSoundVolume = 0.0;
            }
            else
            {
                var percent = EffectVolume;

                effect.StartSoundVolume *= MathEx.Between(0, 100, percent) / 100.0;
            }

            WPFUtil.UIProcess(() =>
            {
                effect.DataContext = CreateContext(square);

                Container.AddEffect(effect);
            });
        }
Exemplo n.º 19
0
 public void AddEffect(EffectObject effect)
 {
     if (!effects.Contains(effect))
     {
         effects.Add(effect);
     }
 }
Exemplo n.º 20
0
    // ========== Public Methods ==========
    public GameObject GetObject(EffectObjectType type)
    {
        GameObject createdObject = null;

        foreach (GameObject obj in _pool)
        {
            // LogUtils.instance.Log(GetClassName(), "GET_OBJECT", obj.activeSelf.ToString());
            EffectObject baseObject = obj.GetComponent <EffectObject>();
            if (baseObject != null && baseObject.type == type && obj.activeSelf == false)
            {
                // LogUtils.instance.Log(GetClassName(), "GetObject", obj.activeSelf.ToString());
                createdObject = obj;
                break;
            }
        }

        if (createdObject == null)
        {
            createdObject = CreateObject(type);
        }

        if (createdObject != null)
        {
            createdObject.transform.position = new Vector3(-100, -100, 0);
            createdObject.SetActive(true);
        }
        return(createdObject);
    }
Exemplo n.º 21
0
    IEnumerator Sing(float singTime)
    {
        yield return new WaitForSeconds(singTime);

        ribbon = attacker.PlayEffect(KeepEffect, -1f);
        MoveTo(targetChar);
    }
Exemplo n.º 22
0
    // ========== Private Methods ==========
    private GameObject CreateObject(EffectObjectType type, Transform parent = null)
    {
        // LogUtils.instance.Log(GetClassName(), "CreateObject");
        GameObject objectPrefab  = null;
        GameObject createdObject = null;

        // LogUtils.instance.Log(GetClassName(), "_prefabsList length", (_prefabsList.Count).ToString());
        foreach (GameObject prefab in _prefabsList)
        {
            EffectObject baseObject = prefab.GetComponent <EffectObject>();
            // LogUtils.instance.Log(GetClassName(), "baseObject", (baseObject.type).ToString());
            if (baseObject != null && baseObject.type == type)
            {
                // LogUtils.instance.Log(GetClassName(), "CreateObject", (baseObject.type == type).ToString());
                objectPrefab = prefab;
                break;
            }
        }
        // LogUtils.instance.Log(GetClassName(), "CreateObject", "(objectPrefab != null)", (objectPrefab != null).ToString());
        if (objectPrefab != null)
        {
            if (parent == null)
            {
                parent = _instance.transform;
            }
            createdObject = GameObject.Instantiate(objectPrefab, Vector3.zero, Quaternion.identity, parent);
            if (createdObject != null)
            {
                // LogUtils.instance.Log(GetClassName(), "CreateObject", "(createdObject != null)", (createdObject != null).ToString());
                createdObject.SetActive(false);
                _pool.Add(createdObject);
            }
        }
        return(createdObject);
    }
Exemplo n.º 23
0
 public override void Load()
 {
     resource      = new Dictionary <string, ImageResource>();
     anim          = new EffectObject("img\\default\\Loading.etd", 700, 420, resource, Device);
     anim.PlayType = Effect2D.EffectManager.PlayType.Loop;
     anim.Play();
 }
Exemplo n.º 24
0
 public void DeActiveObject(EffectObject newObject)
 {
     pool.Enqueue(newObject);
     newObject.ConnectToObjectPool(this);
     newObject.transform.parent = transform;
     newObject.gameObject.SetActive(false);
 }
Exemplo n.º 25
0
    protected IEnumerator _MoveTo(Character target)
    {
        // 播放动画和特效
        float singTime = attacker.GetAnimLength(SingAnim);
        PlaySingAnimAndEffect();

        yield return new WaitForSeconds(singTime);

        effObj = PlayEffect(attacker, KeepEffect, -1);

        //向目标移动
        Vector3 dest = new Vector3(target.position.x, target.position.y, target.position.z);
        Vector3 dir;
        if (rangeType == RangeType.Single)
            dir = attacker.position - dest;
        else
            dir = target.direction;
        dir.Normalize();
        dest = dest + dir * CalcRadius(attacker, target);
        float d = Vector3.Distance(dest, attacker.position);

        runAnim = KeepAnim;
        float animLen = attacker.GetAnimLength(runAnim);
        moveSpeed = BulletSpeed;//d / animLen;
        float animSpeed = animLen / (d / moveSpeed);

        MoveTo(dest, animSpeed, OnAttackBegin);
    }
Exemplo n.º 26
0
    public GameObject PlayEffect(TypeEffect type, Vector3 pos, Vector3 rot, float time = 1f)
    {
        bool isPool = false;

        for (int j = 0; j < _mapper[type].Count; j++)
        {
            EffectObject efobj2 = _mapper[type][j];
            if (efobj2.getAction() == false)
            {
                efobj2.ActionEffect(pos, rot);
                isPool = true;
                if (time != 0)
                {
                    StartCoroutine(WatingHideEffect(efobj2, time));
                }
                return(efobj2.gameObject);
            }
        }
        if (isPool == false)
        {
            Debug.LogWarning("PLEASE ADD MORE POOL: " + type.ToString());
            EffectObject effectObject = Instantiate(_mapper[type][0], transform) as EffectObject;
            effectObject.Hide();
            effectObject.ActionEffect(pos, rot);
            if (time != 0)
            {
                StartCoroutine(WatingHideEffect(effectObject, time));
            }
            _mapper[type].Add(effectObject);
            return(effectObject.gameObject);
        }
        Debug.LogError("Not find this effect");
        return(null);
    }
Exemplo n.º 27
0
    private void CacheEffects()
    {
        EffectObject[] prefabs = Resources.LoadAll <EffectObject>("Effect/CARD");//카드 이펙트
        for (int i = 0; i < prefabs.Length; i++)
        {
            cardEffectPrefabs.Add((CardEffect)Enum.Parse(typeof(CardEffect), prefabs[i].gameObject.name), prefabs[i]);
        }
        prefabs = Resources.LoadAll <EffectObject>("Effect/ENEMY");
        for (int i = 0; i < prefabs.Length; i++)
        {
            monsterEffectPrefabs.Add((EnemyEffect)Enum.Parse(typeof(EnemyEffect), prefabs[i].gameObject.name), prefabs[i]);
        }
        prefabs = Resources.LoadAll <EffectObject>("EFFECT/RANGE");
        for (int i = 0; i < prefabs.Length; i++)
        {
            rangeEffectPrefabs.Add((RangeEffectType)Enum.Parse(typeof(RangeEffectType), prefabs[i].gameObject.name), prefabs[i]);
        }
        Sprite[] images = Resources.LoadAll <Sprite>("Graphic/UI/PopUP");
        for (int i = 0; i < images.Length; i++)
        {
            popUpImages.Add(images[i].name, images[i]);
        }

        textEffectPrefab = Resources.Load <EffectObject>("EFFECT/TEXT/DamageText");
    }
Exemplo n.º 28
0
    IEnumerator Attack()
    {
        float singTime = attacker.GetAnimLength(SingAnim);

        PlaySingAnimAndEffect();

        AddBuff(attacker);

        yield return(new WaitForSeconds(singTime - 0.05f));

        string       keepAnim      = KeepAnim;
        string       keepEff       = KeepEffect;
        string       hitSelfEffect = HitSelfEffect;
        string       fireBone      = FireBone;
        string       bulletModel   = BulletModel;
        float        hitTime       = HitTime;
        float        keepAnimLen   = attacker.PlayAnim(keepAnim);
        EffectObject effKeepObj    = PlayEffect(gameObject, keepEff, keepAnimLen);

        float               per     = Damage / 100f;
        int                 atkc    = AtkC;
        List <Character>    targets = FindTargets(true);
        List <EffectObject> effs    = new List <EffectObject>();

        foreach (var t in targets)
        {
            EffectObject effObj = PlayChainEff(attacker, t, bulletModel, fireBone, "Bip01");
            effs.Add(effObj);
        }
        for (int i = 0; i < atkc; ++i)
        {
            yield return(new WaitForSeconds(hitTime));

            int num = 0;
            foreach (var t in targets)
            {
                if (t.IsDead == false)
                {
                    float val = t.MaxHp * per;
                    CalcDamage(attacker, t, val, 0f);
                    AddHp(attacker, attacker, (int)val, hitSelfEffect, 0f);
                    num += 1;
                }
            }
            if (num == 0)
            {
                break;
            }
        }

        yield return(new WaitForSeconds(hitTime));

        foreach (var e in effs)
        {
            DestroyEff(e);
        }
        DestroyEff(effKeepObj);
        End();
    }
Exemplo n.º 29
0
 public void DestroyEffect(EffectObject effect)
 {
     if (!effects.Contains(effect))
     {
         effects.Remove(effect);
     }
     GameObject.DestroyImmediate(effect.gameObject);
 }
Exemplo n.º 30
0
 public void StopSelfEffect()
 {
     if (effobj != null)
     {
         owner.DestroyEff(effobj);
         effobj = null;
     }
 }
Exemplo n.º 31
0
 protected void DestroyRibbon()
 {
     if (ribbon != null)
     {
         attacker.DestroyEff(ribbon);
         ribbon = null;
     }
 }
Exemplo n.º 32
0
 private void PlayEffect(EffectObject effect)
 {
     // See if our effects are playing.
     if (false == effect.EffectStatus.Playing)
     {
         effect.Start(1, EffectStartFlags.NoDownload);
     }
 }
Exemplo n.º 33
0
 protected void DestroyRibbon()
 {
     if (ribbon != null)
     {
         DestroyEff(ribbon);
         ribbon = null;
     }
 }
Exemplo n.º 34
0
    void Awake()
    {
        _lineCell = transform.Find("line").GetComponent <UISprite>();
        _lineCell.gameObject.SetActive(false);
        EffectObject efo = EffectManager.getInstance().addEffect(transform, UIPrefabPath.EFFECT_FRUIT_BALL, isAutoDestroy: false);

        efo._loadComplete = OnEffectLoadComplete;
    }
Exemplo n.º 35
0
 public void DestroyLockerEff()
 {
     if (hitEff != null)
     {
         locker.DestroyEff(hitEff);
         hitEff = null;
     }
 }
Exemplo n.º 36
0
 public void DestroyLockerEff()
 {
     if (hitEff != null)
     {
         locker.DestroyEff(hitEff);
         hitEff = null;
     }
 }
Exemplo n.º 37
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        public WPFRenderer(EffectObject root)
        {
            if (root == null)
            {
                throw new ArgumentNullException("root");
            }

            EffectObject = root;
        }
Exemplo n.º 38
0
    protected override void OnSkillBegin()
    {
        effObj = null;
        isLookAtTarget = false;
        isTurnBack = false;
        targetChar = GetFirstAttackTarget();

        MoveTo(targetChar);
    }
Exemplo n.º 39
0
    protected override void OnSkillBegin()
    {
        target = attacker.target;
        effKeepObj = null;
        destPos = target.position;
        destSlot = target.slot;

        StartCameraAnim();
        StartCoroutine(Attack());
    }
Exemplo n.º 40
0
    protected void CastChar(Vector3 destPos, Character castChar, string fireBone, EffectObject keepEffObj)
    {
        GameObject hand = attacker.FindBone(fireBone);//Helper.FindObject(gameObject, fireBone, false);
        castChar.position = new Vector3(hand.transform.position.x, hand.transform.position.y + 2f, hand.transform.position.z);

        Vector3 dir = new Vector3(destPos.x - castChar.position.x, destPos.y - castChar.position.y, destPos.z - castChar.position.z);
        dir.Normalize();
        castChar.LookAt(destPos);

        // 子弹碰撞检测
        float bulletSpeed = BulletSpeed;

        float dist = Vector3.Distance(castChar.position, destPos);
        float mttime = dist / bulletSpeed;
        float mtime = 0f;

        float xAng = 0;
        AddEvent(delegate
        {
            bool collide = false;
            mtime += Time.deltaTime;
            if (mtime >= mttime)
            {
                castChar.position = new Vector3(destPos.x, destPos.y, destPos.z);
                collide = true;
            }
            else
            {
                float md = Time.deltaTime * bulletSpeed;
                castChar.position += dir * md;
                xAng += Time.deltaTime * 20000;
                castChar.rotation = Quaternion.Euler(new Vector3(0, 0, xAng));
            }

            if (collide)
            {
                OnCollision(destPos);

                if (keepEffObj != null)
                {
                    DestroyEff(keepEffObj);
                    keepEffObj = null;
                }

                if (attacker.IsDead == false)
                    StartCoroutine(GoBack(castChar));
                else
                    End();
                return true;
            }

            return false;
        });
    }
Exemplo n.º 41
0
    protected override bool Init()
    {
        linkEffObj = null;
        ribbon = null;

        Character t = Fight.Inst.FindBackTarget(owner);
        if (t != null)
        {
            LinkTarget(t);
            return true;
        }

        return false;
    }
Exemplo n.º 42
0
        /// <summary>
        /// エレメントのアンロードを行います。
        /// </summary>
        public void Unload()
        {
            if (this.prevBg != null)
            {
                this.prevBg.Terminate();
                this.prevBg = null;
            }

            if (this.nextBg != null)
            {
                this.nextBg.Terminate();
                this.nextBg = null;
            }
        }
Exemplo n.º 43
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        public BackgroundUIElement3D()
        {
            this.prevBg = new EffectObject()
            {
                Duration = Duration.Forever,
                Opacity = 0.0,
            };
            this.nextBg = new EffectObject()
            {
                Duration = Duration.Forever,
                Opacity = 0.0,
            };

            this.modelGroup = new Model3DGroup();
            this.modelGroup.Children.Add(this.prevBg.ModelGroup);
            this.modelGroup.Children.Add(this.nextBg.ModelGroup);

            Visual3DModel = this.modelGroup;
            IsHitTestVisible = false;
        }
Exemplo n.º 44
0
    protected override bool Init()
    {
        hitEff = null;
        num = Num;

        locker = Fight.Inst.FindAttackTarget(owner);
        if (locker != null)
        {
            PlaySelfEffect();
            owner.idleAnim = Anim;
            owner.Idle();
            owner.isXuLi = true;

            hitEff = locker.PlayEffect(HitEffect, -1f);
            owner.target = locker;
            AddTbuff(owner);
            return true;
        }
        return false;
    }
Exemplo n.º 45
0
    protected override void OnSkillBegin()
    {
        StartCameraAnim();

        isLookAtTarget = false;
        isTurnBack = false;
        targetChar = GetFirstAttackTarget();

        moveSpeed = BulletSpeed;
        runAnim = KeepAnim;

        PlaySingAnimAndEffect();
        float st = attacker.GetAnimLength(SingAnim);
        if (st > 0f)
        {
            StartCoroutine(Sing(st));
        }
        else
        {
            ribbon = PlayEffect(attacker, KeepEffect, -1);
            MoveTo(targetChar);
        }
    }
Exemplo n.º 46
0
 void FindLocker()
 {
     locker = Fight.Inst.FindAttackTarget(owner);
     if (locker != null)
     {
         hitEff = locker.PlayEffect(HitEffect, -1f);
         owner.target = locker;
     }
 }
Exemplo n.º 47
0
 public void StopSelfEffect()
 {
     if (effobj != null)
     {
         owner.DestroyEff(effobj);
         effobj = null;
     }
 }
Exemplo n.º 48
0
    public EffectObject PlayEffect(GameObject target, string eff, float destroyTime)
    {
        EffectObject effObj = null;
        if (!string.IsNullOrEmpty(eff) && eff != "null")
        {
            try
            {
                GameObject obj = EffectMgr.LoadAsyn(eff, attacker);
                obj.transform.position = target.transform.position;

                effObj = new EffectObject(obj);
                effects.Add(effObj);

                SetEffectParam(target, eff, destroyTime, effObj, obj);
            }
            catch (UnityException e)
            {
                Debug.LogException(e);
            }
        }
        return effObj;
    }
Exemplo n.º 49
0
    protected override void OnSkillBegin()
    {
        keepEff = null;

        target = GetFirstAttackTarget();
        attacker.target = target;

        StartCameraAnim();
        StartCoroutine(Attack());
    }
Exemplo n.º 50
0
 public bool Start()
 {
     forever = false;
     caster = owner;
     _enabled = true;
     effobj = null;
     _priority = 1;
     _weight = 0;
     _isDestroy = false;
     return Init();
 }
Exemplo n.º 51
0
    public void DestroyEff(EffectObject eff)
    {
        if (eff != null && effects.Contains(eff))
        {
            if (eff.obj != null)
            {
                eff.obj.transform.parent = null;
            }
            if (eff is ChainEffectObject)
            {
                ChainEffectObject ribbon = (ChainEffectObject)eff;
                Destroy(ribbon.begin);
                Destroy(ribbon.end);
            }
            EffectMgr.RemoveEff(eff.obj);
            Destroy(eff.obj);
            eff.obj = null;

            effects.Remove(eff);
        }
    }
Exemplo n.º 52
0
    private void SetEffectParam(GameObject target, string eff, float destroyTime, EffectObject effObj, GameObject obj)
    {
        Effect e = DataMgr.GetEffect(eff);
        if (e != null)
        {
            if (e.parent == 4)
            {
                obj.transform.parent = target.transform;
                obj.transform.position = target.transform.position;
            }
            if (e.parent == 1)
            {
                obj.transform.parent = target.transform;
                obj.transform.position = target.transform.position;
                obj.transform.rotation = target.transform.rotation;
            }
            else
            {
                obj.transform.rotation = target.transform.rotation;
                if (e.bone != "null")
                {
                    GameObject bind = Helper.FindObject(target, e.bone, false);
                    if (bind != null)
                    {
                        if (e.parent == 2)
                        {
                            obj.transform.parent = target.transform;
                            obj.transform.position = new Vector3(target.transform.position.x, bind.transform.position.y, target.transform.position.z);
                        }
                        else
                        {
                            obj.transform.parent = bind.transform;
                            obj.transform.position = bind.transform.position;
                        }
                    }
                }
            }

            if (e.time > 0f)
                DestroyEff(effObj, e.time);
        }
        else
        {
            obj.transform.rotation = target.transform.rotation;

            if (destroyTime > 0)
                DestroyEff(effObj, 3f);
            else
                DestroyEff(effObj, 5f);
        }
    }
Exemplo n.º 53
0
 private IEnumerator OnDestroyEff(EffectObject e, float time)
 {
     yield return new WaitForSeconds(time);
     DestroyEff(e);
 }
Exemplo n.º 54
0
 private void DestroyEff(EffectObject effObj, float time)
 {
     Fight.Inst.StartCoroutine(OnDestroyEff(effObj, time));
 }
Exemplo n.º 55
0
    public EffectObject PlayEffectSync(string eff, float destroyTime)
    {
        EffectObject effObj = null;
        if (!string.IsNullOrEmpty(eff) && eff != "null")
        {
            try
            {
                GameObject obj = EffectMgr.Load(eff);

                effObj = new EffectObject(obj);
                effects.Add(effObj);

                Effect e = DataMgr.GetEffect(eff);
                if (e != null)
                {
                    if (e.time > 0f)
                        DestroyEff(effObj, e.time);
                }
                else
                {
                    if (destroyTime > 0)
                        DestroyEff(effObj, 3f);
                    else
                        DestroyEff(effObj, 5f);
                }
            }
            catch (UnityException e)
            {
                Debug.LogException(e);
            }
        }
        return effObj;
    }
Exemplo n.º 56
0
    public bool Start(BuffData data, Character _caster, bool _forever)
    {
        forever = _forever;
        caster = _caster;
        _enabled = true;
        effobj = null;
        _id = data.ID;
        _priority = data.Priority;
        _weight = data.Weight;
        _isDestroy = false;

        buffdata = data;
        return Init();
    }
Exemplo n.º 57
0
    protected void MoveTo(Vector3 destPos, Character target, List<Character> targets)
    {
        keepEff = PlayEffect(attacker, KeepEffect, -1);

        Move(attacker, destPos, BulletSpeed, KeepAnim, attacker.moveAnimSpeed, delegate
        {
            DestroyEff(keepEff);
            StartCoroutine(OnAttack(destPos, target, targets));
        });
    }
Exemplo n.º 58
0
    public void PlaySelfEffect()
    {
        if (effobj != null)
            return;

        effobj = owner.PlayEffect(Effect, -1f);

        //if (effobj != null && data["Bind"].ToString().Equals("null") == false)
        //{
        //    string bind = (string)data["Bind"];
        //    GameObject bone = Helper.FindObject(self.gameObject, bind);
        //    if (bone != null)
        //        effobj.obj.transform.position = new Vector3(self.position.x, bone.transform.position.y, self.position.z);
        //}
    }
Exemplo n.º 59
0
        private void controlSelect_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            if(ffActuator != null)	ffActuator.Unacquire();
            feedbackAmountSlider.Enabled = false;
            objectGUIDValue.Enabled = false;
            xmlQueryButton.Enabled = false;
            foreach(DeviceInstance di in Manager.GetDevices(DeviceClass.All, EnumDevicesFlags.ForceFeeback))
            {
                if(((string)controlSelect.SelectedItem).CompareTo(di.InstanceName) == 0)
                {
                    ffActuator = new Device(di.InstanceGuid);
                    if(ffActuator == null)
                    {
                        throw new Exception("Cannot instantiate joystick");
                    }
                    //set cooperative level.
                    ffActuator.SetCooperativeLevel(
                        this,
                        CooperativeLevelFlags.Exclusive | CooperativeLevelFlags.Background);

                    //Set axis mode absolute.
                    ffActuator.Properties.AxisModeAbsolute = true;

                    //Acquire joystick for capturing.
                    ffActuator.Acquire();

                    //Configure axes
                    foreach(DeviceObjectInstance doi in ffActuator.Objects)
                    {

                        //Set axes ranges.
                        if((doi.ObjectId & (int)DeviceObjectTypeFlags.Axis) != 0)
                        {
                            ffActuator.Properties.SetRange(
                                ParameterHow.ById,
                                doi.ObjectId,
                                new InputRange(-5000,5000));
                        }

                        int[] temp;

                        // Get info about first two FF axii on the device
                        if ((doi.Flags & (int)ObjectInstanceFlags.Actuator) != 0)
                        {
                            if (forceAxes != null)
                            {
                                temp = new int[forceAxes.Length + 1];
                                forceAxes.CopyTo(temp,0);
                                forceAxes = temp;
                            }
                            else
                            {
                                forceAxes = new int[1];
                            }

                            // Store the offset of each axis.
                            forceAxes[forceAxes.Length - 1] = doi.Offset;
                            if (forceAxes.Length == 2)
                            {
                                break;
                            }

                            string path =
                                @"C:\temp\force.ffe";
                            EffectList el = null;
                            el = ffActuator.GetEffects(path,FileEffectsFlags.ModifyIfNeeded);
                            EffectObject feo = null;
                            foreach(FileEffect fe in el)
                            {
                                constantVibrate = fe.EffectStruct;
                                feo = new EffectObject(
                                      fe.EffectGuid,
                                      fe.EffectStruct,
                                      ffActuator);
                                try
                                {
                                    feo.Download();
                                }
                                catch(Exception ex)
                                {
                                    throw new Exception("Could not download force feedback effect file.", ex);
                                }
                                eo = feo;
                                break;
                            }
                            constantVibrate.Constant.Magnitude = 0;
                            eo.SetParameters(constantVibrate, EffectParameterFlags.TypeSpecificParams);
                            eo.Download();
                            eo.Start(1);
                            feedbackAmountSlider.Enabled = true;
                            objectGUIDValue.Enabled = true;
                            xmlQueryButton.Enabled = true;
                        }
                    }
                    break;
                }
            }
        }
Exemplo n.º 60
0
    public void HideScene()
    {
        if (attacker.camp == CampType.Friend)
        {
            effScene = PlayEffect(gameObject, "Effects/eff_qiu/eff_qiu", -1);
            Fight.Inst.scene.SetActive(false);

            Time.timeScale = 0.7f * GameMgr.timeScale;
            GameObject light = GameObject.Find("ComboLight");
            light.GetComponent<Light>().enabled = true;

            Fight.Inst.m_UiInGameScript.gameObject.SetActive(false);
            UI3DButton.enabled = false;
        }
    }