IEnumerator PlayUltEffect(AttackMessage message)
    {
        StartCoroutine(MaskFade());

        this.message = message;

        GameObject bulletPrefab = ResourceManager.GetInstance.LoadPrefab(TestData.charDB [7].Prefab);
        GameObject parent       = StageManager.SharedInstance.WorldUltLayer;
        GameObject bullet       = StageManager.SharedInstance.AddToStage(parent, bulletPrefab);

        baseEffect = bullet.AddComponent <BaseEffect> ();
        //baseEffect.transform.position = message.Sender.GameObject.transform.position;


        //Vector3 pos = MapUtil.RelativeMovePosition (battleAgent.BaseSprite.HitPoint, battleAgent.GameObject.transform);
        //baseEffect.transform.position = new Vector3 (pos.x, pos.y, battleAgent.GameObject.transform.position.z);
        BattleAgent battleAgent = message.Sender;

        baseEffect.transform.position = MapUtil.GetHitPointWorld(battleAgent);
        baseEffect.PlayOnAgent(message);
        //yield return new WaitForSeconds (0.1f);



        //addMask ();
        //Time.timeScale = 1.0f;

        battleAgent.dispatchEvent(SoldierEvent.BATTLE_MESSAGE, message);
        Time.timeScale = 0.6f;
        yield return(new WaitForSeconds(0.1f));

        Time.timeScale = 1.0f;
    }
예제 #2
0
    /// <summary>
    /// 在目标点出现
    /// </summary>
    /// <param name="attackMessage">Attack message.</param>
    public void AttachTarget(AttackMessage attackMessage)
    {
        this.attackMessage = attackMessage;
        Transform t2 = attackMessage.Targets [0].GameObject.transform;
        //gameObject.transform.position = t2.position;

        Vector3 pos = MapUtil.GetHitPointWorld(attackMessage.Targets[0]);

        gameObject.transform.position = new Vector3(pos.x, pos.y, t2.position.z);
    }
예제 #3
0
    /// <summary>
    /// Combo攻击数字
    /// </summary>
    public void AddComboNum()
    {
        GameObject prefab = ResourceManager.GetInstance.LoadPrefab(TestData.charDB [19].Prefab);
        GameObject parent = StageManager.SharedInstance.EffectLayer;
        GameObject go     = StageManager.SharedInstance.AddToStage(parent, prefab);

        BaseEffect baseEffect = go.AddComponent <BaseEffect> ();

        baseEffect.transform.position = MapUtil.GetHitPointWorld(battleAgent);

        AttackMessage message = new AttackMessage(battleAgent, battleAgent.Targets, 1);

        baseEffect.PlayOnAgent(message);
    }
예제 #4
0
    /// <summary>
    /// 跟随目标
    /// </summary>
    /// <param name="attackMessage">Attack message.</param>
    /// <param name="time">Time.</param>
    public void FollowTarget(AttackMessage attackMessage, float time)
    {
        targetToFollow = this.attackMessage.Targets[0].GameObject;

        this.attackMessage = attackMessage;
        Transform t2 = attackMessage.Targets [0].GameObject.transform;
        //gameObject.transform.position = t2.position;

        Vector3 pos = MapUtil.GetHitPointWorld(attackMessage.Targets[0]);

        gameObject.transform.position = pos;

        InvokeRepeating("FollowTarget", 1.0f, 0.1f);
    }
예제 #5
0
    /// <summary>
    /// 指定时间内飞到目的地
    /// </summary>
    /// <param name="attackMessage">Attack message.</param>
    /// <param name="time">Time.</param>
    public void FlyToTarget(AttackMessage attackMessage, float time)
    {
        this.attackMessage = attackMessage;
        Vector3   hit  = MapUtil.GetHitPointWorld(attackMessage.Targets [0]);
        Hashtable args = new Hashtable();

        args.Add("easeType", iTween.EaseType.linear);
        args.Add("x", hit.x);
        args.Add("y", hit.y);
        args.Add("time", time);
        args.Add("oncomplete", "OnComplete");
        args.Add("oncompletetarget", gameObject);
        iTween.MoveTo(gameObject, args);
        //Debug.Log ("FlyToTarget:" + targetScreen);
    }
예제 #6
0
    /// <summary>
    /// 受击火花特效
    /// </summary>
    public void AddFlashEffect()
    {
        GameObject prefab = ResourceManager.GetInstance.LoadPrefab(TestData.charDB [6].Prefab);
        GameObject parent = StageManager.SharedInstance.EffectLayer;
        GameObject go     = StageManager.SharedInstance.AddToStage(parent, prefab);

        BaseEffect baseEffect = go.AddComponent <BaseEffect> ();

        //baseEffect.transform.position  = gameObject.transform.position;

        //Vector3 pos = MapUtil.RelativeMovePosition (battleAgent.BaseSprite.HitPoint, battleAgent.GameObject.transform);
        //baseEffect.transform.position = new Vector3 (pos.x, pos.y, battleAgent.GameObject.transform.position.z);

        baseEffect.transform.position = MapUtil.GetHitPointWorld(battleAgent);

        AttackMessage message = new AttackMessage(battleAgent, battleAgent.Targets, 1);

        baseEffect.PlayOnAgent(message);
    }
예제 #7
0
    /// <summary>
    /// 大招触发
    /// </summary>
    override protected void OnUltShootOnEvent()
    {
        this.lastTargets = this.BattleAgent.Targets;

        //优先攻击浮空目标 Combo
        List <BattleAgent> floatList = BattleManager.SharedInstance.GetFloatTarget();

        if (floatList.Count > 0)
        {
            this.BattleAgent.ChangeTargets(floatList);
            isComboAttack = true;
        }


        lastPosition = this.gameObject.transform.position;

        GameObject bulletPrefab = ResourceManager.GetInstance.LoadPrefab(TestData.charDB [10].Prefab);
        GameObject parent       = StageManager.SharedInstance.EffectLayer;
        GameObject bullet       = StageManager.SharedInstance.AddToStage(parent, bulletPrefab);

        baseBullet                    = bullet.AddComponent <BaseBullet> ();
        baseBullet.BattleAgent        = this.BattleAgent;
        baseBullet.transform.position = MapUtil.GetHitPointWorld(this.BattleAgent.Targets [0]);

        //baseBullet去目标所在行 屏幕中间播放

        StartCoroutine(MoveToSide());


        AttackMessage message = new AttackMessage(BattleAgent, this.BattleAgent.Targets, 1);

        if (isComboAttack)
        {
            message.ComboCount = 3;
        }


        baseBullet.AttachMiddle(message);

        this.BattleAgent.ChangeTargets(this.lastTargets);
        isComboAttack = false;
    }
예제 #8
0
    override protected void OnUltShootOnEvent()
    {
        List <BattleAgent> targets = BattleManager.SharedInstance.GetEnemyList();

        for (int i = 0; i < targets.Count; i++)
        {
            List <BattleAgent> tlist = new List <BattleAgent>();
            tlist.Add(targets[i]);

            GameObject bulletPrefab = ResourceManager.GetInstance.LoadPrefab(TestData.charDB [1].Prefab);
            GameObject parent       = StageManager.SharedInstance.EffectLayer;
            GameObject bullet       = StageManager.SharedInstance.AddToStage(parent, bulletPrefab);
            baseBullet                    = bullet.AddComponent <BaseBullet> ();
            baseBullet.BattleAgent        = this.BattleAgent;
            baseBullet.transform.position = MapUtil.GetHitPointWorld(targets[i]);

            AttackMessage message = new AttackMessage(BattleAgent, tlist, 1);
            baseBullet.FlyToTargetRoot(message, 0.5f);
        }
    }
예제 #9
0
    /// <summary>
    /// 飞向目标
    /// </summary>
    public void FlyToTarget(AttackMessage attackMessage)
    {
        this.attackMessage = attackMessage;

        //Debug.Log(MapUtil.GetInstance.WorldToMap(attackMessage.Targets[0].GameObject.transform.position));

//		Transform t1 = attackMessage.Sender.GameObject.transform;
//		Transform t2 = attackMessage.Targets [0].GameObject.transform;
//
//		float dis = Mathf.Abs (t1.position.x - t2.position.x);
//		float time = dis / Speed;

        //Vector3 hit = attackMessage.Targets [0].BaseSprite.HitPoint;

        //Debug.Log( attackMessage.Targets [0].MapPos);
        //Debug.Log( attackMessage.Targets [0].GameObject.transform.position);

        Vector3 hit = MapUtil.GetHitPointWorld(attackMessage.Targets [0]);
        //Vector3 hit = attackMessage.Targets [0].GameObject.transform.position;

        //Vector3 targetScreen = MapUtil.RelativeMovePosition (hit, t2);

        //t2.localPosition = target;

        Hashtable args = new Hashtable();

        args.Add("easeType", iTween.EaseType.linear);
        args.Add("x", hit.x);
        args.Add("y", hit.y);
        args.Add("speed", 80f);
        //args.Add ("time", 0.15f);

        //args.Add ("time", 15f);
        args.Add("oncomplete", "OnComplete");
        args.Add("oncompletetarget", gameObject);
        //args.Add ("oncompleteparams", this.attackMessage);

        iTween.MoveTo(gameObject, args);

        //Debug.Log ("FlyToTarget:" + targetScreen);
    }
예제 #10
0
    override protected void OnUltShootOnEvent()
    {
        GameObject bulletPrefab = ResourceManager.GetInstance.LoadPrefab(TestData.charDB[4].Prefab);
        GameObject parent       = StageManager.SharedInstance.EffectLayer;
        GameObject bullet       = StageManager.SharedInstance.AddToStage(parent, bulletPrefab);

        baseBullet             = bullet.AddComponent <BaseBullet> ();
        baseBullet.BattleAgent = this.BattleAgent;
        //baseBullet.transform.position  = battleAgent.GameObject.transform.position;
        baseBullet.Speed = 1136.0f / 1000.0f;
        Vector3 pos = MapUtil.GetHitPointWorld(BattleAgent.Targets[0]);

        baseBullet.transform.position = pos;

        baseBullet.FaceTo = this.BattleAgent.BaseSprite.FaceTo;

        AttackMessage message = new AttackMessage(BattleAgent, BattleAgent.Targets, 1);

        //baseBullet.FlyToTargetOutScreen (message);
        baseBullet.FlyToTarget(message);
    }
예제 #11
0
    override protected void OnShootOnEvent()
    {
        GameObject bulletPrefab = ResourceManager.GetInstance.LoadPrefab(TestData.charDB [0].Prefab);
        GameObject parent       = StageManager.SharedInstance.EffectLayer;
        GameObject bullet       = StageManager.SharedInstance.AddToStage(parent, bulletPrefab);


        baseBullet             = bullet.AddComponent <BaseBullet> ();
        baseBullet.BattleAgent = this.BattleAgent;
        baseBullet.Speed       = 1136.0f / 1000.0f;

        //从攻击点创建子弹
//		Vector3 pos = MapUtil.RelativeMovePosition (this.BattleAgent.BaseSprite.HitPoint, BattleAgent.GameObject.transform);
//		baseBullet.transform.position = new Vector3 (pos.x, pos.y, this.BattleAgent.GameObject.transform.position.z);


        baseBullet.transform.position = MapUtil.GetHitPointWorld(this.BattleAgent);

        AttackMessage message = new AttackMessage(this.BattleAgent, BattleAgent.Targets, 1);

        baseBullet.FlyToTarget(message);
    }