Example #1
0
 public AnchorBomb(
     IAudioEngine so,
     SceneBattle p,
     int pX,
     int pY,
     Panel.COLOR u,
     int po,
     int s,
     Vector2 v,
     Point end,
     int t,
     AnchorBomb.TYPE ty,
     int color = -1)
     : base(so, p, pX, pY, u, po, ChipBase.ELEMENT.aqua)
 {
     this.breaking       = true;
     this.hitting        = false;
     this.speed          = s;
     this.positionDirect = v;
     this.time           = t;
     this.position       = end;
     this.endposition    = new Vector2(end.X * 40 + 20, end.Y * 24 + 80);
     this.movex          = (v.X - this.endposition.X) / t;
     this.movey          = (v.Y - this.endposition.Y) / t;
     this.plusy          = 0.0f;
     this.speedy         = 6f;
     this.plusing        = this.speedy / time;
     this.rebirth        = this.union == Panel.COLOR.red;
     this.type           = ty;
     if (color >= 0)
     {
         this.colorA = color;
     }
     else
     {
         this.colorA = (int)this.type;
     }
 }
Example #2
0
        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);
            }
            switch (this.action)
            {
            case 0:
                this.animePoint.X = 0;
                if (this.waittime >= 24)
                {
                    ++this.action;
                    this.waittime = 0;
                    break;
                }
                break;

            case 1:
            case 2:
            case 3:
                this.animePoint = this.AnimeAncerThrow(this.waittime);
                if (this.waittime == 9)
                {
                    this.sound.PlaySE(SoundEffect.throwbomb);
                    AnchorBomb.TYPE ty = AnchorBomb.TYPE.singleG;
                    if (this.action == 3)
                    {
                        ty = AnchorBomb.TYPE.single;
                    }
                    Point end = new Point(character.position.X + 3 * this.UnionRebirth(character.union), character.position.Y);
                    battle.attacks.Add(this.Paralyze(new AnchorBomb(this.sound, character.parent, character.position.X, character.position.Y, character.union, this.Power(character), 1, new Vector2(character.positionDirect.X, character.positionDirect.Y - 16f), end, 30, ty, this.Random.Next(6))));
                    end = new Point(character.position.X + 3 * this.UnionRebirth(character.union), character.position.Y + 1);
                    battle.attacks.Add(this.Paralyze(new AnchorBomb(this.sound, character.parent, character.position.X, character.position.Y, character.union, this.Power(character), 1, new Vector2(character.positionDirect.X, character.positionDirect.Y - 16f), end, 35, ty, this.Random.Next(6))));
                    end = new Point(character.position.X + 3 * this.UnionRebirth(character.union), character.position.Y - 1);
                    battle.attacks.Add(this.Paralyze(new AnchorBomb(this.sound, character.parent, character.position.X, character.position.Y, character.union, this.Power(character), 1, new Vector2(character.positionDirect.X, character.positionDirect.Y - 16f), end, 40, ty, this.Random.Next(6))));
                    end = new Point(character.position.X + 2 * this.UnionRebirth(character.union), character.position.Y);
                    battle.attacks.Add(this.Paralyze(new AnchorBomb(this.sound, character.parent, character.position.X, character.position.Y, character.union, this.Power(character), 1, new Vector2(character.positionDirect.X, character.positionDirect.Y - 16f), end, 45, ty, this.Random.Next(6))));
                    end = new Point(character.position.X + 2 * this.UnionRebirth(character.union), character.position.Y + 1);
                    battle.attacks.Add(this.Paralyze(new AnchorBomb(this.sound, character.parent, character.position.X, character.position.Y, character.union, this.Power(character), 1, new Vector2(character.positionDirect.X, character.positionDirect.Y - 16f), end, 50, ty, this.Random.Next(6))));
                    end = new Point(character.position.X + 2 * this.UnionRebirth(character.union), character.position.Y - 1);
                    battle.attacks.Add(this.Paralyze(new AnchorBomb(this.sound, character.parent, character.position.X, character.position.Y, character.union, this.Power(character), 1, new Vector2(character.positionDirect.X, character.positionDirect.Y - 16f), end, 55, ty, this.Random.Next(6))));
                    end = new Point(character.position.X + 4 * this.UnionRebirth(character.union), character.position.Y);
                    battle.attacks.Add(this.Paralyze(new AnchorBomb(this.sound, character.parent, character.position.X, character.position.Y, character.union, this.Power(character), 1, new Vector2(character.positionDirect.X, character.positionDirect.Y - 16f), end, 60, ty, this.Random.Next(6))));
                    end = new Point(character.position.X + 4 * this.UnionRebirth(character.union), character.position.Y + 1);
                    battle.attacks.Add(this.Paralyze(new AnchorBomb(this.sound, character.parent, character.position.X, character.position.Y, character.union, this.Power(character), 1, new Vector2(character.positionDirect.X, character.positionDirect.Y - 16f), end, 65, ty, this.Random.Next(6))));
                    end = new Point(character.position.X + 4 * this.UnionRebirth(character.union), character.position.Y - 1);
                    battle.attacks.Add(this.Paralyze(new AnchorBomb(this.sound, character.parent, character.position.X, character.position.Y, character.union, this.Power(character), 1, new Vector2(character.positionDirect.X, character.positionDirect.Y - 16f), end, 70, ty, this.Random.Next(6))));
                    break;
                }
                if (this.waittime >= 72)
                {
                    ++this.action;
                    this.waittime = 0;
                    break;
                }
                break;

            case 4:
                if (this.waittime >= 120 && this.BlackOutEnd(character, battle))
                {
                    base.Action(character, battle);
                    break;
                }
                break;
            }
            ++this.waittime;
        }