public IEnumerable <LiteUnit> GetUnits(RedemptionTDType type, int numberToSpawn, int level = 1) { for (int count = 0; count < numberToSpawn; count++) { if (!unitsPool.ContainsKey(type)) { break; } var unitsPoolList = unitsPool[type]; var unitIndex = unitsPoolIndex[type]; if (unitIndex < unitsPoolList.Count) { var unit = unitsPoolList[unitIndex]; var heavyReference = GetHeavyReference(type); var enemy = unit as EnemyLite; var currentLevel = enemy != null ? enemy.HeavyReference.Level : level; unit.Initialize(heavyReference.GetHeavyReference(type, currentLevel)); unitsPoolList[unitIndex] = null; unitsPoolIndex[type]++; unit.gameObject.SetActive(true); unit.transform.parent = null; yield return(unit); } else { break; } } }
private void SetOkSpawnSprite(RedemptionTDType currentType) { var ok = spawnObjectsDictionary[currentType]; okSpawn.sprite = ok; notOkSpawn.sprite = ok; }
private void ReturnUnit(RedemptionTDType type, LiteUnit unit) { var unitsPoolList = unitsPool[type]; var unitsIndex = unitsPoolIndex[type]; if (unitsIndex > 0) { unit.transform.parent = unitsPoolParent; unit.transform.position = Vector3.zero; unitsPoolIndex[type]--; unitsIndex = unitsPoolIndex[type]; unitsPoolList[unitsIndex] = unit; unit.gameObject.SetActive(false); } }
private HeavyReferences GetHeavyReference(RedemptionTDType type) { HeavyReferences result = null; switch (type) { case RedemptionTDType.BLACK_ENEMY: case RedemptionTDType.IRON_ENEMY: case RedemptionTDType.LEAD_ENEMY: case RedemptionTDType.MAGNESIUM_ENEMY: case RedemptionTDType.BLACK_ENEMY_MID: case RedemptionTDType.BLACK_ENEMY_LARGE: case RedemptionTDType.BLACK_ENEMY_BOSS: case RedemptionTDType.IRON_ENEMY_MID: case RedemptionTDType.IRON_ENEMY_LARGE: case RedemptionTDType.IRON_ENEMY_BOSS: case RedemptionTDType.LEAD_ENEMY_MID: case RedemptionTDType.LEAD_ENEMY_LARGE: case RedemptionTDType.LEAD_ENEMY_BOSS: case RedemptionTDType.MAG_ENEMY_MID: case RedemptionTDType.MAG_ENEMY_LARGE: case RedemptionTDType.MAG_ENEMY_BOSS: result = heavyDictionary[RedemptionTDHeavyType.ENEMY]; break; case RedemptionTDType.BLACK_WEAPON: case RedemptionTDType.IRON_WEAPON: case RedemptionTDType.LEAD_WEAPON: case RedemptionTDType.MAGNESIUM_WEAPON: result = heavyDictionary[RedemptionTDHeavyType.WEAPON]; break; case RedemptionTDType.BLACK_RESOURCE_DROP: case RedemptionTDType.IRON_RESOURCE_DROP: case RedemptionTDType.LEAD_RESOURCE_DROP: case RedemptionTDType.MAGNESIUM_RESOURCE_DROP: result = heavyDictionary[RedemptionTDHeavyType.RESOURCEDROP]; break; default: break; } return(result); }
public HeavyUnit GetHeavyUnit(RedemptionTDType type, int level = 1) { var heavyReferences = GetHeavyReference(type); return(heavyReferences.GetHeavyReference(type, level)); }
public RedemptionTDTypeEventArgs(RedemptionTDType type) { Type = type; }
public SpawnWeaponInputArgs(WeaponMode weaponMode, RedemptionTDType type, int cost) { WeaponMode = weaponMode; WeaponType = type; WeaponCost = cost; }
public virtual HeavyUnit GetHeavyReference(RedemptionTDType type, int level) { if (level < 1 || level > black.Count) { level = 0; } else { level--; } HeavyUnit result = null; switch (type) { case RedemptionTDType.BLACK_WEAPON: case RedemptionTDType.BLACK_ENEMY: case RedemptionTDType.BLACK_RESOURCE: case RedemptionTDType.BLACK_RESOURCE_DROP: case RedemptionTDType.BLACK_BASE: case RedemptionTDType.BLACK_ENEMY_MID: case RedemptionTDType.BLACK_ENEMY_LARGE: case RedemptionTDType.BLACK_ENEMY_BOSS: result = black[level]; break; case RedemptionTDType.IRON_WEAPON: case RedemptionTDType.IRON_ENEMY: case RedemptionTDType.IRON_RESOURCE: case RedemptionTDType.IRON_RESOURCE_DROP: case RedemptionTDType.IRON_BASE: case RedemptionTDType.IRON_ENEMY_MID: case RedemptionTDType.IRON_ENEMY_LARGE: case RedemptionTDType.IRON_ENEMY_BOSS: result = iron[level]; break; case RedemptionTDType.LEAD_WEAPON: case RedemptionTDType.LEAD_ENEMY: case RedemptionTDType.LEAD_RESOURCE: case RedemptionTDType.LEAD_RESOURCE_DROP: case RedemptionTDType.LEAD_BASE: case RedemptionTDType.LEAD_ENEMY_MID: case RedemptionTDType.LEAD_ENEMY_LARGE: case RedemptionTDType.LEAD_ENEMY_BOSS: result = lead[level]; break; case RedemptionTDType.MAGNESIUM_WEAPON: case RedemptionTDType.MAGNESIUM_ENEMY: case RedemptionTDType.MAGNESIUM_RESOURCE: case RedemptionTDType.MAGNESIUM_RESOURCE_DROP: case RedemptionTDType.MAGNESIUM_BASE: case RedemptionTDType.MAG_ENEMY_MID: case RedemptionTDType.MAG_ENEMY_LARGE: case RedemptionTDType.MAG_ENEMY_BOSS: result = magnesium[level]; break; default: break; } return(result); }
public virtual HeavyUnit GetHeavyReference(RedemptionTDType type) { return(GetHeavyReference(type, 1)); }