/// <summary> /// Busca un creep libre en el array pasado como parametro /// </summary> /// <returns>El creep disponible</returns> /// <param name="evolve">Configuracion del creep</param> /// <param name="creepArray">Array donde busca creep</param> private CreepScript GetFreeCreep(CreepEvolve evolve, CreepScript[] creepArray){ if (EconomyManager.gene < evolve.creep.costGene) return null; for (int i = 0; i < evolve.numPool; i++) { if (!creepArray [i].creep.activeInHierarchy) { EconomyManager.gene -= evolve.creep.costGene; return creepArray [i]; } } return null; }
/// <summary> /// Evolves the creep. /// </summary> /// <param name="typeCreep">Type creep.</param> public void EvolveCreep(int typeCreep){ CreepEvolve newCreep; if (typeCreep == 0) newCreep = actualEvolveCreep.evolveA; else newCreep = actualEvolveCreep.evolveB; //Limpiamos la lista de creeps evolucionados creepsTier.Clear(); //Cambiamos el subtipo o sea la evolucion subType = typeCreep; EconomyManager.gene -= EconomyManager.GetCreepEvolveCostGene(tier,subTier,subType); EconomyManager.biomatter -= EconomyManager.GetCreepEvolveCostBio (tier, subTier, subType); //cambiamos el rate spawnRateTier = newCreep.spawnRate; //cancelamos la creacion anterior de tier CancelInvoke ("CreateTier"); Invoke ("CreateTier", 1f / spawnRateTier); actualEvolveCreep = newCreep; }
/// <summary> /// Se crea una pool con la configuracion de creep pasado por parametro /// </summary> /// <param name="creepEvolve">Configuracion del creep</param> private CreepScript[] CreatePoolCreep(CreepEvolve creepEvolve){ if (creepEvolve == null) return null; CreepScript[] creepPool = new CreepScript[creepEvolve.numPool]; FillPoolCreep (creepEvolve.creep.gameObject, creepEvolve.creep,creepEvolve.numPool, creepPool); return creepPool; }