예제 #1
0
        public override void Updata()
        {
            if (this.over)
            {
                return;
            }
            if (!this.parry)
            {
                this.PanelBright();
            }
            if (this.moveflame)
            {
                this.animationpoint.X = this.frame;
                switch (this.frame)
                {
                case 1:
                    for (int index = 0; index < 4; ++index)
                    {
                        AttackBase attackBase = new BombAttack(this.sound, this.parent, this.position.X, this.position.Y, this.union, this.power / 2, 6, this.element);
                        attackBase.badstatus     = this.badstatus;
                        attackBase.badstatustime = this.badstatustime;
                        switch (index)
                        {
                        case 0:
                            attackBase.position.X += -1;
                            attackBase.position.Y += -1;
                            break;

                        case 1:
                            attackBase.position.X += -1;
                            ++attackBase.position.Y;
                            break;

                        case 2:
                            ++attackBase.position.X;
                            attackBase.position.Y += -1;
                            break;

                        case 3:
                            ++attackBase.position.X;
                            ++attackBase.position.Y;
                            break;
                        }
                        this.parent.attacks.Add(attackBase);
                    }
                    break;

                case 2:
                    this.hitting = false;
                    break;

                case 5:
                    this.flag = false;
                    break;
                }
            }
            this.FlameControl();
        }
예제 #2
0
 public override void Updata()
 {
     if (!this.fall)
     {
         if (this.frame % 5 == 0)
             this.bright = !this.bright;
         if (this.bright)
             this.PanelBright();
         if (this.frame == this.time)
         {
             this.fall = true;
             this.frame = 0;
             this.speed = -6;
         }
         else
         {
             this.positionDirect.X -= this.movex;
             this.positionDirect.Y -= this.movey;
             this.plusy += this.speedy;
             if (speedy > 0.0)
                 this.speedy -= this.plusing;
             this.plusy += 120 / this.time;
             if (positionDirect.X < 0.0 || positionDirect.X > 240.0)
                 this.flag = false;
         }
         this.FlameControl();
     }
     else if (plusy > 0.0)
     {
         if (this.moveflame && this.speed < 16)
             this.speed += 4;
         this.FlameControl(4);
         this.plusy -= speed;
         this.frame = 0;
         if (plusy <= 0.0)
         {
             this.plusy = 0.0f;
             int sp = 4;
             this.StandPanel.Crack();
             BombAttack bombAttack = new BombAttack(this.sound, this.parent, this.position.X, this.position.Y, this.union, this.power, 1, this.element)
             {
                 breaking = true
             };
             this.parent.attacks.Add(this.StateCopy(bombAttack));
             this.parent.effects.Add(new Water(this.sound, this.parent, this.position.X, this.position.Y, sp));
             this.sound.PlaySE(SoundEffect.clincher);
             this.ShakeStart(5, 30);
             switch (this.type)
             {
                 case MrasaAnchor.TYPE.line:
                     this.parent.effects.Add(new Water(this.sound, this.parent, this.position.X, this.position.Y - 1, sp));
                     this.parent.attacks.Add(this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X, this.position.Y - 1, this.union, this.power, 1, this.element)));
                     this.parent.effects.Add(new Water(this.sound, this.parent, this.position.X, this.position.Y + 1, sp));
                     this.parent.attacks.Add(this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X, this.position.Y + 1, this.union, this.power, 1, this.element)));
                     break;
                 case MrasaAnchor.TYPE.closs:
                     this.parent.effects.Add(new Water(this.sound, this.parent, this.position.X, this.position.Y - 1, sp));
                     this.parent.attacks.Add(this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X, this.position.Y - 1, this.union, this.power, 1, this.element)));
                     this.parent.effects.Add(new Water(this.sound, this.parent, this.position.X, this.position.Y + 1, sp));
                     this.parent.attacks.Add(this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X, this.position.Y + 1, this.union, this.power, 1, this.element)));
                     this.parent.effects.Add(new Water(this.sound, this.parent, this.position.X + 1, this.position.Y, sp));
                     this.parent.attacks.Add(this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X + 1, this.position.Y, this.union, this.power, 1, this.element)));
                     this.parent.effects.Add(new Water(this.sound, this.parent, this.position.X - 1, this.position.Y, sp));
                     this.parent.attacks.Add(this.StateCopy(new BombAttack(this.sound, this.parent, this.position.X - 1, this.position.Y, this.union, this.power, 1, this.element)));
                     break;
             }
         }
     }
     else
     {
         this.plusy = 0.0f;
         ++this.frame;
         if (this.frame > 60)
         {
             this.parent.effects.Add(new MoveEnemy(this.sound, this.parent, this.position.X, this.position.Y));
             this.flag = false;
         }
     }
 }
예제 #3
0
 public override void Updata()
 {
     if (this.over)
     {
         return;
     }
     if (!this.single)
     {
         if (!this.attack)
         {
             this.bomb1 = new BombAttack(this.sound, this.parent, this.position.X, this.position.Y - 1, this.union, this.power, 1, this.time, new Point(5, 0), this.element);
             this.bomb2 = new BombAttack(this.sound, this.parent, this.position.X, this.position.Y + 1, this.union, this.power, 1, this.time, new Point(5, 0), this.element);
             this.parent.attacks.Add(this.StateCopy(bomb1));
             this.parent.attacks.Add(this.StateCopy(bomb2));
             this.ef1 = new ElekiFangSub(this.sound, this.parent, false, this);
             this.ef2 = new ElekiFangSub(this.sound, this.parent, true, this);
             this.parent.effects.Add(ef1);
             this.parent.effects.Add(ef2);
             this.attack = true;
         }
         if (this.bright)
         {
             this.PanelBright();
         }
         if (this.moveflame)
         {
             this.animation = !this.animation;
             if (this.frame >= this.time)
             {
                 this.bomb1.flag = false;
                 this.bomb2.flag = false;
                 this.ef1.flag   = false;
                 this.ef2.flag   = false;
                 this.flag       = false;
             }
         }
     }
     else
     {
         if (!this.attack)
         {
             this.bomb1 = new BombAttack(this.sound, this.parent, this.position.X, this.position.Y, this.union, this.power, 1, this.time, new Point(5, 0), this.element);
             this.parent.attacks.Add(this.StateCopy(bomb1));
             this.attack = true;
         }
         if (this.bright)
         {
             this.PanelBright();
         }
         if (this.moveflame)
         {
             this.animation = !this.animation;
             if (this.frame >= this.time)
             {
                 this.bomb1.flag = false;
                 this.flag       = false;
             }
         }
     }
     this.FlameControl(2);
 }