void Awake() { LRenderer = LR.GetComponent <LineRenderer>(); LRenderer.positionCount = 0; pairComparer = new PairComparer(); lines = new HashSet <Pair>(pairComparer); spellsDictionary = new Dictionary <HashSet <Pair>, Spells>(); HashSet <Pair> fireSet = new HashSet <Pair>(pairComparer); fireSet.Add(new Pair(6, 3)); fireSet.Add(new Pair(3, 0)); fireSet.Add(new Pair(0, 1)); fireSet.Add(new Pair(1, 2)); fireSet.Add(new Pair(2, 5)); fireSet.Add(new Pair(5, 8)); fireSet.Add(new Pair(8, 4)); spellsDictionary.Add(fireSet, Spells.Fire); HashSet <Pair> teleportSet = new HashSet <Pair>(pairComparer); teleportSet.Add(new Pair(6, 3)); teleportSet.Add(new Pair(3, 1)); teleportSet.Add(new Pair(1, 5)); teleportSet.Add(new Pair(5, 8)); spellsDictionary.Add(teleportSet, Spells.Teleport); HashSet <Pair> levitateSet = new HashSet <Pair>(pairComparer); levitateSet.Add(new Pair(1, 3)); levitateSet.Add(new Pair(3, 4)); levitateSet.Add(new Pair(4, 5)); levitateSet.Add(new Pair(5, 1)); spellsDictionary.Add(levitateSet, Spells.Levitate); }
public void initSquareLookup() { PairComparer <int> p = new PairComparer <int>(); squareDict = new Dictionary <Pair <int>, int>(p); reverseSquareDict = new Dictionary <int, List <Pair <int> > >(); for (int i = 1; i <= 9; i++) { for (int j = 1; j <= 9; j++) { if (i <= 3) { if (j <= 3) { squareDict.Add(new Pair <int>(i, j), 1); if (!reverseSquareDict.ContainsKey(1)) { reverseSquareDict.Add(1, new List <Pair <int> >()); } reverseSquareDict[1].Add(new Pair <int>(i, j)); } else if (j > 3 && j <= 6) { squareDict.Add(new Pair <int>(i, j), 2); if (!reverseSquareDict.ContainsKey(2)) { reverseSquareDict.Add(2, new List <Pair <int> >()); } reverseSquareDict[2].Add(new Pair <int>(i, j)); } else { squareDict.Add(new Pair <int>(i, j), 3); if (!reverseSquareDict.ContainsKey(3)) { reverseSquareDict.Add(3, new List <Pair <int> >()); } reverseSquareDict[3].Add(new Pair <int>(i, j)); } } else if (i > 3 && i <= 6) { if (j <= 3) { squareDict.Add(new Pair <int>(i, j), 4); if (!reverseSquareDict.ContainsKey(4)) { reverseSquareDict.Add(4, new List <Pair <int> >()); } reverseSquareDict[4].Add(new Pair <int>(i, j)); } else if (j > 3 && j <= 6) { squareDict.Add(new Pair <int>(i, j), 5); if (!reverseSquareDict.ContainsKey(5)) { reverseSquareDict.Add(5, new List <Pair <int> >()); } reverseSquareDict[5].Add(new Pair <int>(i, j)); } else { squareDict.Add(new Pair <int>(i, j), 6); if (!reverseSquareDict.ContainsKey(6)) { reverseSquareDict.Add(6, new List <Pair <int> >()); } reverseSquareDict[6].Add(new Pair <int>(i, j)); } } else { if (j <= 3) { squareDict.Add(new Pair <int>(i, j), 7); if (!reverseSquareDict.ContainsKey(7)) { reverseSquareDict.Add(7, new List <Pair <int> >()); } reverseSquareDict[7].Add(new Pair <int>(i, j)); } else if (j > 3 && j <= 6) { squareDict.Add(new Pair <int>(i, j), 8); if (!reverseSquareDict.ContainsKey(8)) { reverseSquareDict.Add(8, new List <Pair <int> >()); } reverseSquareDict[8].Add(new Pair <int>(i, j)); } else { squareDict.Add(new Pair <int>(i, j), 9); if (!reverseSquareDict.ContainsKey(9)) { reverseSquareDict.Add(9, new List <Pair <int> >()); } reverseSquareDict[9].Add(new Pair <int>(i, j)); } } } } }