Esempio n. 1
0
        public SkillCard(System.Drawing.Bitmap cardImage, Vector2D position, string viewName, string cost, Data.Character ownerCharacter, Data.ActionSkill actionSkill)
        {
            this.cardImage      = cardImage;
            this.position       = position;
            this.ownerCharacter = ownerCharacter;
            this.cost           = cost;
            this.actionSkill    = actionSkill;

            {
                var bmp     = cardImage;
                var texture = new Texture(bmp);
                var w       = 160;
                var h       = (int)((double)bmp.Height / (double)bmp.Width * w);
                var sprite  = new ImageSprite(texture, new Rect(new Vector2D(position.X, position.Y), new Vector2D(w, h)), new Color(1, 1, 1, 1));
                layer.Add(sprite, 10);

                size           = new Vector2D(w, h);
                mySprites.face = sprite;
            }

            {
                var x    = position.X - 5;
                var y    = position.Y + 200;
                var font = new Font(Config.MainConfig.MainFontPath, 16, new Color(1, 1, 1, 1), new Font.FontFrame[] {
                    new Font.FontFrame(2, new Color(1, 0, 0, 0)),
                }, 0);
                var ts = new TextSprite(viewName, font, new Vector2D(x, y));

                layer.Add(ts, 20);
                mySprites.viewName = ts;
            }
            {
                var x      = position.X;
                var y      = position.Y + 227;
                var w      = size.X;
                var h      = 1;
                var sprite = new PlaneSprite(new Rect(new Vector2D(x, y), new Vector2D(w, h)), new Color(0.3, 1, 1, 1));
                layer.Add(sprite, 10);
                mySprites.bar = sprite;
            }
            {
                var x    = position.X - 5;
                var y    = position.Y + 225;
                var font = new Font(Config.MainConfig.MainFontPath, 12, new Color(1, 1, 1, 1), new Font.FontFrame[] {
                    new Font.FontFrame(2, new Color(1, 0, 0, 0)),
                }, 0);
                var ts = new TextSprite(cost, font, new Vector2D(x, y));
                //var ts = new TextSprite(cost, "data/font/rounded-mgenplus-1cp-medium.ttf", 12, new Vector2D(x, y), new Color(1, 1, 1, 1));
                layer.Add(ts, 20);
                mySprites.ViewStatus = ts;
            }

            {
                var sprite = new PlaneLineSprite(new Rect(position, size), new Color(0.5, 1, 1, 1));
                layer.Add(sprite, 30);
                mySprites.mouseOn = sprite;
            }
        }
Esempio n. 2
0
        public TalkScene(string talkScriptPath)
        {
            this.talkScriptPath = talkScriptPath;

            // 前回(今現在)の画面を取得
            {
                //var bmp = new System.Drawing.Bitmap("data/image/bg/酒場.png");
                var bmp     = WindowManager.ScreenShot();
                var texture = new Texture(bmp);
                var w       = 1600;
                var h       = (int)((double)bmp.Height / (double)bmp.Width * w);
                var sprite  = new ImageSprite(texture, new Rect(new Vector2D(0, 0), new Vector2D(w, h)), new Color(1, 1, 1, 1));
                layer.Add(sprite, 10000);

                sceneStartFadeImageSprite = sprite;
            }

            // 立ち絵のフェードで表示するための、イージングの数値を計算
            {
                fadeTimerSpline = new Emugen.Image.Animation.BSplineXtoY(
                    new Vector2D[] { new Vector2D(0, 0), new Vector2D(0, 1), new Vector2D(1, 1) },
                    100);
            }
            {
                slideTimerSpline = new Emugen.Image.Animation.BSplineXtoY(
                    new Vector2D[] { new Vector2D(0, 0), new Vector2D(0, 1), new Vector2D(1, 1) },
                    100);
            }

            // スクリプトの実行
            scriptAPI = new ScriptAPI();
            {
                var thread = new System.Threading.Thread(new System.Threading.ThreadStart(ThreadScriptRun));
                scriptAPI.thread = thread;
                thread.Start();
            }

            {
                var bmp     = new System.Drawing.Bitmap(Config.MainConfig.TalkScene.NextWaitIcon);
                var texture = new Texture(bmp);
                var w       = 30;
                var h       = (int)((double)bmp.Height / (double)bmp.Width * w);
                var sprite  = new ImageSprite(texture, new Rect(new Vector2D(1400 + 50, 600), new Vector2D(w, h)), new Color(1, 1, 1, 1));
                layer.Add(sprite, 200);

                ImageSpriteWaitEnterIcon = sprite;
            }

            {
                var sprite = new PlaneSprite(new Rect(new Vector2D(100, 600), new Vector2D(300, 40)), new Color(0.5, 0, 0, 0));
                layer.Add(sprite, 150);
            }
            {
                var sprite = new PlaneSprite(new Rect(new Vector2D(100, 650), new Vector2D((1600 - 200), 40 + 50 * 3)), new Color(0.5, 0, 0, 0));
                layer.Add(sprite, 150);
            }
        }
Esempio n. 3
0
 public SkillCards()
 {
     {
         var sprite = new PlaneSprite(new Rect(new Vector2D(0, 0), new Vector2D(1600, 900)), new Color(0.5, 0, 0, 0));
         sprite.IsDraw = false;
         layer.Add(sprite, 0);
         BackGroundSprite = sprite;
     }
 }
Esempio n. 4
0
        public Choice(string[] texts)
        {
            var i = 0;

            foreach (var text in texts)
            {
                var item = new Item();
                {
                    var x = 500;
                    var y = 300 + i * 60;

                    var font = new Font(Config.MainConfig.MainFontPath, 26, new Color(1, 1, 1, 1), new Font.FontFrame[] {
                        new Font.FontFrame(2, new Color(1, 0, 0, 0)),
                    }, 0);
                    var ts = new TextSprite(text, font, new Vector2D(x, y));


                    layer.Add(ts, 20);


                    item.TextSprite = ts;
                }
                {
                    var x      = 500;
                    var y      = 300 + i * 60;
                    var sprite = new PlaneLineSprite(new Rect(new Vector2D(x, y), new Vector2D(600, 50)), new Color(0.5, 1, 1, 1));
                    layer.Add(sprite, 20);
                    item.PlaneLineSprite = sprite;
                }
                {
                    var x      = 500;
                    var y      = 300 + i * 60;
                    var sprite = new PlaneSprite(new Rect(new Vector2D(x, y), new Vector2D(600, 50)), new Color(0.5, 0, 0, 0));
                    layer.Add(sprite, 5);
                    item.BackPlaneSprite = sprite;
                }
                item.Text = text;

                items.Add(item);

                i++;
            }
        }
Esempio n. 5
0
        List <Data.Character> retrayPlayerCaracters; // リトライ時の記録・再現用

        public BattleScene(string scriptPath)
        {
            scriptAPI = new ScriptAPI();
            script    = new Emugen.Script.Script <ScriptAPI>(scriptPath, scriptAPI);
            script.Run();

            var data = Data.DataCreater.Instance;

            if (scriptAPI.__bgmPath != null)
            {
                var bgm = new Emugen.Sound.SoundPlayer(scriptAPI.__bgmPath, 0.20f, true, Emugen.Sound.SoundPlayer.SoundType.BGM);
            }

            SetupPlayers();
            SetupEnemys();

            {
                PlayerCards = new UI.PlayerCard.PlayerCards();
                layer.Add(PlayerCards, 30);
            }

            {
                EnemyCards = new UI.EnemyCard.EnemyCards();
                layer.Add(EnemyCards, 20);
            }

            {
                var bmp     = new System.Drawing.Bitmap(scriptAPI.__backGroundImagePath);
                var texture = new Texture(bmp);

                var w      = 1600;
                var h      = (int)((double)bmp.Height / (double)bmp.Width * w);
                var sprite = new ImageSprite(texture, new Rect(new Vector2D(0, 0), new Vector2D(w, h)), new Color(1, 1, 1, 1));
                layer.Add(sprite, 10);
            }
            {
                var skillCards = new UI.SkillCard.SkillCards();
                layer.Add(skillCards, 40);
                SkillCards = skillCards;
            }

            {
                var sprite = new PlaneSprite(new Rect(new Vector2D(20, 100), new Vector2D(200, 1)), new Color(0.5, 1, 1, 1));
                layer.Add(sprite, 10);
            }
            {
                foreach (var chara in data.playerCharacters)
                {
                    PlayerCards.Add(chara);
                }
                PlayerCards.SetupCardPos();
            }
            SetupEnemysCard();

            {
                PlayerCards.OnSelected += (selectCards) =>
                {
                    switch (uiStep)
                    {
                    case UIStep.None:
                    {
                        var i = (List <UI.PlayerCard.PlayerCard>)selectCards;
                        if (i[0].character.HP.Now == 0)
                        {
                            // 戦闘不能
                        }
                        else
                        {
                            SkillCards.SetStep(UI.SkillCard.SkillCards.Step.ShowPlayerCharacterSkills, i[0].character);
                            var soundPlayer = new Emugen.Sound.SoundPlayer(MainConfig.SoundEffect.UISelect01, 0.10f, false, Emugen.Sound.SoundPlayer.SoundType.SE);
                            uiStep           = UIStep.SkillSelect;
                            SelectPlayerCard = selectCards[0];
                        }
                    }
                    break;

                    case UIStep.SkillSelect:
                        break;

                    case UIStep.SkillTargetSelect:
                        if (!isInputEventNowFrame)
                        {
                            isInputEventNowFrame = true;
                            new Emugen.Sound.SoundPlayer(MainConfig.SoundEffect.UISelect01, 0.10f, false, Emugen.Sound.SoundPlayer.SoundType.SE);

                            uiStep = UIStep.None;
                            EnemyCards.uITargetSelectType  = UI.EnemyCard.EnemyCards.UITargetSelectType.None;
                            PlayerCards.uITargetSelectType = UI.PlayerCard.PlayerCards.UITargetSelectType.None;

                            var i = (List <UI.PlayerCard.PlayerCard>)selectCards;
                            //var i = (List<FafTk.UI.EnemyCard.EnemyCard>)selectCards;
                            var targetCharacters = new List <Data.Character>();
                            foreach (var j in i)
                            {
                                targetCharacters.Add(j.character);
                            }

                            SelectPlayerCard.character.Action(SelectSkillCard.actionSkill, targetCharacters);
                        }
                        break;
                    }
                };
            }
            {
                SkillCards.OnSelected += (selectCard) =>
                {
                    switch (uiStep)
                    {
                    case UIStep.None:
                        break;

                    case UIStep.SkillSelect:
                        if (!isInputEventNowFrame)
                        {
                            isInputEventNowFrame = true;
                            var soundPlayer = new Emugen.Sound.SoundPlayer(MainConfig.SoundEffect.UISelect01, 0.10f, false, Emugen.Sound.SoundPlayer.SoundType.SE);
                            uiStep          = UIStep.SkillTargetSelect;
                            SelectSkillCard = selectCard;

                            if (SelectSkillCard.actionSkill.Main.TargetWord.IndexOf("横列") == 0)
                            {
                                var command = SelectSkillCard.actionSkill.Main.TargetWord.Split(' ');

                                EnemyCards.uITargetSelectType        = UI.EnemyCard.EnemyCards.UITargetSelectType.LineHorizontal;
                                EnemyCards.uITargetSelectTypePalams  = new int[] { int.Parse(command[1]), int.Parse(command[2]), int.Parse(command[3]) };
                                PlayerCards.uITargetSelectType       = UI.PlayerCard.PlayerCards.UITargetSelectType.LineHorizontal;
                                PlayerCards.uITargetSelectTypePalams = new int[] { int.Parse(command[1]), int.Parse(command[2]), int.Parse(command[3]) };
                            }
                            else
                            {
                                var command = SelectSkillCard.actionSkill.Main.TargetWord.Split(' ');

                                EnemyCards.uITargetSelectType        = UI.EnemyCard.EnemyCards.UITargetSelectType.One;
                                EnemyCards.uITargetSelectTypePalams  = new int[] { int.Parse(command[1]) };
                                PlayerCards.uITargetSelectType       = UI.PlayerCard.PlayerCards.UITargetSelectType.One;
                                PlayerCards.uITargetSelectTypePalams = new int[] { int.Parse(command[1]) };
                            }
                        }
                        break;

                    case UIStep.SkillTargetSelect:
                        break;
                    }
                };

                SkillCards.OnClose += () =>
                {
                    switch (uiStep)
                    {
                    case UIStep.None:
                        break;

                    case UIStep.SkillSelect:
                        if (!isInputEventNowFrame)
                        {
                            isInputEventNowFrame = true;
                            var soundPlayer = new Emugen.Sound.SoundPlayer(MainConfig.SoundEffect.UICancel01, 0.15f, false, Emugen.Sound.SoundPlayer.SoundType.SE);

                            uiStep = UIStep.None;
                            EnemyCards.uITargetSelectType  = UI.EnemyCard.EnemyCards.UITargetSelectType.None;
                            PlayerCards.uITargetSelectType = UI.PlayerCard.PlayerCards.UITargetSelectType.None;
                        }
                        break;

                    case UIStep.SkillTargetSelect:
                        break;
                    }
                };
            }
            {
                EnemyCards.OnSelected += (selectCards) =>
                {
                    switch (uiStep)
                    {
                    case UIStep.None:
                        break;

                    case UIStep.SkillSelect:
                        break;

                    case UIStep.SkillTargetSelect:
                        if (!isInputEventNowFrame)
                        {
                            isInputEventNowFrame = true;

                            uiStep = UIStep.None;
                            EnemyCards.uITargetSelectType  = UI.EnemyCard.EnemyCards.UITargetSelectType.None;
                            PlayerCards.uITargetSelectType = UI.PlayerCard.PlayerCards.UITargetSelectType.None;

                            //var result = false;

                            var targetCharacters = new List <Character>();
                            var i = (List <UI.EnemyCard.EnemyCard>)selectCards;
                            foreach (var j in i)
                            {
                                targetCharacters.Add(j.character);
                            }
                            var result = SelectPlayerCard.character.Action(SelectSkillCard.actionSkill, targetCharacters);

                            if (result)
                            {
                                new Emugen.Sound.SoundPlayer(MainConfig.SoundEffect.UISelect01, 0.10f, false, Emugen.Sound.SoundPlayer.SoundType.SE);
                            }
                            else
                            {
                                new Emugen.Sound.SoundPlayer(MainConfig.SoundEffect.UICancel01, 0.10f, false, Emugen.Sound.SoundPlayer.SoundType.SE);
                            }
                        }

                        break;
                    }
                };
            }
        }
Esempio n. 6
0
        public PlayerCard(Vector2D position, Data.Character character)
        {
            //var cardImage = default(System.Drawing.Bitmap);
            this.character = character;
            this.cardImage = new System.Drawing.Bitmap(character.imagePath);
            this.position  = position;

            character.playerCard = this;

            {
                var bmp     = cardImage;
                var texture = new Texture(bmp);
                var w       = 160;
                var h       = (int)((double)bmp.Height / (double)bmp.Width * w);
                var sprite  = new ImageSprite(texture, new Rect(new Vector2D(position.X, position.Y), new Vector2D(w, h)), new Color(1, 1, 1, 1));
                layer.Add(sprite, 10);

                size           = new Vector2D(w, h);
                mySprites.face = sprite;
            }

            {
                var x      = 0;
                var y      = 0;
                var w      = 60;
                var h      = 6;
                var sprite = new PlaneSprite(new Rect(new Vector2D(x, y), new Vector2D(w, h)), new Color(0.75, 0, 1, 0.5));
                layer.Add(sprite, 10);
                mySprites.elementTimerBar = sprite;
            }
            {
                var x      = 0;
                var y      = 0;
                var w      = 60 + 2;
                var h      = 6 + 2;
                var sprite = new PlaneLineSprite(new Rect(new Vector2D(x, y), new Vector2D(w, h)), new Color(0.5, 0, 0, 0));
                layer.Add(sprite, 10);
                mySprites.elementTimerBarFrame = sprite;
            }

            {
                var x = position.X - 5;
                var y = position.Y + 200;

                var font = new Font(Config.MainConfig.MainFontPath, 16, new Color(1, 1, 1, 1), new Font.FontFrame[] {
                    new Font.FontFrame(2, new Color(1, 0, 0, 0)),
                }, 0);
                var ts = new TextSprite(character.ViewName, font, new Vector2D(x, y));

                layer.Add(ts, 20);
                mySprites.viewName = ts;
            }
            {
                var x      = position.X;
                var y      = position.Y + 227;
                var w      = size.X;
                var h      = 1;
                var sprite = new PlaneSprite(new Rect(new Vector2D(x, y), new Vector2D(w, h)), new Color(0.3, 1, 1, 1));
                layer.Add(sprite, 10);
                mySprites.bar = sprite;
            }
            {
                var x = position.X - 5;
                var y = position.Y + 225;

                var font = new Font(Config.MainConfig.MainFontPath, 12, new Color(1, 1, 1, 1), new Font.FontFrame[] {
                    new Font.FontFrame(2, new Color(1, 0, 0, 0)),
                }, 0);
                var ts = new TextSprite($"{character.HP.Now}/{character.HP.Max}", font, new Vector2D(x, y));
                layer.Add(ts, 20);
                mySprites.ViewStatus = ts;
            }

            {
                var sprite = new PlaneLineSprite(new Rect(position, size), new Color(0.0, 1, 1, 1));
                layer.Add(sprite, 30);
                mySprites.mouseOn = sprite;
            }


            {
                var margin   = mouseOnTargetMargin;
                var filePath = character.imagePath + ".sel.png";
                var bmp2     = default(System.Drawing.Bitmap);
                if (System.IO.File.Exists(filePath))
                {
                    bmp2 = new System.Drawing.Bitmap(filePath);
                }
                else
                {
                    bmp2 = DrawUtility.DrawFrame.Draw(cardImage, margin, 8.0, 2.0, new Color(1, 0, 0.2, 1));
                    bmp2.Save(filePath, System.Drawing.Imaging.ImageFormat.Png);
                }

                var texture = new Texture(bmp2);
                var w       = 160 + margin * 2;
                var h       = (int)((double)bmp2.Height / (double)bmp2.Width * w);
                var sprite  = new ImageSprite(texture, new Rect(new Vector2D(10, 10), new Vector2D(w, h)), new Color(1, 1, 1, 1));
                layer.Add(sprite, 5);

                mouseOnTarget = sprite;
            }

            foreach (var element in character.Elements)
            {
                AddElement(element);
            }
        }
Esempio n. 7
0
        public EnemyCard(System.Drawing.Bitmap cardImage, Vector2D position, string viewName, Data.Character character)
        {
            this.cardImage       = cardImage;
            this.character       = character;
            this.HPBarFrameWidth = (int)(HPBarFrameWidthBase * character.HPBarFrameWidthScale);
            character.enemyCard  = this;

            {
                var bmp     = cardImage;
                var texture = new Texture(bmp);
                var w       = (int)(bmp.Width * character.imageScale); // 160
                var h       = (int)((double)bmp.Height / (double)bmp.Width * w);
                var sprite  = new ImageSprite(texture, new Rect(new Vector2D(position.X, position.Y), new Vector2D(w, h)), new Color(1, 1, 1, 1));
                layer.Add(sprite, 10);

                size = new Vector2D(w, h);

                mySprites.face = sprite;
            }

            {
                var bmp     = new System.Drawing.Bitmap(Config.MainConfig.BattleScene.EnemyShadowImage);
                var texture = new Texture(bmp);
                var w       = 160;
                var h       = (int)((double)bmp.Height / (double)bmp.Width * w);
                var sprite  = new ImageSprite(texture, new Rect(new Vector2D(position.X, position.Y), new Vector2D(w, h)), new Color(0.8, 1, 1, 1));
                layer.Add(sprite, 5);
                mySprites.shadow = sprite;
            }

            {
                var x      = 0;
                var y      = 0;
                var w      = HPBarFrameWidth;
                var h      = 6;
                var sprite = new PlaneSprite(new Rect(new Vector2D(x, y), new Vector2D(w, h)), new Color(0.75, 1, 0.2, 0.0));
                layer.Add(sprite, 10);
                mySprites.hpBar = sprite;
            }
            {
                var x      = 0;
                var y      = 0;
                var w      = HPBarFrameWidth + 2;
                var h      = 6 + 2;
                var sprite = new PlaneLineSprite(new Rect(new Vector2D(x, y), new Vector2D(w, h)), new Color(0.5, 0, 0, 0));
                layer.Add(sprite, 10);
                mySprites.hpBarFrame = sprite;
            }

            {
                //var sprite = new PlaneLineSprite(new Rect(position, size), new Color(0.5, 1, 1, 1));
                var sprite = new PlaneSprite(new Rect(position, size), new Color(0.0, 1, 1, 1));
                layer.Add(sprite, 30);
                mySprites.mouseOn        = sprite;
                mySprites.mouseOn.IsDraw = false;
            }

            {
                var margin = mouseOnTargetMargin;

                var filePath = character.imagePath + ".sel.png";
                var bmp2     = default(System.Drawing.Bitmap);
                if (System.IO.File.Exists(filePath))
                {
                    bmp2 = new System.Drawing.Bitmap(filePath);
                }
                else
                {
                    bmp2 = DrawUtility.DrawFrame.Draw(cardImage, margin, 8.0, 2.0, new Color(1, 0, 0.2, 1));
                    bmp2.Save(filePath, System.Drawing.Imaging.ImageFormat.Png);
                }

                var texture = new Texture(bmp2);
                var w       = (int)(bmp2.Width * character.imageScale); // 160
                var h       = (int)((double)bmp2.Height / (double)bmp2.Width * w);
                var sprite  = new ImageSprite(texture, new Rect(new Vector2D(10, 10), new Vector2D(w, h)), new Color(1, 1, 1, 1));
                layer.Add(sprite, 5);

                mouseOnTarget = sprite;
            }

            foreach (var element in character.Elements)
            {
                AddElement(element);
            }
        }