void UpdateWalkParams(Vector2 speed) { if (speed == Vector2.zero) { _isWalking = false; } else { _isWalking = true; var angle = Vector2.SignedAngle(Vector2.right, speed); if ((angle <= 45) && (angle >= -45)) { _curWalkDir = WalkDir.Right; } else if ((angle > 45) && (angle < 135)) { _curWalkDir = WalkDir.Up; } else if ((angle < -45) && (angle > -135)) { _curWalkDir = WalkDir.Down; } else { _curWalkDir = WalkDir.Left; } } }
public GridActionCmdRepulseOneGrid(MapGrid g, WalkDir dir) { m_Duration = m_GetDownTime + m_GetUpTime + 0.5f; m_End = g.pos; desgrid = g; //m_Dir = dir == WalkDir.WALKLEFT? WalkDir.WALKRIGHT : WalkDir.WALKLEFT; }
public void SetInfo(Vector3 dest, DoAttackFun fun, float speed, WalkDir dir, BulletType t, SoldierSkill skill, bool isPlaySound = true) { m_dir = dir; m_Skill = false; m_skillinfo = skill; m_Start = transform.localPosition; m_Start.z = -0.5f; m_Destination = dest; m_Destination.z = -0.5f; //m_Destination.y = m_Start.y; m_fun = fun; m_Speed = speed; m_Duration = Mathf.Abs(transform.localPosition.x - m_Destination.x) / speed; m_type = t; //effect = SkillEffects._instance.LoadEffect("effect/prefab/", "1002011",transform.position,0.5f); if (isPlaySound) { SoundPlay.Play("fireGun", false, false); } m_info = m_skillinfo.m_skilleffectinfo; /*if (t == BulletType.Grenade || t == BulletType.Snowball|| t == BulletType.Poison || t == BulletType.ling) * { * //m_Destination.y -= 1f; * myBezier = new Bezier( m_Start, new Vector3(0,-3,0), new Vector3(0,-3,0), m_Destination ); * } * * if (t == BulletType.Grenade || t == BulletType.Snowball|| t == BulletType.Poison ) * { * //m_Destination.y -= 1f; * myBezier = new Bezier( m_Start, new Vector3(0,-3,0), new Vector3(0,-3,0), m_Destination ); * } * if (t == BulletType.ling) * { * //m_Destination.y -= 1f; * m_Destination.y = m_Start.y; * myBezier = new Bezier( m_Start, new Vector3(0,-2,0), new Vector3(0,-2,0), m_Destination ); * }*/ if (skill.m_type == 1005) { float dis = m_Destination.x - m_Start.x; Vector3 pos = m_Destination; pos.x = m_Start.x + dis * 0.7f; myBezier = new Bezier(m_Start, new Vector3(0, -m_info.m_locus, 0), new Vector3(0, -m_info.m_locus, 0), pos); Vector3 pos1 = pos; pos1.x += dis * 0.2f; myBezier1 = new Bezier(pos, new Vector3(0, -m_info.m_locus * 0.4f, 0), new Vector3(0, -m_info.m_locus * 0.4f, 0), pos1); myBezier2 = new Bezier(pos1, new Vector3(0, -m_info.m_locus * 0.2f, 0), new Vector3(0, -m_info.m_locus * 0.2f, 0), m_Destination); } else { myBezier = new Bezier(m_Start, new Vector3(0, -m_info.m_locus, 0), new Vector3(0, -m_info.m_locus, 0), m_Destination); } //Debug.Log("bullet:" + transform.localPosition + "," +m_Destination + "," + m_Speed + "," + m_Duration + ","+Mathf.Abs(transform.localPosition.x - m_Destination.x)); }
/// <summary> /// 设置拳击击飞Action(击飞状态下不拥有炮战技能) /// </summary> /// <returns></returns> public void SetHitFly(WalkDir Dir, float duration, float delay, bool bearhit) { m_FlyInfo.flyCollisionAction = FlyCollisionAction.DropOutBoat; Vector3 Target = BattleEnvironmentM.GetHitFlyEndPoint(m_Owner.m_thisT.position, Dir, bearhit); CurrentAction = new GridActionCmdHitFly(m_Owner, Target, duration, Dir, delay, bearhit); }
/// <summary> /// 获取海豚上船路线节点 /// </summary> /// <param name="Dir">方向</param> public static bool GetDolphineLine(WalkDir Dir, ref Vector3 Start, ref Vector3 End) { if (Dir == WalkDir.WALKLEFT) { if (m_SeaEnviron != null) { Start = m_SeaEnviron.LeftDolphine.transform.position; } if (m_MapStart != null) { End = m_MapStart.GetDolphineLeftPoint(); /*if (Start.x <= End.x) * End = m_MapStart.GetDolphineRightPoint();*/ } return(true); } else if (Dir == WalkDir.WALKRIGHT) { if (m_SeaEnviron != null) { Start = m_SeaEnviron.RightDolphine.transform.position; } if (m_MapStart != null) { End = m_MapStart.GetDolphineRightPoint(); /*if (Start.x >= End.x) * End = m_MapStart.GetDolphineLeftPoint();*/ } return(true); } return(false); }
//熊减防一直往前走 public static List <MapGrid> GetFrontPath(MapGrid start, MapGrid end, WalkDir curdir) { List <MapGrid> list = new List <MapGrid>(); if (start == null) { return(list); } int flag = curdir == WalkDir.WALKLEFT?-1:1; int layer = start.GridPos.Layer; int unit = start.GridPos.Unit; //list.Add(start); MapGrid next = start; do { list.Add(next); unit += flag; next = MapGrid.GetMG(layer, unit); }while (next != null && next.Type != GridType.GRID_HOLE && next.Type != GridType.GRID_WALL && (!next.IsAttackStations() || next.CheckIdleAttackStation())); while (list.Count > 0) { if (!list[list.Count - 1].IsAttackStations()) { list.RemoveAt(list.Count - 1); } else { break; } } return(list); }
/// <summary> /// 获取击飞落脚点 /// </summary> /// <param name="Dir">方向</param> public static Vector3 GetHitFlyEndPoint(Vector3 pos, WalkDir Dir, bool bearhit) { if (Dir == WalkDir.WALKLEFT) { if (m_SeaEnviron != null) { if (!bearhit) { return(m_SeaEnviron.LeftHitFlyPoint.transform.position); } ShipCanvasInfo shipinfo = GetShipBodyMap(); Vector3 flypos = m_SeaEnviron.LeftHitFlyPoint.transform.position; flypos.x = pos.x - shipinfo.width * MapGrid.m_UnitRoomGridNum * MapGrid.m_width * 0.5f; flypos.y -= 10; return(flypos); } } else if (Dir == WalkDir.WALKRIGHT) { if (m_SeaEnviron != null) { if (!bearhit) { return(m_SeaEnviron.RightHitFlyPoint.transform.position); } ShipCanvasInfo shipinfo = GetShipBodyMap(); Vector3 flypos = m_SeaEnviron.RightHitFlyPoint.transform.position; flypos.x = pos.x + shipinfo.width * MapGrid.m_UnitRoomGridNum * MapGrid.m_width * 0.5f; flypos.y -= 10; return(flypos); } } return(Vector3.zero); }
/// <summary> /// 设置镜像 /// </summary> public void SetEffectMirror(WalkDir dir) { if (dir == WalkDir.WALKRIGHT) { U3DUtil.SetMirror(gameObject, -1, 1, 1); } }
/// <summary> /// 蹦蹦被踢飞 /// </summary> public void KickBomb(WalkDir dir) { //NGUIUtil.DebugLog("蹦蹦被踢飞后方向="+dir,"red"); m_fKickCounter = 2.533f; m_bBeginKick = true; m_bKickDir = (dir == WalkDir.WALKLEFT) ? Vector3.left : Vector3.right; }
public GridActionCmd102005ActiveSkill(DoQianyaoFun qianyaofun, DoAttackFun fun, int sceneID, int AttackSceneId, WalkDir AttackDir, int deep, int skillid, float blackscreentime) : base(qianyaofun, fun, sceneID, AttackSceneId, AttackDir, deep, skillid, blackscreentime) { m_CastTime = 1.23f; m_EventTime = 1.23f; m_Duration = 3.5f; m_Dir = AttackDir; }
public GridActionCmd101001LSkill01(DoQianyaoFun qianyaofun, DoAttackFun fun, int AttackSceneId, WalkDir AttackDir, int deep, int skillid) : base(qianyaofun, fun, AttackSceneId, AttackDir, deep, skillid) { m_Duration = 1; m_CastTime = 0.2333f; m_EventTime = 0.2333f; m_Dir = AttackDir; }
public PathData(tga.pathroad s) { this.Road = MapGrid.GetMG(s.road.layer, s.road.unit); this.state = (RoleState)s.state; this.deltaTime = s.deltaTime * 0.001f; this.dir = (WalkDir)s.dir; this.gs = (GridSpace)s.gs; }
public PathData(PathData s) { this.Road = s.Road; this.state = s.state; this.deltaTime = s.deltaTime; this.dir = s.dir; this.gs = s.gs; }
public GridActionCmd103002BigSkill(DoQianyaoFun qianyaofun, DoAttackFun fun, int sceneID, int AttackSceneId, WalkDir AttackDir, int deep, int skillid, float blackscreentime) : base(qianyaofun, fun, sceneID, AttackSceneId, AttackDir, deep, skillid, blackscreentime) { m_CastTime = 0.667f; m_EventTime = 0.667f; m_Duration = 4f; m_walktime = 0f; m_Dir = AttackDir; }
public GridActionCmd200004Skill5006(Vector3 start, DoAttackFun fun, WalkDir dir, DoQianyaoFun qianyaofun) { m_CastTime = m_eventtime = 0.66f; m_Duration = 1.333f; m_Start = start; m_End = start; m_Dir = dir; m_DoSkill = fun; m_QianYaoStatus = qianyaofun; }
public GridActionCmd101003Ski1060(Vector3 start, Vector3 end, DoAttackFun fun, WalkDir dir, DoQianyaoFun qianyaofun) { m_CastTime = m_eventtime = 0.66f; m_Duration = 1.05f; m_Start = start; m_End = end; m_Dir = dir; m_DoSkill = fun; m_QianYaoStatus = qianyaofun; }
public GridActionCmd102005Skill1043(Vector3 start, Vector3 end, DoAttackFun fun, WalkDir dir, DoQianyaoFun qianyaofun) { m_CastTime = m_eventtime = 0.3f; m_Duration = 0.7f; m_Start = start; m_End = end; m_Dir = dir; m_DoSkill = fun; m_QianYaoStatus = qianyaofun; }
/// <summary> /// 召唤物出生 /// </summary> public void SetBorn(Life Parent, int PetID, int pettype, Int2 Grid, WalkDir dir, List <PathData> Path = null) { if (Parent == null) { Dead(); //Debug.Log("需消费对象"); return; } SetLifeCore(new LifeMCore(PetID, Parent.m_Core.m_IsPlayer, LifeMType.PET, Parent.m_Core.m_Camp, MoveState.Walk)); SetMoveState(MoveState.Walk); }
public GridActionCmdPetAppear1001(Vector3 start, Vector3 end, float duration, WalkDir dir, int deep) { m_Start = start; m_End = end; m_Duration = duration; m_Dir = dir; m_RankDeep = deep; m_FadeOut = false; //myBezier = new Bezier( start, new Vector3(0,-10,0), new Vector3(0,-10,0), end ); }
public GridActionCmd100003ConditionSkill01(Vector3 start, Vector3 end, DoAttackFun fun, WalkDir dir, DoQianyaoFun qianyaofun) { //Debug.Log("蹦达与蹦蹦召唤蹦蹦"); m_Start = start; m_End = end; m_CastTime = m_eventtime = 3.87f; m_Duration = 5f; m_Dir = dir; m_DoSkill = fun; m_QianYaoStatus = qianyaofun; }
public GridActionCmd101001ConditionSkill01(Vector3 start, Vector3 end, DoAttackFun fun, WalkDir dir, DoQianyaoFun qianyaofun) { m_Start = start; m_End = end; m_CastTime = m_eventtime = 0.666f; m_Duration = 1.667f;//0.833f; m_realDuration = m_Duration; m_DoSkill = fun; m_Dir = dir; m_QianYaoStatus = qianyaofun; }
/// <summary> /// 设置镜像 /// </summary> public override void SetMirror(WalkDir Dir) { if (Dir == WalkDir.WALKLEFT) { SetMirror(1, 1, 1); } else if (Dir == WalkDir.WALKRIGHT) { SetMirror(-1, 1, 1); } }
/// <summary> /// 出生构造函数 /// </summary> /// <param name="Parent">出生角色</param> /// <param name="JumpTarget">跳跃的位置</param> /// <param name="JumpDir">朝向</param> /// <param name="dcb">完成回调</param> public BornActionCmd(Life Parent, Vector3 JumpTarget, WalkDir JumpDir, DoneCallBack dcb, float duration, AnimatorState state, bool bFallSmooth, string strBornEffect) { SetTarget(Parent); Transform t = m_Skin.tRoot; t.parent = BattleEnvironmentM.GetLifeMBornNode(true); m_Start = t.localPosition; m_PauseRotation = t.localRotation; m_End = JumpTarget; if (Parent.m_Attr.AttrType == 102003 || Parent.m_Attr.AttrType == 200009) { if (Parent.Anger <= 0) { t.localPosition = m_End; (Parent as Role).TurnsInto(false); m_Skin = Parent.GetSkin(); Vector3 pos = m_Skin.tRoot.position; pos.z -= 2f; GameObjectActionExcute gae = EffectM.LoadEffect(EffectM.sPath, Parent.m_Attr.AttrType == 102003 ? "1103111_01":"1401111_01", pos, BattleEnvironmentM.GetLifeMBornNode(true)); GameObjectActionDelayDestory ndEffect = new GameObjectActionDelayDestory(1.0f); gae.AddAction(ndEffect); } } else if (Parent.m_Attr.AttrType == 101004) { Vector3 pos = m_Skin.tRoot.position; GameObjectActionExcute gae = EffectM.LoadEffect(EffectM.sPath, "1055021", pos, BattleEnvironmentM.GetLifeMBornNode(true)); GameObjectActionDelayDestory ndEffect = new GameObjectActionDelayDestory(1.0f); gae.AddAction(ndEffect); } m_doneCallBack = dcb; m_Dir = JumpDir; m_Duration = duration; m_state = state; m_fPauseTime = 0f; //RolePlayAnimation(AnimatorState.Stand); //SetBornActionCmd(); if (!bFallSmooth) { m_Start = JumpTarget; } m_Skin.tRoot.rotation = Quaternion.identity; GameObject posgo = m_Skin.ProPerty.HelpPoint.GetVauleByKey(HelpPointName.EffectPos); if (posgo != null && strBornEffect.Length > 0) { Vector3 pos = posgo.transform.position; GameObjectActionExcute gae = EffectM.LoadEffect(EffectM.sPath, strBornEffect, pos, BattleEnvironmentM.GetLifeMBornNode(true)); GameObjectActionDelayDestory ndEffect = new GameObjectActionDelayDestory(duration); gae.AddAction(ndEffect); } }
public GridActionCmdPetAppear1000(Vector3 start, Vector3 end, float duration, WalkDir dir, int deep) { m_Start = start; m_End = end; m_Duration = duration; m_Dir = dir; m_RankDeep = deep; m_FadeOut = false; float r = Random.Range(-0.5f, -2f); myBezier = new Bezier(start, new Vector3(0, r, 0), new Vector3(0, r, 0), end); }
public GridActionCmd100003ConditionSkill02(Vector3 start, Vector3 end, DoAttackFun fun, WalkDir dir, DoQianyaoFun qianyaofun) { Debug.Log("大招召唤炮弹兵"); m_Start = start; m_End = end; // m_CastTime = 0f;//2.267f; m_CastTime = m_eventtime = 0f; m_Duration = 1f; m_Dir = dir; m_DoSkill = fun; m_QianYaoStatus = qianyaofun; }
public GridActionCmdRepulseDownLayer(MapGrid g, MapGrid down, WalkDir dir) { m_GetDownTime = 0.2f; m_GetUpTime = 0.2f; m_Duration = m_GetDownTime + m_GetUpTime; m_End = g.pos; desgrid = g; m_down = down; m_downtime = (g.GridPos.Layer - down.GridPos.Layer) / m_speed; m_Duration += m_downtime; //m_Dir = dir == WalkDir.WALKLEFT? WalkDir.WALKRIGHT : WalkDir.WALKLEFT; }
/// <summary> /// 根据具体情况执行 海豚顶飞 Action /// </summary> /// <param name="Angel"></param> /// <param name="isFallEnd"></param> void DoSpawnDolphine(bool isFallEnd = false) { Vector3 Pos = m_Owner.m_Skin.tRoot.position; float mid = (FlyLimitZone.minX + FlyLimitZone.maxX) * 0.5f; WalkDir dir = Pos.x < mid ? WalkDir.WALKLEFT : WalkDir.WALKRIGHT; //SpawnWaterEffect(Pos, dir); if (isFallEnd || CheckDolphineFly(Pos, CheckTraceFly())) { //WalkDir dir = Pos.x < mid ? WalkDir.WALKLEFT : WalkDir.WALKRIGHT; SpawnDolphine(dir, Pos); } }
// Update is called once per frame void Update() { //update Aggressive actions if (IsAggressive()) { Debug.Log("AGGRESSIVE"); if (Time.time > nextFire) { Debug.Log("SHOOT"); nextFire = Time.time + fireRate; GameObject obj = Instantiate(prefabBullet, transform.position, Quaternion.identity) as GameObject; Debug.Log(obj.name + " is created"); } } //Update Passive actions else { Vector3 currentScale = transform.localScale; myRigidbody.velocity = new Vector2(1 * curSpeed, myRigidbody.velocity.y); //Flip the x sprite moving left or right if (curDirection == WalkDir.Back) { currentScale.x = -0.1f; transform.localScale = currentScale; } if (curDirection == WalkDir.Forth) { currentScale.x = 0.1f; transform.localScale = currentScale; } //Move back and forth curWalkingDist -= Time.deltaTime; if (curWalkingDist < 0) { if (curDirection == WalkDir.Forth) { curDirection = WalkDir.Back; curSpeed *= -1f; } else { curDirection = WalkDir.Forth; curSpeed *= -1f; } curWalkingDist = maxWalkingDist; } } }
public GameObjectActionBezierMove(Vector3 start, float endtime, WalkDir dir) { m_start = start; m_Duration = endtime; if (dir == WalkDir.WALKLEFT) { m_end = new Vector3(start.x - 100, 0, start.z); } else if (dir == WalkDir.WALKRIGHT) { m_end = new Vector3(start.x + 100, 0, start.z); } bezier = new Bezier(start, new Vector3(0, 20, 0), new Vector3(0, 20, 0), m_end); }
public GridActionCmd101001Skill02(DoQianyaoFun qianyaofun, DoAttackFun fun, int AttackSceneId, WalkDir AttackDir, int deep, int skillid) : base(qianyaofun, fun, AttackSceneId, AttackDir, deep, skillid) { m_Duration = 1.333f; m_CastTime = 0.4f; m_EventTime = 0.4f; /*m_MoveTime = 0.15f; * m_Delay = 0.5f; * m_CastTime =m_Delay+ 0.3f; * m_EventTime =m_Delay+ 0.3f; * m_Duration =m_Delay + 1.133f;*/ m_Dir = AttackDir; }