58 lines
2.1 KiB
Lua
58 lines
2.1 KiB
Lua
function init()
|
|
self.flightSpeed = config.getParameter("flightSpeed", 10)
|
|
self.flightForce = 500
|
|
storage.active = false
|
|
end
|
|
|
|
function update(args)
|
|
if not self.specialLast and args.moves["special1"]
|
|
and (storage.active or not status.statPositive("activeMovementAbilities")) then
|
|
|
|
storage.active = not storage.active
|
|
if storage.active then
|
|
status.setPersistentEffects("movementAbility", {{stat = "activeMovementAbilities", amount = 1}})
|
|
else
|
|
status.clearPersistentEffects("movementAbility")
|
|
end
|
|
end
|
|
self.specialLast = args.moves["special1"]
|
|
|
|
if storage.active then
|
|
if args.moves["up"] and args.moves["right"] then
|
|
mcontroller.controlApproachVelocity({self.flightSpeed, self.flightSpeed}, self.flightForce)
|
|
elseif args.moves["down"] and args.moves["right"] then
|
|
mcontroller.controlApproachVelocity({self.flightSpeed, -self.flightSpeed}, self.flightForce)
|
|
elseif args.moves["up"] and args.moves["left"] then
|
|
mcontroller.controlApproachVelocity({-self.flightSpeed, self.flightSpeed}, self.flightForce)
|
|
elseif args.moves["down"] and args.moves["left"] then
|
|
mcontroller.controlApproachVelocity({-self.flightSpeed, -self.flightSpeed}, self.flightForce)
|
|
elseif args.moves["up"] then
|
|
mcontroller.controlApproachVelocity({0, self.flightSpeed}, self.flightForce)
|
|
elseif args.moves["down"] then
|
|
mcontroller.controlApproachVelocity({0, -self.flightSpeed}, self.flightForce)
|
|
elseif args.moves["right"] then
|
|
mcontroller.controlApproachVelocity({self.flightSpeed, 0}, self.flightForce)
|
|
elseif args.moves["left"] then
|
|
mcontroller.controlApproachVelocity({-self.flightSpeed, 0}, self.flightForce)
|
|
else
|
|
mcontroller.controlApproachVelocity({0, 0}, self.flightForce)
|
|
end
|
|
|
|
mcontroller.controlParameters({
|
|
collisionEnabled = false,
|
|
gravityEnabled = false,
|
|
liquidImpedance = 0,
|
|
liquidFriction = 0
|
|
})
|
|
end
|
|
|
|
if storage.active then
|
|
tech.setParentDirectives("?fade=3399FFFF;0.4?multiply=FFFFFF66")
|
|
else
|
|
tech.setParentDirectives()
|
|
end
|
|
end
|
|
|
|
function uninit()
|
|
status.clearPersistentEffects("movementAbility")
|
|
end
|