示例#1
0
    public override int GetHashCode()
    {
        var hashCode = 745842380;

        hashCode = hashCode * -1521134295 + Id.GetHashCode();
        hashCode = hashCode * -1521134295 + Slot.GetHashCode();
        hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(Title);

        hashCode = hashCode * -1521134295 + Value.GetHashCode();
        hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(Type);

        hashCode = hashCode * -1521134295 + Power.GetHashCode();
        hashCode = hashCode * -1521134295 + Defense.GetHashCode();
        hashCode = hashCode * -1521134295 + Vitality.GetHashCode();
        hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(Description);

        hashCode = hashCode * -1521134295 + Stackable.GetHashCode();
        hashCode = hashCode * -1521134295 + Rarity.GetHashCode();
        hashCode = hashCode * -1521134295 + Durability.GetHashCode();
        hashCode = hashCode * -1521134295 + DurabilityCount.GetHashCode();
        hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(Slug);

        hashCode = hashCode * -1521134295 + EqualityComparer <Sprite> .Default.GetHashCode(Sprite);

        return(hashCode);
    }
 public override void OnHealthChange(Vitality vitality)
 {
     if (vitality.CurrentHealth <= 0)
     {
         Context.StateMachine.SetState <DeadTankEternalPlayerPawnState>();
     }
 }
示例#3
0
    void OnTriggerEnter2D(Collider2D other)
    {
        // If the player enters the trigger zone...
        if (other.CompareTag("Player"))
        {
            // Get a reference to the player health script.
            Vitality playerHealth = other.GetComponent <Vitality>();

            // Increasse the player's health by the health bonus but clamp it at 100.
            playerHealth.health += healthBonus;
            playerHealth.health  = Mathf.Clamp(playerHealth.health, 0f, 100f);

            // Update the health bar.
            playerHealth.UpdateHealthBar();

            // Trigger a new delivery.
            pickupSpawner.StartCoroutine(pickupSpawner.DeliverPickup());

            // Play the collection sound.
            AudioSource.PlayClipAtPoint(collect, transform.position);

            // Destroy the crate.
            Destroy(transform.root.gameObject);
        }
    }
 public Resources(int vital)
 {
     this.supplies  = new List <Supplies>();
     this.vital     = new Vitality(vital);
     this.education = new List <Education>();
     this.ability   = new List <Ability>();
 }
示例#5
0
        public override void DefaultInitialize()
        {
            Vitality = Add(new VitalityFocus());
            Tenacity = Add(new TenacityFocus());
            Mobility = Add(new MobilityFocus());
            Utility  = Add(new UtilityFocus());
            Ferocity = Add(new FerocityFocus());
            Capacity = Add(new CapacityFocus());

            Vitality.RegisterEnemies(new Focus[] { Mobility, Ferocity });
            Vitality.RegisterNemeses(Utility);

            Tenacity.RegisterEnemies(new Focus[] { Utility, Capacity });
            Tenacity.RegisterNemeses(Ferocity);

            Mobility.RegisterEnemies(new Focus[] { Ferocity, Vitality });
            Mobility.RegisterNemeses(Capacity);

            Utility.RegisterEnemies(new Focus[] { Capacity, Tenacity });
            Utility.RegisterNemeses(Vitality);

            Ferocity.RegisterEnemies(new Focus[] { Vitality, Mobility });
            Ferocity.RegisterNemeses(Tenacity);

            Capacity.RegisterEnemies(new Focus[] { Tenacity, Utility });
            Capacity.RegisterNemeses(Mobility);

            ForAllItems(f => f.ManagerEndInitialization());
            base.DefaultInitialize();
        }
示例#6
0
 private void CreateBasicStats()
 {
     strenght     = new Strenght(statisticsLevelUpdate.StrenghtMultiplier);
     vitality     = new Vitality(statisticsLevelUpdate.VitalityMultiplier);
     intelligence = new Intelligence(statisticsLevelUpdate.IntelligenceMultiplier);
     dexterity    = new Dexterity(statisticsLevelUpdate.DexterityMultiplier);
 }
示例#7
0
 void Start()
 {
     vitality = GameObject.FindWithTag("Player").GetComponent <Vitality>();
     if (breathSounds.Length > 0)
     {
         frame = breathStartPercent / breathSounds.Length;
     }
 }
示例#8
0
    void Start()
    {
        maze = GameObject.FindWithTag("Main").GetComponent <MazeGenerator>();

        soundEffectManager = GameObject.FindWithTag("Main").GetComponent <SoundEffectManager>();

        vitality = null;
    }
示例#9
0
    private void OnDestroy()
    {
        Vitality dispatcher = GetDispatcher();

        if (dispatcher)
        {
            dispatcher.destroyed.RemoveListener(OnPlayerDestroyed);
        }
    }
示例#10
0
 public void UpdateStatsBasedOnLevel(float level, StatisticsLevelUpdater statisticsLevelUpdate)
 {
     Strenght.UpdateBaseValue(level, statisticsLevelUpdate.StrenghtMultiplier);
     Vitality.UpdateBaseValue(level, statisticsLevelUpdate.VitalityMultiplier);
     Intelligence.UpdateBaseValue(level, statisticsLevelUpdate.IntelligenceMultiplier);
     Dexterity.UpdateBaseValue(level, statisticsLevelUpdate.DexterityMultiplier);
     UpdateCurrentStatsBasedOnBaseStats();
     basicStatsUIView.UpdateBasicStatsUI(this);
 }
示例#11
0
 public Group(int count, Specialization specialization)
 {
     Count          = count;
     Rank           = Rank.Ordinary;
     Specialization = specialization;
     Qualification  = Qualification.low;
     Experience     = Qualification.low;
     Vitality       = Vitality.healthy;
 }
示例#12
0
        // death fx

        public override void Init()
        {
            StateMachine.Init();

            // Vitality
            Vitality = new Vitality();

            Vitality.OnHealthChange = StateMachine.OnHealthChange;
        }
示例#13
0
 public Group(int count, Rank rank, Specialization specialization, Qualification qualification, Qualification experience, Vitality vitality)
 {
     OriginalCount = count;
     Count = count;
     Rank = rank;
     Specialization = specialization;
     Qualification = qualification;
     Experience = experience;
     Vitality = vitality;
 }
示例#14
0
 public Group(int count, Rank rank, Specialization specialization, Qualification qualification, Qualification experience, Vitality vitality)
 {
     OriginalCount  = count;
     Count          = count;
     Rank           = rank;
     Specialization = specialization;
     Qualification  = qualification;
     Experience     = experience;
     Vitality       = vitality;
 }
示例#15
0
 public ItemBonuses Clone()
 => new ItemBonuses
 {
     Power        = Power.Clone(),
     Vitality     = Vitality.Clone(),
     Accuracy     = Accuracy.Clone(),
     Evasion      = Evasion.Clone(),
     CritChance   = CritChance.Clone(),
     CritDamage   = CritDamage.Clone(),
     HealthPerHit = HealthPerHit.Clone()
 };
示例#16
0
    void Start()
    {
        vitality  = GetComponent <Vitality>();
        mentality = GetComponent <Mentality>();

        skillMenu = GameObject.FindWithTag("Main").GetComponent <SkillMenu>();
        skillMenu.unlockSkill(1);
        skillMenu.setSkillMessage(1, "Roar");

        soundEffectManager = GameObject.FindWithTag("Main").GetComponent <SoundEffectManager>();
    }
示例#17
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        //Hit effect
        Vitality other = collision.collider.gameObject.GetComponent <Vitality>();

        if (other != null)
        {
            other.TakeDamage(damage);
        }
        Destroy(gameObject);
    }
示例#18
0
    private void SetupGame()
    {
        SceneManager.sceneLoaded -= OnSceneLoaded;
        startButton.onClick.AddListener(ClickedStartButton);
        Vitality dispatcher = GetDispatcher();

        if (dispatcher)
        {
            dispatcher.destroyed.AddListener(OnPlayerDestroyed);
        }
        Time.timeScale = 0;
    }
示例#19
0
    //private SoundEffectManager soundEffectManager;

    void Start()
    {
        vitality = GetComponent <Vitality>();

        isInvisible = false;

        skillMenu = GameObject.FindWithTag("Main").GetComponent <SkillMenu>();
        skillMenu.unlockSkill(2);
        skillMenu.setSkillMessage(2, "Invisible");

        //soundEffectManager = GameObject.FindWithTag("Main").GetComponent<SoundEffectManager>();
    }
示例#20
0
    // Start is called before the first frame update
    void Start()
    {
        rb        = GetComponent <Rigidbody2D>();
        jumpsLeft = possibleJumps;

        crafting = GetComponent <Crafting>();
        inv      = GetComponent <Inventory>();
        vit      = GetComponent <Vitality>();

        triggerTouch = GetComponent <TriggerTouch>();

        playerSwitch = GameObject.FindGameObjectWithTag(playerSwitchScriptTag).GetComponent <PlayerSwitch>();
        levelManager = GameObject.FindGameObjectWithTag("LevelManager").GetComponent <LevelManager>();
    }
示例#21
0
 void OnTriggerEnter(Collider other)
 {
     if (other.tag == "Player")
     {
         soundEffectManager.playVitalityPotionSound();
         if (!vitality)
         {
             vitality = other.GetComponent <Vitality>();
         }
         vitality.gain(vitalityGain);
         Vector3 randomEventPosition = maze.getNewEventPosition(transform.position);
         transform.position = randomEventPosition;
     }
 }
示例#22
0
    void Start()
    {
        vitality = GetComponent <Vitality>();
        maze     = GameObject.FindWithTag("Main").GetComponent <MazeGenerator>();
        player   = GameObject.FindWithTag("Player");

        R = maze.MAZE_R;
        C = maze.MAZE_C;

        skillMenu = GameObject.FindWithTag("Main").GetComponent <SkillMenu>();
        skillMenu.unlockSkill(3);
        skillMenu.setSkillMessage(3, "Eye");

        soundEffectManager = GameObject.FindWithTag("Main").GetComponent <SoundEffectManager>();
    }
示例#23
0
    void Start()
    {
        characterMotor = GetComponent <CharacterMotor>();
        vitality       = GetComponent <Vitality>();
        footstep       = GetComponentInChildren <Footstep>();

        skillMenu = GameObject.FindWithTag("Main").GetComponent <SkillMenu>();
        skillMenu.unlockSkill(0);
        skillMenu.setSkillMessage(0, "Sprint");

        soundEffectManager = GameObject.FindWithTag("Main").GetComponent <SoundEffectManager>();

        sprintForwardSpeed   = originalForwardSpeed * timesOfSpeed;
        sprintSidewaysSpeed  = originalSidewaysSpeed * timesOfSpeed;
        sprintBackwardsSpeed = originalBackwardsSpeed * timesOfSpeed;
    }
示例#24
0
文件: Hero.cs 项目: GiantCaiB/Warlord
        public string[] BattleInfo()
        {
            var battleInfo = new[]
            {
                "============".PadRight(10),
                " " + Name.PadRight(10),
                " " + Class.PadRight(10),
                " HP: " + HealthPoints.ToString() + "/" + Vitality.ToString().PadRight(4),
                " LVL: " + Level.ToString().PadRight(5),
                " EXP: " + Math.Round(Experience, 2) + "/" + MaxExp(Level).ToString().PadRight(3),
                " ATK: " + String.Format("{0:.#}", AttackPower).PadRight(5),
                " DEF: " + String.Format("{0:.#}", DefencePower).PadRight(5),
                "============".PadRight(10)
            };

            return(battleInfo);
        }
示例#25
0
    private void OnHitVictim(GameObject victim)
    {
        Vitality v = FindVitalityOnVictim(victim);

        if (v)
        {
            if (v.IsReadyToTakeDamage())
            {
                v.TakeDamage(gameObject, damageAmount);

                if (isKamikaze)
                {
                    ourVitality.TakeLethalDamage(victim);
                }
            }
        }
    }
示例#26
0
    Vitality FindVitalityOnVictim(GameObject victim)
    {
        if (victim == gameObject || IsIgnored(victim))
        {
            // No self-damage or ignored damage.
            return(null);
        }

        Vitality v = victim.gameObject.GetComponent <Vitality>();

        if (v == ourVitality)
        {
            // No self-damage to parent hierarchy.
            return(null);
        }

        return(v);
    }
示例#27
0
    public void Update()
    {
        potentialPosition += new Vector3(slideDir.x, 0, slideDir.z) * Time.deltaTime * Mathf.Abs(_acceleration + 0.5f) * 10;

        float poetentialDistance = Vector3.Distance(start, potentialPosition);
        float currentDistance    = Vector3.Distance(start, transform.position);

        characterController.Move(new Vector3(slideDir.x, 0, slideDir.z) * Time.deltaTime * Mathf.Abs(_acceleration + 0.5f) * 10);

        _acceleration = 1 - currentDistance / slideDistance;
        if (currentDistance >= slideDistance ||
            poetentialDistance >= slideDistance)
        {
            Vitality v = GetComponent <Vitality>();
            if (v)
            {
                v.TakeHit();
            }
            GetComponent <MonoStateMachine>().DoTransition(this, ctrl);
        }
    }
示例#28
0
    // Use this for initialization
    private void Start()
    {
        if (!hasAuthority)
        {
            enabled = false;
            return;
        }

        var cam = Camera.main;

        cam.transform.parent        = transform;
        cam.transform.localPosition = new Vector3(0, 5, -20);
        cam.transform.localRotation = Quaternion.identity;

        if (primaryWeapons == null)
        {
            Debug.Log($"{name} does not have any primary weapons! Good luck I guess");
        }

        vitality     = GetComponent <Vitality>();
        healthSlider = GameObject.Find("HealthSlider").GetComponent <Slider>();
    }
    void Start()
    {
        //for spawns:
        sm = GameObject.FindObjectsOfType <SpawnM>();

        mouserb          = GetComponent <Rigidbody>();
        Cursor.lockState = CursorLockMode.Locked; //cursor is gone from screen

        LevelUp();                                // Starts at the first level
        animator = GetComponent <Animator>();

        /* Initialises list of Learned Skills for the Cat */
        learnedSkills = new List <int>();

        /*  Finds and initialises the Vitality System component */
        GameObject mouseVitalityGameObject = GameObject.Find("Vitality");

        mouseVitality = mouseVitalityGameObject.GetComponent <Vitality>();

        /*  Finds and initialises the Skill System component */
        GameObject mouseSkillGameObject = GameObject.Find("Skill");

        mouseSkill = mouseSkillGameObject.GetComponent <Skill>();

        GameObject interactiveText = GameObject.Find("Text");

        interactText      = interactiveText.GetComponent <Text>();
        interactText.text = "";
        miniMenu          = GameObject.Find("MiniMenu");
        // need to disable the minimenu to begin with
        miniMenu.SetActive(false);
        Alert = GameObject.Find("Alert");
        Alert.SetActive(false);
        ObjectiveMsg = GameObject.Find("Objective").GetComponent <Text>();
        StartCoroutine(ObjectiveMessage());

        soundPlayer = GetComponent <AudioSource>();
    }
示例#30
0
	void Awake() {
		health = new Vitality(maxHealthAmount);
		hackPower = new Vitality(maxHackPower);
	}
示例#31
0
        public CharacterCharacteristicsInformations GetCharacterCharacteristics(Character character)
        {
            ulong expFloor     = ExperienceRecord.GetExperienceForLevel(character.Level).Player;
            ulong expNextFloor = ExperienceRecord.GetExperienceForNextLevel(character.Level).Player;

            CharacterCharacteristicsInformations informations = new CharacterCharacteristicsInformations()
            {
                actionPoints            = ActionPoints.GetBaseCharacteristic(),
                actionPointsCurrent     = ActionPoints.TotalInContext(),
                additionnalPoints       = 0,
                agility                 = Agility.GetBaseCharacteristic(),
                airDamageBonus          = AirDamageBonus.GetBaseCharacteristic(),
                airElementReduction     = AirReduction.GetBaseCharacteristic(),
                airElementResistPercent = AirResistPercent.GetBaseCharacteristic(),
                alignmentInfos          = character.Record.Alignment.GetActorExtendedAlignement(),
                allDamagesBonus         = AllDamagesBonus.GetBaseCharacteristic(),
                chance = Chance.GetBaseCharacteristic(),
                criticalDamageBonus          = CriticalDamageBonus.GetBaseCharacteristic(),
                criticalDamageReduction      = CriticalDamageReduction.GetBaseCharacteristic(),
                criticalHit                  = CriticalHit.GetBaseCharacteristic(),
                criticalHitWeapon            = CriticalHitWeapon,
                criticalMiss                 = Characteristic.Zero().GetBaseCharacteristic(),
                damagesBonusPercent          = DamagesBonusPercent.GetBaseCharacteristic(),
                dodgePALostProbability       = DodgePAProbability.GetBaseCharacteristic(),
                dodgePMLostProbability       = DodgePMProbability.GetBaseCharacteristic(),
                earthDamageBonus             = EarthDamageBonus.GetBaseCharacteristic(),
                earthElementReduction        = EarthReduction.GetBaseCharacteristic(),
                earthElementResistPercent    = EarthResistPercent.GetBaseCharacteristic(),
                pvpEarthElementReduction     = PvPEarthReduction.GetBaseCharacteristic(),
                pvpEarthElementResistPercent = PvPEarthResistPercent.GetBaseCharacteristic(),
                fireDamageBonus              = FireDamageBonus.GetBaseCharacteristic(),
                fireElementReduction         = FireReduction.GetBaseCharacteristic(),
                fireElementResistPercent     = FireResistPercent.GetBaseCharacteristic(),
                pvpFireElementReduction      = PvPFireReduction.GetBaseCharacteristic(),
                pvpFireElementResistPercent  = PvPFireResistPercent.GetBaseCharacteristic(),
                glyphBonusPercent            = GlyphBonusPercent.GetBaseCharacteristic(),
                healBonus                      = HealBonus.GetBaseCharacteristic(),
                initiative                     = new CharacterBaseCharacteristic((short)FormulasProvider.Instance.BaseInitiative(this), 0, Initiative.Total(), 0, 0),
                intelligence                   = Intelligence.GetBaseCharacteristic(),
                kamas                          = character.Record.Kamas,
                lifePoints                     = (uint)LifePoints,
                maxEnergyPoints                = MaxEnergyPoints,
                maxLifePoints                  = (uint)MaxLifePoints,
                movementPoints                 = MovementPoints.GetBaseCharacteristic(),
                movementPointsCurrent          = MovementPoints.TotalInContext(),
                PMAttack                       = PMAttack.GetBaseCharacteristic(),
                PAAttack                       = PAAttack.GetBaseCharacteristic(),
                pvpAirElementReduction         = PvPAirReduction.GetBaseCharacteristic(),
                pvpAirElementResistPercent     = PvPAirResistPercent.GetBaseCharacteristic(),
                pvpNeutralElementReduction     = PvPNeutralReduction.GetBaseCharacteristic(),
                pvpNeutralElementResistPercent = PvPNeutralResistPercent.GetBaseCharacteristic(),
                pvpWaterElementReduction       = PvPWaterReduction.GetBaseCharacteristic(),
                pvpWaterElementResistPercent   = PvPWaterResistPercent.GetBaseCharacteristic(),
                energyPoints                   = Energy,
                experience                     = character.Experience,
                experienceLevelFloor           = expFloor,
                experienceNextLevelFloor       = expNextFloor,
                neutralDamageBonus             = NeutralDamageBonus.GetBaseCharacteristic(),
                neutralElementReduction        = NeutralReduction.GetBaseCharacteristic(),
                neutralElementResistPercent    = NeutralResistPercent.GetBaseCharacteristic(),
                tackleEvade                    = TackleEvade.GetBaseCharacteristic(),
                tackleBlock                    = TackleBlock.GetBaseCharacteristic(),
                range                          = Range.GetBaseCharacteristic(),
                waterElementReduction          = WaterReduction.GetBaseCharacteristic(),
                waterDamageBonus               = WaterDamageBonus.GetBaseCharacteristic(),
                waterElementResistPercent      = WaterResistPercent.GetBaseCharacteristic(),
                reflect                        = Reflect.GetBaseCharacteristic(),
                permanentDamagePercent         = PermanentDamagePercent.GetBaseCharacteristic(),
                prospecting                    = Prospecting.GetBaseCharacteristic(),
                pushDamageBonus                = PushDamageBonus.GetBaseCharacteristic(),
                pushDamageReduction            = PushDamageReduction.GetBaseCharacteristic(),
                runeBonusPercent               = RuneBonusPercent.GetBaseCharacteristic(),
                spellModifications             = new CharacterSpellModification[0],
                spellsPoints                   = character.Record.SpellPoints,
                statsPoints                    = character.Record.StatsPoints,
                vitality                       = Vitality.GetBaseCharacteristic(),
                strength                       = Strength.GetBaseCharacteristic(),
                summonableCreaturesBoost       = SummonableCreaturesBoost.GetBaseCharacteristic(),
                trapBonus                      = TrapBonus.GetBaseCharacteristic(),
                trapBonusPercent               = TrapBonusPercent.GetBaseCharacteristic(),
                weaponDamagesBonusPercent      = WeaponDamagesBonusPercent.GetBaseCharacteristic(),
                wisdom                         = Wisdom.GetBaseCharacteristic(),
                probationTime                  = 0,
            };

            return(informations);
        }
示例#32
0
 public override void Serialize(IDataWriter writer)
 {
     writer.WriteVarUhLong(Experience);
     writer.WriteVarUhLong(ExperienceLevelFloor);
     writer.WriteVarUhLong(ExperienceNextLevelFloor);
     writer.WriteVarUhLong(ExperienceBonusLimit);
     writer.WriteVarUhLong(Kamas);
     writer.WriteVarUhShort(StatsPoints);
     writer.WriteVarUhShort(AdditionnalPoints);
     writer.WriteVarUhShort(SpellsPoints);
     AlignmentInfos.Serialize(writer);
     writer.WriteVarUhInt(LifePoints);
     writer.WriteVarUhInt(MaxLifePoints);
     writer.WriteVarUhShort(EnergyPoints);
     writer.WriteVarUhShort(MaxEnergyPoints);
     writer.WriteVarShort(ActionPointsCurrent);
     writer.WriteVarShort(MovementPointsCurrent);
     Initiative.Serialize(writer);
     Prospecting.Serialize(writer);
     ActionPoints.Serialize(writer);
     MovementPoints.Serialize(writer);
     Strength.Serialize(writer);
     Vitality.Serialize(writer);
     Wisdom.Serialize(writer);
     Chance.Serialize(writer);
     Agility.Serialize(writer);
     Intelligence.Serialize(writer);
     Range.Serialize(writer);
     SummonableCreaturesBoost.Serialize(writer);
     Reflect.Serialize(writer);
     CriticalHit.Serialize(writer);
     writer.WriteVarUhShort(CriticalHitWeapon);
     CriticalMiss.Serialize(writer);
     HealBonus.Serialize(writer);
     AllDamagesBonus.Serialize(writer);
     WeaponDamagesBonusPercent.Serialize(writer);
     DamagesBonusPercent.Serialize(writer);
     TrapBonus.Serialize(writer);
     TrapBonusPercent.Serialize(writer);
     GlyphBonusPercent.Serialize(writer);
     RuneBonusPercent.Serialize(writer);
     PermanentDamagePercent.Serialize(writer);
     TackleBlock.Serialize(writer);
     TackleEvade.Serialize(writer);
     PAAttack.Serialize(writer);
     PMAttack.Serialize(writer);
     PushDamageBonus.Serialize(writer);
     CriticalDamageBonus.Serialize(writer);
     NeutralDamageBonus.Serialize(writer);
     EarthDamageBonus.Serialize(writer);
     WaterDamageBonus.Serialize(writer);
     AirDamageBonus.Serialize(writer);
     FireDamageBonus.Serialize(writer);
     DodgePALostProbability.Serialize(writer);
     DodgePMLostProbability.Serialize(writer);
     NeutralElementResistPercent.Serialize(writer);
     EarthElementResistPercent.Serialize(writer);
     WaterElementResistPercent.Serialize(writer);
     AirElementResistPercent.Serialize(writer);
     FireElementResistPercent.Serialize(writer);
     NeutralElementReduction.Serialize(writer);
     EarthElementReduction.Serialize(writer);
     WaterElementReduction.Serialize(writer);
     AirElementReduction.Serialize(writer);
     FireElementReduction.Serialize(writer);
     PushDamageReduction.Serialize(writer);
     CriticalDamageReduction.Serialize(writer);
     PvpNeutralElementResistPercent.Serialize(writer);
     PvpEarthElementResistPercent.Serialize(writer);
     PvpWaterElementResistPercent.Serialize(writer);
     PvpAirElementResistPercent.Serialize(writer);
     PvpFireElementResistPercent.Serialize(writer);
     PvpNeutralElementReduction.Serialize(writer);
     PvpEarthElementReduction.Serialize(writer);
     PvpWaterElementReduction.Serialize(writer);
     PvpAirElementReduction.Serialize(writer);
     PvpFireElementReduction.Serialize(writer);
     MeleeDamageDonePercent.Serialize(writer);
     MeleeDamageReceivedPercent.Serialize(writer);
     RangedDamageDonePercent.Serialize(writer);
     RangedDamageReceivedPercent.Serialize(writer);
     WeaponDamageDonePercent.Serialize(writer);
     WeaponDamageReceivedPercent.Serialize(writer);
     SpellDamageDonePercent.Serialize(writer);
     SpellDamageReceivedPercent.Serialize(writer);
     writer.WriteShort((short)SpellModifications.Count);
     foreach (var x in SpellModifications)
     {
         x.Serialize(writer);
     }
     writer.WriteInt(ProbationTime);
 }