Example #1
0
 protected override void hit_flash(Battler_Sprite battler_1_sprite, Battler_Sprite battler_2_sprite, int time)
 {
     if (Dmg_Dealt)
     {
         base.hit_flash(battler_1_sprite, battler_2_sprite, time);
     }
 }
Example #2
0
 protected override void determine_hit(Battler_Sprite battler_1_sprite, Battler_Sprite battler_2_sprite)
 {
     Dmg       = 0;
     Dmg_Dealt = false;
     Hit       = true;
     Crit      = false;
 }
Example #3
0
 protected void refresh_palette(string filename)
 {
     if (Global.battlerPaletteData.ContainsKey(filename) || Global.battlerPaletteData.ContainsKey(filename.Split('-')[0]))
     {
         Palette_Used = true;
         Battler_Sprite.palette_data(filename, -1, -1, "").CopyTo(Palette, 0);
     }
 }
Example #4
0
 protected void update_spell_flash(Battler_Sprite battler_sprite)
 {
     if (White_Flash_Time <= 0)
     {
         White_Screen.visible = false;
         if (battler_sprite.flash)
         {
             White_Screen.visible = true;
         }
     }
 }
        protected void create_battler()
        {
            var battlerData = new BattlerSpriteData(Unit); //@Debug: could probably roll this without a unit

            Battler          = new Battler_Sprite(battlerData, true, class_data.Distance);
            Battler.loc      = new Vector2(256, 176);
            Battler.offset.Y = 120;
            Battler.visible  = true;
            Battler.initialize_animation();
            Battler.reset_pose();
            Battler.start_battle();
            Battler.stereoscopic = Config.BATTLE_BATTLERS_DEPTH;
        }
Example #6
0
 protected bool heal_hit_effects(Battler_Sprite battler_1_sprite, Battler_Sprite battler_2_sprite, bool reverse, bool magic)
 {
     // Finished with hit
     if (Timer > 3)
     {
         return(true);
     }
     else if (Timer == 0)
     {
         bool life_drain = Combat_Data.Data[Attack_Id].Key.Result.delayed_life_steal;
         attack_dmg(battler_1_sprite.battler, battler_2_sprite.battler, Combat_Data.Data[Attack_Id].Key);
         if (magic)
         {
             battler_1_sprite.end_spell(Hit, Crit, Distance);
         }
         else
         {
             hit_freeze(battler_1_sprite);
         }
         // Pan back on last hit
         if (Distance > 1 && is_last_attack())
         {
             if (magic)
             {
                 Magic_Brighten = true;
             }
             add_battle_action(Battle_Actions.Pan_Hit_Over);
         }
         else
         {
             if (magic)
             {
                 Magic_Brighten = true;
             }
             if (Distance > 1 && is_next_attacker_same())
             {
                 add_battle_action(Battle_Actions.Wait_For_Pan);
             }
             add_battle_action(Battle_Actions.Hit_Over);
         }
     }
     // Pan back
     else if (!magic && Timer == 3)
     {
         if (Distance > 1)
         {
             pan(reverse ? -1 : 1);
         }
     }
     return(false);
 }
Example #7
0
 private void null_sprites_for_skip()
 {
     Battler_1_Sprite = null;
     Battler_2_Sprite = null;
     Platform         = null;
     HUD           = null;
     Background    = null;
     Black_Backing = null;
     Hit_Spark     = null;
     HitNumbers.Clear();
     White_Screen   = null;
     Miss_Spark     = null;
     NoDamage_Spark = null;
 }
Example #8
0
        protected override bool hit_effects(Battler_Sprite battler_1_sprite, Battler_Sprite battler_2_sprite, bool reverse, bool magic)
        {
            switch (((Staff_Data)Combat_Data).mode)
            {
            case Staff_Modes.Heal:
                return(heal_hit_effects(battler_1_sprite, battler_2_sprite, reverse, magic));

            case Staff_Modes.Status_Inflict:
                return(status_inflict_hit_effects(battler_1_sprite, battler_2_sprite, reverse, magic));

            default:
                return(base.hit_effects(battler_1_sprite, battler_2_sprite, reverse, magic));
            }
        }
Example #9
0
 protected bool dance_hit_effects(Battler_Sprite battler_1_sprite, Battler_Sprite battler_2_sprite, bool reverse, bool magic)
 {
     // Finished with hit
     if (Timer > 3)
     {
         return(true);
     }
     else if (Timer == 0)
     {
         if (Global.game_state.dance_item == -1 || Constants.Combat.RING_REFRESH)
         {
             battler_2_sprite.end_grey_out();
         }
         if (magic)
         {
             battler_1_sprite.end_spell(Hit, Crit, Distance);
         }
         // Pan back on last hit
         if (Distance > 1 && is_last_attack())
         {
             if (magic)
             {
                 Magic_Brighten = true;
             }
             add_battle_action(Battle_Actions.Pan_Hit_Over);
         }
         else
         {
             if (magic)
             {
                 Magic_Brighten = true;
             }
             if (Distance > 1 && is_next_attacker_same())
             {
                 add_battle_action(Battle_Actions.Wait_For_Pan);
             }
             add_battle_action(Battle_Actions.Hit_Over);
         }
     }
     // Pan back
     else if (!magic && Timer == 3)
     {
         if (Distance > 1)
         {
             pan(reverse ? -1 : 1);
         }
     }
     return(false);
 }
Example #10
0
        private void RefreshBattler()
        {
            ChangingSprite = false;
            Name.visible   = true;
            NameBg.visible = true;

            int promotionClassId = this.PromotionChoice;
            var battlerData      = new BattlerSpriteData(this.Unit, promotionClassId);

            Battler          = new Battler_Sprite(battlerData, true, 1);
            Battler.loc      = new Vector2(BATTLER_X, 176);
            Battler.offset.Y = 120;
            Battler.visible  = true;
            Battler.initialize_animation();
            Battler.reset_pose();
            Battler.start_battle();
            Battler.stereoscopic = Config.BATTLE_BATTLERS_DEPTH;
        }
        private void change_phase(Class_Reel_Phases phase)
        {
            Timer  = 0;
            Action = 0;
            switch (phase)
            {
            case Class_Reel_Phases.Animation:
                White_Screen.opacity = 0;
                if (Battler == null)
                {
                    create_battler();
                }
                Burst      = null;
                Title_Back = null;
                Letters.Clear();
                Class_Banner.opacity = 0;
                Class_Banner.visible = false;
                break;

            case Class_Reel_Phases.Class_Name:
                Battler              = null;
                Battler_Action       = Class_Reel_Battler_Actions.Idle;
                Battler_Timer        = 0;
                Message              = null;
                Black_Screen.visible = true;
                Black_Bar1.visible   = false;
                Black_Bar2.visible   = false;
                Black_Bar_Timer      = -1;
                if (Phase == Class_Reel_Phases.Force_Close)
                {
                    increment_index();
                    Timer = 10;
                }
                break;

            case Class_Reel_Phases.Closing:
            case Class_Reel_Phases.Force_Close:
                Action = 0;
                break;
            }
            Phase = phase;
        }
Example #12
0
        protected override void update_phase_1()
        {
            base.update_phase_1();
            switch (Segment)
            {
            case 0:
                Battler_1_Sprite.class_change_start();
                darken();
                Segment = 1;
                break;

            case 1:
                if (Battler_1_Sprite.duration <= 1 && Battler_1_Sprite.spell_effect_duration <= 1)
                {
                    OldClass = Battler_1.actor.class_id;
                    OldLevel = Battler_1.actor.level;
                    Battler_1.actor.promotion_class_id = Global.game_system.Class_Change_To;
                    var battler1Data = new BattlerSpriteData(Battler_1);
                    Battler_1_Sprite = new Battler_Sprite(battler1Data, !Reverse, Distance, Reverse);
                    Battler_1_Sprite.start_battle();
                    Battler_1_Sprite.loc = Battler_1_Loc = new Vector2((!Reverse ? 184 + (Distance == 1 ? 0 : 56) :
                                                                        136 - (Distance == 1 ? 0 : 56)) +
                                                                       (Distance > 2 ? (Reverse ? -270 : 270) : 0), 176);
                    Battler_1_Sprite.reset_pose();
                    Battler_1_Sprite.update_animation_position();
                    Battler_1_Sprite.visible = true;
                    Battler_1_Sprite.class_change_end();
                    Battler_1_Sprite.stereoscopic = Config.BATTLE_BATTLERS_DEPTH;
                    Segment = 2;
                }
                break;

            case 2:
                if (Battler_1_Sprite.duration >= 163)
                {
                    brighten();
                }
                if (Battler_1_Sprite.duration <= 1 && Battler_1_Sprite.spell_effect_duration <= 1)
                {
                    Segment = 3;
                }
                break;

            case 3:
                switch (Timer)
                {
                case 104:
                    Phase   = 2;
                    Segment = 0;
                    Timer   = 0;
                    break;

                default:
                    Timer++;
                    break;
                }
                break;
            }
            // Updates screen flash
            Battler_1_Sprite.update_flash();
            update_spell_flash(Battler_1_Sprite);
        }
Example #13
0
        protected void initialize_battle_sprites()
        {
            //@Debug: should use lerp for battler scale?
            var battler1Data = new BattlerSpriteData(Battler_1);

            Battler_1_Sprite = new Battler_Sprite(battler1Data, Reverse, Distance, Reverse);
            if (Battler_2 != null)
            {
                var battler2Data = new BattlerSpriteData(Battler_2);
                Battler_2_Sprite = new Battler_Sprite(battler2Data, !Reverse, Distance, Reverse);
            }
            // Initial battle sprite positions to match map sprites: battler 1
            Battler_1_Sprite.loc = Battler_1_Map_Loc =
                (Battler_1_Sprite.battler.loc * Constants.Map.TILE_SIZE -
                 Global.game_map.display_loc) +
                new Vector2(1, 2) * (Constants.Map.TILE_SIZE / 2);
            // Target battle sprite locations: battler 1
            Battler_1_Loc = new Vector2((Reverse ? 184 + (Distance == 1 ? 0 : 24) :
                                         136 - (Distance == 1 ? 0 : 24)) +
                                        (Distance > 2 ? (Reverse ? 0 : 0) : 0), 104);
            Battler_1_Sprite.scale        = new Vector2(Global.BattleSceneConfig.BattlerMinScale);
            Battler_1_Sprite.stereoscopic = Config.BATTLE_BATTLERS_DEPTH;

            // Target battle sprite locations: battler 2
            Battler_2_Loc = new Vector2((!Reverse ? 184 + (Distance == 1 ? 0 : 56) :
                                         136 - (Distance == 1 ? 0 : 56)) +
                                        (Distance > 2 ? (Reverse ? -270 : 270) : 0), 104);
            if (Battler_2 != null)
            {
                // Initial battle sprite positions to match map sprites: battler 2
                Battler_2_Sprite.loc = Battler_2_Map_Loc =
                    (Battler_2_Sprite.battler.loc * Constants.Map.TILE_SIZE -
                     Global.game_map.display_loc) +
                    new Vector2(1, 2) * (Constants.Map.TILE_SIZE / 2);
                Battler_2_Sprite.scale        = new Vector2(Global.BattleSceneConfig.BattlerMinScale);
                Battler_2_Sprite.stereoscopic = Config.BATTLE_BATTLERS_DEPTH;

                if (Battler_1_Map_Loc.Y == Battler_2_Map_Loc.Y)
                {
                    Platform_Effect_Angle = (Battler_1_Map_Loc.X < Battler_2_Map_Loc.X ^ Reverse) ? 0 :
                                            (Distance == 2 ? -MathHelper.Pi : MathHelper.Pi);
                }
                else
                {
                    Platform_Effect_Angle = (Battler_1_Map_Loc.Y < Battler_2_Map_Loc.Y ^ Reverse) ?
                                            MathHelper.PiOver2 : -MathHelper.PiOver2;
                }
            }
            else
            {
                Platform_Effect_Angle = -MathHelper.PiOver2;
            }
            if (ranged_defender_first())
            {
                pan(-1);
                while (Pan.Count > 0)
                {
                    update_pan();
                }
                //Battler_1_Loc += new Vector2(32 + (Distance > 2 ? 270 : 0), 0) * (Reverse ? 1 : -1);
                //Battler_2_Loc += new Vector2(32 + (Distance > 2 ? 270 : 0), 0) * (Reverse ? 1 : -1);
            }
        }
Example #14
0
 protected override void battler_kill(Battler_Sprite battler_sprite)
 {
     base.battler_kill(battler_sprite);
     end_crowd_cheer();
 }
Example #15
0
 protected override void attack_anim(Battler_Sprite battler_sprite)
 {
     battler_sprite.dance_attack();
 }
Example #16
0
 protected override void hit_freeze(Battler_Sprite battler_sprite)
 {
     battler_sprite.dance_hit_freeze();
 }
Example #17
0
 protected override void hit_flash(Battler_Sprite battler_1_sprite, Battler_Sprite battler_2_sprite, int time)
 {
 }
Example #18
0
 protected override bool hit_effects(Battler_Sprite battler_1_sprite, Battler_Sprite battler_2_sprite, bool reverse, bool magic)
 {
     return(dance_hit_effects(battler_1_sprite, battler_2_sprite, reverse, magic));
 }
Example #19
0
 protected override void return_anim(Battler_Sprite battler_sprite)
 {
     battler_sprite.dance_return_anim();
 }
Example #20
0
 protected override void attack_spell(Battler_Sprite battler_sprite)
 {
     battler_sprite.refersh_spell(Distance, Global.game_state.dance_item);
 }