Beispiel #1
0
    public FieldStateData stateToStateData(FieldState state)
    {
        FieldStateData stateData = new FieldStateData();

        stateData.explorationRate      = state.explorationRate;
        stateData.damageReceived       = state.damageReceived;
        stateData.damageDealt          = state.damageDealt;
        stateData.killed               = state.killed;
        stateData.lowDurability        = state.lowDurability;
        stateData.touchingWall         = state.touchingWall;
        stateData.enemiesKilled        = state.enemiesKilled;
        stateData.enemiesLowDurability = state.enemiesLowDurability;
        stateData.canSeeEnemies        = state.canSeeEnemies;
        stateData.touchingObstacles    = state.touchingObstacles;
        stateData.enemiesCanHit        = state.enemiesCanHit;
        stateData.attachmentsCharging  = state.attachmentsCharging;
        stateData.attachmentsCooling   = state.attachmentsCooling;
        stateData.numberOfEnemies      = state.numberOfEnemies;
        stateData.timeSinceLastAction  = state.timeSinceLastAction;
        List <PlayerPartData> attachmentsData = new List <PlayerPartData>();

        foreach (Attachment attachment in state.attachments)
        {
            PlayerPartData partData = new PlayerPartData();
            partData.id = attachment.getID();
            partData.remainingDurability = attachment.getRemainingDurability();
            attachmentsData.Add(partData);
        }
        stateData.attachments              = attachmentsData.ToArray();
        stateData.enemiesPosition          = state.enemiesPosition;
        stateData.enemiesTouchingObstacles = state.enemiesTouchingObstacles;
        stateData.actions = actionsToActionsData(state.actions);
        return(stateData);
    }
Beispiel #2
0
    public FieldState stateDataToState(FieldStateData stateData, List <Part> parts)
    {
        FieldState state = new FieldState();

        state.explorationRate      = stateData.explorationRate;
        state.damageReceived       = stateData.damageReceived;
        state.damageDealt          = stateData.damageDealt;
        state.killed               = stateData.killed;
        state.lowDurability        = stateData.lowDurability;
        state.touchingWall         = stateData.touchingWall;
        state.enemiesKilled        = stateData.enemiesKilled;
        state.enemiesLowDurability = stateData.enemiesLowDurability;
        state.canSeeEnemies        = stateData.canSeeEnemies;
        state.touchingObstacles    = stateData.touchingObstacles;
        state.enemiesCanHit        = stateData.enemiesCanHit;
        state.attachmentsCharging  = stateData.attachmentsCharging;
        state.attachmentsCooling   = stateData.attachmentsCooling;
        state.numberOfEnemies      = stateData.numberOfEnemies;
        state.timeSinceLastAction  = stateData.timeSinceLastAction;
        List <Attachment> attachments = new List <Attachment>();

        foreach (PlayerPartData partData in stateData.attachments)
        {
            Part part = parts.Find(p => p.getID() == partData.id).clone(true);
            part.damage(part.getDurability() - partData.remainingDurability);
            attachments.Add((Attachment)part);
        }
        state.attachments              = attachments.ToArray();
        state.enemiesPosition          = stateData.enemiesPosition;
        state.enemiesTouchingObstacles = stateData.enemiesTouchingObstacles;
        state.actions = actionsDataToActions(stateData.actions, attachments);
        return(state);
    }