public override void Break() { if (!this.AllowedToBreak) { return; } this.frame = 0; this.breaking = true; if (this.screenGreyOut != null) { this.screenGreyOut.end = true; this.screenGreyOut = null; foreach (var elementInfoText in this.infoText) { elementInfoText.end = true; } this.infoText.Clear(); } }
public override void Action(CharacterBase character, SceneBattle battle) { if (this.screen == null) { this.screen = new ScreenBlack(this.sound, battle, new Vector2(), new Point(), this.element, 0, false); battle.effects.Add(screen); this.position = new Point(character.union == Panel.COLOR.red ? 1 : 4, 2); } if (!this.BlackOut(character, battle, this.name, this.Power(character).ToString())) { return; } switch (character.waittime) { case 1: character.animationpoint.X = 1; break; case 3: character.animationpoint.X = 2; break; case 5: character.animationpoint.X = 3; break; case 7: character.animationpoint.X = -1; break; } if (character.waittime % 2 == 0) { this.eye = !this.eye; } int num = 30; if (character.waittime == 44) { this.sound.PlaySE(SoundEffect.pikin); } if (character.waittime == 44 + num) { battle.effects.Add(new Charge(this.sound, battle, this.position.X, this.position.Y)); } if (character.waittime > 44 + num + 50) { this.FlameControl(1); if (this.count < 10) { if (this.frame > 20) { this.frame = 0; this.sound.PlaySE(SoundEffect.thunder); AttackBase a = new ElekiFang(this.sound, battle, character.union == Panel.COLOR.red ? 2 : 3, 1, character.union, this.Power(character), 2, this.element, this.count % 2 == 0); a.knock = true; battle.attacks.Add(this.Paralyze(a)); ++this.count; } } else if (this.frame > 60) { switch (this.frame) { case 61: character.animationpoint.X = 3; break; case 63: character.animationpoint.X = 2; break; case 65: character.animationpoint.X = 1; break; case 67: character.animationpoint.X = 0; break; } if (this.frame > 80) { if (!this.screen.end) { this.screen.end = true; } if (this.BlackOutEnd(character, battle)) { base.Action(character, battle); } } } } }
public override void Action(CharacterBase character, SceneBattle battle) { if (this.screen == null) { this.screen = new ScreenBlack(this.sound, battle, new Vector2(), new Point(), this.element, 0, false); battle.effects.Add(screen); this.position = new Point(character.union == Panel.COLOR.red ? 1 : 4, 2); } CharacterBase character1 = character; SceneBattle parent = battle; string name = this.name; int num1 = this.Power(character); string power = num1.ToString(); if (!this.BlackOut(character1, parent, name, power)) { return; } switch (character.waittime) { case 1: character.animationpoint.X = 1; break; case 3: character.animationpoint.X = 2; break; case 5: character.animationpoint.X = 3; break; case 7: character.animationpoint.X = -1; break; } if (character.waittime % 2 == 0) { this.eye = !this.eye; } int num2 = 30; if (character.waittime == 44) { this.sound.PlaySE(SoundEffect.pikin); List <Point> source = new List <Point>(); for (int x = 0; x < battle.panel.GetLength(0); ++x) { for (int y = 0; y < battle.panel.GetLength(1); ++y) { if (battle.panel[x, y].color == character.UnionEnemy) { source.Add(new Point(x, y)); } } } this.posis = source.OrderBy <Point, Guid>(i => Guid.NewGuid()).ToArray <Point>(); } if (character.waittime == 44 + num2) { battle.effects.Add(new Charge(this.sound, battle, this.position.X, this.position.Y)); } if (character.waittime > 44 + num2 + 50) { this.FlameControl(1); if (this.count < 45) { if (this.frame > 10) { this.frame = 0; this.sound.PlaySE(SoundEffect.canon); Point point = new Point(); point.X = character.union == Panel.COLOR.red ? 2 : 3; point.Y = 1; Vector2 position = this._position; position.Y += 80f; AttackBase a1 = new DarkHand(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, position, this.posis[this.count % this.posis.Length], 15); num1 = this.posis[this.count % this.posis.Length].X; string str1 = num1.ToString(); num1 = this.posis[this.count % this.posis.Length].Y; string str2 = num1.ToString(); battle.attacks.Add(this.Paralyze(a1)); ++this.count; AttackBase a2 = new DarkHand(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, position, this.posis[this.count % this.posis.Length], 15); num1 = this.posis[this.count % this.posis.Length].X; string str3 = num1.ToString(); num1 = this.posis[this.count % this.posis.Length].Y; string str4 = num1.ToString(); battle.attacks.Add(this.Paralyze(a2)); ++this.count; AttackBase a3 = new DarkHand(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, position, this.posis[this.count % this.posis.Length], 15); num1 = this.posis[this.count % this.posis.Length].X; string str5 = num1.ToString(); num1 = this.posis[this.count % this.posis.Length].Y; string str6 = num1.ToString(); battle.attacks.Add(this.Paralyze(a3)); ++this.count; } } else if (this.frame > 60) { switch (this.frame) { case 61: character.animationpoint.X = 3; break; case 63: character.animationpoint.X = 2; break; case 65: character.animationpoint.X = 1; break; case 67: character.animationpoint.X = 0; break; } if (this.frame > 80) { if (!this.screen.end) { this.screen.end = true; } if (this.BlackOutEnd(character, battle)) { base.Action(character, battle); } } } } }
public override void Action(CharacterBase character, SceneBattle battle) { if (this.screen == null) { this.screen = new ScreenBlack(this.sound, battle, new Vector2(), new Point(), this.element, 0, false); battle.effects.Add(screen); this.position = new Point(character.union == Panel.COLOR.red ? 0 : 5, 2); int[] numArray = new int[6]; foreach (CharacterBase characterBase in battle.AllChara()) { if (characterBase.union == character.UnionEnemy) { switch (characterBase.element) { case ChipBase.ELEMENT.heat: ++numArray[1]; ++numArray[5]; break; case ChipBase.ELEMENT.aqua: ++numArray[3]; ++numArray[4]; break; case ChipBase.ELEMENT.eleki: ++numArray[2]; ++numArray[5]; break; case ChipBase.ELEMENT.leaf: ++numArray[0]; ++numArray[4]; break; case ChipBase.ELEMENT.poison: ++numArray[0]; ++numArray[3]; break; case ChipBase.ELEMENT.earth: ++numArray[1]; ++numArray[2]; break; } } } int num = 1; for (int index = 0; index < numArray.Length; ++index) { if (numArray[index] >= num) { switch (index) { case 0: this.element = ChipBase.ELEMENT.heat; break; case 1: this.element = ChipBase.ELEMENT.aqua; break; case 2: this.element = ChipBase.ELEMENT.leaf; break; case 3: this.element = ChipBase.ELEMENT.eleki; break; case 4: this.element = ChipBase.ELEMENT.poison; break; case 5: this.element = ChipBase.ELEMENT.earth; break; } num = numArray[index]; } } } if (!this.BlackOut(character, battle, this.name, this.Power(character).ToString())) { return; } switch (character.waittime) { case 1: character.animationpoint.X = 1; break; case 3: character.animationpoint.X = 2; break; case 5: character.animationpoint.X = 3; break; case 7: character.animationpoint.X = -1; break; } if (character.waittime % 2 == 0) { this.eye = !this.eye; } int num1 = 30; if (character.waittime == 44) { this.sound.PlaySE(SoundEffect.pikin); } if (character.waittime == 44 + num1) { battle.effects.Add(new Charge(this.sound, battle, this.position.X, this.position.Y)); } if (character.waittime > 44 + num1 + 50) { this.open = true; this.FlameControl(1); if (this.count < 3) { if (this.frame > 8) { this.frame = 0; this.sound.PlaySE(SoundEffect.quake); this.ShakeStart(8); Point point = new Point(); switch (this.count) { case 0: point.X = character.union == Panel.COLOR.red ? 2 : 4; point.Y = 1; ElementFire elementFire1 = new ElementFire(this.sound, character.parent, point.X, point.Y, character.union, this.Power(character), 6, this.element, false, 1); battle.attacks.Add(this.Paralyze(elementFire1)); break; case 1: point.X = character.union == Panel.COLOR.red ? 3 : 3; point.Y = 0; ElementFire elementFire2 = new ElementFire(this.sound, character.parent, point.X, point.Y, character.union, this.Power(character), 6, this.element, false, 1); battle.attacks.Add(this.Paralyze(elementFire2)); point.Y = 1; ElementFire elementFire3 = new ElementFire(this.sound, character.parent, point.X, point.Y, character.union, this.Power(character), 6, this.element, false, 1); battle.attacks.Add(this.Paralyze(elementFire3)); point.Y = 2; ElementFire elementFire4 = new ElementFire(this.sound, character.parent, point.X, point.Y, character.union, this.Power(character), 6, this.element, false, 1); battle.attacks.Add(this.Paralyze(elementFire4)); break; default: point.X = character.union == Panel.COLOR.red ? 4 : 2; point.Y = 0; ElementFire elementFire5 = new ElementFire(this.sound, character.parent, point.X, point.Y, character.union, this.Power(character), 6, this.element, false, 1); battle.attacks.Add(this.Paralyze(elementFire5)); point.Y = 1; ElementFire elementFire6 = new ElementFire(this.sound, character.parent, point.X, point.Y, character.union, this.Power(character), 6, this.element, false, 1); battle.attacks.Add(this.Paralyze(elementFire6)); point.Y = 2; ElementFire elementFire7 = new ElementFire(this.sound, character.parent, point.X, point.Y, character.union, this.Power(character), 6, this.element, false, 1); battle.attacks.Add(this.Paralyze(elementFire7)); break; } ++this.count; } } else if (this.frame > 60) { switch (this.frame) { case 61: this.ShakeEnd(); character.animationpoint.X = 3; break; case 63: character.animationpoint.X = 2; break; case 65: character.animationpoint.X = 1; break; case 67: character.animationpoint.X = 0; break; } if (this.frame > 80) { if (!this.screen.end) { this.screen.end = true; } if (this.BlackOutEnd(character, battle)) { base.Action(character, battle); } } } } }
public override void Action(CharacterBase character, SceneBattle battle) { if (this.screen == null) { this.screen = new ScreenBlack(this.sound, battle, new Vector2(), new Point(), this.element, 0, false); battle.effects.Add(screen); this.position = new Point(character.union == Panel.COLOR.red ? 1 : 4, 2); } if (!this.BlackOut(character, battle, this.name, this.Power(character).ToString())) { return; } switch (character.waittime) { case 1: character.animationpoint.X = 1; break; case 3: character.animationpoint.X = 2; break; case 5: character.animationpoint.X = 3; break; case 7: character.animationpoint.X = -1; break; } if (character.waittime % 2 == 0) { this.eye = !this.eye; } int num = 30; if (character.waittime == 44) { this.sound.PlaySE(SoundEffect.pikin); } if (character.waittime == 44 + num) { battle.effects.Add(new Charge(this.sound, battle, this.position.X, this.position.Y)); } if (character.waittime > 44 + num + 50) { this.FlameControl(1); if (this.count < 6) { if (this.frame > 20) { Point point = new Point(); switch (this.count) { case 0: this.sound.PlaySE(SoundEffect.beamlong); point.X = character.union == Panel.COLOR.red ? 2 : 3; point.Y = 1; this.beam = new JusticeBeam(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 0); battle.attacks.Add(this.Paralyze(beam)); break; case 1: point.X = character.union == Panel.COLOR.red ? 2 : 3; point.Y = 1; AttackBase a1 = new JusticeRing(this.sound, battle, point.X, point.Y, character.union, this.Power(character), this.element); battle.attacks.Add(this.Paralyze(a1)); break; case 2: point.X = character.union == Panel.COLOR.red ? 4 : 1; point.Y = 1; AttackBase a2 = new JusticeRing(this.sound, battle, point.X, point.Y, character.union, this.Power(character), this.element); battle.attacks.Add(this.Paralyze(a2)); break; case 3: point.X = character.union == Panel.COLOR.red ? 3 : 2; point.Y = 1; AttackBase a3 = new JusticeRing(this.sound, battle, point.X, point.Y, character.union, this.Power(character), this.element); battle.attacks.Add(this.Paralyze(a3)); break; case 4: point.X = character.union == Panel.COLOR.red ? 5 : 0; point.Y = 1; AttackBase a4 = new JusticeRing(this.sound, battle, point.X, point.Y, character.union, this.Power(character), this.element); battle.attacks.Add(this.Paralyze(a4)); break; case 5: this.beam.end = true; break; } this.frame = 0; ++this.count; } } else if (this.frame > 60) { switch (this.frame) { case 61: character.animationpoint.X = 3; break; case 63: character.animationpoint.X = 2; break; case 65: character.animationpoint.X = 1; break; case 67: character.animationpoint.X = 0; break; } if (this.frame > 80) { if (!this.screen.end) { this.screen.end = true; } if (this.BlackOutEnd(character, battle)) { base.Action(character, battle); } } } } }
public override void Action(CharacterBase character, SceneBattle battle) { if (this.screen == null) { this.screen = new ScreenBlack(this.sound, battle, new Vector2(), new Point(), this.element, 0, false); battle.effects.Add(screen); this.position = new Point(character.union == Panel.COLOR.red ? 1 : 4, 2); } if (!this.BlackOut(character, battle, this.name, this.Power(character).ToString())) { return; } switch (character.waittime) { case 1: character.animationpoint.X = 1; break; case 3: character.animationpoint.X = 2; break; case 5: character.animationpoint.X = 3; break; case 7: character.animationpoint.X = -1; break; } if (character.waittime % 2 == 0) { this.eye = !this.eye; } int num = 30; if (character.waittime == 44) { this.sound.PlaySE(SoundEffect.pikin); } if (character.waittime == 44 + num) { Charge charge = new Charge(this.sound, battle, this.position.X, this.position.Y); charge.positionDirect.Y -= 24f; battle.effects.Add(charge); } if (character.waittime > 44 + num + 50) { this.FlameControl(1); Point point = new Point(); if (this.count < 5) { switch (this.frame) { case 1: switch (this.count) { case 0: point.X = character.union == Panel.COLOR.red ? 3 : 2; point.Y = 0; break; case 1: point.X = character.union == Panel.COLOR.red ? 3 : 2; point.Y = 1; break; case 2: point.X = character.union == Panel.COLOR.red ? 4 : 1; point.Y = 0; break; case 3: point.X = character.union == Panel.COLOR.red ? 4 : 1; point.Y = 1; break; case 4: point.X = character.union == Panel.COLOR.red ? 3 : 2; point.Y = 1; break; } NSEffect.DreamMeteo dreamMeteo = new NSEffect.DreamMeteo(this.sound, battle, point.X, point.Y, 30, (uint)character.union > 0U); if (this.count < 4) { dreamMeteo.positionDirect.X += 20 * this.UnionRebirth(character.union); dreamMeteo.positionDirect.Y += 12f; } battle.effects.Add(dreamMeteo); break; case 30: this.sound.PlaySE(SoundEffect.bombmiddle); switch (this.count) { case 0: point.X = character.union == Panel.COLOR.red ? 3 : 2; point.Y = 0; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.X = character.union == Panel.COLOR.red ? 4 : 1; point.Y = 0; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.X = character.union == Panel.COLOR.red ? 3 : 2; point.Y = 1; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.X = character.union == Panel.COLOR.red ? 4 : 1; point.Y = 1; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); this.frame = 0; ++this.count; break; case 1: point.X = character.union == Panel.COLOR.red ? 3 : 2; point.Y = 1; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.X = character.union == Panel.COLOR.red ? 4 : 1; point.Y = 1; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.X = character.union == Panel.COLOR.red ? 3 : 2; point.Y = 2; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.X = character.union == Panel.COLOR.red ? 4 : 1; point.Y = 2; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); this.frame = 0; ++this.count; break; case 2: point.X = character.union == Panel.COLOR.red ? 4 : 1; point.Y = 0; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.X = character.union == Panel.COLOR.red ? 5 : 0; point.Y = 0; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.X = character.union == Panel.COLOR.red ? 4 : 1; point.Y = 1; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.X = character.union == Panel.COLOR.red ? 5 : 0; point.Y = 1; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); this.frame = 0; ++this.count; break; case 3: point.X = character.union == Panel.COLOR.red ? 4 : 1; point.Y = 1; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.X = character.union == Panel.COLOR.red ? 5 : 0; point.Y = 1; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.X = character.union == Panel.COLOR.red ? 4 : 1; point.Y = 2; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.X = character.union == Panel.COLOR.red ? 5 : 0; point.Y = 2; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); this.frame = 0; ++this.count; break; case 4: this.frame = 11; ++this.count; break; } this.ShakeStart(8, 8); break; } } else if (this.count < 8) { if (this.frame == 12) { switch (this.count) { case 5: point.X = character.union == Panel.COLOR.red ? 3 : 2; point.Y = 0; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.Y = 1; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.Y = 2; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); this.frame = 0; ++this.count; break; case 6: this.sound.PlaySE(SoundEffect.bombmiddle); point.X = character.union == Panel.COLOR.red ? 4 : 1; point.Y = 0; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.Y = 1; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.Y = 2; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); this.frame = 0; ++this.count; break; case 7: this.sound.PlaySE(SoundEffect.bombmiddle); point.X = character.union == Panel.COLOR.red ? 5 : 0; point.Y = 0; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.Y = 1; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); point.Y = 2; battle.effects.Add(new ImpactBomb(this.sound, battle, point.X, point.Y)); battle.attacks.Add(this.Paralyze(new BombAttack(this.sound, battle, point.X, point.Y, character.union, this.Power(character), 1, this.element))); this.frame = 0; ++this.count; break; } this.ShakeStart(8, 8); } } else if (this.frame > 60) { switch (this.frame) { case 61: character.animationpoint.X = 3; break; case 63: character.animationpoint.X = 2; break; case 65: character.animationpoint.X = 1; break; case 67: character.animationpoint.X = 0; break; } if (this.frame > 80) { if (!this.screen.end) { character.barrierType = CharacterBase.BARRIER.PowerAura; character.barierPower = 100; character.barierTime = 7200; this.screen.end = true; } if (this.BlackOutEnd(character, battle)) { base.Action(character, battle); } } } } }
public override void Action(CharacterBase character, SceneBattle battle) { if (this.screen == null) { this.screen = new ScreenBlack(this.sound, battle, new Vector2(), new Point(), this.element, 0, false); battle.effects.Add(screen); this.position = new Point(character.union == Panel.COLOR.red ? 1 : 4, 2); } if (!this.BlackOut(character, battle, this.name, this.Power(character).ToString())) { return; } switch (character.waittime) { case 1: character.animationpoint.X = 1; break; case 3: character.animationpoint.X = 2; break; case 5: character.animationpoint.X = 3; break; case 7: character.animationpoint.X = -1; break; } if (character.waittime % 2 == 0) { this.eye = !this.eye; } int num = 30; if (character.waittime == 44) { this.sound.PlaySE(SoundEffect.pikin); this.sound.PlaySE(SoundEffect.shoot); int pX = character.union == Panel.COLOR.red ? 0 : 5; for (int pY = 0; pY < 3; ++pY) { Wind wind = new Wind(this.sound, battle, pX, pY, character.union, true); if (pX == 0) { wind.positionDirect.X = 0.0f; } if (pX == 5) { wind.positionDirect.X = 240f; } battle.attacks.Add(wind); } } if (character.waittime == 44 + num) { battle.effects.Add(new Charge(this.sound, battle, this.position.X, this.position.Y)); } if (character.waittime > 44 + num + 50) { this.FlameControl(1); if (this.count < 3) { if (this.frame > 60) { switch (this.count) { case 0: this.frame = 0; this.ShakeStart(8, 120); this.sound.PlaySE(SoundEffect.bird); this.sound.PlaySE(SoundEffect.shoot); this.sound.PlaySE(SoundEffect.quake); AttackBase a = new TornadeSide(this.sound, battle, character.union == Panel.COLOR.red ? 2 : 3, 1, character.union, this.Power(character), this.element); a.knock = true; battle.attacks.Add(this.Paralyze(a)); break; case 1: this.frame = 0; break; } ++this.count; } } else if (this.frame > 60) { switch (this.frame) { case 61: character.animationpoint.X = 3; break; case 63: character.animationpoint.X = 2; break; case 65: character.animationpoint.X = 1; break; case 67: character.animationpoint.X = 0; break; } if (this.frame > 80) { if (!this.screen.end) { this.screen.end = true; } if (this.BlackOutEnd(character, battle)) { base.Action(character, battle); } } } } }
public override void Updata() { if (!this.breaking) { this.hp = 99999; if (this.moveflame) { switch ((this.frame / 6) % 4) { case 0: this.animationpoint.X = 0; break; case 1: this.animationpoint.X = 1; break; case 2: this.animationpoint.X = 2; break; case 3: this.animationpoint.X = 1; break; } } this.FlameControl(4); if (this.ForcedShowState ?? this.parent.player.position == this.panelPosition) { if (this.screenGreyOut == null) { this.screenGreyOut = new ScreenBlack( this.sound, this.parent, Vector2.Zero, new Point(5, 2), ChipBase.ELEMENT.normal, 0, false, Color.FromArgb(96, Color.Black), 6); this.screenGreyOut.downprint = false; this.parent.effects.Add(this.screenGreyOut); foreach (var elementEntry in ElementTextLocations) { var hidden = elementEntry.Key != ChipBase.ELEMENT.normal && this.elementAmountFunc(elementEntry.Key) <= 0; var elementIndicator = new ScreenObjectFade( this.sound, this.parent, "bomber", () => new Rectangle(0 + 32 * (this.frame % 3), 805, 32, 32), elementEntry.Value.Item1 - new Vector2(8, 7), new Point(5, 2), 0, false, () => { hidden = elementEntry.Key != ChipBase.ELEMENT.normal && this.elementAmountFunc(elementEntry.Key) <= 0; if (elementEntry.Key == ChipBase.ELEMENT.normal || this.elementAmountFunc(elementEntry.Key) > 0) { return(Color.Transparent); } // 0: None, 1: part of cancel trio, 2: is last cancelled part of trio, 3: is last cancelling part of trio var hintState = 0; var cancellingElements = GetEffectiveElements(elementEntry.Key); var elementsToBeCancelled = ElementTextLocations.Keys.Where(e => { var elementHasDamageToBeCancelled = e != ChipBase.ELEMENT.normal && this.elementAmountFunc(e) > 0; var elementCancellingElements = GetEffectiveElements(e); var elementOnlyNeedsThis = elementCancellingElements.All(ee => ee == elementEntry.Key || this.elementAmountFunc(ee) > 0); return(elementHasDamageToBeCancelled && elementOnlyNeedsThis); }); if (cancellingElements.Any(e => this.elementAmountFunc(e) > 0)) { hintState = 1; } if (cancellingElements.All(e => this.elementAmountFunc(e) > 0)) { hintState = 2; } else if (elementsToBeCancelled.Any()) { hintState = 3; } hidden &= hintState == 0; switch (hintState) { default: case 0: return(Color.Transparent); case 1: // By modulation, blue return(Color.FromArgb(128, Color.White)); case 2: // By modulation, green return(Color.Yellow); case 3: // By modulation, green //return Color.White; return(Color.Yellow); } }, 8); this.parent.effects.Add(elementIndicator); this.infoText.Add(elementIndicator); var elementIcon = new ScreenObjectFade( this.sound, this.parent, "battleobjects", new Rectangle(216 + 16 * (int)elementEntry.Key, 88, 16, 16), elementEntry.Value.Item1, new Point(5, 2), 0, false, () => { if (hidden) { return(Color.Transparent); } return(Color.White); }, 8); this.parent.effects.Add(elementIcon); this.infoText.Add(elementIcon); var elementText = new ScreenObjectFade( this.sound, this.parent, () => this.elementAmountFunc(elementEntry.Key).ToString(), elementEntry.Value.Item1 + new Vector2(16 + 2 - 1, 0 - 1), new Point(5, 2), 0, false, () => { if (hidden) { return(Color.Transparent); } return(elementEntry.Value.Item2); }, 8); this.parent.effects.Add(elementText); this.infoText.Add(elementText); } var totalDamageText = new ScreenObjectFade( this.sound, this.parent, () => ElementTextLocations.Select(kvp => this.elementAmountFunc(kvp.Key)).Sum().ToString(), new Vector2(106, 48) + new Vector2(16 + 2 - 1 - 8, 0 - 1), new Point(5, 2), 0, false, Color.Red, 8); this.parent.effects.Add(totalDamageText); this.infoText.Add(totalDamageText); } } else { if (this.screenGreyOut != null) { this.screenGreyOut.end = true; this.screenGreyOut = null; foreach (var elementInfoText in this.infoText) { elementInfoText.end = true; } this.infoText.Clear(); } } } else { var fadeProgress = this.frame / 60.0; this.color = Color.FromArgb((int)Math.Max(0, 255 - fadeProgress * 255), Color.White); this.FlameControl(1); if (this.frame > 60) { this.flag = false; } } base.Updata(); }