Example #1
0
    void applyCoreEffects(Core core)
    {
        switch (core)
        {
        case Core.NORMAL:     // No effect
        case Core.GOLD:
            break;

        case Core.BLUE:     // Skip drawing every 3rd turn (in turns 3, 6, 9...)
            BattleManager.bmInstance.skipDrawingEveryThirdTurn = true;
            break;

        case Core.RED:     // Increase max roll by 200
            Player.modifyMaxRoll(200);
            break;

        case Core.GREEN:     // Draw 1 less card as battle begins
            Player.initialHandSize -= 1;
            break;

        case Core.CYAN:     // Heals every turn
            healEveryTurn = true;
            break;

        case Core.MAGENTA:     // Increases max roll every turn
            increaseRollEveryTurn = true;
            break;

        case Core.ORANGE:     // Lose dice every turn
            loseDiceEveryTurn = true;
            break;
        }
    }
Example #2
0
    private void Start()
    {
        if (possibleArms == null) // Debug, to allow initializing from outside battle, can be deleted
        {
            initializeEnemyData(0);
        }

        // Assign body
        int rnd = Random.Range(0, possibleCores.Length);

        currentCore = possibleCores[rnd];
        GetComponent <Image>().sprite = CoreManager.cmInstance.getSpriteFromCore(currentCore);
        if (currentCore == Core.MAGENTA)
        {
            GetComponent <RectTransform>().sizeDelta = new Vector2(230, 230);
        }
        applyCoreEffects(currentCore);

        // Assign arms
        armList = ArmManager.amInstance.assignArms(transform, possibleArms, nOfArms, armAspects);
        foreach (EnemyLimb el in GetComponentsInChildren <EnemyLimb>())
        {
            el.initialize();
        }
        applyAllArmEffects(armList, armAspects);
        finishedInitialization = true;

        // Change scale (purely cosmetic) for more than 2 arms
        if (nOfArms > 2)
        {
            RectTransform rt = GetComponent <RectTransform>();
            rt.localScale *= (nOfArms == 4) ? 1.2f : (nOfArms == 6) ? 1.4f : 1.6f;
            // Scale correction for arms (so that they stay at x1)
            foreach (Transform child in transform)
            {
                if (child.GetComponent <EnemyLimb>() != null)
                {
                    child.GetComponent <RectTransform>().localScale *= 1f / rt.localScale.x;
                }
            }
        }

        // Eye
        changeEyeColor();
        Invoke("animateEye", 0.2f);
    }