Ejemplo n.º 1
0
    static int get_isTurnLeft(IntPtr L)
    {
        object o = LuaScriptMgr.GetLuaObject(L, 1);
        PlayerState_BackTurnRun obj = (PlayerState_BackTurnRun)o;

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

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

        LuaScriptMgr.Push(L, obj.isTurnLeft);
        return(1);
    }
Ejemplo n.º 2
0
    void DefenseBackCrossing()
    {
        if (toBlockCrossing)
        {
            return;
        }

        if (toDefenseCrossing)
        {
            List <SkillInstance> defenseSkill = m_player.m_skillSystem.GetBasicSkillsByCommand(Command.Defense);
            m_player.m_toSkillInstance = defenseSkill[0];
            PositioningDefenseCrossing();
            return;
        }

        IM.Number random = IM.Random.value;

        if (random < IM.Number.zero)            //defense
        {
            toDefenseCrossing = true;
        }
        else            //block, or be crossed
        {
            Player     defenseTarget              = m_player.m_defenseTarget;
            IM.Vector3 dirToBasket                = GameUtils.HorizonalNormalized(m_basket.m_vShootTarget, defenseTarget.position);
            IM.Vector3 dirToBasketLeft            = IM.Quaternion.AngleAxis(-new IM.Number(90), IM.Vector3.up) * dirToBasket;
            PlayerState_BackTurnRun defenderState = defenseTarget.m_StateMachine.m_curState as PlayerState_BackTurnRun;
            bool defenseLeft = defenderState.isTurnLeft;
            if (random > (IM.Number.one - m_system.AI.devRateDefCross))                 //to be crossed
            {
                defenseLeft = !defenseLeft;
            }

            m_moveTarget = defenseTarget.position + dirToBasket * new IM.Number(1, 500) + dirToBasketLeft * IM.Number.two * (defenseLeft ? IM.Number.one : -IM.Number.one);

            toBlockCrossing = true;
        }
    }