Пример #1
0
        public override void Updata()
        {
            if (this.frame % 5 == 0)
            {
                this.bright = !this.bright;
            }
            if (this.bright)
            {
                this.PanelBright();
            }
            if (this.frame == this.time)
            {
                this.hitting = true;
                this.flag    = false;
                if (!this.parent.panel[this.position.X, this.position.Y].Hole)
                {
                    this.parent.panel[this.position.X, this.position.Y].state = Panel.PANEL._crack;
                }
                if (this.InArea && !this.StandPanel.Hole)
                {
                    this.sound.PlaySE(SoundEffect.bombmiddle);
                    switch (this.type)
                    {
                    case CanonBomb.TYPE.single:
                        this.parent.effects.Add(new Bomber(this.sound, this.parent, this.position.X, this.position.Y, Bomber.BOMBERTYPE.flashbomber, 2));
                        this.ShakeStart(2, 5);
                        break;

                    case CanonBomb.TYPE.closs:
                        this.parent.effects.Add(new Bomber(this.sound, this.parent, this.position.X, this.position.Y, Bomber.BOMBERTYPE.bomber, 2));
                        AttackBase a1 = this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X - 1, this.position.Y, this.union, this.power, 1, this.element));
                        if (this.cluster)
                        {
                            a1.invincibility = false;
                        }
                        this.parent.attacks.Add(this.StateCopy(a1));
                        this.parent.effects.Add(new Bomber(this.sound, this.parent, this.position.X - 1, this.position.Y, Bomber.BOMBERTYPE.bomber, 2));
                        AttackBase a2 = this.StateCopy(this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X, this.position.Y - 1, this.union, this.power, 1, this.element)));
                        if (this.cluster)
                        {
                            a2.invincibility = false;
                        }
                        this.parent.attacks.Add(this.StateCopy(a2));
                        this.parent.effects.Add(new Bomber(this.sound, this.parent, this.position.X, this.position.Y - 1, Bomber.BOMBERTYPE.bomber, 2));
                        AttackBase a3 = this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X + 1, this.position.Y, this.union, this.power, 1, this.element));
                        if (this.cluster)
                        {
                            a3.invincibility = false;
                        }
                        this.parent.attacks.Add(this.StateCopy(a3));
                        this.parent.effects.Add(new Bomber(this.sound, this.parent, this.position.X + 1, this.position.Y, Bomber.BOMBERTYPE.bomber, 2));
                        AttackBase a4 = this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X, this.position.Y + 1, this.union, this.power, 1, this.element));
                        if (this.cluster)
                        {
                            a4.invincibility = false;
                        }
                        this.parent.attacks.Add(this.StateCopy(a4));
                        this.parent.effects.Add(new Bomber(this.sound, this.parent, this.position.X, this.position.Y + 1, Bomber.BOMBERTYPE.bomber, 2));
                        break;

                    case CanonBomb.TYPE.big:
                        this.parent.effects.Add(new Bomber(this.sound, this.parent, this.position.X, this.position.Y, Bomber.BOMBERTYPE.bomber, 2));
                        AttackBase a5 = this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X - 1, this.position.Y, this.union, this.power, 1, this.element));
                        if (this.cluster)
                        {
                            a5.invincibility = false;
                        }
                        this.parent.attacks.Add(this.StateCopy(a5));
                        this.parent.effects.Add(new Bomber(this.sound, this.parent, this.position.X - 1, this.position.Y, Bomber.BOMBERTYPE.bomber, 2));
                        AttackBase a6 = this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X, this.position.Y - 1, this.union, this.power, 1, this.element));
                        if (this.cluster)
                        {
                            a6.invincibility = false;
                        }
                        this.parent.attacks.Add(this.StateCopy(a6));
                        this.parent.effects.Add(new Bomber(this.sound, this.parent, this.position.X, this.position.Y - 1, Bomber.BOMBERTYPE.bomber, 2));
                        AttackBase a7 = this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X + 1, this.position.Y, this.union, this.power, 1, this.element));
                        if (this.cluster)
                        {
                            a7.invincibility = false;
                        }
                        this.parent.attacks.Add(this.StateCopy(a7));
                        this.parent.effects.Add(new Bomber(this.sound, this.parent, this.position.X + 1, this.position.Y, Bomber.BOMBERTYPE.bomber, 2));
                        AttackBase a8 = this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X, this.position.Y + 1, this.union, this.power, 1, this.element));
                        if (this.cluster)
                        {
                            a8.invincibility = false;
                        }
                        this.parent.attacks.Add(this.StateCopy(a8));
                        this.parent.effects.Add(new Bomber(this.sound, this.parent, this.position.X, this.position.Y + 1, Bomber.BOMBERTYPE.bomber, 2));
                        AttackBase a9 = this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X - 1, this.position.Y - 1, this.union, this.power, 1, this.element));
                        if (this.cluster)
                        {
                            a9.invincibility = false;
                        }
                        this.parent.attacks.Add(this.StateCopy(a9));
                        this.parent.effects.Add(new Bomber(this.sound, this.parent, this.position.X - 1, this.position.Y - 1, Bomber.BOMBERTYPE.bomber, 2));
                        AttackBase a10 = this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X + 1, this.position.Y - 1, this.union, this.power, 1, this.element));
                        if (this.cluster)
                        {
                            a10.invincibility = false;
                        }
                        this.parent.attacks.Add(this.StateCopy(a10));
                        this.parent.effects.Add(new Bomber(this.sound, this.parent, this.position.X + 1, this.position.Y - 1, Bomber.BOMBERTYPE.bomber, 2));
                        AttackBase a11 = this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X + 1, this.position.Y + 1, this.union, this.power, 1, this.element));
                        if (this.cluster)
                        {
                            a11.invincibility = false;
                        }
                        this.parent.attacks.Add(this.StateCopy(a11));
                        this.parent.effects.Add(new Bomber(this.sound, this.parent, this.position.X + 1, this.position.Y + 1, Bomber.BOMBERTYPE.bomber, 2));
                        AttackBase a12 = this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X - 1, this.position.Y + 1, this.union, this.power, 1, this.element));
                        if (this.cluster)
                        {
                            a12.invincibility = false;
                        }
                        this.parent.attacks.Add(this.StateCopy(a12));
                        this.parent.effects.Add(new Bomber(this.sound, this.parent, this.position.X - 1, this.position.Y + 1, Bomber.BOMBERTYPE.bomber, 2));
                        break;
                    }
                }
            }
            else
            {
                this.positionDirect.X -= this.movex;
                this.positionDirect.Y -= this.movey;
                this.plusy            += this.speedy;
                this.speedy           -= this.plusing;
                if (positionDirect.X < 0.0 || positionDirect.X > 240.0)
                {
                    this.flag = false;
                }
            }
            this.FlameControl();
        }