/**
  * 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, Partidos::disminuir_factores($sigPartido->id_partido, $equipo->id_equipo, "nivel", Efectos::$datos_acciones['PublicarDifamaciones']['nivel_equipo']));
     $ret = min($ret, Partidos::aumentar_factores($sigPartido->id_partido, $equipo->id_equipo, "ambiente", Efectos::$datos_acciones['PublicarDifamaciones']['ambiente']));
     $ret = min($ret, Partidos::aumentar_factores($sigPartido->id_partido, $equipo->id_equipo, "aforo", Efectos::$datos_acciones['PublicarDifamaciones']['aforo']));
     //2.- Dar bonificación al creador
     //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;
 }
Esempio n. 2
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)
 {
     // TODO
     $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);
     }
     $equipo = $us->equipos;
     // Modifico Los factores de ese partido
     $ret = min($ret, Partidos::aumentar_factores($id_partido, $equipo->id_equipo, "defensivo", Efectos::$datos_acciones['EntrevistaPartido']['defensivo']));
     $ret = min($ret, Partidos::disminuir_factores($id_partido, $equipo->id_equipo, "ofensivo", Efectos::$datos_acciones['EntrevistaPartido']['ofensivo']));
     // 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;
 }