Example #1
0
    static int Update(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        PlayerState_BackBlock obj = (PlayerState_BackBlock)LuaScriptMgr.GetNetObjectSelf(L, 1, "PlayerState_BackBlock");

        IM.Number arg0 = (IM.Number)LuaScriptMgr.GetNetObject(L, 2, typeof(IM.Number));
        obj.Update(arg0);
        return(0);
    }
Example #2
0
    static int OnEnter(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        PlayerState_BackBlock obj  = (PlayerState_BackBlock)LuaScriptMgr.GetNetObjectSelf(L, 1, "PlayerState_BackBlock");
        PlayerState           arg0 = (PlayerState)LuaScriptMgr.GetNetObject(L, 2, typeof(PlayerState));

        obj.OnEnter(arg0);
        return(0);
    }
Example #3
0
    protected override void _OnActionDone()
    {
        Player target = m_player.m_defenseTarget;

        if (target != null)
        {
            bool bWin = _Competing(m_player, target);
            if (bWin != isCompeteWin)
            {
                isCompeteWin = bWin;
                m_match.m_context.m_backToBackWinnerId = bWin ? m_player.m_roomPosId : target.m_roomPosId;
                m_stateMachine.SetState(this, true);

                PlayerState_BackBlock state = target.m_StateMachine.GetState(State.eBackBlock) as PlayerState_BackBlock;
                state.m_competor = m_player;
                target.m_StateMachine.SetState(state, true);
            }
        }
    }
Example #4
0
    static int _CreatePlayerState_BackBlock(IntPtr L)
    {
        int count = LuaDLL.lua_gettop(L);

        if (count == 2)
        {
            PlayerStateMachine    arg0 = (PlayerStateMachine)LuaScriptMgr.GetNetObject(L, 1, typeof(PlayerStateMachine));
            GameMatch             arg1 = (GameMatch)LuaScriptMgr.GetNetObject(L, 2, typeof(GameMatch));
            PlayerState_BackBlock obj  = new PlayerState_BackBlock(arg0, arg1);
            LuaScriptMgr.PushObject(L, obj);
            return(1);
        }
        else
        {
            LuaDLL.luaL_error(L, "invalid arguments to method: PlayerState_BackBlock.New");
        }

        return(0);
    }
Example #5
0
    static int set_m_competor(IntPtr L)
    {
        object o = LuaScriptMgr.GetLuaObject(L, 1);
        PlayerState_BackBlock obj = (PlayerState_BackBlock)o;

        if (obj == null)
        {
            LuaTypes types = LuaDLL.lua_type(L, 1);

            if (types == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name m_competor");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index m_competor on a nil value");
            }
        }

        obj.m_competor = (Player)LuaScriptMgr.GetNetObject(L, 3, typeof(Player));
        return(0);
    }
    override public void Update(IM.Number fDeltaTime)
    {
        base.Update(fDeltaTime);

        bool   bKnocked = false;
        Player target   = m_player.m_defenseTarget;

        if (m_player.m_toSkillInstance == null)
        {
            m_player.m_StateMachine.SetState(State.eStand);
            return;
        }

        if (m_player.moveDirection == IM.Vector3.zero)
        {
            m_player.m_StateMachine.SetState(State.eBackToBack, true);
            return;
        }
        IM.Number angle = IM.Vector3.Angle(m_dirPlayerToBasket, m_player.moveDirection);
        if (angle > new IM.Number(45) || GameUtils.HorizonalDistance(m_player.position, m_basket.m_vShootTarget) < IM.Number.half)
        {
            m_player.m_StateMachine.SetState(State.eBackToBack, true);
            return;
        }

        if (target != null)
        {
            IM.Vector3 vecPlayerToDefender = target.position - m_player.position;
            IM.Number  dist = vecPlayerToDefender.magnitude;
            IM.Vector3 dirPlayerToDefender = vecPlayerToDefender.normalized;
            angle = IM.Vector3.Angle(m_dirPlayerToBasket, dirPlayerToDefender);
            if (angle <= GlobalConst.BACK_TO_BACK_FAN_ANGLE && dist <= GlobalConst.BACK_TO_BACK_FAN_RADIUS)
            {
                State targetState = target.m_StateMachine.m_curState.m_eState;
                if (targetState == State.eDefense || targetState == State.eRun || targetState == State.eStand)
                {
                    m_player.m_toSkillInstance = m_curExecSkill;
                    m_stateMachine.SetState(State.eBackCompete, true);

                    PlayerState_BackBlock state = target.m_StateMachine.GetState(State.eBackBlock) as PlayerState_BackBlock;
                    state.m_competor = m_player;
                    target.m_StateMachine.SetState(state, true);

                    return;
                }
                else if (targetState == State.eStand || targetState == State.eRun || targetState == State.eRush)
                {
                    Debug.Log("Defender state: " + targetState);
                    bKnocked = true;
                }
            }
        }

        if (bKnocked && target != null)
        {
            target.m_StateMachine.SetState(State.eKnocked, true);
        }

        PlayerMovement.MoveAttribute attr = m_player.mMovements[(int)PlayerMovement.Type.eBackToBackRun].mAttr;
        m_player.MoveTowards(m_dirPlayerToBasket, IM.Number.zero, fDeltaTime, m_dirPlayerToBasket * attr.m_initSpeed);
    }