Пример #1
0
    // Create from event
    public DialogWindow(EventManager.Event e)
    {
        eventData = e;
        heroList  = new List <Quest.Hero>();
        Game game = Game.Get();

        // hero list can be populated from another event
        if (!eventData.qEvent.heroListName.Equals(""))
        {
            // Try to find the event
            if (!game.quest.heroSelection.ContainsKey(eventData.qEvent.heroListName))
            {
                ValkyrieDebug.Log("Warning: Hero selection in event: " + eventData.qEvent.sectionName + " from event " + eventData.qEvent.heroListName + " with no data.");
            }
            else
            {
                // Get selection data from other event
                foreach (Quest.Hero h in game.quest.heroSelection[eventData.qEvent.heroListName])
                {
                    h.selected = true;
                }
                // Update selection status
                game.heroCanvas.UpdateStatus();
            }
        }

        if (eventData.qEvent.quota > 0)
        {
            CreateQuotaWindow();
        }
        else
        {
            CreateWindow();
        }
    }
Пример #2
0
    private void OnEvent(EventManager.Event ev)
    {
        switch (ev.Type())
        {
        case EventManager.EventType.TILE_HIT:
            if (ev.tile_hit.tile == this)
            {
                if (BulletCanDestroyTile(ev.tile_hit.bullet.Type(), type))
                {
                    grid.RemoveGameObject(gameObject);

                    collider.enabled = false;
                    StartAnimation(GridTileAnimation.SCALE_ROTATE_DISAPPEAR);
                }
                else
                {
                    EventManager.Event new_ev = new EventManager.Event(EventManager.EventType.TILE_HIT_NOT_DESTROYED);
                    new_ev.tile_hit_not_destroyed.bullet = ev.tile_hit.bullet;
                    new_ev.tile_hit_not_destroyed.sender = ev.tile_hit.sender;
                    new_ev.tile_hit_not_destroyed.tile   = ev.tile_hit.tile;

                    EventManager.Instance.SendEvent(new_ev);
                }
            }
            break;
        }
    }
Пример #3
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        GameEntity entity_hit = collision.gameObject.GetComponent <GameEntity>();

        if (entity_hit != null)
        {
            if (sender != entity_hit)
            {
                EventManager.Event ev = new EventManager.Event(EventManager.EventType.ENTITY_HIT);
                ev.entity_hit.hit    = entity_hit;
                ev.entity_hit.sender = sender;
                EventManager.Instance.SendEvent(ev);

                Destroy(gameObject);
                return;
            }
        }

        GridTileInstance tile_hit = collision.gameObject.GetComponent <GridTileInstance>();

        if (tile_hit != null)
        {
            EventManager.Event ev = new EventManager.Event(EventManager.EventType.TILE_HIT);
            ev.tile_hit.tile   = tile_hit;
            ev.tile_hit.bullet = this;
            ev.tile_hit.sender = sender;
            EventManager.Instance.SendEvent(ev);

            hits = true;

            Destroy(gameObject);

            return;
        }
    }
Пример #4
0
    private void OnEvent(EventManager.Event ev)
    {
        switch (ev.Type())
        {
        case EventManager.EventType.ENTITY_DIES:
            if (ev.entity_dies.entity == enemy)
            {
                enemy_dead = true;
            }
            break;

        case EventManager.EventType.ENTITY_SHOOT_FINISHED:
            if (ev.entity_shoot_finished.sender == player)
            {
                if (player.GetBulletsCount() <= 0)
                {
                    lose = true;
                }
            }
            break;

        case EventManager.EventType.TILE_HIT_NOT_DESTROYED:
        {
            lose = true;
        }
        break;
        }
    }
Пример #5
0
 private void OnDestroy()
 {
     EventManager.Event ev = new EventManager.Event(EventManager.EventType.ENTITY_SHOOT_FINISHED);
     ev.entity_shoot_finished.sender = sender;
     ev.entity_shoot_finished.hits   = hits;
     EventManager.Instance.SendEvent(ev);
 }
Пример #6
0
 public void SetKeyEvent(EventManager.Event keyEvent)
 {
     if (this.keyEvent == null)
     {
         this.keyEvent = keyEvent;
     }
 }
Пример #7
0
    public bool Shoot()
    {
        bool ret = false;

        if (timer_before_new_shoot.ReadTime() > time_before_new_shoot)
        {
            if (path != null && GetBulletsCount() > 0)
            {
                EntityPathInstance.PathPoint point = path.GetPathPointFromEntityGo(gameObject);

                EntityBullet.EntityBulletType type = GetNextBullet();

                GameObject   bullet        = InstantiateBulletGoFromBulletType(type);
                EntityBullet bullet_script = bullet.AddComponent <EntityBullet>();
                bullet_script.Init(this, LevelCreatorEditor.Instance.GetBulletsSpeed(), type);

                RemoveNextBullet();

                timer_before_new_shoot.Start();

                EventManager.Event ev = new EventManager.Event(EventManager.EventType.ENTITY_SHOOTS);
                ev.entity_shoots.entity = this;
                EventManager.Instance.SendEvent(ev);

                ret = true;
            }
        }

        return(ret);
    }
Пример #8
0
    void Update()
    {
        switch (state)
        {
        case LevelStartState.ALL_BACK_FADE_IN:
        {
            if (all_back_fade_in_timer.ReadTime() > all_back_fade_in_time)
            {
                background_image.transform.DOMoveX(canvas_group.gameObject.transform.position.x, fade_in_time);
                fade_in_timer.Start();

                state = LevelStartState.FADING_IN;
            }

            break;
        }

        case LevelStartState.FADING_IN:
        {
            if (fade_in_timer.ReadTime() > fade_in_time)
            {
                wait_timer.Start();

                state = LevelStartState.WAITING_TO_FADE_OUT;
            }

            break;
        }

        case LevelStartState.WAITING_TO_FADE_OUT:
        {
            if (wait_timer.ReadTime() > wait_time)
            {
                FadeOut();
            }

            break;
        }

        case LevelStartState.FADING_OUT:
        {
            if (fade_out_timer.ReadTime() > fade_out_time)
            {
                EventManager.Event ev = new EventManager.Event(EventManager.EventType.LEVEL_BEGIN);
                ev.level_begin.level = level_to_load;
                EventManager.Instance.SendEvent(ev);

                state = LevelStartState.FINISHED;
            }
            break;
        }

        case LevelStartState.FINISHED:
        {
            gameObject.SetActive(false);
            break;
        }
        }
    }
Пример #9
0
    public ActionResult Edit(string id)
    {
        var mode = Mode(id);

        ViewData["Mode"] = mode;

        var masterId = Request.QueryString["master"];

        var            row    = new EventManager().Get(id) ?? new EventManager.Event();
        var            master = new EventManager().Get(masterId) ?? new EventManager.Event();
        var            e      = new EventManager.Event();
        RecurrenceRule _rule;

        switch (mode)
        {
        case EventMode.Master:
            _rule      = RecurrenceRule.Decode(master.Recurrence);
            e.Start    = master.Start;
            e.End      = master.End;
            e.Text     = master.Text;
            e.Resource = master.Resource;
            break;

        case EventMode.NewException:
            _rule = RecurrenceRule.Exception;
            DateTime start    = Occurrence;
            TimeSpan duration = master.End - master.Start;
            DateTime end      = start + duration;
            e.Start    = start;
            e.End      = end;
            e.Text     = master.Text;
            e.Resource = master.Resource;
            break;

        case EventMode.Exception:
            _rule      = RecurrenceRule.Exception;
            e.Start    = row.Start;
            e.End      = row.End;
            e.Text     = row.Text;
            e.Resource = row.Resource;
            break;

        case EventMode.Regular:
            _rule      = RecurrenceRule.NoRepeat;
            e.Start    = row.Start;
            e.End      = row.End;
            e.Text     = row.Text;
            e.Resource = row.Resource;
            break;

        default:
            throw new ArgumentOutOfRangeException();
        }

        ViewData["RecurrenceJson"] = new HtmlString(_rule.ToJson());

        return(View(e));
    }
Пример #10
0
 private void OnEvent(EventManager.Event ev)
 {
     switch (ev.Type())
     {
     case EventManager.EventType.LEVEL_LOAD:
         main_menu_ui.gameObject.SetActive(false);
         stage_selection_ui.gameObject.SetActive(false);
         break;
     }
 }
Пример #11
0
    public PuzzleImageWindow(EventManager.Event e)
    {
        eventData = e;
        Game game = Game.Get();

        game.cc.panDisable = true;

        questPuzzle = e.qEvent as QuestData.Puzzle;

        if (game.quest.puzzle.ContainsKey(questPuzzle.sectionName))
        {
            puzzle        = game.quest.puzzle[questPuzzle.sectionName] as PuzzleImage;
            previousMoves = puzzle.moves;
        }
        else
        {
            puzzle = new PuzzleImage(questPuzzle.puzzleLevel, questPuzzle.puzzleAltLevel);
        }

        height = 19f / questPuzzle.puzzleAltLevel;
        width  = 19f / questPuzzle.puzzleLevel;

        Texture2D newTex = null;

        if (game.cd.puzzles.ContainsKey(questPuzzle.imageType))
        {
            newTex = ContentData.FileToTexture(game.cd.puzzles[questPuzzle.imageType].image);
        }
        else
        {
            newTex = ContentData.FileToTexture(System.IO.Path.GetDirectoryName(game.quest.qd.questPath) + "/" + questPuzzle.imageType);
        }
        if (newTex.width > newTex.height)
        {
            height = height * newTex.height / newTex.width;
        }
        else
        {
            width = width * newTex.width / newTex.height;
        }

        imageSprite = new Sprite[questPuzzle.puzzleLevel][];
        for (int i = 0; i < questPuzzle.puzzleLevel; i++)
        {
            imageSprite[i] = new Sprite[questPuzzle.puzzleAltLevel];
            for (int j = 0; j < questPuzzle.puzzleAltLevel; j++)
            {
                imageSprite[i][j] = Sprite.Create(newTex, new Rect(i * newTex.width / questPuzzle.puzzleLevel, (questPuzzle.puzzleAltLevel - (j + 1)) * newTex.height / questPuzzle.puzzleAltLevel, newTex.width / questPuzzle.puzzleLevel, newTex.height / questPuzzle.puzzleAltLevel), Vector2.zero, 1);
            }
        }

        CreateWindow();
    }
Пример #12
0
    private void OnEvent(EventManager.Event ev)
    {
        OnEventCall(ev);

        switch (ev.Type())
        {
        case EventManager.EventType.ENTITY_HIT:
            if (ev.entity_hit.hit == this)
            {
                SetLifeHit(1);
            }
            break;
        }
    }
Пример #13
0
 public void CreateEvent(string name, string location, DateTime startDateTime, DateTime endDateTime)
 {
     using (var db = new EventsManagerEntities())
     {
         EventManager.Event newEvent = new EventManager.Event()
         {
             Name          = name,
             Location      = location,
             StartDateTime = startDateTime,
             EndDateTime   = endDateTime
         };
         db.Events.Add(newEvent);
         db.SaveChanges();
     }
 }
Пример #14
0
    public void FadeOut()
    {
        EventManager.Event ev = new EventManager.Event(EventManager.EventType.LEVEL_LOAD);
        ev.level_load.level = level_to_load;
        EventManager.Instance.SendEvent(ev);

        Vector3 finish_pos = new Vector3(canvas_group.gameObject.transform.position.x - background_image.rectTransform.rect.size.x * 2,
                                         canvas_group.gameObject.gameObject.transform.position.y, canvas_group.gameObject.transform.position.z);

        background_image.transform.DOMoveX(finish_pos.x, fade_out_time);
        all_back_image.transform.DOMoveX(finish_pos.x, fade_out_time);

        state = LevelStartState.FADING_OUT;

        fade_out_timer.Start();
    }
Пример #15
0
    public void PrepareSend()
    {
        Type eventType = this.m_event.EventType;

        if (eventType != null)
        {
            MethodInfo method = typeof(EventManager).GetMethod("Send");
            this.m_genericSendMethod = method.MakeGenericMethod(new Type[]
            {
                eventType
            });
            EventManager.Event @event = (EventManager.Event)Activator.CreateInstance(eventType, this.CreateParameterObjects());
            this.m_sendParameters = new object[]
            {
                @event
            };
        }
    }
Пример #16
0
    private void ActuallyStartLevel()
    {
        current_level = null;

        current_level = GetLevel(level_stage_to_start, level_to_start);

        if (current_level != null)
        {
            if (level_to_start_use_intro)
            {
                level_start_ui.UIBegin(current_level.GetLevelNumber());

                current_level.OnAwake();

                current_level.OnStart();

                current_level.SetStarted(true);

                EventManager.Event new_ev = new EventManager.Event(EventManager.EventType.LEVEL_STARTED);
                new_ev.level_started.level = current_level.GetLevelNumber();
                EventManager.Instance.SendEvent(new_ev);
            }
            else
            {
                current_level.OnAwake();

                current_level.OnStart();

                current_level.SetStarted(true);

                EventManager.Event new_ev = new EventManager.Event(EventManager.EventType.LEVEL_STARTED);
                new_ev.level_started.level = current_level.GetLevelNumber();
                EventManager.Instance.SendEvent(new_ev);

                EventManager.Event ev = new EventManager.Event(EventManager.EventType.LEVEL_LOAD);
                ev.level_load.level = current_level.GetLevelNumber();
                EventManager.Instance.SendEvent(ev);
            }
        }
        else
        {
            Debug.LogError("[Level] Level could not be started, number not found: " + level_to_start);
        }
    }
Пример #17
0
    // Create from event
    public DialogWindow(EventManager.Event e)
    {
        eventData = e;
        heroList  = new List <Quest.Hero>();
        Game game = Game.Get();

        text = eventData.GetText();

        // hero list can be populated from another event
        if (!eventData.qEvent.heroListName.Equals(""))
        {
            // Try to find the event
            if (!game.quest.heroSelection.ContainsKey(eventData.qEvent.heroListName))
            {
                ValkyrieDebug.Log("Warning: Hero selection in event: " + eventData.qEvent.sectionName + " from event " + eventData.qEvent.heroListName + " with no data.");
                game.quest.log.Add(new Quest.LogEntry("Warning: Hero selection in event: " + eventData.qEvent.sectionName + " from event " + eventData.qEvent.heroListName + " with no data.", true));
            }
            else
            {
                // Get selection data from other event
                foreach (Quest.Hero h in game.quest.heroSelection[eventData.qEvent.heroListName])
                {
                    h.selected = true;
                }
            }
        }
        // Update selection status
        game.heroCanvas.UpdateStatus();

        if (eventData.qEvent.quota > 0 || eventData.qEvent.quotaVar.Length > 0)
        {
            if (eventData.qEvent.quotaVar.Length > 0)
            {
                quota = Mathf.RoundToInt(game.quest.vars.GetValue(eventData.qEvent.quotaVar));
            }
            CreateQuotaWindow();
        }
        else
        {
            CreateWindow();
        }

        DrawItem();
    }
Пример #18
0
    public PuzzleTowerWindow(EventManager.Event e)
    {
        eventData = e;
        Game game = Game.Get();

        questPuzzle = e.qEvent as QuestData.Puzzle;

        if (game.quest.puzzle.ContainsKey(questPuzzle.sectionName))
        {
            puzzle    = game.quest.puzzle[questPuzzle.sectionName] as PuzzleTower;
            lastMoves = puzzle.moves;
        }
        else
        {
            puzzle = new PuzzleTower(questPuzzle.puzzleLevel);
        }

        CreateWindow();
    }
Пример #19
0
    public PuzzleCodeWindow(EventManager.Event e)
    {
        eventData = e;
        Game game = Game.Get();

        guess       = new List <int>();
        questPuzzle = e.qEvent as QuestData.Puzzle;

        if (game.quest.puzzle.ContainsKey(questPuzzle.sectionName))
        {
            puzzle        = game.quest.puzzle[questPuzzle.sectionName] as PuzzleCode;
            previousMoves = puzzle.guess.Count;
        }
        else
        {
            puzzle = new PuzzleCode(questPuzzle.puzzleLevel, questPuzzle.puzzleAltLevel);
        }

        CreateWindow();
    }
Пример #20
0
    private void OnEvent(EventManager.Event ev)
    {
        switch (ev.Type())
        {
        case EventManager.EventType.LEVEL_LOAD:

            LoadCurrentLevel();
            break;

        case EventManager.EventType.LEVEL_BEGIN:

            BeginCurrentLevel();
            break;

        case EventManager.EventType.LEVEL_UNLOAD:

            UnloadCurrentLevel();
            break;
        }
    }
Пример #21
0
    private void OnEvent(EventManager.Event ev)
    {
        switch (ev.Type())
        {
        case EventManager.EventType.CONTROLS_SWIPE_DOWN:
            Move(MoveDirection.DOWN);
            break;

        case EventManager.EventType.CONTROLS_SWIPE_LEFT:
            Move(MoveDirection.LEFT);
            break;

        case EventManager.EventType.CONTROLS_SWIPE_RIGHT:
            Move(MoveDirection.RIGHT);
            break;

        case EventManager.EventType.CONTROLS_SWIPE_UP:
            Move(MoveDirection.UP);
            break;
        }
    }
Пример #22
0
    public PuzzleSlideWindow(EventManager.Event e)
    {
        eventData = e;
        Game game = Game.Get();

        questPuzzle = e.qEvent as QuestData.Puzzle;

        if (game.quest.puzzle.ContainsKey(questPuzzle.sectionName))
        {
            puzzle    = game.quest.puzzle[questPuzzle.sectionName] as PuzzleSlide;
            lastMoves = puzzle.moves;
        }
        else
        {
            // FIXME: dynamic generation too slow
            //puzzle = new PuzzleSlide(questPuzzle.puzzleLevel);
            puzzle = new PuzzleSlide(PuzzleSlide.HardCodedPuzzle());
        }

        CreateWindow();
    }
Пример #23
0
    public void SetLifePoints(int set)
    {
        life_points = set;

        if (life_points < 0)
        {
            life_points = 0;
        }

        if (life_points == 0 && !dead)
        {
            dead = true;

            EventManager.Event ev = new EventManager.Event(EventManager.EventType.ENTITY_DIES);
            ev.entity_dies.entity = this;
            EventManager.Instance.SendEvent(ev);

            path.RemoveGameObject(gameObject);
            collider.enabled = false;
            StartAnimation(GameEntityAnimation.SCALE_ROTATE_DISAPPEAR);
        }
    }
Пример #24
0
    public PuzzleTowerWindow(EventManager.Event e)
    {
        eventData = e;
        Game game = Game.Get();

        game.AddUpdateListener(this as IUpdateListener);
        questPuzzle = e.qEvent as QuestData.Puzzle;

        if (game.quest.puzzle.ContainsKey(questPuzzle.sectionName))
        {
            puzzle    = game.quest.puzzle[questPuzzle.sectionName] as PuzzleTower;
            lastMoves = puzzle.moves;
        }
        else
        {
            puzzle = new PuzzleTower(questPuzzle.puzzleLevel);
        }

        puzzleDisplay = puzzle.CopyState(puzzle.puzzle);

        CreateWindow();
    }
Пример #25
0
    public PuzzleCodeWindow(EventManager.Event e)
    {
        eventData = e;
        Game game = Game.Get();

        guess       = new List <int>();
        questPuzzle = e.qEvent as QuestData.Puzzle;
        buttons     = GetButtons();

        if (game.quest.puzzle.ContainsKey(questPuzzle.sectionName))
        {
            // This puzzle was played before. Load up the previous moves.
            puzzle        = game.quest.puzzle[questPuzzle.sectionName] as PuzzleCode;
            previousMoves = puzzle.guess.Count;
        }
        else
        {
            // Initialize a new puzzle
            puzzle = new PuzzleCode(questPuzzle.puzzleLevel, questPuzzle.puzzleAltLevel, questPuzzle.puzzleSolution);
        }

        CreateWindow();
    }
Пример #26
0
    public DialogWindow(EventManager.Event e)
    {
        eventData = e;
        heroList  = new List <Quest.Hero>();
        Game game = Game.Get();

        if (!eventData.qEvent.heroListName.Equals(""))
        {
            if (!game.quest.heroSelection.ContainsKey(eventData.qEvent.heroListName))
            {
                Debug.Log("Warning: Hero selection in event: " + eventData.qEvent.name + " from event " + eventData.qEvent.heroListName + " with no data.");
            }
            else
            {
                foreach (Quest.Hero h in game.quest.heroSelection[eventData.qEvent.heroListName])
                {
                    h.selected = true;
                }
                game.heroCanvas.UpdateStatus();
            }
        }

        CreateWindow();
    }
Пример #27
0
    private void CheckCurrentLevelStates()
    {
        if (current_level != null && current_level.GetStarted())
        {
            current_level.OnUpdate();

            bool finished = false;
            bool win      = false;

            if (current_level.OnCheckWin())
            {
                // Win
                finished = true;
                win      = true;

                current_level.SetCompleted(true);
            }
            else if (current_level.OnCheckLose())
            {
                // Lose
                finished = true;
            }

            if (finished)
            {
                EventManager.Event ev = new EventManager.Event(EventManager.EventType.LEVEL_FINISHED);
                ev.level_finished.level = current_level.GetLevelNumber();
                ev.level_finished.win   = win;
                EventManager.Instance.SendEvent(ev);

                level_end_ui.EndLevel(win, current_level.GetLevelNumber());

                EndCurrentLevel();
            }
        }
    }
Пример #28
0
 private void OnSwipeDown()
 {
     EventManager.Event ev = new EventManager.Event(EventManager.EventType.CONTROLS_SWIPE_DOWN);
     EventManager.Instance.SendEvent(ev);
 }
Пример #29
0
 private void OnSwipeLeft()
 {
     EventManager.Event ev = new EventManager.Event(EventManager.EventType.CONTROLS_SWIPE_LEFT);
     EventManager.Instance.SendEvent(ev);
 }
Пример #30
0
    void Update()
    {
        switch (state)
        {
        case LevelEndState.WATING_TO_FADE_IN:
        {
            if (wait_fade_in_timer.ReadTime() > wait_fade_in_time)
            {
                all_back_image.gameObject.SetActive(true);

                if (win)
                {
                    object[] val = { level_ended };
                    level_status_text.text          = LocManager.Instance.GetText("FinishLevelLevelCompleted", val);
                    next_level_play_again_text.text = LocManager.Instance.GetText("FinishLevelNextLevel");
                }
                else
                {
                    object[] val = { level_ended };
                    level_status_text.text          = LocManager.Instance.GetText("FinishLevelLevelFailed", val);
                    next_level_play_again_text.text = LocManager.Instance.GetText("FinishLevelReestartLevel");
                }

                all_back_image.DOFade(1.0f, all_back_fade_in_time);
                all_back_fade_in_timer.Start();

                state = LevelEndState.ALL_BACK_FADE_IN;
            }

            break;
        }

        case LevelEndState.ALL_BACK_FADE_IN:
        {
            if (all_back_fade_in_timer.ReadTime() > all_back_fade_in_time)
            {
                background_image.transform.DOMoveX(canvas_group.gameObject.transform.position.x, fade_in_time);
                fade_in_timer.Start();

                state = LevelEndState.FADING_IN;
            }

            break;
        }

        case LevelEndState.FADING_IN:
        {
            if (fade_in_timer.ReadTime() > fade_in_time)
            {
                button1.interactable = true;
                button2.interactable = true;

                EventManager.Event ev = new EventManager.Event(EventManager.EventType.LEVEL_UNLOAD);
                ev.level_unload.level = level_ended;
                EventManager.Instance.SendEvent(ev);

                state = LevelEndState.WAITING_TO_FADE_OUT;
            }

            break;
        }

        case LevelEndState.WAITING_TO_FADE_OUT:
        {
            break;
        }

        case LevelEndState.FADING_OUT:
        {
            if (fade_out_timer.ReadTime() > fade_out_time)
            {
                if (level_reestart)
                {
                    EventManager.Event ev = new EventManager.Event(EventManager.EventType.LEVEL_BEGIN);
                    ev.level_begin.level = level_ended;
                    EventManager.Instance.SendEvent(ev);

                    level_reestart = false;
                }

                state = LevelEndState.FINISHED;
            }
            break;
        }

        case LevelEndState.FINISHED:
        {
            gameObject.SetActive(false);
            break;
        }
        }
    }