Beispiel #1
0
        private HttpResponseMessage SaveBattleProgress(BattleProgressRegistration progress, int playerId)
        {
            Battle currentBattle = Battle.BattleByCode(progress.BattleCode);

            if (currentBattle == null)
            {
                var errorResponse = new HttpResponseMessage(HttpStatusCode.NotFound);
                errorResponse.ReasonPhrase = "Battle not found";
                return(errorResponse);
            }
            if (currentBattle.PlayerId != playerId)
            {
                var errorResponse = new HttpResponseMessage(HttpStatusCode.Forbidden);
                errorResponse.ReasonPhrase = "Battle ownership trouble";
                return(errorResponse);
            }

            currentBattle.CurrentCycle                 = progress.CurrentCycle;
            currentBattle.CurrentStage                 = progress.CurrentStage;
            currentBattle.MaxOpenedCycle               = progress.MaxOpenedCycle;
            currentBattle.MaxOpenedStage               = progress.MaxOpenedStage;
            currentBattle.ShipOpenedSkills             = progress.ShipSkills;
            currentBattle.ShipExperience               = progress.battleExperience.Experience;
            currentBattle.ShipSkillPoints              = progress.battleExperience.skillPoints;
            currentBattle.ShipNextSkillPointExperience = progress.battleExperience.nextSkillPointExperience;
            currentBattle.ShipTotalSkillPointsReceived = progress.battleExperience.totalSkillPointsReceived;
            currentBattle.ModuleSkillsJsonCompressed   = progress.ModuleSkillsSerializedString;
            currentBattle.SaveData();
            currentBattle.GainedResources = progress.GainedResources;
            progress.GainedResources.SaveData(PlayerResources.StorageType.SpaceShip, currentBattle.RigId, playerId);

            var response = new HttpResponseMessage(HttpStatusCode.OK);

            return(response);
        }
Beispiel #2
0
        public HttpResponseMessage RegisterBattleProgress(BattleProgressRegistration progress)
        {
            string steamId  = User.Identity.Name;
            int    playerId = PlayerDataSql.PlayerId(steamId);

            return(SaveBattleProgress(progress, playerId));
        }
Beispiel #3
0
    public void RegisterBattleCompleted(BattleProgressRegistration progress)
    {
        string q;

        //0. Save main data
        SaveData();

        //1. Transfer property from ship to the main warehouse
        progress.GainedResources.TransferToWarehouse(PlayerResources.StorageType.SpaceShip, RigId, PlayerId);

        //2. Update data in battles table
        q = $@"
            UPDATE battles SET
                ongoing = 0,
                date_complete = GETDATE(),
                successfull = 1,
                current_cycle = 0,
                current_stage = 0
            WHERE
                id = {Id}";
        DataConnection.Execute(q);

        //3. Insert a record in story table
        q = $@"
            INSERT INTO players_progress (
                player,
                object_type,
                object_id,
                date_completed
            ) VALUES (
                {PlayerId},
                'battle',
                {BattleSceneTypeId},
                GETDATE()
            )";
        DataConnection.Execute(q);

        //4. Clear rig ids for officers, ship and modules, and rig themselves
        q = $@"
            UPDATE crew_officers SET rig_id = 0 WHERE player_id = {PlayerId} AND rig_id = {RigId}
            UPDATE players_ships SET rig_id = 0 WHERE player_id = {PlayerId} AND rig_id = {RigId}
            UPDATE players_modules SET rig_id = 0 WHERE player_id = {PlayerId} AND rig_id = {RigId}
            --DELETE FROM ss_rigs WHERE id = {RigId}
            --DELETE FROM ss_rigs_slots WHERE ss_rig_id = {RigId}
            ";
        DataConnection.Execute(q);
    }
Beispiel #4
0
        public HttpResponseMessage RegisterBattleCompleted(BattleProgressRegistration progress)
        {
            string steamId  = User.Identity.Name;
            int    playerId = PlayerDataSql.PlayerId(steamId);

            var response = SaveBattleProgress(progress, playerId);

            if (!response.IsSuccessStatusCode)
            {
                return(response);
            }

            Battle currentBattle = Battle.BattleByCode(progress.BattleCode);

            currentBattle.RegisterBattleCompleted(progress);

            return(response);
        }