BehaviorTurn.lua 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. local Behavior = require("bt/Behavior")
  2. local BehaviorTurn = class("BehaviorTurn", Behavior)
  3. local facade = global.Facade
  4. local BehaviorConfig = global.BehaviorConfig
  5. function BehaviorTurn:ctor(data)
  6. BehaviorTurn.super.ctor(self, data)
  7. end
  8. function BehaviorTurn:getType()
  9. return BehaviorConfig.BehaviorType.BehaviorTurn
  10. end
  11. function BehaviorTurn:update(player, actCompleted)
  12. local inputProxy = facade:retrieveProxy(global.ProxyTable.PlayerInputProxy)
  13. local turnDir = inputProxy:GetMouseTurnDir()
  14. if not turnDir or turnDir == global.MMO.ORIENT_INVAILD then
  15. return BehaviorConfig.BTSTATUS_Failure
  16. end
  17. if not inputProxy:IsMovePermission() then
  18. return BehaviorConfig.BTSTATUS_Failure
  19. end
  20. player:SetDirection(turnDir)
  21. player:dirtyAnimFlag()
  22. player:SetAction(global.MMO.ACTION_TURN)
  23. inputProxy:RequestActorTurn(turnDir)
  24. inputProxy:ClearMouseTurnDir()
  25. return BehaviorConfig.BTSTATUS_Running
  26. end
  27. return BehaviorTurn