예제 #1
0
 public MimaShock(
     IAudioEngine so,
     SceneBattle p,
     int pX,
     int pY,
     Panel.COLOR u,
     int po,
     MimaShock.MOTION m)
     : base(so, p, pX, pY, u, po, ChipBase.ELEMENT.normal)
 {
     if (this.InArea)
     {
         if (this.parent.panel[this.position.X, this.position.Y].state == Panel.PANEL._break)
         {
             return;
         }
         this.canCounter       = false;
         this.time             = 1;
         this.speed            = 3;
         this.invincibility    = false;
         this.animationpoint.X = 0;
         this.hitrange         = new Point(0, 0);
         this.hitting          = false;
         this.rebirth          = this.union == Panel.COLOR.red;
         this.positionre       = this.position;
         this.positionDirect   = new Vector2(this.position.X * 40 + 20, this.position.Y * 24 + 82);
         this.sound.PlaySE(SoundEffect.waveshort);
         this.motion = m;
         this.frame  = 0;
     }
     else
     {
         this.flag = false;
     }
 }
예제 #2
0
 public ElekiFangSub(IAudioEngine s, SceneBattle p, bool up, ElekiFang ef)
     : base(s, p, ef.position.X, ef.position.Y + (up ? -1 : 1))
 {
     this.ef = ef;
     this.up = up;
     if (this.position.X < 0)
     {
         this.position.X = 0;
     }
     if (this.position.X > 5)
     {
         this.position.X = 5;
     }
     if (this.position.Y < 0)
     {
         this.position.Y = 0;
         this.downprint  = true;
     }
     if (this.position.Y <= 2)
     {
         return;
     }
     this.position.Y = 2;
     this.upprint    = true;
 }
예제 #3
0
        public override void Action(CharacterBase character, SceneBattle battle)
        {
            if (character.waittime <= 1)
            {
                character.animationpoint = new Point(0, 1);
            }
            else if (character.waittime <= 7)
            {
                character.animationpoint = new Point((character.waittime - 1) / 2, 1);
            }
            else if (character.waittime <= 15)
            {
                character.animationpoint = new Point(3, 1);
            }
            else
            {
                base.Action(character, battle);
            }
            if (character.waittime != 5)
            {
                return;
            }
            int num = this.power + this.pluspower;

            character.parent.attacks.Add(this.Paralyze(new WaveAttsck(this.sound, character.parent, character.position.X + this.UnionRebirth(character.union), character.position.Y, character.union, this.Power(character), 1, 1, this.element)));
        }
예제 #4
0
 public EnemyHit(
     IAudioEngine so,
     SceneBattle p,
     int pX,
     int pY,
     Panel.COLOR u,
     int po,
     ChipBase.ELEMENT ele,
     CharacterBase chara)
     : base(so, p, pX, pY, u, po, ele)
 {
     if (!this.flag)
     {
         return;
     }
     this.breaking         = true;
     this.upprint          = true;
     this.speed            = 1;
     this.animationpoint.X = 0;
     this.hitrange         = new Point(0, 0);
     this.hitting          = true;
     this.rebirth          = this.union == Panel.COLOR.blue;
     this.positionre       = this.position;
     if (this.union == Panel.COLOR.red)
     {
         this.positionDirect = new Vector2(this.position.X * 40 - 5, this.position.Y * 24 + 48);
     }
     else
     {
         this.positionDirect = new Vector2((this.position.X + 1) * 40 + 5, this.position.Y * 24 + 48);
     }
     this.frame   = 0;
     this.chara   = chara;
     this.hitflag = chara.hitflag;
 }
예제 #5
0
 public JusticeRing(
     IAudioEngine so,
     SceneBattle p,
     int pX,
     int pY,
     Panel.COLOR u,
     int po,
     ChipBase.ELEMENT ele)
     : base(so, p, pX, pY, u, po, ele)
 {
     if (!this.flag)
     {
         return;
     }
     this.upprint          = true;
     this.speed            = 4;
     this.animationpoint.X = 0;
     --this.position.Y;
     this.hitrange   = new Point(0, 2);
     this.hitting    = true;
     this.rebirth    = this.union == Panel.COLOR.blue;
     this.positionre = this.position;
     if (this.union == Panel.COLOR.red)
     {
         this.positionDirect = new Vector2(this.position.X * 40 + 20, this.position.Y * 24 + 60);
     }
     else
     {
         this.positionDirect = new Vector2((this.position.X + 1) * 40 - 20, this.position.Y * 24 + 60);
     }
     this.frame = 0;
 }
예제 #6
0
            private void Update()
            {
                if (!this.mReady)
                {
                    return;
                }
                int num = -1;

                this.fastForward = this.buttonDown && (double)Time.get_time() - (double)this.holdDownTime > 0.200000002980232;
                for (int index = 0; index < this.Actions.Length; ++index)
                {
                    if (this.Actions[index].enabled)
                    {
                        this.Actions[index].Update();
                        num = index;
                        if (this.fastForward)
                        {
                            this.Actions[index].Forward();
                        }
                    }
                }
                if (!this.IsAutoForward)
                {
                    return;
                }
                SceneBattle instance = SceneBattle.Instance;

                if (!UnityEngine.Object.op_Implicit((UnityEngine.Object)instance) || !instance.Battle.RequestAutoBattle && !instance.Battle.IsMultiPlay)
                {
                    return;
                }
                if (this.mCurIdxAutoForward != num)
                {
                    this.mCurIdxAutoForward = num;
                    this.mTimerAutoForward  = GameSettings.Instance.Quest.WaitTimeScriptEventForward;
                }
                if ((double)this.mTimerAutoForward <= 0.0)
                {
                    return;
                }
                this.mTimerAutoForward -= Time.get_deltaTime();
                if ((double)this.mTimerAutoForward > 0.0)
                {
                    return;
                }
                bool flag = false;

                for (int index = 0; index < this.Actions.Length; ++index)
                {
                    if (this.Actions[index].enabled && this.Actions[index].Forward())
                    {
                        flag = true;
                    }
                }
                if (flag)
                {
                    return;
                }
                this.mTimerAutoForward = 1f;
            }
예제 #7
0
        public override void Action(CharacterBase character, SceneBattle battle)
        {
            if (character.waittime < 1)
            {
                character.animationpoint = new Point(4, 0);
            }
            else if (character.waittime < 3)
            {
                character.animationpoint = new Point(5, 0);
            }
            else if (character.waittime < 10)
            {
                character.animationpoint = new Point(6, 0);
            }
            else if (character.waittime == 5)
            {
                character.animationpoint = new Point(5, 0);
            }
            else if (character.waittime == 24)
            {
                base.Action(character, battle);
            }
            if (character.waittime != 6)
            {
                return;
            }
            this.sound.PlaySE(SoundEffect.canon);
            Point   point   = new Point(character.position.X + 3 * this.UnionRebirth(character.union), character.position.Y);
            Vector2 vector2 = new Vector2(character.positionDirect.X + 30 * this.UnionRebirth(character.union), character.positionDirect.Y - 3f);

            character.parent.attacks.Add(this.Paralyze(new BustorShot(this.sound, character.parent, character.position.X, character.position.Y, character.union, this.Power(character), BustorShot.SHOT.railgun, ChipBase.ELEMENT.eleki, false, 0)));
        }
예제 #8
0
 public VirusBall(
     IAudioEngine so,
     SceneBattle p,
     int pX,
     int pY,
     Panel.COLOR u,
     int po,
     int s,
     Vector2 v,
     Point end,
     int t,
     int number)
     : base(so, p, pX, pY, u, po, ChipBase.ELEMENT.normal)
 {
     this.number         = number;
     this.hitting        = false;
     this.speed          = s;
     this.positionDirect = v;
     this.time           = t;
     this.position       = end;
     this.invincibility  = false;
     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 / (this.time / 2);
     this.rebirth        = this.union == Panel.COLOR.red;
     this.savedata       = this.parent.parent.savedata;
 }
예제 #9
0
 public Smoke(IAudioEngine s, SceneBattle p, int pX, int pY, ChipBase.ELEMENT ele)
     : base(s, p, pX, pY)
 {
     this.speed            = 2;
     this.positionDirect   = new Vector2(pX * 40 + 20, pY * 24 + 80);
     this.animationpoint.Y = (int)ele;
 }
예제 #10
0
 public LeafWave(
     IAudioEngine so,
     SceneBattle p,
     int pX,
     int pY,
     Panel.COLOR u,
     int po,
     int s,
     int time)
     : base(so, p, pX, pY, u, po, ChipBase.ELEMENT.leaf)
 {
     if (!this.flag)
     {
         return;
     }
     this.knock            = true;
     this.invincibility    = true;
     this.canCounter       = false;
     this.time             = time;
     this.speed            = s;
     this.animationpoint.X = 0;
     this.hitrange         = new Point(0, 0);
     this.hitting          = true;
     this.rebirth          = this.union == Panel.COLOR.blue;
     this.positionre       = this.position;
     this.positionDirect   = new Vector2(pX * 40 + 20, pY * 24 + 78);
     this.frame            = 0;
     if (this.StandPanel.Hole)
     {
         this.flag = false;
     }
     this.color = Color.White;
 }
예제 #11
0
        public override void Action(CharacterBase character, SceneBattle battle)
        {
            if (!this.BlackOut(character, battle, this.name, this.Power(character).ToString()))
            {
                return;
            }
            this.animePoint = this.Animation(character.waittime);
            switch (character.waittime)
            {
            case 1:
                character.animationpoint.X = -1;
                this.sound.PlaySE(SoundEffect.warp);
                break;

            case 50:
                this.sound.PlaySE(SoundEffect.beam);
                AttackBase a = new Beam(this.sound, character.parent, character.position.X + this.UnionRebirth(character.union), character.position.Y, character.union, this.Power(character), 2, false);
                a.positionDirect.Y += 3f;
                character.parent.attacks.Add(this.Paralyze(a));
                break;
            }
            if (character.waittime > 140 && this.BlackOutEnd(character, battle))
            {
                base.Action(character, battle);
            }
        }
예제 #12
0
 public override void Action(CharacterBase character, SceneBattle battle)
 {
     if (character.waittime == 2)
     {
         character.animationpoint = new Point(5, 0);
         this.count = 1;
     }
     if ((character.waittime - 6) % 9 == 0)
     {
         character.animationpoint = new Point(6, 0);
     }
     if ((character.waittime - 11) % 9 == 0)
     {
         character.animationpoint = new Point(5, 0);
     }
     if (character.waittime == 6 || character.waittime == 15 || character.waittime == 24)
     {
         character.animationpoint = new Point(6, 0);
         this.sound.PlaySE(SoundEffect.fire);
         AttackBase a = new ElementFire(this.sound, character.parent, character.position.X + this.count * this.UnionRebirth(character.union), character.position.Y, character.union, this.Power(character), 6, this.element, true, 0);
         a.positionDirect.X -= 48 * this.UnionRebirth(character.union);
         a.breaking          = true;
         a.invincibility     = false;
         character.parent.attacks.Add(this.Paralyze(a));
         ++this.count;
     }
     if (character.waittime != 56)
     {
         return;
     }
     character.animationpoint = new Point(0, 0);
     base.Action(character, battle);
 }
예제 #13
0
 public override void Action(CharacterBase character, SceneBattle battle)
 {
     if (character.waittime == 3)
     {
         this.sound.PlaySE(SoundEffect.throwbomb);
     }
     character.animationpoint = CharacterAnimation.BombAnimation(character.waittime);
     if (character.waittime == 6)
     {
         int   num = this.power + this.pluspower;
         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, AnchorBomb.TYPE.singleG, -1)));
         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, AnchorBomb.TYPE.singleG, -1)));
         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, AnchorBomb.TYPE.singleG, -1)));
         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, AnchorBomb.TYPE.singleG, -1)));
         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, AnchorBomb.TYPE.singleG, -1)));
         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, AnchorBomb.TYPE.singleG, -1)));
         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, AnchorBomb.TYPE.singleG, -1)));
         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, AnchorBomb.TYPE.singleG, -1)));
         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, AnchorBomb.TYPE.singleG, -1)));
     }
     if (character.waittime != 25)
     {
         return;
     }
     base.Action(character, battle);
 }
예제 #14
0
 public SwordCloss(
     IAudioEngine so,
     SceneBattle p,
     int pX,
     int pY,
     Panel.COLOR u,
     int po,
     int s,
     ChipBase.ELEMENT ele,
     bool par)
     : base(so, p, pX, pY, u, po, ele)
 {
     if (!this.flag)
     {
         return;
     }
     this.parry            = par;
     this.upprint          = true;
     this.speed            = s;
     this.animationpoint.X = 0;
     this.hitrange         = new Point(0, 0);
     this.hitting          = true;
     this.rebirth          = this.union == Panel.COLOR.blue;
     this.positionre       = this.position;
     if (this.union == Panel.COLOR.red)
     {
         this.positionDirect = new Vector2(this.position.X * 40 + 20, this.position.Y * 24 + 76);
     }
     else
     {
         this.positionDirect = new Vector2((this.position.X + 1) * 40 - 18, this.position.Y * 24 + 76);
     }
     this.frame  = 0;
     this.power *= 2;
 }
예제 #15
0
        public override void Action(CharacterBase character, SceneBattle battle)
        {
            if (character.waittime == 3)
            {
                this.sound.PlaySE(SoundEffect.sword);
            }
            character.animationpoint = CharacterAnimation.SworsAnimation(character.waittime);
            if (character.waittime >= 30)
            {
                base.Action(character, battle);
            }
            if (character.waittime != 10)
            {
                return;
            }
            int  num = this.power + this.pluspower;
            bool par = false;

            if (character is Player && ((Player)character).style == Player.STYLE.shinobi)
            {
                par = true;
            }
            SwordAttack swordAttack = new SwordAttack(this.sound, character.parent, character.position.X + this.UnionRebirth(character.union), character.position.Y, character.union, this.Power(character), 3, this.element, par, false);

            character.parent.attacks.Add(this.Paralyze(swordAttack, character));
        }
예제 #16
0
        public override void Action(CharacterBase character, SceneBattle battle)
        {
            if (character.waittime < 1)
            {
                character.animationpoint = new Point(4, 0);
            }
            else if (character.waittime < 3)
            {
                character.animationpoint = new Point(5, 0);
            }
            else if (character.waittime < 10)
            {
                character.animationpoint = new Point(6, 0);
            }
            else if (character.waittime == 5)
            {
                character.animationpoint = new Point(5, 0);
            }
            else if (character.waittime == 15)
            {
                base.Action(character, battle);
            }
            if (character.waittime != 6)
            {
                return;
            }
            int num = this.power + this.pluspower;

            battle.effects.Add(new BulletBigShells(this.sound, battle, character.position, character.positionDirect.X + 4 * character.UnionRebirth, character.positionDirect.Y, 26, character.union, 20 + this.Random.Next(20), 2, 0));
            character.parent.attacks.Add(this.Paralyze(new ShotGun(this.sound, character.parent, character.position.X + this.UnionRebirth(character.union), character.position.Y, character.union, this.Power(character), this.element)));
            character.parent.attacks.Add(this.Paralyze(new ShotGun(this.sound, character.parent, character.position.X + 2 * this.UnionRebirth(character.union), character.position.Y - 1, character.union, this.Power(character), this.element)));
            character.parent.attacks.Add(this.Paralyze(new ShotGun(this.sound, character.parent, character.position.X + 2 * this.UnionRebirth(character.union), character.position.Y, character.union, this.Power(character), this.element)));
            character.parent.attacks.Add(this.Paralyze(new ShotGun(this.sound, character.parent, character.position.X + 2 * this.UnionRebirth(character.union), character.position.Y + 1, character.union, this.Power(character), this.element)));
        }
예제 #17
0
 public ParaizeThunder(
     IAudioEngine so,
     SceneBattle p,
     int pX,
     int pY,
     Panel.COLOR u,
     int po,
     ParaizeThunder.MOTION m)
     : base(so, p, pX, pY, u, po, ChipBase.ELEMENT.eleki)
 {
     if (this.parent.panel[this.position.X, this.position.Y].state == Panel.PANEL._break)
     {
         return;
     }
     this.canCounter       = false;
     this.element          = ChipBase.ELEMENT.normal;
     this.speed            = 2;
     this.knock            = false;
     this.invincibility    = false;
     this.animationpoint.X = 0;
     this.hitrange         = new Point(0, 0);
     this.hitting          = false;
     this.rebirth          = this.union == Panel.COLOR.blue;
     this.positionre       = this.position;
     this.positionDirect   = new Vector2(this.position.X * 40 + 20, this.position.Y * 24 + 82);
     this.sound.PlaySE(SoundEffect.thunder);
     this.motion           = m;
     this.frame            = 0;
     this.badstatus[3]     = true;
     this.badstatustime[3] = 60;
 }
예제 #18
0
        public override void Action(CharacterBase character, SceneBattle battle)
        {
            if (character.waittime <= 1)
            {
                character.animationpoint = new Point(0, 1);
            }
            else if (character.waittime <= 7)
            {
                character.animationpoint = new Point((character.waittime - 1) / 2, 1);
            }
            else if (character.waittime <= 15)
            {
                character.animationpoint = new Point(3, 1);
            }
            else
            {
                base.Action(character, battle);
            }
            if (character.waittime != 5)
            {
                return;
            }
            int num = this.power + this.pluspower;

            character.parent.attacks.Add(this.Paralyze(new LeafMaker(this.sound, character.parent, character.positionDirect, character.position, character.union, this.Power(character))));
        }
예제 #19
0
 public Vulcan(
     IAudioEngine so,
     SceneBattle p,
     int pX,
     int pY,
     Panel.COLOR u,
     int po,
     Vulcan.SHOT s,
     ChipBase.ELEMENT ele,
     bool bre)
     : base(so, p, pX, pY, u, po, ele)
 {
     if (!this.flag)
     {
         return;
     }
     this.knock            = true;
     this.invincibility    = false;
     this.breaking         = bre;
     this.hitrange         = new Point(0, 0);
     this.hitting          = true;
     this.rebirth          = this.union == Panel.COLOR.blue;
     this.positionre       = this.position;
     this.shot             = s;
     this.frame            = 0;
     this.positionDirect.Y = 82 + 24 * this.position.Y;
 }
예제 #20
0
        public override void Action(CharacterBase character, SceneBattle battle)
        {
            if (character.waittime <= 1)
            {
                character.animationpoint = new Point(0, 1);
            }
            else if (character.waittime <= 7)
            {
                character.animationpoint = new Point((character.waittime - 1) / 2, 1);
            }
            else if (character.waittime <= 15)
            {
                character.animationpoint = new Point(3, 1);
            }
            else
            {
                base.Action(character, battle);
            }
            if (character.waittime != 5)
            {
                return;
            }
            int num = this.power + this.pluspower;

            this.sound.PlaySE(SoundEffect.knife);
            int spd = 1;

            character.parent.attacks.Add(this.Paralyze(new ShellHockeyA(this.sound, character.parent, character.position.X + this.UnionRebirth(character.union), character.position.Y, character.union, this.Power(character), spd, this.element)));
        }
예제 #21
0
        public void Open(Unit.DropItem DropItem, DropItemEffect dropItemTemplate, int numGolds, DropGoldEffect dropGoldTemplate)
        {
            ((Animation)((Component)this).GetComponent <Animation>()).AddClip(this.OpenAnimation, ((Object)this.OpenAnimation).get_name());
            ((Animation)((Component)this).GetComponent <Animation>()).Play(((Object)this.OpenAnimation).get_name());
            this.mOpened = true;
            Transform transform = ((Component)this).get_transform();

            if (numGolds > 0)
            {
                this.mDropGold      = (DropGoldEffect)Object.Instantiate <DropGoldEffect>((M0)dropGoldTemplate);
                this.mDropGold.Gold = numGolds;
                ((Component)this.mDropGold).get_transform().set_position(transform.get_position());
                ((Component)this.mDropGold).get_gameObject().SetActive(false);
            }
            if (!Object.op_Inequality((Object)dropItemTemplate, (Object)null) || DropItem == null)
            {
                return;
            }
            this.mDropItem = (DropItemEffect)Object.Instantiate <DropItemEffect>((M0)dropItemTemplate);
            ((Component)this.mDropItem).get_transform().set_position(Vector3.op_Addition(transform.get_position(), this.DropOffset));
            if (Object.op_Inequality((Object)SceneBattle.Instance, (Object)null))
            {
                SceneBattle.Popup2D(((Component)this.mDropItem).get_gameObject(), ((Component)this.mDropItem).get_transform().get_position(), 0, 0.0f);
            }
            this.mDropItem.DropItem = DropItem;
            ((Component)this.mDropItem).get_gameObject().SetActive(false);
        }
예제 #22
0
        public ScreenObjectFade(
            IAudioEngine s,
            SceneBattle p,
            string spriteSheet,
            Func <Rectangle> spriteTextureGetter,
            Vector2 pd,
            Point posi,
            int _speed,
            bool rebirth,
            Func <Color> colorGetter,
            int alphaPlus)
            : base(s, p, posi.X, posi.Y)
        {
            this.rebirth             = rebirth;
            this.spriteSheet         = spriteSheet;
            this.spriteTextureGetter = spriteTextureGetter;
            this.upprint             = true;
            this.speed            = _speed;
            this.positionDirect   = pd;
            this.animationpoint.X = 3;
            this.alphaPlus        = alphaPlus;
            this.endAlpha         = colorGetter().A;
            this.finalColorGetter = colorGetter;
            this.color            = Color.FromArgb(0, Color.Black);

            this.isText         = false;
            this.blackOutObject = true;
        }
예제 #23
0
        public override void Action(CharacterBase character, SceneBattle battle)
        {
            if (character.animationpoint.X != 5 || character.waittime == 0)
            {
                this.sound.PlaySE(SoundEffect.switchon);
                character.animationpoint = new Point(5, 0);
            }
            bool gas = false;

            if (character.waittime % 2 == 0)
            {
                gas = true;
                this.sound.PlaySE(SoundEffect.lance);
            }
            battle.attacks.Add(new PoisonGas(this.sound, battle, character.position.X + 2 * this.UnionRebirth(character.union), character.position.Y - 1, character.union, this.subpower, gas, this.element));
            battle.attacks.Add(new PoisonGas(this.sound, battle, character.position.X + 2 * this.UnionRebirth(character.union), character.position.Y, character.union, this.subpower, gas, this.element));
            battle.attacks.Add(new PoisonGas(this.sound, battle, character.position.X + 2 * this.UnionRebirth(character.union), character.position.Y + 1, character.union, this.subpower, gas, this.element));
            ++this.frame;
            if (this.frame < this.power / this.subpower && (!Input.IsUp(Button._A) || !(character is Player)))
            {
                return;
            }
            this.frame = 0;
            base.Action(character, battle);
        }
예제 #24
0
 public Ogre(
     IAudioEngine s,
     SceneBattle p,
     int pX,
     int pY,
     int wait,
     Panel.COLOR union,
     int power,
     bool red,
     bool sp)
     : base(s, p, pX, pY, union)
 {
     this.red       = red;
     this.sp        = sp;
     this.wide      = 128;
     this.height    = 96;
     this.hp        = 20000;
     this.hitPower  = power;
     this.wait      = wait;
     this.speed     = 2;
     this.movespeed = 1;
     this.hpmax     = this.hp;
     this.unionhit  = false;
     this.overslip  = false;
     this.effecting = true;
     this.noslip    = true;
     if (this.position.Y == 2)
     {
         this.UpDown = true;
     }
     this.guard            = CharacterBase.GUARD.guard;
     this.positionre       = this.position;
     this.animationpoint.X = red ? 12 : 13;
     this.positionDirect   = new Vector2(pX * 40, pY * 24 + 44);
 }
예제 #25
0
 public override void Action(CharacterBase character, SceneBattle battle)
 {
     if (character.waittime <= 1)
     {
         character.animationpoint = new Point(0, 1);
     }
     else if (character.waittime <= 7)
     {
         character.animationpoint = new Point((character.waittime - 1) / 2, 1);
     }
     else if (character.waittime < 15)
     {
         character.animationpoint = new Point(3, 1);
     }
     else if (character.waittime == 15)
     {
         if (!character.Canmove(character.positionold))
         {
             return;
         }
         this.sound.PlaySE(SoundEffect.enterenemy);
         battle.enemys.Add(new Kedamar(this.sound, battle, character.positionold.X, character.positionold.Y, (byte)battle.enemys.Count, Panel.COLOR.red, 2));
     }
     else
     {
         if (character.waittime < 31)
         {
             return;
         }
         base.Action(character, battle);
     }
 }
예제 #26
0
 public override void Action(CharacterBase character, SceneBattle battle)
 {
     if (character.waittime == 11)
     {
         this.sound.PlaySE(SoundEffect.lance);
         int num = this.power + this.pluspower;
         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, false)));
     }
     if (character.waittime < 5)
     {
         character.animationpoint = new Point(0, 3);
     }
     else if (character.waittime < 17)
     {
         character.animationpoint = new Point((character.waittime - 5) / 3, 3);
     }
     else if (character.waittime < 37)
     {
         character.animationpoint = new Point(3, 3);
     }
     else if (character.waittime < 43)
     {
         character.animationpoint = new Point(4, 0);
     }
     else
     {
         base.Action(character, battle);
     }
 }
예제 #27
0
        public override void Action(CharacterBase character, SceneBattle battle)
        {
            if (character.waittime == 5)
            {
                this.sound.PlaySE(SoundEffect.sword);
            }
            if (character.waittime <= 5)
            {
                character.animationpoint = new Point(0, 1);
            }
            else if (character.waittime <= 23)
            {
                character.animationpoint = new Point((character.waittime - 5) / 3, 1);
            }
            else if (character.waittime < 26)
            {
                character.animationpoint = new Point(6, 1);
            }
            else if (character.waittime >= 50)
            {
                base.Action(character, battle);
            }
            if (character.waittime != 14)
            {
                return;
            }
            int num = this.power + this.pluspower;

            character.parent.attacks.Add(this.Paralyze(new NSAttack.Storm(this.sound, battle, character.position.X + 2 * this.UnionRebirth(character.union), character.position.Y, character.union, this.Power(character), this.element)));
        }
예제 #28
0
 public BombAttack(
     IAudioEngine so,
     SceneBattle p,
     int pX,
     int pY,
     Panel.COLOR u,
     int po,
     int s,
     int time,
     Point range,
     ChipBase.ELEMENT ele)
     : base(so, p, pX, pY, u, po, ele)
 {
     if (!this.flag)
     {
         return;
     }
     this.upprint          = true;
     this.speed            = s;
     this.animationpoint.X = 0;
     this.hitrange         = range;
     this.hitting          = true;
     this.rebirth          = this.union == Panel.COLOR.blue;
     this.positionre       = this.position;
     if (this.union == Panel.COLOR.red)
     {
         this.positionDirect = new Vector2(this.position.X * 40 - 5, this.position.Y * 24 + 48);
     }
     else
     {
         this.positionDirect = new Vector2((this.position.X + 1) * 40 + 5, this.position.Y * 24 + 48);
     }
     this.frame = 0;
     this.time  = time;
 }
예제 #29
0
 public override void Action(CharacterBase character, SceneBattle battle)
 {
     if (character.waittime == 1)
     {
         this.sound.PlaySE(SoundEffect.eriasteal2);
         for (int pX = 0; pX < battle.panel.GetLength(0); ++pX)
         {
             int y = character.position.Y;
             if (battle.panel[pX, y].State != Panel.PANEL._none && battle.panel[pX, y].State != Panel.PANEL._un)
             {
                 battle.panel[pX, y].state = Panel.PANEL._nomal;
                 battle.effects.Add(new Smoke(this.sound, battle, pX, y, this.element));
             }
         }
     }
     if (character.waittime < 12)
     {
         return;
     }
     if (character is Player)
     {
         ((Player)character).PluspointWing(20);
     }
     base.Action(character, battle);
 }
예제 #30
0
 public override void Action(CharacterBase character, SceneBattle battle)
 {
     this.sound.PlaySE(SoundEffect.docking);
     if (character is Player)
     {
         Player            player         = (Player)character;
         List <ChipFolder> chipFolderList = new List <ChipFolder>();
         for (int index = 0; index < 30; ++index)
         {
             ChipFolder chipFolder = battle.main.chipfolder[battle.parent.savedata.efolder, index];
             if (chipFolder.chip.powerprint && !chipFolder.chip.navi && !chipFolder.chip.dark)
             {
                 chipFolderList.Add(battle.main.chipfolder[battle.parent.savedata.efolder, index]);
             }
         }
         if (chipFolderList.Count > 0)
         {
             for (int index = 0; index < 2; ++index)
             {
                 ChipFolder chipFolder = new ChipFolder(this.sound);
                 chipFolder.chip = chipFolder.ReturnChip(chipFolderList[this.Random.Next(chipFolderList.Count)].chip.number);
                 player.haveChip.Insert(0, chipFolder.chip);
             }
             player.numOfChips += 2;
             player.haveChip.RemoveAll(a => a == null);
         }
     }
     base.Action(character, battle);
 }