private static string GetAHSpawnData(string data) { if (DroneUtilities.GetDroneSpawnDataByShorthand(data).drone != null) { return(DroneUtilities.GetDroneSpawnDataByShorthand(data).drone); } else { return(data); } }
public static DroneSpawnData ParseDronePart(EntityBlueprint.PartInfo part) { if (part.abilityID != 10) { Debug.Log("Passed part is not a drone spawner!"); } var data = DroneUtilities.GetDroneSpawnDataByShorthand(part.secondaryData); //JsonUtility.FromJsonOverwrite(part.secondaryData, data); return(data); }
public static Sprite GetAbilityImageByID(int ID, string secondaryData) { if (ID == 0) { return(null); } if (ID == 10) { DroneSpawnData data = DroneUtilities.GetDroneSpawnDataByShorthand(secondaryData); return(DroneUtilities.GetAbilitySpriteBySpawnData(data)); } return(ResourceManager.GetAsset <Sprite>("AbilitySprite" + ID)); }
public static Ability AddAbilityToGameObjectByID(GameObject obj, int ID, string data = null, int tier = 0) { Ability ability = null; switch (ID) { case 1: ability = obj.AddComponent <SpeedThrust>(); break; case 2: ability = obj.AddComponent <HealthHeal>(); ((HealthHeal)ability).type = HealthHeal.HealingType.shell; ((HealthHeal)ability).Initialize(); break; case 3: Debug.LogWarning("Main bullet should be intrinsically added!"); ability = obj.AddComponent <MainBullet>(); break; case 4: ability = obj.AddComponent <Beam>(); break; case 5: ability = obj.AddComponent <Bullet>(); break; case 6: ability = obj.AddComponent <Cannon>(); break; case 7: ability = obj.AddComponent <Missile>(); if (data == "missile_station_shooter") { ((Missile)ability).category = Entity.EntityCategory.All; ((Missile)ability).terrain = Entity.TerrainType.All; } break; case 8: ability = obj.AddComponent <Torpedo>(); break; case 9: ability = obj.AddComponent <Laser>(); break; case 10: ability = obj.AddComponent <SpawnDrone>(); ((SpawnDrone)ability).spawnData = DroneUtilities.GetDroneSpawnDataByShorthand(data); ((SpawnDrone)ability).Init(); break; case 11: ability = obj.AddComponent <HealthHeal>(); ((HealthHeal)ability).type = HealthHeal.HealingType.core; ((HealthHeal)ability).Initialize(); break; case 12: ability = obj.AddComponent <HealthHeal>(); ((HealthHeal)ability).type = HealthHeal.HealingType.energy; ((HealthHeal)ability).Initialize(); break; case 13: ability = obj.AddComponent <Speed>(); break; case 14: ability = obj.AddComponent <SiegeBullet>(); break; case 15: ability = obj.AddComponent <SpeederBullet>(); break; case 16: ability = obj.AddComponent <Harvester>(); break; case 17: ability = obj.AddComponent <ShellRegen>(); (ability as ShellRegen).index = 0; (ability as ShellRegen).Initialize(); break; case 18: ability = obj.AddComponent <ShellMax>(); (ability as ShellMax).index = 0; (ability as ShellMax).Initialize(); break; case 19: ability = obj.AddComponent <ShellRegen>(); (ability as ShellRegen).index = 2; (ability as ShellRegen).Initialize(); break; case 20: ability = obj.AddComponent <ShellMax>(); (ability as ShellMax).index = 2; (ability as ShellMax).Initialize(); break; case 21: ability = obj.AddComponent <Command>(); break; case 22: ability = obj.AddComponent <ShellRegen>(); (ability as ShellRegen).index = 1; (ability as ShellRegen).Initialize(); break; case 23: ability = obj.AddComponent <ShellMax>(); (ability as ShellMax).index = 1; (ability as ShellMax).Initialize(); break; case 24: ability = obj.AddComponent <Stealth>(); break; case 25: ability = obj.AddComponent <DamageBoost>(); break; case 26: ability = obj.AddComponent <AreaRestore>(); break; case 27: ability = obj.AddComponent <PinDown>(); break; case 28: ability = obj.AddComponent <Retreat>(); break; case 29: ability = obj.AddComponent <AbsorptionField>(); break; case 30: ability = obj.AddComponent <ActiveRegen>(); (ability as ActiveRegen).index = 0; (ability as ActiveRegen).Initialize(); break; case 31: ability = obj.AddComponent <ActiveRegen>(); (ability as ActiveRegen).index = 1; (ability as ActiveRegen).Initialize(); break; case 32: ability = obj.AddComponent <ActiveRegen>(); (ability as ActiveRegen).index = 2; (ability as ActiveRegen).Initialize(); break; case 33: ability = obj.AddComponent <Disrupt>(); break; case 34: ability = obj.AddComponent <Control>(); break; case 35: ability = obj.AddComponent <InvertTractor>(); break; case 36: ability = obj.AddComponent <Bomb>(); break; case 37: ability = obj.AddComponent <Ion>(); break; case 38: ability = obj.AddComponent <Flak>(); break; case 39: ability = obj.AddComponent <Rocket>(); break; } if (ability) { ability.SetTier(tier); } return(ability); }
public static string GetAbilityNameByID(int ID, string secondaryData) { switch (ID) { case 0: return("None"); case 1: return("Speed Thrust"); case 2: return("Shell Boost"); case 3: return("Main Bullet"); case 4: return("Beam"); case 5: return("Bullet"); case 6: return("Cannon"); case 7: return("Missile"); case 8: return("Torpedo"); case 9: return("Laser"); case 10: if (secondaryData == null) { return("Spawn Drone"); } DroneSpawnData data = DroneUtilities.GetDroneSpawnDataByShorthand(secondaryData); return(DroneUtilities.GetAbilityNameByType(data.type)); case 11: return("Core Heal"); case 12: return("Energy"); case 13: return("Speed"); case 14: return("Siege Bullet"); case 15: return("Speeder Bullet"); case 16: return("Harvester"); case 17: return("Shell Regen"); case 18: return("Shell Max"); case 19: return("Energy Regen"); case 20: return("Energy Max"); case 21: return("Command"); case 22: return("Core Regen"); case 23: return("Core Max"); case 24: return("Stealth"); case 25: return("Damage Boost"); case 26: return("Area Restore"); case 27: return("Pin Down"); case 28: return("Retreat"); case 29: return("Absorb Field"); case 30: return("Shell Regen"); case 31: return("Core Regen"); case 32: return("Energy Regen"); case 33: return("Disrupt"); case 34: return("Control"); case 35: return("Invert Tractor"); case 36: return("Bomb"); case 37: return("Ion"); case 38: return("Flak"); default: return("Name unset"); } }
public static string GetDescriptionByID(int ID, int tier, string secondaryData) { switch (ID) { case 0: return("Does nothing."); case 1: return($"+{SpeedThrust.boost * tier} speed for 10 seconds."); case 2: return($"Instantly heal {HealthHeal.heals[0] * tier} shell."); case 3: return($"Projectile that deals {MainBullet.GetDamage(tier)} damage. \nStays with you no matter what."); case 4: return($"Instant attack that deals {Beam.beamDamage * tier} damage."); case 5: return($"Projectile that deals {Bullet.bulletDamage * tier} damage."); case 6: return($"Instant attack that deals {Cannon.cannonDamage * tier} damage."); case 7: return($"Slow homing projectile that deals {Missile.missileDamage * tier} damage."); case 8: return($"Slow projectile that deals {Torpedo.torpedoDamage * tier} damage to ground entities."); case 9: return($"Fast projectile that deals {Laser.laserDamage * tier} damage. 25% pierces to core."); case 10: if (string.IsNullOrEmpty(secondaryData)) { return("Spawns a drone."); } DroneSpawnData data = DroneUtilities.GetDroneSpawnDataByShorthand(secondaryData); return(DroneUtilities.GetDescriptionByType(data.type)); case 11: return($"Instantly heal {HealthHeal.heals[1] * tier} core."); case 12: return($"Instantly heal {HealthHeal.heals[2] * tier} energy."); case 13: return($"+{Speed.boost * tier} speed."); case 17: return($"Passively increases shell regen by {ShellRegen.regens[0] * tier} points."); case 18: return($"Passively increases maximum shell by {ShellMax.maxes[0] * tier} points."); case 19: return($"Passively increases energy regen by {ShellRegen.regens[2] * tier} points."); case 20: return($"Passively increases maximum energy by {ShellMax.maxes[2] * tier} points."); case 21: return($"Passively increases the maximum allowed number of controlled units by {Command.commandUnitIncrease}."); case 22: return($"Passively increases core regen by {ShellRegen.regens[1] * tier} points."); case 23: return($"Passively increases maximum core by {ShellMax.maxes[1] * tier} points."); case 24: return("Become invisible to enemies."); case 25: return($"All weapon damage increased by {DamageBoost.damageAddition * Mathf.Max(1, tier)}."); case 26: return($"Instantly heals self and nearby allies by {AreaRestore.heal * Mathf.Max(1, tier)} shell"); case 27: return("Immobilizes the target."); case 28: return("Respawn at base."); case 29: return("Absorb damage and turn it into energy."); case 30: return($"Temporarily increase shell regen by { ActiveRegen.healAmounts[0] } per second."); case 31: return("Temporarily increase core... wait, this isn't supposed to exist!"); case 32: return($"Temporarily increase energy regen by { ActiveRegen.healAmounts[2] } per second."); case 33: return("Disrupt enemy ability cooldowns."); case 34: return($"Gives allies additional {Control.baseControlFractionBoost * 100}% shell and {Control.damageAddition} weapon damage."); case 35: return("Temporarily pulls you to your tractor target and allows you to tractor most entities."); case 36: return($"Stationary projectile that deals {Bomb.bombDamage} damage. \nProjectile lasts {45F * tier} seconds."); case 37: return($"Slow moving beam that deals {IonLineController.damageC * tier} damage per second for 5 seconds. " + $"\nBeam costs {IonLineController.energyC * tier} energy per second."); case 38: return($"Fires at most 5 projectiles at different targets that each deal {Flak.bulletDamage * tier} damage."); default: return("Description unset"); } }
public static string GetDescriptionByID(int ID, int tier, string secondaryData) { switch (ID) { case 0: return("Does nothing."); case 1: return("+" + SpeedThrust.boost * tier + " speed for 10 seconds."); case 2: return("Instantly heal " + HealthHeal.heals[0] * tier + " shell."); case 3: return("Projectile that deals " + MainBullet.GetDamage(tier) + " damage. \nStays with you no matter what."); case 4: return("Instant attack that deals " + Beam.beamDamage * tier + " damage."); case 5: return("Projectile that deals " + Bullet.bulletDamage * tier + " damage."); case 6: return("Instant attack that deals " + Cannon.cannonDamage * tier + " damage."); case 7: return("Slow homing projectile that deals " + Missile.missileDamage * tier + " damage."); case 8: return("Slow projectile that deals " + Torpedo.torpedoDamage * tier + " damage to ground entities."); case 9: return("Fast projectile that deals " + Laser.laserDamage * tier + " damage. 25% pierces to core."); case 10: if (secondaryData == null || secondaryData == "") { return("Spawns a drone."); } DroneSpawnData data = DroneUtilities.GetDroneSpawnDataByShorthand(secondaryData); return(DroneUtilities.GetDescriptionByType(data.type)); case 11: return("Instantly heal " + HealthHeal.heals[1] * tier + " core."); case 12: return("Instantly heal " + HealthHeal.heals[2] * tier + " energy."); case 13: return("+" + Speed.boost * tier + " speed."); case 17: return("Passively increases shell regen by " + ShellRegen.regen * tier + " points."); case 18: return("Passively increases maximum shell by " + ShellMax.max * tier + " points."); case 19: return("Passively increases energy regen by " + ShellRegen.regen * tier + " points."); case 20: return("Passively increases maximum energy by " + ShellMax.max * tier + " points."); case 21: return("Passively increases the maximum allowed number of controlled units by " + Command.commandUnitIncrease + "."); case 24: return("Become invisible to enemies."); case 25: return("All weapon damage increased by 150."); case 26: return("Instantly heals self and nearby allies by +500 shell and +500 core."); case 27: return("Immobilizes the target."); case 28: return("Respawn at base."); case 29: return("Absorb damage and turn it into energy."); case 30: return("Temporarily increase shell regen."); case 31: return("Temporarily increase core... wait, this isn't supposed to exist!"); case 32: return("Temporarily increase energy regen."); case 33: return("Disrupt enemy ability cooldowns."); case 34: return("Makes allies stronger."); case 35: return("Temporarily pulls you to your tractor target."); case 36: return($"Stationary projectile that deals {Bomb.bombDamage} damage. \nProjectile lasts {45F * tier} seconds."); case 37: return($"Slow moving beam that deals {IonLineController.damageC} damage per second for 5 seconds. \nBeam costs {IonLineController.energyC} energy per"); default: return("Description unset"); } }