示例#1
0
    void CollectionAndReportMarineStates(int ReportId, CodeBattle.Observer.ReportEnum ReportType)
    {
        CodeBattle.Observer.MarineReport.Builder rb = new CodeBattle.Observer.MarineReport.Builder();
        rb.Report     = ReportType;
        rb.ReporterId = ReportId;

        foreach (object _m in marines.Values)
        {
            Marine m = (Marine)(_m);
            if (m.status == CodeBattle.Status.Dead)
            {
                continue;
            }
            CodeBattle.Observer.MarineStatus.Builder msb = new CodeBattle.Observer.MarineStatus.Builder();
            msb.Id     = m.id;
            msb.Status = m.status;

            CodeBattle.Vector2.Builder vb = new CodeBattle.Vector2.Builder();
            vb.X = m.transform.position.x;
            vb.Z = m.transform.position.z;

            msb.Position = vb.BuildPartial();

            rb.AddMarines(msb);
        }

        CodeBattle.Observer.Cmd.Builder cmdBuilder = new CodeBattle.Observer.Cmd.Builder();
        cmdBuilder.Cmd_ = CodeBattle.Observer.CmdEnum.marinereport;
        cmdBuilder.Mrt  = rb.BuildPartial();

        CodeBattle.Observer.Cmd cmd = cmdBuilder.BuildPartial();
        byte[] Data = AddLengthHeader(CmdSerialize(cmd));
        SockSend(Data);
    }
示例#2
0
    byte[] CmdMarineIdleReport(int MarineId, float cx, float cz)
    {
        CodeBattle.Observer.MarineReport.Builder reportBuilder = new CodeBattle.Observer.MarineReport.Builder();
        reportBuilder.Report = CodeBattle.Observer.ReportEnum.toidle;

        CodeBattle.Observer.MarineStatus.Builder msBuilder = new CodeBattle.Observer.MarineStatus.Builder();
        msBuilder.Id     = MarineId;
        msBuilder.Status = CodeBattle.Status.Idle;

        CodeBattle.Vector2.Builder positionBuilder = new CodeBattle.Vector2.Builder();
        positionBuilder.X = cx;
        positionBuilder.Z = cz;

        msBuilder.Position = positionBuilder.BuildPartial();


        reportBuilder.Midle = msBuilder.BuildPartial();

        CodeBattle.Observer.Cmd.Builder cmdBuilder = new CodeBattle.Observer.Cmd.Builder();
        cmdBuilder.Cmd_ = CodeBattle.Observer.CmdEnum.marinereport;
        cmdBuilder.Mrt  = reportBuilder.BuildPartial();

        CodeBattle.Observer.Cmd cmd = cmdBuilder.BuildPartial();
        return(CmdSerialize(cmd));
    }
示例#3
0
    private Vector3 targetPostion; // where to move

    #endregion Fields

    #region Methods

    public CodeBattle.Observer.MarineStatus.Builder GetMarineStatus()
    {
        CodeBattle.Observer.MarineStatus.Builder b = new CodeBattle.Observer.MarineStatus.Builder();
        b.Id = id;
        b.Status = status;

        CodeBattle.Vector2.Builder vb = new CodeBattle.Vector2.Builder();
        vb.X = transform.position.x;
        vb.Z = transform.position.z;

        b.Position = vb.BuildPartial();
        return b;
    }
示例#4
0
    public CodeBattle.Observer.MarineStatus.Builder GetMarineStatus()
    {
        CodeBattle.Observer.MarineStatus.Builder b = new CodeBattle.Observer.MarineStatus.Builder();
        b.Id     = id;
        b.Status = status;

        CodeBattle.Vector2.Builder vb = new CodeBattle.Vector2.Builder();
        vb.X = transform.position.x;
        vb.Z = transform.position.z;

        b.Position = vb.BuildPartial();
        return(b);
    }
示例#5
0
    void CollectionAndReportMarineStates(int ReportId, CodeBattle.Observer.ReportEnum ReportType)
    {
        CodeBattle.Observer.MarineReport.Builder rb = new CodeBattle.Observer.MarineReport.Builder();
        rb.Report = ReportType;
        rb.ReporterId = ReportId;

        foreach(object _m in marines.Values) {
            Marine m = (Marine)(_m);
            if (m.status == CodeBattle.Status.Dead) continue;
            CodeBattle.Observer.MarineStatus.Builder msb = new CodeBattle.Observer.MarineStatus.Builder();
            msb.Id = m.id;
            msb.Status = m.status;

            CodeBattle.Vector2.Builder vb = new CodeBattle.Vector2.Builder();
            vb.X = m.transform.position.x;
            vb.Z = m.transform.position.z;

            msb.Position = vb.BuildPartial();

            rb.AddMarines(msb);
        }

        CodeBattle.Observer.Cmd.Builder cmdBuilder = new CodeBattle.Observer.Cmd.Builder();
        cmdBuilder.Cmd_ = CodeBattle.Observer.CmdEnum.marinereport;
        cmdBuilder.Mrt = rb.BuildPartial();

        CodeBattle.Observer.Cmd cmd = cmdBuilder.BuildPartial();
        byte[] Data = AddLengthHeader( CmdSerialize(cmd) );
        SockSend(Data);
    }
示例#6
0
    byte[] CmdMarineIdleReport(int MarineId, float cx, float cz)
    {
        CodeBattle.Observer.MarineReport.Builder reportBuilder = new CodeBattle.Observer.MarineReport.Builder();
        reportBuilder.Report = CodeBattle.Observer.ReportEnum.toidle;

        CodeBattle.Observer.MarineStatus.Builder msBuilder = new CodeBattle.Observer.MarineStatus.Builder();
        msBuilder.Id = MarineId;
        msBuilder.Status = CodeBattle.Status.Idle;

        CodeBattle.Vector2.Builder positionBuilder = new CodeBattle.Vector2.Builder();
        positionBuilder.X = cx;
        positionBuilder.Z = cz;

        msBuilder.Position = positionBuilder.BuildPartial();

        reportBuilder.Midle = msBuilder.BuildPartial();

        CodeBattle.Observer.Cmd.Builder cmdBuilder = new CodeBattle.Observer.Cmd.Builder();
        cmdBuilder.Cmd_ = CodeBattle.Observer.CmdEnum.marinereport;
        cmdBuilder.Mrt = reportBuilder.BuildPartial();

        CodeBattle.Observer.Cmd cmd = cmdBuilder.BuildPartial();
        return CmdSerialize(cmd);
    }