using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; using UnityEngine.U2D; using TMPro.Examples; using DG.Tweening; using UnityEngine.Rendering.Universal; public class Tile : MonoBehaviour { public int coordX = 0; public int coordY = 0; private int coordXPrevious = 0; private int coordYPrevious = 0; public bool isMine = false; public bool isFlagged = false; //public bool isQuestioned = false; public bool isRevealed = false; public bool isDisplay = false; public int nearbyMines = 0; public int nearbyFlags = 0; /*public float screenShakeDuration = 0.1f; public float screenShakeStrength = 0.1f;*/ public bool isDestroyed = false; public bool isRowSolved = false; public bool is8Triggered = false; public bool isFailedToChord = false; private bool revealedThisFrame = false; public bool isMarkCleared = false; // Auras public enum AuraType { normal, burning, frozen, wet, electric, plant, sand, glass, infected } public AuraType aura = AuraType.normal; float burnTime = 15f; float meltTime = 15f; float putOutTime = 6f; float evaporateTime = 10f; float auraDecayClock = 0; public bool burnoutInvisible = false; float auraClock = 0; List adjacentAuras = new List(); public Material[] auraMaterials; public AudioClip[] burningPutOutSteamHiss; public AudioClip[] burningBurnOutFlame; public AudioClip[] hardHitSounds; public AudioClip[] iceBreakSounds; public AudioClip[] snowSounds; public AudioClip[] bubbleSounds; public AudioClip[] splashSounds; public AudioClip[] swimSounds; public AudioClip meltSound; public AudioClip boilSoftSound; public AudioClip fireSizzleSound; public AudioClip steamLoopSound; Tile tileToBurn; public AudioSource decaySoundSource; // Assets public Color solvedMarkColor; public AudioClip revealSound; public AudioClip flagSound; public AudioClip unflagSound; public AudioClip chordSound; public AudioClip chordFlagSound; public AudioClip chordFailSound; public SpriteRenderer tileBackground; public SpriteRenderer explodedMineBackground; public SpriteRenderer wrongFlagBackground; public SpriteMask shimmerOverlay; public Image fadeOverlay; public Image unrevealedButtonImage; public SpriteRenderer burnGameOverImage; public Image auraOverlayImage; public SpriteRenderer auraBackgroundOverlayImage; TextMeshProUGUI text; public new Light2D light; [HideInInspector] public GameManager gm; Camera cam; //HoldTetromino holdTetromino; GameModifiers gameMods; ButtonJiggle buttonJiggle; [HideInInspector] public Group group; void OnDestroy() { if (aura == AuraType.burning) { gm.numBurningTiles -= 1; } else if (aura == AuraType.frozen) { gm.numFrozenTiles -= 1; } else if (aura == AuraType.wet) { gm.numWetTiles -= 1; } } private void Awake() { text = GetComponentInChildren(); gm = GameObject.FindGameObjectWithTag("GameController").GetComponent(); cam = GameObject.FindGameObjectWithTag("MainCamera").GetComponent(); //holdTetromino = GameObject.FindGameObjectWithTag("Hold").GetComponent(); gameMods = gm.gameMods; buttonJiggle = GetComponent(); group = GetComponentInParent(); unrevealedButtonImage = GetComponentInChildren().GetComponent(); light = GetComponentInChildren(); } // Start is called before the first frame update void Start() { buttonJiggle.Reset(); auraOverlayImage.color = unrevealedButtonImage.color; Vector2 v = GameManager.roundVec2(transform.position); /*if (group != null) if (group.isSetupTetromino) Debug.Log(transform.position + ", " + v);*/ coordX = (int)v.x; coordY = (int)v.y; CountMine(); SetAura(aura); if (isDisplay) { GetComponentInChildren