Beispiel #1
0
 private static string GetAHSpawnData(string data)
 {
     if (DroneUtilities.GetDroneSpawnDataByShorthand(data).drone != null)
     {
         return(DroneUtilities.GetDroneSpawnDataByShorthand(data).drone);
     }
     else
     {
         return(data);
     }
 }
Beispiel #2
0
    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);
    }
Beispiel #3
0
 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");
        }
    }
Beispiel #7
0
    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");
        }
    }