Esempio n. 1
0
        public static void Update(Character character)
        {
            unchecked
            {
                if ((character._status.Updates & 1) == 1)
                {
                    CommonFunctions.UpdateCharacterInfo(character, (byte)character.UpdateReason);
                    if (character.HP == 0)
                    {
                        character.stance = (byte)StancePosition.Dead;
                        character.OnDie();
                        CommonFunctions.UpdateState(character);
                        character._status.Updates &= (byte)(~1);
                    }

                    if (character.sessionParty != null)
                    {
                        foreach (Character target in character.sessionParty._Characters)
                        {
                            if (target.id == character.id) continue;
                            Common.Actions.UpdateMemberHp(target, character);
                            Common.Actions.UpdateMemberSp(target, character);
                        }
                    }
                }
                if ((character._status.Updates & 2) == 2)
                {
                    CommonFunctions.SendBattleStatus(character);
                    character._status.Updates &= (byte)(~2);
                }
                if ((character._status.Updates & 3) == 3)
                {
                    CommonFunctions.SendExtStats(character);
                    character._status.Updates &= (byte)(~3);
                }
            }
        }