Exemplo n.º 1
0
 private function saveFractalEdits($fractal_id, $results)
 {
     $fractal = new FateFractal($fractal_id);
     $update_modeskills = 0;
     $made_update = 0;
     $dbw = wfGetDB(DB_MASTER);
     foreach ($results['delete'] as $stat_id => $junk) {
         if ($fractal->stats_by_id[$stat_id]->{stat_type} == FateGameGlobals::STAT_MODE) {
             $update_modeskills = 1;
         }
         $res = $dbw->delete('fate_fractal_stat', array('fractal_stat_id' => $stat_id));
         $made_update = 1;
     }
     foreach ($results['edit'] as $stat_id => $changes) {
         $updates = array('modified_date' => $dbw->timestamp());
         if ($fractal->stats_by_id[$stat_id]->{stat_type} == FateGameGlobals::STAT_MODE) {
             $update_modeskills = 1;
         }
         foreach ($changes as $field => $change) {
             if ($fractal->stats_by_id[$stat_id]->{stat_type} == FateGameGlobals::STAT_MODE && $field == 'field') {
                 $updates['stat_field'] = $fractal->fate_game->modes_by_id[$change]['label'];
                 $updates['parent_id'] = $change;
             } else {
                 $updates['stat_' . $field] = $change;
             }
         }
         $dbw->update('fate_fractal_stat', $updates, array('fractal_stat_id' => $stat_id));
         $made_update = 1;
     }
     foreach ($results['new'] as $stat_type => $rows) {
         foreach ($rows as $row => $data) {
             if ($row == 'max') {
                 continue;
             }
             $inserts = array('fractal_id' => $fractal_id, 'stat_type' => $stat_type, 'modified_date' => $dbw->timestamp());
             if ($stat_type == FateGameGlobals::STAT_MODE) {
                 $update_modeskills = 1;
                 $inserts['parent_id'] = $data['field'];
                 $inserts['stat_value'] = $data['value'];
                 $inserts['stat_field'] = $fractal->fate_game->modes_by_id[$data['field']]['label'];
             } else {
                 foreach ($data as $field => $value) {
                     $inserts['stat_' . $field] = $value;
                 }
                 if ($stat_type == FateGameGlobals::STAT_SKILL && $fractal->fate_game->skill_distribution == FateGameGlobals::SKILL_DISTRIBUTION_MODES) {
                     $inserts['is_discipline'] = 1;
                 }
             }
             $dbw->insert('fate_fractal_stat', $inserts);
             $made_update = 1;
         }
     }
     if ($made_update) {
         $dbw->update('fate_fractal', array('update_date' => $dbw->timestamp()), array('fractal_id' => $fractal_id));
     }
     if ($update_modeskills) {
         $fractal->resetModeSkills();
     }
 }