示例#1
0
 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;
         }
     }
 }
示例#2
0
 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;
 }
示例#3
0
    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));
    }
示例#4
0
文件: Fly.cs 项目: 741645596/batgame
    /// <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);
    }
示例#5
0
    /// <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);
    }
示例#6
0
    //熊减防一直往前走
    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);
    }
示例#7
0
 /// <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);
 }
示例#8
0
 /// <summary>
 /// 设置镜像
 /// </summary>
 public void SetEffectMirror(WalkDir dir)
 {
     if (dir == WalkDir.WALKRIGHT)
     {
         U3DUtil.SetMirror(gameObject, -1, 1, 1);
     }
 }
示例#9
0
 /// <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;
 }
示例#10
0
 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;
 }
示例#12
0
 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;
 }
示例#13
0
 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;
 }
示例#15
0
 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;
 }
示例#16
0
 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;
 }
示例#17
0
 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;
 }
示例#18
0
 /// <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;
 }
示例#22
0
 /// <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);
     }
 }
示例#23
0
    /// <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);
        }
    }
示例#24
0
    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;
 }
示例#26
0
 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;
 }
示例#27
0
文件: Fly.cs 项目: 741645596/batgame
    /// <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);
        }
    }
示例#28
0
    // 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;
            }
        }
    }
示例#29
0
 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;
    }