public int detectEnemy(eMapDirection dir) { int stepDistance = 0; int xStep = 0; int yStep = 0; switch (dir) { case eMapDirection.LEFT: xStep = -1; yStep = 0; break; case eMapDirection.RIGHT: xStep = 1; yStep = 0; break; case eMapDirection.TOP: xStep = 0; yStep = -1; break; case eMapDirection.BOTTOM: xStep = 0; yStep = 1; break; } int _2dx = -1; int _2dy = -1; GameLevelCommon._3dTo2d(targetToMove.x, targetToMove.z, out _2dx, out _2dy); eBrickType gridType = eBrickType.EMPTY; while (true) { _2dx = _2dx + xStep; _2dy = _2dy + yStep; gridType = (eBrickType)GameLevelCommon.instance.navData[_2dy, _2dx]; if (gridType == eBrickType.EMPTY) { ++stepDistance; } else { if (gridType == eBrickType.ACTOR) { ++stepDistance; return(stepDistance); } else if (gridType == eBrickType.OCEAN || gridType == eBrickType.AWARD || gridType == eBrickType.SOIL || gridType == eBrickType.STEEL) { ++stepDistance; } else { return(-1); } } } }
public void updateGridInfo() { int _2dx = -1; int _2dy = -1; GameLevelCommon._3dTo2d(targetToMove.x, targetToMove.z, out _2dx, out _2dy); GameLevelCommon.instance.navData[_2dy, _2dx] = (byte)eBrickType.ACTOR; if ((gridX > 0 && gridX < 24 && gridY > 0 && gridY < 24) && (gridX != _2dx || gridY != _2dy)) { eBrickType originType = (eBrickType)GameLevelCommon.instance.navData[gridY, gridX]; if (originType != eBrickType.ACTOR) { Debug.LogWarning(this.GetName()); Debug.LogWarning(originType); Debug.LogWarning("Grid info of actor update failed!"); } GameLevelCommon.instance.navData[gridY, gridX] = (byte)eBrickType.EMPTY; } gridX = _2dx; gridY = _2dy; }
public void shootByBullet(string name, int damage) { if ((damage < 2 && type == eBrickType.STEEL) || type == eBrickType.OCEAN || type == eBrickType.TREE || type == eBrickType.ICE) { return; } int idx = name.IndexOf("_"); string strNum = name.Substring(idx + 1); int subBrickIndex = Convert.ToInt32(strNum); switch (subBrickIndex) { case 0: partFirst = false; break; case 1: partSecond = false; break; case 2: partThird = false; break; case 3: partFourth = false; break; } if (!partFirst && !partSecond && !partThird && !partFourth) { int _2dx = -1; int _2dy = -1; GameLevelCommon._3dTo2d(this.transform.position.x, this.transform.position.z, out _2dx, out _2dy); GameLevelCommon.instance.navData[_2dy, _2dx] = (byte)eBrickType.EMPTY; GameLevelCommon.instance.creditSystem.addBrickDestroyCredit(this); GameObject.Destroy(this.gameObject); } }
public behaviac.EBTStatus findPath(Vector3 dest, int walkLevel) { if (isMoving) { return(behaviac.EBTStatus.BT_RUNNING); } GameLevelCommon.instance.pathFindingSystem.walkLevel = walkLevel; int fromX = -1; int fromY = -1; int toX = -1; int toY = -1; GameLevelCommon._3dTo2d(transform.position.x, transform.position.z, out fromX, out fromY); GameLevelCommon._3dTo2d(dest.x, dest.z, out toX, out toY); pathResult = GameLevelCommon.instance.pathFindingSystem.pathFinding(fromX, fromY, toX, toY); if (pathResult == null || pathResult.Count == 0) { return(behaviac.EBTStatus.BT_FAILURE); } else { return(behaviac.EBTStatus.BT_SUCCESS); } }
private behaviac.EBTStatus moveAGrid(Vector3 targetPos) { Vector3 deltaVector = targetPos - transform.position; if (!isMoving) { if (deltaVector.sqrMagnitude < 0.01f) { return(behaviac.EBTStatus.BT_SUCCESS); } } if (!isMoving && !isRotating) { siteStartToMove = transform.localPosition; int _2dx = -1; int _2dy = -1; GameLevelCommon._3dTo2d(targetPos.x, targetPos.z, out _2dx, out _2dy); if (_2dx < 0 || _2dx > 24 || _2dy < 0 || _2dy > 24) { Debug.LogError("Out of Map Range: " + _2dx.ToString() + " - " + _2dy.ToString()); Debug.LogError(targetToMove); } bool wakable = GameLevelCommon.instance.isPointWakable(_2dx, _2dy, GameLevelCommon.defaultWalkLevel); if (!wakable) { return(behaviac.EBTStatus.BT_FAILURE); } targetToMove = targetPos; updateGridInfo(); isMoving = true; moveLerpFactor = 0.0f; } return(behaviac.EBTStatus.BT_RUNNING); }
public static int getLocomotionKey(Vector3 position, Vector3 direction) { int key = int.MinValue; int stepX = Mathf.RoundToInt(direction.x); int stepY = -Mathf.RoundToInt(direction.z); if (Mathf.Abs(stepX) + Mathf.Abs(stepY) > 1) { Debug.LogWarning("Bullet direction error! -> " + stepX.ToString() + " : " + stepY.ToString()); return(key); } int _2dx = -1; int _2dy = -1; GameLevelCommon._3dTo2d(position.x, position.z, out _2dx, out _2dy); if (_2dx == -1 || _2dy == -1) { return(key); } if (Mathf.Abs(stepX) == 0 && Mathf.Abs(stepY) == 1) { // vertical key = (_2dx + 101) * stepY; } else if (Mathf.Abs(stepX) == 1 && Mathf.Abs(stepY) == 0) { // horizonal key = (_2dy + 1) * stepX; } else { Debug.LogError("Bullet direction error!"); } return(key); }
static partial void registerMeta() { // --------------------------------------------------------------------- // properties // --------------------------------------------------------------------- AgentMeta meta; // behaviac.Agent meta = new AgentMeta(); _agentMetas[2436498804] = meta; meta.RegisterMethod(1045109914, new CAgentStaticMethodVoid <string>(delegate(string param0) { behaviac.Agent.LogMessage(param0); })); meta.RegisterMethod(2521019022, new CMethod_behaviac_Agent_VectorAdd()); meta.RegisterMethod(2306090221, new CMethod_behaviac_Agent_VectorClear()); meta.RegisterMethod(3483755530, new CMethod_behaviac_Agent_VectorContains()); meta.RegisterMethod(505785840, new CMethod_behaviac_Agent_VectorLength()); meta.RegisterMethod(502968959, new CMethod_behaviac_Agent_VectorRemove()); // GameActor meta = new AgentMeta(); _agentMetas[1627260109] = meta; meta.RegisterMemberProperty(2753746913, new CMemberProperty <float>("currentOrientation", delegate(Agent self, float value) { ((GameActor)self).currentOrientation = value; }, delegate(Agent self) { return(((GameActor)self).currentOrientation); })); meta.RegisterMemberProperty(1756701828, new CMemberProperty <eGameForce>("force", delegate(Agent self, eGameForce value) { ((GameActor)self).force = value; }, delegate(Agent self) { return(((GameActor)self).force); })); meta.RegisterMemberProperty(4158177446, new CMemberProperty <int>("gameScore", delegate(Agent self, int value) { ((GameActor)self).gameScore = value; }, delegate(Agent self) { return(((GameActor)self).gameScore); })); meta.RegisterMethod(4199097511, new CAgentMethod <behaviac.EBTStatus, UnityEngine.Vector3, int>(delegate(Agent self, UnityEngine.Vector3 param0, int param1) { return(((GameActor)self).findPath(param0, param1)); })); meta.RegisterMethod(1626091144, new CAgentMethod <eMapDirection, eMapDirection>(delegate(Agent self, eMapDirection param0) { return(((GameActor)self).getBestMoveDirection(param0)); })); meta.RegisterMethod(3755356592, new CAgentMethod <int>(delegate(Agent self) { return(((GameActor)self).getPathDistance()); })); meta.RegisterMethod(3252698044, new CAgentMethod <behaviac.EBTStatus>(delegate(Agent self) { return(((GameActor)self).moveForward()); })); meta.RegisterMethod(1961188964, new CAgentMethod <behaviac.EBTStatus, eMapDirection>(delegate(Agent self, eMapDirection param0) { return(((GameActor)self).moveToDirection(param0)); })); meta.RegisterMethod(3698607782, new CAgentMethod <behaviac.EBTStatus>(delegate(Agent self) { return(((GameActor)self).navigate()); })); meta.RegisterMethod(2618631093, new CAgentMethod <behaviac.EBTStatus, float>(delegate(Agent self, float param0) { return(((GameActor)self).rotateToAngle(param0)); })); meta.RegisterMethod(1045109914, new CAgentStaticMethodVoid <string>(delegate(string param0) { GameActor.LogMessage(param0); })); meta.RegisterMethod(2521019022, new CMethod_behaviac_Agent_VectorAdd()); meta.RegisterMethod(2306090221, new CMethod_behaviac_Agent_VectorClear()); meta.RegisterMethod(3483755530, new CMethod_behaviac_Agent_VectorContains()); meta.RegisterMethod(505785840, new CMethod_behaviac_Agent_VectorLength()); meta.RegisterMethod(502968959, new CMethod_behaviac_Agent_VectorRemove()); // GameLevelCommon meta = new AgentMeta(); _agentMetas[1628794678] = meta; meta.RegisterMemberProperty(3158683272, new CStaticMemberProperty <int>("actorWalkLevel", delegate(int value) { GameLevelCommon.actorWalkLevel = value; }, delegate() { return(GameLevelCommon.actorWalkLevel); })); meta.RegisterMemberProperty(2745407180, new CStaticMemberProperty <int>("allWalkLevel", delegate(int value) { GameLevelCommon.allWalkLevel = value; }, delegate() { return(GameLevelCommon.allWalkLevel); })); meta.RegisterMemberProperty(986146567, new CStaticMemberProperty <int>("bulletWalkLevel", delegate(int value) { GameLevelCommon.bulletWalkLevel = value; }, delegate() { return(GameLevelCommon.bulletWalkLevel); })); meta.RegisterMemberProperty(592530272, new CStaticMemberProperty <int>("defaultWalkLevel", delegate(int value) { GameLevelCommon.defaultWalkLevel = value; }, delegate() { return(GameLevelCommon.defaultWalkLevel); })); meta.RegisterMemberProperty(70435140, new CMemberProperty <bool>("isPlayerAlive", delegate(Agent self, bool value) { ((GameLevelCommon)self).isPlayerAlive = value; }, delegate(Agent self) { return(((GameLevelCommon)self).isPlayerAlive); })); meta.RegisterMemberProperty(707149732, new CStaticMemberProperty <int>("soilSteelOceanWalkLevel", delegate(int value) { GameLevelCommon.soilSteelOceanWalkLevel = value; }, delegate() { return(GameLevelCommon.soilSteelOceanWalkLevel); })); meta.RegisterMemberProperty(4227530859, new CStaticMemberProperty <int>("soilSteelWalkLevel", delegate(int value) { GameLevelCommon.soilSteelWalkLevel = value; }, delegate() { return(GameLevelCommon.soilSteelWalkLevel); })); meta.RegisterMemberProperty(4263539745, new CStaticMemberProperty <int>("soilWalkLevel", delegate(int value) { GameLevelCommon.soilWalkLevel = value; }, delegate() { return(GameLevelCommon.soilWalkLevel); })); meta.RegisterMethod(264642526, new CAgentMethodVoid(delegate(Agent self) { ((GameLevelCommon)self).continueGame(); })); meta.RegisterMethod(30218961, new CAgentMethod <int, int>(delegate(Agent self, int param0) { return(((GameLevelCommon)self).getActorLifeCount(param0)); })); meta.RegisterMethod(3548626221, new CMethod_GameLevelCommon_getAvailabeMoveDirection()); meta.RegisterMethod(436701902, new CAgentMethod <UnityEngine.Vector3, int>(delegate(Agent self, int param0) { return(((GameLevelCommon)self).getAwardPosition(param0)); })); meta.RegisterMethod(2965064745, new CMethod_GameLevelCommon_getBrickType()); meta.RegisterMethod(544003837, new CAgentStaticMethod <UnityEngine.Color, List <UnityEngine.Color>, int>(delegate(List <UnityEngine.Color> param0, int param1) { return(GameLevelCommon.getColorArrayElement(param0, param1)); })); meta.RegisterMethod(117177237, new CAgentMethod <int>(delegate(Agent self) { return(((GameLevelCommon)self).getEnemyCount()); })); meta.RegisterMethod(3697387725, new CMethod_GameLevelCommon_getEnemyPosition()); meta.RegisterMethod(376329892, new CAgentStaticMethod <eGameForce, List <eGameForce>, int>(delegate(List <eGameForce> param0, int param1) { return(GameLevelCommon.getGameForceArrayElement(param0, param1)); })); meta.RegisterMethod(837399323, new CAgentStaticMethod <int, List <int>, int>(delegate(List <int> param0, int param1) { return(GameLevelCommon.getIntArrayElement(param0, param1)); })); meta.RegisterMethod(245727536, new CAgentMethod <int>(delegate(Agent self) { return(((GameLevelCommon)self).getNearestAwardID()); })); meta.RegisterMethod(3067406351, new CAgentMethod <behaviac.Agent, eGameForce>(delegate(Agent self, eGameForce param0) { return(((GameLevelCommon)self).getNearestEnemy(param0)); })); meta.RegisterMethod(3589271143, new CAgentMethod <behaviac.Agent>(delegate(Agent self) { return(((GameLevelCommon)self).getPlayer()); })); meta.RegisterMethod(570880473, new CAgentStaticMethod <string, List <string>, int>(delegate(List <string> param0, int param1) { return(GameLevelCommon.getStringArrayElement(param0, param1)); })); meta.RegisterMethod(1207213688, new CAgentMethod <behaviac.EBTStatus, int>(delegate(Agent self, int param0) { return(((GameLevelCommon)self).isActorAlive(param0)); })); meta.RegisterMethod(3613902360, new CAgentMethod <behaviac.EBTStatus>(delegate(Agent self) { return(((GameLevelCommon)self).isAllEnemyDeadForever()); })); meta.RegisterMethod(934651765, new CAgentMethod <bool, int>(delegate(Agent self, int param0) { return(((GameLevelCommon)self).isAwardExist(param0)); })); meta.RegisterMethod(2593994091, new CAgentMethod <bool, eBrickType, int>(delegate(Agent self, eBrickType param0, int param1) { return(((GameLevelCommon)self).isBrickTypeWakable(param0, param1)); })); meta.RegisterMethod(2324673246, new CAgentMethod <behaviac.EBTStatus>(delegate(Agent self) { return(((GameLevelCommon)self).isPlayerDeadForever()); })); meta.RegisterMethod(189354342, new CAgentMethod <bool, int, int, int>(delegate(Agent self, int param0, int param1, int param2) { return(((GameLevelCommon)self).isPointWakable(param0, param1, param2)); })); meta.RegisterMethod(2402022264, new CAgentMethod <float, float, float>(delegate(Agent self, float param0, float param1) { return(((GameLevelCommon)self).randomNumberFloat(param0, param1)); })); meta.RegisterMethod(836754027, new CAgentMethod <int, int, int>(delegate(Agent self, int param0, int param1) { return(((GameLevelCommon)self).randomNumberInt(param0, param1)); })); meta.RegisterMethod(616993231, new CAgentMethodVoid <int, int>(delegate(Agent self, int param0, int param1) { ((GameLevelCommon)self).setActorLifeCount(param0, param1); })); meta.RegisterMethod(4216187258, new CAgentMethodVoid <int>(delegate(Agent self, int param0) { ((GameLevelCommon)self).setMainCharID(param0); })); meta.RegisterMethod(785913501, new CAgentMethod <behaviac.EBTStatus>(delegate(Agent self) { return(((GameLevelCommon)self).showCredit()); })); meta.RegisterMethod(2309507932, new CAgentMethod <behaviac.EBTStatus, int, int, int, float>(delegate(Agent self, int param0, int param1, int param2, float param3) { return(((GameLevelCommon)self).spawnAward(param0, param1, param2, param3)); })); meta.RegisterMethod(39741690, new CMethod_GameLevelCommon_spawnEffect()); meta.RegisterMethod(40725768, new CAgentMethod <int, string, UnityEngine.Color, int>(delegate(Agent self, string param0, UnityEngine.Color param1, int param2) { return(((GameLevelCommon)self).spawnGameActor1(param0, param1, param2)); })); meta.RegisterMethod(692076235, new CAgentMethod <int, string, int, UnityEngine.Color>(delegate(Agent self, string param0, int param1, UnityEngine.Color param2) { return(((GameLevelCommon)self).spawnGameActor2(param0, param1, param2)); })); meta.RegisterMethod(811274122, new CAgentMethod <int, string, UnityEngine.Color>(delegate(Agent self, string param0, UnityEngine.Color param1) { return(((GameLevelCommon)self).spawnGameActor3(param0, param1)); })); meta.RegisterMethod(2132449613, new CAgentMethod <int, eGameForce, string, int, UnityEngine.Color, int>(delegate(Agent self, eGameForce param0, string param1, int param2, UnityEngine.Color param3, int param4) { return(((GameLevelCommon)self).spawnGameActor4(param0, param1, param2, param3, param4)); })); meta.RegisterMethod(2412112748, new CAgentMethod <int, eGameForce>(delegate(Agent self, eGameForce param0) { return(((GameLevelCommon)self).spawnRandomActor(param0)); })); meta.RegisterMethod(2970214778, new CAgentMethodVoid <bool>(delegate(Agent self, bool param0) { ((GameLevelCommon)self).stopGame(param0); })); meta.RegisterMethod(1045109914, new CAgentStaticMethodVoid <string>(delegate(string param0) { GameLevelCommon.LogMessage(param0); })); meta.RegisterMethod(2521019022, new CMethod_behaviac_Agent_VectorAdd()); meta.RegisterMethod(2306090221, new CMethod_behaviac_Agent_VectorClear()); meta.RegisterMethod(3483755530, new CMethod_behaviac_Agent_VectorContains()); meta.RegisterMethod(505785840, new CMethod_behaviac_Agent_VectorLength()); meta.RegisterMethod(502968959, new CMethod_behaviac_Agent_VectorRemove()); // Player meta = new AgentMeta(); _agentMetas[912457846] = meta; meta.RegisterMemberProperty(622841434, new CMemberProperty <int>("damageLevel", delegate(Agent self, int value) { ((Player)self).damageLevel = value; }, delegate(Agent self) { return(((Player)self).damageLevel); })); meta.RegisterMemberProperty(2269881519, new CMemberProperty <int>("hp", delegate(Agent self, int value) { ((Player)self).hp = value; }, delegate(Agent self) { return(((Player)self).hp); })); meta.RegisterMemberProperty(767337018, new CMemberProperty <int>("Index", delegate(Agent self, int value) { ((Player)self).Index = value; }, delegate(Agent self) { return(((Player)self).Index); })); meta.RegisterMemberProperty(2753746913, new CMemberProperty <float>("currentOrientation", delegate(Agent self, float value) { ((Player)self).currentOrientation = value; }, delegate(Agent self) { return(((Player)self).currentOrientation); })); meta.RegisterMemberProperty(1756701828, new CMemberProperty <eGameForce>("force", delegate(Agent self, eGameForce value) { ((Player)self).force = value; }, delegate(Agent self) { return(((Player)self).force); })); meta.RegisterMemberProperty(4158177446, new CMemberProperty <int>("gameScore", delegate(Agent self, int value) { ((Player)self).gameScore = value; }, delegate(Agent self) { return(((Player)self).gameScore); })); meta.RegisterCustomizedProperty(525979889, new CCustomizedProperty <behaviac.EBTStatus>(525979889, "Status", "BT_INVALID")); meta.RegisterMethod(3557495925, new CAgentMethod <behaviac.EBTStatus, float>(delegate(Agent self, float param0) { return(((Player)self).aimToAngle(param0)); })); meta.RegisterMethod(3177487640, new CAgentMethod <behaviac.EBTStatus, UnityEngine.Vector3>(delegate(Agent self, UnityEngine.Vector3 param0) { return(((Player)self).aimToTarget(param0)); })); meta.RegisterMethod(2668400177, new CAgentMethod <behaviac.EBTStatus, int>(delegate(Agent self, int param0) { return(((Player)self).canDestroyBrick(param0)); })); meta.RegisterMethod(2108158066, new CAgentMethod <int, eMapDirection>(delegate(Agent self, eMapDirection param0) { return(((Player)self).detectEnemy(param0)); })); meta.RegisterMethod(123494839, new CAgentMethod <float>(delegate(Agent self) { return(((Player)self).detectNearestEnemyInView()); })); meta.RegisterMethod(1386074925, new CAgentMethod <behaviac.EBTStatus>(delegate(Agent self) { return(((Player)self).findNearestEnemy()); })); meta.RegisterMethod(554947907, new CAgentMethod <behaviac.EBTStatus>(delegate(Agent self) { return(((Player)self).fire()); })); meta.RegisterMethod(3079621360, new CMethod_Player_getInfo()); meta.RegisterMethod(1558361042, new CMethod_Player_getTarget()); meta.RegisterMethod(3199795965, new CAgentMethod <eMapDirection, UnityEngine.Vector3>(delegate(Agent self, UnityEngine.Vector3 param0) { return(((Player)self).locationTendencyToTarget(param0)); })); meta.RegisterMethod(1405399204, new CAgentMethod <behaviac.EBTStatus, UnityEngine.Vector3>(delegate(Agent self, UnityEngine.Vector3 param0) { return((behaviac.EBTStatus)AgentMetaVisitor.ExecuteMethod(self, "moveto", new object[] { param0 })); })); meta.RegisterMethod(354068350, new CMethod_Player_predicateFirePoint()); meta.RegisterMethod(251027700, new CAgentMethodVoid <float, int>(delegate(Agent self, float param0, int param1) { ((Player)self).printf(param0, param1); })); meta.RegisterMethod(4199097511, new CAgentMethod <behaviac.EBTStatus, UnityEngine.Vector3, int>(delegate(Agent self, UnityEngine.Vector3 param0, int param1) { return(((Player)self).findPath(param0, param1)); })); meta.RegisterMethod(1626091144, new CAgentMethod <eMapDirection, eMapDirection>(delegate(Agent self, eMapDirection param0) { return(((Player)self).getBestMoveDirection(param0)); })); meta.RegisterMethod(3755356592, new CAgentMethod <int>(delegate(Agent self) { return(((Player)self).getPathDistance()); })); meta.RegisterMethod(3252698044, new CAgentMethod <behaviac.EBTStatus>(delegate(Agent self) { return(((Player)self).moveForward()); })); meta.RegisterMethod(1961188964, new CAgentMethod <behaviac.EBTStatus, eMapDirection>(delegate(Agent self, eMapDirection param0) { return(((Player)self).moveToDirection(param0)); })); meta.RegisterMethod(3698607782, new CAgentMethod <behaviac.EBTStatus>(delegate(Agent self) { return(((Player)self).navigate()); })); meta.RegisterMethod(2618631093, new CAgentMethod <behaviac.EBTStatus, float>(delegate(Agent self, float param0) { return(((Player)self).rotateToAngle(param0)); })); meta.RegisterMethod(1045109914, new CAgentStaticMethodVoid <string>(delegate(string param0) { Player.LogMessage(param0); })); meta.RegisterMethod(2521019022, new CMethod_behaviac_Agent_VectorAdd()); meta.RegisterMethod(2306090221, new CMethod_behaviac_Agent_VectorClear()); meta.RegisterMethod(3483755530, new CMethod_behaviac_Agent_VectorContains()); meta.RegisterMethod(505785840, new CMethod_behaviac_Agent_VectorLength()); meta.RegisterMethod(502968959, new CMethod_behaviac_Agent_VectorRemove()); AgentMeta.Register <behaviac.Agent>("behaviac.Agent"); AgentMeta.Register <behaviac.EBTStatus>("behaviac.EBTStatus"); AgentMeta.Register <eBrickType>("eBrickType"); AgentMeta.Register <eGameForce>("eGameForce"); AgentMeta.Register <eMapDirection>("eMapDirection"); AgentMeta.Register <GameActor>("GameActor"); AgentMeta.Register <GameLevelCommon>("GameLevelCommon"); AgentMeta.Register <Player>("Player"); AgentMeta.Register <System.Object>("System.Object"); AgentMeta.Register <UnityEngine.Color>("UnityEngine.Color"); AgentMeta.Register <UnityEngine.Transform>("UnityEngine.Transform"); AgentMeta.Register <UnityEngine.Vector3>("UnityEngine.Vector3"); }
public behaviac.EBTStatus navigate() { GameLevelCommon.instance.dangerousBullets = null; if (pathResult == null || pathResult.Count == 0) { return(behaviac.EBTStatus.BT_FAILURE); } if (isMoving || isRotating) { return(behaviac.EBTStatus.BT_RUNNING); } else { int currect2DX = -1; int currect2DY = -1; GameLevelCommon._3dTo2d(transform.localPosition.x, transform.localPosition.z, out currect2DX, out currect2DY); AStarPathFinding._2dPosition targetNode = pathResult[0] as AStarPathFinding._2dPosition; float target3DX = 0.0f; float target3DZ = 0.0f; if (currect2DX == targetNode.x && currect2DY == targetNode.y) { pathResult.RemoveAt(0); if (pathResult.Count == 0) { return(behaviac.EBTStatus.BT_SUCCESS); } else { // todo: targetNode = pathResult[0] as AStarPathFinding._2dPosition; GameLevelCommon._2dTo3d(targetNode.x, targetNode.y, out target3DX, out target3DZ); eMapDirection direction = GameLevelCommon.getRelativeDirection(currect2DX, currect2DY, targetNode.x, targetNode.y); if (dodgeFromDanager) { eGameForce dodgeForce = eGameForce.UNKNOWN_FORCE; if (!GameLevelCommon.instance.isMelee) { if (force == eGameForce.RED_FORCE) { dodgeForce = eGameForce.BLUE_FORCE; } else if (force == eGameForce.BLUE_FORCE) { dodgeForce = eGameForce.RED_FORCE; } } List <kBulletStatus> dangerousBullet = GameLevelCommon.instance.dangerRecord.estimate(new Vector3(target3DX, 0, target3DZ), dodgeForce); if (dangerousBullet != null && dangerousBullet.Count > 0) { GameLevelCommon.instance.dangerousBullets = dangerousBullet; GameLevelCommon.instance.creditSystem.addDodgeFromDangerCredit(dangerousBullet.Count); return(behaviac.EBTStatus.BT_FAILURE); } } return(moveToDirection(direction)); } } else { // todo: targetNode = pathResult[0] as AStarPathFinding._2dPosition; GameLevelCommon._2dTo3d(targetNode.x, targetNode.y, out target3DX, out target3DZ); eMapDirection direction = GameLevelCommon.getRelativeDirection(currect2DX, currect2DY, targetNode.x, targetNode.y); if (dodgeFromDanager) { eGameForce dodgeForce = eGameForce.UNKNOWN_FORCE; if (!GameLevelCommon.instance.isMelee) { if (force == eGameForce.RED_FORCE) { dodgeForce = eGameForce.BLUE_FORCE; } else if (force == eGameForce.BLUE_FORCE) { dodgeForce = eGameForce.RED_FORCE; } } List <kBulletStatus> dangerousBullet = GameLevelCommon.instance.dangerRecord.estimate(new Vector3(target3DX, 0, target3DZ), dodgeForce); if (dangerousBullet != null && dangerousBullet.Count > 0) { GameLevelCommon.instance.dangerousBullets = dangerousBullet; GameLevelCommon.instance.creditSystem.addDodgeFromDangerCredit(dangerousBullet.Count); return(behaviac.EBTStatus.BT_FAILURE); } } return(moveToDirection(direction)); } } }