public void GenerateEvent() { int totalEventType = (int)GameEventType.GameEventNum; int which = UnityEngine.Random.Range(0, totalEventType); int eventNum = eventReader.getTotalEventNumOfType(which); int whichEvent = UnityEngine.Random.Range(0, eventNum); GameEventType type = (GameEventType)which; GameEvent gameEvent = null; int i = 0; do { gameEvent = eventReader.getNewGameEvent(type, whichEvent); i++; if (i > 10) { return; } }while(gameEvent.eventType == GameEventType.NormalNonoptionMemoryEvent && (gm.gameInteraction.memoryPanel.memories.Contains(((NormalNonoptionMemoryEvent)gameEvent).GetMemoryId()) || currentMemories.Contains(((NormalNonoptionMemoryEvent)gameEvent).GetMemoryId()))); if (gameEvent.eventType == GameEventType.NormalNonoptionMemoryEvent) { currentMemories.Add(((NormalNonoptionMemoryEvent)gameEvent).GetMemoryId()); } GameEventDisplayer displayer = CreateNewEventDisplayer(gameEvent); if (displayer != null) { gameEventDisplayers.Add(displayer); } }
public void CloseEvent(GameEventDisplayer displayer) { displayer.currentCell.gameEventDisplayer = null; gameEventDisplayers.Remove(displayer); if (displayer.gameEvent.eventType == GameEventType.NormalNonoptionMemoryEvent) { currentMemories.Remove(((NormalNonoptionMemoryEvent)displayer.gameEvent).GetMemoryId()); } GameObject.DestroyImmediate(displayer.gameObject); }
public bool SetGameEventDisplayerCell(GameEventDisplayer displayer, HexCell cell) { if (displayer == null || cell == null || !cell.CanbeDestination()) { return(false); } cell.gameEventDisplayer = displayer; displayer.currentCell = cell; displayer.transform.position = cell.transform.position; return(true); }
public GameEventDisplayer CreateNewEventDisplayer(GameEvent gameEvent) { if (gameEvent != null) { GameEventDisplayer newDisplayer = GameObject.Instantiate(pref_gameEventDisplayer); newDisplayer.transform.SetParent(EventRoot.transform); HexCell cell = gm.hexMap.GetRandomCellToSpawn(); gm.hexMap.SetGameEventDisplayerCell(newDisplayer, cell); newDisplayer.gameEvent = gameEvent; newDisplayer.InitDisplayer(); return(newDisplayer); } return(null); }