Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Buscar y recoger
- public void ObtenerObjeto(Sprite __icon, int __cantidad, int __stack, int __número){
- /* Stacks:
- 1 = Stackeable
- 2 = Cantidad del stack distinta
- 3 = No Stackeable
- Números de identificación:
- El orden en que están en el generador de terreno
- TODO:
- (X) Almacenar items en un slot vacío.
- (X) Rellenar un slot que ya tenga items.
- () Usar la recursión para volver a llamar está función de vuelta con
- los mismos parámetros, pero, buscando en el inventario si es que sobraron items
- en la variable "__cantidad".
- () Si se añade maquinaria, se puede usar la recursión para los "vacuums"
- */
- // Advertencia:
- // De aquí para abajo, descenderás los escalones hacia el infierno.
- /////////////////////////////////////////////////////
- /// Buscar si hay espacio disponible en la hotbar ///
- /////////////////////////////////////////////////////
- for(int i = 0; i < espacioEnLaHotbar.Length; i++){
- // Si ya hay un slot vacio, no es necesario hacer nada.
- if(espacioEnLaHotbar[i] == 0){
- // Calcular el espacio restante, ej: 999 - 368 = 631
- int __espacioRestante = espacioMáximo - espacioEnLaHotbar[i];
- // Ej: 631 - 200 = 431
- // Ej: 631 - 1000 = -431
- // Con esto no quedarán números negativos, y seguirá de largo
- if(__cantidad >= __espacioRestante){
- // Rellenar el espacio restante
- espacioEnLaHotbar[i] += __espacioRestante;
- // Restar lo rellando al total que recogió
- __cantidad -= __espacioRestante;
- } else {
- // La cantidad que queda es menor al espacio que queda
- espacioEnLaHotbar[i] += __cantidad;
- // Como ya no queda nada, salir.
- return;
- }
- // Encuentra el número del slot y busca si tiene
- // el mismo número que la iteración en i
- GameObject __slotSeleccionado = hotbar.transform.Find("Slot (" + i + ")").gameObject;
- // Cambiar el ícono
- __slotSeleccionado.GetComponent<Image>().sprite = __icon;
- // Guardar el espacio en que quedo el objeto
- númeroDelObjetoHotbar[i] = __número;
- }
- // Se repite el mismo objeto
- // Si es stackeable y hay espacio para poner más
- if(__stack == 1 && espacioEnLaHotbar[i] < 999){
- // Encuentra el número del slot y busca si tiene
- // el mismo número que la iteración en i
- GameObject __slotSeleccionado = hotbar.transform.Find("Slot (" + i + ")").gameObject;
- if(__slotSeleccionado != null){
- // Then we may proceed
- //(El slot en el que estamos ahora, tiene el mismo objeto, pero
- // con menor cantidad a la máxima)
- // Almacenar
- // Calcular el espacio restante, ej: 999 - 368 = 631
- int __espacioRestante = espacioMáximo - espacioEnLaHotbar[i];
- // Con esto no quedarán números negativos, y seguirá de largo
- if(__cantidad >= __espacioRestante){
- // Rellenar el espacio restante
- espacioEnLaHotbar[i] += __espacioRestante;
- // Restar lo rellando al total que recogió
- __cantidad -= __espacioRestante;
- } else {
- // La cantidad que queda es menor al espacio que queda
- espacioEnLaHotbar[i] += __cantidad;
- // Como ya no queda nada, salir.
- return;
- }
- // Ahora buscar otro slot para poder almacenar más
- // de ser posible.
- continue;
- }
- }
- }
- // TODO Recursión.
- // No hay espacio
- return;
- }
- /****************************************/
- /* Sistemas de estadísticas del jugador */
- /****************************************/
- // Tiempo que el jugador es invulnerable
- private void TiempoDeInvulnerabilidad(){
- // Mientras recibe daño
- if(temporizadorDeDaño >= tiempoDeInvencibilidad) {
- temporizadorDeDaño = 0;
- } else if(estáRecibiendoDaño){
- temporizadorDeDaño += Time.deltaTime;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement