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; }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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; }
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); } }
/// <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); }
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); }
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); }