using System; using System.Collections.Generic; using PixelCrushers.DialogueSystem; using UnityEngine; using UnityEngine.UI; // Token: 0x020000E1 RID: 225 public class UndergroundMap : MonoBehaviour { // Token: 0x060014DA RID: 5338 RVA: 0x00192880 File Offset: 0x00190A80 public void Setup() { this.Load(); for (int i = 0; i < this.pieces.Length; i++) { UndergroundMapPiece.MapPieceType type = this.pieces[i].type; if (type == UndergroundMapPiece.MapPieceType.Map || type == UndergroundMapPiece.MapPieceType.Passage || type == UndergroundMapPiece.MapPieceType.Exit) { if (type == UndergroundMapPiece.MapPieceType.Map) { Image component = this.pieces[i].gameObject.transform.GetChild(0).gameObject.GetComponent(); this.imgHighlight.Add(component); component.enabled = false; } else { this.imgHighlight.Add(null); } if (this.states[i] == 0) { this.pieces[i].gameObject.SetActive(false); } else { this.pieces[i].gameObject.SetActive(true); } } else { this.imgHighlight.Add(null); if (this.states[i] == 1) { if (type == UndergroundMapPiece.MapPieceType.QuestOnUntilState) { this.pieces[i].gameObject.SetActive(false); } if (type == UndergroundMapPiece.MapPieceType.QuestOffUntilState) { this.pieces[i].gameObject.SetActive(true); } } else { this.CheckQuest(i); } } } } // Token: 0x060014DB RID: 5339 RVA: 0x00192998 File Offset: 0x00190B98 private void CheckQuest(int i) { if (this.pieces[i].type == UndergroundMapPiece.MapPieceType.QuestOnUntilState && this.pieces[i].quest1 != Creatures.Adventures.None) { QuestState questState = QuestLog.GetQuestState(this.pieces[i].quest1.ToString()); QuestState questState2 = Records.x.StringToQuestState(this.pieces[i].turnOffWhenThisState.ToString()); if (questState == questState2) { this.states[i] = 1; this.pieces[i].gameObject.SetActive(false); } else { this.pieces[i].gameObject.SetActive(true); } } if (this.pieces[i].type == UndergroundMapPiece.MapPieceType.QuestOffUntilState && this.pieces[i].quest2 != Creatures.Adventures.None) { QuestState questState3 = QuestLog.GetQuestState(this.pieces[i].quest2.ToString()); QuestState questState4 = Records.x.StringToQuestState(this.pieces[i].turnOnWhenThisState.ToString()); if (questState3 == questState4) { this.states[i] = 1; this.pieces[i].gameObject.SetActive(true); return; } this.pieces[i].gameObject.SetActive(false); } } // Token: 0x060014DC RID: 5340 RVA: 0x00192AD8 File Offset: 0x00190CD8 public void ChangedArea(string areaName) { for (int i = 0; i < this.pieces.Length; i++) { if (this.pieces[i].type == UndergroundMapPiece.MapPieceType.Map) { Image image = this.imgHighlight[i]; if (areaName == this.pieces[i].gameObject.name) { image.enabled = false; if (this.pieces[i].useSoundMapAlpha) { RaycastHit raycastHit; if (Links.x.main && Physics.Raycast(Links.x.main.tr.position, Links.x.rtsCamera.tr.forward, out raycastHit, 600f, 16777216)) { Vector2 textureCoord = raycastHit.textureCoord; textureCoord.x *= (float)Links.x.sensory.terrainTextureWidthInt; textureCoord.y *= (float)Links.x.sensory.terrainTextureHeightInt; float num = (float)Links.x.sensory.GetPixelColorForUndergroundMap((int)textureCoord.x, (int)textureCoord.y).a / 255f; float num2 = this.pieces[i].matchingAlphaValue / 100f; if (num < num2 + 0.01f && num > num2 - 0.01f) { this.states[i] = 1; this.pieces[i].gameObject.SetActive(true); image.enabled = true; } } } else { this.states[i] = 1; this.pieces[i].gameObject.SetActive(true); image.enabled = true; } } else { image.enabled = false; } } } } // Token: 0x060014DD RID: 5341 RVA: 0x00192C94 File Offset: 0x00190E94 public void UsedPreviousDoor(string mapName, string subExit) { for (int i = 0; i < this.pieces.Length; i++) { if (this.pieces[i].type == UndergroundMapPiece.MapPieceType.Exit && mapName == this.pieces[i].exitToName.ToString() && subExit == this.pieces[i].subExitName.ToString()) { this.states[i] = 1; this.pieces[i].gameObject.SetActive(true); } } } // Token: 0x060014DE RID: 5342 RVA: 0x00192D24 File Offset: 0x00190F24 public void UsedDoor(MapExit exit) { bool flag = false; if (exit.exitTo != MapExit.exitToNames.Interiors && exit.exitTo != MapExit.exitToNames.Exterior) { flag = true; } for (int i = 0; i < this.pieces.Length; i++) { if (this.pieces[i].type == UndergroundMapPiece.MapPieceType.Passage && !flag && exit.interiorConnection == this.pieces[i].interiorExitName) { this.states[i] = 1; this.pieces[i].gameObject.SetActive(true); } if (this.pieces[i].type == UndergroundMapPiece.MapPieceType.Exit && flag && exit.exitTo == this.pieces[i].exitToName && exit.subExit == this.pieces[i].subExitName) { this.states[i] = 1; this.pieces[i].gameObject.SetActive(true); } } } // Token: 0x060014DF RID: 5343 RVA: 0x00192E08 File Offset: 0x00191008 public void UpdateQuests() { for (int i = 0; i < this.pieces.Length; i++) { if (this.pieces[i].type == UndergroundMapPiece.MapPieceType.QuestOnUntilState) { this.CheckQuest(i); } if (this.pieces[i].type == UndergroundMapPiece.MapPieceType.QuestOffUntilState) { this.CheckQuest(i); } } } // Token: 0x060014E0 RID: 5344 RVA: 0x00192E58 File Offset: 0x00191058 public void Save() { Records.x.openBook + "/UndergroundMaps.es3"; this.saveFile.Save>("States " + Links.x.diorama.sceneName, this.states); this.saveFile.Sync(); } // Token: 0x060014E1 RID: 5345 RVA: 0x00192EB0 File Offset: 0x001910B0 public void Load() { string text = Records.x.openBook + "/UndergroundMaps.es3"; this.saveFile = new ES3File(text); if (ES3.FileExists(text)) { string text2 = "States " + Links.x.diorama.sceneName; if (this.saveFile.KeyExists(text2)) { this.states = this.saveFile.Load>(text2); } } if (this.states.Count != this.pieces.Length) { for (int i = 0; i < this.pieces.Length; i++) { if (i >= this.states.Count) { this.states.Add(0); } } } } // Token: 0x04002437 RID: 9271 public UndergroundMapPiece[] pieces; // Token: 0x04002438 RID: 9272 public List states = new List(); // Token: 0x04002439 RID: 9273 private List imgHighlight = new List(); // Token: 0x0400243A RID: 9274 private ES3File saveFile; }