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; } }
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); }