public void SeleccionarHerramienta(int herramienta) { int antiguo = (int)herramientaSeleccionada; if (antiguo == herramienta) { return; } if (herramientaSeleccionada == HERRAMIENTA.Seleccionar) { info.EliminarSeleccion(); } herramientaSeleccionada = (HERRAMIENTA)herramienta; imagenCentral.sprite = iconosHerramientas[herramienta]; //3 es el de prioridad //Cuando cambias a Prioridad, las acciones se mostrará la prioridad, no el valor. //Vuelve a cambiar esos gráficos a cambiar de herramienta. if (herramienta == 3) { actions.actionsQueue.ChangeIconToPriority(); } else if (antiguo == 3) { actions.actionsQueue.ChangeIconToOriginal(); } barraprioridad.value = 2; }
protected void btnconfirmarH_Click(object sender, EventArgs e) { HERRAMIENTA nueva = new HERRAMIENTA { ID_HERRAMIENTA = Convert.ToInt32(lbidh.Text), NOMBRE = lbnombreh.Text, DETALLE = lbdetalleh.Text, VALOR = Convert.ToInt32(lbvalorh.Text), FECHA = Convert.ToDateTime(lbfechah.Text), ESTADO = "inactivo" }; if (con.ActualizarHerramienta(nueva)) { lbherramienta.Text = "la herramienta se dio de baja correctamente"; lbidh.Text = ""; lbnombreh.Text = ""; lbdetalleh.Text = ""; lbvalorh.Text = ""; lbfechah.Text = ""; mh1.Show(); lbnombreh.Visible = false; lbdetalleh.Visible = false; btnconfirmarH.Visible = false; gvherramientas.Visible = true; gvherramientas.DataSource = cov.buscarherras(); gvherramientas.DataBind(); } }
public bool agregarherramienta(HERRAMIENTA nuevo) { try { modelo.HERRAMIENTA.Add(nuevo); return(modelo.SaveChanges() > 0); } catch (Exception) { return(false); } }
public bool ActualizarHerramienta(HERRAMIENTA nueva) { try { HERRAMIENTA original = new HERRAMIENTA(); original = modelo.HERRAMIENTA.Find(nueva.ID_HERRAMIENTA); original.ESTADO = nueva.ESTADO; return(modelo.SaveChanges() > 0); } catch (Exception) { return(false); } }
protected void btnagregarh_Click(object sender, EventArgs e) { string nombre = ""; string detalle = ""; int valor = 0; string estado = ""; DateTime fecha = DateTime.Now; nombre = txthnombre.Text; detalle = txthdetalle.Text; estado = ddhestados.Text; if (nombre.Equals("") || detalle.Equals("")) { lbtexth.Text = "rellene campos"; mpherramienta.Show(); } else { valor = Convert.ToInt32(txthvalor.Text); if (valor == 0) { lbtexth.Text = "la herramienta no puede costar 0"; mpherramienta.Show(); } else { HERRAMIENTA nuevo = new HERRAMIENTA { NOMBRE = nombre, DETALLE = detalle, VALOR = valor, FECHA = fecha, ESTADO = estado, }; if (con.agregarherramienta(nuevo)) { lbtexth.Text = "agregado"; gvherramientas.DataBind(); txthnombre.Text = ""; txthdetalle.Text = ""; txthvalor.Text = ""; mpherramienta.Show(); } } } }
// El genérico para la mayoria de las acciones. public GameAction(TIPOACCION tipoAccion, HERRAMIENTA herramienta, Node node, Personaje worker, float duration, int prioridad, ActionsQueue queue) { this.node = node; this.tipo = tipoAccion; this.herramienta = herramienta; this.prioridad = prioridad; this.queue = queue; experience = 0; totalTime = duration; atributo = ATRIBUTO.Salud; if (worker != null) { AssignCharacter(worker); } }
public GameAction CreateAction(IntVector2 pos, HERRAMIENTA herramienta, TIPOACCION type, Personaje character = null, bool repeatable = false, int prioridad = -1, ResourceInfo[] recNecesarios = null) { if (pos.x < 0 || pos.y < 0 || pos.x >= manager.totalSize.x || pos.y >= manager.totalSize.y) { return(null); } if (herramienta == HERRAMIENTA.Cancelar || herramienta == HERRAMIENTA.Priorizar) { repeatable = true; } //Mira si esta acción ya ha sido seleccionada por una acción anterior. //Se puede crear la acción para que se pueda realizar la misma acción con más de un personaje al mismo tiempo. if (!repeatable && actionsQueue.IsActionCreated(pos)) { return(null); } if (prioridad == -1) { prioridad = (int)manager.barraprioridad.value; } else { prioridad = Mathf.Clamp(prioridad, 0, 4); } Node nodo = manager.GetNode(pos); Estructura build = (nodo != null) ? nodo.GetBuild() : null; GameAction action = new GameAction(type, herramienta, manager.GetNode(pos), null, 0, prioridad, actionsQueue); float customTime = (build != null) ? build.tiempoTotal : 1; Sprite customIcon = null; switch (herramienta) { case HERRAMIENTA.Recolectar: if (build == null) { return(null); } Recurso _resource = build.GetComponent <Recurso>(); if (_resource != null) { if (_resource.actualQuantity <= 0) //Si el recurso está vacio no te permite usarlo. { return(null); } type = _resource.actionType; switch (type) { case TIPOACCION.Minar: action.SetExperience(ATRIBUTO.Mineria, 5); break; case TIPOACCION.Talar: action.SetExperience(ATRIBUTO.Recoleccion, 3); break; } action.RegisterAction(ACTIONEVENT.OnCompleted, (gameAction) => { methods.ExtraerRecursos(_resource, gameAction); }); } else { return(null); } break; case HERRAMIENTA.Arar: if (build != null) { return(null); } type = TIPOACCION.Arar; customTime = manager.farm.tiempoArar; action.RegisterAction(ACTIONEVENT.OnCompleted, (gameAction) => { methods.ArarTierra(manager.farm.huertoPrefab, gameAction); }); action.SetExperience(ATRIBUTO.Constitucion, 1); break; case HERRAMIENTA.Construir: if (build != null) { return(null); } type = TIPOACCION.Construir; int id = manager.build.selectID; //TODO: Poner personalizado la cantidad de experiencia ha recibir. action.SetExperience(ATRIBUTO.Construccion, 5); //Almacena los recursos necesarios para la construcción de la estructura. recNecesarios = new ResourceInfo[manager.build.construcciones[id].recursosNecesarios.Length]; for (int i = 0; i < recNecesarios.Length; i++) { recNecesarios[i] = new ResourceInfo(manager.build.construcciones[id].recursosNecesarios[i].recurso, manager.build.construcciones[id].recursosNecesarios[i].cantidadNecesaria); } customTime = manager.build.construcciones[id].tiempo; customIcon = manager.build.construcciones[id].spriteModelo; action.RegisterAction(ACTIONEVENT.OnAwake, (gameAction) => { methods.ComprobarInventarioAction(gameAction); }); action.RegisterAction(ACTIONEVENT.BeforeStart, (gameAction) => { methods.ComprobarInventarioAction(gameAction); }); action.RegisterAction(ACTIONEVENT.OnCompleted, (gameAction) => { methods.Construir(id, gameAction); }); action.RegisterAction(ACTIONEVENT.OnCanceled, (gameAction) => { methods.DevolverRecursos(gameAction); }); break; case HERRAMIENTA.Priorizar: foreach (GameAction _action in actionsQueue.actions.Keys) { if (_action != null && (Vector2)_action.node.GetPosition() == pos) { _action.ChangePriority(prioridad); actionsQueue.ChangeSingleIconToPriority(_action); return(null); } } return(null); case HERRAMIENTA.Destruir: if (build == null || !build.esDestruible) { return(null); } type = TIPOACCION.Destruir; customTime = build.tiempoDestruccion; action.RegisterAction(ACTIONEVENT.OnCompleted, (GameAction) => { manager.RemoveBuildInMap(build.transform.position, 0.5f); }); action.SetExperience(ATRIBUTO.Construccion, 1); break; case HERRAMIENTA.Cancelar: foreach (GameAction _action in actionsQueue.actions.Keys) { if (_action != null && (Vector2)_action.node.GetPosition() == pos) { _action.RealizeAction(ACTIONEVENT.OnCanceled); RemoveAction(_action); return(null); } } return(null); case HERRAMIENTA.Custom: //Herramienta especial. Para realizar cosas que con las anteriores no se pueden (Como extraer cosas del almacen). switch (type) { case TIPOACCION.Almacenar: Almacen _almacen = build.GetComponent <Almacen>(); if (_almacen != null) { action.RegisterAction(ACTIONEVENT.OnCompleted, (gameAction) => { methods.AlmacenarRecursos(_almacen, gameAction); }); } else { return(null); } break; case TIPOACCION.SacarAlmacen: _almacen = build.GetComponent <Almacen>(); if (_almacen != null) { action.RegisterAction(ACTIONEVENT.OnCompleted, (gameAction) => { methods.SacarContenidoAlmacen(recNecesarios, _almacen, gameAction); }); } else { return(null); } break; case TIPOACCION.VaciarAlmacen: _almacen = build.GetComponent <Almacen>(); if (_almacen.inventario.Count > 0) { customTime = 0.5f; customIcon = manager.GetIconSprite(TIPOACCION.SacarAlmacen); action.RegisterAction(ACTIONEVENT.OnCompleted, (gameAction) => { methods.VaciarAlmacen(_almacen, gameAction); }); } else { return(null); } break; case TIPOACCION.Plantar: customTime = 0.50f; action.RegisterAction(ACTIONEVENT.OnAwake, (gameAction) => { methods.ComprobarInventarioAction(gameAction); }); action.RegisterAction(ACTIONEVENT.BeforeStart, (gameAction) => { methods.ComprobarInventarioAction(gameAction); }); action.RegisterAction(ACTIONEVENT.OnCompleted, (gameAction) => { methods.Plantar(build, gameAction); }); break; case TIPOACCION.ExtraerAgua: customTime = 0.5f; action.RegisterAction(ACTIONEVENT.OnCompleted, (gameAction) => { methods.ExtraerAgua(build, gameAction); }); break; case TIPOACCION.Pescar: type = TIPOACCION.Pescar; action.SetExperience(ATRIBUTO.Recoleccion, 1); action.RegisterAction(ACTIONEVENT.OnCompleted, (gameAction) => { methods.Pescar(build, gameAction); }); break; case TIPOACCION.Regar: customTime = 0.25f; action.RegisterAction(ACTIONEVENT.OnAwake, (gameAction) => { methods.ComprobarAgua(gameAction); }); action.RegisterAction(ACTIONEVENT.BeforeStart, (gameAction) => { methods.ComprobarAgua(gameAction); }); action.RegisterAction(ACTIONEVENT.OnCompleted, (gameAction) => { methods.Regar(build, gameAction); }); break; case TIPOACCION.Craftear: action.SetExperience(ATRIBUTO.Ingenio, 1); action.RegisterAction(ACTIONEVENT.OnAwake, (gameAction) => { methods.ComprobarInventarioAction(gameAction); }); action.RegisterAction(ACTIONEVENT.BeforeStart, (gameAction) => { methods.ComprobarInventarioAction(gameAction); }); action.RegisterAction(ACTIONEVENT.OnCompleted, (gameAction) => { methods.Craftear(build, gameAction); }); action.RegisterAction(ACTIONEVENT.OnCanceled, (gameAction) => { methods.DevolverRecursos(gameAction); }); break; } break; default: Debug.LogWarning("Herramienta no programada aún"); return(null); } GameObject icon_go = GameObject.Instantiate(manager.actionIconPrefab); SpriteRenderer actionRender = icon_go.GetComponent <SpriteRenderer>(); icon_go.transform.position = (Vector3)pos; actionRender.sprite = (customIcon == null) ? manager.GetIconSprite(type) : customIcon; action.SetTime(customTime); action.SetSprite(actionRender.sprite); action.SetResources(recNecesarios); action.AssignCharacter(character); actionsQueue.AddAction(action, actionRender); return(action); }