Ejemplo n.º 1
0
    void InitCommand(Robot rob, ServerRobotCommand robCmd, Command cmd)
    {
        robCmd.lastCmd = cmd;


        switch (cmd.cmdTyp)
        {
        case CommandType.MOVE_TO:
            robCmd.currPath     = lvlCtrl.AStarPath(rob.pos, new Vector2(cmd.goalPosX, cmd.goalPosY));
            robCmd.currPathIncr = -1;
            break;

        case CommandType.CHANGE_HEIGHT:


            break;

        case CommandType.GUARD:
//			float timeForGuarding = cmd.val;

            break;

        case CommandType.SET_ANGLE:
            rob.SetGoalAngle(cmd.val);
            break;

        default:
            break;
        }
    }
Ejemplo n.º 2
0
    void PerformCommand(Robot rob, ServerRobotCommand robCmd, Command cmd)
    {
        switch (cmd.cmdTyp)
        {
        case CommandType.MOVE_TO:

//			Debug.Log("robCmd.currPathIncr: " + robCmd.currPathIncr + ", robCmd.currPath: " + robCmd.currPath + ", " + robCmd.currPath.Count);

            Vector2 nextMove = Vector2.zero;

            if (robCmd.currPathIncr >= 0)
            {
                nextMove = robCmd.currPath[robCmd.currPathIncr];
            }

//			Debug.Log("PerformCommand - IsRobotAtGoal: "+ IsRobotAtGoal(rob.pos, robCmd.currPathNextPos, nextMove) + ", rob.pos: " + rob.pos + ", robCmd.currPathNextPos: "+ robCmd.currPathNextPos + ", nextMove: "+  nextMove);

            if (robCmd.currPathIncr == -1 || IsRobotAtGoal(rob.pos, robCmd.currPathNextPos, nextMove))
            {
                robCmd.currPathIncr++;
                nextMove = robCmd.currPath[robCmd.currPathIncr];
                robCmd.currPathNextPos = Tools.CleanPos(new Vector2((int)rob.pos.x + nextMove.x, (int)rob.pos.y + nextMove.y));
            }
            else
            {
                nextMove = robCmd.currPath[robCmd.currPathIncr];
            }

            rob.transform.Translate(nextMove * 2f * Time.fixedDeltaTime);



            break;

        case CommandType.CHANGE_HEIGHT:


            break;

        case CommandType.GUARD:
            //			float timeForGuarding = cmd.val;

            break;

        case CommandType.SET_ANGLE:
//			if (rob.currAngle != rob.goalAngle){
//				rob.currAngle = Mathf.MoveTowardsAngle(rob.currAngle,rob. goalAngle, 90f * Time.fixedDeltaTime);
//
//				rob.UpdateGunRotation();
//			}
////			rob.SetGoalAngle(cmd.val);
//
            break;

        default:
            break;
        }
    }
Ejemplo n.º 3
0
    bool IsDoneWithCommand(Robot rob, ServerRobotCommand robCmd, Command cmd)
    {
        if (cmd == null)
        {
            return(true);
        }
//		rob.robotCommand.lastCmd

        switch (cmd.cmdTyp)
        {
        case CommandType.MOVE_TO:
            if (robCmd.currPathIncr == robCmd.currPath.Count - 1 && IsRobotAtGoal(rob.pos, robCmd.currPathNextPos, robCmd.currPath[robCmd.currPathIncr]))
            {
                return(true);
            }
            break;

        case CommandType.CHANGE_HEIGHT:


            break;

        case CommandType.GUARD:
            float timeForGuarding = cmd.val;

            break;

        case CommandType.SET_ANGLE:         //Instant
            return(true);

        default:
            break;
        }

        return(false);
    }