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; } }
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); } }
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; } }
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++; } }
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; } }; } }
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); } }
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); } }