public Animation_Setup_Data_Processor(BattlerSpriteData battler, int distance)
        {
            Key = string.Format("{0}-{1}", battler.ClassNameFull,
                                battler.UsedWeaponType);
            Distance = distance;
            Class_Id = battler.ClassId;
            Gender   = battler.ActualGender;

            TactileLibrary.Data_Weapon weapon = battler.Weapon;
            Equipped = weapon != null;
            if (Equipped)
            {
                Weapon_Main_Type = weapon.Main_Type;
                Weapon_Thrown    = weapon.Thrown(); // Factor out to actor or something to make weapons throwable by skills??? //Debug
                Weapon_Is_Staff  = weapon.is_staff();
                MWeapon          = (distance >= 2 && weapon.is_ranged_magic()) || weapon.is_always_magic();
            }
            Skill = battler.SkillEffect;

            // Skills
            Astra_Activated = battler.Unit.actor.astra_activated;
            Astra_Missed    = battler.Unit.actor.astra_missed;
            Astra_Count     = battler.Unit.actor.astra_count;
            Swoop_Activated = battler.Unit.swoop_activated;
        }
Esempio n. 2
0
        protected void refresh_battle_stats(bool just_stats)
        {
            if (!just_stats)
            {
                foreach (Item_Icon_Sprite icon in Weapon_Icons)
                {
                    icon.texture = null;
                }
                foreach (TextSprite name in Weapon_Names)
                {
                    name.text = "";
                }

                TactileLibrary.Data_Weapon weapon1 = null;
                TactileLibrary.Data_Weapon weapon2 = null;
                WTAs[0].value = 0;
                if (Global.scene.scene_type == "Scene_Dance" || Global.scene.scene_type == "Scene_Promotion")
                {
                    int item_index = -1;
                    if (Global.scene.scene_type == "Scene_Dance")
                    {
                        item_index = Global.game_state.dance_item;
                    }
                    else if (Global.scene.scene_type == "Scene_Promotion")
                    {
                        item_index = Global.game_state.item_used;
                    }
                    if (item_index > -1)
                    {
                        TactileLibrary.Item_Data      item_data = battler_1.actor.items[item_index];
                        TactileLibrary.Data_Equipment item1     = item_data.to_equipment;
                        Weapon_Icons[0].texture  = Global.Content.Load <Texture2D>(@"Graphics/Icons/" + item1.Image_Name);
                        Weapon_Icons[0].index    = item1.Image_Index;
                        Weapon_Names[0].offset.X = Font_Data.text_width(item1.full_name()) / 2;
                        Weapon_Names[0].text     = item1.full_name();
                    }

                    if (battler_2 != null)
                    {
                        WTAs[1].value = 0;
                        weapon2       = battler_2.actor.weapon;
                        if (weapon2 != null)
                        {
                            Weapon_Icons[1].texture  = Global.Content.Load <Texture2D>(@"Graphics/Icons/" + weapon2.Image_Name);
                            Weapon_Icons[1].index    = weapon2.Image_Index;
                            Weapon_Names[1].offset.X = Font_Data.text_width(weapon2.full_name()) / 2;
                            Weapon_Names[1].text     = weapon2.full_name();
                        }
                    }
                }
                else
                {
                    weapon1 = battler_1.actor.weapon;
                    Weapon_Icons[0].texture = Global.Content.Load <Texture2D>(@"Graphics/Icons/" + weapon1.Image_Name);
                    Weapon_Icons[0].index   = weapon1.Image_Index;
                    if (!(Data is Staff_Data) || ((Staff_Data)Data).attack_staff)
                    {
                        Weapon_Icons[0].flash = weapon1.effective_multiplier(battler_1, battler_2) > 1;
                    }
                    Weapon_Names[0].offset.X = Font_Data.text_width(weapon1.full_name()) / 2;
                    Weapon_Names[0].text     = weapon1.full_name();


                    if (battler_2 != null)
                    {
                        WTAs[1].value = 0;
                        weapon2       = battler_2.actor.weapon;
                        if (weapon2 != null)
                        {
                            Weapon_Icons[1].texture = Global.Content.Load <Texture2D>(@"Graphics/Icons/" + weapon2.Image_Name);
                            Weapon_Icons[1].index   = weapon2.Image_Index;
                            if (!(Data is Staff_Data) || ((Staff_Data)Data).attack_staff)
                            {
                                Weapon_Icons[1].flash = weapon2.effective_multiplier(battler_2, battler_1) > 1;
                            }
                            Weapon_Names[1].offset.X = Font_Data.text_width(weapon2.full_name()) / 2;
                            Weapon_Names[1].text     = weapon2.full_name();
                            // Attack Multiplier
                            if (!weapon1.is_staff())
                            {
                            }  // Mults[1].value = Mults[1].get_multi(battler_2, battler_1, weapon2); //Debug
                        }
                        if (!weapon1.is_staff())
                        {
                            // Weapon triangle arrows
                            WeaponTriangle tri = Combat.weapon_triangle(battler_1, battler_2, weapon1, weapon2, Data.Distance);
                            if (tri != WeaponTriangle.Nothing)
                            {
                                WTAs[0].value = tri;
                                if (weapon2 != null)
                                {
                                    WTAs[1].value = Combat.reverse_wta(tri);
                                }
                            }
                            // Attack Multiplier
                            //Mults[0].value = Mults[0].get_multi(battler_1, battler_2, weapon1); //Debug
                        }
                    }
                }
            }
            for (int i = 0; i < Stat_Imgs.Count; i++)
            {
                if (Stats[i] == null)
                {
                    Stat_Imgs[i].text = "--";
                }
                else if (Stats[i] < 0)
                {
                    Stat_Imgs[i].text = "--";
                }
                else
                {
                    Stat_Imgs[i].text = Stats[i].ToString();
                }
            }
        }