コード例 #1
0
    private string GetPsionicProjectileAttackPath(PlayerUnitRank rank)
    {
        switch (rank)
        {
        case PlayerUnitRank.D:
            return("Audio/ProjectileLaunch/Psionic/hightemplar_attack");

        case PlayerUnitRank.C:
            return("Audio/ProjectileLaunch/Psionic/dragoon_attack");

        case PlayerUnitRank.B:
            return("Audio/ProjectileLaunch/Psionic/shockwave_attack");

        case PlayerUnitRank.A:
            return("Audio/ProjectileLaunch/Psionic/hightemplar_attack");

        case PlayerUnitRank.S:
            return("Audio/ProjectileLaunch/Psionic/shockwave_attack");

        case PlayerUnitRank.X:
            return("Audio/ProjectileLaunch/Psionic/dragoon_attack");

        default:
            throw new GameplayException("Unrecognized unit rank value: " + rank.ToString() + ". Cannot play psionic attack sound.");
        }
    }
コード例 #2
0
    private string GetLaserProjectileAttackPath(PlayerUnitRank rank)
    {
        switch (rank)
        {
        case PlayerUnitRank.D:
            return("Audio/ProjectileLaunch/Laser/laser_attack");

        case PlayerUnitRank.C:
            return("Audio/ProjectileLaunch/Laser/laser_attack");

        case PlayerUnitRank.B:
            return("Audio/ProjectileLaunch/Laser/wraith_laser");

        case PlayerUnitRank.A:
            return("Audio/ProjectileLaunch/Laser/wraith_laser");

        case PlayerUnitRank.S:
            return("Audio/ProjectileLaunch/Laser/wraithair_attack");

        case PlayerUnitRank.X:
            return("Audio/ProjectileLaunch/Laser/yamato_attack");

        default:
            throw new GameplayException("Unrecognized unit rank value: " + rank.ToString() + ". Cannot play laser attack sound.");
        }
    }
コード例 #3
0
    private string GetAcidProjectileAttackPath(PlayerUnitRank rank)
    {
        switch (rank)
        {
        case PlayerUnitRank.D:
            return("Audio/ProjectileLaunch/Acid/mutalisk_attack");

        case PlayerUnitRank.C:
            return("Audio/ProjectileLaunch/Acid/guardian_attack");

        case PlayerUnitRank.B:
            return("Audio/ProjectileLaunch/Acid/devourer_attack");

        case PlayerUnitRank.A:
            return("Audio/ProjectileLaunch/Acid/hydralisk_attack");

        case PlayerUnitRank.S:
            return("Audio/ProjectileLaunch/Acid/hydralisk_attack");

        case PlayerUnitRank.X:
            return("Audio/ProjectileLaunch/Acid/devourer_attack");

        default:
            throw new GameplayException("Unrecognized unit rank value: " + rank.ToString() + ". Cannot play acid attack sound.");
        }
    }
コード例 #4
0
    private int ComputeGasRefund(PlayerUnitRank rank)
    {
        switch (rank)
        {
        case PlayerUnitRank.D:
            return(30);

        case PlayerUnitRank.C:
            return(60);

        case PlayerUnitRank.B:
            return(120);

        case PlayerUnitRank.A:
            return(240);

        case PlayerUnitRank.S:
            return(480);

        case PlayerUnitRank.X:
            return(960);

        default:
            throw new GameplayException("Unrecognized player unit rank. Cannot sell unit.");
        }
    }
コード例 #5
0
    // Player Unit Creation Functions
    public PlayerUnit CreatePlayerUnit(PlayerUnitRank rank, UnitClass unitClass)
    {
        // Create player unit object
        Transform  playerUnitPrefab = GetPlayerUnitPrefabFromUnitClass(unitClass);
        PlayerUnit playerUnit       = Instantiate(playerUnitPrefab, playerUnitSpawnLocation).GetComponent <PlayerUnit>();

        // Initialize player unit data
        PlayerUnitData playerUnitData = unitFactory.CreatePlayerUnitData(rank, unitClass);

        playerUnit.InitializePlayerUnitGameObject(playerUnitData);

        // Prevent Stacking on Spawn
        MovePlayerUnitToOffset(playerUnit);

        // Check Achievement on every player unit creation
        GameEngine.GetInstance().achievementManager.CheckAchievementsForPlayerUnitCreation();

        // Display message
        MessageType msgType = MessageType.INFO;

        if (playerUnit.GetPlayerUnitData().GetRank() == PlayerUnitRank.S || playerUnit.GetPlayerUnitData().GetRank() == PlayerUnitRank.X)
        {
            msgType = MessageType.POSITIVE;
        }
        GameEngine.GetInstance().messageQueue.PushMessage("[" + playerUnit.GetPlayerUnitData().GetRank() + " Rank Unit] " + Utils.CleanEnumString(playerUnit.GetPlayerUnitData().GetUnitClass().ToString()), msgType);

        // Sound Effect
        GameEngine.GetInstance().audioManager.PlayAudio(AudioManager.PLAYER_UNIT_CREATION_SOUND);

        return(playerUnit);
    }
コード例 #6
0
 public PlayerUnit CreateRandomUnitOfRank(PlayerUnitRank rank)
 {
     if (rank == PlayerUnitRank.D)
     {
         return(CreateRandomDUnit());
     }
     else if (rank == PlayerUnitRank.C)
     {
         return(CreateRandomCUnit());
     }
     else if (rank == PlayerUnitRank.B)
     {
         return(CreateRandomBUnit());
     }
     else if (rank == PlayerUnitRank.A)
     {
         return(CreateRandomAUnit());
     }
     else if (rank == PlayerUnitRank.S)
     {
         return(CreateRandomSUnit());
     }
     else
     {
         throw new GameplayException("Unsupported rank value: " + rank.ToString());
     }
 }
コード例 #7
0
    private string GetMechProjectileLandingPath(PlayerUnitRank rank)
    {
        switch (rank)
        {
        case PlayerUnitRank.D:
            return("Audio/ProjectileLanding/Mech/grenade_landing");

        case PlayerUnitRank.C:
            return("");

        case PlayerUnitRank.B:
            return("");

        case PlayerUnitRank.A:
            return("Audio/ProjectileLanding/Mech/grenade_landing");

        case PlayerUnitRank.S:
            return("");

        case PlayerUnitRank.X:
            return("");

        default:
            return("");
        }
    }
コード例 #8
0
    private string GetBladeProjectileAttackPath(PlayerUnitRank rank)
    {
        switch (rank)
        {
        case PlayerUnitRank.D:
            return("Audio/ProjectileLaunch/Blade/glaive_attack");

        case PlayerUnitRank.C:
            return("Audio/ProjectileLaunch/Blade/glaive_attack");

        case PlayerUnitRank.B:
            return("Audio/ProjectileLaunch/Blade/glaive_attack_2");

        case PlayerUnitRank.A:
            return("Audio/ProjectileLaunch/Blade/glaive_attack_2");

        case PlayerUnitRank.S:
            return("Audio/ProjectileLaunch/Blade/interceptor_attack");

        case PlayerUnitRank.X:
            return("Audio/ProjectileLaunch/Blade/interceptor_attack");

        default:
            throw new GameplayException("Unrecognized unit rank value: " + rank.ToString() + ". Cannot play blade attack sound.");
        }
    }
コード例 #9
0
    private string GetPsionicProjectileLandingPath(PlayerUnitRank rank)
    {
        switch (rank)
        {
        case PlayerUnitRank.D:
            return("");

        case PlayerUnitRank.C:
            return("Audio/ProjectileLanding/Psionic/psionic_explosion");

        case PlayerUnitRank.B:
            return("");

        case PlayerUnitRank.A:
            return("");

        case PlayerUnitRank.S:
            return("");

        case PlayerUnitRank.X:
            return("Audio/ProjectileLanding/Psionic/scarab_hit");

        default:
            return("");
        }
    }
コード例 #10
0
    private bool CheckAllCCombo()
    {
        if (GameEngine.GetInstance().gas < 300)
        {
            return(false);
        }

        PlayerUnit infantryUnit = null;
        PlayerUnit mechUnit     = null;
        PlayerUnit laserUnit    = null;
        PlayerUnit psionicUnit  = null;
        PlayerUnit acidUnit     = null;
        PlayerUnit bladeUnit    = null;

        foreach (PlayerUnit p in unitsOnMixer)
        {
            PlayerUnitRank playerUnitRank  = p.GetPlayerUnitData().GetRank();
            UnitClass      playerUnitClass = p.GetPlayerUnitData().GetUnitClass();

            if (playerUnitRank == PlayerUnitRank.C && playerUnitClass == UnitClass.INFANTRY)
            {
                infantryUnit = p;
            }
            else if (playerUnitRank == PlayerUnitRank.C && playerUnitClass == UnitClass.MECH)
            {
                mechUnit = p;
            }
            else if (playerUnitRank == PlayerUnitRank.C && playerUnitClass == UnitClass.LASER)
            {
                laserUnit = p;
            }
            else if (playerUnitRank == PlayerUnitRank.C && playerUnitClass == UnitClass.PSIONIC)
            {
                psionicUnit = p;
            }
            else if (playerUnitRank == PlayerUnitRank.C && playerUnitClass == UnitClass.ACID)
            {
                acidUnit = p;
            }
            else if (playerUnitRank == PlayerUnitRank.C && playerUnitClass == UnitClass.BLADE)
            {
                bladeUnit = p;
            }
        }

        if (infantryUnit != null && mechUnit != null && laserUnit != null && psionicUnit != null && acidUnit != null && bladeUnit != null)
        {
            RemoveUnitSafely(infantryUnit);
            RemoveUnitSafely(mechUnit);
            RemoveUnitSafely(laserUnit);
            RemoveUnitSafely(psionicUnit);
            RemoveUnitSafely(acidUnit);
            RemoveUnitSafely(bladeUnit);

            GameEngine.GetInstance().DecreaseGas(300);
            PlayerUnit newPlayerUnit = GameEngine.GetInstance().unitSpawner.CreateRandomUnitOfRank(PlayerUnitRank.S);
            return(true);
        }
        return(false);
    }
コード例 #11
0
    private string GetAcidProjectileLandingPath(PlayerUnitRank rank)
    {
        switch (rank)
        {
        case PlayerUnitRank.D:
            return("");

        case PlayerUnitRank.C:
            return("Audio/ProjectileLanding/Acid/guardian_hit");

        case PlayerUnitRank.B:
            return("Audio/ProjectileLanding/Acid/corrosive_acid");

        case PlayerUnitRank.A:
            return("");

        case PlayerUnitRank.S:
            return("");

        case PlayerUnitRank.X:
            return("Audio/ProjectileLanding/Acid/corrosive_acid");

        default:
            return("");
        }
    }
コード例 #12
0
    private string GetMechProjectileAttackPath(PlayerUnitRank rank)
    {
        switch (rank)
        {
        case PlayerUnitRank.D:
            return("Audio/ProjectileLaunch/Mech/vulture_attack");

        case PlayerUnitRank.C:
            return("Audio/ProjectileLaunch/Mech/goliath_attack");

        case PlayerUnitRank.B:
            return("Audio/ProjectileLaunch/Mech/tank_attack");

        case PlayerUnitRank.A:
            return("Audio/ProjectileLaunch/Mech/vulture_attack");

        case PlayerUnitRank.S:
            return("Audio/ProjectileLaunch/Mech/tanksiege_attack");

        case PlayerUnitRank.X:
            return("Audio/ProjectileLaunch/Mech/missile_launcher");

        default:
            throw new GameplayException("Unrecognized unit rank value: " + rank.ToString() + ". Cannot play mech attack sound.");
        }
    }
コード例 #13
0
    private string GetInfantryProjectileAttackPath(PlayerUnitRank rank)
    {
        switch (rank)
        {
        case PlayerUnitRank.D:
            return("Audio/ProjectileLaunch/Infantry/ghost_attack");

        case PlayerUnitRank.C:
            return("Audio/ProjectileLaunch/Infantry/ghost_attack");

        case PlayerUnitRank.B:
            return("Audio/ProjectileLaunch/Infantry/marine_attack");

        case PlayerUnitRank.A:
            return("Audio/ProjectileLaunch/Infantry/ghost_attack");

        case PlayerUnitRank.S:
            return("Audio/ProjectileLaunch/Infantry/ghost_attack");

        case PlayerUnitRank.X:
            return("Audio/ProjectileLaunch/Infantry/marine_attack");

        default:
            throw new GameplayException("Unrecognized unit rank value: " + rank.ToString() + ". Cannot play infantry attack sound.");
        }
    }
コード例 #14
0
    //---------- Unit Mixing Methods ----------
    private bool CheckMatchingUnit(PlayerUnit playerUnit)
    {
        PlayerUnit matchingPlayerUnit = null;

        matchingPlayerUnit = GetMatchingUnitType(playerUnit);
        if (matchingPlayerUnit != null)
        {
            PlayerUnitRank newUnitRank = GetNextTierRank(playerUnit.GetPlayerUnitData().GetRank());
            RemoveUnitSafely(playerUnit);
            RemoveUnitSafely(matchingPlayerUnit);
            PlayerUnit newPlayerUnit = GameEngine.GetInstance().unitSpawner.CreateRandomUnitOfRank(newUnitRank);
            return(true);
        }
        return(false);
    }
コード例 #15
0
    public PlayerUnitData CreatePlayerUnitData(PlayerUnitRank rank, int selection)
    {
        UnitClass unitClass = ConvertIntegerToUnitClass(selection);

        if (unitClass == UnitClass.MAGIC || unitClass == UnitClass.FLAME)
        {
            if (rank == PlayerUnitRank.D || rank == PlayerUnitRank.C)
            {
                throw new GameplayException("Cannot create player unit data object. Invalid combination for rank and selection: " + rank + " " + selection);
            }
        }

        PlayerUnitData playerUnitData = CreatePlayerUnitData(rank, unitClass);

        return(playerUnitData);
    }
コード例 #16
0
    // Projectile Landings - not all units will have projectile landings, only select few ones
    public void PlayProjectileLandingSound(UnitClass unitClass, PlayerUnitRank rank)
    {
        string path;

        switch (unitClass)
        {
        case UnitClass.INFANTRY:
            path = GetInfantryProjectileLandingPath(rank);
            break;

        case UnitClass.MECH:
            path = GetMechProjectileLandingPath(rank);
            break;

        case UnitClass.LASER:
            path = GetLaserProjectileLandingPath(rank);
            break;

        case UnitClass.PSIONIC:
            path = GetPsionicProjectileLandingPath(rank);
            break;

        case UnitClass.ACID:
            path = GetAcidProjectileLandingPath(rank);
            break;

        case UnitClass.BLADE:
            path = GetBladeProjectileLandingPath(rank);
            break;

        case UnitClass.MAGIC:
            path = GetMagicProjectileLandingPath(rank);
            break;

        case UnitClass.FLAME:
            path = GetFlameProjectileLandingPath(rank);
            break;

        default:
            throw new GameplayException("Unrecognized unit class: " + unitClass.ToString() + ". Cannot play projectile landing attack sound.");
        }

        if (path.Length > 0)
        {
            PlayAudio(path, projectileLandingAudioSource);
        }
    }
コード例 #17
0
    private bool CheckXCombo(PlayerUnit playerUnit)
    {
        if (GameEngine.GetInstance().hasXUnit)
        {
            return(false);
        }
        if (playerUnit.GetPlayerUnitData().GetRank() == PlayerUnitRank.D || playerUnit.GetPlayerUnitData().GetRank() == PlayerUnitRank.C || playerUnit.GetPlayerUnitData().GetRank() == PlayerUnitRank.X)
        {
            return(false);
        }
        UnitClass targetUnitClass = playerUnit.GetPlayerUnitData().GetUnitClass();

        PlayerUnit bUnit = null;
        PlayerUnit aUnit = null;
        PlayerUnit sUnit = null;

        foreach (PlayerUnit p in unitsOnMixer)
        {
            PlayerUnitRank playerUnitRank  = p.GetPlayerUnitData().GetRank();
            UnitClass      playerUnitClass = p.GetPlayerUnitData().GetUnitClass();

            if (bUnit == null && playerUnitRank == PlayerUnitRank.B && playerUnitClass == targetUnitClass)
            {
                bUnit = p;
            }
            else if (aUnit == null && playerUnitRank == PlayerUnitRank.A && playerUnitClass == targetUnitClass)
            {
                aUnit = p;
            }
            else if (sUnit == null && playerUnitRank == PlayerUnitRank.S && playerUnitClass == targetUnitClass)
            {
                sUnit = p;
            }
        }
        if (bUnit != null && aUnit != null && sUnit != null)
        {
            RemoveUnitSafely(bUnit);
            RemoveUnitSafely(aUnit);
            RemoveUnitSafely(sUnit);

            PlayerUnit newPlayerUnit          = GameEngine.GetInstance().unitSpawner.CreatePlayerUnit(PlayerUnitRank.X, targetUnitClass);
            GameEngine.GetInstance().hasXUnit = true;
            return(true);
        }
        return(false);
    }
コード例 #18
0
    private UnitClass GenerateRandomUnitClass(PlayerUnitRank playerUnitRank)
    {
        int selection;

        if (playerUnitRank == PlayerUnitRank.D || playerUnitRank == PlayerUnitRank.C)
        {
            selection = GameEngine.GetInstance().random.Next(0, 6);
        }
        else
        {
            selection = GameEngine.GetInstance().random.Next(0, 8);
        }

        switch (selection)
        {
        case 0:
            return(UnitClass.INFANTRY);

        case 1:
            return(UnitClass.MECH);

        case 2:
            return(UnitClass.LASER);

        case 3:
            return(UnitClass.PSIONIC);

        case 4:
            return(UnitClass.ACID);

        case 5:
            return(UnitClass.BLADE);

        case 6:
            return(UnitClass.MAGIC);

        case 7:
            return(UnitClass.FLAME);

        default:
            throw new GameplayException("Unrecognized selection value. Cannot generate random unit class");
        }
    }
コード例 #19
0
    private bool CheckABCDForClass(UnitClass unitClassToCheck)
    {
        bool hasA = false;
        bool hasB = false;
        bool hasC = false;
        bool hasD = false;

        GameObject[] playerUnits = GameObject.FindGameObjectsWithTag("PlayerUnit");
        foreach (GameObject g in playerUnits)
        {
            PlayerUnit     playerUnit      = g.GetComponent <PlayerUnit>();
            PlayerUnitRank playerUnitRank  = playerUnit.GetPlayerUnitData().GetRank();
            UnitClass      playerUnitClass = playerUnit.GetPlayerUnitData().GetUnitClass();

            if (playerUnitRank == PlayerUnitRank.S || playerUnitRank == PlayerUnitRank.X || playerUnitClass != unitClassToCheck)
            {
                continue;
            }
            if (playerUnitClass == UnitClass.MAGIC || playerUnitClass == UnitClass.FLAME)
            {
                continue;
            }

            if (playerUnitRank == PlayerUnitRank.D)
            {
                hasD = true;
            }
            else if (playerUnitRank == PlayerUnitRank.C)
            {
                hasC = true;
            }
            else if (playerUnitRank == PlayerUnitRank.B)
            {
                hasB = true;
            }
            else if (playerUnitRank == PlayerUnitRank.A)
            {
                hasA = true;
            }
        }

        return(hasA && hasB && hasC && hasD);
    }
コード例 #20
0
    private string GetMagicProjectileLandingPath(PlayerUnitRank rank)
    {
        switch (rank)
        {
        case PlayerUnitRank.B:
            return("Audio/ProjectileLanding/Magic/shockwave_landing");

        case PlayerUnitRank.A:
            return("Audio/ProjectileLanding/Magic/shockwave_landing");

        case PlayerUnitRank.S:
            return("Audio/ProjectileLanding/Magic/shockwave_landing");

        case PlayerUnitRank.X:
            return("Audio/ProjectileLanding/Magic/shockwave_landing");

        default:
            return("");
        }
    }
コード例 #21
0
    private string GetFlameProjectileAttackPath(PlayerUnitRank rank)
    {
        switch (rank)
        {
        case PlayerUnitRank.B:
            return("Audio/ProjectileLaunch/Flame/flame_attack");

        case PlayerUnitRank.A:
            return("Audio/ProjectileLaunch/Flame/flame_attack");

        case PlayerUnitRank.S:
            return("Audio/ProjectileLaunch/Flame/flame_attack_2");

        case PlayerUnitRank.X:
            return("Audio/ProjectileLaunch/Flame/flame_attack_2");

        default:
            throw new GameplayException("Unrecognized unit rank value: " + rank.ToString() + ". Cannot play flame attack sound.");
        }
    }
コード例 #22
0
    private int ComputeTokenRefund(PlayerUnitRank rank)
    {
        switch (rank)
        {
        case PlayerUnitRank.B:
            return(4);

        case PlayerUnitRank.A:
            return(8);

        case PlayerUnitRank.S:
            return(16);

        case PlayerUnitRank.X:
            return(32);

        default:
            throw new GameplayException("Unrecognized player unit rank for rare unit. Cannot sell unit.");
        }
    }
コード例 #23
0
 public PlayerUnitData(
     string displayName,
     UnitClass unitClass,
     float movementSpeed,
     PlayerUnitRank rank,
     float attackDamage,
     float attackUpgrade,
     float attackCooldown,
     float attackRange,
     AttackType attackType)
 {
     this.displayName    = displayName;
     this.unitClass      = unitClass;
     this.movementSpeed  = movementSpeed;
     this.rank           = rank;
     this.attackDamage   = attackDamage;
     this.attackUpgrade  = attackUpgrade;
     this.attackCooldown = attackCooldown;
     this.attackRange    = attackRange;
     this.attackType     = attackType;
 }
コード例 #24
0
    private bool CheckBCDCombo(PlayerUnit playerUnit)
    {
        if (playerUnit.GetPlayerUnitData().GetRank() == PlayerUnitRank.A || playerUnit.GetPlayerUnitData().GetRank() == PlayerUnitRank.S || playerUnit.GetPlayerUnitData().GetRank() == PlayerUnitRank.X)
        {
            return(false);
        }
        UnitClass targetUnitClass = playerUnit.GetPlayerUnitData().GetUnitClass();

        PlayerUnit dUnit = null;
        PlayerUnit cUnit = null;
        PlayerUnit bUnit = null;

        foreach (PlayerUnit p in unitsOnMixer)
        {
            PlayerUnitRank playerUnitRank  = p.GetPlayerUnitData().GetRank();
            UnitClass      playerUnitClass = p.GetPlayerUnitData().GetUnitClass();

            if (dUnit == null && playerUnitRank == PlayerUnitRank.D && playerUnitClass == targetUnitClass)
            {
                dUnit = p;
            }
            else if (cUnit == null && playerUnitRank == PlayerUnitRank.C && playerUnitClass == targetUnitClass)
            {
                cUnit = p;
            }
            else if (bUnit == null && playerUnitRank == PlayerUnitRank.B && playerUnitClass == targetUnitClass)
            {
                bUnit = p;
            }
        }
        if (dUnit != null && cUnit != null && bUnit != null)
        {
            RemoveUnitSafely(dUnit);
            RemoveUnitSafely(cUnit);
            RemoveUnitSafely(bUnit);
            PlayerUnit newPlayerUnit = GameEngine.GetInstance().unitSpawner.CreateRandomAUnit();
            return(true);
        }
        return(false);
    }
コード例 #25
0
 private PlayerUnitRank GetNextTierRank(PlayerUnitRank rank)
 {
     if (rank == PlayerUnitRank.D)
     {
         return(PlayerUnitRank.C);
     }
     else if (rank == PlayerUnitRank.C)
     {
         return(PlayerUnitRank.B);
     }
     else if (rank == PlayerUnitRank.B)
     {
         return(PlayerUnitRank.A);
     }
     else if (rank == PlayerUnitRank.A)
     {
         return(PlayerUnitRank.S);
     }
     else
     {
         throw new GameplayException("Unsupported rank value: " + rank.ToString());
     }
 }
コード例 #26
0
    private bool CheckRareACombo(PlayerUnit playerUnit)
    {
        if (playerUnit.GetPlayerUnitData().GetRank() != PlayerUnitRank.A)
        {
            return(false);
        }

        PlayerUnit magicUnit = null;
        PlayerUnit flameUnit = null;

        foreach (PlayerUnit p in unitsOnMixer)
        {
            PlayerUnitRank playerUnitRank  = p.GetPlayerUnitData().GetRank();
            UnitClass      playerUnitClass = p.GetPlayerUnitData().GetUnitClass();

            if (playerUnitRank == PlayerUnitRank.A && playerUnitClass == UnitClass.MAGIC)
            {
                magicUnit = p;
            }
            else if (playerUnitRank == PlayerUnitRank.A && playerUnitClass == UnitClass.FLAME)
            {
                flameUnit = p;
            }
        }

        if (magicUnit != null && flameUnit != null)
        {
            RemoveUnitSafely(magicUnit);
            RemoveUnitSafely(flameUnit);

            GameEngine.GetInstance().messageQueue.PushMessage("2 A Rank Choosers", MessageType.INFO);
            GameEngine.GetInstance().AddABonusTokens(2);
            return(true);
        }
        return(false);
    }
コード例 #27
0
    public override bool CheckCondition()
    {
        if (GameEngine.GetInstance().hasXUnit)
        {
            return(false);
        }

        // TODO should we conside rare units?
        // Since can only have 1 X unit, we know which class we are looking for
        UnitClass classToLookFor = UnitClass.NONE;

        GameObject[] playerUnits = GameObject.FindGameObjectsWithTag("PlayerUnit");
        foreach (GameObject g in playerUnits)
        {
            PlayerUnit playerUnit = g.GetComponent <PlayerUnit>();
            if (playerUnit.GetPlayerUnitData().GetRank() == PlayerUnitRank.X)
            {
                classToLookFor = playerUnit.GetPlayerUnitData().GetUnitClass();
                break;
            }
        }

        bool hasS = false;
        bool hasA = false;
        bool hasB = false;
        bool hasC = false;
        bool hasD = false;

        foreach (GameObject g in playerUnits)
        {
            PlayerUnit     playerUnit      = g.GetComponent <PlayerUnit>();
            PlayerUnitRank playerUnitRank  = playerUnit.GetPlayerUnitData().GetRank();
            UnitClass      playerUnitClass = playerUnit.GetPlayerUnitData().GetUnitClass();

            if (playerUnitClass != classToLookFor)
            {
                continue;
            }

            if (playerUnitRank == PlayerUnitRank.D)
            {
                hasD = true;
            }
            else if (playerUnitRank == PlayerUnitRank.C)
            {
                hasC = true;
            }
            else if (playerUnitRank == PlayerUnitRank.B)
            {
                hasB = true;
            }
            else if (playerUnitRank == PlayerUnitRank.A)
            {
                hasA = true;
            }
            else if (playerUnitRank == PlayerUnitRank.S)
            {
                hasS = true;
            }
        }

        return(hasS && hasA && hasB && hasC && hasD);
    }
コード例 #28
0
 private string GetFlameProjectileLandingPath(PlayerUnitRank rank)
 {
     return("");
 }
コード例 #29
0
 private string GetInfantryProjectileLandingPath(PlayerUnitRank rank)
 {
     return("");
 }
コード例 #30
0
    public void Initialize(PlayerUnitRank rank)
    {
        if (rank == PlayerUnitRank.D)
        {
            Bar1.gameObject.SetActive(true);
        }
        if (rank == PlayerUnitRank.C)
        {
            Bar1.gameObject.SetActive(true);
            Bar2.gameObject.SetActive(true);
        }
        if (rank == PlayerUnitRank.B)
        {
            Bar1.gameObject.SetActive(true);
            Bar2.gameObject.SetActive(true);
            Bar3.gameObject.SetActive(true);
        }
        if (rank == PlayerUnitRank.A)
        {
            Bar1.gameObject.SetActive(true);
            Bar2.gameObject.SetActive(true);
            Bar3.gameObject.SetActive(true);
            Bar4.gameObject.SetActive(true);
        }
        if (rank == PlayerUnitRank.S)
        {
            Bar1.gameObject.SetActive(true);
            Bar2.gameObject.SetActive(true);
            Bar3.gameObject.SetActive(true);
            Bar4.gameObject.SetActive(true);
            Bar5.gameObject.SetActive(true);
        }
        if (rank == PlayerUnitRank.X)
        {
            Bar1.gameObject.SetActive(true);
            Bar2.gameObject.SetActive(true);
            Bar3.gameObject.SetActive(true);
            Bar4.gameObject.SetActive(true);
            Bar5.gameObject.SetActive(true);
            Bar6.gameObject.SetActive(true);
        }

        if (rank == PlayerUnitRank.D)
        {
            RankText_D.gameObject.SetActive(true);
        }
        else if (rank == PlayerUnitRank.C)
        {
            RankText_C.gameObject.SetActive(true);
        }
        else if (rank == PlayerUnitRank.B)
        {
            RankText_B.gameObject.SetActive(true);
        }
        else if (rank == PlayerUnitRank.A)
        {
            RankText_A.gameObject.SetActive(true);
        }
        else if (rank == PlayerUnitRank.S)
        {
            RankText_S.gameObject.SetActive(true);
        }
        else if (rank == PlayerUnitRank.X)
        {
            RankText_X.gameObject.SetActive(true);
        }
    }