|
@@ -2,6 +2,12 @@
|
|
|
from direct.showbase.ShowBaseGlobal import *
|
|
from direct.showbase.ShowBaseGlobal import *
|
|
|
import GravityWalker
|
|
import GravityWalker
|
|
|
|
|
|
|
|
|
|
+BattleStrafe = 0
|
|
|
|
|
+
|
|
|
|
|
+def ToggleStrafe():
|
|
|
|
|
+ global BattleStrafe
|
|
|
|
|
+ BattleStrafe = not BattleStrafe
|
|
|
|
|
+
|
|
|
class BattleWalker(GravityWalker.GravityWalker):
|
|
class BattleWalker(GravityWalker.GravityWalker):
|
|
|
def __init__(self):
|
|
def __init__(self):
|
|
|
GravityWalker.GravityWalker.__init__(self)
|
|
GravityWalker.GravityWalker.__init__(self)
|
|
@@ -19,9 +25,9 @@ class BattleWalker(GravityWalker.GravityWalker):
|
|
|
# If targetNp is not available, revert back to GravityWalker.handleAvatarControls.
|
|
# If targetNp is not available, revert back to GravityWalker.handleAvatarControls.
|
|
|
# This situation occurs when the target dies, but we aren't switched out of
|
|
# This situation occurs when the target dies, but we aren't switched out of
|
|
|
# battle walker control mode.
|
|
# battle walker control mode.
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
targetNp = self.avatarNodePath.currentTarget
|
|
targetNp = self.avatarNodePath.currentTarget
|
|
|
- if targetNp == None or targetNp.isEmpty():
|
|
|
|
|
|
|
+ if not BattleStrafe or targetNp == None or targetNp.isEmpty():
|
|
|
return GravityWalker.GravityWalker.handleAvatarControls(self, task)
|
|
return GravityWalker.GravityWalker.handleAvatarControls(self, task)
|
|
|
|
|
|
|
|
# get the button states:
|
|
# get the button states:
|
|
@@ -97,6 +103,12 @@ class BattleWalker(GravityWalker.GravityWalker):
|
|
|
slideDistance = dt * self.slideSpeed
|
|
slideDistance = dt * self.slideSpeed
|
|
|
rotation = dt * self.rotationSpeed
|
|
rotation = dt * self.rotationSpeed
|
|
|
|
|
|
|
|
|
|
+ # Prevent avatar from getting too close to target
|
|
|
|
|
+ d = self.avatarNodePath.getPos(targetNp)
|
|
|
|
|
+ if (d[0]*d[0]+d[1]*d[1] < .1):
|
|
|
|
|
+ print "toooo close"
|
|
|
|
|
+ distance = 0
|
|
|
|
|
+
|
|
|
# Take a step in the direction of our previous heading.
|
|
# Take a step in the direction of our previous heading.
|
|
|
self.vel=Vec3(Vec3.forward() * distance +
|
|
self.vel=Vec3(Vec3.forward() * distance +
|
|
|
Vec3.right() * slideDistance)
|
|
Vec3.right() * slideDistance)
|