예제 #1
0
            /// <summary>
            /// Things that may of changed before screen loads or junction is changed.
            /// </summary>
            public override void Refresh()
            {
                if (Memory.State.Characters != null && Damageable.GetCharacterData(out Saves.CharacterData c))
                {
                    base.Refresh();
                    ITEM[0, 0] = new IGMDataItem.Face(c.ID.ToFacesID(), new Rectangle(X + 12, Y, 96, 144));
                    ITEM[0, 2] = new IGMDataItem.Text(Damageable.Name, new Rectangle(X + 117, Y + 0, 0, 0));


                    ITEM[0, 4] = new IGMDataItem.Integer(Damageable.Level, new Rectangle(X + 117 + 35, Y + 54, 0, 0), 13, numtype: Icons.NumType.sysFntBig, padding: 1, spaces: 6);
                    ITEM[0, 5] = Memory.State.Party != null && Memory.State.Party.Contains(c.ID)
                        ? new IGMDataItem.Icon(Icons.ID.InParty, new Rectangle(X + 278, Y + 48, 0, 0), 6)
                        : null;
                    ITEM[0, 7]  = new IGMDataItem.Integer(Damageable.CurrentHP(), new Rectangle(X + 152, Y + 108, 0, 0), 13, numtype: Icons.NumType.sysFntBig, padding: 1, spaces: 6);
                    ITEM[0, 9]  = new IGMDataItem.Integer(Damageable.MaxHP(), new Rectangle(X + 292, Y + 108, 0, 0), 13, numtype: Icons.NumType.sysFntBig, padding: 1, spaces: 5);
                    ITEM[0, 11] = new IGMDataItem.Integer((int)c.Experience, new Rectangle(X + 192, Y + 198, 0, 0), 13, numtype: Icons.NumType.Num_8x8_2, padding: 1, spaces: 9);
                    ITEM[0, 13] = new IGMDataItem.Integer(c.ExperienceToNextLevel, new Rectangle(X + 192, Y + 231, 0, 0), 13, numtype: Icons.NumType.Num_8x8_2, padding: 1, spaces: 9);
                }
            }
예제 #2
0
            /// <summary>
            /// Things that may of changed before screen loads or junction is changed.
            /// </summary>
            public override void Refresh()
            {
                if (Memory.State?.Characters != null && Damageable != null && Damageable.GetCharacterData(out var c))
                {
                    base.Refresh();
                    ((IGMDataItem.Face)ITEM[0, 0]).Data = c.ID.ToFacesID();
                    ((IGMDataItem.Text)ITEM[0, 2]).Data = Damageable.Name;

                    ((IGMDataItem.Integer)ITEM[0, 4]).Data = Damageable.Level;
                    if (Memory.State.Party != null && Memory.State.Party.Contains(c.ID))
                    {
                        ITEM[0, 5].Show();
                    }
                    else
                    {
                        ITEM[0, 5].Hide();
                    }
                    ((IGMDataItem.Integer)ITEM[0, 7]).Data  = Damageable.CurrentHP();
                    ((IGMDataItem.Integer)ITEM[0, 9]).Data  = Damageable.MaxHP();
                    ((IGMDataItem.Integer)ITEM[0, 11]).Data = (int)c.Experience;
                    ((IGMDataItem.Integer)ITEM[0, 13]).Data = c.ExperienceToNextLevel;
                }
            }
예제 #3
0
            private void RefreshCharacter(sbyte pos, Damageable damageable)
            {
                if (SIZE != null)
                {
                    ((IGMDataItem.Box)ITEM[pos, 0]).Pos = SIZE[pos];
                    if (damageable != null)
                    {
                        Contents[pos] = damageable;
                        float yoff = 6;

                        ((IGMDataItem.Box)ITEM[pos, 0]).Data  = damageable.Name;
                        ((IGMDataItem.Box)ITEM[pos, 0]).Title = Icons.ID.STATUS;
                        BoxReturn dims = DrawBox(SIZE[pos], ((IGMDataItem.Box)ITEM[pos, 0]).Data, options: Box_Options.SkipDraw);
                        Rectangle r    = dims.Font;
                        CURSOR[pos] = dims.Cursor;

                        r = dims.Font;
                        r.Offset(184, yoff);
                        ((IGMDataItem.Icon)ITEM[pos, 1]).Pos = r;

                        r = dims.Font;
                        r.Offset((229), yoff);
                        ((IGMDataItem.Integer)ITEM[pos, 2]).Data = damageable.Level;
                        ((IGMDataItem.Integer)ITEM[pos, 2]).Pos  = r;

                        r = dims.Font;
                        r.Offset(304, yoff);
                        ((IGMDataItem.Icon)ITEM[pos, 3]).Pos = r;

                        r = dims.Font;
                        r.Offset((354), yoff);
                        ((IGMDataItem.Integer)ITEM[pos, 4]).Data = damageable.CurrentHP();
                        ((IGMDataItem.Integer)ITEM[pos, 4]).Pos  = r;

                        r = dims.Font;
                        r.Offset(437, yoff);
                        ((IGMDataItem.Icon)ITEM[pos, 5]).Pos = r;

                        r = dims.Font;
                        r.Offset((459), yoff);
                        ((IGMDataItem.Integer)ITEM[pos, 6]).Data = damageable.MaxHP();
                        ((IGMDataItem.Integer)ITEM[pos, 6]).Pos  = r;

                        for (int i = 0; i <= 6; i++)
                        {
                            ITEM[pos, i].Show();
                        }
                        if ((Memory.State.TeamLaguna || Memory.State.SmallTeam) && damageable.GetCharacterData(out Saves.CharacterData c))
                        {
                            BLANKS[pos] = false;
                            r           = dims.Font;
                            r.Offset(145, 36);
                            FF8String s = Strings.Name.CurrentEXP + "\n" + Strings.Name.NextLEVEL;
                            ((IGMDataItem.Text)ITEM[pos, 7]).Data = s;
                            ((IGMDataItem.Text)ITEM[pos, 7]).Pos  = r;

                            r = dims.Font;
                            r.Offset((340), 42);
                            ((IGMDataItem.Integer)ITEM[pos, 8]).Data = checked ((int)c.Experience);
                            ((IGMDataItem.Integer)ITEM[pos, 8]).Pos  = r;

                            r = dims.Font;
                            r.Offset(520, 42);
                            ((IGMDataItem.Icon)ITEM[pos, 9]).Pos = r;

                            r = dims.Font;
                            r.Offset((340), 75);
                            ((IGMDataItem.Integer)ITEM[pos, 10]).Data = c.ExperienceToNextLevel;
                            ((IGMDataItem.Integer)ITEM[pos, 10]).Pos  = r;

                            r = dims.Font;
                            r.Offset(520, 75);
                            ((IGMDataItem.Icon)ITEM[pos, 11]).Pos = r;

                            for (int i = 7; i < Depth; i++)
                            {
                                ITEM[pos, i].Show();
                            }
                        }
                        else
                        {
                            for (int i = 7; i < Depth; i++)
                            {
                                ITEM[pos, i].Hide();
                            }
                        }
                    }
                    else
                    {
                        BlankArea(pos);
                    }
                }
            }
예제 #4
0
            private void ReInitCharacter(sbyte pos, Damageable damageable)
            {
                if (SIZE != null)
                {
                    if (damageable != null)
                    {
                        Contents[pos] = damageable;
                        float yoff = 6;

                        ITEM[pos, 0] = new IGMDataItem.Box(damageable.Name, title: Icons.ID.STATUS);
                        Tuple <Rectangle, Point, Rectangle> dims = DrawBox(SIZE[pos], ((IGMDataItem.Box)ITEM[pos, 0]).Data, options: Box_Options.SkipDraw);
                        Rectangle r = dims.Item3;
                        ((IGMDataItem.Box)ITEM[pos, 0]).Pos = dims.Item1;
                        CURSOR[pos] = dims.Item2;

                        r = dims.Item3;
                        r.Offset(184, yoff);
                        ITEM[pos, 1] = new IGMDataItem.Icon(Icons.ID.Lv, r, 13);

                        r = dims.Item3;
                        r.Offset((229), yoff);
                        ITEM[pos, 2] = new IGMDataItem.Integer(damageable.Level, r, 2, 0, 1, 3);

                        r = dims.Item3;
                        r.Offset(304, yoff);
                        ITEM[pos, 3] = new IGMDataItem.Icon(Icons.ID.HP2, r, 13);

                        r = dims.Item3;
                        r.Offset((354), yoff);
                        ITEM[pos, 4] = new IGMDataItem.Integer(damageable.CurrentHP(), r, 2, 0, 1, 4);

                        r = dims.Item3;
                        r.Offset(437, yoff);
                        ITEM[pos, 5] = new IGMDataItem.Icon(Icons.ID.Slash_Forward, r, 13);

                        r = dims.Item3;

                        r.Offset((459), yoff);
                        ITEM[pos, 6] = new IGMDataItem.Integer(damageable.MaxHP(), r, 2, 0, 1, 4);

                        if ((Memory.State.TeamLaguna || Memory.State.SmallTeam) && Damageable.GetCharacterData(out Saves.CharacterData c))
                        {
                            BLANKS[pos] = false;
                            r           = dims.Item3;
                            r.Offset(145, 36);
                            FF8String s = Strings[Items.CurrentEXP] + "\n" + Strings[Items.NextLEVEL];
                            ITEM[pos, 7] = new IGMDataItem.Text(s, r);

                            r = dims.Item3;
                            r.Offset((340), 42);
                            ITEM[pos, 8] = new IGMDataItem.Integer(checked ((int)c.Experience), r, 2, 0, 1, 9);

                            r = dims.Item3;
                            r.Offset(520, 42);
                            ITEM[pos, 9] = new IGMDataItem.Icon(Icons.ID.P, r, 2);

                            r = dims.Item3;
                            r.Offset((340), 75);
                            ITEM[pos, 10] = new IGMDataItem.Integer(c.ExperienceToNextLevel, r, 2, 0, 1, 9);

                            r = dims.Item3;
                            r.Offset(520, 75);
                            ITEM[pos, 11] = new IGMDataItem.Icon(Icons.ID.P, r, 2);
                        }
                        else
                        {
                            for (int i = 7; i < Depth; i++)
                            {
                                ITEM[pos, i] = null;
                            }
                        }
                    }
                    else
                    {
                        ITEM[pos, 0] = new IGMDataItem.Box(pos: SIZE[pos]);
                        BLANKS[pos]  = true;
                        for (int i = 1; i < Depth; i++)
                        {
                            ITEM[pos, i] = null;
                        }
                    }
                }
            }