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);
    }
Пример #3
0
    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);
    }