public function ejecutar($id_accion)
 {
     $ret = 0;
     $accGrup = AccionesGrupales::model()->findByPk($id_accion);
     if ($accGrup === null) {
         throw new Exception("Accion grupal inexistente.", 404);
     }
     $creador = $accGrup->usuarios;
     $equipo = $creador->equipos;
     $sigPartido = $equipo->sigPartido;
     //1.- Añadir bonificación al partido
     $ret = min($ret, Partidos::aumentar_factores($sigPartido->id_partido, $equipo->id_equipo, "nivel", Efectos::$datos_acciones['IncentivoEconomico']['nivel_equipo']));
     $ret = min($ret, Partidos::aumentar_factores($sigPartido->id_partido, $equipo->id_equipo, "moral", Efectos::$datos_acciones['IncentivoEconomico']['moral']));
     //2.- Dar bonificación al creador
     $ret = min($ret, Recursos::aumentar_recursos($creador->id_usuario, "influencias", Efectos::$datos_acciones['IncentivoEconomico']['bonus_creador']['influencias']));
     //3.- Devolver influencias
     $participantes = $accGrup->participaciones;
     foreach ($participantes as $participacion) {
         $infAportadas = $participacion->influencias_aportadas;
         $usuario = $participacion->usuarios_id_usuario;
         //if (Recursos::aumentar_recursos($usuario,"influencias",$infAportadas) == 0)
         if (Recursos::disminuir_influencias_bloqueadas($usuario, $infAportadas) == 0) {
             $ret = min($ret, 0);
         } else {
             $ret = -1;
         }
     }
     //Finalizar función
     return $ret;
 }
 /**
  * Ejecutar la accion
  *
  * @param int $id_usuario id del usuario que realiza la accion
  * @throws \Exception usuario no encontrado
  * @return int 0 si completada con exito ; -1 en caso contrario
  */
 public function ejecutar($id_accion)
 {
     // TODO
     $ret = 0;
     //COmpruebo si la accion existe
     $accGrup = AccionesGrupales::model()->findByPk($id_accion);
     if ($accGrup === null) {
         throw new Exception("Accion grupal inexistente.", 404);
     }
     $creador = $accGrup->usuarios;
     $equipo = $creador->equipos;
     $sigPartido = $equipo->sigPartido;
     //1.- Añadir bonificación al partido
     $ret = min($ret, Equipos::aumentar_recursos_equipo($equipo->id_equipo, "aforo_base", Efectos::$datos_acciones['FinanciarPelicula']['aforo_base']));
     $ret = min($ret, Partidos::aumentar_factores($sigPartido->id_partido, $equipo->id_equipo, "nivel", Efectos::$datos_acciones['FinanciarPelicula']['nivel_equipo']));
     //2.- Dar bonificación al creador
     $ret = min($ret, Recursos::aumentar_recursos($creador->id_usuario, "animo_gen", Efectos::$datos_acciones['FinanciarPelicula']['bonus_creador']['animo_gen']));
     $ret = min($ret, Recursos::aumentar_recursos($creador->id_usuario, "dinero_gen", Efectos::$datos_acciones['FinanciarPelicula']['bonus_creador']['dinero_gen']));
     //3.- Devolver influencias
     $participantes = $accGrup->participaciones;
     foreach ($participantes as $participacion) {
         $infAportadas = $participacion->influencias_aportadas;
         $usuario = $participacion->usuarios_id_usuario;
         //if (Recursos::aumentar_recursos($usuario,"influencias",$infAportadas) == 0) {
         if (Recursos::disminuir_influencias_bloqueadas($usuario, $infAportadas) == 0) {
             $ret = min($ret, 0);
         } else {
             $ret = -1;
         }
     }
     //4.- Finalizar funciónK
     return $ret;
 }
 public function ejecutar($id_usuario, $id_partido, $id_equipo)
 {
     $ret = 0;
     //Traer el array de efectos
     parent::ejecutar($id_usuario, $id_partido, $id_equipo);
     //Validar usuario
     $us = Usuarios::model()->findByPk($id_usuario);
     if ($us === null) {
         throw new Exception("Usuario incorrecto.", 404);
     }
     // Cojo el equipo del usuario
     $equipo = $us->equipos;
     // Modifico Los factores de ese partido
     $ret = min($ret, Partidos::aumentar_factores($id_partido, $equipo->id_equipo, "defensivo", Efectos::$datos_acciones['RetransmitirRRSS']['defensivo']));
     //Modifico los recursos Del usuario
     if (Recursos::aumentar_recursos($id_usuario, "animo", Efectos::$datos_acciones['RetransmitirRRSS']['animo']) == 0) {
         $ret = min($ret, 0);
     } else {
         $ret = -1;
     }
     // Incorporo un registro a la tabla acciones turno si el usuario aun no esta en ella
     AccionesTurno::incorporarAccion($id_usuario, $id_partido, $id_equipo);
     //Finalizar función
     return $ret;
 }
Beispiel #4
0
 public function ejecutar($id_accion)
 {
     $ret = 0;
     $accGrup = AccionesGrupales::model()->findByPk($id_accion);
     if ($accGrup === null) {
         throw new Exception("Accion grupal inexistente.", 404);
     }
     $creador = $accGrup->usuarios;
     $equipo = $creador->equipos;
     $sigPartido = $equipo->sigPartido;
     //1.- Añadir bonificación al partido
     $ret = min($ret, Partidos::aumentar_factores($sigPartido->id_partido, $equipo->id_equipo, 'ambiente', Efectos::$datos_acciones['Pintarse']['ambiente']));
     $ret = min($ret, Partidos::aumentar_factores($sigPartido->id_partido, $equipo->id_equipo, "moral", Efectos::$datos_acciones['Pintarse']['moral']));
     $ret = min($ret, Partidos::aumentar_factores($sigPartido->id_partido, $equipo->id_equipo, "ofensivo", Efectos::$datos_acciones['Pintarse']['ofensivo']));
     //2.- Dar bonificación al creador
     $ret = min($ret, Recursos::aumentar_recursos($creador->id_usuario, 'animo', Efectos::$datos_acciones['Pintarse']['bonus_creador']['animo']));
     //3.- Devolver influencias y dar animo de la accion
     $participantes = $accGrup->participaciones;
     foreach ($participantes as $participacion) {
         $infAportadas = $participacion->influencias_aportadas;
         $usuario = $participacion->usuarios_id_usuario;
         $ret = min($ret, Recursos::aumentar_recursos($usuario, "animo", Efectos::$datos_acciones['Pintarse']['animo']));
         //$ret = min($ret,Recursos::aumentar_recursos($usuario,"influencias",$infAportadas));
         $ret = min($ret, Recursos::disminuir_influencias_bloqueadas($usuario, $infAportadas));
     }
     //Finalizar función
     return $ret;
 }
Beispiel #5
0
 /**
  * Ejecutar la accion
  *
  * @param int $id_usuario id del usuario que realiza la accion
  * @throws \Exception usuario no encontrado
  * @return int 0 si completada con exito ; -1 en caso contrario
  */
 public function ejecutar($id_usuario)
 {
     // TODO
     $ret = 0;
     //Validar usuario
     $us = Usuarios::model()->findByPk($id_usuario);
     if ($us === null) {
         throw new Exception("Usuario incorrecto.", 404);
     }
     //Aumentar animo_max
     $ret = min($ret, Recursos::aumentar_recursos($id_usuario, "influencias_max", Efectos::$datos_acciones['EscribirBlog']['influencias_max']));
     return $ret;
 }
Beispiel #6
0
 /**
  * Ejecutar la accion
  *
  * @param int $id_usuario id del usuario que realiza la accion
  * @throws \Exception usuario no encontrado
  * @return int 0 si completada con exito ; -1 en caso contrario
  */
 public function ejecutar($id_usuario)
 {
     //Validar usuario
     $us = Usuarios::model()->findByPk($id_usuario);
     if ($us === null) {
         throw new Exception("Usuario incorrecto.", 404);
     }
     //Aumentar dinero
     $helper = new Helper();
     if (Recursos::aumentar_recursos($id_usuario, "dinero_gen", Efectos::$datos_acciones['Ascender']['dinero_gen']) == 0) {
         return 0;
     } else {
         return -1;
     }
 }
Beispiel #7
0
 /**
  * Ejecutar la accion
  *
  * @param int $id_usuario id del usuario que realiza la accion
  * @throws \Exception usuario no encontrado
  * @return int 0 si completada con exito ; -1 en caso contrario
  */
 public function ejecutar($id_usuario)
 {
     //Traer el array de efectos
     parent::ejecutar($id_usuario);
     //Validar usuario
     $us = Usuarios::model()->findByPk($id_usuario);
     if ($us === null) {
         throw new Exception("Usuario incorrecto.", 404);
     }
     if (Recursos::aumentar_recursos($id_usuario, "bonus_influencias", Efectos::$datos_acciones['ContratarRRPP']['bonus_jugador']['influencias']) == 0) {
         return 0;
     } else {
         return -1;
     }
 }
 public function ejecutar($id_usuario)
 {
     //Traer el array de efectos
     parent::ejecutar($id_usuario);
     //Validar usuario
     $us = Usuarios::model()->findByPk($id_usuario);
     if ($us === null) {
         throw new Exception("Usuario incorrecto.", 404);
     }
     //Aumentar ánimo
     if (Recursos::aumentar_recursos($id_usuario, "animo", Efectos::$datos_acciones['CrearseEspectativas']['animo']) == 0) {
         return 0;
     } else {
         return -1;
     }
 }
Beispiel #9
0
 /**
  * Ejecutar la accion
  *
  * @param int $id_usuario id del usuario que realiza la accion
  * @throws \Exception usuario no encontrado
  * @return int 0 si completada con exito ; -1 en caso contrario
  */
 public function ejecutar($id_usuario, $id_partido, $id_equipo)
 {
     $ret = 0;
     //Traer el array de efectos
     parent::ejecutar($id_usuario, $id_partido, $id_equipo);
     //Validar usuario
     $us = Usuarios::model()->findByPk($id_usuario);
     if ($us === null) {
         throw new Exception("Usuario incorrecto.", 404);
     }
     // Modifico el animo del usuario
     $ret = min($ret, Recursos::aumentar_recursos($id_usuario, "animo", Efectos::$datos_acciones['DoblarApuesta']['animo']));
     // Incorporo un registro a la tabla acciones turno si el usuario aun no esta en ella
     AccionesTurno::incorporarAccion($id_usuario, $id_partido, $id_equipo);
     //Finalizar función
     return $ret;
 }
 function run($args)
 {
     //no sé si debe comprobar si hay otro script ejecutandose o no
     $trans = Yii::app()->db->beginTransaction();
     try {
         $recursos = Recursos::model()->findAll();
         foreach ($recursos as $recurso) {
             //influencias
             Recursos::aumentar_recursos($recurso->usuarios_id_usuario, "influencias", $recurso->influencias_gen);
             //dinero
             Recursos::aumentar_recursos($recurso->usuarios_id_usuario, "dinero", $recurso->dinero_gen);
             //animo
             Recursos::aumentar_recursos($recurso->usuarios_id_usuario, "animo", $recurso->animo_gen);
             $trans->commit();
         }
     } catch (Exception $e) {
         $trans->rollback();
     }
 }
 public function finalizar($id_usuario, $id_habilidad)
 {
     //Validar usuario
     $us = Usuarios::model()->findByPk($id_usuario);
     if ($us === null) {
         throw new Exception("Usuario incorrecto.", 404);
     }
     //Tomar y validar habilidad
     $hab = Habilidades::model()->findByPk($id_habilidad);
     if ($hab === null) {
         throw new Exception("Habilidad incorrecta.", 404);
     }
     //Coger influencias a devolver
     $influencias = $hab->influencias;
     //Aumentar ánimo
     if (Recursos::aumentar_recursos($id_usuario, "influencias", $influencias) == 0) {
         return 0;
     } else {
         return -1;
     }
 }
 /** 
  * Funcion para finalizar una grupal dada y devolver los recursos a los participantes.
  * 
  * @param int $id_accion_grupal 
  * @param bool $eliminar indica si se debe borrar la accion 
  * @throws \Exception excepcion interna
  * @return void
  */
 public static function finalizaGrupal($id_accion_grupal, $eliminar = true)
 {
     try {
         // 1. Devolver recursos a los participantes (incluido el creador)
         $participantes = Participaciones::model()->findAllByAttributes(array('acciones_grupales_id_accion_grupal' => $id_accion_grupal));
         //Recorrer todos los participantes devolviendoles sus recursos
         $u;
         foreach ($participantes as $participante) {
             // 0. Aportar poca experencia (por el esfuerzo)
             $u = Usuarios::model()->findByPk($participante->usuarios_id_usuario);
             $u->sumarExp(Usuarios::POCA_EXP);
             // 1. Aumentar recursos a los participantes
             Recursos::aumentar_recursos($participante->usuarios_id_usuario, 'dinero', $participante->dinero_aportado);
             Recursos::aumentar_recursos($participante->usuarios_id_usuario, 'animo', $participante->animo_aportado);
             Recursos::disminuir_influencias_bloqueadas($participante->usuarios_id_usuario, $participante->influencias_aportadas);
             Recursos::aumentar_recursos($participante->usuarios_id_usuario, 'influencias', $participante->influencias_aportadas);
             // 2. Eliminar ese modelo
             Participaciones::model()->deleteAllByAttributes(array('acciones_grupales_id_accion_grupal' => $id_accion_grupal, 'usuarios_id_usuario' => $participante->usuarios_id_usuario));
         }
         // 3. Borrar grupal si es necesario
         if ($eliminar) {
             AccionesGrupales::model()->deleteByPk($id_accion_grupal);
         }
     } catch (Exception $e) {
         // Dejar el try/catch para permitir posible logging de excepciones
         throw $e;
     }
 }
 /**
  * Devuelve los recursos de las acciones grupales a los participantes
  *
  * Selecciona las acciones grupales finalizadas sin éxito y devuelve los recursos a sus
  * participantes y creador.
  *
  * @route JugadorNum12/scripts/finalizaGrupales
  *
  * @throws \Exception excepcion interna
  * @return void
  */
 public function actionFinalizaGrupales()
 {
     //Traer acciones y Helper
     Yii::import('application.components.Acciones.*');
     $tiempo = time();
     $busqueda = new CDbCriteria();
     $busqueda->addCondition(':bTiempo >= finalizacion');
     $busqueda->addCondition('completada = :bCompletada');
     $busqueda->params = array(':bTiempo' => $tiempo, ':bCompletada' => 0);
     $grupales = AccionesGrupales::model()->findAll($busqueda);
     //Iterar sobre las acciones grupales resultantes de la búsqueda
     foreach ($grupales as $gp) {
         $transaction = Yii::app()->db->beginTransaction();
         try {
             //Tomar participaciones
             $participantes = Participaciones::model()->findAllByAttributes(array('acciones_grupales_id_accion_grupal' => $gp->id_accion_grupal));
             //Recorro todos los participantes devolviendoles sus recursos.
             //Esto incluye el creador de la acción.
             foreach ($participantes as $participante) {
                 //Cojo el dinero,influencia y animo aportado por el usuario
                 $dinero = $participante->dinero_aportado;
                 $influencia = $participante->influencias_aportadas;
                 $animo = $participante->animo_aportado;
                 //Utilizo el helper para ingresarle al usuario los recursos
                 Recursos::aumentar_recursos($participante->usuarios_id_usuario, 'dinero', $dinero);
                 Recursos::aumentar_recursos($participante->usuarios_id_usuario, 'animo', $animo);
                 Recursos::aumentar_recursos($participante->usuarios_id_usuario, 'influencias', $influencia);
                 //Eliminar ese modelo
                 Participaciones::model()->deleteAllByAttributes(array('acciones_grupales_id_accion_grupal' => $gp->id_accion_grupal, 'usuarios_id_usuario' => $participante->usuarios_id_usuario));
             }
             //Borro esa accion grupal iniciada por el usuario que quiere cambiar de equipo
             AccionesGrupales::model()->deleteByPk($gp->id_accion_grupal);
             //Finalizar transacción con éxito
             $transaction->commit();
         } catch (Exception $ex) {
             //Rollback de la transacción en caso de error
             $transaction->rollback();
             throw $ex;
         }
     }
 }