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