public static void EventController(Canvas canvas)
        {
            if (eventCount != StageEvent.listEvent.Count)
            {
                if (!eventWaiting && !screenFadeStart)
                {
                    switch (StageEvent.listEvent[eventCount].eventType)
                    {
                    case EventCommandEnum.Wait:
                        eventWaiting = true;
                        EventWaiting(StageEvent.listEvent[eventCount].eventValue);
                        Console.WriteLine("wait");
                        break;

                    case EventCommandEnum.Balloon:

                        Vector blpos    = StageEvent.listEvent[eventCount].balloonPos;
                        string blstring = StageEvent.listEvent[eventCount].balloonMsg;

                        if (StageEvent.listEvent[eventCount].targetImgType == TargetType.Player)
                        {
                            eventTargetImage = ImageData.imgPlayer;
                        }

                        if (StageEvent.listEvent[eventCount].targetImgType == TargetType.Object)
                        {
                            eventTargetImage = ObjectChecker.lstObject[StageEvent.listEvent[eventCount].targetId].imgObject;
                        }


                        BalloonMessage.OpenBalloon(eventCount, canvas, blpos, eventTargetImage, blstring, false);


                        eventBalloonIsOpen = true;

                        break;

                    case EventCommandEnum.UiVisibility:

                        if (!StageEvent.listEvent[eventCount].uiVisible)
                        {
                            MainWindow.stpPlayerStatus.Visibility = Visibility.Hidden;
                        }
                        else
                        {
                            MainWindow.stpPlayerStatus.Visibility = Visibility.Visible;
                        }
                        break;

                    case EventCommandEnum.KeyLock:
                        KeyController.keyControlLocking = StageEvent.listEvent[eventCount].flagKeyLock;
                        Console.WriteLine("keylock");
                        break;

                    case EventCommandEnum.Move:

                        lstEventTask.Add(new EventCommandTask {
                            name = EventCommandEnum.Move
                        });

                        if (StageEvent.listEvent[eventCount].targetImgType == TargetType.Player)
                        {
                            lstEventTask[lstEventTask.Count - 1].targetType   = TargetType.Player;
                            lstEventTask[lstEventTask.Count - 1].targetImage  = ImageData.imgPlayer;
                            lstEventTask[lstEventTask.Count - 1].moveDistance = StageEvent.listEvent[eventCount].moveDistance;
                        }
                        else

                        if (StageEvent.listEvent[eventCount].targetImgType == TargetType.Object)
                        {
                            lstEventTask[lstEventTask.Count - 1].targetType   = TargetType.Object;
                            lstEventTask[lstEventTask.Count - 1].targetImage  = ObjectChecker.lstObject[StageEvent.listEvent[eventCount].targetId].imgObject;
                            lstEventTask[lstEventTask.Count - 1].targetID     = StageEvent.listEvent[eventCount].targetId;
                            lstEventTask[lstEventTask.Count - 1].moveDistance = StageEvent.listEvent[eventCount].moveDistance;
                        }
                        lstEventTask[lstEventTask.Count - 1].direction = StageEvent.listEvent[eventCount].direction;

                        charaMoveStart = true;

                        break;

                    case EventCommandEnum.BgmPlay:

                        Sound.SoundBgmSelector(StageEvent.listEvent[eventCount].bgmName);
                        Sound.bgm.Play();

                        Console.WriteLine("bgm");
                        break;

                    case EventCommandEnum.SePlay:

                        Sound.SoundEffectSelector(StageEvent.listEvent[eventCount].seName);

                        Sound.SoundEffectPlayer(StageEvent.listEvent[eventCount].seName);

                        Console.WriteLine("se");
                        break;

                    case EventCommandEnum.CharaFadeIn:

                        ImageData.imgPlayer.Opacity = 0;
                        ImageData.imgPlayer.Width   = 32;
                        ImageData.imgPlayer.Height  = 64;

                        renderRateTotal = 0;

                        charaRenderIndex = eventCount;
                        charaRenderStart = true;

                        break;

                    case EventCommandEnum.CharaImageChange:

                        switch (StageEvent.listEvent[eventCount].targetImgType)
                        {
                        case TargetType.Player:
                            ImageData.imgPlayer.Source =
                                ImageData.ImageSourceSelector(StageEvent.listEvent[eventCount].categoryName,
                                                              StageEvent.listEvent[eventCount].patternName);
                            break;

                        case TargetType.Enemy:

                            //
                            SpawnEnemy.lstEnemyData[0].imgEnemy.Source =
                                ImageData.ImageSourceSelector(StageEvent.listEvent[eventCount].categoryName,
                                                              StageEvent.listEvent[eventCount].patternName);
                            break;

                        case TargetType.Object:
                            ObjectChecker.lstObject[StageEvent.listEvent[eventCount].targetId].imgObject.Source =

                                ImageData.ImageSourceSelector(StageEvent.listEvent[eventCount].categoryName,
                                                              StageEvent.listEvent[eventCount].patternName);

                            break;

                        case TargetType.Item:
                            break;
                        }

                        break;

                    case EventCommandEnum.ScreenFadeIn:



                        switch (StageEvent.listEvent[eventCount].color)
                        {
                        case ColorEnum.White:
                            MainWindow.canScreenFade.Background = new SolidColorBrush(Colors.White);
                            break;

                        case ColorEnum.Black:
                            MainWindow.canScreenFade.Background = new SolidColorBrush(Colors.Black);
                            break;
                        }

                        MainWindow.canScreenFade.Opacity = 0;

                        MainWindow.canScreenFade.Visibility = Visibility.Visible;

                        screenFadeTotal = 0;
                        screenFadeIndex = eventCount;
                        screenFadeStart = true;

                        break;

                    case EventCommandEnum.ScreenFadeOut:

                        screenFadeTotal = 1;
                        screenFadeIndex = eventCount;
                        screenFadeStart = true;
                        break;

                    case EventCommandEnum.GenerateEnemy:

                        SpawnEnemy.GenerateEnemy(canvas, 0, StageEvent.listEvent[eventCount].setPosition);

                        break;

                    case EventCommandEnum.EventEnd:

                        duringTransition = false;
                        eventStart       = false;

                        if (gameTransition == GameTransitionType.StageStart)
                        {
                            if (!StageEvent.listEvent[eventCount].eventOnly)
                            {
                                MainWindow.lblMode.Content = "ゲームモード:ステージプレイ";
                                gameTransition             = GameTransitionType.StageDuring;
                            }
                            else
                            {
                                MainWindow.lblMode.Content = "ゲームモード:ステージ初期化";
                                gameTransition             = GameTransitionType.StageNext;
                            }
                        }
                        else if (gameTransition == GameTransitionType.StageEnd)
                        {
                            MainWindow.lblMode.Content = "ゲームモード:ステージ初期化";
                            gameTransition             = GameTransitionType.StageNext;
                        }

                        Console.WriteLine("end");

                        break;
                    }

                    eventCount++;
                }
            }
        }
//inits
        private void InitGame()
        {
            this.GetNowTime();
            lastTime = nowTime;

            ImageData.SpriteReading();                                          //cropped image data

            StageManager.stageNum = 0;
            StageOrder.OrderListInit();                                 //stage order
            StageDataSetting.DataBaseReading();                         //database


            ImageData.SystemImagesReading();
            Sound.SoundEffectLoad(Canvas);

            SplashLogoOpen();


            //controlls maked
            mainCanvas = this.FindName("Canvas") as Canvas;
            lblMode    = FindName("lblGameMode") as Label;

            ctlDatabaseButton = btnViewDatabaseWindow;
            ctlMaterialButton = btnViewMaterialBrowser;
            ctlImageButton    = btnViewImageManager;

            CollisionCheck.ColliderCheckMaskGenerater(Canvas);
            MainWeapon.InitMainWeapon(Canvas);

            BalloonMessage.GenerateBalloon(Canvas);
            stpPlayerStatus            = Canvas.FindName("spPlayerStatus") as StackPanel;
            stpPlayerStatus.Visibility = Visibility.Hidden;
            Canvas.SetZIndex(spPlayerStatus, ImageZindex.status);

            var _popcantalk = new Image
            {
                Source     = ImageData.cbSystem,
                Width      = 64, Height = 32,
                Visibility = Visibility.Hidden,
            };

            ImageData.imgPopCanTalk = _popcantalk;
            Canvas.Children.Add(ImageData.imgPopCanTalk);
            Canvas.SetZIndex(ImageData.imgPopCanTalk, ImageZindex.status);


            ImageData.imgHandCursor = new Image
            {
                Source     = ImageData.cbHandCursor,
                Width      = 32, Height = 32,
                Visibility = Visibility.Hidden,
            };

            Canvas.Children.Add(ImageData.imgHandCursor);
            Canvas.SetZIndex(ImageData.imgHandCursor, ImageZindex.handCursor);

            canScreenFade.Width      = 1024;
            canScreenFade.Height     = 768;
            canScreenFade.Visibility = Visibility.Hidden;
            Canvas.Children.Add(canScreenFade);
            Canvas.SetLeft(canScreenFade, 0);
            Canvas.SetTop(canScreenFade, 0);
            Canvas.SetZIndex(canScreenFade, ImageZindex.fade);

            StageInit.InitPlayer(Canvas);
            StageInit.InitPlayerStatus(CaLife, CaMana);
        }
Exemple #3
0
        public static void TalkWithNpc(Canvas canvas)
        {
            if (talkNumCount < lstTalkMessage.Count)
            {
                Vector pos    = new Vector(0, 0);
                Image  target = new Image();

                if (lstTalkMessage[talkNumCount].branchID == selectBranch)
                {
                    if (!lstTalkMessage[talkNumCount].speaker)
                    {
                        pos = new Vector(Canvas.GetLeft(ImageData.imgPlayer), Canvas.GetTop(ImageData.imgPlayer));
                    }
                    else
                    {
                        ObjectChecker.GetTriggerTargetPosition(ObjectChecker.activeObject);
                        pos = ObjectChecker.triggerTargetPosition;
                    }


                    switch (lstTalkMessage[talkNumCount].type)
                    {
                    case TalkType.Normal:

                        BalloonMessage.OpenBalloon(0, canvas, pos, target, lstTalkMessage[talkNumCount].message, true);
                        isTalkSelecting = false;
                        ImageData.imgHandCursor.Visibility = Visibility.Hidden;
                        isTalkOpenBalloon = true;
                        break;

                    case TalkType.Selection:

                        BalloonMessage.OpenBalloon(0, canvas, pos, target, lstTalkMessage[talkNumCount].message, true);
                        isTalkSelecting = true;
                        ImageData.imgHandCursor.Visibility = Visibility.Visible;
                        Canvas.SetLeft(ImageData.imgHandCursor, Canvas.GetLeft(BalloonMessage.spnBalloon) - 20);
                        Canvas.SetTop(ImageData.imgHandCursor, Canvas.GetTop(BalloonMessage.spnBalloon));
                        isTalkOpenBalloon = true;
                        break;

                    case TalkType.SetFlag:

                        ImageData.imgHandCursor.Visibility = Visibility.Hidden;
                        memoryTalkFlagID = lstTalkMessage[talkNumCount].talkFlagID;

                        talkNumCount++;

                        break;
                    }
                }
                else
                {
                    talkNumCount++;
                }
            }
            else
            {
                talkNumCount = 0;
                selectBranch = 0;
                lstTalkMessage.Clear();

                ObjectChecker.oldActiveObject = ObjectChecker.activeObject;
                isTalk = false;
                KeyController.keyControlLocking = false;
            }
        }