protected override IEnumerable <bool> E_Draw() { // ---- 環境制御 ---- Game.I.Walls.Add(new Wall_22001()); // ---- Func <bool> f_updateTarget = SCommon.Supplier(this.E_UpdateTarget()); Func <bool> f_attack = SCommon.Supplier(this.E_Attack()); for (int frame = 0; ; frame++) { f_updateTarget(); double apprRate = 1.0 - Math.Min(1.0, frame / 60.0) * 0.05; DDUtils.Approach(ref this.X, this.Target_X, apprRate); DDUtils.Approach(ref this.Y, this.Target_Y, apprRate); if (EnemyConsts_ルーミア.TRANS_FRAME < frame) { f_attack(); } EnemyCommon_ルーミア.PutCrash(this, frame); EnemyCommon_ルーミア.Draw(this.X, this.Y); yield return(true); } }
public static void Leave() { DDCurtain.SetCurtain(0, 1.0); DDCurtain.SetCurtain(20); DDGround.EL.Add(SCommon.Supplier(E_Leave())); }
protected override IEnumerable <bool> E_EachFrame() { Game.I.Walls.Add(new Wall_Dark()); Game.I.Walls.Add(new Wall_21001()); Game.I.Walls.Add(new Wall_21002()); for (int c = 0; c < 180; c++) { yield return(true); } // All Clear Bonus { long bonus = 100000000; DDGround.EL.Add(SCommon.Supplier(Effects.Message( "ALL CLEAR BONUS +" + bonus, new I3Color(64, 64, 0), new I3Color(255, 255, 0) ))); Game.I.Score += bonus; } for (int c = 0; c < 300; c++) { yield return(true); } }
protected override IEnumerable <int> Script() { // TODO: 背景 // TODO: BGM // _#Include_Resource // for t20201023_GitHubRepositoriesSolve yield return(240); DDGround.EL.Add(SCommon.Supplier(DrawString(50, 200, "\u751f\u9084\u3057\u305f\u30a2\u30bf\u30b7\u306e\u4e16\u754c\u306b\u306f\u8272\u304c\u306a\u304b\u3063\u305f\u3002", 1200))); yield return(440); DDGround.EL.Add(SCommon.Supplier(DrawString(50, 250, "\u3067\u3082\u3001\u6291\u3048\u3088\u3046\u306e\u306a\u3044\u9ed2\u3044\u708e\u304c\u5fc3\u306e\u4e2d\u3067\u71c3\u3048\u76db\u308a\u3001", 800))); yield return(240); DDGround.EL.Add(SCommon.Supplier(DrawString(50, 300, "\u6050\u308d\u3057\u3044\u307b\u3069\u306e\u539f\u52d5\u529b\u3092\u751f\u3093\u3067\u3044\u305f\u3002"))); yield return(600); DDGround.EL.Add(SCommon.Supplier(DrawString(20, 250, "\u305d\u306e\u529b\u306b\u3001\u5fc3\u306b\u5f93\u3046\u3053\u3068\u3067\u30a2\u30bf\u30b7\u306e\u4e16\u754c\u306b\u4e00\u8272\u3060\u3051\u8272\u304c\u623b\u3063\u305f\u3002"))); yield return(600); DDGround.EL.Add(SCommon.Supplier(DrawString(320, 250, "\u300c \u30a2\u30ab\u8272 \u300d \u3060\u3051\u304c\u3002"))); yield return(800); DDCurtain.SetCurtain(30, -1.0); DDMusicUtils.Fade(); yield return(40); }
protected override void Invoke_02(string command, params string[] arguments) { int c = 0; if (command == "画像") { this.Act.AddOnce(() => this.ImageFile = arguments[c++]); } else if (command == "A") { this.Act.AddOnce(() => this.A = double.Parse(arguments[c++])); } else if (command == "スライド") { this.Act.AddOnce(() => { this.SlideRate = double.Parse(arguments[c++]); this.DestSlideRate = double.Parse(arguments[c++]); }); } else if (command == "フェードイン") { this.Act.Add(SCommon.Supplier(this.フェードイン())); } else if (command == "フェードアウト") { this.Act.Add(SCommon.Supplier(this.フェードアウト())); } else { throw new DDError(); } }
public static void ティウンティウン_AddToEL(double x, double y) { foreach (IEnumerable <bool> task in ティウンティウン(x, y)) { DDGround.EL.Add(SCommon.Supplier(task)); } }
protected override IEnumerable <bool> E_Draw() { for (this.WaitFrame = 0; ; this.WaitFrame++) { while (DDUtils.IsOutOfCamera(new D2Point(this.X, this.Y), 50.0)) // 画面外に居るときは休止する。 { yield return(true); } if (!this.Jump()) { this.FacingLeft = Game.I.Player.X < this.X; if ( 30 < this.WaitFrame && ( DDUtils.GetDistance(new D2Point(Game.I.Player.X, Game.I.Player.Y), new D2Point(this.X, this.Y)) < 300.0 || Math.Abs(Game.I.Player.Y - this.Y) < 32.0 )) { this.Jump = SCommon.Supplier(this.E_Jump(this.Random.Real() < 0.5 ? JUMP_SPEED : HI_JUMP_SPEED)); } DDDraw.DrawBegin(Ground.I.Picture.Teki_a03_Jump01, this.X - DDGround.ICamera.X, this.Y - 16 - DDGround.ICamera.Y); DDDraw.DrawZoom_X(this.FacingLeft ? 1.0 : -1.0); DDDraw.DrawEnd(); } this.Crash = DDCrashUtils.Circle(new D2Point(this.X, this.Y + 2.0), 20.0); yield return(true); } }
protected override IEnumerable <bool> E_Draw() { // ---- 環境制御 ---- Game.I.Walls.Add(new Wall_21001()); Game.I.Walls.Add(new Wall_21002()); // ---- Func <bool> f_attack_01 = SCommon.Supplier(this.E_Attack_01()); Func <bool> f_attack_02 = SCommon.Supplier(this.E_Attack_02()); const int 画面分割_開始Frame = EnemyConsts_ルーミア.TRANS_FRAME + 180; for (int frame = 0; ; frame++) { DDUtils.Approach(ref this.X, GameConsts.FIELD_W / 2 + Math.Sin(frame / 101.0) * 20.0, 0.993); DDUtils.Approach(ref this.Y, GameConsts.FIELD_H / 2 + Math.Sin(frame / 103.0) * 20.0, 0.993); if (EnemyConsts_ルーミア.TRANS_FRAME < frame) { if (!this.Mode_02) { if (frame < 画面分割_開始Frame) { double sec = (画面分割_開始Frame - frame) / 60.0; string sSec = sec.ToString("F2"); DDGround.EL.Add(() => { DDPrint.SetPrint( GameConsts.FIELD_L + GameConsts.FIELD_W / 2 - 16, GameConsts.FIELD_T + GameConsts.FIELD_H / 2 - 8 ); DDPrint.SetBorder(new I3Color(192, 0, 0)); DDPrint.SetColor(new I3Color(255, 255, 0)); DDPrint.Print(sSec); DDPrint.Reset(); return(false); }); } else if (frame == 画面分割_開始Frame) { 画面分割_Effect.Enter(); 画面分割.Enabled = true; } } f_attack_01(); f_attack_02(); } EnemyCommon_ルーミア.PutCrash(this, frame); EnemyCommon_ルーミア.Draw(this.X, this.Y); yield return(true); } }
protected override IEnumerable <int> Script() { // reset { Wall_GB = 1.0; Wall_GB_Target = 1.0; } DDGround.EL.Add(() => { DDUtils.Approach(ref Wall_GB, Wall_GB_Target, 0.998); return(true); }); ClearAllSubScreen(); Ground.I.Music.Ending_復讐.Play(); DrawWall drawWall = new DrawWall(); drawWall.DrawPictures.Add(new DrawWall.DrawPicture() { Picture = Ground.I.Picture.Ending_復讐_背景_01, YAdd = -0.02 }); DDGround.EL.Add(drawWall.Task); // _#Include_Resource // for t20201023_GitHubRepositoriesSolve yield return(240); DDGround.EL.Add(SCommon.Supplier(DrawString(480, 200, "\u751f\u9084\u3057\u305f\u30a2\u30bf\u30b7\u306e\u4e16\u754c\u306b\u306f\u8272\u304c\u306a\u304b\u3063\u305f\u3002", 1200))); yield return(440); DDGround.EL.Add(SCommon.Supplier(DrawString(480, 250, "\u3067\u3082\u3001\u6291\u3048\u3088\u3046\u306e\u306a\u3044\u9ed2\u3044\u708e\u304c\u5fc3\u306e\u4e2d\u3067\u71c3\u3048\u76db\u308a\u3001", 800))); yield return(240); DDGround.EL.Add(SCommon.Supplier(DrawString(480, 300, "\u6050\u308d\u3057\u3044\u307b\u3069\u306e\u539f\u52d5\u529b\u3092\u751f\u3093\u3067\u3044\u305f\u3002"))); yield return(600); DDGround.EL.Add(SCommon.Supplier(DrawString(480, 250, "\u305d\u306e\u529b\u306b\u3001\u5fc3\u306b\u5f93\u3046\u3053\u3068\u3067\u30a2\u30bf\u30b7\u306e\u4e16\u754c\u306b\u4e00\u8272\u3060\u3051\u8272\u304c\u623b\u3063\u305f\u3002"))); yield return(600); DDGround.EL.Add(SCommon.Supplier(DrawString(480, 250, "\u300c \u30a2\u30ab\u8272 \u300d \u3060\u3051\u304c\u3002", 600, new I3Color(255, 0, 0)))); Wall_GB_Target = 0.0; yield return(1200); DDCurtain.SetCurtain(600, -1.0); yield return(300); DDMusicUtils.Fade(300); yield return(330); ClearAllSubScreen(); }
private void 開放(int x, int y) { MapCell cell = Game.I.Map.GetCell(x, y); if (cell.Tile is Tile_Bボス部屋Shutter) { cell.Tile = TileCatalog.Create("芝"); // restore } DDGround.EL.Add(SCommon.Supplier(Effects.閉鎖_開放(x * GameConsts.TILE_W + GameConsts.TILE_W / 2, y * GameConsts.TILE_H + GameConsts.TILE_H / 2))); }
private void 開放(int x, int y) { MapCell cell = Game.I.Map.GetCell(x, y); if (cell.Tile is Tile_Bボス部屋Shutter) { cell.Tile = new Tile_None(); } DDGround.EL.Add(SCommon.Supplier(Effects.閉鎖_開放(x * GameConsts.TILE_W + GameConsts.TILE_W / 2, y * GameConsts.TILE_H + GameConsts.TILE_H / 2))); }
public override void Draw() { if (DDUtils.GetDistance(new D2Point(this.X, this.Y), new D2Point(Game.I.Player.X, Game.I.Player.Y)) < 50.0) { if (Game.I.FinalZone.OH_Event9003B.Once()) { Game.I.Map.Design = new Design_0003(); DDGround.EL.Add(SCommon.Supplier(Effects.Liteフラッシュ())); } } }
/// <summary> /// 撃破されて消滅した。 /// 注意:本メソッドを複数回実行しないように注意すること! /// -- DeadFlag == true の敵を { DeadFlag = true; Killed(); } してしまわないように! /// </summary> protected virtual void Killed() { DDGround.EL.Add(SCommon.Supplier(Effects.中爆発(this.X, this.Y))); foreach (Action <Enemy> a_killed in this.A_KilledList) { a_killed(this); } // TODO: SE }
protected override IEnumerable <int> Script() { // TODO: 背景 // TODO: BGM // _#Include_Resource // for t20201023_GitHubRepositoriesSolve yield return(240); DDGround.EL.Add(SCommon.Supplier(DrawString(480, 200, "\u7729\u3057\u3044\u5149\u304c\u76ee\u306b\u98db\u3073\u8fbc\u3093\u3067\u304f\u308b\u3002", 800))); yield return(240); DDGround.EL.Add(SCommon.Supplier(DrawString(480, 250, "\u3069\u3046\u3084\u3089\u79c1\u306f\u751f\u6b7b\u306e\u5883\u304b\u3089\u751f\u9084\u3057\u305f\u3089\u3057\u3044\u3002"))); yield return(600); DDGround.EL.Add(SCommon.Supplier(DrawString(480, 250, "\u5468\u308a\u306b\u306f\u5b89\u5835\u306e\u8868\u60c5\u3092\u6d6e\u304b\u3079\u305f\u533b\u5e2b\u3068\u770b\u8b77\u5e2b\u304c\u5c45\u308b\u3002", 1000))); yield return(240); DDGround.EL.Add(SCommon.Supplier(DrawString(480, 300, "\u2026\u2026\u305d\u308c\u4ee5\u5916\u306b\u306f\u8ab0\u3082\u5c45\u306a\u3044\u3002", 800))); yield return(240); DDGround.EL.Add(SCommon.Supplier(DrawString(480, 350, "\u305d\u308c\u3067\u826f\u3044\u3057\u3001\u3068\u3063\u304f\u306b\u899a\u609f\u306f\u3057\u3066\u3044\u305f\u3002"))); yield return(600); DDGround.EL.Add(SCommon.Supplier(DrawString(480, 150, "\u751f\u304d\u308b\u3053\u3068\u306f\u7d20\u6674\u3089\u3057\u304f\u3001\u305d\u308c\u3060\u3051\u3067\u5e78\u305b\u306a\u3053\u3068\u3002", 800))); yield return(240); DDGround.EL.Add(SCommon.Supplier(DrawString(480, 200, "\u305d\u3093\u306a\u6b3a\u779e\u306b\u6e80\u3061\u305f\u8a00\u8449\u306b\u306f\u53cd\u5410\u304c\u51fa\u308b\u3002"))); yield return(600); DDGround.EL.Add(SCommon.Supplier(DrawString(480, 250, "\u3067\u3082\u3001\u79c1\u306f\u30a2\u30a4\u30c4\u3068\u4e00\u7dd2\u306b\u751f\u304d\u3066\u3044\u304f\u3068\u6c7a\u3081\u305f\u3002", 800))); yield return(240); DDGround.EL.Add(SCommon.Supplier(DrawString(480, 300, "\u305d\u308c\u304c\u6b63\u3057\u3044\u9078\u629e\u304b\u3069\u3046\u304b\u306f\u3001\u751f\u304d\u629c\u3044\u3066\u307f\u3066\u521d\u3081\u3066\u5206\u304b\u308b\u3053\u3068\u3002"))); yield return(600); DDGround.EL.Add(SCommon.Supplier(DrawString(480, 200, "\u7b11\u3063\u3066\u6b7b\u306c\u3002", 1200))); yield return(240); DDGround.EL.Add(SCommon.Supplier(DrawString(480, 250, "\u660e\u78ba\u306a\u76ee\u6a19\u304c\u51fa\u6765\u305f\u3053\u3068\u3067\u3001\u5fc3\u306f\u30b9\u30c3\u30ad\u30ea\u3057\u3066\u3044\u308b\u3002", 1000))); yield return(440); DDGround.EL.Add(SCommon.Supplier(DrawString(480, 330, "\u2026\u2026\u3068\u308a\u3042\u3048\u305a\u3001\u5893\u53c2\u308a\u3068\u9762\u4f1a\u304b\u3089\u59cb\u3081\u3066\u307f\u3088\u3046\u304b\u306a\u3002"))); yield return(800); DDCurtain.SetCurtain(30, -1.0); DDMusicUtils.Fade(); yield return(40); }
public void Draw() { if (_draw == null) { _draw = SCommon.Supplier(this.E_Draw()); } if (!_draw()) { Novel.I.Status.Surfaces.RemoveAll(v => v == this); // Remove Me } }
public override IEnumerable <bool> E_Task() { for (int frame = 0; ; frame++) { if (DDUtils.Random.Real() < BlockCreateRate) { this.EL.Add(SCommon.Supplier(this.E_Block())); } this.EL.ExecuteAllTask(); yield return(true); } }
public void Draw() { if (_draw == null) { _draw = SCommon.Supplier(this.E_Draw()); } if (!_draw()) { this.DeadFlag = true; } }
/// <summary> /// 壁紙を描画する。 /// </summary> public void Draw() { if (_draw == null) { _draw = SCommon.Supplier(this.E_Draw()); } if (!_draw()) { throw null; // never } }
/// <summary> /// 敵 被弾 /// </summary> /// <param name="enemy">被弾した敵</param> /// <param name="shot">被弾させた自弾</param> private void AH_EnemyCrashed(Enemy enemy, Shot shot, DDCrash shotCrash) { switch (shot.Kind) { case Shot.Kind_e.NORMAL: { if (!shot.Vanished) // ? まだ消滅していない。 { this.PlayerEffects.Add(SCommon.Supplier(Effects.ShotDead(shot.X, shot.Y, shotCrash.R))); // 自弾消滅エフェクト shot.Vanished = true; // 敵に当たったら「通常弾」は消滅する。 } } break; case Shot.Kind_e.BOMB: { // 敵に当たっても「ボム」は消滅しない。 if (enemy.IsBoss()) // ボスの場合は回復! { DDGround.EL.Add(SCommon.Supplier(Effects.ボス回復(GameConsts.FIELD_L + enemy.X, GameConsts.FIELD_T + enemy.Y))); #if true enemy.HP -= enemy.InitialHP; enemy.HP = (int)(enemy.HP * 0.99); enemy.HP += enemy.InitialHP; #else // old enemy.HP++; enemy.HP = Math.Min(enemy.HP, enemy.InitialHP); #endif return; } } break; default: throw null; // never } enemy.HP -= shot.AttackPoint; if (1 <= enemy.HP) // ? まだ生存している。 { enemy.Damaged(); } else // ? 死亡した。 { enemy.Kill(true); } }
/// <summary> /// 壁紙を描画する。 /// </summary> /// <param name="xRate">マップにおける画面の位置(X位置_レート)</param> /// <param name="yRate">マップにおける画面の位置(Y位置_レート)</param> public void Draw(double xRate, double yRate) { if (_draw == null) { _draw = SCommon.Supplier(this.E_Draw()); } this.DrawXRate = xRate; this.DrawYRate = yRate; if (!_draw()) { throw null; // never } }
protected override void Invoke_02(string command, params string[] arguments) { int c = 0; if (command == "追加") { string name = arguments[c++]; string[] effArgs = arguments.Skip(c).ToArray(); this.EL.Add(SCommon.Supplier(this.GetEffect(name, effArgs))); } else { throw new DDError(); } }
protected override IEnumerable <bool> E_Draw() { bool falling = false; double ySpeed = 0.0; const double GRAVITY = 0.5; const double SPEED_Y_MAX = 8.0; for (; ;) { if ( this.Y < Game.I.Player.Y && Math.Abs(Game.I.Player.X - this.X) < 50.0 ) { falling = true; } if (falling) { this.Y += ySpeed; ySpeed += GRAVITY; ySpeed = Math.Min(ySpeed, SPEED_Y_MAX); I2Point pt = GameCommon.ToTablePoint(new D2Point(this.X, this.Y)); if (Game.I.Map.GetCell(pt).Tile.IsGround()) // ? 地面に落ちた。 { this.DeadFlag = true; DDGround.EL.Add(SCommon.Supplier(this.E_地面に落ちた( pt.X * GameConsts.TILE_W + GameConsts.TILE_W / 2, pt.Y * GameConsts.TILE_H - GameConsts.TILE_H / 2 ))); break; } } DDDraw.DrawCenter(Ground.I.Picture.Stage02_Chip_g04_01, this.X - DDGround.ICamera.X, this.Y - DDGround.ICamera.Y); this.Crash = DDCrashUtils.Rect_CenterSize(new D2Point(this.X, this.Y), new D2Size(16, 32)); yield return(true); } }
public Enemy_Meteor(D2Point pos) : base(pos) { this.Angle = DDUtils.GetAngle(Game.I.Player.X - pos.X, Game.I.Player.Y - pos.Y); this.Speed = 0.0; { int clr = DDUtils.Random.GetInt(192); this.Color = new I3Color(255, clr, clr); } this.Rot = 0.0; this.RotAdd = 0.0; this.RotAddAdd = DDUtils.Random.DReal() * 0.001; DDGround.EL.Add(SCommon.Supplier(this.E_出現エフェクト())); }
protected override void Invoke_02(string command, params string[] arguments) { int c = 0; if (command == "Image") { this.Act.AddOnce(() => this.ImageFile = arguments[c++]); } else if (command == "A") { this.Act.AddOnce(() => this.A = double.Parse(arguments[c++])); } else if (command == "Zoom") { this.Act.AddOnce(() => this.Zoom = double.Parse(arguments[c++])); } else if (command == "待ち") { this.Act.Add(SCommon.Supplier(this.待ち(int.Parse(arguments[c++])))); } else if (command == "フェードイン") { this.Act.Add(SCommon.Supplier(this.フェードイン())); } else if (command == "フェードアウト") { this.Act.Add(SCommon.Supplier(this.フェードアウト())); } else if (command == "モード変更") { this.Act.Add(SCommon.Supplier(this.モード変更(arguments[c++]))); } else if (command == "スライド") { double x = double.Parse(arguments[c++]); double y = double.Parse(arguments[c++]); this.Act.Add(SCommon.Supplier(this.スライド(x, y))); } else { ProcMain.WriteLog(command); throw new DDError(); } }
public bool EachFrame() { // ダメージを受ける・死亡したら即終了 if ( 1 <= Game.I.Player.DeadFrame || 1 <= Game.I.Player.DamageFrame ) { return(false); } if (_eachFrame == null) { _eachFrame = SCommon.Supplier(this.E_Draw()); } return(_eachFrame()); }
protected override IEnumerable <bool> E_Draw() { D2Point speed = GameCommon.GetXYSpeed(this.Direction, 8.0); int bouncedCount = 0; for (int frame = 0; ; frame++) { this.X += speed.X; this.Y += speed.Y; if (this.壁をすり抜ける) // ? 跳ね返り可能 { bool bounced = false; if (this.IsInsideWall(-10, 0) || this.IsInsideWall(10, 0)) { speed.X *= -1.0; bounced = true; } if (this.IsInsideWall(0, -10) || this.IsInsideWall(0, 10)) { speed.Y *= -1.0; bounced = true; } if (bounced) { DDGround.EL.Add(SCommon.Supplier(Effects.跳ねた(this.X, this.Y))); bouncedCount++; if (BOUNCE_MAX <= bouncedCount) { this.壁をすり抜ける = false; } } } DDDraw.DrawBegin(Ground.I.Picture2.IconSet[0, 35], this.X - DDGround.ICamera.X, this.Y - DDGround.ICamera.Y); DDDraw.DrawRotate(frame / 2.0); DDDraw.DrawEnd(); this.Crash = DDCrashUtils.Circle(new D2Point(this.X, this.Y), 10.0); yield return(!DDUtils.IsOutOfCamera(new D2Point(this.X, this.Y))); // カメラの外に出たら(画面から見えなくなったら)消滅する。 } }
protected override IEnumerable <bool> E_Draw() { double dc_r = Ground.I.Picture2.D_DECOCIRCLE.Get_W() / 2.0; double dc_z = BOMB_R / dc_r; Func <bool>[] circles = new Func <bool>[] { SCommon.Supplier(this.Circle( 0.75, dc_z, 0.1, 0.05 )), SCommon.Supplier(this.Circle( 0.25, dc_z * 0.75, dc_z * 2.0, 0.01 )), SCommon.Supplier(this.Circle( 0.5, dc_z * 0.5, 0.1, -0.02 )), }; for (int frame = 0; frame < GameConsts.PLAYER_BOMB_FRAME_MAX + 60; frame++) { this.Y -= frame / 60.0; foreach (Func <bool> circle in circles) { circle(); } this.Crash = DDCrashUtils.Circle( new D2Point(this.X, this.Y), BOMB_R ); yield return(true); } }
public override IEnumerable <bool> E_Task() { Func <bool>[] drawItems = new Func <bool> [ITEM_NUM]; for (int index = 0; index < ITEM_NUM; index++) { drawItems[index] = SCommon.Supplier(this.E_DrawItem(index)); } for (; ;) { for (int index = 0; index < ITEM_NUM; index++) { drawItems[index](); } yield return(true); } }
public override IEnumerable <bool> E_Draw() { Func <double> getA = SCommon.Supplier(WallCommon.E_GetA_フェードイン(this)); for (int slide = 0; ; slide += 11, slide %= 108) { DDDraw.SetAlpha(getA()); for (int dx = -slide; dx < DDConsts.Screen_W; dx += 108) { for (int dy = 0; dy < DDConsts.Screen_H; dy += 108) { DDDraw.DrawSimple(Ground.I.Picture.Wall0002, dx, dy); } } DDDraw.Reset(); yield return(true); } }
private static void PutDeadEffect(Enemy enemy) { switch (enemy.Kind) { case Enemy.Kind_e.ENEMY: Ground.I.SE.SE_ENEMYKILLED.Play(); Game.I.EnemyEffects.Add(SCommon.Supplier(Effects.EnemyDead(enemy.X, enemy.Y))); break; case Enemy.Kind_e.TAMA: Game.I.EnemyEffects.Add(SCommon.Supplier(Effects.TamaDead(enemy.X, enemy.Y))); break; case Enemy.Kind_e.ITEM: throw null; // never // アイテムは独自の死亡イベントを行う。 default: throw null; // never } }