public override void Action(CharacterBase character, SceneBattle battle) { if (this.moveflame) { character.animationpoint.X = this.motionX[this.waittime]; character.animationpoint.Y = this.motionY[this.waittime]; switch (this.waittime) { case 1: this.sound.PlaySE(SoundEffect.Zblade); AttackBase a1 = new LanceAttack(this.sound, character.parent, character.position.X + this.UnionRebirth(character.union), character.position.Y, character.union, this.Power(character), 2, this.element, true); a1.invincibility = false; character.parent.attacks.Add(this.Paralyze(a1)); break; case 4: this.sound.PlaySE(SoundEffect.Zblade); AttackBase a2 = new LanceAttack(this.sound, character.parent, character.position.X + this.UnionRebirth(character.union), character.position.Y, character.union, this.Power(character), 2, this.element, true); a2.invincibility = false; character.parent.attacks.Add(this.Paralyze(a2)); break; case 7: this.sound.PlaySE(SoundEffect.Zblade); character.parent.attacks.Add(this.Paralyze(new LanceAttack(this.sound, character.parent, character.position.X + this.UnionRebirth(character.union), character.position.Y, character.union, this.Power(character), 2, this.element, true))); break; case 12: base.Action(character, battle); break; } ++this.waittime; } this.FlameControl(4); }
protected override void Moving() { switch (this.motion) { case HalfSoul.MOTION.neutral: if (this.moveflame) { ++this.waittime; } if (this.moveflame || this.attack) { this.animationpoint = this.AnimeNeutral(this.waittime); if (this.waittime >= 4 || this.attack) { this.waittime = 0; ++this.roopneutral; if (this.roopneutral >= 8 && this.parent.nowscene != SceneBattle.BATTLESCENE.end || this.attack) { this.roopneutral = 0; this.waittime = 0; this.motion = HalfSoul.MOTION.move; } } break; } break; case HalfSoul.MOTION.move: this.animationpoint = this.AnimeMove(this.waittime); if (this.moveflame) { switch (this.waittime) { case 0: if (this.attack) { this.MoveRandom(true, true); } else { this.MoveRandom(false, false); } if (this.position == this.positionre) { this.motion = !this.attack ? HalfSoul.MOTION.neutral : HalfSoul.MOTION.attack; this.waittime = 0; this.frame = 0; this.roopneutral = 0; ++this.roopmove; break; } break; case 3: this.position = this.positionre; this.PositionDirectSet(); break; case 5: this.motion = !this.attack ? HalfSoul.MOTION.neutral : HalfSoul.MOTION.attack; this.waittime = 0; this.frame = 0; this.roopneutral = 0; ++this.roopmove; break; } ++this.waittime; break; } break; case HalfSoul.MOTION.attack: this.animationpoint = this.AnimeAttack(this.waittime); if (this.moveflame) { switch (this.waittime) { case 5: this.sound.PlaySE(SoundEffect.sword); AttackBase attackBase1 = new SwordAttack(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y, this.union, 100, 2, this.element, false, false); attackBase1.invincibility = false; this.parent.attacks.Add(attackBase1); break; case 9: this.sound.PlaySE(SoundEffect.sword); AttackBase attackBase2 = new LanceAttack(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y, this.union, 100, 2, this.element, true); attackBase2.invincibility = false; this.parent.attacks.Add(attackBase2); break; case 20: this.motion = HalfSoul.MOTION.move; this.waittime = 0; this.attack = false; break; } ++this.waittime; break; } break; case HalfSoul.MOTION.lost: if (this.waittime < 4) { this.animationpoint = this.AnimeLost(this.waittime); if (this.waittime == 2) { this.nohit = true; } ++this.waittime; break; } break; case HalfSoul.MOTION.unlost: this.animationpoint = this.AnimeUnLost(this.waittime); if (this.waittime == 3) { this.nohit = false; this.waittime = 0; this.motion = HalfSoul.MOTION.neutral; } ++this.waittime; break; } this.FlameControl(4); }
protected override void Moving() { if (!this.godmode && this.Hp <= this.HpMax / 2) { this.GodMode(); } else { this.neutlal = this.Motion == NaviBase.MOTION.neutral; switch (this.Motion) { case NaviBase.MOTION.neutral: if (this.moveflame) { this.animationpoint = this.AnimeNeutral(this.waittime % 3); ++this.waittime; } if (this.moveflame && (this.waittime >= 8 / (version == 0 ? 5 : version) || this.atack)) { this.waittime = 0; ++this.roopneutral; if (this.roopneutral >= 1 && this.parent.nowscene != SceneBattle.BATTLESCENE.end) { this.roopneutral = 0; if (this.roopmove > this.moveroop && !this.badstatus[4]) { this.roopmove = this.version > 3 ? this.Random.Next(-1, this.moveroop + 1) : 0; ++this.atackroop; if (!this.atack) { if (this.hp <= this.hpmax / 2) { this.attack = (Mima.ATTACK) this.pattern2[this.action]; this.powerPlus = this.powers[this.pattern2[this.action]]; } else { this.attack = (Mima.ATTACK) this.pattern[this.action]; this.powerPlus = this.powers[this.pattern[this.action]]; } ++this.action; if (this.action >= this.pattern.Length) { this.action = 0; } switch (this.attack) { case Mima.ATTACK.IllProminence: this.counterTiming = true; this.sound.PlaySE(SoundEffect.pikin); this.speed = 4; this.targetPanels = ((IEnumerable <Point>) this.RandomMultiPanel(4, this.UnionEnemy)).ToList <Point>(); for (int index = 0; index < this.targetPanels.Count; ++index) { List <AttackBase> attacks = this.parent.attacks; IAudioEngine sound = this.sound; SceneBattle parent = this.parent; Point point = this.targetPanels[index]; int x = point.X; point = this.targetPanels[index]; int y = point.Y; int union = (int)this.union; point = new Point(); Point hitrange = point; Dummy dummy = new Dummy(sound, parent, x, y, (Panel.COLOR)union, hitrange, 25, true); attacks.Add(dummy); } break; case Mima.ATTACK.DarkWave: this.sound.PlaySE(SoundEffect.sand); this.speed = 3; break; case Mima.ATTACK.GrandSpear: this.sound.PlaySE(SoundEffect.quake); this.ShakeStart(1, 30); this.speed = 4; break; case Mima.ATTACK.SoulFlame: this.speed = 3; break; case Mima.ATTACK.CrescentCharge: this.speed = 3; this.parent.attacks.Add(new Dummy(this.sound, this.parent, this.union == Panel.COLOR.blue ? 5 : 0, 1, this.union, new Point(6, 0), 30, true)); break; case Mima.ATTACK.Reincarnation: this.sound.PlaySE(SoundEffect.charge); this.speed = 3; break; } this.attackProcess = 0; } this.waittime = 0; this.Motion = NaviBase.MOTION.attack; } else { this.speed = 4; this.waittime = 0; if (this.atack) { this.roopmove = this.moveroop + 1; } this.Motion = NaviBase.MOTION.move; } } break; } break; case NaviBase.MOTION.attack: if (this.moveflame) { ++this.waittime; if (this.moveflame) { switch (this.attack) { case Mima.ATTACK.IllProminence: if (this.attackProcess == 0) { this.animationpoint = this.AnimeIllProminence1(this.waittime); switch (this.waittime) { case 2: this.counterTiming = false; ++this.attackProcess; this.waittime = 0; break; } } else { this.animationpoint = this.AnimeIllProminence2(this.waittime); switch (this.waittime) { case 3: this.sound.PlaySE(SoundEffect.bombmiddle); Point point; for (int index = 0; index < this.targetPanels.Count; ++index) { this.ShakeStart(2, 8); List <AttackBase> attacks = this.parent.attacks; IAudioEngine sound1 = this.sound; SceneBattle parent1 = this.parent; point = this.targetPanels[index]; int x1 = point.X; point = this.targetPanels[index]; int y1 = point.Y; int union = (int)this.union; int power = this.Power; BombAttack bombAttack = new BombAttack(sound1, parent1, x1, y1, (Panel.COLOR)union, power, 1, ChipBase.ELEMENT.poison); attacks.Add(bombAttack); List <EffectBase> effects = this.parent.effects; IAudioEngine sound2 = this.sound; SceneBattle parent2 = this.parent; point = this.targetPanels[index]; int x2 = point.X; point = this.targetPanels[index]; int y2 = point.Y; Bomber bomber = new Bomber(sound2, parent2, x2, y2, Bomber.BOMBERTYPE.poison, 3); effects.Add(bomber); } if (this.attackProcess < 2) { this.targetPanels = ((IEnumerable <Point>) this.RandomMultiPanel(4, this.UnionEnemy)).ToList <Point>(); for (int index = 0; index < this.targetPanels.Count; ++index) { List <AttackBase> attacks = this.parent.attacks; IAudioEngine sound = this.sound; SceneBattle parent = this.parent; point = this.targetPanels[index]; int x = point.X; point = this.targetPanels[index]; int y = point.Y; int union = (int)this.union; point = new Point(); Point hitrange = point; Dummy dummy = new Dummy(sound, parent, x, y, (Panel.COLOR)union, hitrange, 25, true); attacks.Add(dummy); } break; } break; case 8: if (this.attackProcess >= 2) { this.waittime = 0; this.motion = NaviBase.MOTION.move; break; } ++this.attackProcess; this.waittime = 0; break; } } break; case Mima.ATTACK.DarkWave: switch (this.attackProcess) { case 0: this.animationpoint = this.AnimeDarkWave1(this.waittime); switch (this.waittime) { case 1: this.effecting = true; this.positionre = this.RandomTarget(this.union); this.positionre.X -= this.UnionRebirth(this.union); if (!this.NoObject(this.positionre, this.number)) { this.nohit = false; this.Motion = NaviBase.MOTION.move; this.frame = 0; this.waittime = 0; this.roopneutral = 0; ++this.roopmove; break; } break; case 6: this.counterTiming = true; this.position = this.positionre; this.PositionDirectSet(); break; case 9: ++this.attackProcess; this.waittime = 0; break; } break; case 1: this.animationpoint = this.AnimeDarkWave2(this.waittime); switch (this.waittime) { case 3: this.counterTiming = false; this.sound.PlaySE(SoundEffect.wave); this.parent.effects.Add(new MimaWaveLong(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y, 3)); AttackBase attackBase1 = new LanceAttack(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y, this.union, this.Power, 2, ChipBase.ELEMENT.aqua, false); attackBase1.invincibility = false; this.parent.attacks.Add(attackBase1); break; case 7: ++this.attackProcess; this.waittime = 0; break; } break; case 2: this.animationpoint = this.AnimeDarkWave3(this.waittime); switch (this.waittime) { case 3: this.sound.PlaySE(SoundEffect.wave); this.parent.effects.Add(new MimaWaveDream(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y, 3)); AttackBase attackBase2 = new Halberd(this.sound, this.parent, this.position.X, this.position.Y, this.union, this.Power, 2, ChipBase.ELEMENT.aqua, true); attackBase2.invincibility = false; this.parent.attacks.Add(attackBase2); break; case 6: this.waittime = 0; this.effecting = false; this.motion = NaviBase.MOTION.move; break; } break; } break; case Mima.ATTACK.GrandSpear: switch (this.attackProcess) { case 0: this.animationpoint = this.AnimeMove(this.waittime); if (this.moveflame) { switch (this.waittime) { case 1: this.MoveRandom(true, false); break; case 5: this.counterTiming = true; this.position = this.positionre; this.PositionDirectSet(); break; case 10: this.nohit = false; ++this.attackProcess; this.waittime = 0; break; } break; } break; case 1: this.animationpoint = this.AnimeGrandSpear(this.waittime); if (this.moveflame) { switch (this.waittime) { case 2: this.counterTiming = false; this.parent.attacks.Add(new MimaRockTower(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y, this.union, this.Power, MimaRockTower.MOTION.init)); break; case 4: this.parent.attacks.Add(new MimaRockTower(this.sound, this.parent, this.position.X + 2 * this.UnionRebirth(this.union), this.position.Y - 1, this.union, this.Power, MimaRockTower.MOTION.init)); this.parent.attacks.Add(new MimaRockTower(this.sound, this.parent, this.position.X + 2 * this.UnionRebirth(this.union), this.position.Y, this.union, this.Power, MimaRockTower.MOTION.init)); this.parent.attacks.Add(new MimaRockTower(this.sound, this.parent, this.position.X + 2 * this.UnionRebirth(this.union), this.position.Y + 1, this.union, this.Power, MimaRockTower.MOTION.init)); break; case 6: this.parent.attacks.Add(new MimaRockTower(this.sound, this.parent, this.position.X + 3 * this.UnionRebirth(this.union), this.position.Y - 1, this.union, this.Power, MimaRockTower.MOTION.init)); this.parent.attacks.Add(new MimaRockTower(this.sound, this.parent, this.position.X + 3 * this.UnionRebirth(this.union), this.position.Y, this.union, this.Power, MimaRockTower.MOTION.init)); this.parent.attacks.Add(new MimaRockTower(this.sound, this.parent, this.position.X + 3 * this.UnionRebirth(this.union), this.position.Y + 1, this.union, this.Power, MimaRockTower.MOTION.init)); this.waittime = 0; this.motion = NaviBase.MOTION.move; break; } break; } break; } break; case Mima.ATTACK.SoulFlame: if (this.position.X != 1) { this.sound.PlaySE(SoundEffect.dark); this.parent.attacks.Add(new MimaFrame(this.sound, this.parent, this.position.X, this.position.Y, this.union, this.Power, 2, new Vector2(this.positionDirect.X, this.positionDirect.Y + 16f), ChipBase.ELEMENT.heat, 2)); } this.waittime = 0; this.motion = NaviBase.MOTION.move; break; case Mima.ATTACK.CrescentCharge: if (this.moveflame) { switch (this.attackProcess) { case 0: if (this.waittime < 5) { this.animationpoint = this.AnimeMove(this.waittime); } else { this.animationpoint.X = -1; } this.nohit = true; switch (this.waittime) { case 10: this.sound.PlaySE(SoundEffect.shoot); this.mimacharge = new MimaCharge(this.sound, this.parent, this.union == Panel.COLOR.blue ? 5 : 0, 1, this.union, this.Power, 1, this.positionDirect, this.element, 8); this.parent.attacks.Add(mimacharge); this.waittime = 0; ++this.attackProcess; break; } break; case 1: this.animationpoint.X = -1; if (!this.mimacharge.flag) { this.waittime = 0; ++this.attackProcess; break; } break; case 2: this.animationpoint = this.AnimeMove(this.waittime + 5); switch (this.waittime) { case 5: this.nohit = false; this.waittime = 0; this.motion = NaviBase.MOTION.neutral; this.animationpoint.X = 0; break; } break; } break; } break; case Mima.ATTACK.Reincarnation: if (this.attackProcess == 1) { this.counterTiming = true; } switch (this.attackProcess) { case 0: case 1: case 2: this.animationpoint = this.AnimeReincarnation(this.waittime); if (this.waittime >= 6) { ++this.attackProcess; this.waittime = 0; break; } break; case 3: this.counterTiming = false; this.MoveRandom(true, false); this.sound.PlaySE(SoundEffect.dark); this.parent.objects.Add(new MimaNavi(this.sound, this.parent, this.positionre.X, this.positionre.Y, this.union)); this.waittime = 0; this.roopmove = -4; this.motion = NaviBase.MOTION.move; break; } break; } } break; } break; case NaviBase.MOTION.move: this.animationpoint = this.AnimeMove(this.waittime); if (this.moveflame) { switch (this.waittime) { case 0: this.MoveRandom(false, false); if (this.position == this.positionre) { this.nohit = false; this.Motion = NaviBase.MOTION.neutral; this.frame = 0; this.roopneutral = 0; ++this.roopmove; break; } break; case 3: this.nohit = true; break; case 5: this.position = this.positionre; this.PositionDirectSet(); break; case 8: this.nohit = false; break; case 10: this.nohit = false; this.Motion = NaviBase.MOTION.neutral; this.speed = this.nspeed; this.frame = 0; this.roopneutral = 0; ++this.roopmove; break; } ++this.waittime; break; } break; case NaviBase.MOTION.knockback: switch (this.waittime) { case 2: this.NockMotion(); this.nohit = false; this.counterTiming = false; this.effecting = false; this.PositionDirectSet(); break; case 3: this.NockMotion(); break; case 15: this.animationpoint = new Point(0, 2); this.PositionDirectSet(); break; case 21: this.animationpoint = new Point(0, 0); this.waittime = 0; this.Motion = NaviBase.MOTION.neutral; break; } if (this.waittime >= 2 && this.waittime <= 6) { this.positionDirect.X -= this.UnionRebirth(this.union); } ++this.waittime; break; } if (this.effecting && !this.nohit) { this.AttackMake(this.Power, 0, 0); } this.FlameControl(); this.MoveAftar(); } }
protected override void Moving() { this.neutlal = this.Motion == NaviBase.MOTION.neutral; switch (this.Motion) { case NaviBase.MOTION.neutral: if (this.moveflame) { ++this.waittime; } if (this.moveflame) { this.animationpoint = this.AnimeNeutral(this.waittime); if (this.waittime >= (this.beast ? 2 : 8 - Math.Min(6, (int)this.version))) { this.waittime = 0; ++this.roopneutral; if (this.roopneutral >= 1 && this.parent.nowscene != SceneBattle.BATTLESCENE.end) { this.roopneutral = 0; if (this.roopmove > this.moveroop && !this.badstatus[4]) { this.roopmove = 0; this.roopmove = this.version > 3 ? this.Random.Next(-1, this.moveroop + 1) : 0; ++this.atackroop; if (!this.atack) { int index = this.Random.Next(4); this.attack = (HakutakuMan.ATTACK)index; this.powerPlus = this.powers[index]; } this.waittime = 0; this.attackFlag = true; this.Motion = NaviBase.MOTION.move; this.counterTiming = true; } else { this.waittime = 0; this.Motion = NaviBase.MOTION.move; } } } break; } break; case NaviBase.MOTION.attack: if (this.moveflame) { ++this.waittime; if (this.moveflame) { switch (this.attack) { case HakutakuMan.ATTACK.WideCrow: if (!this.beast) { this.animationpoint = this.AnimeWide(this.waittime); switch (this.waittime) { case 6: this.counterTiming = false; this.sound.PlaySE(SoundEffect.shotwave); this.parent.attacks.Add(new SwordAttack(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y, this.union, this.Power, 3, this.element, false, false)); break; case 10: this.motion = NaviBase.MOTION.move; this.frame = 0; this.speed = this.nspeed; this.roopneutral = 0; this.waittime = 0; break; } } else { if (this.attackCombo == 0) { this.animationpoint = this.AnimeWideBO(this.waittime); switch (this.waittime) { case 6: this.counterTiming = false; this.sound.PlaySE(SoundEffect.shotwave); AttackBase attackBase = new SwordAttack(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y, this.union, this.Power, 3, this.element, false, false); attackBase.invincibility = false; this.parent.attacks.Add(attackBase); break; case 8: ++this.attackCombo; this.frame = 0; this.speed = this.nspeed; this.roopneutral = 0; this.waittime = 0; break; } } else { this.animationpoint = this.AnimeLongBO(this.waittime); switch (this.waittime) { case 6: this.counterTiming = false; this.sound.PlaySE(SoundEffect.shotwave); this.parent.attacks.Add(new LanceAttack(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y, this.union, this.Power, 3, this.element, true)); break; case 10: this.attackCombo = 0; this.motion = NaviBase.MOTION.move; this.frame = 0; this.speed = this.nspeed; this.roopneutral = 0; this.waittime = 0; break; } } break; } break; case HakutakuMan.ATTACK.LongCrow: if (!this.beast) { this.animationpoint = this.AnimeLong(this.waittime); switch (this.waittime) { case 6: this.counterTiming = false; this.sound.PlaySE(SoundEffect.shotwave); this.parent.attacks.Add(new LanceAttack(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y, this.union, this.Power, 3, this.element, true)); break; case 10: this.motion = NaviBase.MOTION.move; this.frame = 0; this.speed = this.nspeed; this.roopneutral = 0; this.waittime = 0; break; } } else { if (this.attackCombo == 0) { this.animationpoint = this.AnimeLongBO(this.waittime); switch (this.waittime) { case 6: this.counterTiming = false; this.sound.PlaySE(SoundEffect.shotwave); AttackBase attackBase = new LanceAttack(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y, this.union, this.Power, 3, this.element, true); attackBase.invincibility = false; this.parent.attacks.Add(attackBase); break; case 8: ++this.attackCombo; this.frame = 0; this.speed = this.nspeed; this.roopneutral = 0; this.waittime = 0; break; } } else { this.animationpoint = this.AnimeWideBO(this.waittime); switch (this.waittime) { case 6: this.counterTiming = false; this.sound.PlaySE(SoundEffect.shotwave); this.parent.attacks.Add(new SwordAttack(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y, this.union, this.Power, 3, this.element, false, false)); break; case 10: this.attackCombo = 0; this.motion = NaviBase.MOTION.move; this.frame = 0; this.speed = this.nspeed; this.roopneutral = 0; this.waittime = 0; break; } } break; } break; case HakutakuMan.ATTACK.Miss: if (!this.beast) { this.animationpoint = this.AnimeMiss(this.waittime); switch (this.waittime) { case 7: case 9: this.counterTiming = false; this.sound.PlaySE(SoundEffect.lance); break; case 13: this.sound.PlaySE(SoundEffect.canon); this.sound.PlaySE(SoundEffect.damageenemy); this.whitetime = 4; this.hp -= 20 * version; break; case 20: this.motion = NaviBase.MOTION.move; this.frame = 0; this.roopneutral = 0; this.waittime = 0; this.speed = this.nspeed; break; } } else { this.animationpoint = this.AnimeCrossBO(this.waittime); switch (this.waittime) { case 6: this.sound.PlaySE(SoundEffect.shotwave); this.parent.attacks.Add(new SwordCloss(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y, this.union, this.Power, 3, this.element, false)); break; case 10: this.motion = NaviBase.MOTION.move; this.frame = 0; this.speed = this.nspeed; this.roopneutral = 0; this.waittime = 0; break; } break; } break; case HakutakuMan.ATTACK.Hadouken: if (!this.beast) { this.animationpoint = this.AnimeHadou(this.waittime); switch (this.waittime) { case 8: this.counterTiming = false; int x = this.RandomTarget().X; int num1 = 1; int num2 = 8; AttackBase attackBase = new FireBreath(this.sound, this.parent, this.position.X + num1 * this.UnionRebirth(this.union), this.position.Y, this.union, this.Power, 2, this.element, x); attackBase.positionDirect.Y += num2; this.parent.attacks.Add(attackBase); break; case 16: this.motion = NaviBase.MOTION.move; this.frame = 0; this.speed = this.nspeed; this.roopneutral = 0; this.waittime = 0; break; } } else { switch (this.attackCombo) { case 0: this.animationpoint = this.AnimeSpin1BO(this.waittime); if (this.waittime == 4) { this.counterTiming = false; this.guard = CharacterBase.GUARD.guard; switch (this.position.Y) { case 0: this.spinUP = false; this.spinGo = true; break; case 2: this.spinUP = true; this.spinGo = true; break; default: this.spinGo = false; break; } this.PositionDirectSet(); this.HitFlagReset(); this.sound.PlaySE(SoundEffect.knife); this.effecting = true; ++this.attackCombo; this.frame = 0; this.speed = this.nspeed; this.roopneutral = 0; this.waittime = 0; this.DammySet(); break; } break; case 1: this.animationpoint = this.AnimeSpin2BO(this.waittime % 4); if (this.spinGo) { if (this.SlideMove(movespeed, 0)) { this.SlideMoveEnd(); this.PositionDirectSet(); this.spinGo = false; break; } break; } if (this.spinUP) { if (this.SlideMove(movespeed, 2)) { this.SlideMoveEnd(); Point position = this.position; --position.Y; if (!this.InAreaCheck(position)) { this.spinUP = !this.spinUP; position = this.position; position.X += this.UnionRebirth(this.union); if (!this.InAreaCheck(position)) { ++this.attackCombo; this.frame = 0; this.speed = this.nspeed; this.roopneutral = 0; this.waittime = 0; } this.PositionDirectSet(); this.spinGo = true; } } } else if (this.SlideMove(movespeed, 3)) { this.SlideMoveEnd(); Point position = this.position; ++position.Y; if (!this.InAreaCheck(position)) { this.spinUP = !this.spinUP; position = this.position; position.X += this.UnionRebirth(this.union); if (!this.InAreaCheck(position)) { this.HitFlagReset(); ++this.attackCombo; this.frame = 0; this.speed = this.nspeed; this.roopneutral = 0; this.waittime = 0; } this.PositionDirectSet(); this.spinGo = true; } } break; case 2: this.animationpoint = this.AnimeSpin2BO(this.waittime % 3); if (this.SlideMove(movespeed, 1)) { Point position = this.position; position.X -= this.UnionRebirth(this.union); if (!this.InAreaCheck(position)) { this.guard = CharacterBase.GUARD.none; this.effecting = false; ++this.attackCombo; this.frame = 0; this.speed = this.nspeed; this.roopneutral = 0; this.waittime = 0; } break; } break; default: this.animationpoint = this.AnimeSpin3BO(this.waittime); if (this.waittime == 4) { this.effecting = false; this.attackCombo = 0; this.motion = NaviBase.MOTION.move; this.frame = 0; this.speed = this.nspeed; this.roopneutral = 0; this.waittime = 0; break; } break; } break; } break; } } break; } break; case NaviBase.MOTION.move: this.animationpoint = this.AnimeMove(this.waittime); if (this.moveflame) { switch (this.waittime) { case 0: if (!this.attackFlag || this.attack == HakutakuMan.ATTACK.Hadouken) { this.MoveRandom(false, false); } else { Point point = this.RandomTarget(); if (this.Canmove(new Point(point.X - this.UnionRebirth(this.union), point.Y), this.number, this.union == Panel.COLOR.blue ? Panel.COLOR.red : Panel.COLOR.blue) && !this.HeviSand) { this.positionre = new Point(point.X - this.UnionRebirth(this.union), point.Y); } else { this.MoveRandom(true, false); } } if (this.position == this.positionre) { if (this.attackFlag) { this.Motion = NaviBase.MOTION.attack; if (this.beast) { this.speed *= 2; } this.attackFlag = false; switch (this.attack) { case HakutakuMan.ATTACK.WideCrow: this.parent.attacks.Add(new Dummy(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y - 1, this.union, new Point(0, 2), 60, true)); break; case HakutakuMan.ATTACK.LongCrow: this.parent.attacks.Add(new Dummy(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y, this.union, new Point(1, 0), 60, true)); break; } } else { this.dammy.flag = false; this.Motion = NaviBase.MOTION.neutral; } this.frame = 0; this.roopneutral = 0; ++this.roopmove; break; } break; case 4: var originalPosition = this.position; this.position = this.positionre; this.positionReserved = null; if (this.attackFlag) { this.positionReserved = originalPosition; switch (this.attack) { case HakutakuMan.ATTACK.WideCrow: this.parent.attacks.Add(new Dummy(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y - 1, this.union, new Point(0, 2), 60, true)); break; case HakutakuMan.ATTACK.LongCrow: this.parent.attacks.Add(new Dummy(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y, this.union, new Point(1, 0), 60, true)); break; case HakutakuMan.ATTACK.Miss: if (this.beast) { this.parent.attacks.Add(new Dummy(this.sound, this.parent, this.position.X + this.UnionRebirth(this.union), this.position.Y, this.union, new Point(0, 0), 60, true)); this.parent.attacks.Add(new Dummy(this.sound, this.parent, this.position.X + 2 * this.UnionRebirth(this.union), this.position.Y - 1, this.union, new Point(0, 0), 60, true)); this.parent.attacks.Add(new Dummy(this.sound, this.parent, this.position.X, this.position.Y - 1, this.union, new Point(0, 0), 60, true)); this.parent.attacks.Add(new Dummy(this.sound, this.parent, this.position.X + 2 * this.UnionRebirth(this.union), this.position.Y + 1, this.union, new Point(0, 0), 60, true)); this.parent.attacks.Add(new Dummy(this.sound, this.parent, this.position.X, this.position.Y + 1, this.union, new Point(0, 0), 60, true)); break; } break; } } this.PositionDirectSet(); break; case 7: if (this.attackFlag) { this.Motion = NaviBase.MOTION.attack; this.attackFlag = false; this.speed *= 2; } else { this.dammy.flag = false; this.Motion = NaviBase.MOTION.neutral; } this.frame = 0; this.roopneutral = 0; ++this.roopmove; break; } ++this.waittime; break; } break; case NaviBase.MOTION.knockback: switch (this.waittime) { case 2: this.NockMotion(); this.attackCombo = 0; this.speed = this.nspeed; this.guard = CharacterBase.GUARD.none; this.counterTiming = false; this.effecting = false; this.attackFlag = false; this.PositionDirectSet(); break; case 3: this.NockMotion(); break; case 15: this.animationpoint = new Point(5, 0); this.PositionDirectSet(); break; case 21: this.animationpoint = new Point(0, 0); this.waittime = 0; this.dammy.flag = false; this.Motion = NaviBase.MOTION.move; break; } if (this.waittime >= 2 && this.waittime <= 6) { this.positionDirect.X -= this.UnionRebirth(this.union); } ++this.waittime; break; } if (this.effecting && !this.nohit) { this.AttackMake(this.Power, 0, 0); } this.FlameControl(); this.MoveAftar(); }