public override void Action(CharacterBase character, SceneBattle battle) { if (character.waittime <= 1) { character.animationpoint = new Point(0, 1); } else if (character.waittime <= 7) { character.animationpoint = new Point((character.waittime - 1) / 2, 1); } else if (character.waittime < 15) { character.animationpoint = new Point(3, 1); } else if (character.waittime == 15) { int pX = Eriabash.SteelX(character, battle); if (pX == 99) { return; } for (int pY = 0; pY < battle.panel.GetLength(1); ++pY) { character.parent.attacks.Add(new EriaSteel(this.sound, character.parent, pX, pY, character.union, this.subpower, this.element)); } } else { if (character.waittime < 31) { return; } if (character is Player) { ((Player)character).PluspointWing(80); } base.Action(character, battle); } }
public override void Action(CharacterBase character, SceneBattle battle) { if (!this.BlackOut(character, battle, this.name, this.Power(character).ToString())) { return; } switch (this.motion) { case MasterStyle.MOTION._0_setup: switch (character.waittime) { case 2: character.animationpoint = new Point(1, 0); break; case 4: character.animationpoint = new Point(2, 0); break; case 6: character.animationpoint = new Point(3, 0); break; case 7: character.animationpoint = new Point(99, 0); break; case 10: this.startPosition = character.position; character.animationpoint = new Point(-1, 0); character.waittime = 0; this.motion = MasterStyle.MOTION._1_start; for (int index = 0; index < this.tryPosition.Length; ++index) { this.tryPosition[index] = character.positionDirect; } break; } break; case MasterStyle.MOTION._1_start: switch (character.waittime) { case 1: this.sound.PlaySE(SoundEffect.pikin); break; case 30: this.sound.PlaySE(SoundEffect.dark); break; case 70: int index1 = 0; while (index1 < 3) { foreach (CharacterBase characterBase in battle.AllChara()) { if (!(characterBase is DammyEnemy) && characterBase.union == character.UnionEnemy) { if (index1 + 3 < this.attackPosition.Length) { this.attackPosition[index1] = characterBase.position; this.attackPosition[index1 + 3] = characterBase.position; ++index1; } else { break; } } } } this.NextMotion(-1, 0, character); this.atackEndFlame = 28; break; } if (this.r < 24 && character.waittime > 30) { ++this.r; this.angle += 0.05; for (int index2 = 0; index2 < this.tryPosition.Length; ++index2) { this.tryPosition[index2] = character.positionDirect; this.tryPosition[index2].X += r * (float)Math.Cos(this.angle - 360 * index2); this.tryPosition[index2].Y -= r * (float)Math.Sin(this.angle - 360 * index2); } break; } break; case MasterStyle.MOTION._2_LeafFighter: switch (character.waittime) { case 2: this.animePoint.Y = 0; this.animePoint.X = 3; break; case 4: this.animePoint.X = 2; break; case 6: this.animePoint.X = 1; break; case 8: this.animePoint.X = 0; break; case 10: this.animePoint.Y = 3; break; case 12: this.animePoint.X = 1; break; case 14: this.animePoint.X = 2; break; case 16: this.animePoint.X = 3; this.sound.PlaySE(SoundEffect.lance); this.attack = new BombAttack(this.sound, battle, this.attackPosition[0].X, this.attackPosition[0].Y, character.union, this.Power(character), 1, ChipBase.ELEMENT.normal); this.attack.element = ChipBase.ELEMENT.leaf; this.attack.hitrange.X = 1; this.attack.breaking = true; this.attack.rebirth = this.attackRevers; battle.attacks.Add(attack); break; } if (character.waittime >= this.atackEndFlame) { if (character.waittime == this.atackEndFlame) { this.animePoint.Y = 0; this.animePoint.X = 0; } else if (character.waittime == this.atackEndFlame + 2) { this.animePoint.X = 1; } else if (character.waittime == this.atackEndFlame + 4) { this.animePoint.X = 2; } else if (character.waittime == this.atackEndFlame + 6) { this.animePoint.X = 3; } else if (character.waittime == this.atackEndFlame + 8) { this.animePoint.X = -1; } else if (character.waittime == this.atackEndFlame + 10) { this.NextMotion(1, 1, character); this.atackEndFlame = 26; } break; } break; case MasterStyle.MOTION._3_ElekiShinobi: switch (character.waittime) { case 2: this.animePoint.Y = 0; this.animePoint.X = 3; break; case 4: this.animePoint.X = 2; break; case 6: this.animePoint.X = 1; break; case 8: this.animePoint.X = 0; break; case 10: this.animePoint.Y = 1; break; case 12: this.animePoint.X = 1; this.sound.PlaySE(SoundEffect.sword); this.effectattack = new SwordAttack(this.sound, battle, this.attackPosition[1].X, this.attackPosition[1].Y, character.union, 0, 3, ChipBase.ELEMENT.eleki, false, false); this.effectattack.hitting = false; this.effectattack.rebirth = this.attackRevers; this.effectattack.PositionDirectSet(); battle.attacks.Add(this.effectattack); break; case 14: this.animePoint.X = 2; break; case 16: this.animePoint.X = 3; this.attack = new BombAttack(this.sound, battle, this.attackPosition[1].X, this.attackPosition[1].Y - 1, character.union, this.Power(character), 1, ChipBase.ELEMENT.normal); this.attack.element = ChipBase.ELEMENT.eleki; this.attack.hitrange.Y = 3; this.attack.rebirth = this.attackRevers; battle.attacks.Add(attack); break; case 18: this.animePoint.X = 4; break; case 20: this.animePoint.X = 5; break; case 22: this.animePoint.X = 6; break; } if (character.waittime >= this.atackEndFlame) { if (character.waittime == this.atackEndFlame) { this.animePoint.Y = 0; this.animePoint.X = 0; } else if (character.waittime == this.atackEndFlame + 2) { this.animePoint.X = 1; } else if (character.waittime == this.atackEndFlame + 4) { this.animePoint.X = 2; } else if (character.waittime == this.atackEndFlame + 6) { this.animePoint.X = 3; } else if (character.waittime == this.atackEndFlame + 8) { this.animePoint.X = -1; } else if (character.waittime == this.atackEndFlame + 10) { this.NextMotion(-2, 2, character); this.atackEndFlame = 32; } break; } break; case MasterStyle.MOTION._4_PoisonWing: switch (character.waittime) { case 2: this.animePoint.Y = 0; this.animePoint.X = 3; break; case 4: this.animePoint.X = 2; break; case 6: this.animePoint.X = 1; break; case 8: this.animePoint.X = 0; break; case 10: this.animePoint.Y = 1; break; case 12: this.animePoint.X = 1; this.sound.PlaySE(SoundEffect.shoot); break; case 14: this.animePoint.X = 2; break; case 16: this.animePoint.X = 3; this.effectattack = new NSAttack.Storm(this.sound, battle, this.attackPosition[2].X, this.attackPosition[2].Y, character.union, this.Power(character) / 4, 4, ChipBase.ELEMENT.poison); battle.attacks.Add(this.effectattack); break; case 18: this.animePoint.X = 4; break; case 20: this.animePoint.X = 5; break; case 22: this.animePoint.X = 6; break; } if (character.waittime >= this.atackEndFlame) { if (character.waittime == this.atackEndFlame) { this.animePoint.Y = 0; this.animePoint.X = 0; } else if (character.waittime == this.atackEndFlame + 2) { this.animePoint.X = 1; } else if (character.waittime == this.atackEndFlame + 4) { this.animePoint.X = 2; } else if (character.waittime == this.atackEndFlame + 6) { this.animePoint.X = 3; } else if (character.waittime == this.atackEndFlame + 8) { this.animePoint.X = -1; } else if (character.waittime == this.atackEndFlame + 10) { this.NextMotion(1, 3, character); this.atackEndFlame = 40; } break; } break; case MasterStyle.MOTION._5_EarthGaia: switch (character.waittime) { case 2: this.animePoint.Y = 0; this.animePoint.X = 3; break; case 4: this.animePoint.X = 2; break; case 6: this.animePoint.X = 1; break; case 8: this.animePoint.X = 0; break; case 10: this.animePoint.Y = 3; break; case 12: this.animePoint.X = 1; break; case 14: this.animePoint.X = 2; break; case 16: this.animePoint.X = 3; this.sound.PlaySE(SoundEffect.drill2); this.attack = new BombAttack(this.sound, battle, this.attackPosition[3].X, this.attackPosition[3].Y, character.union, this.Power(character) / 4, 1, ChipBase.ELEMENT.normal); this.attack.element = ChipBase.ELEMENT.earth; this.attack.hitrange.X = 1; this.attack.breaking = true; this.attack.rebirth = this.attackRevers; battle.attacks.Add(attack); break; case 19: ++this.subAnime; break; case 22: ++this.subAnime; this.attack = new BombAttack(this.sound, battle, this.attackPosition[3].X, this.attackPosition[3].Y, character.union, this.Power(character) / 4, 1, ChipBase.ELEMENT.normal); this.attack.element = ChipBase.ELEMENT.earth; this.attack.hitrange.X = 1; this.attack.breaking = true; this.attack.rebirth = this.attackRevers; battle.attacks.Add(attack); break; case 25: this.subAnime = 0; break; case 28: ++this.subAnime; this.attack = new BombAttack(this.sound, battle, this.attackPosition[3].X, this.attackPosition[3].Y, character.union, this.Power(character) / 4, 1, ChipBase.ELEMENT.normal); this.attack.element = ChipBase.ELEMENT.earth; this.attack.hitrange.X = 1; this.attack.breaking = true; this.attack.rebirth = this.attackRevers; battle.attacks.Add(attack); break; case 31: ++this.subAnime; break; case 34: ++this.subAnime; this.attack = new BombAttack(this.sound, battle, this.attackPosition[3].X, this.attackPosition[3].Y, character.union, this.Power(character) / 4, 1, ChipBase.ELEMENT.normal); this.attack.element = ChipBase.ELEMENT.earth; this.attack.hitrange.X = 1; this.attack.breaking = true; this.attack.rebirth = this.attackRevers; battle.attacks.Add(attack); break; case 37: this.subAnime = 0; break; } if (character.waittime >= this.atackEndFlame) { if (character.waittime == this.atackEndFlame) { this.animePoint.Y = 0; this.animePoint.X = 0; } else if (character.waittime == this.atackEndFlame + 2) { this.animePoint.X = 1; } else if (character.waittime == this.atackEndFlame + 4) { this.animePoint.X = 2; } else if (character.waittime == this.atackEndFlame + 6) { this.animePoint.X = 3; } else if (character.waittime == this.atackEndFlame + 8) { this.animePoint.X = -1; } else if (character.waittime == this.atackEndFlame + 10) { this.NextMotion(-2, 4, character); this.atackEndFlame = 24; } break; } break; case MasterStyle.MOTION._6_HeatDoctor: switch (character.waittime) { case 2: this.animePoint.Y = 0; this.animePoint.X = 3; break; case 4: this.animePoint.X = 2; break; case 6: this.animePoint.X = 1; break; case 8: this.animePoint.X = 0; break; case 10: this.animePoint.Y = 6; break; case 12: this.animePoint.X = 1; break; case 14: this.animePoint.X = 2; this.sound.PlaySE(SoundEffect.chain); this.effectattack = new InjectBullet(this.sound, battle, this.attackPosition[4].X - 2 * (this.attackRevers ? -1 : 1), this.attackPosition[4].Y, character.union, this.Power(character), this.texname[4], ChipBase.ELEMENT.heat); this.effectattack.badstatus[1] = false; this.effectattack.rebirth = this.attackRevers; battle.attacks.Add(this.effectattack); break; case 16: this.animePoint.X = 3; break; } if (character.waittime >= this.atackEndFlame) { if (character.waittime == this.atackEndFlame) { this.animePoint.Y = 0; this.animePoint.X = 0; } else if (character.waittime == this.atackEndFlame + 2) { this.animePoint.X = 1; } else if (character.waittime == this.atackEndFlame + 4) { this.animePoint.X = 2; } else if (character.waittime == this.atackEndFlame + 6) { this.animePoint.X = 3; } else if (character.waittime == this.atackEndFlame + 8) { this.animePoint.X = -1; } else if (character.waittime == this.atackEndFlame + 10) { this.NextMotion(1, 5, character); this.atackEndFlame = 42; } break; } break; case MasterStyle.MOTION._7_AquaWhith: switch (character.waittime) { case 2: this.animePoint.Y = 0; this.animePoint.X = 3; break; case 4: this.animePoint.X = 2; break; case 6: this.animePoint.X = 1; break; case 8: this.animePoint.X = 0; break; case 10: this.animePoint.Y = 6; break; case 12: this.animePoint.X = 1; break; case 14: this.animePoint.X = 2; break; case 16: this.animePoint.X = 3; break; case 18: this.animePoint.X = 4; break; case 20: this.animePoint.X = 5; break; case 22: this.animePoint.X = 6; break; case 24: this.sound.PlaySE(SoundEffect.fire); this.effectattack = new ElementFire(this.sound, battle, this.attackPosition[5].X, this.attackPosition[5].Y, character.union, this.Power(character), ChipBase.ELEMENT.aqua, false, 0); this.effectattack.rebirth = this.attackRevers; this.effectattack.PositionDirectSet(); this.effectattack.invincibility = false; battle.attacks.Add(this.effectattack); break; case 28: this.sound.PlaySE(SoundEffect.fire); this.effectattack = new ElementFire(this.sound, battle, this.attackPosition[5].X + (this.attackRevers ? -1 : 1), this.attackPosition[5].Y, character.union, this.Power(character), ChipBase.ELEMENT.aqua, false, 0); this.effectattack.rebirth = this.attackRevers; this.effectattack.PositionDirectSet(); this.effectattack.invincibility = false; battle.attacks.Add(this.effectattack); break; case 32: this.sound.PlaySE(SoundEffect.fire); this.effectattack = new ElementFire(this.sound, battle, this.attackPosition[5].X + 2 * (this.attackRevers ? -1 : 1), this.attackPosition[5].Y, character.union, this.Power(character), ChipBase.ELEMENT.aqua, false, 0); this.effectattack.rebirth = this.attackRevers; this.effectattack.PositionDirectSet(); this.effectattack.invincibility = false; battle.attacks.Add(this.effectattack); break; } if (character.waittime >= this.atackEndFlame) { if (character.waittime == this.atackEndFlame) { this.animePoint.Y = 0; this.animePoint.X = 0; } else if (character.waittime == this.atackEndFlame + 2) { this.animePoint.X = 1; } else if (character.waittime == this.atackEndFlame + 4) { this.animePoint.X = 2; } else if (character.waittime == this.atackEndFlame + 6) { this.animePoint.X = 3; } else if (character.waittime == this.atackEndFlame + 8) { this.animePoint.X = -1; } else if (character.waittime == this.atackEndFlame + 10) { this.animePoint.Y = 0; this.animePoint.X = 0; ++this.motion; character.waittime = 0; this.atackEndFlame = 180; character.position = this.startPosition; } break; } break; case MasterStyle.MOTION._8_Finish: switch (character.waittime) { case 4: Charge charge1 = new Charge(this.sound, battle, 0, 0); charge1.positionDirect = new Vector2(this.tryPosition[0].X, this.tryPosition[0].Y + 16f); battle.effects.Add(charge1); Charge charge2 = new Charge(this.sound, battle, 0, 0); charge2.positionDirect = new Vector2(this.tryPosition[1].X, this.tryPosition[1].Y + 16f); battle.effects.Add(charge2); Charge charge3 = new Charge(this.sound, battle, 0, 0); charge3.positionDirect = new Vector2(this.tryPosition[2].X, this.tryPosition[2].Y + 16f); battle.effects.Add(charge3); break; case 54: this.animePoint.Y = 1; break; case 56: this.animePoint.X = 1; break; case 58: this.animePoint.X = 2; break; case 60: this.animePoint.X = 3; BombAttack bombAttack = new BombAttack(this.sound, battle, character.union == Panel.COLOR.blue ? 5 : 0, 0, character.union, this.Power(character), 1, ChipBase.ELEMENT.normal); bombAttack.hitrange = new Point(6, 3); bombAttack.breaking = true; bombAttack.throughObject = true; battle.attacks.Add(bombAttack); this.sound.PlaySE(SoundEffect.bombbig); this.ShakeStart(4, 90); int x = Eriabash.SteelX(character, battle); battle.effects.Add(new RandomBomber(this.sound, battle, Bomber.BOMBERTYPE.flashbomber, 2, new Point(x, 0), new Point(6, 2), character.union, 36)); break; case 180: this.animePoint.Y = 0; this.animePoint.X = 0; break; } if (character.waittime >= this.atackEndFlame) { if (character.waittime == this.atackEndFlame) { this.animePoint.Y = 0; this.animePoint.X = 0; } else if (character.waittime == this.atackEndFlame + 2) { this.animePoint.X = 1; } else if (character.waittime == this.atackEndFlame + 4) { this.animePoint.X = 2; } else if (character.waittime == this.atackEndFlame + 6) { this.animePoint.X = 3; } else if (character.waittime == this.atackEndFlame + 8) { this.animePoint.X = -1; } else if (character.waittime == this.atackEndFlame + 38) { character.animationpoint.Y = 0; character.animationpoint.X = 3; } else if (character.waittime == this.atackEndFlame + 40) { character.animationpoint.X = 2; } else if (character.waittime == this.atackEndFlame + 42) { character.animationpoint.X = 1; } else if (character.waittime == this.atackEndFlame + 44) { character.animationpoint.X = 0; } else if (character.waittime > this.atackEndFlame + 44 && this.BlackOutEnd(character, battle)) { base.Action(character, battle); } break; } break; } }
public override void Action(CharacterBase character, SceneBattle battle) { if (!this.BlackOut(character, battle, this.name, this.Power(character).ToString())) { return; } if (character.waittime == 1) { character.animationpoint.X = -1; this.sound.PlaySE(SoundEffect.warp); } if (this.action <= 1 && !this.command) { this.CommandInput("B", (Player)character); if (this.CommandCheck("BBB")) { this.command = true; this.sound.PlaySE(SoundEffect.CommandSuccess); this.subpower = 10; } } switch (this.action) { case 0: this.animePoint = this.AnimeGatlingReady(this.waittime); if (this.waittime >= 21) { int x = Eriabash.SteelX(character, character.parent); int y = 0; bool flag = false; for (int index = 0; index < this.target.GetLength(1); ++index) { this.target[0, index] = new Point(x, y); if (flag) { if (y <= 0) { if (x < 5 && x > 0) { x += this.UnionRebirth(character.union); } flag = !flag; } else { --y; } } else if (y >= 2) { if (x < 5 && x > 0) { x += this.UnionRebirth(character.union); } flag = !flag; } else { ++y; } } this.sound.PlaySE(SoundEffect.machineRunning); ++this.action; this.waittime = 0; break; } break; case 1: this.animePoint = this.AnimeGatling1(this.waittime); if (this.waittime == 3) { ++this.spin; this.waittime = 0; if (this.spin >= 2) { ++this.action; this.spin = 0; if (this.command) { int num = 0; Point point = new Point(-1, -1); foreach (CharacterBase characterBase in battle.AllChara()) { if (characterBase.union == character.UnionEnemy && num < characterBase.Hp) { num = characterBase.Hp; point = characterBase.position; } } if (point.X >= 0 && point.Y >= 0) { for (int index = 0; index < this.target.GetLength(1); ++index) { this.target[0, index] = point; } } } } break; } break; case 2: this.animePoint = this.AnimeGatling2(this.waittime); if (this.waittime == 3) { this.sound.PlaySE(SoundEffect.vulcan); Point point = this.target[0, this.spin]; battle.effects.Add(new GunHit(this.sound, battle, point.X, point.Y, character.union)); BombAttack bombAttack = new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.subpower, 1, this.element); bombAttack.invincibility = false; battle.attacks.Add(this.Paralyze(bombAttack)); List <EffectBase> effects = battle.effects; IAudioEngine sound = this.sound; SceneBattle p = battle; Point position = character.position; double x = character.positionDirect.X; this.UnionRebirth(character.union); double num1 = x - 0.0; double num2 = character.positionDirect.Y + 8.0; int union = (int)character.union; int time = 40 + this.Random.Next(20); BulletShells bulletShells = new BulletShells(sound, p, position, (float)num1, (float)num2, 32, (Panel.COLOR)union, time, 2, 0); effects.Add(bulletShells); battle.effects.Add(new BulletShells(this.sound, battle, character.position, character.positionDirect.X - 16 * this.UnionRebirth(character.union), character.positionDirect.Y + 8f, 32, character.union, 40 + this.Random.Next(20), 2, 0)); break; } if (this.waittime == 9) { ++this.spin; this.waittime = 0; if (this.spin >= 9) { ++this.action; } break; } break; case 3: this.animePoint = this.AnimeCanonReady(this.waittime); if (this.waittime >= 21) { ++this.action; this.waittime = 0; break; } break; case 4: this.animePoint = this.AnimeCanon(this.waittime); if (this.waittime == 3) { this.sound.PlaySE(SoundEffect.canon); battle.attacks.Add(this.Paralyze(new CanonBullet(this.sound, battle, character.position.X + this.UnionRebirth(character.union), character.position.Y, new Vector2(character.positionDirect.X + 32 * this.UnionRebirth(character.union), character.positionDirect.Y + 8f), character.union, this.Power(character), this.element, false))); battle.effects.Add(new BulletBigShells(this.sound, battle, character.position, character.positionDirect.X - 16 * this.UnionRebirth(character.union), character.positionDirect.Y - 16f, 32, character.union, 40 + this.Random.Next(20), 2, 0)); break; } if (this.waittime >= 54 && this.BlackOutEnd(character, battle)) { base.Action(character, battle); break; } break; } ++this.waittime; }